Commit Graph

148 Commits

Author SHA1 Message Date
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
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
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
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
280e3632bb Merge branch 'master' into 17-10-Enumerate
original commit: 1ca717c9ece587f08a654772a72f1452357ca389
2017-12-05 12:22:07 -05:00
Gustavo Massaccesi
1ecfb04a58 fix bytevector-[u/s]16-native-set! signature
original commit: 5d4e2fa1b2cf1ad7011b94b2b5262f734d5f0530
2017-12-05 12:43:49 -03:00
Andy Keep
07987daf04 Merge branch 'master' into 17-10-Enumerate
original commit: ad54c2dddd68ca5aec37f0837f72cbfdaac6bb7b
2017-11-24 09:27:36 -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
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
dyb
983e8b6c00 Numerous changes to improve register/frame allocation speed for
procedures with large numbers of variables:
- added pass-time tracking for pre-cpnanopass passes to compile.
    compile.ss
- added inline handler for fxdiv-and-mod
    cp0.ss, primdata.ss
- changed order in which return-point operations are done (adjust
  sfp first, then store return values, then restore local saves) to
  avoid storing return values to homes beyond the end of the stack
  in cases where adjusting sfp might result in a call to dooverflood.
    cpnanopass.ss, np-languages.ss
- removed unused {make-,}asm-return-registers bindings
    cpnanopass.ss
- corrected the max-fv value field of the lambda produced by the
  hand-coded bytevector=? handler.
    cpnanopass.ss
- reduced live-pointer and inspector free-variable mask computation
  overhead
    cpnanopass.ss
- moved regvec cset copies to driver so they aren't copied each
  time a uvar is assigned to a register.  removed checks for
  missing register csets, since registers always have csets.
    cpnanopass.ss
- added closure-rep else clause in record-inspector-information!.
    cpnanopass.ss
- augmented tree representation with a constant representation
  for full trees to reduce the overhead of manipulating trees or
  subtress with all bits set.
    cpnanopass.ss
- tree-for-each now takes start and end offsets; this cuts the
  cost of traversing and applying the action when the range of
  applicable offsets is other than 0..tree-size.
    cpnanopass.ss
- introduced the notion of poison variables to reduce the cost of
  register/frame allocation for procedures with large sets of local
  variables.  When the number of local variables exceeds a given
  limit (currently hardwired to 1000), each variable with a large
  live range is considered poison.  A reasonable set of variables
  with large live ranges (the set of poison variables) is computed
  by successive approximation to avoid excessive overhead.  Poison
  variables directly conflict with all spillables, and all non-poison
  spillables indirectly conflict with all poison spillables through
  a shared poison-cset.  Thus poison variables cannot live in the
  same location as any other variable, i.e., they poison the location.
  Conflicts between frame locations and poison variables are handled
  normally, which allows poison variables to be assigned to
  move-related frame homes.  Poison variables are spilled prior to
  register allocation, so conflicts between registers and poison
  variables are not represented.  move relations between poison
  variables and frame variables are recorded as usual, but other
  move relations involving poison variables are not recorded.
    cpnanopass.ss, np-languages.ss
- changed the way a uvar's degree is decremented by remove-victim!.
  instead of checking for a conflict between each pair of victim
  and keeper and decrementing when the conflict is found, remove-victim!
  now decrements the degree of each var in each victim's conflict
  set.  while this might decrement other victims' degrees unnecessarily,
  it can be much less expensive when large numbers of variables are
  involved, since the number of conflicts between two non-poison
  variables should be small due to the selection process for
  (non-)poison variables and the fact that the unspillables introduced
  by instruction selection should also have few conflicts.  That
  is, it reduces the worst-case complexity of decrementing degrees
  from O(n^2) to O(n).
    cpnanopass.ss
- took advice in compute-degree! comment to increment the uvars in
  each registers csets rather than looping over the registers for
  each uvar asking whether the register conflicts with the uvar.
    cpnanopass.ss
- assign-new-frame! now zeros out save-weight for local saves, since
  once they are explicitly saved and restored, they are no longer
  call-live and thus have no save cost.
    cpnanopass.ss
- desensitized the let-values source-caching timing test slightly
    8.ms
- updated allx, bullyx patches
    patch*

