184e610451c0
|
Initial poke at Lispifying the code store
|
Steve Losh |
Tue, 12 Jul 2016 21:56:01 +0000 |
a02637eeccca
|
Add Hanoi test from tAoP
|
Steve Losh |
Tue, 12 Jul 2016 18:53:39 +0000 |
6adb44b99131
|
Comment the logic stack section a tiny bit
|
Steve Losh |
Tue, 12 Jul 2016 16:31:46 +0000 |
eda9b4d218f4
|
Remove useless inline declarations
|
Steve Losh |
Tue, 12 Jul 2016 16:09:37 +0000 |
df9962950d28
|
Elide the unnecessary ALOC/DEAL from chain rules
|
Steve Losh |
Tue, 12 Jul 2016 15:52:13 +0000 |
2ce458ef85fd
|
Implement last call optimization
|
Steve Losh |
Tue, 12 Jul 2016 15:46:22 +0000 |
cb3cc671d18d
|
Beef up the PAIP queues a bit and (ab)use them in the compiler
|
Steve Losh |
Mon, 11 Jul 2016 23:37:37 +0000 |
401cba673bda
|
Simplify and optimize register allocation just a bit
|
Steve Losh |
Mon, 11 Jul 2016 22:33:25 +0000 |
789aa5540746
|
Make instructions inlineable
|
Steve Losh |
Mon, 11 Jul 2016 21:38:10 +0000 |
ab7ad2d6f641
|
Optimize `find-anonymous-variables`
|
Steve Losh |
Mon, 11 Jul 2016 21:38:03 +0000 |
d2ede3f3926a
|
Save the god damn frames
|
Steve Losh |
Mon, 11 Jul 2016 20:30:27 +0000 |
8ea123b6d26f
|
Inline the trail pointer functions
|
Steve Losh |
Mon, 11 Jul 2016 20:04:02 +0000 |
c76d55908e2e
|
Optimize circles a bit
|
Steve Losh |
Mon, 11 Jul 2016 19:56:43 +0000 |
96258fb7be70
|
Type hint the compiler
|
Steve Losh |
Mon, 11 Jul 2016 19:18:35 +0000 |
abffacd7848a
|
Merge the code I accidentally branched off because I'm an idiot
|
Steve Losh |
Mon, 11 Jul 2016 16:26:05 +0000 |
3b0161d2100d
|
Refactor the main WAM store into a `simple-array`
|
Steve Losh |
Mon, 11 Jul 2016 16:17:18 +0000 |
23d4dc2900a1
|
Refactor the code store to use a simple-array
|
Steve Losh |
Mon, 11 Jul 2016 14:15:14 +0000 |
7bd5fdb2151d
|
Don't ever use this
|
Steve Losh |
Mon, 11 Jul 2016 13:48:06 +0000 |
d6b6684d6b7b
|
Turn `instruction-size` into a neat little lookup table
|
Steve Losh |
Mon, 11 Jul 2016 09:58:20 +0000 |
2a7cb53fb03f
|
Clean up the GGP a tiny bit
|
Steve Losh |
Mon, 11 Jul 2016 09:55:05 +0000 |
4d17e3cb6fa2
|
Type-hint the WAM `setf` functions
|
Steve Losh |
Sun, 10 Jul 2016 21:08:12 +0000 |
8cd3257c58e3
|
Name the subterm-handling instructions something not completely stupid
|
Steve Losh |
Sun, 10 Jul 2016 14:28:48 +0000 |
ba205f6b2875
|
Excise the stupid fucking `set-*` opcodes
|
Steve Losh |
Sun, 10 Jul 2016 14:21:18 +0000 |
07e1d5f315f5
|
Fix constant unification
|
Steve Losh |
Sat, 09 Jul 2016 21:51:02 +0000 |
92c590f78133
|
Pool logic frames to avoid creating so many hash tables
|
Steve Losh |
Sat, 09 Jul 2016 21:03:01 +0000 |
8c853f632f8c
|
Clean up and fix the anonymous variable handling
|
Steve Losh |
Fri, 08 Jul 2016 18:14:05 +0000 |
2415dbe555d2
|
Export symbols and add a few sanity checks
|
Steve Losh |
Fri, 08 Jul 2016 17:03:54 +0000 |
55019395ba93
|
Normalize facts and queries because people are lazy
|
Steve Losh |
Wed, 06 Jul 2016 20:41:56 +0000 |
f7b7440c46ff
|
Clean up the rule UI too
|
Steve Losh |
Wed, 06 Jul 2016 20:08:27 +0000 |
0955ab257fef
|
Clean up the UI
|
Steve Losh |
Wed, 06 Jul 2016 18:30:31 +0000 |
be83cfc938fb
|
Add profile.out to .hgignore.
|
Steve Losh |
Wed, 06 Jul 2016 13:49:47 +0000 |
a3466a551136
|
Don't cons lists of numbers, jesus christ
|
Steve Losh |
Tue, 05 Jul 2016 23:54:54 +0000 |
209ecb9eeb25
|
Use a queues instead of lists for the logic frame pending predicates
|
Steve Losh |
Tue, 05 Jul 2016 23:37:14 +0000 |
9086482c09ee
|
Rename "code frame" to "logic frame"
|
Steve Losh |
Tue, 05 Jul 2016 23:12:50 +0000 |
410acaae0c14
|
Implement logic frames for assertion/retraction
|
Steve Losh |
Tue, 05 Jul 2016 23:02:33 +0000 |
6a93a2d2ed60
|
Clean up formatting
|
Steve Losh |
Tue, 05 Jul 2016 16:53:58 +0000 |
89df9abc00e5
|
Add a handy disassembly macro
|
Steve Losh |
Tue, 05 Jul 2016 16:44:10 +0000 |
970e21fa14b0
|
Implement anonymous variables and the `*_void` opcodes
|
Steve Losh |
Mon, 04 Jul 2016 23:35:08 +0000 |
d255816ad1d0
|
Switch from `:keyword` variables to `?symbol` ones
|
Steve Losh |
Sun, 03 Jul 2016 22:50:24 +0000 |
802872f9505a
|
Add AIPS Rovers example
|
Steve Losh |
Thu, 30 Jun 2016 17:53:49 +0000 |
4520c6449f48
|
Add Towers of Hanoi GDL example
|
Steve Losh |
Thu, 30 Jun 2016 17:53:20 +0000 |
13136d4b4761
|
Run the tests on CCL too
|
Steve Losh |
Thu, 30 Jun 2016 17:52:53 +0000 |
05ce726f2874
|
Comment the `bind!` thing a bit more
|
Steve Losh |
Wed, 29 Jun 2016 16:49:25 +0000 |
de6e248866f4
|
Implement dynamic calling and fix `bind!`
|
Steve Losh |
Wed, 29 Jun 2016 16:42:02 +0000 |
792dfa2f9120
|
Clean up opcode definition
|
Steve Losh |
Wed, 29 Jun 2016 13:53:59 +0000 |
809f43baf982
|
Fix a pair of really nasty bugs
|
Steve Losh |
Fri, 10 Jun 2016 20:28:37 +0000 |
72bbdd515725
|
Rewrite the compiler
|
Steve Losh |
Tue, 07 Jun 2016 14:49:20 +0000 |
796ef7444a29
|
Fix docstring to be more clear
|
Steve Losh |
Sun, 05 Jun 2016 12:27:19 +0000 |
c1641cd6368f
|
Add constant dump info
|
Steve Losh |
Sun, 05 Jun 2016 12:27:01 +0000 |
17beafee7d45
|
Typos
|
Steve Losh |
Sun, 05 Jun 2016 00:06:51 +0000 |
e244881864f7
|
Implement cut
|
Steve Losh |
Sun, 05 Jun 2016 00:01:11 +0000 |
e8934091b7bb
|
Implement Prolog lists
|
Steve Losh |
Thu, 02 Jun 2016 13:42:58 +0000 |
a696be29e830
|
Update benchmarks a bit
|
Steve Losh |
Thu, 02 Jun 2016 10:36:29 +0000 |
83f309e6e33a
|
Try out actual PAIPROLOG
|
Steve Losh |
Thu, 19 May 2016 14:13:37 +0000 |
df5a19b5f4c7
|
Try out the fixed store size.
fixed-size-store
|
Steve Losh |
Sun, 15 May 2016 11:01:55 +0000 |
95d0602ff36b
|
Begin inlining things
|
Steve Losh |
Sun, 15 May 2016 00:06:53 +0000 |
27f037427ad3
|
Add the first optimization pass: constants
|
Steve Losh |
Sat, 14 May 2016 22:42:31 +0000 |
0b8e6d6401c2
|
Make the compiler use a circle for the instruction list
|
Steve Losh |
Sat, 14 May 2016 18:52:14 +0000 |
14de0f74d3e2
|
Add a circle data structure
|
Steve Losh |
Fri, 13 May 2016 20:00:52 +0000 |
c77968cd3c51
|
Split apart compilation into precompile/render phases
|
Steve Losh |
Thu, 12 May 2016 18:52:30 +0000 |
12b69e64ece1
|
Add constant cells (unused for now)
|
Steve Losh |
Tue, 10 May 2016 19:42:04 +0000 |
0a4b04d4dfa7
|
Reserve an extra tag bit for the coming optimizations
|
Steve Losh |
Tue, 10 May 2016 19:33:09 +0000 |
b073c3d4a7a9
|
Don't put structure cells on the heap
|
Steve Losh |
Tue, 10 May 2016 19:05:13 +0000 |
9becedc43e4d
|
I can't spell
|
Steve Losh |
Tue, 10 May 2016 00:05:11 +0000 |
6392237bf417
|
Typo
|
Steve Losh |
Tue, 10 May 2016 00:00:53 +0000 |
6f08985f19af
|
THE CELLING
|
Steve Losh |
Mon, 09 May 2016 23:59:25 +0000 |
b02a1a9684c2
|
Privilege heap address 0 as a magic unset sentinal value
|
Steve Losh |
Mon, 09 May 2016 22:00:49 +0000 |
4050f38d9715
|
Rename `heap-cell` to just `cell`
|
Steve Losh |
Mon, 09 May 2016 21:41:38 +0000 |
b36cb61805d4
|
THE CONCATENING
|
Steve Losh |
Sun, 08 May 2016 21:25:08 +0000 |
d26fa87611c0
|
Purge compiled CL code before benchmarking
|
Steve Losh |
Mon, 02 May 2016 19:29:36 +0000 |
5503ccfaae65
|
THE STRUCTENING
|
Steve Losh |
Mon, 02 May 2016 19:07:40 +0000 |
1fea3b65a964
|
Add bench-results.txt to .hgignore.
|
Steve Losh |
Mon, 02 May 2016 17:56:08 +0000 |
ceecc846dd67
|
Add a benchrunner
|
Steve Losh |
Mon, 02 May 2016 17:55:07 +0000 |
d8d6647dd9fb
|
Add a similar awful benchmark for the PAIP implementation
|
Steve Losh |
Mon, 02 May 2016 16:44:29 +0000 |
4d33f11b074f
|
Add a barebones GGP test case so we can start poking at performance
|
Steve Losh |
Sat, 30 Apr 2016 22:57:09 +0000 |
3c8bbc73e9e1
|
Fix fresh db macro
|
Steve Losh |
Thu, 28 Apr 2016 18:02:52 +0000 |
1184d75b21fe
|
Cleanup
|
Steve Losh |
Sun, 24 Apr 2016 14:00:54 +0000 |
00f7bec64b84
|
Add some tests
|
Steve Losh |
Sun, 24 Apr 2016 13:55:28 +0000 |
f3ed7ce70f3b
|
Improve the UI a bit
|
Steve Losh |
Sun, 24 Apr 2016 13:52:33 +0000 |
678ab674bd33
|
Add result returning
|
Steve Losh |
Fri, 22 Apr 2016 13:50:42 +0000 |
53d629a6aa69
|
Add done-thunk and use it for query interaction
|
Steve Losh |
Fri, 22 Apr 2016 13:27:41 +0000 |
79abff72987d
|
I give up on remembering the name of this file
|
Steve Losh |
Fri, 22 Apr 2016 12:39:36 +0000 |
a97a1fd92f94
|
Implement choice points and backtracking
|
Steve Losh |
Wed, 20 Apr 2016 21:04:27 +0000 |
dc6892a9a406
|
Stop using the fill pointer for the stack
|
Steve Losh |
Wed, 20 Apr 2016 17:13:31 +0000 |
1ab41e0128dc
|
Add the TRY* instructions to compilation
|
Steve Losh |
Wed, 20 Apr 2016 16:33:38 +0000 |
67535b9c3b86
|
Implement proper result extraction
|
Steve Losh |
Tue, 19 Apr 2016 14:00:32 +0000 |
5085c5254515
|
Where the hell did this go?
|
Steve Losh |
Tue, 19 Apr 2016 12:16:52 +0000 |
d8dc03903456
|
Put query code into the front of the main CODE store to run
|
Steve Losh |
Mon, 18 Apr 2016 18:43:12 +0000 |
fb3a334a14f3
|
Refactor the shared variables copypasting
|
Steve Losh |
Mon, 18 Apr 2016 15:38:02 +0000 |
e45304805b40
|
Update tokenization comment
|
Steve Losh |
Mon, 18 Apr 2016 15:29:53 +0000 |
5962c575282f
|
Make all the arrows in comments consistent
|
Steve Losh |
Mon, 18 Apr 2016 15:26:29 +0000 |
f3aa63a7ee45
|
Todone
|
Steve Losh |
Mon, 18 Apr 2016 15:22:44 +0000 |
7564d7862350
|
Typo
|
Steve Losh |
Mon, 18 Apr 2016 15:21:41 +0000 |
b157bf8168a2
|
Document the nightmare
|
Steve Losh |
Mon, 18 Apr 2016 15:16:22 +0000 |
902d171a1a85
|
Remove unnecessary stack/structure opcodes
|
Steve Losh |
Mon, 18 Apr 2016 13:08:47 +0000 |
ce87039ad178
|
Make L2 work properly
|
Steve Losh |
Sun, 17 Apr 2016 21:36:15 +0000 |
15db57524dd3
|
Fix the interpreter and add a simple UI
|
Steve Losh |
Sat, 16 Apr 2016 13:50:36 +0000 |
b8bc9b175636
|
Rename a few files
|
Steve Losh |
Sat, 16 Apr 2016 13:07:16 +0000 |
ac5c1bfbe50a
|
Update the VM instructions to use register designators
|
Steve Losh |
Sat, 16 Apr 2016 12:54:58 +0000 |
2f0b5c92febe
|
Implement (mostly) register designators
|
Steve Losh |
Sat, 16 Apr 2016 02:20:29 +0000 |
f0f0c180ae1d
|
Add a REAL janky result extractor
|
Steve Losh |
Fri, 15 Apr 2016 22:42:03 +0000 |
1dd07907df49
|
Implement the stack, register designators, and track permanent vars
|
Steve Losh |
Fri, 15 Apr 2016 20:28:35 +0000 |
fa262e6111e9
|
Refactor the parsing and register assignment
|
Steve Losh |
Thu, 14 Apr 2016 17:16:20 +0000 |
7627f8976a3e
|
"Pre-inline" the structure argument register assignments
|
Steve Losh |
Thu, 14 Apr 2016 14:00:45 +0000 |
9376531b5089
|
Fix macro quoting
|
Steve Losh |
Thu, 14 Apr 2016 13:41:01 +0000 |
d16b5b360398
|
Fix up `push-if-new` with setf/places macromancy
|
Steve Losh |
Thu, 14 Apr 2016 13:32:31 +0000 |
fdb771cc2b8c
|
Start working on L2
|
Steve Losh |
Wed, 13 Apr 2016 17:38:57 +0000 |
99abd362620a
|
Add the program runner
|
Steve Losh |
Sun, 10 Apr 2016 18:17:03 +0000 |
c97b74976098
|
Add code labels and implement the new program instructions
|
Steve Losh |
Sun, 10 Apr 2016 17:43:04 +0000 |
564c709801aa
|
Implement the query code runner
|
Steve Losh |
Sun, 10 Apr 2016 16:02:54 +0000 |
e29b793a6e91
|
Rename the utils files
|
Steve Losh |
Sun, 10 Apr 2016 14:41:50 +0000 |
51022d18e98f
|
First stab at compiling L1 -- not ready yet
|
Steve Losh |
Sun, 10 Apr 2016 14:35:22 +0000 |
6138ec555cde
|
Change functor representation
|
Steve Losh |
Tue, 05 Apr 2016 15:00:28 +0000 |
6dc3f4e03454
|
Start working on the bytecode generation
|
Steve Losh |
Fri, 01 Apr 2016 19:16:23 +0000 |
ea71bdab6baa
|
Deal with the L1 register assignment mess
|
Steve Losh |
Fri, 01 Apr 2016 17:24:39 +0000 |
bbbc9030a316
|
Improve the code dumping function
|
Steve Losh |
Thu, 31 Mar 2016 22:17:53 +0000 |
8a18f9b3bb72
|
Add the code store to the WAM (unused right now)
|
Steve Losh |
Wed, 30 Mar 2016 13:44:34 +0000 |
894cac6a43fa
|
Make the WAM heap resizable
|
Steve Losh |
Wed, 30 Mar 2016 00:30:33 +0000 |
6b2403fb07d8
|
Add break to run
|
Steve Losh |
Tue, 29 Mar 2016 23:09:51 +0000 |
3ac6e0d897af
|
Poke at GGP a bit
|
Steve Losh |
Mon, 28 Mar 2016 20:32:33 +0000 |
dfba7d90a8a5
|
Render doc
|
Steve Losh |
Mon, 28 Mar 2016 17:52:48 +0000 |
0432f016c912
|
WHAT HATH GOD WROUGHT
|
Steve Losh |
Mon, 28 Mar 2016 00:43:24 +0000 |
0b1008a7fe76
|
Fiddle with and document the unification instructions a bit
|
Steve Losh |
Sun, 27 Mar 2016 22:30:52 +0000 |
87afb11b9791
|
Add a function for extracting things from the heap
|
Steve Losh |
Sun, 27 Mar 2016 22:25:43 +0000 |
d80af96eaf15
|
Rewrite registers to be addresses, not cells
|
Steve Losh |
Sun, 27 Mar 2016 18:32:37 +0000 |
e38bc4395d65
|
Blur the lambdas, and fix the instruction argument order
|
Steve Losh |
Sat, 26 Mar 2016 22:53:28 +0000 |
7447809d31ad
|
More work on L0, a bit of cleanup
|
Steve Losh |
Sat, 26 Mar 2016 20:40:23 +0000 |
a9bdea1a9564
|
Clean up topological-sort
|
Steve Losh |
Sat, 26 Mar 2016 19:30:09 +0000 |
d4ba6547d8a1
|
Fix up docstring
|
Steve Losh |
Sat, 26 Mar 2016 19:21:05 +0000 |
fcec9e0c9c67
|
Fix the topological sorting
|
Steve Losh |
Sat, 26 Mar 2016 19:19:07 +0000 |
859a6c1314d3
|
Add a few comments and a pair of utility functions for the WAM heap
|
Steve Losh |
Sat, 26 Mar 2016 12:21:56 +0000 |
68ed4af71452
|
Fix flet/labels indentation before I lose my mind
|
Steve Losh |
Sat, 26 Mar 2016 12:02:43 +0000 |
765efa56a965
|
Split the WAM into component files
|
Steve Losh |
Fri, 25 Mar 2016 18:52:21 +0000 |
95d96065aa82
|
Clean up and add a few comments, and add a bit more type hinting
|
Steve Losh |
Fri, 25 Mar 2016 18:40:46 +0000 |
dfbea0e60b46
|
Store functors so we can print them later
|
Steve Losh |
Fri, 25 Mar 2016 18:10:03 +0000 |
48e1170dba5c
|
Document the heap cell format a bit
|
Steve Losh |
Fri, 25 Mar 2016 18:09:23 +0000 |
cf844914bdee
|
Move scratch garbage into the scratch file
|
Steve Losh |
Fri, 25 Mar 2016 11:53:03 +0000 |
203653ce4866
|
Clean up some of the WAM code/interface
|
Steve Losh |
Fri, 25 Mar 2016 11:51:13 +0000 |
14e794b02423
|
Prettify the heap printing a bit
|
Steve Losh |
Fri, 25 Mar 2016 11:50:11 +0000 |
d2aa6ee9382a
|
Use switch instead of cond, it's cleaner
|
Steve Losh |
Fri, 25 Mar 2016 11:49:46 +0000 |
4b07fbd81ee2
|
Define some WAM index types
|
Steve Losh |
Fri, 25 Mar 2016 11:49:06 +0000 |
2579f5d00526
|
Move and clean up the functor wrapper functions
|
Steve Losh |
Fri, 25 Mar 2016 11:48:00 +0000 |
e2bb4ea1bfe7
|
Add docstrings
|
Steve Losh |
Fri, 25 Mar 2016 11:47:29 +0000 |
1ef24327a4cb
|
Add STATUS to .hgignore.
|
Steve Losh |
Fri, 25 Mar 2016 11:44:54 +0000 |
49f24c78ecb3
|
Grammaaeareraer
|
Steve Losh |
Thu, 24 Mar 2016 23:13:47 +0000 |
2eac9e1aed6d
|
Remove unused function
|
Steve Losh |
Thu, 24 Mar 2016 23:13:11 +0000 |
ab4655b23ced
|
Oh shit I've got a WAM
|
Steve Losh |
Thu, 24 Mar 2016 23:08:43 +0000 |
f57121ef4229
|
Implement a rudimentary heap for the WAM, part 0
|
Steve Losh |
Thu, 24 Mar 2016 18:51:08 +0000 |
06dedca0fd86
|
Disable the broken PAIPC for now
|
Steve Losh |
Thu, 24 Mar 2016 15:26:03 +0000 |
c1535003a7e9
|
More grinding through the compiled version
|
Steve Losh |
Thu, 24 Mar 2016 15:17:51 +0000 |
9d90efbd8787
|
Factor out cl-d-api garbage
|
Steve Losh |
Wed, 23 Mar 2016 17:43:02 +0000 |
3729fdede843
|
Initial pass at the compiler
|
Steve Losh |
Tue, 22 Mar 2016 16:46:29 +0000 |
3a8ee0586fdf
|
Add destructive unification
|
Steve Losh |
Tue, 22 Mar 2016 14:31:35 +0000 |
2daf5fb2fe92
|
Add API documentation building
|
Steve Losh |
Fri, 18 Mar 2016 13:50:04 +0000 |
ae2b13a9a629
|
Improve the testing infrastructure, rename find-all
|
Steve Losh |
Fri, 18 Mar 2016 12:09:36 +0000 |
d280326feecc
|
Add backtracking and wildcards
|
Steve Losh |
Mon, 14 Mar 2016 23:01:26 +0000 |
5ea3d706d089
|
Add scratch.lisp to .hgignore.
|
Steve Losh |
Mon, 14 Mar 2016 22:59:10 +0000 |
5bb73a585f2c
|
Finish basic proving
|
Steve Losh |
Thu, 10 Mar 2016 18:22:56 +0000 |
1340243d4843
|
Start on the logic database
|
Steve Losh |
Thu, 10 Mar 2016 15:14:48 +0000 |
49191daa42d0
|
Add variable/binding substitution
|
Steve Losh |
Wed, 09 Mar 2016 11:48:07 +0000 |