Commit Graph

594 Commits

Author SHA1 Message Date
Matthew Flatt
1baa0da991 use opportunistic 1-shot continuations for attachments
An attachment continuation link can be a 1-shot continuation, but
the existing 1-short continuation implementation tends to work
less well than mutishot continuations. An opportunistic 1-shot
continuation is like a multi-shot continuation, but if it is
called from a stack that is adjacent to the continuation, then
the stack is merged with the continuation's stack.

original commit: ea1eb3c5192d644ad4c4cbf755bcb6fd438cc364
2019-02-08 13:59:28 -08:00
Matthew Flatt
9974c3bf7e repair to single-valued tracking
original commit: 8eb7644eb5def8d2a0864ef71610457d8be8c111
2019-02-02 14:12:27 -07:00
Matthew Flatt
3db5d5ab2d repair for eqv? on an immediate flonum
original commit: fd544591c6d8ba59456d5cbe6e9fc7fc010410f2
2019-02-02 13:35:30 -07:00
Matthew Flatt
627c809de4 Merge branch 'fpstr' of github.com:mflatt/ChezScheme
original commit: 871ccfa8688baa865731e047c59677b652d808f3
2019-02-01 05:26:06 -07:00
Matthew Flatt
7027a71f01 fix string allocation for callable argument or foreign-call return
The `dofretu...*` intrinsics used %ac1 without declaring it as a used
registers, which effectively broke register allocation for handling
string/bytevector foreign-call results or callable arguments.

original commit: 993fb9036acad5445319f458fd971b1a1d8e9f84
2019-01-27 13:01:57 -07:00
Matthew Flatt
75d6219a99 improve cp0 single-value detection, epsecially for loops
Compute some simple fixpoints so that `+`, `*`, etc. can be inferred
to be single-valued.

original commit: f6b6f034016936f9dde49bea5c66ea0f4a7f7676
2019-01-22 18:43:17 -07:00
Matthew Flatt
9d40161eb3 sync bootfiles [threaded only]
original commit: 2c2a48040e7d04b4afda0e466881ab9a8fb27c1b
2019-01-22 10:02:48 -07:00
Matthew Flatt
b5a4199e60 Merge branch 'procsv' of github.com:mflatt/ChezScheme
original commit: a3182ae3f31a226e1b302a2f2bb3f4f4d667b804
2019-01-22 06:41:34 -07:00
Matthew Flatt
e95fb6008b add procedure-known-single-valued?
original commit: f2a45ea588003c662bc2109e38ff052832d0c262
2019-01-22 06:37:12 -07:00
Matthew Flatt
8070a7b910 Merge branch 'eqfl' of github.com:mflatt/ChezScheme
original commit: 8b36396eacb139e0fff70efcd2c9dc842815324f
2019-01-22 05:57:17 -07:00
Matthew Flatt
21fc705234 adjust GC to preserve eq? on flonums
original commit: d405416eb2ec6d5dd147afc7a2af5a6c2f0a8130
2019-01-22 05:24:05 -07:00
Matthew Flatt
6e999d02c3 add ordered guardians
Also, avoid quadratic time in GC for guardian chains.

original commit: 273f79a7be5c04370c399e6b1d8af799efc8b33f
2019-01-22 05:19:38 -07:00
Matthew Flatt
67a0b0948f Merge branch 'leftassoc' of github.com:mflatt/ChezScheme
original commit: 19d0cb77e6b6dd32fa4a7a26505ee952b4efa756
2019-01-21 10:54:19 -07:00
Matthew Flatt
ae71f7472d add enable-arithmetic-left-associative
Add a parameter to constrain the compiler (off by default) to
implement `+`, `*`, and variants as left-associative when given
multiple arguments.

