Commit Graph
100 Commits
Author SHA1 Message Date
Simon Forman 95cd1e6cc6 round 2020-05-18 20:48:30 -07:00
Simon Forman 605891d6d8 Zero-or-one not one-or-more. 2020-05-18 20:45:04 -07:00
Simon Forman eb42220b69 Minor cleanup. 2020-05-18 20:37:58 -07:00
Simon Forman caa3cb9a1f Let's simplify. 2020-05-18 20:00:00 -07:00
Simon Forman d158157132 Rip out type code from the library. 2020-05-18 19:07:07 -07:00
Simon Forman 9368e36d22 Let's simplify. 2020-05-18 18:32:35 -07:00
Simon Forman 889bc7f9ad Bump version to 0.4.0 2020-05-17 17:28:52 -07:00
Simon Forman a223f95331 Version 0.4.0 2020-05-17 17:22:31 -07:00
Simon Forman 56da4690d0 Rebuild docs 2020-05-17 16:40:58 -07:00
Simon Forman ef6411205d Recognize scientific notation. 2020-05-17 16:10:56 -07:00
Simon Forman 2c75a0d858 Don't use == for definitions. 2020-05-17 16:02:43 -07:00
Simon Forman 98a3da138e Log reset is less wordy. 2020-05-17 12:58:26 -07:00
Simon Forman 40f8e4505d Slightly more efficient to just print the string. 2020-05-17 11:51:59 -07:00
Simon Forman 5dea9349f0 Make joy/gui/controllerlistbox.py compatible with Python 3. 2020-05-16 10:44:35 -07:00
Simon Forman b0676719a5 Python 3. 2020-05-16 09:52:56 -07:00
Simon Forman 762cd7d8ce How to start Thun under i3.
Needs the filename corrected.
2020-05-15 07:36:25 -07:00
Simon Forman 26908cf23b It must be a BytesIO. 2020-05-15 07:35:16 -07:00
Simon Forman 76ac5eca94 Trying out a different dsiplay format. 2020-05-15 07:34:47 -07:00
Simon Forman 548709c87a Format lists properly. 2020-05-10 12:46:33 -07:00
Simon Forman e5bd03ac70 Try logging just the commands. 2020-05-10 12:18:34 -07:00
Simon Forman 8a0a21e21e I3 config with suggested layout.
Stack in upper left corner, log below in same width, scratch window takes up the rest.
2020-05-10 12:17:54 -07:00
Simon Forman 354539c5f4 show_stack in case you close the stack window. 2020-05-10 10:42:10 -07:00
Simon Forman 48e0462610 Set the font on the listbox. 2020-05-10 10:35:42 -07:00
Simon Forman d280649be3 Remove listbox try out script. 2020-05-10 08:38:37 -07:00
Simon Forman a3e49a75f0 Update view of stack at start. 2020-05-10 08:36:05 -07:00
Simon Forman 663753a770 Connect it up.
Inelegant but functional.
2020-05-10 08:28:49 -07:00
Simon Forman cc6516698b Bring in the listbox widget with drag.
You can drag items up and down to rearrange the list.
2020-05-09 19:09:23 -07:00
Simon Forman c326f335ed With i3 use separate windows again. 2020-05-09 17:31:40 -07:00
Simon Forman 7c4e488d1c Version 0.3.0 2020-04-29 07:46:32 -07:00
Simon Forman ea356a539a primrec combinator in Prolog
Ticket #40375
2020-05-05 15:52:40 -07:00
Simon Forman 07d94a1fad primrec combinator
Ticket #40375
2020-05-05 15:22:12 -07:00
Simon Forman 8604dccc24 Put the log and scratch text in the same window.
This is a step towards Ticket #40360 without going all the way.  You can
open additional viewer windows.  They are not connected by an
Oberon-style messaging system (yet.  It would be nice to use the Tk event
system for that.)

