core.scm 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. ;;; Ported from Scheme 48 1.9. See file COPYING for notices and license.
  2. ;;;
  3. ;;; Port Author: Andrew Whatson
  4. ;;;
  5. ;;; Original Authors: Richard Kelsey, Jonathan Rees, Mike Sperber
  6. ;;;
  7. ;;; scheme48-1.9.2/scheme/prescheme/interface.scm
  8. ;;;
  9. (define-module (language prescheme core)
  10. #:use-module (prescheme scheme48)
  11. #:use-module (prescheme prescheme)
  12. #:use-module (prescheme memory)
  13. #:use-module (prescheme ps-defenum)
  14. #:use-module (prescheme ps-record-types)
  15. #:re-export
  16. (;; prescheme-interface
  17. if begin lambda letrec quote set!
  18. define define-syntax let-syntax letrec-syntax
  19. and cond case do let let* or
  20. quasiquote
  21. syntax-rules
  22. ;; no delay
  23. goto
  24. external
  25. define-enumeration define-external-enumeration enum
  26. name->enumerand enumerand->name ;; loadtime only
  27. not
  28. eq?
  29. + - * = < ;; /
  30. <= > >=
  31. abs
  32. expt
  33. quotient remainder
  34. ;; floor numerator denominator
  35. ;; real-part imag-part
  36. ;; exp log sin cos tan asin acos atan sqrt
  37. ;; angle magnitude make-polar make-rectangular
  38. min max
  39. char=? char<?
  40. ;; Data manipulation
  41. make-vector vector-length
  42. vector-ref vector-set!
  43. make-string string-length
  44. string-ref string-set!
  45. deallocate
  46. null-pointer
  47. null-pointer?
  48. values call-with-values
  49. current-input-port current-output-port current-error-port
  50. open-input-file open-output-file
  51. close-output-port close-input-port
  52. read-char peek-char read-integer
  53. write-char newline write-string write-integer
  54. force-output
  55. errors
  56. error-string
  57. ascii->char char->ascii
  58. shift-left arithmetic-shift-right logical-shift-right
  59. bitwise-and bitwise-ior bitwise-xor bitwise-not
  60. unspecific
  61. error
  62. ;; ps-memory
  63. allocate-memory
  64. deallocate-memory
  65. unsigned-byte-ref unsigned-byte-set!
  66. word-ref word-set!
  67. flonum-ref flonum-set!
  68. address?
  69. null-address null-address?
  70. address+ address- address-difference
  71. address= address< address<= address> address>=
  72. address->integer integer->address
  73. copy-memory! memory-equal?
  74. char-pointer->string char-pointer->nul-terminated-string
  75. read-block write-block
  76. ;; memory-debug
  77. reinitialize-memory
  78. ;; ps-record-types
  79. define-record-type
  80. ;; ps-flonums
  81. fl+ fl- fl* fl/ fl= fl< fl> fl<= fl>=
  82. ;; ps-unsigned-integers
  83. un+ un- un* unquotient unremainder un= un< un> un<= un>=
  84. unsigned->integer integer->unsigned
  85. ;; ps-receive
  86. receive))