Commit Graph

329 Commits

Author SHA1 Message Date
R. Kent Dybvig
062e6a6e4e Merge pull request #213 from mflatt/fp-struct
Foreign-procedure struct args and results
original commit: de860f2f4c50eeda7e540b7b44fd7d0d1b7dad90
2018-03-13 09:11:59 -04:00
Matthew Flatt
743800bbb5 support struct args to and results from foreign procedures
original commit: f0a94bdb9f57c1bf7ffbb66693fb5476a6f0e65b
2018-03-12 21:01:47 -06:00
Bob Burger
fb9d36e050 Use spin loop instead of Sleep for more robust race condition mitigation
original commit: fb9f854d449ee96cccb63a12629a729046f0bee1
2018-02-21 16:39:26 -05:00
Bob Burger
6b1259cfef Mitigate a race condition in Windows when deleting files and directories.
original commit: 1a13def8d6570babe378f4c63b5a488fac58ed3f
2018-02-21 16:05:21 -05:00
Bob Burger
5f704d57da fix ftype mats on Windows by unsetting the CL environment variable
original commit: 829d7f52e7e35e2277c4c5037b9d70771df4541c
2018-02-21 11:40:08 -05:00
dyb
de7a304653 Merge branch 'gus-massa-18-2-Map-Null'
original commit: 772766cc7ff8735908062ade7da44ce084ae012b
2018-02-18 20:44:26 -05:00
dyb
59c87c8e9f minor corrections to 4.ms; updated root-experr-compile-{0,2}-f-f-f
original commit: 86591f9dd45f36aa0e7d320d2286ffdb1b49076e
2018-02-18 20:41:15 -05:00
Gustavo Massaccesi
4991067ed7 Remove special case for (#2%map p '()) in cp0
So the reduced version checks that p is a procedure
Also make the same change for #2%for-each.
  cp0.ss, 4.ms

original commit: 5caa11c85bc74c0af25ac215d48b7f5f0c1d3e42
2018-02-13 17:47:43 -03:00
dybvig
af60b1c8df updaed release-notes date
original commit: 1e010f5632306305cf1bd44d86c9c51b33a2e7a1
2018-02-01 00:38:14 -05:00
dybvig
34b328092d Added some adapted charter and contributing text to the user's giude
preface and intro.  Added Matthew Flatt to the acknowledgements.

original commit: 332e015dc2cd96160c468278def7d3b2cf8a1131
2018-02-01 00:13:58 -05:00
dybvig
5933a80445 Adding missing file cpcommonize.ss.
original commit: f94b55e92e329a5ea81938b04b217cb267f4f7af
2018-01-29 16:01:25 -05:00
dybvig
f7c414bda3 Various updates, mostly to the compiler, including a new lambda
commonizatio pass and support for specifying default record
equal and hash procedures:

- more staid and consistent Mf-cross main target
    Mf-cross
- cpletrec now replaces the incoming prelexes with new ones so
  that it doesn't have to alter the flags on the incoming ones, since
  the same expander output is passed through the compiler twice while
  compiling a file with macro definitions or libraries.  we were
  getting away without this just by luck.
    cpletrec.ss
- pure? and ivory? now return #t for a primref only if the prim is
  declared to be a proc, since some non-proc prims are mutable, e.g.,
  $active-threads and $collect-request-pending.
    cp0.ss
- $error-handling-mode? and $eol-style? are now properly declared to
  be procs rather than system state variables.
    primdata.ss
- the new pass $check-prelex-flags verifies that prelex referenced,
  multiply-referenced, and assigned flags are set when they
  should be.  (it doesn't, however, complain if a flag is set
  when it need not be.)  when the new system parameter
  $enable-check-prelex-flags is set, $check-prelex-flags is
  called after each major pass that produces Lsrc forms to verify
  that the flags are set correctly in the output of the pass.
  this parameter is unset by default but set when running the
  mats.
    cprep.ss, back.ss, compile.ss, primdata.ss,
    mats/Mf-base
- removed the unnecessary set of prelex referenced flag from the
  build-ref routines when we've just established that it is set.
    syntax.ss, compile.ss
- equivalent-expansion? now prints differences to the current output
  port to aid in debugging.
    mat.ss
- the nanopass that patches calls to library globals into calls to
  their local counterparts during whole-program optimization now
  creates new prelexes and sets the prelex referenced, multiply
  referenced, and assigned flags on the new prelexes rather than
  destructively setting flags on the incoming prelexes.  The
  only known problems this fixes are (1) the multiply referenced
  flag was not previously being set for cross-library calls when
  it should have been, resulting in overly aggressive inlining
  of library exports during whole-program optimization, and (2)
  the referenced flag could sometimes be set for library exports
  that aren't actually used in the final program, which could
  prevent some unreachable code from being eliminated.
    compile.ss
- added support for specifying default record-equal and
  record-hash procedures.
    primdata.ss, cmacros.ss, cpnanopass.ss, prims.ss, newhash.ss,
    gc.c,
    record.ms
- added missing call to relocate for subset-mode tc field, which
  wasn't burning us because the only valid non-false value, the
  symbol system, is in the static generation after the initial heap
  compaction.
    gc.c
- added a lambda-commonization pass that runs after the other
  source optimizations, particularly inlining, and a new parameter
  that controls how hard it works.  the value of commonization-level
  ranges from 0 through 9, with 0 disabling commonization and 9
  maximizing it.  The default value is 0 (disabled).  At present,
  for non-zero level n, the commonizer attempts to commonize
  lambda expressions consisting of 2^(10-n) or more nodes.
  commonization of one or more lambda expressions requires that
  they have identical structure down to the leaf nodes for quote
  expressions, references to unassigned variables, and primitives.
  So that various downstream optimizations aren't disabled, there
  are some additional restrictions, the most important of which
  being that call-position expressions must be identical.  The
  commonizer works by abstracting the code into a helper that
  takes the values of the differing leaf nodes as arguments.
  the name of the helper is formed by concatenating the names of
  the original procedures, separated by '&', and this is the name
  that will show up in a stack trace.  The source location will
  be that of one of the original procedures.  Profiling inhibits
  commonization, because commonization requires profile source
  locations to be identical.
    cpcommonize.ss (new), compile.ss, interpret.ss, cprep.ss,
    primdata.ss, s/Mf-base,
    mats/Mf-base
- cpletrec now always produces a letrec rather than a let for
  single immutable lambda bindings, even when not recursive, for
  consistent expand/optimize output whether the commonizer is
  run or not.
    cpletrec.ss,
    record.ms
- trans-make-ftype-pointer no longer generates a call to
  $verify-ftype-address if the address expression is a call to
  ftype-pointer-address.
    ftype.ss

original commit: b6a3dcc814b64faacc9310fec4a4531fb3f18dcd
2018-01-29 09:20:07 -05:00
Andy Keep
1cdc2a7e0f Merge pull request #260 from gus-massa/18-1-ProfileQW
Fix a few signatures
original commit: 6ead5d9fcf18bd2311965e401cf3c9a78e50a7b2
2018-01-23 08:49:47 -05:00
Gustavo Massaccesi
63a6443c26 fix a few signatures
primdata.ss

original commit: 903e017f2611f7e2c3817667afefee7a0ebfae35
2018-01-15 22:58:34 -03:00
Andy Keep
ef497bf210 Merge branch 'bounds' of https://github.com/mflatt/ChezScheme into mflatt-bounds
original commit: b619c426142eaa8ae410138e17d16bd1e7f133e9
2018-01-15 13:10:29 -05:00
Andy Keep
3cedf42ed2 - added tests to ensure the optimize-level version 2 of map and for-each raise
a non-procedure exception when the first argument is not a procedure, even
  when the rest of the program is compiled at optimize level 3.
    4.ms, root-experr-compile-0-f-f-f, patch-compile-0-t-f-f,
    patch-compile-0-f-t-f, patch-interpret-0-f-t-f, patch-interpret-0-f-f-f,
    patch-interpret-3-f-t-f, patch-interpret-3-f-f-f

original commit: 7916447d1a482ec91ae63927692053d727d9b459
2018-01-15 13:07:23 -05:00
Andy Keep
093b4e2f40 Merge branch 'gus-massa-17-12-Map-Error'
original commit: d6bd351dfc59537c6a3d0e44094f1e21355e482a
2018-01-13 12:28:54 -05:00
Andy Keep
1a35e17a60 Merge branch '17-12-Map-Error' of https://github.com/gus-massa/ChezScheme into gus-massa-17-12-Map-Error
original commit: 154ed6a4113b3f440e9d5a8348270d2ca1ace807
2018-01-13 12:28:11 -05:00
Gustavo Massaccesi
eb9d65d88c avoid building the result list in a map that is called for effect
cp0.ss

# Conflicts:
#	s/cp0.ss

original commit: 12353c17917f0979e72740592891ce928b40963f
2018-01-10 17:59:16 -03:00
Gustavo Massaccesi
d593fe4a78 Check that first argument of map is a procedure in cp02 expansion
to raise the same error that the non expanded version
  cp0.ss

original commit: cf10634c29c5f873e1e77b1868dd58071650dba3
2018-01-10 17:57:06 -03:00
Matthew Flatt
1dba8c4624 fix bounds check on immutables values and an immediate index
original commit: fc064b5b91bc5c7da8b7c71441a37e3c05523986
2018-01-07 08:48:57 -07:00
Bob Burger
74fa386d2d fix c/vs.bat to work on 32-bit Windows
original commit: 78f0caf0fbdfa8ff9fd8e4ac1f2b12ee21214fef
2018-01-03 10:06:17 -05:00
Bob Burger
da9fec41e4 Generalized Windows Visual C++ merge module locator for Visual Studio 2017
original commit: 700c3c47ced6657924628ea0db7ee2679e50788a
2018-01-02 13:35:04 -05:00
Bob Burger
350f87ba4d fix bug in date->time-utc caused by incorrect use of difftime in Windows
original commit: 4748dad50c7f0e9b3ba002c27990d4c88c0189fc
2017-12-29 16:48:30 -05:00
Andy Keep
228a22ad84 Merge pull request #249 from mflatt/evenodd
even? and odd?: reject exceptional flonums, since they're not integers
original commit: 85299506afb2acaa5b957a86aeca54812c14be40
2017-12-29 04:19:46 +01:00
Andy Keep
b1a19f79bb Merge branch 'master' into evenodd
original commit: 1c0f190d28f2304a57e5db051a3dea69a914e903
2017-12-28 21:03:59 -05:00
Matthew Flatt
9a51376b5a even? and odd?: reject exceptional flonums, since they're not integers
original commit: 94a28793313c714520635bd09359ef8bde2d52a8
2017-12-28 17:00:04 -06:00
Bob Burger
1a8a6dee21 fix comment about Sscheme_program
original commit: abb991bcd87f64eeae9a3848959191a4da5d6542
2017-12-28 10:54:03 -05:00
Andy Keep
4f9145544e Merge pull request #242 from gus-massa/17-12-Signatures
fix a few signatures
original commit: 7c543c9208530c72818eb41c1f2797001a01607b
2017-12-24 17:22:14 -05:00
Gustavo Massaccesi
7a8d824b3d fix a few signatures
s/primdata.ss

original commit: 0886e9807c7ded82dd836b54c963ea8c966d5c54
2017-12-15 20:17:27 -03:00
Gustavo Massaccesi
dc0be2bfbe fix mat of substring-fill!
after the recent change, the result of substring-fill! is void
  5_5.ms

original commit: a2cd9856be74008cc23b6ca3476339e79a1cd5ff
2017-12-15 19:28:43 -03:00
Andy Keep
f1b9fc95da Fixing output of substring-fill! and vector-fill!
- fixed substring-fill! and vector-fill! to return void, reflecting the
  documented return value of unspecified value.  Also changes substring-fill!
  to use define-who instead of repeating 'substring-fill! in all the error
  messages.
    5_4.ss, 5_6.ss

original commit: 3f65788b5422693f3648a9e2fe575f464eb31ccd
2017-12-12 08:43:01 -05:00
Bob Burger
3863e63ef9 added support for Visual Studio 2017.15.5
original commit: 33eaccf5d0105186d66faa76e8463bab9369bf1a
2017-12-07 17:18:22 -05:00
Andy Keep
84c6961dc9 Merge pull request #225 from gus-massa/17-10-Enumerate
Fix enumerate signature
original commit: f0ca1390f2ef606b8ea6fa0f39b44df986d7d67a
2017-12-05 13:50:11 -05:00
Andy Keep
6b1320eb67 Merge branch 'master' into 17-10-Enumerate
original commit: ec7dfdee5081f0e415e2922e1b6ded91f66d77a7
2017-12-05 13:48:44 -05:00
Andy Keep
280e3632bb Merge branch 'master' into 17-10-Enumerate
original commit: 1ca717c9ece587f08a654772a72f1452357ca389
2017-12-05 12:22:07 -05:00
Andy Keep
c7595427d1 Merge pull request #240 from gus-massa/17-12-BV-Native
fix bytevector-[u/s]16-native-set! signature
original commit: c073c364e3da5a3b6a6cbc4b1e0f6c899670f6b3
2017-12-05 12:21:04 -05:00
Gustavo Massaccesi
1ecfb04a58 fix bytevector-[u/s]16-native-set! signature
original commit: 5d4e2fa1b2cf1ad7011b94b2b5262f734d5f0530
2017-12-05 12:43:49 -03:00
Bob Burger
449d7c7f38 Merge pull request #239 from barak/master
fixed a couple typos
original commit: 073dbccf7fec0b2856c2f85e5f3636f2702c630b
2017-12-04 09:47:22 -05:00
Barak A. Pearlmutter
877bf5e25b spelling
original commit: bf67725d5538defc7e006b0fb7a2eb95993b6f34
2017-12-04 09:35:31 +00:00
Andy Keep
07987daf04 Merge branch 'master' into 17-10-Enumerate
original commit: ad54c2dddd68ca5aec37f0837f72cbfdaac6bb7b
2017-11-24 09:27:36 -05:00
Bob Burger
db1ce365fc fixed two typos
original commit: 2d1d3ad5fcf4b63423d9e7ff783315792ac81626
2017-11-22 10:38:33 -05:00
dyb
b453ab1582 updated release notes with entry about improved compile times
for procedures with large numbers of variables

original commit: bc117fd4d567a6863689fec6814882a0f04e577a
2017-11-09 11:12:34 -05:00
dyb
893dfe5d35 maybe-compile-{file,program,library} and automatic import
compilation now treat a malformed object file as if it were
not present and needs to be regenerated.  A malformed object
file (particularly a truncated one) might occur if the compiling
processes is killed or aborts before it has a chance to delete
a partial object file.
  syntax.ss,
  7.ms

original commit: c2cb8c79a925c0eb2f9d589e3a497712800bd1dc
2017-11-07 21:49:08 -05:00
dyb
431c1af87f updated CSUG pointer
original commit: 93b428e656504852a3efb154217e4f7779d74c1d
2017-11-02 10:37:55 -04:00
dyb
59d2ca053c Merge branch 'master' of github.com:cisco/chezscheme
original commit: 5cfeee1f12507b70a1aa9fe1fd2094c8ff592bca
2017-10-30 21:02:54 -04:00
dyb
64b0db8e30 fixed gather-filedata's sort of profile entries. for any two
entries x and y in the list produced by the sort call, if x's
bfp = y's bfp, x should come before y if x's efp < y's efp.
The idea is that enclosing entries should always come later
in the list.  this affects only languages where two expressions
can start at the same character position.
  pdhtml.ss
expanded capability of ez-grammar with support for simpl
parsing of binary operators w/precedence and associativity
and automatically generated markdown grammar descriptions.
ez-grammar-test.ss now also doubles as a test of pdhtml for
algebraic languages.
  mats/examples.ms,
  examples/ez-grammar.ss, examples/ez-grammar-test.ss,
  examples/Makefile

original commit: 53b8d16a1e86f3956585dbec0c7b573e485f7844
2017-10-30 21:01:43 -04:00
Bob Burger
029fe628f3 updated newrelease to handle mats/Mf-*nt
original commit: 02a321479626d2a9e9f5ee0d5b4862eaed4859c8
2017-10-30 17:32:37 -04:00
dyb
9b6b6d32ee attempt to stabilize timing tests let-values source-caching
test and ephemeron gc test while resensitizing the former
  8.ms, 4.ms
various formatting and comment corrections
  workarea,
  s/Mf-base, bytevector.ss, cpnanopass.ss, date.ss,
  5_6.ms, examples.ms

original commit: 19e2505fc6477fce2d1d0e61187bd504b58ea994
2017-10-29 17:48:43 -04:00
dyb
0d236d959c fixed LOG entry
original commit: 328cb00845cc52fa89c3e558bfdab2fcf8f3bee1
2017-10-27 23:21:28 -04:00