Commit Graph

69 Commits

Author SHA1 Message Date
Gustavo Massaccesi
070dd62d0d fix cp0 reduction of fx[+-*]/carry and their signatures
cp0.ss
  primdata.ss
  fx.ms

original commit: 8c0ec93c9eb16bae8a920bb9b5e2f9d3e96ed250
2017-10-09 12:09:50 -03:00
Bob Burger
022bf715be removed a useless check in foreign-alloc
original commit: a629477f50dffd0cdc838276bbbf31f06504d958
2017-09-15 09:49:00 -04:00
Andy Keep
c854ef9ab7 - fixed np-normalize-context pass to process trivs list in mvset forms
in tail and predicate context and added regression tests.  Thanks to
  @marcomaggi for reporting the bug and @yjqww6 for providing a
  simplified test and finding the initial solution.
    cpnanopass.ss,
    3.ms

original commit: 28f31d84b6c45e2fa701655e9131801dd603d925
2017-08-31 23:24:14 -04:00
Bob Burger
8e889443d4 fixed typo in comment
original commit: 93a5d4fbfc3c9d77957e6be1e14a88f0365720fe
2017-08-23 13:56:40 -04:00
Matthew Flatt
9d8cc87758 add locate-source cache and line+column components to source objects
Add optional beginning-line and beginning-column components to a
source object, so that line and column information can be recorded
independent of the file. Add `locate-source-object-source` to use
the recorded information. Add a cache for `locate-source` as enabled by
the `use-cache?` optional argument, which can avoid compilation times
that are quadratic in the number of `let-values` or `define-values`
forms.

original commit: b36fab81d5041a54ce01a422395eee79d2f930bc
2017-08-01 05:23:56 -06:00
Matthew Flatt
274322e06d fix (define-values () ....) to expand to a definition
Expanding to a definition means that it doesn't interrupt a definition
sequence.

original commit: c2d8a2fdc6ef40c5eba15904d6203032dc6f555e
2017-07-16 17:04:54 -06:00
R. Kent Dybvig
15e7c4ae4d Merge branch 'master' into ht
original commit: 2cca8117b8b38ac6369f8c75055e7aa6f7cfc47e
2017-07-12 12:47:43 -04:00
Gustavo Massaccesi
be3e357aae don't remove the pariah form in the cp0 pass
cp0.ss
  misc.ms

original commit: d6a1b8a9208d78bb8d216d9381546a6723fe5b9e
2017-07-10 17:10:19 -03:00
Matthew Flatt
839c4ce6b4 update test patch files
original commit: 486a2e2d9f98e912a2a0f0bf4f908e079383b93f
2017-07-06 20:45:18 -06:00
Matthew Flatt
59c772ba48 add make-ephemeron-eq-hashtable, etc.
Revert the use of ephemeron pairs in weak hashtables, since the
difference is visible via guardians. Add hashtable based on ephemerons
(to avoid key-in-value problems) as an explicit variant.

original commit: 31ac6d78592e1a9ba6bfbe802260e3d56d4cf772
2017-07-06 16:27:23 -06:00
Matthew Flatt
1932612543 add bytevector-compress and bytevector-decompress
original commit: aa062c09c9f0d129250db84aeb0a5190647c5574
2017-06-21 17:52:28 -06:00
Bob Burger
f2a40d192b Merge branch 'wsl' of git://github.com/mflatt/ChezScheme into master
# Conflicts:
#	LOG

original commit: 178f8c5bedb94acb1b81eac8d6ebe897142f42d1
2017-06-16 11:50:54 -04:00
dyb
dacb66ac72 fixed a bug in flonum-extractor, which on 64-bit machines was using an
8-byte read instead of a 4-byte read to pick up the 4 highest-order
bytes of a little-endian flonum, potentially reading past the end of
mapped memory for flonums produced by taking the imaginary part of an
inexact complexnum (which, unlike other flonums, are not aligned on
16-byte boundaries).  The 8-byte load would also have failed to produce
correct results on 64-bit big-endian machines (of which we presently
have none) because the offsets passed to flonum-extractor assume the
bits are in the lowest-order 4 bytes of the extracted field.
  cp0.ss,
  misc.ms,
  release_notes.stex

original commit: 97bd75bcedbcf32b77c59615a638ea1528ebe26b
2017-06-09 21:21:08 -04:00
Sam Tobin-Hochstadt
0e41c9d8be Add date-dst? and date-zone-name procedures
Accesses existing-but-hidden DST information in date records,
and adds support for getting a name of the current time zone
when a time zone offset is not explicitly provided.

original commit: 3c8be62d12a8197018fb6c5aae182fd75da14fe8
2017-06-08 11:21:39 -04:00
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
Gustavo Massaccesi
db9248a73e fix signature of fxbit-set?
primdata.ss

