summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Weaken the language around security promises to be more in line with my ↵HEADmainOwen Jacobson2020-05-21
| | | | ability to responsibly support this code.
* Upgrade docs requirements.Owen Jacobson2019-09-26
| | | | Several of these dependencies have had security vulns, and while they've all been irrelevant for running Sphinx locally, I'd like the alert emails to stop.
* Add license fileOwen Jacobson2019-01-06
|
* Some basic iteration primitives.Owen Jacobson2017-12-10
|
* Write up documentation for the built-in functions and macros.Owen Jacobson2017-12-10
|
* Massively expanded the reference section.Owen Jacobson2017-12-06
|
* Bump minor version.Owen Jacobson2017-12-05
|
* Stop binding greater-than-or-equal-to to >Owen Jacobson2017-12-05
|
* Correctly report define errorsOwen Jacobson2017-12-01
|
* unquote-splicing just plain didn't work.Owen Jacobson2017-12-01
|
* Don't macro-expand quoted forms!Owen Jacobson2017-11-30
|
* Add (concat strings…) builtinOwen Jacobson2017-11-29
|
* CorrectionsOwen Jacobson2017-11-19
|
* Notes towards a gentler introOwen Jacobson2017-11-19
|
* Boolean "not"Owen Jacobson2017-11-19
|
* I'm going to need vectors for my target use case.Owen Jacobson2017-11-18
|
* Fix dumb typoOwen Jacobson2017-11-18
|
* More pycache pruningOwen Jacobson2017-11-18
|
* Stop installing pycache dirs, tooOwen Jacobson2017-11-18
|
* Stop installing tests by default.Owen Jacobson2017-11-18
|
* Sphinx setupOwen Jacobson2017-11-18
|
* Security notesOwen Jacobson2017-11-18
|
* String was brokenOwen Jacobson2017-11-18
|
* Varargs for user-defined functions, using the Scheme convention of a dotted ↵Owen Jacobson2017-11-18
| | | | | | pair or a loose symbol. The ability to bind chunks of code to run in the session when a module is bound.
* Macro-binding glue, and a let macroOwen Jacobson2017-11-18
|
* Replace the registry mega-tuple with a type.Owen Jacobson2017-11-18
| | | | | | | | Add some missing builtins: * and * or * uncons
* Merge pull request #3 from kennethreitz/patch-1Owen Jacobson2017-11-15
|\ | | | | mostly syntax highlighting
| * mostly syntax highlightingKenneth Reitz2017-11-15
|/ | | makes things much easier to visually parse
* REPL now has a nice prompt, and simple readline support.Owen Jacobson2017-11-15
| | | | Fixes #1
* Fixed binding errors with builtin types "str", "int", and "decimal".Owen Jacobson2017-11-15
| | | | | | I forgot about wrapping. Fixes #2
* More outline workOwen Jacobson2017-11-15
|
* More outline workOwen Jacobson2017-11-15
|
* Renamed `defmacro` to `define-macro`, we're not heathens.Owen Jacobson2017-11-15
| | | | | | Started a language manual outline. Removed stray primer.
* Macro expander.Owen Jacobson2017-11-14
| | | | This includes a fairly complete quasiquote system, and a complete rework of the expander.
* fixup! Flatten arguments inside the evaluator.Owen Jacobson2017-11-13
|
* `begin` is now a special form.Owen Jacobson2017-11-13
| | | | | | | | Two reasons: 1. Making it a builtin defeats tail call optimization, as builtins do not participate in TCO. 2. The `begin` form is occasionally generated by the macro expander, and should not rely on library support.
* Flatten arguments inside the evaluator.Owen Jacobson2017-11-13
| | | | This makes it a bit easier to pass and return multiple values, and cuts down on the number of extra tuples created and dismantled.
* Compile lambdas on evaluation, not on execution.Owen Jacobson2017-11-13
| | | | This cuts down the cost of calling a function, as it now reuses an existing continuation rather than reconstructing the continuation for each call. Tail calls are now slightly more explicit.
* fixup! Expand the first argument of a form, not just the tailOwen Jacobson2017-11-13
|
* Expand the first argument of a form, not just the tailOwen Jacobson2017-11-13
|
* Always return _something_ from `display`Owen Jacobson2017-11-13
|
* Start tracking the (substantial) hypothesis examples DBOwen Jacobson2017-11-13
|
* Distinguish EOF and () in read()Owen Jacobson2017-11-13
|
* Fix up missing (begin) in exampleOwen Jacobson2017-11-13
|
* Re-add the repl, and a bunch of stdlib glue.Owen Jacobson2017-11-13
|
* A basic expander.Owen Jacobson2017-11-13
| | | | | This doesn't support macro expansion, but does support some basic syntax niceties. Macro expansion requires quote and quasiquote support.
* Big-ass coding binge presents: a Lisp.Owen Jacobson2017-11-13
| | | | This implements a continuation-passing interpreter, which means we get tail calls ferfree. I stopped short of implementing call/cc, because I don't think we need it, but we can get there if we have to.
* Remove lingering scripts entry.Owen Jacobson2017-11-11
|
* Introduce input ports.Owen Jacobson2017-11-11
| | | | | | | | | | | Ports are the lisp abstraction of files and streams. Actinide ports additionally guarantee a peek operation. This makes ``tokenize`` (now ``read_token``) callable as a lisp function, as it takes a port and reads one token from it. This is a substantial refactoring. As most of the state is now captured by closures, it's no longer practical to test individual states as readily. However, the top-level tokenizer tests exercise the full state space.
* Testing fixes.Owen Jacobson2017-11-11
| | | | | | | | | | | | | | | | | | | | | | * Add a top-level test that roundtrips sequences of tokens. (This found a real bug. Thanks, Hypothesis!) * Remove type conversion from the tokenizer. This simplifies the code, and makes testing considerably easier. * Fix some bugs in string literal parsing (again: Thanks, Hypothesis!) Document the test cases, and the case-by-case strategy, better. This also involved prying apart some tests that cover multiple cases. Stop treating empty strings as if they were EOFs. (Thanks, Hypothesis!) fixup! Stop treating empty strings as if they were EOFs. (Thanks, Hypothesis!) Remove type conversion from the tokenizer. It turns out that this made the tokenizer harder to test, because it was doing too many things. The tokenizer now _only_ divides the input port into tokens, without parsing or converting those tokens. Fix up tests for fuck