external.scm 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. ; Part of Scheme 48 1.9. See file COPYING for notices and license.
  2. ; Authors: Richard Kelsey, Jonathan Rees, Mike Sperber, Martin Gasbichler
  3. (define (fake-it name)
  4. (lambda args
  5. (display "Call to ")
  6. (display (cons name args))
  7. (newline)
  8. 0))
  9. (define extended-vm (fake-it 'extended-vm))
  10. (define external-call (fake-it 'call-external-value))
  11. (define external-call-2 (fake-it 'call-external-value-2))
  12. (define schedule-interrupt (fake-it 'schedule-interrupt))
  13. (define dequeue-external-event! (fake-it 'dequeue-external-event!))
  14. (define-syntax document-it
  15. (syntax-rules
  16. ()
  17. ((document-it name op)
  18. (define (name . args)
  19. (display "Call to ")
  20. (display (cons name args))
  21. (newline)
  22. (apply op args)))))
  23. (document-it external-bignum-make-cached-constants (lambda () #f))
  24. (document-it external-bignum-make-zero (lambda () #f))
  25. (document-it external-bignum-make-one (lambda (x) #f))
  26. (document-it external-bignum-add +)
  27. (document-it external-bignum-subtract -)
  28. (document-it external-bignum-multiply *)
  29. (document-it external-bignum-quotient quotient)
  30. (document-it external-bignum-remainder remainder)
  31. (document-it external-bignum-divide /)
  32. (document-it external-bignum-equal? =)
  33. (document-it external-bignum-compare (lambda (x y)
  34. (if (< x y)
  35. -1
  36. (if (= x y)
  37. 0
  38. 1))))
  39. (document-it external-bignum-test (lambda (x)
  40. (if (< x 0) -1
  41. (if (= x 0) 0
  42. 1))))
  43. (document-it external-bignum-negate (lambda (x) (- x)))
  44. (document-it external-bignum-from-long (lambda (x) x))
  45. (document-it external-bignum-from-unsigned-long (lambda (x) x))
  46. (document-it external-bignum-fits-in-word?
  47. (lambda (bignum word-length two-compl?)
  48. (and (>= bignum -134217728)
  49. (<= bignum 134217727))))
  50. (document-it external-bignum->long (lambda (x) x))
  51. (document-it external-bignum-bitwise-and bitwise-and)
  52. (document-it external-bignum-bitwise-xor bitwise-xor)
  53. (document-it external-bignum-bitwise-ior bitwise-ior)
  54. (document-it external-bignum-bitwise-not bitwise-not)
  55. (document-it external-bignum-bit-count bit-count)
  56. (document-it external-bignum-arithmetic-shift arithmetic-shift)
  57. (define (trace-external-calls)
  58. (fake-it 'trace-external-calls))
  59. (define (real-time) 0)
  60. (define (run-time) 0)
  61. (define (cheap-time) 0)
  62. (define s48-call-native-procedure (fake-it 's48-call-native-code))
  63. (define s48-invoke-native-continuation (fake-it 's48-call-native-code))
  64. (define s48-native-return 0)
  65. (define s48-jump-native (fake-it 's48-jump-native))
  66. (define get-proposal-lock! (fake-it 'get-proposal-lock!))
  67. (define release-proposal-lock! (fake-it 'release-proposal-lock!))
  68. (define (shared-ref x) x)
  69. (define-syntax shared-set!
  70. (syntax-rules ()
  71. ((shared-set! x v)
  72. (set! x v))))
  73. (define (get-os-string-encoding)
  74. "UTF-8")
  75. (define host-architecture "s48")
  76. (define (argument-type-violation val)
  77. (fake-it 'argument-type-violation))
  78. (define (range-violation val min max)
  79. (fake-it 'range-violation))