1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 05:01:02 -08:00
Commit graph

4240 commits

Author SHA1 Message Date
Gareth Rees
01f052d63e 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
31c5b39795 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
493989efb7 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
248fc6690b 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
0686f64ff4 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
44b734b3a0 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
2ee1746ea8 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
0130b9fe05 Integrate quasiquote improvements.
Copied from Perforce
 Change: 180296
 ServerID: perforce.ravenbrook.com
2012-11-02 22:39:26 +00:00
Gareth Rees
fef5178a3a Improve quasiquote implementation.
Copied from Perforce
 Change: 180295
 ServerID: perforce.ravenbrook.com
2012-11-02 22:38:05 +00:00
Gareth Rees
7f34f0e8cb 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
d18dd95c1f 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
99d142ffd6 Implement "error".
Copied from Perforce
 Change: 180292
 ServerID: perforce.ravenbrook.com
2012-11-02 19:07:55 +00:00
Gareth Rees
ae557d16c9 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
f05835b3ae 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
3633d3b64a 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
186cafaa5c 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
5225f07f06 Implement load.
Copied from Perforce
 Change: 180287
 ServerID: perforce.ravenbrook.com
2012-11-02 16:38:44 +00:00
Gareth Rees
7bca0dfad5 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
3dcc9800ad 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
dabc0e0ecf 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
1b5fffe0dc 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
700291e07c 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
Gareth Rees
8ac34f5fd4 Deprecate mv. make deprecation notices consistent.
Copied from Perforce
 Change: 180280
 ServerID: perforce.ravenbrook.com
2012-11-02 14:26:55 +00:00
Gareth Rees
c0b04cd3ff Fix the dependent object.
Copied from Perforce
 Change: 180279
 ServerID: perforce.ravenbrook.com
2012-11-02 14:25:09 +00:00
Gareth Rees
96db37906a Document that the dependent object needs to be fixed (and might be splatted). update the example code accordingly.
Copied from Perforce
 Change: 180278
 ServerID: perforce.ravenbrook.com
2012-11-02 14:23:10 +00:00
Gareth Rees
16c207aa0f Actions from meeting with rb.
Copied from Perforce
 Change: 180277
 ServerID: perforce.ravenbrook.com
2012-11-02 14:15:36 +00:00
Gareth Rees
6a14ac6631 New test case for leaf objects.
Copied from Perforce
 Change: 180276
 ServerID: perforce.ravenbrook.com
2012-11-02 13:40:20 +00:00
Gareth Rees
8c84469650 Merge change from scheme.c (implementation apply).
Share generation chain between pools.
No need for leaf_fmt at the moment.

Copied from Perforce
 Change: 180275
 ServerID: perforce.ravenbrook.com
2012-11-02 13:40:08 +00:00
Gareth Rees
aaf7920007 Integrate apply from scheme-malloc.c.
Copied from Perforce
 Change: 180270
 ServerID: perforce.ravenbrook.com
2012-11-02 12:45:22 +00:00
Gareth Rees
a33c71a346 Implement apply.
Copied from Perforce
 Change: 180269
 ServerID: perforce.ravenbrook.com
2012-11-02 12:44:20 +00:00
Gareth Rees
468a79a99c Integrate references to documentation.
Copied from Perforce
 Change: 180258
 ServerID: perforce.ravenbrook.com
2012-11-02 11:58:38 +00:00
Gareth Rees
045c45a18c Add references to documentation.
Copied from Perforce
 Change: 180256
 ServerID: perforce.ravenbrook.com
2012-11-02 11:57:16 +00:00
Gareth Rees
2fb8140c68 Merge changes from scheme.c into scheme-advanced.c:
1. Deletion of keys in hash tables.
2. Forwarding of character objects on 64-bit platforms.
3. Fix to hash table probe sequence.
4. Comments in Scheme source.
5. Fix to define (implicit begin).
6. Extend equal? to vectors and strings.
7. Add references to R4RS documentation.
8. Implement list-tail, list-ref, open-output-file, close-input-port, close-output-port, write, write-string, newline, hashtable?, hashtable-size, hashtable-delete!, hashtable-contains?, hashtable-keys.
9. Fix bug (buckets might be scanned before dependent object is set).
10. Non-interactive mode.

Copied from Perforce
 Change: 180255
 ServerID: perforce.ravenbrook.com
