Implemented FORCE as a compiled procedure. SF no longer integrates
authorStephen Adams <edu/mit/csail/zurich/adams>
Wed, 9 Jul 1997 14:40:07 +0000 (14:40 +0000)
committerStephen Adams <edu/mit/csail/zurich/adams>
Wed, 9 Jul 1997 14:40:07 +0000 (14:40 +0000)
commitf57c1870ef7389c157b739fff2b56beb7f765e40
treefb55b9f62ae9cb0f17d12f50547037441fc166be
parent5749d0a56ddea0b6fb4c63818de5d77871bb2827
Implemented FORCE as a compiled procedure.  SF no longer integrates
FORCE as a primitive procedure.

There is a minor bootstrapping problem with the standard build
scripts since any pre-existing version of SF will integrate the
primitive FORCE, and SF is only run on files that have changed.
A solution is:

    1. rebuild the system
    2. remove any .bin files that call FORCE
    3. rebuild the system using bands produced in step 1.

Timings under Scheme 8.0 on plex:

Test Primitive Compiled
 [1]  10370ms   560ms
 [2]    180ms   130ms
 [3]       440ms   270ms

(let ((nums (list->stream (make-initialized-list 100001 identity-procedure)))
      (primes
       ((access make-prime-numbers-stream (->environment '(runtime stream))))))
  (show-time (lambda () (stream-ref nums 100000)))    ; [1]
  (show-time (lambda () (stream-ref nums 100000)))    ; [2]
  (show-time (lambda () (stream-ref primes 1000))))   ; [3]
v7/src/runtime/udata.scm
v8/src/runtime/global.scm
v8/src/sf/gconst.scm