Commit Log

commit description author date
c31f22ad19d5 Update quickutils package bullshit Steve Losh 2017-02-17
221dc09d73f9 Split up main/test systems Steve Losh 2017-02-17
33c0ccf4e906 Clean up output Steve Losh 2017-02-17
fd638982ad83 Memory is cheap Steve Losh 2017-02-09
95495223e6c1 Rename `ensure-aref`, formatting Steve Losh 2017-02-09
c9ecd6ef59b9 Update docs Steve Losh 2016-11-05
024d042b3147 Add `query-for` Steve Losh 2016-09-26
3383e2593fe2 Add ABCL support Steve Losh 2016-09-24
7d1e30b7233c Add rudimentary tracing support Steve Losh 2016-09-03
11228bf838d0 Add relational db unit test from TAOP Steve Losh 2016-09-03
fd171f53d514 Typo Steve Losh 2016-08-25
9b7638f642a0 Add PAIProlog GDL benchmark Steve Losh 2016-08-25
cbfb813a3f82 Oh for fuck's sake Steve Losh 2016-08-25
dc12ccf8df91 Remove some inlining to aid in profiling Steve Losh 2016-08-24
16b422487296 Add profiling to the GDL benchmark Steve Losh 2016-08-24
1c134f25b12a Add contrib/gdl-benchmark/gdl.prof to .hgignore. Steve Losh 2016-08-24
1f0a36161f17 Implement the rest of the GDL benchmarking Steve Losh 2016-08-24
45622a0c4e96 Set up the basic framework for the benchmark Steve Losh 2016-08-24
9da17791e5da Add benchmarking package and setup instructions Steve Losh 2016-08-24
7514865459fd Add skeleton of benchmark script Steve Losh 2016-08-24
f7cc5624141a Doc tweaks Steve Losh 2016-08-24
0645e41d9d0e Use Alexandria's `when-let` Steve Losh 2016-08-23
b784df2de049 Don't depend on shit we don't need Steve Losh 2016-08-23
f0f90671d4dc Remove useless file Steve Losh 2016-08-23
6ed3375e2921 Remove the `.wam` package now that paip is gone Steve Losh 2016-08-23
df709571ebe3 Use `ensure-gethash` Steve Losh 2016-08-23
551c9d5d47d4 Sketch out a documentation plan Steve Losh 2016-08-23
9b00a02e889d Update README Steve Losh 2016-08-23
837374f5256d Make all the UI functions take a database parameter Steve Losh 2016-08-23
38d5c4302e12 Rename `*database*` -> `*standard-database*` Steve Losh 2016-08-23
b1333b02f868 Fuckin markdown Steve Losh 2016-08-20
927bb496bce0 Update README Steve Losh 2016-08-20
66c01894e34c Makefile fuckery Steve Losh 2016-08-20
5977919552ee Rename the project Steve Losh 2016-08-20
81939d20415a Remove newly-useless nesting in the src directory Steve Losh 2016-08-20
19200659513a Remove PAIP Steve Losh 2016-08-20
137f6b7d81d2 Added tag paip for changeset 9bdd5543b1d9 Steve Losh 2016-08-20
9bdd5543b1d9 Remove unused functions paip Steve Losh 2016-08-20
2df541caba61 Remove unused function Steve Losh 2016-08-20
f62853c43fb9 Vendorize quickutils Steve Losh 2016-08-20
5dce435d830e Remove examples directory Steve Losh 2016-08-20
8897604cb9dd Clean up the test running and makefile Steve Losh 2016-08-20
cb324d188513 Update links Steve Losh 2016-08-20
736f0a91c9fc Close dead branch fixed-size-store Steve Losh 2016-08-20
e9bd0632eadd Add problem 14 from 99PP as a test Steve Losh 2016-08-20
ab7de6629c42 Add tests from TAOP section 2.3 Steve Losh 2016-07-24
9c72baeb00f9 Add tests from TAOP section 2.2 Steve Losh 2016-07-23
cbde08d7548e Whitespace Steve Losh 2016-07-23
f872f5b60d73 ACTUALLY add some tests from TAOP Steve Losh 2016-07-23
4abb7eda96cb Add some tests from TAOP Steve Losh 2016-07-23
3325913a9b16 Add `put-void` Steve Losh 2016-07-22
582f7076626b Change `(values)` to `nil` Steve Losh 2016-07-17
ba96e98a1d54 Add precompilation of static queries at compile time Steve Losh 2016-07-17
aacf9ee4fddc Port some of the '99 Prolog Problems' to Bones as unit tests Steve Losh 2016-07-17
62c76cc272e7 Switch a couple of `mapcar`s to `mapc`s Steve Losh 2016-07-16
8a247663fec5 Remove optima Steve Losh 2016-07-16
6c90a65137d9 Remove defstar Steve Losh 2016-07-16
5593ae4bcb5c Remove return declarations Steve Losh 2016-07-16
2a2765e8f0f5 Add a few more type declarations Steve Losh 2016-07-16
f1ef8f905a1d Split functor cells into separate functor and arity cells Steve Losh 2016-07-16
ec2fab887b0f Constant can just use the functor symbol directly Steve Losh 2016-07-15
c4dd0b6c3a91 Remove unused arguments Steve Losh 2016-07-15
a8598eafe403 Remove the god damn functor table Steve Losh 2016-07-15
9d42a27624fd `tree-collect` is slow and conses a ton Steve Losh 2016-07-15
82413ba524d8 De-CLOS the register assignments Steve Losh 2016-07-15
e555488c15e6 De-CLOS the parse tree Steve Losh 2016-07-15
a095d20eeebc Split up the damn compiler.lisp file Steve Losh 2016-07-15
5edeeac89e03 Add numbers Steve Losh 2016-07-15
1411666a60f8 Clean up the examples a bit, still needs a lot of work Steve Losh 2016-07-15
c547c69d5405 Minor cleanup Steve Losh 2016-07-15
100ba597fd85 Add a beast of a macro to clean up/optimize the hot loop Steve Losh 2016-07-14
5c914fbcb042 Switch to 1am, test under ECL too Steve Losh 2016-07-14
8cfac0fbe30d Inline a function and use eq hash Steve Losh 2016-07-13
eec2064a08b6 Put the actual functor conses into the store Steve Losh 2016-07-13
31305584b29b Split apart the main WAM store into separate type/value arrays Steve Losh 2016-07-13
184e610451c0 Initial poke at Lispifying the code store Steve Losh 2016-07-12
a02637eeccca Add Hanoi test from tAoP Steve Losh 2016-07-12
6adb44b99131 Comment the logic stack section a tiny bit Steve Losh 2016-07-12
eda9b4d218f4 Remove useless inline declarations Steve Losh 2016-07-12
df9962950d28 Elide the unnecessary ALOC/DEAL from chain rules Steve Losh 2016-07-12
2ce458ef85fd Implement last call optimization Steve Losh 2016-07-12
cb3cc671d18d Beef up the PAIP queues a bit and (ab)use them in the compiler Steve Losh 2016-07-11
401cba673bda Simplify and optimize register allocation just a bit Steve Losh 2016-07-11
789aa5540746 Make instructions inlineable Steve Losh 2016-07-11
ab7ad2d6f641 Optimize `find-anonymous-variables` Steve Losh 2016-07-11
d2ede3f3926a Save the god damn frames Steve Losh 2016-07-11
8ea123b6d26f Inline the trail pointer functions Steve Losh 2016-07-11
c76d55908e2e Optimize circles a bit Steve Losh 2016-07-11
96258fb7be70 Type hint the compiler Steve Losh 2016-07-11
abffacd7848a Merge the code I accidentally branched off because I'm an idiot Steve Losh 2016-07-11
3b0161d2100d Refactor the main WAM store into a `simple-array` Steve Losh 2016-07-11
23d4dc2900a1 Refactor the code store to use a simple-array Steve Losh 2016-07-11
7bd5fdb2151d Don't ever use this Steve Losh 2016-07-11
d6b6684d6b7b Turn `instruction-size` into a neat little lookup table Steve Losh 2016-07-11
2a7cb53fb03f Clean up the GGP a tiny bit Steve Losh 2016-07-11
4d17e3cb6fa2 Type-hint the WAM `setf` functions Steve Losh 2016-07-10
8cd3257c58e3 Name the subterm-handling instructions something not completely stupid Steve Losh 2016-07-10
ba205f6b2875 Excise the stupid fucking `set-*` opcodes Steve Losh 2016-07-10
07e1d5f315f5 Fix constant unification Steve Losh 2016-07-09
92c590f78133 Pool logic frames to avoid creating so many hash tables Steve Losh 2016-07-09
8c853f632f8c Clean up and fix the anonymous variable handling Steve Losh 2016-07-08
2415dbe555d2 Export symbols and add a few sanity checks Steve Losh 2016-07-08
55019395ba93 Normalize facts and queries because people are lazy Steve Losh 2016-07-06
f7b7440c46ff Clean up the rule UI too Steve Losh 2016-07-06
0955ab257fef Clean up the UI Steve Losh 2016-07-06
be83cfc938fb Add profile.out to .hgignore. Steve Losh 2016-07-06
a3466a551136 Don't cons lists of numbers, jesus christ Steve Losh 2016-07-05
209ecb9eeb25 Use a queues instead of lists for the logic frame pending predicates Steve Losh 2016-07-05
9086482c09ee Rename "code frame" to "logic frame" Steve Losh 2016-07-05
410acaae0c14 Implement logic frames for assertion/retraction Steve Losh 2016-07-05
6a93a2d2ed60 Clean up formatting Steve Losh 2016-07-05
89df9abc00e5 Add a handy disassembly macro Steve Losh 2016-07-05
970e21fa14b0 Implement anonymous variables and the `*_void` opcodes Steve Losh 2016-07-04
d255816ad1d0 Switch from `:keyword` variables to `?symbol` ones Steve Losh 2016-07-03
802872f9505a Add AIPS Rovers example Steve Losh 2016-06-30
4520c6449f48 Add Towers of Hanoi GDL example Steve Losh 2016-06-30
13136d4b4761 Run the tests on CCL too Steve Losh 2016-06-30
05ce726f2874 Comment the `bind!` thing a bit more Steve Losh 2016-06-29
de6e248866f4 Implement dynamic calling and fix `bind!` Steve Losh 2016-06-29
792dfa2f9120 Clean up opcode definition Steve Losh 2016-06-29
809f43baf982 Fix a pair of really nasty bugs Steve Losh 2016-06-10
72bbdd515725 Rewrite the compiler Steve Losh 2016-06-07
796ef7444a29 Fix docstring to be more clear Steve Losh 2016-06-05
c1641cd6368f Add constant dump info Steve Losh 2016-06-05
17beafee7d45 Typos Steve Losh 2016-06-05
e244881864f7 Implement cut Steve Losh 2016-06-05
e8934091b7bb Implement Prolog lists Steve Losh 2016-06-02
a696be29e830 Update benchmarks a bit Steve Losh 2016-06-02
83f309e6e33a Try out actual PAIPROLOG Steve Losh 2016-05-19
df5a19b5f4c7 Try out the fixed store size. fixed-size-store Steve Losh 2016-05-15
95d0602ff36b Begin inlining things Steve Losh 2016-05-15
27f037427ad3 Add the first optimization pass: constants Steve Losh 2016-05-14
0b8e6d6401c2 Make the compiler use a circle for the instruction list Steve Losh 2016-05-14
14de0f74d3e2 Add a circle data structure Steve Losh 2016-05-13
c77968cd3c51 Split apart compilation into precompile/render phases Steve Losh 2016-05-12
12b69e64ece1 Add constant cells (unused for now) Steve Losh 2016-05-10
0a4b04d4dfa7 Reserve an extra tag bit for the coming optimizations Steve Losh 2016-05-10
b073c3d4a7a9 Don't put structure cells on the heap Steve Losh 2016-05-10
9becedc43e4d I can't spell Steve Losh 2016-05-10
6392237bf417 Typo Steve Losh 2016-05-10
6f08985f19af THE CELLING Steve Losh 2016-05-09
b02a1a9684c2 Privilege heap address 0 as a magic unset sentinal value Steve Losh 2016-05-09
4050f38d9715 Rename `heap-cell` to just `cell` Steve Losh 2016-05-09
b36cb61805d4 THE CONCATENING Steve Losh 2016-05-08
d26fa87611c0 Purge compiled CL code before benchmarking Steve Losh 2016-05-02
5503ccfaae65 THE STRUCTENING Steve Losh 2016-05-02
1fea3b65a964 Add bench-results.txt to .hgignore. Steve Losh 2016-05-02
ceecc846dd67 Add a benchrunner Steve Losh 2016-05-02
d8d6647dd9fb Add a similar awful benchmark for the PAIP implementation Steve Losh 2016-05-02
4d33f11b074f Add a barebones GGP test case so we can start poking at performance Steve Losh 2016-04-30
3c8bbc73e9e1 Fix fresh db macro Steve Losh 2016-04-28
1184d75b21fe Cleanup Steve Losh 2016-04-24
00f7bec64b84 Add some tests Steve Losh 2016-04-24
f3ed7ce70f3b Improve the UI a bit Steve Losh 2016-04-24
678ab674bd33 Add result returning Steve Losh 2016-04-22
53d629a6aa69 Add done-thunk and use it for query interaction Steve Losh 2016-04-22
79abff72987d I give up on remembering the name of this file Steve Losh 2016-04-22
a97a1fd92f94 Implement choice points and backtracking Steve Losh 2016-04-20
dc6892a9a406 Stop using the fill pointer for the stack Steve Losh 2016-04-20
1ab41e0128dc Add the TRY* instructions to compilation Steve Losh 2016-04-20
67535b9c3b86 Implement proper result extraction Steve Losh 2016-04-19
5085c5254515 Where the hell did this go? Steve Losh 2016-04-19
d8dc03903456 Put query code into the front of the main CODE store to run Steve Losh 2016-04-18
fb3a334a14f3 Refactor the shared variables copypasting Steve Losh 2016-04-18
e45304805b40 Update tokenization comment Steve Losh 2016-04-18
5962c575282f Make all the arrows in comments consistent Steve Losh 2016-04-18
f3aa63a7ee45 Todone Steve Losh 2016-04-18
7564d7862350 Typo Steve Losh 2016-04-18
b157bf8168a2 Document the nightmare Steve Losh 2016-04-18
902d171a1a85 Remove unnecessary stack/structure opcodes Steve Losh 2016-04-18
ce87039ad178 Make L2 work properly Steve Losh 2016-04-17
15db57524dd3 Fix the interpreter and add a simple UI Steve Losh 2016-04-16
b8bc9b175636 Rename a few files Steve Losh 2016-04-16
ac5c1bfbe50a Update the VM instructions to use register designators Steve Losh 2016-04-16
2f0b5c92febe Implement (mostly) register designators Steve Losh 2016-04-16
f0f0c180ae1d Add a REAL janky result extractor Steve Losh 2016-04-15
1dd07907df49 Implement the stack, register designators, and track permanent vars Steve Losh 2016-04-15
fa262e6111e9 Refactor the parsing and register assignment Steve Losh 2016-04-14
7627f8976a3e "Pre-inline" the structure argument register assignments Steve Losh 2016-04-14
9376531b5089 Fix macro quoting Steve Losh 2016-04-14
d16b5b360398 Fix up `push-if-new` with setf/places macromancy Steve Losh 2016-04-14
fdb771cc2b8c Start working on L2 Steve Losh 2016-04-13
99abd362620a Add the program runner Steve Losh 2016-04-10
c97b74976098 Add code labels and implement the new program instructions Steve Losh 2016-04-10
564c709801aa Implement the query code runner Steve Losh 2016-04-10
e29b793a6e91 Rename the utils files Steve Losh 2016-04-10
51022d18e98f First stab at compiling L1 -- not ready yet Steve Losh 2016-04-10
6138ec555cde Change functor representation Steve Losh 2016-04-05
6dc3f4e03454 Start working on the bytecode generation Steve Losh 2016-04-01
ea71bdab6baa Deal with the L1 register assignment mess Steve Losh 2016-04-01
bbbc9030a316 Improve the code dumping function Steve Losh 2016-03-31
8a18f9b3bb72 Add the code store to the WAM (unused right now) Steve Losh 2016-03-30
894cac6a43fa Make the WAM heap resizable Steve Losh 2016-03-30
6b2403fb07d8 Add break to run Steve Losh 2016-03-29
3ac6e0d897af Poke at GGP a bit Steve Losh 2016-03-28
dfba7d90a8a5 Render doc Steve Losh 2016-03-28
0432f016c912 WHAT HATH GOD WROUGHT Steve Losh 2016-03-28
0b1008a7fe76 Fiddle with and document the unification instructions a bit Steve Losh 2016-03-27
87afb11b9791 Add a function for extracting things from the heap Steve Losh 2016-03-27
d80af96eaf15 Rewrite registers to be addresses, not cells Steve Losh 2016-03-27
e38bc4395d65 Blur the lambdas, and fix the instruction argument order Steve Losh 2016-03-26
7447809d31ad More work on L0, a bit of cleanup Steve Losh 2016-03-26
a9bdea1a9564 Clean up topological-sort Steve Losh 2016-03-26
d4ba6547d8a1 Fix up docstring Steve Losh 2016-03-26
fcec9e0c9c67 Fix the topological sorting Steve Losh 2016-03-26
859a6c1314d3 Add a few comments and a pair of utility functions for the WAM heap Steve Losh 2016-03-26
68ed4af71452 Fix flet/labels indentation before I lose my mind Steve Losh 2016-03-26
765efa56a965 Split the WAM into component files Steve Losh 2016-03-25
95d96065aa82 Clean up and add a few comments, and add a bit more type hinting Steve Losh 2016-03-25
dfbea0e60b46 Store functors so we can print them later Steve Losh 2016-03-25
48e1170dba5c Document the heap cell format a bit Steve Losh 2016-03-25
cf844914bdee Move scratch garbage into the scratch file Steve Losh 2016-03-25
203653ce4866 Clean up some of the WAM code/interface Steve Losh 2016-03-25
14e794b02423 Prettify the heap printing a bit Steve Losh 2016-03-25
d2aa6ee9382a Use switch instead of cond, it's cleaner Steve Losh 2016-03-25
4b07fbd81ee2 Define some WAM index types Steve Losh 2016-03-25
2579f5d00526 Move and clean up the functor wrapper functions Steve Losh 2016-03-25
e2bb4ea1bfe7 Add docstrings Steve Losh 2016-03-25
1ef24327a4cb Add STATUS to .hgignore. Steve Losh 2016-03-25
49f24c78ecb3 Grammaaeareraer Steve Losh 2016-03-24
2eac9e1aed6d Remove unused function Steve Losh 2016-03-24
ab4655b23ced Oh shit I've got a WAM Steve Losh 2016-03-24
f57121ef4229 Implement a rudimentary heap for the WAM, part 0 Steve Losh 2016-03-24
06dedca0fd86 Disable the broken PAIPC for now Steve Losh 2016-03-24
c1535003a7e9 More grinding through the compiled version Steve Losh 2016-03-24
9d90efbd8787 Factor out cl-d-api garbage Steve Losh 2016-03-23
3729fdede843 Initial pass at the compiler Steve Losh 2016-03-22
3a8ee0586fdf Add destructive unification Steve Losh 2016-03-22
2daf5fb2fe92 Add API documentation building Steve Losh 2016-03-18
ae2b13a9a629 Improve the testing infrastructure, rename find-all Steve Losh 2016-03-18
d280326feecc Add backtracking and wildcards Steve Losh 2016-03-14
5ea3d706d089 Add scratch.lisp to .hgignore. Steve Losh 2016-03-14
5bb73a585f2c Finish basic proving Steve Losh 2016-03-10
1340243d4843 Start on the logic database Steve Losh 2016-03-10
49191daa42d0 Add variable/binding substitution Steve Losh 2016-03-09
52045b30aab0 Add a couple more unification tests Steve Losh 2016-03-09
a6a6f6361af3 Test the occurs check Steve Losh 2016-03-09
d08be7892816 Get some basic unification up and running Steve Losh 2016-03-08
b22eb7fe2faa Set up a clean namespace for the initial PAIP implementation Steve Losh 2016-03-08
5e0cca5174a8 More 99P Steve Losh 2016-03-08
22e5e1250898 GA the docs Steve Losh 2016-03-07
c60cac27a0a7 Initial commit Steve Losh 2016-03-05