Commit Graph
86 Commits
Author SHA1 Message Date
Simon Forman f8829e25fa A little more documentation. 2018-07-11 07:13:05 -07:00
Simon Forman fcf483af22 Ah, Symbols. 2018-07-11 07:12:14 -07:00
Simon Forman 343a2f8459 Unicode in docstring. 2018-07-11 07:11:56 -07:00
Simon Forman 0980d1b7c9 ifte as definition; "fork" combinator. 2018-07-11 07:10:54 -07:00
Simon Forman d95b92314e Clean up. 2018-07-06 14:20:04 -07:00
Simon Forman 1862ece03e Adding support for type checking. 2018-07-06 14:19:36 -07:00
Simon Forman 531e215ffd Another definition for while. 2018-07-06 14:19:00 -07:00
Simon Forman ab8ec6c95d Minor cleanup.
Renamed update() to reify() and reinstated recursive substitution.
2018-07-04 10:37:43 -07:00
Simon Forman 4fff827338 Extra logging and another lil test. 2018-06-30 23:20:00 -07:00
Simon Forman ab1f5227ba Hmm.
I think update() should be done better...
2018-06-30 12:59:14 -07:00
Simon Forman 4406a6620b Type inference of Joy expressions.
More remains to be done but it seems to work.
2018-06-29 13:19:12 -07:00
Simon Forman 6ca59847ab Gotta update() expression too.
If type vars get into the espression you have to keep them in sync with
the unification or you can lose information.


Some combinators can put symbols on the expression, you have to convert
those to type checkers or, as a hack, just look them up and run them.
This lets definitions work(-ish), ...
2018-06-27 22:26:27 -07:00
Simon Forman fc45727008 Minor cleanup. 2018-06-27 19:03:23 -07:00
Simon Forman 9ee50a6268 Minor edits. 2018-06-27 16:31:00 -07:00
Simon Forman 4321ea874b don't compose lits
It forces the identities of lits to change during relabel().

I think we still have to update() the expression to track changes in the
F function stack effect or we risk losing assoviations between type
variables in the stack effects and type variables in the pending
expression.  Hrmmm.
2018-06-26 22:39:06 -07:00
Simon Forman db28989b64 Trying to add a guard to combinators.
So they can notice if they're given a stack that doesn't match what
they're expecting.

This seems to work, but I realized that type variables in the pending
expression need to be update()'d too.  hmm...
2018-06-26 21:45:58 -07:00
Simon Forman bbc0fae2e9 Minor edits. 2018-06-26 21:44:18 -07:00
Simon Forman 56262fc53e Dropped some HTML docs somehow. 2018-06-26 15:58:18 -07:00
Simon Forman eb739024eb Type checking, initial work. 2018-06-26 15:23:51 -07:00
Simon Forman 705c95ee28 Fix a couple of bug in Kleene Stars.
...and some minor cleanup.
2018-06-25 12:43:05 -07:00
Simon Forman 41d979b233 A bit more text in the Types notebook.
It's still pretty drafty.  I'm working on the code and then I'll write up
the last bit of docs.
2018-06-25 11:32:27 -07:00
Simon Forman f1979f35ce Some more tests.
Damn thing seems to be working.
2018-06-25 06:51:12 -07:00
Simon Forman baae1a5b36 Change name of kav() to infer(). 2018-06-24 18:48:22 -07:00
Simon Forman ad83e1607e Writing tests.
I'm backfilling tests to cover the functionality that I developed
incrementally in the Jupyter notebook and nail it down with concrete
examples.  No doubt I'll uncover some bugs.
2018-06-24 18:44:29 -07:00
Simon Forman d874b2a134 Minor cleanup.
Joy type errors get their own exception class.
2018-06-24 18:39:46 -07:00
Simon Forman 1aace53fa0 Infencer/Interpreter hybrid and Kleene Star types.
Still draft but it works.  Gotta clean it up and supply defs for basis
functions.
2018-06-24 16:33:07 -07:00
Simon Forman 968556c7f3 Simple type inference and compiler.
The compiler works for the subset of Joy functions that deal strictly in
manipulating stacks and their contents.
2018-06-21 21:23:34 -07:00
Simon Forman ca05ea404a Bunches of new docs.
Type inference!