original commit: 517ee9d86e974abba5a5a25945b677b4f5b35469
2017-06-06 19:36:52 -03:00
R. Kent Dybvig
2f58873a96 Merge branch 'master' into strip
original commit: 185e989fcba29be4114c0ea3d8e9e680140d1d4a
2017-05-29 20:24:56 -04:00
Matthew Flatt
fa1a2ab272 make bootfiles
original commit: 306568784cc1ef8b3bad5ca2047d3381273b557e
2017-05-24 13:11:40 -06: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
0d5340c061 fix interaction of ephemerons and generations; use for weak hashtables
original commit: 6f7147e505aae5c2b9139eea6df8a9c25a35289d
2017-05-24 09:38:24 -06:00
Matthew Flatt
18cdcd977e add ephemerons
original commit: 8a09c2c3f032e6e30b1ef393d2334963aa70507e
2017-05-24 09:38:24 -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
Matthew Flatt
2d63f03442 support Windows build on Bash/WSL
original commit: 7e4782db08210cbacd1bbe46b3a5e166d8dbe20f
2017-05-02 08:25:09 -06: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
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
3daedbcaa6 - fixed typo: fxvector-immutable-flag used in place of
bytevector-immutable-flag in computation of type-immutable-bytevector
    cmacros.ss
- reallocated typed-object types, using previously unused tag #b010
  for strings and giving bytevectors both #b001 and #b101 (the
  latter for immutable bytevectors) so that the maximum bytevector
  length on 32-bit machines is once again the most-positive fixnum.
  treating bytevectors rather than strings or fxvectors (or even
  vectors) special in this regard is appropriate since the maximum
  number of bytes in a bytevector is maximum-length x 1 rather than
  maximum-length x 4 for strings, fxvectors, and vectors on 32-bit
  machines.  with this change on 32-bit machines, a vector can
  occupy up to 1/2 of virtual memory, strings and fxvectors 1/4,
  and bytevectors 1/8.
    cmacros.ss
- remade boot files

original commit: 0694b3a5223ab937379e54079bc88d57309dc51f
2017-03-16 11:45:33 -04: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
Bob Burger
03072287e9 64-bit Windows double varargs
original commit: c343e7181b4c69589a7ce73fdfd11b23905a48d3
2017-03-13 15:46:49 -04:00
Kent Dybvig
9a16156574 eliminated some direct assumptions that a vector's type/length field
is a fixnum and added meta-asserts to verify that it is in a couple of
others, to facilitate future changes to vector typing.  vectors are
now treated essentially like fxvectors, strings, and bytevectors.
  cmacros.ss, cpnanopass.ss, prims.ss, mkheader.ss,
  alloc.c, gc.c, scheme.c

original commit: 564542d32bbae6b33cef808613238d5a4a2a8ee2
2017-03-12 23:54:38 -04: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
bcb40c394b Write "twelfth" instead of "twelveth" in format
original commit: 19f41527b0ee4c70415999d2cb8b8a2b845f0066
2016-12-22 16:39:00 -05:00
Chris Frisz
477698d4a8 Fix profile counters for non-s-expression source
Check both the beginning file pointer (bfp) and end file pointer (efp)
of the source location associated with a profile counter when updating
its count.

Assuming that each expression has a unique bfp with respect to profiling
seems to give accurate execution counts for s-expression-based source
locations as in Scheme, but causes problems when targeting other kinds
of syntax. For instance, a C-style function call, referencing the called
function by name, such as "fn(arg)", can logically have profile counters
associated with 1) the function name reference ("fn") and 2) the entire
function call expression ("fn(arg)"), both of which begin at the same
source location. Only the bfp is checked when updating profile counters,
so the two source locations are conflated, and only one counter is
incremented, which gives inaccurate execution counts for both locations;
approximately twice as many for one, and zero for the other.

original commit: d364b05c3c9cd2b299fc20a6f5ec255ab7bd6718
2016-11-02 15:14:34 -04: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
Gavin Whelan
339e25d47e - fixed a bug in case and exclusive-cond syntax-error calls causing an
exception in syntax-error instead of the intended error message.
    s/syntax.ss

original commit: 17a5c5d27b02b7c4a1edc5ee36a6aa43de62c4cb
2016-08-21 23:38:57 -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
Andy Keep
88e29168b8 Merge branch 'master' of github.com:cisco/chezscheme
original commit: feea4550cc6818b529ceb808c6a31a244a6a227b
2016-07-31 22:10:26 -04:00
dybvig
fde2de6249 Merge branch 'master' of git://github.com/michaellenaghan/ChezScheme into michaellenaghan-master
original commit: cdb20639749b7a38f85629a1db46b29624a588ad
2016-07-30 14:36:14 -04:00