Commit Graph

210 Commits (1a38a6f63a341f20bb8a9237bfa91e32ebfd40dc)

Author SHA1 Message Date
Alexander Iljin 2ffa446f5b *-docs: replace double spaces with single spaces
Code examples and other places where multiple spaces were used to align
text were left intact.
2017-06-05 13:16:07 -07:00
Doug Coleman e189954ecc core: Rename iota to <iota> so we can have TUPLE: iota ... ; instead of TUPLE: iota-tuple ... ; 2017-06-02 11:57:05 -05:00
Björn Lindqvist 4d5b83c3f5 compiler.cfg.builder.alien.tests: fix test that broke windows 2016-12-01 19:52:02 +01:00
Björn Lindqvist 75b6b12d0e compiler.cfg.*,compiler.tree.*: more docs and tests 2016-11-30 16:36:25 +01:00
Björn Lindqvist c640e3b8c1 compiler.cfg.*: changing height-state from a 2-el array to a tuple
This way, it is a little easier to see what is going on in the local
analysis phase.
2016-09-08 04:01:25 +02:00
Björn Lindqvist 2edda80b5e compiler.cfg.*: removing the adjust-d word
inc-stack can be used in emit-call-block if we check if the block is a
kill block in end-local-analysis
2016-09-05 12:12:01 +02:00
Björn Lindqvist 367bff6339 compiler.cfg.builder: simplification of the shuffling logic 2016-09-04 06:22:54 +02:00
Björn Lindqvist 26d53f9019 compiler.cfg.*: compiler doc updates 2016-09-01 02:16:30 +02:00
Björn Lindqvist ddc5ece757 alien.*: frontend varargs support! #1677
alien-invoke gets an extra parameter indicating if the call uses varargs
or not. In 99.9% of the cases, the parameter should be f, but is t if
varargs are indicated. E.g

