Commit Graph

870 Commits

Author SHA1 Message Date
Matthew Flatt
3eb9217c39 remove bootfiles
For this patched variant of Chez Scheme, rely on bootstrapping via
Racket.

original commit: 15a783860252b675c60bbf910cf99db69247274a
2019-04-19 18:41:26 -06:00
dyb
a4d8f42835 added release note for record-ref bug
original commit: 68cdaba264bfbac582190c2b090d257644dcdf84
2019-04-19 10:17:12 -07:00
R. Kent Dybvig
e9619146f6 Merge pull request #421 from gus-massa/19-4-Fix-Record-Ref
Fix record-ref reduction in cp0
original commit: 53d09d9e049c78d331505105b125f23113f3ea2b
2019-04-19 09:35:13 -07:00
Gustavo Massaccesi
51dd12788b Fix record-ref reduction in cp0
In expressions like
  (record-ref ... (begin (newline) (record ...)))
the reduction was dropping the possible side effect expressions
in this case the (newline).

 cp0.ss

original commit: 5c50c5d1c520c79035065b4bd977eadd8e4cb800
2019-04-19 00:33:04 -03:00
R. Kent Dybvig
39c9f4d7f2 Merge pull request #418 from dybvig/compress-level
Add a compress-level parameter
original commit: 3ea6f8e4b166b033f1cb33293090ca78b8986db9
2019-04-18 10:05:59 -07:00
dyb
82b2cda639 compress-level parameter, improvement in lz4 compression, and various other related improvements
- added compress-level parameter to select a compression level for
  file writing and changed the default for lz4 compression to do a
  better job compressing.  finished splitting glz input routines
  apart from glz output routines and did a bit of other restructuring.
  removed gzxfile struct-as-bytevector wrapper and moved its fd
  into glzFile.  moved DEACTIVATE to before glzdopen_input calls
  in S_new_open_input_fd and S_compress_input_fd, since glzdopen_input
  reads from the file and could block.  the compress format and now
  level are now recorded directly the thread context.  replaced
  as-gz? flag bit in compressed bytevector header word with a small
  number of bits recording the compression format at the bottom of
  the header word.  flushed a couple of bytevector compression mats
  that depended on the old representation.  (these last few changes
  should make adding new compression formats easier.)  added
  s-directory build options to choose whether to compress and, if
  so, the format and level.
    compress-io.h, compress-io.c, new-io.c, equates.h, system.h,
    scheme.c, gc.c,
    io.ss, cmacros.ss, back.ss, bytevector.ss, primdata.ss, s/Mf-base,
    io.ms, mat.ss, bytevector.ms, root-experr*,
    release_notes.stex, io.stex, system.stex, objects.stex
- improved the effectiveness of LZ4 boot-file compression to within
  15% of gzip by increasing the lz4 output-port in_buffer size to
  1<<18.  With the previous size (1<<14) LZ4-compressed boot files
  were about 50% larger.  set the lz4 input-port in_buffer and
  out_buffer sizes to 1<<12 and 1<<14.  there's no clear win at
  present for larger input-port buffer sizes.
    compress-io.c
- To reduce the memory hit for the increased output-port in_buffer
  size and the corresponding increase in computed out_buffer size,
  one output-side out_buffer is now allocated (lazily) per thread
  and stored in the thread context.  The other buffers are now
  directly a part of the lz4File_out and lz4File_in structures
  rather than allocated separately.
    compress-io.c, scheme.c, gc.c,
    cmacros.ss
- split out the buffer emit code from glzwrite_lz4 into a
  separate glzemit_lz4 helper that is now also used by gzclose
  so we can avoid dealing with a NULL buffer in glzwrite_lz4.
  glzwrite_lz4 also uses it to writing large buffers directly and
  avoid the memcpy.
    compress-io.c
- replaced lz4File_out and lz4File_in mode enumeration with the
  compress format and inputp boolean.  using switch to check and
  raising exceptions for unexpected values to further simplify
  adding new compression formats in the future.
    compress-io.c
- replaced the never-defined struct lz4File pointer in glzFile
  union with the more specific struct lz4File_in_r and Lz4File_out_r
  pointers.
    compress-io.h, compress-io.c