original commit: 3a49d0193ae57b8e31ec6a00b5b49db31a52373f
2017-10-27 23:16:47 -04:00
Gustavo Massaccesi
425b39da5b fix enumerate signature
original commit: f28167b985190ebab58a1c58d7693077ee29e96a
2017-10-15 23:11:21 -03:00
Andy Keep
59e6db7a61 Merge branch 'master' of github.com:cisco/ChezScheme
original commit: 1febe9b1a1e1cde4b7be8bc562153ee4b42afd8c
2017-10-14 00:00:19 -04:00
Andy Keep
b681ad9738 - Updated CSUG to replace \INSERTREVISIONMONTHSPACEYEAR with the current
month and year at the time of generation.
    csug.stex, copyright.stex
- Updated configuration to set machine types in the CSUG and release notes
  make files, and updated distclean target to remove these files.
    configure, makefiles/Makefile-csug.in (renamed from csug/Makefile),
    makefiles/Makefile-release_notes.in
      (renamed from release_notes/Makefile),
    makefiles/Makefile

original commit: d4fdb3e0c88c40cceeeeeb52032068408edc7a6e
2017-10-13 23:50:20 -04:00
dyb
3f79fa0c65 - ifdef'd out include of xlocale.h for glibc, since the glibc
locale.h includes xlocale.h or, in glibc 2.26, its replacement.
    expeditor.c

original commit: b04e9123a427034a39fc9084ba2a8b04608bbb3b
2017-10-13 16:59:16 -04:00
dyb
09366c6247 - the $case macro used by r6rs:case and case now unconditionally trims
redundant keys and expands into exclusive-cond rather than cond.
  it catches references to => before expanding into exclusive-cond
  to avoid supporting => as an undocumented and useless extension
  of the case syntax.  the r6rs:case and case macros now require
  multiple clauses rather than leaving the enforcement to exclusive-cond,
  and the exclusive-cond macro now requires multiple clauses rather
  than leaving the enforcement to cond.
    syntax.ss,
    4.ms, root-experr*, patch*

original commit: 303921d8515b101c558a056dcf9c05f7cad97f4a
2017-10-13 14:33:32 -04:00
Bob Burger
4a3e756767 more version number updates
original commit: 35ea1941338338894a05b57cd6656a4b58fc1a17
2017-10-12 10:05:30 -04:00
dyb
e7fd8172a0 - Added setting of CHEZSCHEMELIBDIRS to s and mats make files so that
an existing setting will not interfere with the build process, and
  added a note to BUILDING that CHEZSCHEMELIBDIRS should be unset in
  Version 9.5 and before.
    s/Mf-base, mats/Mf-base, BUILDING

original commit: 1cccd56693911a38ece784da677e35f724950700
2017-10-12 09:47:58 -04:00
dyb
e55e744c4d - updated version to 9.5.1
bintar BUILDING NOTICE makefiles/Mf-install.in scheme.1.in
    c/Makefile.i3nt c/Makefile.a6nt c/Makefile.ti3nt c/Makefile.ta6nt
    workarea c/scheme.rc s/7.ss s/cmacros.ss
    release_notes/release_notes.stex csug/csug.stex

original commit: c9c45641cc50b073329cc6d219140cf93fbd5c4c
2017-10-11 19:57:53 -04:00
dyb
5705bf3a69 - added version number to scheme.1.in trailer; updated date.
scheme.1.in, newrelease
- removed version update of no-longer-existing bldnt.bat.  "fixed"
  sed patterns to replace \? with * for the benefit of the deficient
  mac sed.
    newrelease
- updated version to 9.5
    bintar BUILDING NOTICE makefiles/Mf-install.in scheme.1.in
    c/Makefile.i3nt c/Makefile.a6nt c/Makefile.ti3nt c/Makefile.ta6nt
    workarea c/scheme.rc s/7.ss s/cmacros.ss
    release_notes/release_notes.stex csug/csug.stex
- updated release notes and fixed user's guide overfull hbox.
    release-notes.stex, syntax.stex
- updated install target to do something more sensible
    release_notes/Makefile

