Commit Graph

233 Commits

Author SHA1 Message Date
Matthew Flatt
0ac2f40d18 vfasl: save relocations if flag is set
original commit: 23ba508373fbcbe1fcba367bce86f60a54bbf4f1
2019-01-02 15:33:04 -07:00
Matthew Flatt
2b090ef32c vfasl repair: terminate segments as needed
When starting a new segment to keep an object on a single segment,
terminate the old one with e forwarding marker.

original commit: 1f1db6d3d2cd930455a3592f2d76a465b30a5592
2019-01-01 15:40:09 -07:00
Matthew Flatt
e97b763478 update Windows makefiles for vfasl
original commit: c5af59e0b5e6e635d25ca5d6e0b2d7f61d2d2bb6
2018-12-31 10:07:15 -07:00
Matthew Flatt
8b5d7ba02e vfasl repair
original commit: ee6a5df5d180ea1c9487ceb1d565d61120e69168
2018-12-31 08:01:47 -07:00
Matthew Flatt
69b92a0ca4 sync vfasl repair
original commit: b234ef2f5cb8352b9755b2cc908d562a25d18c62
2018-12-29 06:16:55 -06:00
Matthew Flatt
a0e9eed93f Merge dfasl branch of mflatt/ChezScheme
original commit: c6168b2d0b1b97e9822bc8eae2e08900cebb7152
2018-12-28 08:45:06 -06:00
Matthew Flatt
7c548bb3a1 update vfasl merge
original commit: 99dac3f53f4a7d2b2c373489135e5d270c256726
2018-12-28 08:39:21 -06:00
Matthew Flatt
6d3fc30233 avoid fasl overflow of C stack
When writing a fasl stream, add extra graph points as needed
to limit recursive reading to about 500 non-tail recursions.

