Björn Lindqvist
be372831f5
compiler.tests.alien: wrap all callback tests in special
...
unit-test-with-destructor blocks, that way they dont leak memory in the
callback heap
2014-09-29 07:30:22 -07:00
Doug Coleman
beb2d1df3a
ffi: Add some tests to ensure that 64bit integers are handled properly.
2014-07-07 17:02:36 -07:00
Björn Lindqvist
4f49edaa66
VM: tests that rely on the integer values of the vm_error_type needs to be updated
2014-06-07 12:13:59 +02:00
John Benediktsson
05c35ebda3
kernel: change errors to be in kernel.private.
2014-06-04 14:33:02 -07:00
Björn Lindqvist
6627a3327b
kernel: symbolic constants for the various kernel errors
2014-06-04 23:16:40 +02:00
Doug Coleman
fa0b4c1a5b
compiler: Use lookup-library.
2013-03-23 21:23:23 -07:00
Doug Coleman
9f92b12e3b
compiler.tests: Fix test for <groups> change.
2013-03-23 17:11:27 -07:00
Slava Pestov
07227f22f9
WIP
2012-12-31 11:03:33 -08:00
John Benediktsson
013160df9a
change some "2drop 2drop" to "4drop".
2012-10-23 12:21:30 -07:00
Doug Coleman
bf8d455e9c
compiler: Fix /mod simplications in dead-code, add unit tests. Fixes #544
2012-07-21 03:41:42 -07:00
Doug Coleman
42f4dc36b2
namespaces: Rename ``bind`` to ``with-variables``. Update a few places that called ``global [ ] with-variables`` to use ``with-global``.
2012-07-19 00:02:47 -07:00
Doug Coleman
3507b9bad7
classes:
...
- Allow methods to dispatch off union{ } and intersection{ } classes.
- Add not{ } anonymous-complement syntax.
- Define class-name for anonymous-union/intersection/complement and maybes, and clean up pprint.
- Change maybe: foo to maybe{ foo }
- Call sort-classes when making anonymous-union/anonymous-intersection classes so that they are canonicalized.
2012-05-03 19:45:30 -07:00
Joe Groff
2e4d6f724b
compiler: fix failing test
2011-12-06 21:11:44 -08:00
Joe Groff
943596575a
use radix literals
2011-11-23 19:03:40 -08:00
Doug Coleman
f7700809c5
compiler tests: fix using, add tests to make sure instance? inlines
2011-11-23 01:01:11 -08:00
Doug Coleman
fac17c10ba
classes.maybe: move maybe definition from classes.union to classes.maybe
2011-11-22 02:46:36 -08:00
Doug Coleman
067f9830ef
classes.union: Define a maybe: word that makes a tuple that acts as an anonymous union for a type and f. Updated all the places we define UNION: ?foo foo POSTPONE: f ;. Fixes #416 and lots of headaches.
2011-11-22 01:56:13 -08:00
Doug Coleman
c731dc6edb
Rename lookup to lookup-word.
2011-11-06 16:00:00 -08:00
Doug Coleman
51c033a1f6
Fix all failures in the linux64 build email
2011-10-24 19:33:09 -07:00
John Benediktsson
80e1c8e3f2
Eliminate duplicate syntax for stack effects "(" no longer drops and is identical to the old "((", which is now removed.
2011-10-18 13:19:39 -07:00
Slava Pestov
ae286fb7ef
callback-error: don't use -e until we fix issue #245
2011-10-10 21:25:50 -07:00
Slava Pestov
901ee2434c
Fix custom-inlining for mod and rem, which was converting these calls to bitand in some cases, even if the input was not known to be an integer. Fixes #243
2011-10-09 13:51:35 -07:00
Doug Coleman
31175eb5cc
Mixin classes in redefine25 test are forgotten, but words still reference them -- forget those words, too. Fixes #143 .
2011-10-07 10:49:17 -07:00
Doug Coleman
181f11faa8
Make M\ throw an error upon lookup failure. Change method -> ?lookup-method, lookup-method is the throwing version of ?lookup-method. Fixes #229 .
2011-10-03 15:49:49 -07:00
Slava Pestov
72d3c6e791
Fix linkage-errors test to not clobber its own linkage error
2011-10-03 00:26:21 -07:00
Slava Pestov
daf40ea0c6
Fix infinite loop and empty-dlist error when an error is thrown from a callback running in a thread other than the initial thread. This addresses part of issue #92
2011-10-02 21:59:09 -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
John Benediktsson
4f42c72012
specialized-arrays: performed some cleanup.
...
Specifically,
• Created >c-array to be replacement for >T-array.
• Created cast-array to be generic replacement for all T-array-cast words.
• Created c-array@ to be generic replacement for T-array@ words.
• Replaced usages of <T-array> with T <c-array>
• Replaced usages of <direct-T-array> with T <c-direct-array>
• Replaced usages of >T-array with T >c-array
• Replaced usages of T-array-cast with T cast-array
• Replaced usages of malloc-T-array with T malloc-array.
• Removed malloc-T-array.
• Removed T-array-cast.
• Removed T-array@.
• Removed >T-array.
I also added (but didn't change any code to use):
• T c-array-type, returns T-array
• T c-array?, returns T-array?
• c-array{ T ... }, returns T-array{ ... }
Bootstraps just find on Mac OS X. Also `load-all test-all` works for me.
2011-09-26 11:37:51 -07:00
Doug Coleman
bf2a96e9e0
Remove Windows CE from core/ basis/ and build-support/
...
Rename the winnt singleton to windows in core/ basis/ extra/
Rename boot images winnt -> windows
Fixes #84 .
2011-09-18 23:19:06 -05:00
Slava Pestov
736cebe729
Fix linkage-errors tests for recent changes
2011-09-13 20:42:36 -07:00
Slava Pestov
7c3827190b
Tease out symbol name and library in undefined_symbol() handler, for friendlier errors when calling an unresolved C function name. Fixes #93
2011-09-12 00:56:24 -07:00
Slava Pestov
75560699ea
Move <ref>, deref and little-endian? from alien.c-types to alien.data, remove <c-object>
2010-12-25 16:55:36 -08:00
Slava Pestov
675a420717
compiler.tests: update for <ref> deref
2010-10-25 22:23:03 -07:00
Doug Coleman
69487d1fd3
Fix a few tests that got broken in the <uint> *uint patches
2010-10-25 19:14:21 -05:00
Doug Coleman
67c37591ca
Remove <uint> *uint and friends. Hopefully remove the last usages of these words
2010-10-25 15:54:42 -05:00
Doug Coleman
4ca9bd0bba
Remove usages of <void*> and *void*
2010-10-25 13:22:50 -05:00
Doug Coleman
1f57dc326e
Remove many uses of <int> and *int etc
2010-10-25 12:49:12 -05: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
c677c35de4
compiler.cfg: fix major facepalm with write barrier elimination
2010-09-05 21:39:45 -07:00
Slava Pestov
25ed4dd298
compiler.tests: forgot to check in x87-regression test way back
2010-08-20 18:36:26 -07:00
Slava Pestov
3384fcd96d
compiler: update tests for void being parsed like a real word
2010-08-15 13:01:42 -07:00
Slava Pestov
0f4c5d2bff
classes.algebra: make it work better to fix bug reported by Sascha Matzke
2010-07-29 19:57:23 -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
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
e2ceb11337
stack-checker: calling 'boa' on a non-tuple would compile as a no-op rather than an error (reported by Joe Groff); clean up some other error reporting code too
2010-07-17 15:57:44 -04:00
Slava Pestov
446ee6896d
alien.data: remove second quotation parameter from with-out-parameters, now all values are copied properly and calling 'clone' on structs in this quotation is not necessary
2010-07-16 17:32:05 -04:00
Slava Pestov
5b31cbcb3c
alien.data: document with-scoped-allocation and with-out-parameters, and add initial: syntax
2010-07-16 17:13:38 -04:00
Slava Pestov
1f4bd3e293
compiler.tree.propagation.known-words: don't want a type function on clone, all the methods are inline and it was wrong (reported by Joe Groff)
2010-07-07 17:25:32 -04:00
Daniel Ehrenberg
12b0e16232
Unit tests for a couple of serious compiler bugs
2010-06-22 16:41:14 -04:00
Slava Pestov
c9ad0856d5
cpu.x86.64: callback prologue was clobbering 5th parameter register on x86-64
2010-05-23 03:00:53 -04:00
Slava Pestov
ba7cb61133
Stack allocation improvements
...
- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas
2010-05-22 02:37:00 -04:00
Slava Pestov
9e59192c73
compiler.cfg.builder.alien: use ##local-allot to fix value struct passing on Win64
2010-05-19 01:53:32 -04:00
Slava Pestov
86358b1dc3
alien.data: add with-scoped-allocation combinator for stack-allocating C data
2010-05-19 00:33:36 -04:00
Slava Pestov
4dd58ce40e
compiler.tests: fix test for generalizations change
2010-05-18 23:08:37 -04:00
Slava Pestov
11511167e2
cpu.x86.x87: compares were clobbering ST0
2010-05-18 19:18:53 -04:00
Slava Pestov
1834241e5a
alien.libraries, stack-checker.alien: check user inputs more carefully to ensure that invalid ABI descriptors don't slip through and break random stuff (reported by prunedtree)
2010-05-18 18:46:31 -04:00
Slava Pestov
6eaf2d7534
cpu.x86: add x87 codegen for Model T enthusiasts
2010-05-17 11:35:47 -04:00
Slava Pestov
ad7636045f
compiler: fix bad unit test
2010-05-14 18:37:11 -04:00
Slava Pestov
bb87d124c1
compiler: small fixes and cleanups
2010-05-13 02:48:20 -04:00
Slava Pestov
7316d41226
FFI rewrite part 2: use ##peek and ##replace instructions to access stack
2010-05-09 23:26:43 -04:00
Slava Pestov
c211c3e84e
FFI rewrite part 1: split up ##alien-invoke and friends into smaller instructions
2010-05-09 21:36:52 -04:00
Slava Pestov
035a2e9b63
compiler: more tests
2010-05-04 05:46:45 -05:00
Slava Pestov
dd2a4c2c77
cpu.x86: GC root offsets were computed wrong in words containing alien calls
2010-05-04 02:53:53 -04:00
Slava Pestov
ea4ee4ff60
compiler.tests: remove useless test from float tests; min and max are generic now, with methods on floats, so any potential inconsistency is gone
2010-05-04 00:07:53 -04:00
Slava Pestov
f5c5d8b44c
compiler: remove flat machine representation and generate code directly from the CFG
2010-05-03 17:34:32 -04:00
Slava Pestov
7f6ae34d72
Updating tests for recent compiler changes
2010-05-03 17:34:30 -04:00
Slava Pestov
38bafd2be8
compiler.cfg.linear-scan.assignment: spill slot representation logic was backwards, just like Factor
2010-05-03 17:34:29 -04:00
Slava Pestov
9b34a4a054
compiler.cfg: remove unused 'reps' slot from compiler.cfg, and re-organize things in preparation for SSA register allocation
2010-05-03 17:34:18 -04:00
Slava Pestov
a9ccfa8f05
strings: move string-nth primitive out of the VM and into the library
2010-05-03 17:34:12 -04:00
Slava Pestov
2475699736
compiler.cfg: more flexible addressing for ##slot and ##set-slot
2010-05-03 17:34:06 -04:00
Slava Pestov
913b95192e
compiler.cfg: merge all alien accessors into ##load-memory-imm and ##store-memory-imm
2010-05-03 17:34:06 -04:00
Slava Pestov
c81063614b
compiler.tests.low-level-ir: update for recent changes
2010-05-03 17:34:04 -04:00
Slava Pestov
2aaf24412a
compiler: change how 'f' is represented in low level IR to simplify some code, and fuse a ##load-constant of a word with a ##compare into a ##compare-imm on x86-32. This eliminates a spill from binary-search
2010-04-18 21:42:45 -05:00
Slava Pestov
c1a870fe72
sequences: remove stupid <flat-slice> word
2010-04-17 00:58:30 -05:00
Slava Pestov
4f16212840
compiler.tests.redefine23: test wasn't testing anything
2010-04-13 00:56:48 -07:00
Slava Pestov
88f627a402
compiler.tests.alien: fix tests on Win64
2010-04-13 01:24:04 -05:00
Slava Pestov
918b202b9a
compiler.tests.alien: get it passing when VM is compiled with MINGW by disabling certain tests and using the MINGW ABI for others, and fix fastcall alien-indirect tests for name decoration
2010-04-12 18:14:18 -05:00
Slava Pestov
145e6428ba
Fixing load errors
2010-04-10 17:24:44 -07:00
Slava Pestov
0aab7aa872
compiler.tests.alien: fix typo
2010-04-10 00:41:20 -07:00
Joe Groff
3e0d86f355
Merge branch 'master' of git://factorcode.org/git/factor into abi-symbols
...
Conflicts:
basis/compiler/tests/alien.factor
2010-04-06 12:30:15 -07:00
Joe Groff
1c5f718e80
add tests for fastcall callbacks
2010-04-02 00:23:39 -07:00
Joe Groff
47f3ace5ac
test fastcall indirect struct return
2010-04-02 00:00:34 -07:00
Joe Groff
43d73dcd4d
remove fastcall struct param tests because GCC appears to behave differently from VC++ here and again, who cares
2010-04-01 23:54:08 -07:00
Joe Groff
5dcfb383a6
add tests for struct returns from fastcall
2010-04-01 23:52:56 -07:00
Joe Groff
69abcd4b9b
test indirect fastcalls
2010-04-01 23:43:55 -07:00
Joe Groff
fd0569e553
compiler.tests.alien: add back fastcall float and struct tests
2010-04-01 22:47:16 -07:00
Joe Groff
88da92543c
add a test that multiple stdcalls or fastcalls in the same word behave correctly
2010-04-01 18:48:12 -07:00
Joe Groff
553b9fcd93
make "fastcall" symbol private since it doesn't really work in all cases
2010-04-01 18:34:15 -07:00
Joe Groff
9c1a9158be
retire mixed int/float fastcall tests because who cares
2010-04-01 18:25:56 -07:00
Slava Pestov
eceabbc57e
compiler: new set-special-object intrinsic; more efficient special-object intrinsic
2010-04-01 20:09:14 -04:00
Joe Groff
c743608456
check gc after fastcall ffi tests like stdcall tests
2010-04-01 14:15:34 -07:00
Joe Groff
a191937c47
typos in ffi tests
2010-04-01 03:02:36 -07:00
Joe Groff
fca8ba3d0a
add fastcall functions to ffi tests
2010-04-01 02:22:42 -07:00
Joe Groff
f3dd625de6
"stdcall" -> stdcall
2010-03-31 19:29:04 -07:00
Joe Groff
65c3259761
"cdecl" -> cdecl
2010-03-31 19:20:35 -07:00
Slava Pestov
560c119cd2
vm: actually use context callstacks when running code
2010-03-26 22:44:43 -04:00
Slava Pestov
6aee6b3adc
Add context-specific special object table, generalizing catchstack_save and current_callback_save fields of context struct
2010-03-18 22:06:00 +13:00
Joe Groff
bcbc7632c6
fix stack effects in compiler tests
2010-03-08 23:46:20 -08:00