Commit Graph

761 Commits

Author SHA1 Message Date
dyb
70c9ce65fb - fixed bug in inline-lists: wasn't setting multiply-referenced flag
on p to account for the procedure? check at optimize-level 2.
    cpletrec.ss
- fixed bug in check-prelex-flags: was hardwiring $cpcheck-prelex-flags
  "after" argument to 'uncprep rather than passing along its argument.
    compile.ss
- commented out local definition of sorry! so that problems detected
  by $cpcheck-prelex-flags actually result in a raised exception.
    cprep.ss

original commit: 674e2180d6893000446590038dcacf0ef661e564
2019-02-27 16:05:29 -08:00
Matthew Flatt
60005f02d2 Merge github.com:cisco/ChezScheme
original commit: 629f8b653ff46afa64bffa1fcfbb8e7c94dd7451
2019-02-17 18:22:55 -07:00
dyb
98dc3d137d checkin no longer creates binary directories if no binaries
are actually checked in.

original commit: cda5b7916b07acb2016f62b94a551ee41b2850e9
2019-02-12 16:16:22 -08:00
dyb
da6d02bf4b Updating bullyx patches.
original commit: 4967118dc03e3dd4a8fb8ea29672e5cafdc6a0b1
2019-02-12 10:22:39 -08:00
dyb
9a7068220d - reverted the earlier change to restore indirection through
InstallPrefix, since it didn't and can't play well with the
  generated config.h.  Instead removed InstallPrefix entirely so
  it isn't an attractive hazzard.
    configure, makefiles/Mf-install.in

original commit: 21c8b40bbe4431795824e48042112820872a1fe5
2019-02-12 09:21:03 -08:00
dyb
2daf225cab committing a handful of changes, none of which should be particularly
controversial, unless I damaged something in the process of integrating
them with other recent changes.  the user's guide and release notes
have been updated as well to reflect the changes of interest to end
users.
- the body of load-library is now wrapped in a $pass-time with
  to show the time spent loading libraries separately from the time
  spent in expand.
    syntax.ss
- interpret now plays the pass-time game
    interpret.ss
- added compile-time-value? predicate and
  compile-time-value-value accessor
    syntax.ss, primdata.ss,
    8.ms, primvars.ms, root-experr*
- $pass-stats now returns accurrate stats for the currently timed
  pass.
    7.ss
- compile-whole-program and compile-whole-library now propagate
  recompile info from the named wpo file to the object file
  to support maybe-compile-program and maybe-compile-library in
  the case where compile-whole-{program,library} overwrites the
  original object file.
    compile.ss,
    7.ms, mat.ss, primvars.ms
- replaced the ancient and unusable bintar with one that creates
  a useful tarball for binary installs
    bintar
- generated Mf-install InstallBin (InstallLib, InstallMan) now
  correctly indirects through InstallPrefix if the --installbin
  (--installlib, --installman) configure flag is not present.
    src/configure
- removed definition of generate-procedure-source-information
    patch.ss
- guardian tconc cells are now allocated in generation 0 in the hope
  that they can be released more quickly.
    gc.c
- added ftype-guardian syntax: (ftype-guardian A) creates a new
  guardian for ftype pointers of type A, the first base field (or
  one of the first base fields in the case of unions) of which must
  be a word-sized integer with native endianness representing a
  reference count.  ftype pointers are registered with and retrieved
  from the guardian just like objects are registered with and
  retrieved from any guardian.  the difference is that the garbage
  collector decrements the reference count before resurrecting an
  ftype pointer and resurrects only those whose reference counts
  become zero, i.e., are ready for deallocation.
    ftype.ss, cp0.ss, cmacros.ss, cpnanopass.ss, prims.ss, primdata.ss,
    gc.c,
    4.ms, root-experr*
- fixed a bug in automatic recompilation handling of missing include
  files specified with absolute pathnames or pathnames starting with
  "./" or "..": was erroring out in file-modification-time with a
  file-not-found or other exception rather than recompiling.
    syntax.ss,
    7.ms, root-experr*, patch*
- changed inline vector-for-each and string-for-each code to
  put the last call to the procedure in tail position, as was
  already done for the library definitions and for the inline
  code for for-each.
    cp0.ss,
    5_4.ms, 5_6.ms