A new treatment of recursion combinator patterns.
2018-06-21 21:13:50 -07:00
Simon Forman 049cfd22b7 Elegant definitions for un-, bin-, tern-ary combinators. 2018-06-13 10:24:36 -07:00
Simon Forman 33f34dd15b Rename pushback() to concat(). 2018-06-13 10:17:46 -07:00
Simon Forman ac56b0f03c Removing old html. 2018-06-08 13:22:13 -07:00
Simon Forman 0264efdda6 Rebuild html. 2018-06-08 13:17:36 -07:00
Simon Forman b98e9f2107 The Hylos notebook is not ready for public yet. 2018-06-08 13:05:59 -07:00
Simon Forman f5fe7d9726 Move notebook rst files to sphinx subdir.
Only for the ones that are already prepared.
2018-06-07 12:48:24 -07:00
Simon Forman abdece348f Spaces in filenames noooo. 2018-06-07 12:42:15 -07:00
Simon Forman 507d045a3d Cleaning up docs. 2018-06-07 12:37:32 -07:00
Simon Forman 956d849c8a Toplevel makefile docs target uses docs makefile. 2018-06-06 13:33:04 -07:00
Simon Forman 989e48c155 Only (re)make changed notebooks.
I love make.  (Despite not working with spaces in filenames, since that's
a dumbass thing to do anyway.)  There's probably a better way to do what
I did but it works so I'm happy.
2018-06-06 13:27:51 -07:00
Simon Forman d050180b88 Some docs that got swept up in the commotion. 2018-06-06 13:08:04 -07:00
Simon Forman 36b770f000 Make hates spaces in file names. 2018-06-06 13:07:31 -07:00
Simon Forman 81919c4bbe Make cannot deal with spaces in filenames.
Is make wrong, or is it your filename?
2018-06-06 12:57:12 -07:00
Simon Forman 8a0a5e9f30 I want to re-make only edited notebooks.
Not all of them each time.
2018-06-06 12:48:16 -07:00
Simon Forman 09276fdc13 Bunch of minor docs edits. 2018-06-06 12:47:11 -07:00
Simon Forman 3fb1e0ea81 Minor docs edit. 2018-06-06 11:45:33 -07:00
Simon Forman c60d54d009 Minor docs edits. 2018-06-06 11:32:19 -07:00
Simon Forman 637d4efa6a Minor docs cleanup. 2018-06-06 11:20:31 -07:00
Simon Forman 0de5029c98 Bumped version to 0.2.0; docs edits.
I've added cond and cmp to the library so that should bump the minor
version no. I think.
2018-06-06 08:47:26 -07:00
Simon Forman 22f7c6da00 Minor docs edits. 2018-06-06 07:59:06 -07:00
Simon Forman 37c34fc54f Added cond and cmp to library. 2018-06-06 07:56:24 -07:00
Simon Forman be6387f1f6 Regenerated docs. 2018-06-05 17:41:22 -07:00
Simon Forman 9a04534b05 More docs. 2018-06-05 17:39:18 -07:00
Simon Forman e67a6f7b6e Working on tree docs. 2018-05-29 11:38:58 -07:00
Simon Forman aafecdc035 Editing Trees; implemented BTree-Delete. 2018-05-08 08:34:20 -07:00
Simon Forman c3a3f5a527 Still working towards v0.1.1 docs. 2018-05-01 08:41:39 -07:00
Simon Forman dbb1fcf4a2 Adding params to the docstrings. 2018-04-30 10:16:04 -07:00
Simon Forman 04e8f70dd2 More docs changes. 2018-04-30 10:12:56 -07:00
Simon Forman f3b72b1938 Missed the notebooks *.html files. 2018-04-28 09:30:47 -07:00
Simon Forman 946d920cad More docs
Working towards that v0.1.1.
2018-04-28 09:10:47 -07:00
Simon Forman aabe19036f Still working towards v0.1.1.
The next "patch" bump is almost all docs.
2018-04-27 12:08:46 -07:00
Simon Forman 7aa8580ee3 Working on docs. 2018-04-26 11:47:55 -07:00
Simon Forman 8dc629cbd5 Remove a couple of docs.
One redundant the other unneeded.
2018-04-26 07:02:22 -07:00
Simon Forman 327548d715 Notebooks in Sphinx?
Converting the notebooks to ReST with nbconvert, then using sphinx on the
.rst files gives a pretty decent effect, except that the title levels are
off a little.

