Gareth Rees
4b8601ff78
Use three generations and 32 mb of address space.
...
Copied from Perforce
Change: 180467
ServerID: perforce.ravenbrook.com
2012-11-14 14:12:12 +00:00
Gareth Rees
0bdfcbbede
Typo.
...
Copied from Perforce
Change: 180461
ServerID: perforce.ravenbrook.com
2012-11-13 15:07:49 +00:00
Gareth Rees
f54b26e6a1
Merge documentation changes.
...
Copied from Perforce
Change: 180445
ServerID: perforce.ravenbrook.com
2012-11-11 20:44:19 +00:00
Gareth Rees
952700c3fa
Document more of the entry points.
...
Copied from Perforce
Change: 180444
ServerID: perforce.ravenbrook.com
2012-11-11 20:42:56 +00:00
Gareth Rees
006af61ec3
Merge "do" implementation from scheme.c into scheme-advanced.c.
...
Copied from Perforce
Change: 180443
ServerID: perforce.ravenbrook.com
2012-11-11 19:41:01 +00:00
Gareth Rees
045d54a9e6
Merge "do" implementation into scheme-boehm.c and scheme.c.
...
Copied from Perforce
Change: 180442
ServerID: perforce.ravenbrook.com
2012-11-11 19:40:17 +00:00
Gareth Rees
c9ff7ccb2f
Implement "do".
...
Copied from Perforce
Change: 180441
ServerID: perforce.ravenbrook.com
2012-11-11 19:34:46 +00:00
Gareth Rees
f4c255c9a4
Add two new events:
...
* ArenaAccess for handling barrier hits;
* ArenaPoll for choosing a quantum of work.
Copied from Perforce
Change: 180432
ServerID: perforce.ravenbrook.com
2012-11-09 15:19:35 +00:00
Gareth Rees
f7db760934
(a very little) support for building scheme-boehm.
...
Copied from Perforce
Change: 180419
ServerID: perforce.ravenbrook.com
2012-11-08 16:11:08 +00:00
Gareth Rees
f75869dd86
Frequent garbage collection often turns up problems.
...
Copied from Perforce
Change: 180418
ServerID: perforce.ravenbrook.com
2012-11-08 15:22:09 +00:00
Gareth Rees
1178f213ba
One more test case implemented.
...
Copied from Perforce
Change: 180417
ServerID: perforce.ravenbrook.com
2012-11-08 15:21:51 +00:00
Gareth Rees
3c6b97d65a
Integrate promise fix from scheme to scheme-advanced.
...
Copied from Perforce
Change: 180416
ServerID: perforce.ravenbrook.com
2012-11-08 15:20:57 +00:00
Gareth Rees
3e48dcaeec
Oops, forgot to scan and skip promises!
...
Copied from Perforce
Change: 180415
ServerID: perforce.ravenbrook.com
2012-11-08 15:20:11 +00:00
Gareth Rees
b4c529461e
Add (gc) stub to scheme-malloc.c so we can call it from the test suite.
...
Copied from Perforce
Change: 180414
ServerID: perforce.ravenbrook.com
2012-11-08 15:19:46 +00:00
Gareth Rees
c5be9edd31
Implement full "map" and "for-each" behaviour and run test cases.
...
Copied from Perforce
Change: 180410
ServerID: perforce.ravenbrook.com
2012-11-08 14:01:51 +00:00
Gareth Rees
6cd3e4fda7
Integrate "apply" fix into scheme-advanced.c.
...
Copied from Perforce
Change: 180409
ServerID: perforce.ravenbrook.com
2012-11-08 14:01:10 +00:00
Gareth Rees
c8ad6b46dc
Integrate "apply" fix into scheme-boehm.c and scheme.c.
...
Copied from Perforce
Change: 180408
ServerID: perforce.ravenbrook.com
2012-11-08 13:55:43 +00:00
Gareth Rees
c4486a5381
Operators need to be self-evaluating.
...
"apply" needs to quote the arguments to avoid them being doubly evaluated.
Copied from Perforce
Change: 180407
ServerID: perforce.ravenbrook.com
2012-11-08 13:53:49 +00:00
Gareth Rees
4731069f72
Implement lots more r4rs.
...
Copied from Perforce
Change: 180377
ServerID: perforce.ravenbrook.com
2012-11-06 22:37:53 +00:00
Gareth Rees
54f5897c28
Oops, forgot to remove mps-specific comment.
...
Copied from Perforce
Change: 180376
ServerID: perforce.ravenbrook.com
2012-11-06 19:43:21 +00:00
Gareth Rees
c2abe5baaa
Boehm port of the scheme interpreter.
...
Copied from Perforce
Change: 180375
ServerID: perforce.ravenbrook.com
2012-11-06 19:25:31 +00:00
Gareth Rees
fafb913dc1
Branch scheme-malloc.c to scheme-boehm.c.
...
Copied from Perforce
Change: 180374
ServerID: perforce.ravenbrook.com
2012-11-06 18:37:46 +00:00
Gareth Rees
d02f172de0
"make clean" now idempotent.
...
Copied from Perforce
Change: 180366
ServerID: perforce.ravenbrook.com
2012-11-06 13:52:59 +00:00
Gareth Rees
f4d7511316
More r4rs, r5rs.
...
Copied from Perforce
Change: 180365
ServerID: perforce.ravenbrook.com
2012-11-06 12:16:59 +00:00
Gareth Rees
b6300a3af4
Avoid type pun.
...
Copied from Perforce
Change: 180364
ServerID: perforce.ravenbrook.com
2012-11-06 12:16:46 +00:00
Gareth Rees
1c937a1915
Integrate table_delete bugfix from scheme.c.
...
Copied from Perforce
Change: 180355
ServerID: perforce.ravenbrook.com
2012-11-05 23:57:21 +00:00
Gareth Rees
c06a2a56ac
Need to check hash table for staleness when deleting a key.
...
Copied from Perforce
Change: 180354
ServerID: perforce.ravenbrook.com
2012-11-05 23:29:23 +00:00
Gareth Rees
5498084781
Targets depend on the makefile.
...
Copied from Perforce
Change: 180308
ServerID: perforce.ravenbrook.com
2012-11-04 23:06:56 +00:00
Gareth Rees
67f310ef48
Oops, forgot to check in advanced.rst.
...
Copied from Perforce
Change: 180304
ServerID: perforce.ravenbrook.com
2012-11-03 18:28:36 +00:00
Gareth Rees
d1bc2a6855
Write "advanced topics" chapter of the user guide.
...
Copied from Perforce
Change: 180303
ServerID: perforce.ravenbrook.com
2012-11-03 17:38:57 +00:00
Gareth Rees
f16a8b3629
Merge improvements from scheme.c.
...
TAG_COUNT is a better name than TAG_LENGTH.
Handle splat correctly even if no dependent object.
Copied from Perforce
Change: 180302
ServerID: perforce.ravenbrook.com
2012-11-03 17:38:37 +00:00
Gareth Rees
88d5827d32
Fix typo in make_port.
...
Hash tables only depend on the location of keys if they are hashed by address.
Port objects are registered for finalization when created, and definalized when closed.
New function load handles loading a file in both cases (and calls mps_chat to ensure finalization).
Avoid calling fclose multiple times on a file handle.
Merge main loop improvements from scheme-malloc.c.
Copied from Perforce
Change: 180301
ServerID: perforce.ravenbrook.com
2012-11-03 17:30:25 +00:00
Gareth Rees
3169429b36
Fix bug: actually close the file in entry_close_port.
...
Copied from Perforce
Change: 180300
ServerID: perforce.ravenbrook.com
2012-11-03 17:08:15 +00:00
Gareth Rees
b191edc1e5
Separate the interactive and non-interactive loops for clarity.
...
New function "load" loads a file; call this in the non-interactive case.
Fix bug: close file handle after loading (if no error).
Copied from Perforce
Change: 180299
ServerID: perforce.ravenbrook.com
2012-11-03 15:49:59 +00:00
Gareth Rees
7bde2ba145
Integrate quasiquote improvements from scheme.c.
...
Copied from Perforce
Change: 180297
ServerID: perforce.ravenbrook.com
2012-11-02 22:45:41 +00:00
Gareth Rees
0ec61243f9
Integrate quasiquote improvements.
...
Copied from Perforce
Change: 180296
ServerID: perforce.ravenbrook.com
2012-11-02 22:39:26 +00:00
Gareth Rees
4df0a7d528
Improve quasiquote implementation.
...
Copied from Perforce
Change: 180295
ServerID: perforce.ravenbrook.com
2012-11-02 22:38:05 +00:00
Gareth Rees
2eb56323e1
Implement the global symbol table as a weak-value hash table from strings to symbols.
...
Copied from Perforce
Change: 180294
ServerID: perforce.ravenbrook.com
2012-11-02 21:23:12 +00:00
Gareth Rees
e0d552ff66
Integrate error implementation from scheme-malloc.c.
...
Copied from Perforce
Change: 180293
ServerID: perforce.ravenbrook.com
2012-11-02 19:12:58 +00:00
Gareth Rees
f4fccc5cef
Implement "error".
...
Copied from Perforce
Change: 180292
ServerID: perforce.ravenbrook.com
2012-11-02 19:07:55 +00:00
Gareth Rees
f35be3c83e
New test case for weak hash tables (doesn't pass yet).
...
Copied from Perforce
Change: 180291
ServerID: perforce.ravenbrook.com
2012-11-02 17:35:39 +00:00
Gareth Rees
ec1375852d
Refactor test code now that we can load it.
...
Copied from Perforce
Change: 180290
ServerID: perforce.ravenbrook.com
2012-11-02 17:35:05 +00:00
Gareth Rees
d4fbbdfb6d
Merge scheme.c changes (load, eqv) into scheme-advanced.c.
...
Improve weak hash table interface.
Fix a couple of bugs in handling of dependent objects.
Copied from Perforce
Change: 180289
ServerID: perforce.ravenbrook.com
2012-11-02 17:34:49 +00:00
Gareth Rees
73f266ef56
Integrate load from scheme-malloc.c.
...
Copied from Perforce
Change: 180288
ServerID: perforce.ravenbrook.com
2012-11-02 16:40:22 +00:00
Gareth Rees
fb09e1a364
Implement load.
...
Copied from Perforce
Change: 180287
ServerID: perforce.ravenbrook.com
2012-11-02 16:38:44 +00:00
Gareth Rees
0756e9d42a
Integrate eq-hash and eqv-hash from scheme-malloc.c.
...
Copied from Perforce
Change: 180285
ServerID: perforce.ravenbrook.com
2012-11-02 16:04:06 +00:00
Gareth Rees
ef98f2a9c6
Support more kinds of hashtable via make-hashtable.
...
Fix bug in eqv (character objects now test equal if they represent the same character).
Copied from Perforce
Change: 180284
ServerID: perforce.ravenbrook.com
2012-11-02 16:02:05 +00:00
Gareth Rees
4922259f66
Integrate string=?, make-eqv-hashtable, and make-hashtable.
...
Copied from Perforce
Change: 180283
ServerID: perforce.ravenbrook.com
2012-11-02 15:54:41 +00:00
Gareth Rees
05dacb91bb
Integrate string=?, make-eqv-hashtable, make-hashtable from scheme-malloc.c.
...
Copied from Perforce
Change: 180282
ServerID: perforce.ravenbrook.com
2012-11-02 15:43:07 +00:00
Gareth Rees
d984d32588
New constructor make_bool avoids boilerplate.
...
Hash function takes a length so that it (1) it can support strings containing NULs; (2) it doesn't have to check for NULs so runs a bit faster; and (3) it performs OK on addresses (which often contain zero bytes).
Hash tables have hash and comparison functions.
Implement string=?, make-eqv-hashtable and make-hashtable.
Copied from Perforce
Change: 180281
ServerID: perforce.ravenbrook.com
2012-11-02 15:39:19 +00:00