- added free of lz4 structures to gzclose.  also changed file-close
  logic generally so that (1) port is marked closed before anything is
  freed to avoid dangling pointers in the case of an interrupt or
  error, and (2) structures are freed even in the case of a write
  or close error, before the error is reported.  also now mallocing
  glz and lz4 structures after possibility of errors have passed where
  possible and freeing them when not.
    compress-io.c,
    io.ss
- added return-value checks to malloc calls and to a couple of other
  C-library calls.
    compress-io.c
- corrected EINTR checks to look at errno rather than return codes.
    compress-io.c
- added S_ prefixes to the glz* exports
    externs.h, compress-io.c, new-io.c, scheme.c, fasl.c
- added entries for mutex-name and mutex-thread
    threads.stex

original commit: 722ffabef4c938bc92c0fe07f789a9ba350dc6c6
2019-04-18 05:47:19 -07:00
Matthew Flatt
cbd40899f6 avoid graph references that are especially uncooperative for Racket's reader
original commit: 5b864346fd692896ed13fca84a974bc990ed7806
2019-04-17 18:33:55 -06:00
Matthew Flatt
b9e43c6e78 add "scheme.h" dependency for "main.c" to Windows makefiles
original commit: 413cf148327345847aa3d1f6b839e77d74a8996e
2019-04-09 17:11:26 -06:00
Matthew Flatt
3bf5733f46 sync Windows bootfiles [threaded]
original commit: 0d1bc99f830d429976c6c53cb9d614f7dd81088e
2019-04-08 11:17:54 +02:00
Matthew Flatt
085b78aba9 Merge branch 'reccas' of github.com:mflatt/ChezScheme
original commit: cd641e47fd849385544aa99354d98f5b7193d237
2019-04-08 11:11:52 +02:00
Matthew Flatt
2c5c391652 add $record-{ref,set!,cas!}
original commit: 01b029b11be3bbe165752294f26617d036ba4b49
2019-04-08 11:09:45 +02:00
Matthew Flatt
766093d9a7 sync bootfiles [threaded]
original commit: e23ab9a7cf83b801b85e7e3d1f8cce81ad622771
2019-04-07 10:23:22 +02:00
Matthew Flatt
2da5fd740e Merge branch 'hashmix' of github.com:mflatt/ChezScheme
original commit: b620bd23a962989db5f5b489eb67a1fa45ee123d
2019-04-07 10:14:10 +02:00
Matthew Flatt
ffc02a9877 improve hash mixing
original commit: d7469cedd67a950931a561ce14388fe7e628770d
2019-04-07 09:37:37 +02:00
Matthew Flatt
23a1d1f25c fix merge of ftype and ordered guardians
Fill in missing field initializations in the case of an ftype
guardian.

original commit: fafb0ec18ba4751d972019b95897de0e1355ed91
2019-04-06 21:53:53 +02:00
R. Kent Dybvig
77e84faa24 Merge pull request #410 from mflatt/lz4
Add LZ4 support and use it by default for compressing files
original commit: 7df2fb2e77e6bfb4fac0fd5c2817b984ed0b41a7
2019-04-06 09:52:53 -07:00
Matthew Flatt
e622a495b6 Add LZ4 support and use it by default for compressing files
original commit: 8858b34bd92ac8d2b6511dc9ca17ebfa06a1bd93
2019-04-06 07:32:37 +02:00
Gustavo Massaccesi
dd67d22b95 cptypes: reduce (if t <error> x) ==> (begin (if t <error> (void)) x)
so the surrounding code can be reduced, for example

(+ 2 (if t <error> 3)) ==> (begin (if t <error> (void)) 5)