original commit: d126ba3364893e66263c65af1cd6dbdd8b021439
2019-01-21 10:51:16 -07:00
Matthew Flatt
c647fd031d Merge branch 'titlecase' of github.com:mflatt/ChezScheme
original commit: 244185f858a01b4679d2add4f0f6dc90c9f92c3d
2019-01-20 16:35:27 -07:00
Matthew Flatt
4752199578 fix string-titlecase on special-casing characters
original commit: 0ae58f75bcf76fb41e571579a81ab2080379455c
2019-01-20 16:34:25 -07:00
Matthew Flatt
09c177af2b sync equates and Windows threaded boot files
original commit: a7d73e7ee83ffa35f580ca4edf1b571b954319e9
2019-01-20 09:03:40 -07:00
Matthew Flatt
b27f3c0a94 Merge branch 'phantom' of github.com:mflatt/ChezScheme
original commit: 743a56d8f1920620e8f6e14edca7984101425e14
2019-01-20 07:56:59 -07:00
Matthew Flatt
538def47de add phantom bytevectors
original commit: 001917fd98ac6a0f13ccab902e15b9d2169c4b9c
2019-01-20 07:41:09 -07:00
dyb
90349ecc54 updated date in release_notes.stex
original commit: 6d44fee2b3126b9dbcca8b87694738e14e753927
2019-01-18 10:26:10 -08:00
dyb
33e1149d44 clarified required use of scheme-start to start an application
packaged as a boot file and added a short "myecho" example.
  use.stex

original commit: 58c07fdd629a4f45e6d7e1a062a6d9dde7d11050
2019-01-18 10:15:20 -08:00
Matthew Flatt
b945bc9318 fixups for eqvnan and expt merges
original commit: 95165bd192db6136583a7141587173900e2da0c9
2019-01-18 07:52:51 -07:00
Matthew Flatt
b61298b139 Merge branch 'expt' of github.com:mflatt/ChezScheme
original commit: f634e2e45f60f60071c83769edce17541e5e6705
2019-01-18 05:59:56 -07:00
Matthew Flatt
0795cfb2a7 special cases exact numbers for number function
Especially 0s and especially `expt`.

original commit: bb9f7f75f7ada6b829de0fdc5b692de7b9613574
2019-01-18 05:59:03 -07:00
Matthew Flatt
82a556ea54 fixup for string->number
Make the recent changes insensitive to whether `/` produces
an exact value when its first argument is an exact 0.

original commit: 2d0f59dfdfa9deb37efded804ebd17b98e26f8b6
2019-01-18 05:27:51 -07:00
dyb
2a9822c78d commiting new boot files, which are needed due to elimination of the
(cs)find_pcode foreign entry point.

original commit: 4b4281155773f329e58d286eb50055854ab5b4b3
2019-01-17 11:53:34 -08:00
dyb
ee9a4b3f59 profile counts are now maintained even for code that has been
reclaimed by the collector and must be released explicitly by the
programmer via (profile-release-counters).
  pdhtml.ss, primdata.ss,
  globals.h, externs.h, fasl.c, prim5.c, prim.c, alloc.c, scheme.c,
  misc.ms,
  release_notes.stex, system.stex

original commit: 68e20f721618dbaf4c1634067c2bee24a493a750
2019-01-17 09:43:18 -08:00
Matthew Flatt
84d1e19487 Merge branch 'eqvnan' of github.com:mflatt/ChezScheme
original commit: 55b68c7585947c9c07d1be1b643d10dede983874
2019-01-17 09:05:51 -07:00
Matthew Flatt
6a54141df2 change eqv? to recognize +nan.0s as equivalent
original commit: 46ad2395a2c81326efe555876b8e0be012e24814
2019-01-17 09:05:13 -07:00
Matthew Flatt
6974fad58e Merge branch 'strnum' of github.com:mflatt/ChezScheme
original commit: 7e2ba9a879b4b59304616bc6867f25a09b2cda02
2019-01-16 14:49:25 -07:00
Matthew Flatt
d8d4b76917 fix precision on reading with large exponents
A large-magnitude mantissa can cancel some of the magnitude of an
exponent.