original commit: adb3b7bb22ddaa1ba91b98b6f4a647427c3a4d9b
2017-10-11 18:26:23 -04:00
dyb
e5ee788d6f - renamed s_gettime => S_gettime to remain consistent with the
convention that the only undocumented externs are prefixed with
  S_.
    externs.h, stats.c, thread.c

original commit: 898c3941d807a18c393a4575a72283e3671ee7e5
2017-10-11 16:35:24 -04:00
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
Peter Klein
16e8291539 Refactor windows installers and fix vcredist
- Separate 64 and 32 bit MSIs
- Add wix bundle to combine MSIs into single installer
- Use basic wix UI
- Use merge modules to install vcredist package
- Add script to locate vcredist merge modules
- Fix installer status text by adding WixUI_ErrorProgressText ref

Merge modules seems to be the preferred method for installing the
redistributable package, which should decrease the package size and
speed up installation. This commit also addresses a bug where the
installer does not work when VC redistributable is not already
installed.

The 32 and 64 bit components were split into separate MSIs because
Windows Installer only officially supports packages containing a
single architecture. A package bundle is then created containing both
MSIs so only a single file needs to be distributed.

There seemed to be no trivial way to get the path to the vcredist
merge modules bundled with visual studio so I added a script
(locate-vcredist.bat) that handles this. It will need to be updated in
the future for compatibility with newer VS platform toolsets.

Some paths and name were changed, here's a summary:

32-bit install path: C:\Program Files (x86)\Chez Scheme 9.4.1\
64-bit install path: C:\Program Files\Chez Scheme 9.4.1\
installer file name: ChezScheme.exe
installer product name: Chez Scheme 9.4.1 x64

original commit: a8867749df27db41ebbafeb0dc914e5e6680cf9e
2017-08-30 21:08:40 -04:00
Peter Klein
29b81a5ade Add support for building with Visual Studio BuildTools
original commit: d6517a5befd5f2fa17cc3557c9262455520b1010
2017-08-18 11:03:32 -04:00
Bob Burger
6c4c4d0b12 added support for building Windows installs with Bash/WSL
original commit: f6780ec692e89cf8f5d55734b351b840e9321333
2017-08-14 11:32:29 -04:00
Bob Burger
5c5bdcd841 added support for Microsoft Visual Studio 2017 on Windows
updated ez-grammar-test to write temp files to current directory and delete them when finished

original commit: 89885b73d679759de9c62bab0b407318df123d6f
2017-08-11 13:10:37 -04:00
dybvig
ff64811604 - added "ez-grammar" example program
examples/ez-grammar.ss, examples/ez-grammar-test.ss,
    examples/Makefile, examples.ms

original commit: dd0dec63e7c333d2edc51e7340a8b14e7e3d130b
2017-08-08 22:04:52 -04:00
Bob Burger
7ba018bd41 fixed broken mats on Windows caused by Bash/WSL changes
original commit: 996ba3897f1c4ea27b4b6a15264dc6f6a14c6cdb
2017-08-03 11:51:16 -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
dybvig
f559e220db - minor wordsmithing and fix for an overfull hbox
objects.stex, system.stex

original commit: dfa469217af6ddea0bc68086b55a22b253977dbf
2017-07-12 13:40:49 -04:00
dybvig
35590cea2b - fixed pariah mat
misc.ms

original commit: 271eae05086b2299529acf039a638543796e16a9
2017-07-12 13:25:25 -04: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
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
Bob Burger
0af9c2bbbf fixed typo in S_abnormal_exit
original commit: 53780b295c876f524ca73b6e93ab27960808622d
2017-06-27 12:26:22 -04:00
Matthew Flatt
1932612543 add bytevector-compress and bytevector-decompress
original commit: aa062c09c9f0d129250db84aeb0a5190647c5574
2017-06-21 17:52:28 -06:00
Graham Watt
62055ddbf6 Merge branch 'master' into no-implicit-fallthrough
* master:
  fix reference to libc.so to be libc.so.7 for FreeBSD (machine types i3fb, ti3fb, a6fb, ta6fb)   foreign.ms
  adds entry to LOG
  fixes wrong type for iconv
  support Windows build on Bash/WSL
  Add CC option to configure

original commit: 05ddaf8c994a20450104819e06d7c987bbc0acaa
2017-06-20 19:02:16 -04:00