John Benediktsson
|
378786599d
|
Cleanup lint warnings.
|
2011-10-14 11:47:24 -07:00 |
John Benediktsson
|
1987deb359
|
Fix M: stack effects.
|
2011-10-13 16:41:17 -07:00 |
John Benediktsson
|
4baf14972f
|
sequences: adding ?last for symmetry.
|
2011-10-13 13:04:24 -07:00 |
Slava Pestov
|
dc36fd712d
|
compiler.cfg.representations: fix unit test, it depended on hashing order which changed recently
|
2011-10-10 12:15:41 -07:00 |
Slava Pestov
|
06218d5d12
|
compiler.cfg.builder.alien: fix compilation of callbacks which unconditionally throw errors
|
2011-10-02 19:52:12 -07:00 |
Doug Coleman
|
671f19d70f
|
Remove all non-core uses of (scan-token)
Add scan-datum
Add scan-number
Document more words
Fixes #225.
|
2011-10-02 12:00:08 -07:00 |
Doug Coleman
|
76580da5d5
|
Refactor the lexer/parser to expose friendlier words for scanning tokens. The preferred top-level words now throw an exception on EOF.
CREATE -> scan-new
CREATE-CLASS -> scan-new-class
CREATE-WORD -> scan-new-word
CREATE-GENERIC -> scan-new-generic
scan -> (scan-token)
scan-token now throws on eof
(scan-word) returns word/number/f
scan-word now throws on eof
scan-word-name expects a non-number
Fixes #183.
Fixes #209.
|
2011-09-29 11:28:28 -07:00 |
Doug Coleman
|
3826febfae
|
Fixes the symptom but not the problem. See bug #201.
|
2011-09-26 17:32:34 -07:00 |
Joe Groff
|
2bd6de9a02
|
slots: pre-create the "at", "nth", and "global" slots to make deterministic the currently nondeterministic ambiguity between accessors:change-* and assocs:change-at, sequences:change-nth, and namespaces:change-global
|
2011-09-19 10:03:43 -07:00 |
Joe Groff
|
d6668caf7d
|
compiler.cfg.builder.alien: fix caller-linkage to return the DLL and not the library tuple again; fixes issue #121
|
2011-09-13 15:10:48 -07:00 |
Joe Groff
|
5703e8d7a1
|
alien.libraries, compiler.cfg.builder.alien: if `dlopen` fails during `<library>`, call `dlerror` and store the error message in the library object; put the dlerror message in the linkage-error when a word from the library is compiled
|
2011-09-12 23:25:59 -07:00 |
Joe Groff
|
b6e0f0180b
|
alien.libraries, compiler.cfg.builder.alien: include the result of dlerror/GetLastError in the linkage-error for missing symbols
|
2011-09-12 23:25:59 -07:00 |
Slava Pestov
|
edddffdadd
|
compiler.cfg.dependence: Add ##allot to control dependency chain, so that we don't re-order an allocation and initialization with an alien call. The alien call might GC, exposing uninitialized memory to the GC. Fixes #53, fixes #58, fixes #20.
|
2011-08-28 21:25:39 -07:00 |
Slava Pestov
|
34f71ea042
|
compiler.cfg.debugger: add random-scheduling word.
Run 'random-scheduling "compiler" test' to find bugs in compiler.cfg.dependencies.
|
2011-08-28 21:25:37 -07:00 |
Slava Pestov
|
3ed1910ab1
|
compiler.cfg.scheduling: remove old scheduling test code, adding a better way of testing scheduling
|
2011-08-28 21:25:35 -07:00 |
Erik Charlebois
|
64252dbdbc
|
32 and 64 bit Linux PPC support
|
2011-05-23 23:36:14 -04:00 |
Slava Pestov
|
5a3c5c7749
|
compiler.cfg.branch-splitting was totally broken
|
2011-02-27 16:43:26 -08:00 |
Slava Pestov
|
6f7e4e32d0
|
compiler.cfg.ssa.construction: update unit tests for nths change
|
2011-02-25 21:05:38 -08:00 |
Slava Pestov
|
b052aa61cb
|
compiler.cfg.linear-scan: extend lifetime intervals of base pointers correctly (reported by Anton Gorenko)
|
2010-09-30 20:49:03 -07:00 |
Slava Pestov
|
6b5fffc026
|
compiler: preliminary implementation of tracking derived pointers in GC maps
|
2010-09-27 20:12:44 -07:00 |
Slava Pestov
|
53aed0805a
|
compiler.cfg.alias-analysis: fix bug in lazy alias class instantiation
|
2010-09-27 20:12:43 -07:00 |
Slava Pestov
|
546b81b697
|
compiler.cfg.scheduling: always run scheduling because heuristic was broken
|
2010-09-25 16:31:42 -07:00 |
Slava Pestov
|
80d7aab40b
|
compiler.cfg.alias-analysis: don't need to do a local live-in calculation anymore
|
2010-09-25 16:13:17 -07:00 |
Slava Pestov
|
ec2f42fd40
|
compiler.cfg.liveness: merge in compiler.cfg.liveness.ssa and simplify the code, since we don't compute live sets before SSA construction anymore
|
2010-09-25 14:36:58 -07:00 |
Slava Pestov
|
8bc2ea7a5c
|
compiler.cfg.ssa.construction: use the baller method for pruned SSA
|
2010-09-20 21:36:22 -07:00 |
Slava Pestov
|
a67c7c5739
|
compiler.cfg.write-barrier: fix soundness issue with ##copy that never came up but probably should've been fixed anyway
|
2010-09-06 17:01:44 -07:00 |
Slava Pestov
|
a605d5c9c9
|
compiler.cfg.alias-analysis: dead store elimination was too aggressive, can't eliminate dead stores across a GC call even for fresh allocations because GC will see uninitialized data
|
2010-09-06 16:57:56 -07:00 |
Slava Pestov
|
add75411a0
|
compiler.cfg.write-barrier: handle ##copy instructions
|
2010-09-05 23:07:30 -07:00 |
Slava Pestov
|
54f97557e6
|
compiler.cfg.dependence: compute dependency graph for write barrier instructions
|
2010-09-05 22:51:17 -07:00 |
Slava Pestov
|
c677c35de4
|
compiler.cfg: fix major facepalm with write barrier elimination
|
2010-09-05 21:39:45 -07:00 |
Slava Pestov
|
1985705413
|
compiler: now that FFI has been deconcatenatized, we no longer need the special ##unary-float-function and ##binary-float-function fastpaths
|
2010-08-13 23:59:19 -07:00 |
Slava Pestov
|
b5fc39c198
|
compiler.cfg: Reading the return value of a float-returning function on x86-32 had a side effect of popping the x87 stack, so it was not correct for DCE to just eliminate this if the return value was not used. Fix this by adding a new dead-outputs slot to alien-call-insns and having DCE move dead returns there
|
2010-08-13 23:19:56 -07:00 |
Slava Pestov
|
42b858b3f0
|
math.libm: fix regression: fsqrt intrinsic was not working ever since change was made to inline FUNCTION: bodies
|
2010-08-12 21:41:57 -07:00 |
Slava Pestov
|
94f6ac98de
|
compiler.cfg.linear-scan: fix bad interaction between inactive intervals and sync points
|
2010-07-29 21:06:48 -04:00 |
Slava Pestov
|
168dd1f825
|
FFI rewrite part 7: compile callback bodies with the optimizing compiler
|
2010-07-28 00:49:26 -04:00 |
Slava Pestov
|
5fc9aa05b0
|
Revert "compiler.cfg: change linear ordering to place GC call blocks at the end"
This reverts commit 544a288192 .
|
2010-07-27 23:58:41 -04:00 |
Slava Pestov
|
8adde5360a
|
compiler.cfg: change linear ordering to place GC call blocks at the end
|
2010-07-27 13:00:28 -04:00 |
Slava Pestov
|
355d89e8e8
|
compiler.cfg: now that kill-blocks cannot contain instructions that define vregs we can skip them all
|
2010-07-27 12:40:31 -04:00 |
Slava Pestov
|
b6fe62299e
|
compiler.cfg.alias-analysis: factor-call-insns which defined values were not handled properly
|
2010-07-19 19:56:00 -04:00 |
Slava Pestov
|
b23aac1beb
|
compiler.cfg: open-code parameter boxing and unboxing for certain C types
|
2010-07-19 10:25:13 -04:00 |
Slava Pestov
|
8e46305288
|
compiler.cfg.save-contexts: don't insert ##save-context in front of ##phi
|
2010-07-19 09:27:10 -04:00 |
Slava Pestov
|
adc9db3ea8
|
compiler.cfg.linear-scan.allocation: fix wrong order
|
2010-07-19 06:46:50 -04:00 |
Slava Pestov
|
b776a92546
|
compiler.cfg.linear-scan: fix bad interaction between split position calculation and register-clobbering instructions
|
2010-07-18 17:38:52 -04:00 |
Slava Pestov
|
e3edb2653d
|
compiler.cfg.intrinsics.allot: clean up
|
2010-07-16 20:04:03 -04:00 |
Slava Pestov
|
e5dd21b0b9
|
compiler.cfg: nuke ##allot-byte-array instruction
|
2010-07-16 19:57:45 -04:00 |
Slava Pestov
|
60ddbd9d9b
|
compiler.cfg.scheduling: ##dispatch must go at the end since its a control flow transfer
|
2010-07-15 20:55:31 -04:00 |
Slava Pestov
|
0fd636b4b9
|
compiler.cfg: ##unbox-long-long can have multiple outputs now, clean up long long parameter passing code using this
|
2010-07-15 19:49:29 -04:00 |
Slava Pestov
|
48e96ef032
|
compiler.cfg.scheduling: update to support multiple-output instructions
|
2010-07-15 17:38:34 -04:00 |
Slava Pestov
|
e27adb2830
|
compiler: re-architect low-level optimizer to allow more than one output value per instruction
|
2010-07-13 07:40:14 -04:00 |
Slava Pestov
|
a55c8ee671
|
FFI rewrite part 6: deconcatenatize
|
2010-07-02 15:44:12 -04:00 |