Commit Graph

216 Commits (ae25cfe7127ae4fdecebcc6d2fe24c6e8469bb4f)

Author SHA1 Message Date
Slava Pestov eb3f8632dd stack-checker.alien: now that C types are words, the compiler can add dependencies on them when compiling alien words. This triggers the necessary recompilation when C types are redefined 2010-02-22 21:32:41 +13:00
Slava Pestov 6501480a0e Fix two problems with recompilation: predicate constant folding was recording unsatisfied dependencies in some cases, and literal tuple instances of forgotten classes would cause problems for method inlining 2010-02-20 12:01:47 +13:00
Slava Pestov 35acd71551 compiler.units: fix bug that came up recently with nested compilation units 2010-02-04 03:20:48 +13:00
Slava Pestov 8d3c11c176 compiler: remove some unnecessary complexity 2010-02-04 01:36:52 +13:00
Slava Pestov 3259ef4bec vm: modify-code-heap primitive now takes a pair of parameters, update-existing? and reset-pics?. If no generic words were changed, PICs do not need to be reset. If no existing words were redefined, the code heap doesn't have to be traced at all. Speeds up compilation of PEGs since those create lots of compilation units 2010-02-03 23:11:28 +13:00
Slava Pestov df55fed478 generic: rename method-body predicate class to method 2010-02-03 23:11:24 +13:00
Slava Pestov bf05a901c4 Fix ffi-test library to work with Windows SDK. Turns out MINGW has a different ABI for struct returns than MS's compiler; make the MS ABI the default for cdecl on Windows, and add mingw ABI for libraries that use the MINGW ABI 2010-02-02 04:01:12 -06:00
Slava Pestov 8432f4c459 Fix a couple of unit tests that were relying on the old compiler crossref structures 2010-01-31 23:26:55 +13:00
Slava Pestov c027046857 New 'conditional dependency' mechanism for more accurate recording of recompilation information 2010-01-30 09:28:57 +13:00
Slava Pestov ab428fc259 Code cleanups 2010-01-30 09:28:56 +13:00
Slava Pestov f031a97084 Work in progress: record constant-folds of predicate words, and call-next-method invocations, in the same way that method inlining are recorded, for greater recompilation accuracy 2010-01-30 09:28:56 +13:00
Slava Pestov d58f73453f Add test case for mixin bug Doug found, seems to be fixed now 2010-01-30 09:28:52 +13:00
Slava Pestov f804c9c422 Move compile-call and related words only meant to be used for debugging to compiler.test 2010-01-23 00:39:56 +13:00
Doug Coleman 4c71d71907 random is generic now -- iota random -> random 2010-01-14 12:48:57 -06:00
Slava Pestov df4fb4a3ee Removing integers-as-sequences 2010-01-15 07:15:33 +13:00
Slava Pestov 50d68c1b10 Fix input-classes of /i and mod, and add some regression tests with various reductions of the original test-case from the terrain demo 2010-01-14 18:15:51 +13:00
Slava Pestov 47a5e96547 Rework min and max so that behavior with floats and NaNs is consistent between generic arithmetic and open-coded float intrinsics 2010-01-13 22:20:16 +13:00
Slava Pestov 1c10196c43 Rename kernel.private:getenv/setenv to special-object/set-special-object to mirror recent renaming on the VM side 2010-01-13 18:08:18 +13:00
Slava Pestov 988c8d0601 More PowerPC non-optimizing compiler backend fixes 2010-01-13 03:09:43 +13:00
Slava Pestov 235f3238f5 Add alien-assembly form for inline assembler, works like alien-invoke except calls a user-supplied quotation instead of generating a subroutine call. Replaces FPU status control, SSE detection and read timestamp routines in vm/cpu-x86.*S 2010-01-07 17:39:22 +13:00
Slava Pestov e96404327e Get optimizing compiler working without global register variables in VM 2009-12-22 15:42:49 +13:00
Slava Pestov 0612bc6177 Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Slava Pestov 41c17f0429 Fixing test failures 2009-11-11 02:40:24 -06:00
Slava Pestov 5d79450d9d Use a more compact representation for "compiled-uses" and "compiled-generic-uses" word-props; reduces image size 2009-11-08 06:08:04 -06:00
Slava Pestov 279d1169d2 compiler: fix alien tests 2009-11-06 01:04:02 -06:00
Joe Groff 00ce8b6a33 deprimitivize tuck and put it to pasture 2009-11-05 22:47:05 -06:00
Slava Pestov 8c4ad9bf18 compiler: fix intrinsics tests on 32-bit 2009-11-04 18:28:46 -06:00
Slava Pestov 109aa88b06 compiler: update unit tests for 4-bit tag change 2009-11-03 21:40:29 -06:00
Slava Pestov e4ad642134 vm: 4 bit tags, new representation of alien objects makes unbox-any-c-ptr more efficient (work in progress) 2009-11-02 04:25:54 -06:00
Joe Groff 3f15e028f7 exile roll and -roll to basis/shuffle and mark them deprecated 2009-10-30 17:11:45 -05:00
Doug Coleman e376a0ece2 (normalize-path) -> absolute-path, canonicalize-path -> resolve-symlinks 2009-10-28 17:25:50 -05:00
Doug Coleman bd13e018dd memq? -> member-eq?, sorted-memq? -> sorted-member-eq? 2009-10-28 15:02:00 -05:00
Slava Pestov e46259bd33 compiler.tree.propagation.transforms: fix problem with 'shift' transform when input was a bignum 2009-10-23 07:50:56 -05:00
Slava Pestov e8fd85437b compiler: fix stack effect inference bug discovered by x6j8x; it was possible to define a word which did not compile but could be called anyway 2009-10-23 03:27:25 -05:00
Joe Groff c3b8847936 update a bunch of alien-callbacks and alien-indirects to use c-type words 2009-10-21 21:10:11 -05:00
Joe Groff 7fac3682a6 update some naked alien-invokes to use c-type words 2009-10-21 18:44:00 -05:00
Slava Pestov b2592e01c1 compiler: fix typo in intrinsics tests 2009-10-19 05:16:04 -05:00
Slava Pestov 6a2434b56c compiler: fix low-level-ir test on PowerPC 2009-10-19 05:03:02 -05:00
Slava Pestov 2d5cdd19ec compiler: on PPC, ANDI, ORI and XORI instructions take an unsigned 16-bit immediate, unlike ADDI, SUBI and MULLI which take a signed 16-bit immediate. The code generator was not aware of this, and so for example '[ >fixnum -16 bitand ]' would generate incorrect code. Split up small-enough? hook into immediate-arithmetic? and immediate-bitwise? and update value numbering to be aware of this. Fixes classes.struct bitfields test failure 2009-10-19 04:58:29 -05:00
Slava Pestov 107c96f642 vm: code heap compaction at runtime using compact-gc primitive 2009-10-16 11:39:35 -05:00
Slava Pestov 366c341c5f compiler.tree.propagation.branches: fix live-branches computation for #dispatch nodes 2009-10-10 00:23:50 -05:00
Slava Pestov b9577e2b0e compiler.cfg.instructions: remove ##box-float, ##unbox-float, ##box-vector, ##unbox-vector since they can be expressed in terms of ##alien-double, ##set-alien-double, ##alien-vector, ##set-alien-vector, and ##allot 2009-10-01 18:07:50 -05:00
Slava Pestov 4abfe06b51 Fixing various test failures caused by C type parser change, and clarify C type docs some more 2009-09-28 08:48:39 -05:00
Slava Pestov 08a2eb74f4 cpu.x86: shifts didn't work if dst != src1; re-organize file a bit 2009-09-28 05:39:53 -05:00
Slava Pestov aa3b9097c8 compiler: fix codegen test 2009-09-27 22:23:03 -05:00
Slava Pestov 999b22788e compiler: add a unit test 2009-09-27 20:36:19 -05:00
Slava Pestov 59fbe85c9b compiler.cfg: nuke ##bignum>integer and ##integer>bignum since they were unused 2009-09-27 20:36:05 -05:00
Slava Pestov 705b4ab5c3 compiler.cfg.linear-scan: fix partial sync point logic in case where dst == src, and clean up spilling code 2009-09-27 19:28:20 -05:00
sheeple 01a4047126 Merge branch 'slots' of git://factorcode.org/git/factor into slots
Conflicts:

	basis/cpu/x86/x86.factor
2009-09-26 03:12:42 -05:00
Daniel Ehrenberg c704a823e7 Fixing low-level-ir compiler tests for slot changes 2009-09-26 02:48:40 -05:00