package-defs.scm 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. ; Part of Scheme 48 1.9. See file COPYING for notices and license.
  2. ; Authors: Richard Kelsey, Jonathan Rees, Mike Sperber, Marcus Crestani, David Frese
  3. (define-structures ((prescheme prescheme-interface)
  4. (ps-memory ps-memory-interface)
  5. (memory-debug (export reinitialize-memory))
  6. (ps-receive ps-receive-interface)
  7. (external-constants (export make-external-constant
  8. external-constant?
  9. external-constant-enum-name
  10. external-constant-name
  11. external-constant-c-string)))
  12. (open (modify scheme
  13. (rename (open-input-file scheme:open-input-file)
  14. (open-output-file scheme:open-output-file)
  15. (close-input-port scheme:close-input-port)
  16. (close-output-port scheme:close-output-port)
  17. (read-char scheme:read-char)
  18. (peek-char scheme:peek-char))
  19. (hide write-char newline))
  20. (subset i/o (byte-ready? read-byte peek-byte write-byte))
  21. code-vectors bitwise ascii
  22. (subset primitives (unspecific))
  23. enumerated
  24. platform
  25. signals ; #### replace by EXCEPTIONS at some point in the future
  26. define-record-types
  27. receiving
  28. bigbit) ; make sure that bignum bitwise operations are loaded
  29. (optimize auto-integrate)
  30. (begin
  31. ;; #### ditch when switching to EXCEPTIONS
  32. (define (assertion-violation who message . irritants)
  33. (apply error message irritants))
  34. )
  35. (files ps-defenum prescheme memory))
  36. (define-structure ps-record-types (export define-record-type)
  37. (open scheme (modify define-record-types (prefix s48:)))
  38. (begin
  39. (define-syntax define-record-type
  40. (syntax-rules ()
  41. ((define-record-type name type-name
  42. constructor
  43. (field type more ...) ...)
  44. (s48:define-record-type name type-name
  45. constructor
  46. (field more ...) ...))))))
  47. (define-structure ps-flonums ps-flonums-interface
  48. (open scheme)
  49. (optimize auto-integrate)
  50. (begin
  51. (define fl+ +) (define fl- -) (define fl* *) (define fl/ /)
  52. (define fl= =)
  53. (define fl< <) (define fl> >)
  54. (define fl<= <=) (define fl>= >=)))
  55. (define-structure ps-unsigned-integers ps-unsigned-integers-interface
  56. (open scheme)
  57. (optimize auto-integrate)
  58. (begin
  59. (define un+ +) (define un- -) (define un* *)
  60. (define unquotient quotient)
  61. (define unremainder remainder)
  62. (define un= =)
  63. (define un< <) (define un> >)
  64. (define un<= <=) (define un>= >=)
  65. (define (unsigned->integer x) x)
  66. (define (integer->unsigned x) x)
  67. ))
  68. ;(define-structure byte-vectors byte-vector-interface
  69. ; (open scheme code-vectors)
  70. ; (optimize auto-integrate)
  71. ; (files byte-vector))
  72. ;
  73. ;(define-interface byte-vector-interface
  74. ; (export make-byte-vector
  75. ; byte-vector?
  76. ; byte-vector-ref byte-vector-set!
  77. ; signed-byte-vector-ref signed-byte-vector-set!
  78. ; byte-vector-ref32 byte-vector-set32!
  79. ; signed-byte-vector-ref32 signed-byte-vector-set32!))
  80. ;
  81. ;(define-structure xmemory ps-memory-interface
  82. ; (open scheme byte-vectors exceptions enumerated bitwise)
  83. ; (files simple-memory))