Simon Forman
b1d7a34eab
unstack
2023-02-08 15:06:12 -08:00
Simon Forman
2be2d00e6b
Handle definitions with non-alphanumeric chars in their names.
2023-02-08 12:50:23 -08:00
Simon Forman
832cbe34e4
Oh, LDFLAGS, right...
2023-02-08 11:55:33 -08:00
Simon Forman
2b54c0bc0a
Initializers for Boolean values.
2023-02-07 20:53:44 -08:00
Simon Forman
94bcd2aa51
Minor cleanup.
2023-02-07 20:47:32 -08:00
Simon Forman
efd77a2ffd
Aliases can be put in KEYWORDS.in
...
This avoids the overhead of single-functions definitions for aliases.
2023-02-07 19:14:37 -08:00
Simon Forman
0c8e49d591
dispatch
2023-02-07 17:44:32 -08:00
Simon Forman
b57cfdf825
Track KEYWORDS.txt after all.
2023-02-06 13:14:14 -08:00
Simon Forman
708e5ad3f5
eq, neq, gt, ge, lt, le
2023-02-06 13:09:37 -08:00
Simon Forman
05575d8a08
A bunch of definitions.
...
Still to do: the comparison functions.
2023-02-06 12:59:39 -08:00
Simon Forman
437e0af91d
Use setjmp/longjmp to recover after errors.
...
Wow! That was easy!
2023-02-06 00:30:25 -08:00
Simon Forman
0611aa3c05
Clean KEYWORDS.txt too.
2023-02-05 20:48:19 -08:00
Simon Forman
5b12385253
pop_list <=> pop_list_node
...
These names seem like they should be swapped.
2023-02-05 19:47:32 -08:00
Simon Forman
b70231bcff
minor cleanup
2023-02-05 19:40:16 -08:00
Simon Forman
3a11fcb834
loop
...
But it's pretty inefficient, eh?
2023-02-05 18:43:05 -08:00
Simon Forman
26a733f720
first, rest
2023-02-05 17:40:26 -08:00
Simon Forman
d3a9a6ff7f
A README file.
2023-02-05 14:54:33 -08:00
Simon Forman
ccbf8d2b4c
minor cleanup
2023-02-05 13:53:53 -08:00
Simon Forman
8bda5d511a
Auto-generate defintions from defs.txt
...
But it doesn't yet handle names with non-C-indentifier characters in
them.
2023-02-05 13:50:16 -08:00
Simon Forman
291b6caa75
Generate definitions.h; swons
2023-02-05 13:38:59 -08:00
Simon Forman
78b59dda35
Put defs into a generated file.
...
This is only part of the solution, we still need to update joy.h and
KEYWORDS.txt when defs.txt changes, and we need to handle names that
have non-C-identifier characters in them.
But it's a start...
2023-02-05 13:04:31 -08:00
Simon Forman
6eae43c27f
push_quote_onto_expression
...
doesn't push an empty list, unlike push_quote() which does.
2023-02-05 11:58:44 -08:00
Simon Forman
a9e4f93cdc
concat
2023-02-05 11:00:22 -08:00
Simon Forman
6ee3226a88
swap
2023-02-05 10:27:17 -08:00
Simon Forman
514eaef70f
forgot to save
2023-02-05 10:23:50 -08:00
Simon Forman
bafb2a318b
No clear def.
2023-02-05 10:05:20 -08:00
Simon Forman
ac47f39ea3
Remove def of clear.
...
It's a neat example of a custom implementation being more efficient than
the Joy code.
2023-02-05 10:04:20 -08:00
Simon Forman
09e9e340a5
stack
2023-02-05 10:00:18 -08:00
Simon Forman
8f4c98a051
swaack
2023-02-05 09:54:52 -08:00
Simon Forman
9563f738bd
pop
2023-02-05 09:50:41 -08:00
Simon Forman
3d0b5ba266
cons
2023-02-05 09:40:47 -08:00
Simon Forman
fe4ce60541
dip
2023-02-05 08:49:05 -08:00
Simon Forman
4b3117e349
minor cleanup
2023-02-05 08:38:15 -08:00
Simon Forman
f34b4547a5
dup
2023-02-05 08:37:13 -08:00
Simon Forman
4181daf40c
minor cleanup
2023-02-05 08:12:32 -08:00
Simon Forman
b1a06979c2
truthy
2023-02-04 23:45:13 -08:00
Simon Forman
7874496090
Definitions.
...
There are things to like about this implementation and things to
dislike.
Things to like:
- It works.
- The defs are baked into the wordlist.
Cons:
- The def bodies are built at start time by parsing strings. it would
be nice to somehow generate initializer literals if possible. But
would that mess up the garbage collector?
- It requires manual labor to update the defs when defs.txt changes. It
would be nice to have a solution that *make* can use.
2023-02-04 23:08:39 -08:00
Simon Forman
15482c1fdd
A first attempt at definitions.
2023-02-04 22:58:38 -08:00
Simon Forman
b70229d727
Almost truthy...
2023-02-04 22:58:16 -08:00
Simon Forman
6159165acd
div and mod
2023-02-04 19:34:38 -08:00
Simon Forman
720f36a4c0
clear
2023-02-04 19:21:13 -08:00
Simon Forman
c3e786aed9
branch combinator.
2023-02-04 19:19:48 -08:00
Simon Forman
21f99aac96
i combinator.
2023-02-04 19:05:26 -08:00
Simon Forman
bd525cc7ac
Depend on joy.h.
2023-02-04 18:59:59 -08:00
Simon Forman
62ed15d17a
Minor cleanup, print_stack.
2023-02-04 18:51:58 -08:00
Simon Forman
8b4d265ed9
Minor cleanup.
2023-02-04 13:46:29 -08:00
Simon Forman
b76213ff7e
Expression is a list-of-lists now.
...
That way we don't have to concatinate quotes onto it all the time.
Instead we amortize in the next_term() function.
2023-02-04 13:38:28 -08:00
Simon Forman
45865acc2f
Cmp, comes with GMP.
2023-02-04 12:47:45 -08:00
Simon Forman
42e7724e77
Boolean singleton values.
2023-02-04 11:27:03 -08:00
Simon Forman
81eebc5b9b
Boolean singleton values.
2023-02-04 10:25:14 -08:00