original commit: a6759efdc6ac68e45ec8755a5fe9b75038e173a5
2018-12-28 08:26:50 -06:00
Matthew Flatt
d8dc4c71cc Merge branch 'separate' of ../ChezScheme-vfasl
original commit: 84734ded0f503f6604e7461a8be5e1e795a92efa
2018-12-24 05:32:24 -07:00
Matthew Flatt
545a465cf4 Merge ../ChezScheme-vfasl
original commit: dbe15d6cae6f23c4e218974ac83f36a935292ad2
2018-12-24 05:28:16 -07:00
Matthew Flatt
c3ef889099 fix allocation: avoid malloc and free
original commit: 40da1e7c8820163b4532cc75b6ed3c4229e2c4db
2018-12-23 06:17:53 -07:00
Matthew Flatt
133e820723 simplify vfasl_header
original commit: dab5ea7f7ee761ab6799c242df07ef209657eb74
2018-12-23 05:55:02 -07:00
Matthew Flatt
14e910409c experiment with a different fasl format
Use `vfasl-convert-file` to convert to the vfasl format, something
like this:

 (vfasl-convert-file "orig/petite.boot" "new/petite.boot" '())
 (vfasl-convert-file "orig/scheme.boot" "new/scheme.boot" '("petite"))
 (vfasl-convert-file "orig/racket.boot" "new/racket.boot" '("petite" "scheme"))

original commit: a40886e2fba741ca8cfc5ebd16b902d6414da0ae
2018-12-21 21:06:08 -07:00
Matthew Flatt
f3bbf06ce3 direct to static
original commit: ca6b0890ebd1cdeeae31dc3f11daa7fa02af013e
2018-12-21 14:16:24 -07:00
Matthew Flatt
a993c9c11e combine multiple fasl to one vfasl when possible
original commit: d8d4400b42196088defac994b7f97a26446d8ed2
2018-12-21 08:58:28 -07:00
Matthew Flatt
f0376299a8 experiment with a different fasl format
original commit: e2c50bd7ae5b323fcc796eb78d892f4a2c487dfc
2018-12-20 20:27:41 -07:00
Matthew Flatt
5cace8bee3 repairs
original commit: a7c8036d40fc3c92b6b08ba8d1a62f76f2d5fab6
2018-12-20 20:24:35 -07:00
Matthew Flatt
ed1d5c982d Merge ../ChezScheme-vfasl
original commit: 78ba118cbde76dd42bc4275ccc76219e159e04d7
2018-12-20 17:51:38 -07:00
Matthew Flatt
c90bd7bb6d experiment with a different fasl format
original commit: 6e32ed2a43f6b3d8531e98dfa52a56594dd6a2f4
2018-12-20 17:47:01 -07:00
Matthew Flatt
efb93d2653 Merge branch 'gcbt' of github.com:mflatt/ChezScheme
original commit: 51c6b2a880000ce754e1595f4481957e9fc7f722
2018-12-16 07:00:22 -07:00
Matthew Flatt
7864a1f45e Merge branch 'arity-wrapper' of github.com:mflatt/ChezScheme
original commit: 1967e6fb2948ea59d9f3b403b7b6e20d228502b1
2018-12-16 06:51:39 -07:00
Matthew Flatt
5a27f6de14 Merge branch 'orderfnl' of github.com:mflatt/ChezScheme
original commit: 04618715b7b447877cd874715d78094befb0b988
2018-12-16 06:46:34 -07:00
R. Kent Dybvig
b7cca1a835 Minor tweak
original commit: d2b5ba5d5c45660e63b32fb501b6684d3d11036b
2018-12-05 15:30:40 -08:00
Christian Häggström
d9d0e94d95 Initialize more fields of seginfo
original commit: 48e93161f6ac2796d17a0f147f0dca1e1e195684
2018-12-05 23:36:57 +01:00
Matthew Flatt
31b7c8fd7a add --disable-curses option
To support a more minimal build enviornment, offer the possibility of
building without "curses.h" and "libcurses" (which disables the
expeditor, although the expeditor's code is still included).

original commit: 9a17f73e6fc5e117c19333e15c6afb797dd6b08f
2018-10-22 19:38:08 -06:00
dyb
19f3c85fe2 attempted partial fix for github issue 352
- when thread_get_room exhausts the local allocation area, it now
  goes through a common path with S_get_more_room to allocate a new
  local allocation area when appropriate.  this can greatly reduce
  the use of global allocation (and the number of tc mutex acquires
  in threaded builds) when a lot of small objects are allocated by
  C code with no intervening Scheme-side allocation or dirty writes.
    alloc.c, types.h, externs.h

original commit: 93dfa7674a95837e5a22bc622fecc50b0224f60d
2018-10-05 09:03:30 -07:00
Bob Burger
75a70547f8 use uuid_generate on unix-like systems for S_unique_id
original commit: 2fd3db68230d094a0d396348a8140a4d3693b120
2018-09-19 10:19:03 -04:00
Bob Burger
57b0163e93 add PDB files for Windows
original commit: 6d9bda11c1f8d31bf86c559892cf968d7f0c1595
2018-09-07 16:56:33 -04:00
Matthew Flatt
6e00dab37f bootfiles and fixup
original commit: a6c7f8851fd3996726f62f62e151ff76f0216f72
2018-07-25 18:15:09 -06:00
Matthew Flatt
95d3146c16 Merge branch 'cm' of github.com:mflatt/ChezScheme
original commit: 9d8e3e99e79c1a2fa2cd20849c99f05b91db70d9
2018-07-25 16:07:41 -06:00
Matthew Flatt
4b5daf4594 Merge branch 'arity-wrapper' of github.com:mflatt/ChezScheme
original commit: 23102af98ccd2dacd3529dd37c182d00f1d12490
2018-07-25 16:05:17 -06:00
Matthew Flatt
1860fec019 Merge branch 'gcbt' of github.com:mflatt/ChezScheme
original commit: 59bd17ca5713fbe913e9297e7cbb719b2c45ca7d
2018-07-25 16:01:11 -06:00
Matthew Flatt
b54495f58d Merge branch 'orderfnl' of github.com:mflatt/ChezScheme
original commit: abb84eb7b0dbb9824d0b32407143589ff309a0fb
2018-07-25 16:01:03 -06:00
Matthew Flatt
f919bbcab6 add support for continuation attachments
original commit: 32669b104ef1119aea21f8592cee09d55f696afa
2018-07-25 06:33:46 -06:00
Bob Burger
be2777e261 fix boot_call and the invoke code object to handle multiple values
original commit: 7fd080903d96a1ef9ab79780bf73aa1619f33894
2018-07-18 14:55:53 -04:00
Matthew Flatt
48228739fe add object-references to reflect GC's tracing of objects
The `object-references` function is intended to support debugging of
memory leaks by providing a mapping from each live object to the
object that retained it.

original commit: 61f6602b7e6c388c529f3c5995dcf71a7c42e005
2018-07-16 18:08:48 -06:00
Matthew Flatt
28c8ebaeff add make-arity-wrapper-procedure
A program can use `make-arity-wrapper-procedure` to synthesize a
function that reports a given arity mask (without calling `compile`).

In addition, `set-arity-wrapper-procedure!` suports modifying the
implementation of a synthesized procedure. Although similar
functionality could be achieved with `(lambda args (apply (unbox proc)
args))`, an arity wrapper procedure can dispatch to another procedure
without allocating a list for the arguments.

The interpreter now uses an internal variant of arity wrappers to
cooperate with `procedure-arity-mask`.

original commit: 5fede14302840b55edbeb7565e28d09350a4b2e9
2018-07-16 07:52:55 -06:00
Matthew Flatt
067555c251 add load-compiled-from-port and Sregister_boot_file_fd
original commit: a0adfa18af879f90d746b0b3541b036016957324
2018-07-15 20:44:34 -06:00
Matthew Flatt
2ca43d6c6f add ordered guardians
Also, avoid quadratic time in GC for guardian chains.

original commit: a07c7e14b61862989777909ee63a2ec120c2ea47
2018-07-15 19:12:43 -06:00
Andy Keep
c090b317bd allow s_ee_get_clipboard to use the pastebuffer on macOS even when X11 is not available.
expeditor.c

original commit: f8cf536720fe43d07ca83d284e5bd1733c97372a
2018-07-01 11:45:10 -04:00
d7dcda9637 add an option --disable-x11
original commit: ab43608f22dc68497577ab527c782507144ef0e4
2018-07-01 20:13:18 +08:00
Bob Burger
2f355b464e Avoid an occasional invalid memory violation on Windows in S_call_help
original commit: c2d2467d48eea145455124343c8819dfb683c39e
2018-06-15 16:42:09 -04:00
Bob Burger
8885445d6d Improved Unicode support for command-line arguments, environment variables, the C interface and error messages, and the Windows registry, DLL loading, and process creation
original commit: aa1c2c4ec95c286a12730ea75588a18dd9fb9d59
2018-06-14 14:24:15 -04:00
Andy Keep
b01e92fc4f Merge branch 'master' into gcc-8
original commit: 3fe77b72d97829294f9df3d87deae4649812885c
2018-05-22 23:50:11 -04:00
Bob Burger
486792e042 Use Windows path separator character when finding boot files on Windows.
original commit: 553ac1ae4df56d547051fff5dbbaf82b979ea5e1
2018-05-14 12:15:13 -04:00
Göran Weinholt
336fe9d344 - Double FMTBUFSIZE to fix compilation with gcc-8
c/prim5.c

original commit: 82a14c87aaa44ae004b9d76af42144155e426290
2018-05-04 19:10:44 +02:00
Andy Keep
1f0e42f0ec Merge branch 'pthread' of https://github.com/mflatt/ChezScheme into mflatt-pthread-2
original commit: 2230e5adcb61ac8b27c9deee682270f4e17fbafb
2018-04-21 22:09:05 -04:00
Oscar Waddell
8220ce2b32 handle compiled library code in boot files once base boot is loaded
original commit: 23788415327a5396d14e452fca410ba68431098b
2018-04-13 10:25:03 -04:00
Andy Keep
e79f9a66eb Fixes #273 (on master this time) with -Wno-implicit-fallthrough
Embarrassingly, I committed this change on the wrong branch initially.
Added -Wno-implicit-fallthrough flag to macOS C makefiles.
  c/Mf-a6osx, c/Mf-i3osx, c/Mf-ta6osx, c/Mf-ti3osx

original commit: 8eb8336a7d2870f8e592f060bab8321703e40b48
2018-04-08 12:22:25 -04:00
Matthew Flatt
9aa1fc4caa add collect-rendezvous
original commit: f7cb82d97e34b14bfbafe635b0d4a294527b02c3
2018-04-02 13:52:03 -04:00
Matthew Flatt
22d4fd9978 Add __thread foreign-call convention
See the `foreign-callable` docs for a good example use.

original commit: e3463c78c511ad861dfa49865bb447e9777f9eb8
2018-03-14 17:20:33 -06:00
dybvig
aa8bea9648 reworked the S_call_help/S_return CCHAIN handling to fix a bug in which
the signal handler could trip over the NULL jumpbuf in a CCHAIN record.
  schlib.c
remade boot files

original commit: d8c270403121547101cb523cc1f80a569dbb0378
2018-03-13 12:28:20 -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
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
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
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
Bob Burger
1a8a6dee21 fix comment about Sscheme_program
original commit: abb991bcd87f64eeae9a3848959191a4da5d6542
2017-12-28 10:54:03 -05:00
Barak A. Pearlmutter
877bf5e25b spelling
original commit: bf67725d5538defc7e006b0fb7a2eb95993b6f34
2017-12-04 09:35:31 +00: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
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
Peter Klein
29b81a5ade Add support for building with Visual Studio BuildTools
original commit: d6517a5befd5f2fa17cc3557c9262455520b1010
2017-08-18 11:03:32 -04:00
Bob Burger
be634ff738 fix c/vs.bat for Visual Studio 2017 when %USERPROFILE%\Source exists
original commit: 9289177cc07782674c17555a37fd0e769da742ae
2017-08-15 17:07:12 -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
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
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
fd7606ca05 added casts to c/new-io.c to eliminate compiler warnings in Windows
original commit: 1014ac6b273203a5965e66dee4bacb8399097d87
2017-06-27 12:35:35 -04: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
Andy Keep
0d4c6b6f21 Merge branch 'master' into configure-cc
original commit: 33765fae75faf4a0ccc21f95416694999ce35f1d
2017-06-18 23:08:00 -04:00
Andy Keep
0c8853d68f Merge branch 'master' into master
original commit: 347151369c25253b322c36eacbf4bbb621fe4645
2017-06-18 11:57:34 -04: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
Graham Watt
5eb4eabc3f Disable warning for implicit fallthrough
original commit: e0d965aab30a745157a0c89010bbf5017901d4a7
2017-06-13 20:53:18 -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
Mohamed Akram
7c69fa159d Merge branch 'master' into configure-cc
original commit: dd610cebce89e3283b00880c676dbd82a07b80b4
2017-06-05 07:56:05 +04:00
Daniel Brunner
ce437c7488 fixes wrong type for iconv
This fixes issue #178, on FreeBSD the type should be `char **`.

original commit: cc60b7d951770b0635186333f1c55d1704686630
2017-06-02 16:18:04 +02: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
da7a81e8cd improve some function names, comments, and declarations
original commit: 795c391b8417d6aec3d7888e292efbac415029f7
2017-05-24 09:38:59 -06:00
Matthew Flatt
28f98ebc0b fix typo in comment
original commit: 001603fdf9c171e36d620999d5e4760ab333f119
2017-05-24 09:38:59 -06:00
Matthew Flatt
211fe4cbd7 tests and docs for ephemerons
original commit: 2ea7dcdfca1dea2c89c51c7e9ccd692ba673ba22
2017-05-24 09:38:58 -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
Matthew Flatt
2d63f03442 support Windows build on Bash/WSL
original commit: 7e4782db08210cbacd1bbe46b3a5e166d8dbe20f
2017-05-02 08:25:09 -06:00
Mohamed Akram
d7fcd8e57b Add CC option to configure
original commit: 1a65f0bef4c2af6016c328f7f1151e6d10e342fa
2017-04-28 16:01:09 +04: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
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
dybvig
aa6a006e39 fixed a few comments to refer to scheme.c rather than main.c
externs.h, globals.h, thread.c

original commit: 1a05b09f421fb19d38f3fdfa1f8485fc7943068b
2017-03-13 11:25:25 -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
Matthew Flatt
21fe925d06 add procedure-arity-mask
original commit: 4bd061000ab903feb3fe8e3b96ecbcb10c59dba9
2017-02-22 07:16:53 -07:00
Bob Burger
df45aba923 added needed #ifdef WIN32. Thanks, alflanagan!
original commit: 7728f94291d10d8b86b1ac368c43a53ca3e7d5ae
2016-09-22 14:46:44 -04:00
Bob Burger
30c6552ec2 Use high-precision clock time on Windows 8 and up.
original commit: 15982a28189454d5b7b3b065db5aac9816781bde
2016-09-22 13:36:10 -04:00
Bob Burger
a8645cb2a3 fix type declaration in s_ee_write_char for WIN32
original commit: 2f044f7088ed30e1be42adcf8a4c3e13f3fe06ec
2016-08-26 16:55:06 -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
7389a3ba16 - reworked the S_create_thread_object to print an error and exit when
allocating the thread context fails from Sactivate_thread.  before
  this change, the error was raised on the main thread, which resulted
  in strange behavior at best.  also added who argument to
  S_create_thread_object to allow it to report either Sactivate_thread
  or fork-thread led to the error.
    externs.h, schsig.c, scheme.c, thread.c

original commit: 89691cee27ee7d5e9bffae530b6346e96f8cc7ad
2016-08-05 00:04:00 -04:00
Andy Keep
96a3e21c46 - moved s_ee_write_char function within the WIN32 check to allow the unicode
change to compile on windows.  unicode is not yet supported in the windows
  version of the repl.
    c/expeditor.c

original commit: 4d2f900b2c43a8be384444d965177f1410c2ab82
2016-07-31 22:05:50 -04:00
Jason Felice
14aadeab83 - add unicode support to the expression editor. entry and display now work
except that combining characters are not treated correctly for
  line-wrapping.  this addresses github issue #32 and part of issue #81.
    c/expeditor.c, s/expeditor.ss

original commit: 87d4811781d7e9183f7710aa6a809b850a38454f
2016-07-20 21:54:50 -04:00
Andy Keep
f16869bb35 - fixed three instances of unchecked mallocs reported by laqrix in
github issue #77.
    io.c, schlib.c, thread.c

original commit: fe172bfdfbf2f606db611013e7689d6a2b117d5e
2016-07-17 13:47:40 -04:00
Bob Burger
0d0e876fb7 fixed a couple typos in comments
original commit: 9e2347eeb2bd57b35f96f0f1938ef84d624ed6a4
2016-06-23 16:43:39 -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
Bob Burger
d14d167275 fixed typo in amd64 path
original commit: 11ac1ba5a8fc3f16b997c498d223328f73b31152
2016-06-20 10:04:25 -04:00
dybvig
112c5b4d5c - fixed typo: VC/bin/vcvars64.bat => VC/amd64/vcvars64.bat
c/Mf-a6nt, c/Mf-ta6nt

original commit: f2a69588a37e9a10fafae544c94903613f63986f
2016-06-17 22:26:10 -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
dybvig
83af38b195 Merge branch 'master' of git://github.com/yjqww6/ChezScheme into yjqww6-master
original commit: afa27dd66ae2e45dede6f6900fc2193f48da9086
2016-06-14 23:48:18 -04:00
dybvig
4542d12295 - now forcing zlib configuration before compiling files that depend on
the zlib header files, since zlib's configure script can modify the
  header files.  removed ZlibInclude variable, which no longer serves
  a purpose.
    c/Mf-*, c/Makefile.*nt
- removed unnecessary datestamp.c target
    c/Mf.*nt

original commit: d081c5b19a185597443f47101caa35b8c12084c7
2016-06-14 22:56:36 -04:00
yjqww6
6fd5cb7fdd modification on previous commit for blocking in expeditor
original commit: 02844bee98871bf03cf435441ba23556ad4fc6aa
2016-06-14 20:35:27 +08:00
yjqww6
2b94b98c06 Merge pull request #1 from cisco/master
update
original commit: 8b5090b0260ed7a9b43281e9690f46ff8f61adde
2016-06-14 18:40:19 +08:00
yjqww6
6d7f4089e1 fix thread blocked by expeditor
original commit: fa7516efa7bee58b2a7307e504ed97fc3bc69731
2016-06-11 00:49:25 +08: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
e7852b36e5 - updated newrelease to produce the correct log-entry format and
fixed the existing 9.4.1 log entry
    newrelease, LOG
- replaced a couple of tabs
    number.c

original commit: 0f0468ffd26fcd08c052df484e651ac042d93b74
2016-05-18 23:48:37 -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
820f7bccb9 - updated the fix to S_mktime to work on windows. the struct tm
structure on windows does not have the tm_gmtoff field used in the
  mac and linux version of the code.
    stats.c

original commit: 4339b856d85de4c949ef7c4e66ec679512809a58
2016-05-15 00:16:15 -04:00
Bob Burger
4750828c26 fixed misspellings in comments
original commit: 44370695fbfe86fbf1cd5dd115a2289626604796
2016-05-13 08:49:00 -04:00
Michael Lenaghan
9c0e1170fe Fix typo.
original commit: ce6410a0dd465eef23ba4b045e52c316befd6ec3
2016-05-12 19:48:15 -04:00
Andy Keep
4582ed39d1 Added CPPFLAGS, CFLAGS, and LDFLAGS to the configuration options to support
machines with libraries and header files installed in alternate locations on
unix-like operating systems.
  configure, workarea, checkin,
  c/Mf-base, c/Mf-*

Added support for building from a directory that is not a git checkout in order
to support creating release source packages.
  configure

original commit: 41d94b0793997e3b90c10d6d28aaa4e2d43857cc
2016-05-11 19:23:58 -04:00
Andy Keep
a80f0fb0b3 - added custom install options. workarea creates an empty config.h,
and configure creates a config.h that sets the default scheme heap
  path and scheme-script name based on the actual configuration.
    configure, newrelease, workarea, checkin,
    c/Mf-base, scheme.c, main.c,
    Mf-install.in
- renamed the installed example directory from lib to examples.
    Mf-install.in,
    scheme.1.in
- added force option to gzip during man page install to prevent gzip from
  asking for permission to overwrite existing man page files.
    Mf-install.in
- removed ~/lib/csv%v/%m from the default scheme heap path on unix-like
  systems.  documented inclusion of %x\..\..\boot\%m in the Windows
  default scheme heap path.
    main.c,
    use.stex
- added new configuration options: --installbin, --installlib,
  --installschemename, --installpetitename, and --installscriptname.
    configure
- updated the example library link to the nanopass framework.
    CONTRIBUTING.md
- now cleaning up petite.1 and scheme.1 left behind by make install
    Makefile-workarea.in, checkin
- now removing workarea after cleaning csug and release_notes so
  Mf-stex (included from csug/Makefile and release_notes/Makefile)
  doesn't complain trying to determine the machine type.
    Makefile.in
- added installsh support for --ifdiff so the csug make file can use it
  for the install target.
    installsh,
    csug/Makefile
- added instructions for building (cross-compiling) a boot file for
  a supported machine type for which a boot file is not built by default.
    BUILDING

original commit: df4194c83a9e67d1ec20165fc3e2def4ed8e8986
2016-05-06 18:30:06 -04:00
Andy Keep
bf23095a18 fixed LOG conflict
original commit: 40c15413e3803801146c15fa4010fde62ea7ede3
2016-05-06 16:40:42 -04:00
Barak A. Pearlmutter
b76e20e61c spelling
original commit: f558aa03e44384d9515c3a9b69d48cde4292f38b
2016-05-04 20:03:44 +01: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
A. Green
06b9f8c6a8 refinement to combinatorylogic's changes, adding --installlib option to configure.
original commit: f1c1ba8b94e2ff150f839e4a551fa1b7512f743e
2016-04-29 00:35:37 -06: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
combinatorylogic
ed60710793 Using install prefix in a default heap path; Forcing gzip rewrite for man pages
original commit: 8e87ffbd2e4a2f62f7157228c002aba6d6de5bc6
2016-04-28 11:55:03 +01: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
Kent Dybvig
75dbd90b1b - converted s_test_schlib shifts of -1 to equivalent shifts of 1 to
avoid undefined left-shift behavior on negative numbers.
    prim5.c

original commit: 7427dda85c1ae43f1e3c8f8749a578d50764fdfd
2016-04-26 18:48:07 -04:00
Kent Dybvig
6765641be0 - The scheme.h definition of Sfixnum(x) now uses multiply rather than
left shift to avoid counting on the behavior of << on negative numbers,
  which is undefined in C.
    mkheader.ss
- Fixed a couple of casts, one harmless and the other causing
  Sinteger64_value to return 0 for the most-negative I64 on 32-bit
  builds.
    number.c
- The configure-generated Makefile distclean target no longer removes
  zlib and nanopass, since they are logically part of the git clone.
  It does run make distclean in zlib.
    makefiles/Makefile.in

original commit: 42e6fed96d69fa17cfcd9cdcec101aaa36ba4512
2016-04-26 17:16:02 -04:00
dyb
1356af91b3 initial upload of open-source release
original commit: 47a210c15c63ba9677852269447bd2f2598b51fe
2016-04-26 10:04:54 -04:00