Commit Graph

44 Commits

Author SHA1 Message Date
dyb
a004a67b3f - restored the map and for-each optimizations with a fix for the
evaluation-order bug.
    cp0.ss,
    4.ms

original commit: b395a763a3167c6a044273ea7deb000de35b0f09
2017-06-08 02:43:14 -04:00
dyb
74f0518c89 reverted to the preceding version of cp0 due to failure to preserve
the expected evaluation order in one of the mats; removed the
corresponding equivalent-expansion tests.
  cp0.ss,
  4.ms
rebuild boot files

original commit: 63c6ae5c2d4354a984bfc210f061c2c2123f0439
2017-06-08 01:06:29 -04:00
R. Kent Dybvig
9dd5ce7443 Merge branch 'master' into 17-4-Map-List
original commit: 72153ee9cfc2e353c690eadf6237432497063298
2017-06-07 22:58:50 -04:00
R. Kent Dybvig
2f58873a96 Merge branch 'master' into strip
original commit: 185e989fcba29be4114c0ea3d8e9e680140d1d4a
2017-05-29 20:24:56 -04:00
dyb
2bc65b5d6d check_dirty_ephemeron now puts ephemerons whose keys haven't yet
been seen on the pending list rather than the trigger lists.
  gc.c
removed scan of space_ephemeron from check_heap because check_heap
as written can't handle the two link fields properly.
  gcwrapper.c
in the ephemerons mat that checks interaction between mutation and
collection, added generation arguments to the first two collect
calls so they always collect into the intended generation.
  4.ms
updated allx and bullyx patches
  patch*

