Commit Graph

430 Commits

Author SHA1 Message Date
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
Andy Keep
33116e32ae removing the intentional fail from 5_3.ms
original commit: bd6d8721a99c83116f709e76ae954c50d7cf0b1c
2018-01-22 21:47:53 -05:00
Andy Keep
b24833c44d Adding build status icon for this branch.
original commit: ce0f9b5b165915b3d9d2e232ebefc2901139ec99
2018-01-15 23:18:56 -05:00
Andy Keep
63a6884f9e More complete build script with checking.
original commit: e5a95095ae636475c7e44255d083012855168fcd
2018-01-15 22:52:45 -05:00
Andy Keep
6d9ed8bf04 Updated to run the partialx again.
original commit: d32395ab408c09a4ff02d741e1854fbdb92201b8
2018-01-15 22:14:58 -05:00
Andy Keep
c5f5edf3bc Updated the dobuild.sh script to print summary and diff with expected summary.
original commit: e9424df9f712fefb108ad22ed75a2fb4705272f6
2018-01-15 22:13:04 -05:00
Andy Keep
e43572f570 Marking dobuild.sh executable.
original commit: 35602172bc334a61c386f4dc5faba7f6ca147283
2018-01-15 22:05:13 -05:00
Andy Keep
8d03bb0fe5 Small update to move build out to a seperate file, also adding expected summary.
Moved command out of travis configuration file and created a separate bash
script we could run.  The filtering appears to be getting in the way of the
error code being forwarded up to the running shell, and it is possible the -e
option on bash will help.  The summary file is the expected result file (for
diffing, if necessary).
  .travis.yml, .travis/dobuil.sh (new), .travis/summary

original commit: 48cb144d83b5fffa0d2523790a6d0bf172d154ea
2018-01-15 21:24:22 -05:00
Gustavo Massaccesi
63a6443c26 fix a few signatures
primdata.ss

original commit: 903e017f2611f7e2c3817667afefee7a0ebfae35
2018-01-15 22:58:34 -03:00
Andy Keep
cb0c235ef2 Small change to check exit code.
original commit: a1f2cb9f64cb532d4253a2daa8be70c530b68054
2018-01-15 20:50:40 -05:00
Andy Keep
bd00226709 Adding an intentionally failing test to test my build checking theories.
original commit: 227914ff17eefcc12d3ca6cebe8c844df348734e
2018-01-15 19:59:52 -05: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