Also, make numbers like 1/0e1 be divide-by-zero parse errors
instead of +inf.0 (like 1/0, and in contract to 1/0# or 1/0#e1).

original commit: 820145370046aa3b4d4863ad896d40ffeae01453
2019-01-16 14:48:48 -07:00
Matthew Flatt
656fb24f95 sync bootfiles [threaded only]
original commit: eec81a2994c8aa9fbc8ab24440e4b1c1565454eb
2019-01-15 17:30:44 -07:00
Matthew Flatt
cdc552b4c5 fixup for wrapper-procedure
original commit: 91c411aa2834a0220a5cc557deb62bc8b316d0fa
2019-01-15 17:19:58 -07:00
Matthew Flatt
51fc773598 Merge branch 'arity-error' of github.com:mflatt/ChezScheme
original commit: dbf2bec7dc7d1db9aaef6c95786a41137da66003
2019-01-15 15:28:08 -07:00
Matthew Flatt
fee19dacb8 include provided-argument count in arity error
original commit: 56b25afdccfb4156f6dff55e2a17f2fc3b51c254
2019-01-15 15:27:31 -07:00
Matthew Flatt
3e297e025e adjust make-arity-wrapper to enforce the supplied arity mask
original commit: a9ec7da3ea3b8edc665b060bcba675248119d260
2019-01-15 11:56:03 -07:00
Bob Burger
523384742a fixed 7.ms to specify the relative path of testfile.boot
original commit: 3ee3ffaccd2c50f69b183b4b14318b6a7aa382e7
2019-01-15 13:21:17 -05:00
Matthew Flatt
dd5384be5e Merge branch 'eqv' of github.com:mflatt/ChezScheme
original commit: a4ceb7f75ce3dbb5ae83d45dd00a4d6c8eb69bca
2019-01-11 21:36:07 -07:00
Matthew Flatt
1f150fdbce improve eqv? code generation
original commit: bcc117f228c984a267031e25e068df3210137f4e
2019-01-11 21:35:31 -07:00
dyb
20ab41bb10 - redirecting output of first two checkboot runs to /dev/null so the
ignored exception, if any, does not show up in the make output.
    s/Mf-base

original commit: 4de3eab4d76feea17431099f798a343a6205e50e
2019-01-11 18:10:38 -08:00
Matthew Flatt
8ca71f1f34 sync bootfiles [threaded only]
original commit: 4794fe71c16c3d72ff83461d34a24c988e9558af
2019-01-11 15:41:44 -07:00
Matthew Flatt
54282dedc4 Merge branch '17-5-Types-Pass' of github.com:gus-massa/ChezScheme
original commit: caf857a33e13c116afa6e2d960eccbada3604190
2019-01-11 15:35:20 -07:00
Matthew Flatt
ea29ba02f7 Merge branch 'sv' of github.com:mflatt/ChezScheme
original commit: 9dd62e2d4a44879ddb210bb6ebe7ad600b832634
2019-01-10 19:26:37 -07:00
Gustavo Massaccesi
6afcc310dd use "single-valued" to simplify some call-with-values patterns
original commit: 0b9d2f0d778789ee9fda8a7249c8d7da329c9bcd
2019-01-10 19:23:36 -07:00
Matthew Flatt
b78838a641 cp0: move only known-single-valued out of single-value context
In safe compilation modes, avoid turning an error like

 (let ([x (values 1 2)]) x)

or

 (car (list (values 1 2)))

into a program that returns multiple values or

 (if (list (values 1 2)) 3 4)

into a program that returns without an error.

In addition, refrain from moving an expression from a non-tail
position within a procedure to a tail position, unless the expression
is not only single valued but also gauarnteed not to inspect the
immediate continuation (e.g., using `call/cc` and comparing the result
to a previously captured continuation). This constraint applies even
in unsafe compilation modes, because the intent it to provide some
guarantees about non-tail positions to complement existing guarantees
of tail positions.

original commit: 91e9631576e7b97137be856e985609320e327f32
2019-01-08 20:27:26 -07:00
Matthew Flatt
2fd94d5573 repair to cp0 changes for single-value checking
original commit: 1d0d02a1fd01629a2b72b82e95b60084f5bff4fb
2019-01-08 18:46:43 -07:00
Matthew Flatt
8e53fec779 revise optimizations from the "noncm" branch
original commit: 444a284e69c652344174d730596caf7852be050b
2019-01-08 10:09:02 -07:00
Matthew Flatt
e895a6aaf3 sync bootfiles [threaded only]
original commit: 385dec2b46e238948697482dc1fb023243a644ce
2019-01-05 10:37:19 -07:00
Matthew Flatt
3658fad6b7 Merge branch 'count' of github.com:mflatt/ChezScheme
original commit: 9d0a647e87089c91195cc49480d848212025a7ed
2019-01-05 09:55:07 -07:00
Matthew Flatt
aaaa5fefa1 add compute-size-increments
Also adds `get-initial-thread`, since threa values are useful with
`compute-size[-increments]`.

Changes the compiler to inline `weak-pair?` and `ephemeron-pair?`,
since that provides better performance for `compute-size-increments`.

original commit: 57d0cc13f8e932972cba3837b4f54e9c86786091
2019-01-05 09:49:12 -07:00