This way the log and the main/scratch/system-menu text are conceptually
unified in the (equivelent of "desktop") base metaphor of the system.
2020-05-02 12:51:29 -07:00
Simon Forman b935e53ca4 Python is 3 now. 2020-05-01 23:09:09 -07:00
Simon Forman 7047ec3178 Add Python 3 classifiers and ignore __pycache__ dirs. 2020-04-28 17:33:10 -07:00
Simon Forman 46d5c32e9f Closes Ticket #40371 Bump version number to 0.3.0 2020-04-28 15:46:32 -07:00
Simon Forman 7f6fcf6e09 Rebuild docs with Python 3 and Sphinx 3.0.2. 2020-04-28 15:37:49 -07:00
Simon Forman 176e427116 Indent with tabs. 2020-04-28 15:28:58 -07:00
Simon Forman ddf063973c Trace command.
Don't print trace by default, instead a new `trace` combinator wirks like `i` and prints a trace.
2020-04-28 15:28:43 -07:00
Simon Forman 4704799c37 Rename primrec to tailrec. 2020-04-28 11:05:19 -07:00
Simon Forman 750f498512 Fixes #38237 Sort out stack/unstack/enstacken/disenstacken 2020-04-28 10:42:09 -07:00
Simon Forman fac2d2ae5f Switch the names of unstack and disenstacken.
Part of Ticket #38237