I need to look into hosting for the notebooks, maybe on MS Azure.  In the
meantime, I prefer the HTML made by Sphinx to the HTML made by nbconvert
directly.  It has index and cross refs and the code blocks scroll
horizontally which is crucial for wide Joy traces.  And Garamond.  God
bless Garamond.

For the Sphinx docs I'm going to edit the notebook ReST files by hand,
diverging from the originals.
2018-04-26 07:00:36 -07:00
Simon Forman aac5a42cab Somehow these didn't get added earlier. 2018-04-25 20:55:26 -07:00
Simon Forman 6797497453 Bump version to 0.1.1
To cover the docs updates and such.
2018-04-25 20:53:59 -07:00
Simon Forman 59c15956fa Include Sphinx-built HTML. 2018-04-25 13:57:23 -07:00
Simon Forman 2887132aeb Editing Sphinx docs.
A lot more still to do but it's coming along.
2018-04-25 13:35:03 -07:00
Simon Forman cfbd9a5182 ReST docs & library edits for Sphinx
Used Pandoc to convert the notebooks to rst format.  Used 2to3 to edit
the function signatures that were causing sphinx to error out.  Am I
really the only one who uses that syntax?
2018-04-24 22:07:21 -07:00
Simon Forman 147641611d Working on the Sphinx docs.
I had to remove the tuples from the args specs, sphinx had kittens.

I see value both in the autodoc for library.py and the library examples
Jupyter notebook (converted to ReST format) so I'm including them both.

Calling the library module autodocs the "Function Reference".
2018-04-24 21:01:16 -07:00
Simon Forman 93b35593d4 Sphinx docs coming along.
It's so pretty!  Make me want to write more docs.  :-)

Some weird bug parsing the library.py module though.  D'oh!
2018-04-22 22:44:49 -07:00
Simon Forman 2d617a2588 Messing with Sphinx. 2018-04-22 18:26:20 -07:00
Simon Forman a2be822703 Let's try Sphinx... 2018-04-22 15:28:40 -07:00
Simon Forman 43c3bba813 Minor cleanup.
Ignore some stuff.  I was playing with Hypothesis.
2018-04-22 15:16:11 -07:00
Simon Forman 7c80a22851 Minor cleanup of the README file. 2018-04-22 09:16:48 -07:00
Simon Forman 669c86cbf1 Change project name to Thun.
I waited too long to upload to PyPI and some other bastard snagged the name.  I originally wanted to call it "Thun" as a tribute to Manfred von Thun, but I was concerned that this might seem to violate the thrid clause in the license of the original Joy code, to wit:

3. The name of the author may not be used to endorse or promote products  derived from this software without specific prior written permission.

Since the author is deceased I don't know of whom to ask permission to call this project Thun, but since I am not trying to "endorse or promote" this project with his name it should be alright.  In any event if anyone complains I can rename the project again.
2018-04-21 21:26:41 -07:00
Simon Forman 92c15a73e3 Getting ready for PyPI. 2018-04-21 20:46:35 -07:00
Simon Forman b2a4c0e1f8 Merge a branch.
I sure hope I'm doing this right.
2018-04-21 18:36:31 -07:00
Simon Forman a3c3709e4c Let the name of wrapped functions appear in tracebacks. 2018-04-21 15:37:19 -07:00
Simon Forman f7e78b6050 Switch to functions from classes for FunctionWrappers. 2018-04-21 15:20:46 -07:00
Simon Forman a682537597 Minor cleanup. 2018-04-21 11:53:02 -07:00
Simon Forman a61dc4c5d9 Efficient and elegant recursive pushback() function.
Can overflow recursion limit (typically 1000.)
2018-04-21 11:41:20 -07:00
Simon Forman 4064ac1d23 When loading definitions ignore lines w/o "==". 2018-04-21 11:40:00 -07:00
Simon Forman f454014248 Remove build dir from version control. 2018-04-16 21:26:31 -07:00
Simon Forman 9805f479be Ignore build dir and pyc files. 2018-04-16 21:21:02 -07:00
Simon Forman 1e510de8ae Testing workflow.
Correcting a typo.
2018-04-16 12:43:28 -07:00
Simon Forman fac17ceb7c Bringing over some changes.
I need to harmonize my local repo and the OSDN repo.
2018-04-16 12:27:52 -07:00
Simon Forman beb7155b4a Initial move of code from git repo. 2018-04-14 18:13:13 -07:00