original commit: c1993e7c707b3528c6de5e1d4b36005655d22aff
2019-04-04 18:31:00 +02:00
Jéssica Milaré
bcf25a17fb Mutexes and condition variables with names (#380)
add name fields for mutexes and condition variables, now `make-mutex` and `make-condition` accept an optional argument `name`, which must be a symbol or #f.  The name, if not #f, is printed every time the object is printed, which is useful for debugging.
original commit: 1397e173200d1697ed714d24fc2eb4767421b976
2019-04-03 09:36:54 -04:00
Matthew Flatt
e5cd2ec27a Revert "cptypes: reduce (if t <error> x) ==> (begin (if t <error> (void)) x)"
This reverts commit 79f23f2ddb858aa6c69bd1e9314e745145ad2b15.

original commit: 83377ac5f916dc4848536f204f49645829007f4a
2019-03-31 11:13:19 -06:00
Matthew Flatt
f2c8436347 fix propagation of call info in push-mrvs pass
original commit: b0631023e4c1e8263a78f6045ee611e3a76210c3
2019-03-30 09:46:27 -06:00
Gustavo Massaccesi
6d0780488c cptypes: reduce (if t <error> x) ==> (begin (if t <error> (void)) x)
so the surrounding code can be reduced, for example

(+ 2 (if t <error> 3)) ==> (begin (if t <error> (void)) 5)

original commit: 79f23f2ddb858aa6c69bd1e9314e745145ad2b15
2019-03-29 18:45:58 -03:00
Gustavo Massaccesi
405d774fcf fix use of equal-entries? in hash.ms
original commit: 8a7976820077e657fad3e4829d3706bf40f03753
2019-03-27 21:47:41 -03:00
Gustavo Massaccesi
7f4a4b6c05 fix record.ms
original commit: 1e83737283252ce7ac2d48c2bf8640bfb60fc932
2019-03-27 21:47:41 -03:00
Gustavo Massaccesi
191a4f3c49 remove $make-shift-attachment
original commit: 029c8a278e80eeedfab205849eaef4c8f4f599d6
2019-03-27 21:47:41 -03:00
Gustavo Massaccesi
82837d6d45 remove generate-vfasl
original commit: 89e63acaa0e754bc00be0415ca20bbf77bb13812
2019-03-27 21:47:40 -03:00
Oscar Waddell
b8d6d649bc ignore multiple-value return from interleaved init expressions in top-level-program
original commit: f5fd9d144b68af26244855c7c2f34be97298deea
2019-03-27 13:00:38 -04:00
Oscar Waddell
bb67d6ff01 install a file containing revision control information alongside boot files
original commit: ed4ca6123eae4c347e9ee240a34e42dbc695aea2
2019-03-27 12:42:28 -04:00
Bob Burger
19b130e41c update Windows spin-loop count for deleting files and directories
original commit: b597e161fcb8c5ebb8f7f8e1aa27b2f136c13064
2019-03-26 14:16:54 -04:00
Gustavo Massaccesi
49531e95ce fix make-guardian primitive expansion
original commit: 24fb50d6e35d01c685a691868f4518358e923ddb
2019-03-25 23:05:51 -03:00
Bob Burger
21043fb950 fixed welcome text and copyright year in macOS package
original commit: 30076521c9216a8978f0b3c1369c74d28404418a
2019-03-25 11:54:24 -04:00
Matthew Flatt
c6d3a1dd69 make nul act as a stream terminator for LZ4 sequences
original commit: 06f4aab43a35b3a3f956cf510c76c0edb4f1a866
2019-03-22 13:52:53 -06:00
Matthew Flatt
605f8f5033 rename "compress.[ch]" to avoid a conflict
original commit: a4c635ae3da7853bbd2f63ffb25c3f16af33898b
2019-03-22 09:38:37 -06:00
Matthew Flatt
27536edb07 fix Windows library link
original commit: dc42cd93b5af29673f3357583dc81f9b104e7cb4
2019-03-22 09:11:01 -06:00
dyb
3761d229a1 updated month
original commit: 87f59b35b61441a29a67dc8eb83cdd6fc5aa421e
2019-03-21 15:54:12 -07:00
dyb
46608ff1f1 Now opening 9.5.3 release. Intent is to formally release 9.5.2
(and possibly all and only even-numbered releases going forward)
and use 9.5.3 (and possibly all and only odd-numbered releases going
forward) for development.

original commit: 47110f36cea47a44078b3144c82d212de79774ce
2019-03-21 15:07:39 -07:00
dyb
04e299d33f missed one change in bintar/Makefile
newrelease
  bintar/Makefile

original commit: c9037e5f79545b7530fd8d21db9c8148e809e7b7
2019-03-21 15:05:24 -07:00
dyb
b2cecd2c0f 9.5.2 changes:
- updated version to 9.5.2
    bintar/Makefile rpm/Makefile pkg/Makefile BUILDING NOTICE
    makefiles/Mf-install.in makefiles/Makefile-csug.in scheme.1.in
    c/Makefile.a6nt c/Makefile.i3nt c/Makefile.ta6nt c/Makefile.ti3nt
    mats/Mf-a6nt mats/Mf-i3nt mats/Mf-ta6nt mats/Mf-ti3nt workarea
    c/scheme.rc s/7.ss s/cmacros.ss release_notes/release_notes.stex
    csug/copyright.stex csug/csug.stex rpm/Makefile pkg/Makefile
    wininstall/Makefile wininstall/a6nt.wxs wininstall/i3nt.wxs
    wininstall/ta6nt.wxs wininstall/ti3nt.wxs
- fixed handling of bintar, rpm, pkg make files
    newrelease
- fixed a bug in the fasl representation and reading of mutually
  recursive ftypes where one of the members of the cycle is the
  parent of another, which manifested in the fasl reader raising
  bogus "incompatible record type" exceptions.  (The bug could also
  affect other record-type descriptors with cycles involving parent
  rtds and "extra" fields.)  object files created before this fix
  are incompatible with builds with this fix, and objects files
  created after this fix are incompatible builds without this fix.
    fasl.ss, strip.ss,
    fasl.c,
    ftype.ms,
    release_notes.stex

original commit: 766d591c18c2779866d1a059700e6ff1c02cb3c5
2019-03-21 14:30:49 -07:00
Matthew Flatt
79a83b21a1 sync equates and bootfiles (threaded only)
original commit: 9658eb61519dfccf9729fe1ceb8daa7687a643e5
2019-03-21 12:08:45 -06:00
Matthew Flatt
c13b9307f0 fixup for MinGW build
original commit: c9a2530d778f5a798df613d8aafc295a046fd7a1
2019-03-21 12:08:02 -06:00
Matthew Flatt
c4c70e8533 adapt MinGW cross-build suport for LZ4
original commit: 959d2b03cf8a6261583d060cf1d37fbf3e233f82
2019-03-21 06:22:59 -06:00
Andy Keep
bae0681d2b Start on release notes.
- added library-search-handler, compile-whole-library, and improved
  packaging to the release notes.
    release_notes/release_notes.stex

original commit: 4740211242cf7f010fd66a7c15cf71aea098956c
2019-03-20 22:26:29 -04:00
Matthew Flatt
8b68320dcb Merge branch 'lz4' of https://github.com/mflatt/ChezScheme
original commit: f74329a3254dbdfda1c4f86585a2d5028bbe03a3
2019-03-20 15:49:49 -06:00
Matthew Flatt
7264663e3c Merge https://github.com/cisco/ChezScheme
original commit: c2621183748c7f90d1cbf2d482f0bdb9ecda12e4
2019-03-20 15:45:15 -06:00
Matthew Flatt
194d1e71c1 partially sync with current Chez Scheme
original commit: ff0c8d157a551f9a9c16606ac2e052373c1ce4f9
2019-03-20 15:43:33 -06:00
Matthew Flatt
8ab973300d Add LZ4 support and use it by default for compressing files
original commit: bbcd7fc2188e798ce53b765db0808e9ea6510350
2019-03-20 13:35:04 -06:00
dyb
84ec3f8704 minor build and new-release updates
checkin, newrelease, Makefile.in, Makefile-workarea.in

original commit: 4a4e1c40b611e56260c4751f1e16d0f9d78d2a35
2019-03-19 23:23:10 -07:00
Andy Keep
e3d64728e9 Small fix to wpo error message.
improved error message for compile-whole-program and
compile-whole-library when a top-level expression is discovered while
processing a wpo file.
  compile.ss

original commit: 11cee34502470d720d611ffd0799353e8663a7f1
2019-03-19 22:21:27 -04:00
Matthew Flatt
2f65d585b2 adjust Windows cross-compile to use zlib/win32/Makefile.gcc
original commit: b4c583ad7259eabad7344d5dedc297c8414140a4
2019-03-19 15:29:20 -06:00
dyb
0b89f4fe82 better packaging support
- fixed failure to install examples for tarball installs
    Mf-install.in
- improved packaging support:
  replaced bintar script with bintar directory and make file;
  tarballs are created via "make create-tarball" and are placed in
  the workarea's bintar directory.  added rpm directory and make
  file for creating RPMs via "make create-rpm".  added pkg directory
  and make file for creating OSX packages via "make create-pkg".
    bintar (removed), bintar/Makefile (new), rpm/Makefile (new),
    pkg/Makefile (new), pkg/rmpkg (new), workarea, checkin, newrelease,
    Makefile.in, Makefile-workarea.in.

original commit: fdff97d15cd827eb8fbef200c0f495a4bfaefff3
2019-03-18 22:51:26 -07:00