-
559eb400a8
add shifting of argument list in interpreter mode
master
Jesse D. McDonald
2020-12-18 08:58:38 -0600
-
1d930672bc
remove vestigial special-case code for input from 'terminal' (stdin)
Jesse D. McDonald
2020-11-15 18:30:10 -0600
-
35c6641a21
reset RSP to saved frame pointer on exit; eliminates UNLOOP, UNLOCALS, UNALLOCA
Jesse D. McDonald
2020-11-15 03:54:26 -0600
-
c9be49b8a9
preserve %edi in all primitive operations
Jesse D. McDonald
2020-11-15 01:07:21 -0600
-
cc0a8ead19
add CC0 license file
Jesse D. McDonald
2020-11-12 01:40:22 -0600
-
d94c274b33
clean up & reorganize
Jesse D. McDonald
2020-11-12 01:32:39 -0600
-
676ec83cb9
fix multi-line ( … ) comments in included files
Jesse D. McDonald
2020-11-11 00:34:21 -0600
-
ff2d91b66b
simplify conditionals; rename ONWARD-IF to AND-IF; remove AND-THEN and OR-ELSE
Jesse D. McDonald
2020-11-11 00:18:57 -0600
-
e533756d25
replace global variables holding local data with ALLOCA
Jesse D. McDonald
2020-11-09 13:55:55 -0600
-
54ac4ca37b
add ALLOCA, %ALLOCA, and UNALLOCA for reserving space on the return stack
Jesse D. McDonald
2020-11-09 13:55:02 -0600
-
7d286ddffc
add remaining file I/O words & script mode
Jesse D. McDonald
2020-11-07 23:15:12 -0600
-
d2ca30d177
add file input, INCLUDE-FILE, and INCLUDED
Jesse D. McDonald
2020-11-07 17:29:48 -0600
-
3590996e43
fix for data left on return stack when AA tree is empty
Jesse D. McDonald
2020-11-07 17:28:18 -0600
-
9361c6fef0
implement some of the file I/O words
Jesse D. McDonald
2020-11-07 14:28:09 -0600
-
38da1322c1
fix excess alignment for 64-bit integer types on x86
Jesse D. McDonald
2020-11-07 14:26:36 -0600
-
98731c5f01
add DUMP word for displaying raw memory
Jesse D. McDonald
2020-11-07 14:25:49 -0600
-
a143fdf7a4
show the data stack at the prompt if non-empty
Jesse D. McDonald
2020-11-07 11:03:08 -0600
-
11b5b3e7ed
add native COMPARE primitive for performance
Jesse D. McDonald
2020-11-07 11:02:21 -0600
-
b427711830
add AA-ITERATE for simple in-order iteration of an AA tree
Jesse D. McDonald
2020-11-07 10:09:00 -0600
-
b258023136
eliminate *-WORDLIST & replace with VOCABULARY-style words
Jesse D. McDonald
2020-11-07 00:47:05 -0600
-
7d859d4f23
add support for # suffix to indicate double-cell numbers
Jesse D. McDonald
2020-11-06 20:31:34 -0600
-
c076939fe2
fix for incorrect double-cell shift by 32 or more bits
Jesse D. McDonald
2020-11-06 20:29:48 -0600
-
ffb555c42f
add DU.R, D.R, U.R, and .R for right-aligned numeric output
Jesse D. McDonald
2020-11-05 17:06:41 -0600
-
50fe63b104
add OF? for logical tests in CASE structures
Jesse D. McDonald
2020-11-05 17:01:39 -0600
-
0ee566ea39
formatting & whitespace
Jesse D. McDonald
2020-11-05 02:02:06 -0600
-
af34583b5f
fix MARK so it works when interpreting, not just when compiling
Jesse D. McDonald
2020-11-05 02:06:12 -0600
-
1f37a19c1b
add ARGC, ARGV, and GETENV to access the command-line and environment variables
Jesse D. McDonald
2020-11-05 01:56:15 -0600
-
73de579da0
add AA tree implementation
Jesse D. McDonald
2020-11-01 23:03:28 -0600
-
4eb3fad278
add a form of LOCALS|…| for named local variables
Jesse D. McDonald
2020-11-05 01:54:03 -0600
-
014033d715
add ELSE-IF … THEN-IF, other minor words, and cleanup
Jesse D. McDonald
2020-11-01 03:26:55 -0600
-
f3fae3f5c2
add truncation to 63 characters max when looking up words
Jesse D. McDonald
2020-10-31 13:29:33 -0500
-
7e8b06c6ab
use .balign (always bytes) instead of .align (depends on target)
Jesse D. McDonald
2020-10-31 12:07:07 -0500
-
9fe916db16
rename :REPLACE to :FINALIZE since prior word must be deferred
Jesse D. McDonald
2020-10-31 11:58:07 -0500
-
abedc84f1a
remove redundant store of DODEFER in CFA of deferred word
Jesse D. McDonald
2020-10-31 11:57:35 -0500
-
70c87e3d7a
refactor word header so only >NAME involves variable-length data
Jesse D. McDonald
2020-10-31 11:55:57 -0500
-
3009bc84e5
remove ['] and [CHAR], add MARKER and PRESERVED, tweak bootstrap word lists, etc.
Jesse D. McDonald
2020-10-29 14:36:09 -0500
-
a1c55c0d64
fix for inverted condition in ABS
Jesse D. McDonald
2020-10-28 01:21:02 -0500
-
e7dacc5582
fix WITHIN to match ANS FORTH (low ≤ test < high)
Jesse D. McDonald
2020-10-27 22:55:28 -0500
-
63b0c745ab
rename WORD to PARSE-NAME (from FORTH 2012) which is a better match for the interface
Jesse D. McDonald
2020-10-27 21:52:24 -0500
-
28559fc98c
unify AGAIN and REPEAT; allow multiple WHILEs and BEGIN … WHILE … UNTIL
Jesse D. McDonald
2020-10-27 21:18:17 -0500
-
1ceedba773
redefine 2CONSTANT in terms of CREATE DOES>, saving two cells per use
Jesse D. McDonald
2020-10-27 16:59:00 -0500
-
687012b7df
add #DFP for Decimal Fixed Precision numeric output
Jesse D. McDonald
2020-10-27 01:56:26 -0500
-
67bb06dd8f
refactor & reorganize
Jesse D. McDonald
2020-10-26 05:05:06 -0500
-
e268cac0a4
add a COMPOSE combinator and ALIAS defining word
Jesse D. McDonald
2020-10-25 02:14:37 -0500
-
24682b970b
align ALLOCATE'd memory to 8 bytes with a magic number in the extra cell
Jesse D. McDonald
2020-10-25 01:49:42 -0500
-
0d107e17d2
add a generic MERGE-SORT function for linked lists
Jesse D. McDonald
2020-10-24 20:49:00 -0500
-
7de6cf5a0c
add tests for numeric literal parsing
Jesse D. McDonald
2020-10-24 15:15:40 -0500
-
59ed031ca4
add parsing for binary, octal, and hexadecimal literals
Jesse D. McDonald
2020-10-24 14:12:30 -0500
-
f89a98e0b0
disallow interpreting string literals in bootstrap mode
Jesse D. McDonald
2020-10-24 14:08:09 -0500
-
36e704b6cb
fix for redundant U* primitive (signed and unsigned are the same)
Jesse D. McDonald
2020-10-24 14:03:50 -0500
-
8dbc2939fc
add DUPLICATE to ALLOCATE and copy a string or other data
Jesse D. McDonald
2020-10-24 11:14:33 -0500
-
89c2f4df3d
read string literals into a dynamically resized transient buffer
Jesse D. McDonald
2020-10-24 11:07:38 -0500
-
46211d5662
make ALLOCATE of 0 bytes and FREE with a null address no-ops
Jesse D. McDonald
2020-10-24 10:52:26 -0500
-
d68804f866
add a Makefile rule for refreshing test expected results
Jesse D. McDonald
2020-10-24 10:48:38 -0500
-
688fe7369e
change %ALLOT to return the aligned address of the data structure
Jesse D. McDonald
2020-10-23 23:33:14 -0500
-
21eb4fafc4
add CLOSURE to capture data and code in a single execution token
Jesse D. McDonald
2020-10-23 23:32:35 -0500
-
15fa156d02
add N@ and N! to transfer a group of cells to or from memory
Jesse D. McDonald
2020-10-23 23:31:11 -0500
-
92d806298b
reorganize into multiple word lists & shrink bootstrap words
Jesse D. McDonald
2020-10-23 19:39:29 -0500
-
4b98e19304
use ALLOCATE for the terminal input buffer and search order entries
Jesse D. McDonald
2020-10-23 12:33:29 -0500
-
9cf133a715
remove BUDDY-STATS from the test output since the details vary
Jesse D. McDonald
2020-10-23 12:31:20 -0500
-
c09ca4a9e4
add RESIZE definition to match ALLOCATE and FREE
Jesse D. McDonald
2020-10-23 01:32:33 -0500
-
7b44312892
add allocation of blocks for small objects with mmap
Jesse D. McDonald
2020-10-22 23:34:05 -0500
-
64a1ee9810
add a simple unit-test framework
Jesse D. McDonald
2020-10-22 21:03:27 -0500
-
447c212f09
implement LEAVE, [IF]…[ELSE]…[THEN], and various other changes
Jesse D. McDonald
2020-10-22 20:55:01 -0500
-
77607934cd
add a full complement of double-cell primitives
Jesse D. McDonald
2020-10-21 20:11:40 -0500
-
bcf5d80be0
add a basic README.md file
Jesse D. McDonald
2020-10-20 22:52:35 -0500
-
9e21704825
add large-object allocation (over 4 MB) with mmap
Jesse D. McDonald
2020-10-20 22:21:20 -0500
-
53c76a2e6a
tweak prompt format
Jesse D. McDonald
2020-10-20 22:03:17 -0500
-
1a0fb71dd2
display exception code in default THROW handler
Jesse D. McDonald
2020-10-20 22:00:45 -0500
-
4460297631
add pictured numeric output definitions as per ANS FORTH
Jesse D. McDonald
2020-10-20 21:59:12 -0500
-
d90c8857e2
formalize 'THROW with string' & ensure default string is empty
Jesse D. McDonald
2020-10-20 21:56:39 -0500
-
96ebc29630
simplify primitive code
Jesse D. McDonald
2020-10-20 21:52:49 -0500
-
2ceb9f75da
add more double-cell numeric primitives and definitions
Jesse D. McDonald
2020-10-20 21:47:34 -0500
-
b22e3e9c93
implement ALLOCATE and FREE using buddy allocator
Jesse D. McDonald
2020-10-18 20:53:03 -0500
-
c0434e415a
fix for RSHIFT implemented as left shift
Jesse D. McDonald
2020-10-18 20:51:54 -0500
-
2eaa43f85f
add decoding for { … } literals in SEE
Jesse D. McDonald
2020-10-15 15:03:02 -0500
-
29b949d583
add exception handling with THROW and CATCH, and a version of SEE
Jesse D. McDonald
2020-10-15 05:07:15 -0500
-
c0391de969
revise the input system to better align with ANS FORTH
Jesse D. McDonald
2020-10-14 02:11:35 -0500
-
3ae2ff353b
add more primitives from the ANS FORTH standard
Jesse D. McDonald
2020-10-13 03:02:34 -0500
-
4528e9c5d8
add project .gdbinit script to simplify debugging
Jesse D. McDonald
2020-10-11 02:09:22 -0500
-
1d56576f49
separate bootstrap (asm) definitions from runtime definitions
Jesse D. McDonald
2020-10-11 02:08:26 -0500
-
3790a647fd
implement the Search-Order word set
Jesse D. McDonald
2020-10-05 01:32:31 -0500
-
60333e365c
fix DOES> to work as described in the ANS Forth standard
Jesse D. McDonald
2020-10-03 15:25:53 -0500
-
3a4e040ec1
implement CASE/OF, looping structures, :NONAME, and more
Jesse D. McDonald
2020-10-02 23:57:17 -0500
-
2d8f282611
revise startup code with comments and new definitions
Jesse D. McDonald
2020-09-21 16:56:50 -0500
-
09afabc21c
move comment words \ and ( to myforth.S for earlier commenting
Jesse D. McDonald
2020-09-21 15:26:07 -0500
-
35c42fa895
refactor ABORT etc.; add GETPID, GETTID, and RAISE
Jesse D. McDonald
2020-09-21 15:21:04 -0500
-
19f12a45b9
add definitions for syscall and signal numbers
Jesse D. McDonald
2020-09-21 15:18:44 -0500
-
df89a30338
initial commit
Jesse D. McDonald
2020-09-20 06:45:27 -0500