- the compiler now generates better inline code for the bytevector
  procedure.  instead of one byte memory write for each argument,
  it writes up to 4 (32-bit machines) or 8 (64-bit machines) bytes
  at a time, which almost always results in fewer instructions and
  fewer writes.
    cpnanopass.ss,
    bytevector.ms
- packaged unchanging implicit reader arguments into a single record
  to reduce the number of arguments.
    read.ss
- recoded run-vector to handle zero-length vectors.  it appears
  we're not presently generating empty vectors (representing empty
  groups), but the fasl format permits them.
    7.ss

original commit: 7be1d190de7171f74a1ee71e348d3e6310392686
2019-02-11 20:06:42 -08:00
Matthew Flatt
b6fd025861 sync equiates and Windows bootfiles [threaded only]
original commit: a60e6049ac3ab9d0ca84a59b14e615ca895eed92
2019-02-08 14:21:43 -08:00
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
dyb
273aad6342 updated BUILDING to mention the --threads option along with a couple
of other options.

original commit: 5aba39c40b46cee61a388d71ef4e5eebfa717108
2019-02-07 14:52:41 -08:00
dyb
7d2253b40f updated allx patch files
original commit: 849a04cfd4cd07c9f636106f3909d4ec98201dd2
2019-02-07 13:56:40 -08:00
Matthew Flatt
13b6b6943b committing @mflatt hashtable-cells pull request
original commit: 1900a7ef534366a4311a714cf56b9c60657ba0a1
2019-02-07 13:54:14 -08:00
dyb
a1195b7f7e addressed foreign-callable / boot file invalid memory reference:
- fixed a bug in which instantiating a static foreign-callable code object
  fails with an invalid memory reference because the collector has
  discarded its relocation information.  foreign-callable code objects
  are now flagged as "templates", and the collector now refuses to
  discard relocation information for code objects marked as templates
  when copying them to the static generation.
    cmacros.ss, cpnanopass.ss,
    gc.c,
    7.ms
- committing updated boot/*/equates.h (without the boot files, which are
  still usable for bootstrapping)
    boot/*/*.h
- updated release notes
    release_notes.stex

original commit: 71d3abba684e04b134720ea1bd9a8c847c38ac5f
2019-02-06 22:22:21 -08:00
R. Kent Dybvig
575809907d Merge pull request #384 from DeathKing/fixtypo-syntax-vector
fixed a typo in syntax.stex; syntax->vector returns a vector not a list.
original commit: 1c14765c2c983f835f7b7c7e3c981a1acfefc9df
2019-02-05 15:05:37 -08:00
R. Kent Dybvig
60702ca3fc Merge pull request #387 from mflatt/fpstr
fix string allocation for foreign-callable argument or foreign-call return
original commit: f2cc62974a26f4dd54677d8b3ad8f25108862deb
2019-02-05 15:04:07 -08:00
R. Kent Dybvig
4bd603231a Merge branch 'master' into fpstr
original commit: 216139066e8ba8dc510fc7a1ee32f48bce2e5742
2019-02-05 15:03:40 -08:00
R. Kent Dybvig
94e24691ca Merge pull request #391 from owaddell/owaddell/apply-fix
heed app-convention to fix apply issue
original commit: 3be503017779b9b9f2a039bd07c683ed183f171d
2019-02-05 14:16:47 -08:00
Oscar Waddell
a58dfb690a make cp0 heed app-convention when folding primitive calls
fix #389 (apply doesn't throw exception when last argument isn't a list)

fold-primref and fold-primref2 ignored app-convention when
attempting to fold certain primitive calls in 'test and 'effect
context and when falling back on the default primitive handler.

We now residualize primitive references if the app-convention
is not 'call.  The original fold-primref2 already bypassed the
inline handler when the app-convention was not 'call.

original commit: f9d10c4cf2e6cd184ad7429f251360a738600959
2019-02-05 12:24:07 -05: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
DeathKing
f089a6eed9 fixed a typo in syntax.stex; syntax->vector returns a vector not a list.
original commit: 1b13007dde4135e7ee5a04926c474633e2324c36
2019-01-24 20:55:09 +08: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