Still need to update the docs.
2020-04-28 10:28:30 -07:00
Simon Forman f13d572304 Make it easy to install the tools to build the docs. 2020-04-25 19:12:25 -07:00
Simon Forman 035f8108f0 Minor cleanup. 2020-04-25 18:41:26 -07:00
Simon Forman 5da4663f98 Some comments in gui.main. 2020-04-25 18:24:14 -07:00
Simon Forman a66fd8d173 Finally remove all mentions of the old polytypes module.
It was merged with types long ago.
2020-04-25 15:59:31 -07:00
Simon Forman cdff2ea5ea Fixes #40358 Help output could be better.
For now.  Add a header and footer.  Later on when I have per-function docs
it can look those up and print them (or open a viewer in the GUI.)
2020-04-25 15:08:58 -07:00
Simon Forman acd65f18f7 Minor docs update. 2020-04-25 14:14:35 -07:00
Simon Forman 819fcf8825 Fixes #40345 automate publication of docs
With the help of a little tar script on the server and rsync.
2020-04-25 14:13:52 -07:00
Simon Forman 638ce5a5cf Don't automodule non-existent joy.utils.polytypes module. 2020-04-24 21:27:26 -07:00
Simon Forman 5b7f65c453 Make all the docs. 2020-04-24 17:53:46 -07:00
Simon Forman d7d6114963 Rebuilt some sphinx docs. 2020-04-24 17:21:08 -07:00
Simon Forman ff6d427b2f Fixes: #38238 rename pushback to concat. 2020-04-24 17:12:46 -07:00
Simon Forman 9f55b5f4d8 Depend on dulwich and future. 2020-04-24 17:11:24 -07:00
Simon Forman 9f36207fe3 Sort the definitions in the library. 2020-04-24 16:13:05 -07:00
Simon Forman 14f706cd96 Rebuilt some docs. Minor edits. 2020-04-24 16:10:28 -07:00
Simon Forman 1863cba7f7 Somehow swoncat fell through the cracks. 2020-04-24 16:09:32 -07:00
Simon Forman d089cd5d75 Minor edits. 2020-04-24 13:27:13 -07:00
Simon Forman 078f29830d Switch to tabs for indentation.
Instead of a mix of 2- and 4-space tabs just use actual tabs.  ;-P
2020-04-24 12:48:15 -07:00
Simon Forman 2fb610e733 Fixes: #40354 Don't hardcode my own name and email as autosave committer. 2020-04-24 12:28:59 -07:00
Simon Forman c1a9fc2c28 Fixes: #40355 Lookup bytes no good. 2020-04-24 12:05:39 -07:00
Simon Forman cf5c618376 Pickle protocol 2. 2020-04-24 11:58:43 -07:00
Simon Forman 78ba1a1851 Dulwich expects bytes not str. 2020-04-24 11:57:11 -07:00
Simon Forman 40a7830694 Fixes #40353 TypeError: must be str or None, not bytes 2020-04-24 11:45:16 -07:00
Simon Forman 4ec06bcaa3 Fixes #40352 write() argument must be str, not bytes 2020-04-24 11:24:56 -07:00
Simon Forman d991fad3c3 Make sure joy.gui.main.__doc__ is at the top of the module. 2020-04-24 10:47:23 -07:00
Simon Forman 6fe11aa205 Remove __next__. 2020-04-24 10:32:48 -07:00
Simon Forman c9082be37d AttributeError: 'itertools.count' object has no attribute '__next__' 2020-04-24 10:10:50 -07:00
Simon Forman 25525deb53 Open stack pickle file in binary mode. 2020-04-24 10:10:30 -07:00
Simon Forman 53d886a492 read text from REPL, don't eval 2020-04-24 00:03:32 -07:00
Simon Forman dfe59f410c PEP 518 2020-04-24 00:00:59 -07:00
Simon Forman 9ca5b24fd1 Fake brutal_hackery on Py3.
Because I'm not about to try to figure it out tonight.
2020-04-24 00:00:41 -07:00
Simon Forman d2785f6f68 futurize stage2 vui 2020-04-23 23:44:29 -07:00
Simon Forman f949efe1a4 futurize stage2 gui 2020-04-23 23:38:10 -07:00
Simon Forman 29d510eb46 futurize stage2 core 2020-04-23 23:33:23 -07:00
Simon Forman e758d7d2be futurize stage2 core 2020-04-23 23:28:24 -07:00
Simon Forman 00db0fd0ad futurize stage1 vui 2020-04-23 23:22:45 -07:00
Simon Forman 89b4eb5e15 futurize stage1 gui 2020-04-23 23:19:29 -07:00
Simon Forman b0df80f3e6 futurize stage1 core 2020-04-23 23:16:45 -07:00
Simon Forman 8d0d0de897 Fixes #38239 rename parameter of stack.pick() 2020-04-23 21:39:29 -07:00
Simon Forman 868e9f9b52 Ignore build and virtual env ("venv"). 2020-04-23 18:59:12 -07:00
Simon Forman 49cc9c8709 Better instuctions for running docs notebooks. 2020-04-23 18:53:32 -07:00
Simon Forman 41fe48ec83 Hacked up the Prolog compiler code. 2020-04-23 15:58:38 -07:00
Simon Forman 0801c9216a Delete a pyc file. 2020-04-23 15:25:54 -07:00
Simon Forman 97b564f877 Crap, and stuff. 2020-04-23 15:18:11 -07:00
Simon Forman 53632fdbad Shortcircuit Boolean combinators. 2020-04-23 15:15:36 -07:00
Simon Forman 8a898e0292 Some comments. 2020-04-23 15:14:36 -07:00
Simon Forman 72388787de Minor edits. 2020-01-31 12:06:31 -08:00
Simon Forman cfab1cf3c8 Minor edits. 2020-01-31 12:01:13 -08:00
Simon Forman a14a55defb Remove unused predicates appears_only_once/2 and reg_used_once/2. 2020-01-31 08:30:10 -08:00
Simon Forman 3d1c9bab95 Freeing registers before using them is simpler.
https://todo.sr.ht/~sforman/thun-der/3
2020-01-31 08:26:10 -08:00
Simon Forman 400cc7dcde Partial reduction for combinator rule works after all.
It just looked weird to me and I didn't think it through.
Once I checked it I realized it was okay.
2020-01-30 10:25:12 -08:00
Simon Forman 8d1797c1b6 Uncovered and fixed a subtle bug in free_reg//3.
non_alloc/1 for words that don't change the ref count of registers and can be delegated to their semantic relation.
2020-01-29 11:04:22 -08:00
Simon Forman 95df1fda8c Cons. I should research Lisp compilers...
I think I should emit high-level code and reduce it to actual
machine code later under whatever model (cons cell heap, etc.)
2020-01-29 09:48:08 -08:00
Simon Forman 26c92e9a48 Add assoc to kinda sorta track the values in the registers.
But it doesn't update e.g. if you add two numbers, the value int(N) stays the same.

It could be modified to track the value as it computes?  But then why keep them in registers at all? Sometimes a value must arrive at runtime, eh?
2020-01-28 18:04:51 -08:00
Simon Forman ca7c23b1ac swap, pop, and +
compiling is tricky
2020-01-28 17:16:17 -08:00
Simon Forman bf8cc63c70 dup, add_ref/3. 2020-01-28 12:44:19 -08:00
Simon Forman 712dd24e88 THread through a context to track registers.
It seems to work to allocate and free registers with a kind of reference counting
by membership in an auxilliary list.
2020-01-28 12:24:04 -08:00
Simon Forman 768c7f6599 Sort of compile '+'. 2020-01-28 11:01:28 -08:00
Simon Forman bc7b471daf Move immediate to register for int literal. 2020-01-28 10:46:38 -08:00
Simon Forman 6888c71b69 blep. 2020-01-28 10:37:13 -08:00