original commit: 43b54f64949cf992e52cf18bacc2a09f4a199227
2017-05-29 20:21:01 -04:00
Matthew Flatt
bd922055d8 fix strip-fasl-file for immutable strings and vector
Also, fix an `$oops` in fasl-read` and fix `equal-hash-code` for
vectors.

original commit: cc8248b315f72ab6e0452e81e7aa23e4b5791011
2017-05-24 13:10:28 -06:00
Matthew Flatt
211fe4cbd7 tests and docs for ephemerons
original commit: 2ea7dcdfca1dea2c89c51c7e9ccd692ba673ba22
2017-05-24 09:38:58 -06:00
Gustavo Massaccesi
caa5949dc2 more optimizations for map and for-each with explicit list
extend the reductions for map and for-each when the arguments are
explicit lists like (list 1 2 3 ...) or '(1 2 3 ...).
  cp0.ss 4.ms

original commit: 4522ccdabd461370ad2d3fa91a92be0e6798d4d8
2017-05-13 14:54:37 -03:00
Bob Burger
323eb3c285 fix overflow detection for fxsll, fxarithmetic-shift-left and fxarithmetic-shift
original commit: f286688b64f877248ab8d8f00528d19363c6ceba
2017-05-05 15:28:29 -04:00
Bob Burger
d1a5bcf399 enum-set-indexer procedure now checks for a symbol, changed "isn't" to "is not" for consistency
original commit: 5df52745d793eb5a16cb6e55065f78f313170ed5
2017-05-05 15:22:46 -04:00
Gustavo Massaccesi
f58644991f fix reduction for map and for-each with optimization level 3
To drop the expression, check that procedure has the correct
arity and is discardable or unsafe.

Also add a simplification for for-each with empty lists
with optimization level 2.

  cp0.ss, 4.ms, primdata.ss

original commit: 7ad035a3bd63675a1b40106c841669e04e3299f2
2017-04-16 08:41:24 -03:00
Bob Burger
cbae4b9d77 mutexes and conditions are now freed when no longer used
added $close-resurrected-mutexes&conditions and $keep-live

original commit: 8d9aa4dffc371fc365020e5dac62270dae2aaa95
2017-04-13 09:41:58 -04:00
Bob Burger
c19e662ed0 destroy_thread now processes guardian entries
original commit: 9bcf0a10c1a1c12d93a8eabb061821377de0934f
2017-04-12 10:26:03 -04:00
Bob Burger
831ea8ad18 changed copyright year to 2017
7.ss, scheme.1.in, comments of many files

original commit: 06f858f9a505b9d6fb6ca1ac97234927cb2dc641
2017-04-06 11:41:33 -04:00
dybvig
f290ab67c8 bootfiles and a couple of files I accidentally dropped from Matthhew's changes
original commit: 89085a059ae9ff15511dd8e033f5cdbee54bc97b
2017-03-24 12:13:35 -04:00
Matthew Flatt
d9c9e2b1a4 add record-type-equal-procedure, record-type-hash-procedure,
record-equal-procedure, and record-hash-procedure

original commit: 1e0fc38fe4df25804532baef87eaf30340e30bed
2017-03-24 07:22:59 -06:00
Kent Dybvig
f825e23db2 - generated bytevector=? procedure now gets out quickly on eq
arguments.  cp0 optimizes away a number of additional equality
  operations at optimize-level 3 (including bytevector=?) when
  applied to the same variable references, as it already did for
  eq?, eqv?, and equal?, at all optimize levels.
    cpnanopass.ss, cp0.ss, primdata.ss,
    cp0.ms
- updated bullyx patches
    patch*
- updated release notes and tweaked user's guide.
    release-notes.stex, objects.stex

original commit: e90c39a72563eafa4fccaf1d197060bf20aa552f
2017-03-15 21:24:52 -04:00
Kent Dybvig
c503362914 - various tweaks to the immutable object support; also taught cp0
to simplify ($fxu< (most-positive-fixnum) e) => (fx< e 0) so we
  don't have any incentive in special casing length checks where
  the maximum length happens to be (most-positive-fixnum).
    5_4.ss, 5_6.ss, bytevector.ss, cmacros.ss, cp0.ss, cpnanopass.ss,
    mkheader.ss, primdata.ss, prims.ss,
    fasl.c, gc.c, types.h
    root-experr*, patch*

original commit: 9eb63deda025fd4560b54746b21a881c01af46d6
2017-03-15 14:49:58 -04:00
Kent Dybvig
9cd0199a39 merge @mflatt immutable-vector, immutable-string, immutable-bytevector,
immutable-fxvector, and immutable-box support

original commit: 547fce9b99c6566d5cb3f7af9ca84654e798486e
2017-03-15 11:09:57 -04:00
Bob Burger
288243924f added optional timeout to condition-wait
original commit: 26d4dfc437fde2ba85d2d1a9ccadc2fa36979da0
2017-03-14 12:53:10 -04:00
Andy Keep
33987d3401 reduced tests to conform to the travis-ci limits.
paired the 'partialx' down to just four test configurations, with one
interpreter run, to try to get the threaded builds into line with
travis-ci's timeout.
   mats/Mf-base

original commit: 6d8c871cd60228755660395e96087878ca9d040f
2017-03-12 16:28:40 -04:00
Andy Keep
d4461c7122 Trying again with a mats/Mf-base that has a reduced list of tests.
original commit: 3beb71c45fc331198c6cd4c58f980425418910b1
2017-03-12 13:56:58 -04:00
Bob Burger
e84263d85e fixed bug in mats/foreign.ms update for Windows
original commit: 8b27ac0fd743ef972dd1416c21034c7c5a0f39c2
2017-03-08 14:12:29 -05:00
dybvig
cb0a915f73 for non-win32 systems, now setting al register to a count of the
floating-point register arguments as required for varargs functions
by the System V ABI.
  x86_64.ss,
  foreign.ms
remade boot files

original commit: c5b6fe968f890bbef3488d570756cbe8da211326
2017-03-05 17:20:26 -05:00
Matthew Flatt
21fe925d06 add procedure-arity-mask
original commit: 4bd061000ab903feb3fe8e3b96ecbcb10c59dba9
2017-02-22 07:16:53 -07:00
Graham Watt
008b2cf9d4 Fix tests for format to be "twelfth", not "twelveth"
original commit: 5270eb05c1415c6503115b2efd82654273e787b8
2017-01-10 11:20:15 -05:00
dybvig
0bd87e4c4d - added tests for the case and exclusive-cond syntax-error calls
4.ms, root-experr-compile-0-f-f-f
- added print-extended-identifier parameter.  when #t, symbols like
  1+ and +++ print without escapes.
    priminfo.ss, print.ss,
    6.ms

original commit: 603019ea82afda1926462214576ef92df15e43c8
2016-08-22 21:41:53 -04:00
dybvig
7bc1af89c8 - instead of default-exception handler, new-cafe establishes a handler
that calls the current value of base-exception-handler so the handler
  can be overridden, as we do in our own make files.
    cafe.ss,
    7.ms

original commit: 99b763e30d22b205106ef9a84ea2e0a928fd0b30
2016-08-21 10:54:26 -04:00
dybvig
ca1560f4d0 - fixed a side-effect preservation bug with non-trivial test-context
not-like patterns.
    cp0.ss,
    cp0.ms, 4.ms

original commit: 5626f4433d886c43d40b4ec4fedc8b34fa6d0bb2
2016-08-14 10:19:22 -04:00
dybvig
35eaa9feff - fixed a bug in cpvalid resulting in it leaving behind a cpvalid-defer
form for later passes to choke on.  also fixed cp0 to print the correct
  name for cpvalid when it does this.
    cpvalid.ss, cp0.ss,
    misc.ms
- updated the prototype for s_ee_write_char to match the definition
    expeditor.c
- updated LOG and release_notes
- rebuilt boot files due to s-directory changes

original commit: 50aa8b34774a9e65e96481ae329a3f329fad7aca
2016-08-07 23:36:40 -04:00
Bob Burger
51db0ddbc1 scheme_mutex_t now uses volatile keyword for owner and count fields
because these fields can be accessed from multiple threads concurrently.
Updated $yield and $thread-check in mats/thread.ms to be more tolerant of timing variability.

original commit: 0a6a1e14e7ecb9e39fa7a10a8584ed2fec24cbf4
2016-06-22 15:33:21 -04:00
dybvig
b4d452cc71 - eliminated a couple of thread-safety issues and limitations on the
sizes of pathnames produced by expansion of tilde (home-directory)
  prefixes by replacing S_pathname, S_pathname_impl, and S_homedir
  with S_malloc_pathname, which always mallocs space for the result.
  one thread-safety issue involved the use of static strings for expanded
  pathnames and affected various file-system operations.  the other
  affected the file open routines and involved use of the incoming
  pathname while deactivated.  the incoming pathname is sometimes if not
  always a pointer into a Scheme bytevector, which can be overwritten if a
  collection occurs while the thread is deactivated.  the size limitation
  corresponded to the use of the static strings, which were limited to
  PATH_MAX bytes.  (PATH_MAX typically isn't actually the maximum path
  length in contemporary operating systems.)  eliminated similar issues
  for wide pathnames under Windows by adding S_malloc_wide_pathname.
  consumers of the old routines have been modified to use the new
  routines and to free the result strings.  the various file operations
  now consistently treat a pathname with an unresolvable home directory
  as a pathname that happens to start with a tilde.  eliminated unused
  foreign-symbol binding of "(cs)pathname" to S_pathname.
    io.c, externs.h, new_io.c, prim5.c, scheme.c, prim.c
- various places where a call to close or gzclose was retried when
  the close operation was interrupted no longer do so, since this can
  cause problems when another thread has reallocated the same file
  descriptor.
    new_io.c
- now using vcvarsall type x86_amd64 rather than amd64 when the
  former appears to supported and the latter does not, as is the
  case with VS Express 2015.
    c/Mf-a6nt, c/Mf-ta6nt
- commented out one of the thread mats that consistently causes
  indefinite delays under Windows and OpenBSD due to starvation.
    thread.ms
- increased wait time for a couple of subprocess responses
    6.ms
- added call to collector to close files opened during iconv mats
  specifically for when mats are run under Windows with no iconv dll.
    io.ms

original commit: ad44924307c576eb2fc92e7958afe8b615a7f48b
2016-06-16 23:04:32 -04:00
Bob Burger
39410c8447 - Cygwin is now used on Windows, updated mats, eliminated unused killme
- added a cast to eliminate warnings in c/number.c
- fixed bug in Windows version of directory-separator-predicate in s/6.ss when path-* procedures are passed a path that is not a string.
- fixed bug in s/cp0.ss on Windows with $foreign-wchar?.
- fixed spelling of non-existent

original commit: dd1b741f7572cb0d5a6210c7c796aee7c4026040
2016-06-10 10:07:07 -04:00
dybvig
aa62ffb153 * updated version to 9.4.1
bintar BUILDING NOTICE makefiles/Mf-install.in scheme.1.in
    c/Makefile.i3nt c/Makefile.a6nt c/Makefile.ti3nt c/Makefile.ta6nt
    mats/bldnt.bat workarea c/scheme.rc s/7.ss s/cmacros.ss
    release_notes/release_notes.stex csug/csug.stex

original commit: f0c9a4fbc082fa17c5bd3bd06d82365e77edc86b
2016-05-17 00:18:33 -04:00
Andy Keep
73ecb0cd4b - updated the Windows makefiles for building and testing to remove links for
files that no longer exist, which was getting in the way of creating links
  for files that do exist.  Also updated the build batch file for Windows to
  compile the nanopass framework separately before building the rest of the
  scheme compiler and libraries.
    s/Mf-{a6,i3,ta6,ti3}nt, s/bldnt.bat,
    mats/Mf-{a6,i3,ta6,ti3}nt
- updated the read me to include a link to the Chez Scheme project page.
    README.md

original commit: 969fbf3b69f4ac9729847bae80dab92464b6d08c
2016-05-16 14:42:33 -04:00
dybvig
9c1721c466 - compile-whole-program and compile-whole-library now copy the hash-bang
line from the wpo file (if it has one) to the object file.
    compile.ss,
    7.ms
- stex is now a submodule.  csug/Makefile and release_notes/Makefile
  set and use the required Scheme and STEXLIB variables accordingly.
  they default the machine type to a6le, but this can be overridden
  and is by the generated top-level Makefile.  the generated top-level
  Makefile now has a new docs target that runs make in both csug and
  release_notes, and an updated distclean target that cleans the same.
  the annoying csug Makefile .fig.pdf rule redefinition is now gone.
  copyright.stex and csug.stex now list May 2016 as the revision month
  and date; this will have to be updated for future releases.
    configure, makefiles/Makefile.in,
    csug/Makefile, copyright.stex, csug.stex,
    release_notes/Makefile
- rebuilt the boot files

original commit: 4bd78a692dd4ca2f88af5d404fd0993a2d141e7b
2016-05-04 20:35:38 -04:00
dybvig
83f6c935e9 Merge branch 'master' of github.com:cisco/chezscheme
original commit: f5a668eeb104edb70c0188c15c2588b3618e0470
2016-05-01 16:08:02 -04:00
dybvig
bf38db8ed9 - modified floatify_normalize to properly round denormalized results and
obviated scale_float in the process.
    number.c,
    ieee.ms
- fixed 0eNNNN for large NNNN to produce 0.0 rather than infinity
    strnum.ss,
    5_3.ms
- the reader now raises an exception with condition type implementation
  restriction (among the other usual lexical condition types), and
  string->number now raises #f, for #e<m>@<a>, where <m> and <a> are
  nonzero integers, since Chez Scheme can't represent polar numbers other
  than 0@<a> and <m>@0 exactly.  <m>@<a> still produces an inexact result,
  i.e., we're still extending the set of inexact numeric constants beyond
  what R6RS dictates.  doing this required a rework of $str->num, which
  turned into a fairly extensive rewrite that fixed up a few other minor
  issues (like r6rs:string->number improperly allowing 1/2e10) and
  eliminated the need for consumers to call $str->num twice in cases
  where it actually produces a number.  added some related new tests,
  including several found lacking by profiling.  added a couple of
  checks to number->string whose absence was causing argument errors to
  be reported by other routines.
    strnum.ss, exceptions.ss, read.ss
    5_3.ms, 6.ms, root-experr*, patch*
- added pdtml flag, which if set to t causes profile-dump-html to be
  called at the end of a mat run.
    mats/Mf-base

original commit: 03f2fe86171b0fd096238280b351ce365c701450
2016-05-01 16:05:40 -04:00
Andy Keep
ba1c8113f4 Slightly extended @hyln9 tests in 7.ms, rebuilt the boot files and added a comma to the log.
7.ms, boot/*/{petite,scheme}.boot, LOG

original commit: 8343b7172532a00d2d19914206fcf83c93798c80
2016-05-01 19:21:46 +00:00
Virgil Hou
1e9941edee - fixed incorrect handling of library-extension when searching wpo files
compile.ss

original commit: 4c0726f7174ca2cdb6d1c5862da88fad6d10c840
2016-05-01 15:00:27 +08:00
Andy Keep
cfe66a259b - fixed date->time-utc to honor the zone-offset field when converting a date
object to a time-utc object.
    stats.c,
    date.ms

original commit: 63a97939896c2a89fcffdf16c8b783efaeb816b5
2016-04-29 00:43:06 -04:00
Andy Keep
3aece4eaec - fixed time-utc->date test in mat time&date-printing to work regardless of
what locale (and time zone) the host machine has set.
    date.ms

original commit: 74563ef8261680a21d005af1eef4b70ec1757095
2016-04-27 23:07:43 -04:00
dybvig
e2844450a7 - added if(---) {} wrapper around call to WRITE in display macro to
silence unused return-value warnings.
    prim5.c
- liberalized get-mode check for ../mats.  it's not our business whether
  people make their directories group and/or other writeable.
    6.ms

original commit: b90a037c9fac18fdcbce73a42f28940e85a6c07b
2016-04-27 15:42:52 -04:00
dyb
1356af91b3 initial upload of open-source release
original commit: 47a210c15c63ba9677852269447bd2f2598b51fe
2016-04-26 10:04:54 -04:00