: do-printf ( fmt d -- st ) int f "printf" { c-string double } t alien-invoke ;
2016-08-10 21:34:37 +02:00
Björn Lindqvist 7ab3ebfdd5 compiler.cfg.builder.alien: simpler caller-stack-frame word 2016-08-10 21:34:37 +02:00
Björn Lindqvist 24a02a1c8f compiler.*: Backend implementation of varargs
It is turned off by default. Support for using it coming soon. :)
2016-08-08 12:02:19 +02:00
Björn Lindqvist a79309680c compiler.*, stack-checker.*: fixes to make the tests work on 32bit too 2016-08-05 16:44:19 +02:00
Björn Lindqvist 1b08ef3593 compiler.cfg.builder.*: fix for tests that broke on windows 2016-08-05 01:01:25 +02:00
Björn Lindqvist e67745aaba stack-checker.*: removes the in-d and out-d slots from the alien-node-params tuple
That data is already on the #alien-node tuple so it doesn't need to be
stored twice.
2016-08-04 20:30:58 +02:00
Björn Lindqvist 5794ca6834 compiler.cfg.builder.alien.tests: fix for the test case i broke 2016-08-02 01:29:19 +02:00
Björn Lindqvist af62d33ba9 compiler.cfg.*: lots of new tests 2016-08-01 21:52:06 +02:00
Björn Lindqvist 2e332f73b5 compiler.*: new docs 2016-08-01 21:52:05 +02:00
Björn Lindqvist e359f3fca4 compiler.cfg.builder.alien.params: refactors the next-reg-param and reg-class-full? words 2016-08-01 21:52:05 +02:00
Björn Lindqvist 8aef16bed2 compiler.cfg.builder.alien.*: merge of with-param-regs and with-param-regs* 2016-08-01 21:52:05 +02:00
Björn Lindqvist 75a3e191b2 compiler.*: a bunch of random doc additions 2016-06-21 23:15:20 +02:00
Björn Lindqvist 2fe26444aa compiler.cfg.builder.*: docs and tests 2016-05-24 17:22:38 +02:00
Björn Lindqvist b8e0d5e278 compiler.cfg.builder.*: the when* checks aren't needed 2016-04-30 09:28:30 +02:00
Björn Lindqvist 3e14ceafe2 compiler.*: more compiler tests 2016-04-22 12:44:25 +02:00
Björn Lindqvist 4a472d7882 compiler.cfg.builder.blocks: return the slots, they are absolutely
needed for bootstrap
2016-03-16 14:08:49 +01:00
Björn Lindqvist f906f1c282 compiler.cfg.*: the make-kill-block word is not needed 2016-03-16 12:26:03 +01:00
Björn Lindqvist 5ca571e304 compiler.cfg.builder.blocks: some cleanup 2016-03-16 11:48:31 +01:00
Björn Lindqvist 3a9b297b3b compiler.cfg.*: better stack effect for end-stack-analysis 2016-03-16 10:53:33 +01:00
Björn Lindqvist b27634bff7 compiler.cfg.builder.blocks: removes assignments to basic-block variable
Now it isn't used at all in the cfg creation step.
2016-03-09 23:24:43 +01:00
Björn Lindqvist 9df955e199 compiler.cfg.*: big changes which removes the last basic-block uses
All intrinsic code generating words signatures are changed from ( node
-- ) to ( block node -- block' ) so the current block is now always
passed on the stack.
2016-03-09 23:24:42 +01:00
Björn Lindqvist 482998974b compiler.cfg.*: more refactoring to remove basic-block get:s
Now almost all words pass around the current basic block on the
stack. Left is updating all intrinsics.
2016-03-09 23:24:42 +01:00
Björn Lindqvist f9c6d7cc43 compiler.cfg.*: changes to remove basic-block variable
The emit-node generics signature is changed to ( block node -- block' )
so that it always returns the next block to operate on. Signature for a
lot of related words are changed similarily. Now there is only a few
basic-block usages left.
2016-03-09 23:24:42 +01:00
Björn Lindqvist 07adc2ecae compiler.cfg.*: changed generic emit-node to take the current block as
stack parameter

The idea is to eventually completely remove the basic-block dynamic
variable from cfg construction.
2016-03-09 23:24:42 +01:00
John Benediktsson 3affad7681 docs: using $maybe. 2015-12-11 17:05:45 -08:00
Björn Lindqvist 6a2c36f5ec compiler.cfg.builder.blocks: help-lint fix 2015-11-23 16:32:01 +01:00
Björn Lindqvist 63fd4d25cf compiler.cfg.*: more fixes to pass basic-block on the stack than in a
dynamic variable
2015-11-22 01:06:11 +01:00
Björn Lindqvist 1421779c9e compiler.cfg.*: refactors words to take a block parameter instead of
using the basic-block dynamic variable

the idea is to make the code easier to follow by limiting the use of
dynamic variables
2015-11-22 00:37:34 +01:00
Björn Lindqvist 4db173cadb compiler.*: random doc and tests updates 2015-09-22 08:52:59 +02:00
Björn Lindqvist bc7f9ee669 VM: always use undecorated names when loading ffi functions
For win32, Factor tries four different function names when loading
stdcall and fastcall functions, in case decorated names are used in the
dll. It seems to not be necessary because a dll meant for 3rd party use
will always export undecorated
names (http://blogs.msdn.com/b/oldnewthing/archive/2004/01/12/57833.aspx).
2015-09-02 21:54:41 +02:00
Doug Coleman ce046b77c8 compiler: rename D to D: because it wants a token. Same for R -> R: 2015-08-13 15:23:10 -07:00
Doug Coleman 330c7ba156 factor: Removing SLOT: nth/at/global in favor of using change: at for tuple slots named ``at`` and change-at for hashtables.
Redo many FROM: and QUALIFIED: and using lists.
2015-08-12 08:49:02 -05:00
Doug Coleman 892c62e1dc factor: second stab at [ ] [ ] unit-test -> { } [ ] unit-test 2015-07-03 09:39:59 -07:00
Doug Coleman 59f3b1ea57 Revert "factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!"
Needs a bit more work.

This reverts commit 7e54cc2824.
2015-07-02 13:47:06 -07:00
Doug Coleman 7e54cc2824 factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool! 2015-07-02 11:36:08 -07:00
Björn Lindqvist 655faadec9 compiler.*: now when we're tracking uninitialized locations instead of
initialized ones, the height slot isn't needed on ##call anymore
2015-05-17 07:59:34 +02:00
John Benediktsson 2c3492a916 minor cleanup to some docs. 2015-05-13 16:09:14 -07:00
Björn Lindqvist 8df92abeb9 compiler.*,cpu.*: add a height slot to ##call nodes, then other compiler
passes can much easier to accurate liveness analysis on stack locations
2015-05-09 20:04:22 -07:00
Björn Lindqvist 8f02cad9c5 compiler.cfg.*: a bunch of new tests 2015-05-09 20:04:22 -07:00
Björn Lindqvist 5ca23c4793 compiler.*: a few extra doc fixes 2015-04-30 04:51:58 +02:00
Björn Lindqvist 6097e80178 compiler.cfg.*: fixing tests so they work on 32bit archs too 2015-04-30 04:49:48 +02:00
Björn Lindqvist 745d3f29b2 compiler.cfg.*: a bunch of new docstrings and other doc fixes 2015-04-29 09:31:56 -07:00