2012-11-02 11:50:33 +00:00
Gareth Rees
0d17ceb416 Integrate changes from scheme-malloc to scheme.
Add test target to Makefile.

Copied from Perforce
 Change: 180253
 ServerID: perforce.ravenbrook.com
2012-11-02 11:19:45 +00:00
Gareth Rees
e42bab4f76 Make sure that probe sequence visits all buckets in the hash table by (a) ensuring that hash tables are a power of 2 in size; (b) ensuring that the probe step is odd.
Copied from Perforce
 Change: 180252
 ServerID: perforce.ravenbrook.com
2012-11-02 11:16:10 +00:00
Gareth Rees
bf1480c169 Chatter only if interactive.
Copied from Perforce
 Change: 180251
 ServerID: perforce.ravenbrook.com
2012-11-02 10:58:29 +00:00
Gareth Rees
879231be2d Add non-interactive execution.
Implement list-tail and list-ref.

Copied from Perforce
 Change: 180249
 ServerID: perforce.ravenbrook.com
2012-11-02 10:24:39 +00:00
Gareth Rees
b68fc45c4a Implement string-hash and correct error messages.
Copied from Perforce
 Change: 180244
 ServerID: perforce.ravenbrook.com
2012-11-01 22:07:33 +00:00
Gareth Rees
d3d7372e88 Merge changes from scheme-malloc.c to scheme.c.
Copied from Perforce
 Change: 180242
 ServerID: perforce.ravenbrook.com
2012-11-01 19:16:34 +00:00
Gareth Rees
57859a8d1a Segregate leaf objects into an amcz pool.
Copied from Perforce
 Change: 180240
 ServerID: perforce.ravenbrook.com
2012-11-01 18:14:41 +00:00
Gareth Rees
5b50c401c3 Fix bug in "define": no implied "begin" around function body.
Implement open-output-file, close-input-port, close-output-port, write, write-string, and newline.
Add Scheme test cases.

Copied from Perforce
 Change: 180238
 ServerID: perforce.ravenbrook.com
2012-11-01 18:05:34 +00:00
Gareth Rees
99bca8b5e2 Amc can't omit the guard "segrankset(seg) != ranksetempty" for calling segsetgrey, because amcz uses segments with an empty rank set.
It's OK to call SegSetGrey on a segment with an empty rank set so long as you are not actually setting it to be grey for any traces, so correct the AVER accordingly.

Copied from Perforce
 Change: 180236
 ServerID: perforce.ravenbrook.com
2012-11-01 17:21:57 +00:00
Gareth Rees
f9acc18caa Merge new hashtable stuff from scheme-malloc.c.
Fix bug in scheme.c (characters were only 8 bytes on 64-bit platforms, so can't be forwarded).

Copied from Perforce
 Change: 180231
 ServerID: perforce.ravenbrook.com
2012-11-01 15:37:43 +00:00
Gareth Rees
5e275103ed Add more hashtable features, including deletion (which we'll need for weak hashtables).
Copied from Perforce
 Change: 180225
 ServerID: perforce.ravenbrook.com
2012-11-01 14:37:45 +00:00
Gareth Rees
e724dc3889 Document mfs pool class
Copied from Perforce
 Change: 180220
 ServerID: perforce.ravenbrook.com
2012-11-01 12:14:47 +00:00
Gareth Rees
f44e475247 Glossary entry for "splat".
Copied from Perforce
 Change: 180217
 ServerID: perforce.ravenbrook.com
2012-11-01 11:34:07 +00:00
Gareth Rees
0d65f20291 Typo.
Copied from Perforce
 Change: 180213
 ServerID: perforce.ravenbrook.com
2012-11-01 00:59:25 +00:00
Gareth Rees
6abdd5c534 What happens when all weak references have been splatted.
Copied from Perforce
 Change: 180212
 ServerID: perforce.ravenbrook.com
2012-11-01 00:56:32 +00:00
Gareth Rees
f63407caf4 Typos.
Copied from Perforce
 Change: 180211
 ServerID: perforce.ravenbrook.com
2012-11-01 00:54:17 +00:00
Gareth Rees
a8d8e95934 Try segregating leaf objects.
Copied from Perforce
 Change: 180209
 ServerID: perforce.ravenbrook.com
2012-10-31 22:52:39 +00:00