Commit Graph

19 Commits

Author SHA1 Message Date
William J. Bowman
a57a719fdf
Fixed some issues with top-interactive
Previous, top-interactive was full of hacks and likely to break under
various scenarios. Now, it is less full of hacks and less likely to
break.
2015-11-10 17:57:32 -05:00
William J. Bowman
4cae9688fb
Fix inner-expand bug, changed type error output
* Fix inner-expand? issue which could prevent type-checking terms
  properly.
* No longer print out gamma and sigma when type checking fails
2015-10-03 03:31:27 -04:00
William J. Bowman
e58d59d56b
Merge branch 'issue-24'; closes #24 2015-10-02 18:33:16 -04:00
William J. Bowman
c892519a93
Added a few abstractions to core
* Added abstraction for manipulating Γ and Σ to core
2015-10-02 17:41:48 -04:00
William J. Bowman
04405758ff
Massive clean up of Redex core
* Renamed languages and reorganized languages
* Various fixes to fresh name generating
* Fixed to testing infrastructure; now tests modulo equivelance
* Renamed and reorganized many metafunctions, particularly those to do
  with Σ and Γ
* Reorganized sections of code to improve readability and reduce
  dependencies
* Reimplemented eliminator typing and reduction
* Various stylistic changes
2015-10-02 17:04:48 -04:00
William J. Bowman
fb7d351f12
More evaluation during type-checking
Replaces all identifiers with their definitions before type-checking.
Enables more type-checking, but *realllly* slows down type-checking.

Also a test case.
2015-09-29 22:44:39 -04:00
William J. Bowman
a3c3b0fca7
Fixed/sped up eliminator reduction. closes #20
* Made the primitive form of elim (elim t_0 t_1), allowing this form to be
  considered a value when t_0 and t_1 are values.
* Moved definition of values to reduction language, and fixed it. This
  fixed issues with unique decomposition, and thus fixed reduction of
  eliminators.
* Enabled caching in apply-reduction-relation* to speed up results of
  recursive calls.
2015-09-29 17:56:37 -04:00
William J. Bowman
cf6f81fbd4
Added single step evaluation abilities. Closes #27
* Added single step meta-function to core
* Expose step/syn in redex-lang
* Added macro to sugar for convenience use
* Updated relevant docs (also fixed bug in reflection docs)
2015-09-29 15:41:21 -04:00
William J. Bowman
0f25b53d75
Slew of fixes to reflection interfaces
Previously, reflection procedures did not properly reify/reflect syntax
after evaluating in Redex. This limited compositionality of reflection
features.

No longer. Now all reflection procedures should reify their results back
into Cur syntax, and only top-level evaluation should result in Redex
datums (or explicit calls to cur->datum).
2015-09-29 15:17:21 -04:00
William J. Bowman
e54c7e5bb5
Added query-type command to sugar 2015-09-25 20:08:07 -04:00
William J. Bowman
9681fbd9e0
Restricted elim curnel syntax
The curnel was documented as having a restricted syntax, but this was
not actually enforced. Now it is.
2015-09-25 17:50:27 -04:00
William J. Bowman
bf867bca7f
Moved some features out of curnel
* run is user-definable through the existing reflection features; moved
  to sugar.
* define need not have special function support in curnel; moved to
  sugar.
* fixed relevant documentation
2015-09-25 13:36:44 -04:00
William J. Bowman
fa9389ee7f
Hacks to make cur work in the REPL
Look I don't want to talk about it, but now you can use Cur in DrRacket.
Closes #18
2015-09-23 21:35:27 -04:00
William J. Bowman
e4bf99c277
Syntax parse for better error messages 2015-09-22 22:59:07 -04:00
William J. Bowman
bfc72d8fd3
Documented reflection features 2015-09-22 18:18:26 -04:00
William J. Bowman
a3094b55bb
Fixed top 2015-09-22 15:32:45 -04:00
William J. Bowman
8681282ef9
Added top-interactive support/fixed top-level eval
Also fixed some random stylistic things
2015-09-22 14:06:03 -04:00
William J. Bowman
23c1b56065
Knocked off a bunch of TODOs
* Removed some TODOs that were already completed
* Added cur-match, to abstract the common (syntax-parse (cur-expand syn) ...)
  pattern
2015-09-15 18:53:53 -04:00
William J. Bowman
3ce14c3871
Refactored core
Moved all curnel code into curnel/, and split the two kernel modules
into separate files. Now the trusted core and the module/#lang stuff are
in separate files. The #lang is now reprovided by "cur.rkt", which
should also provide core agnostic sugar.
2015-09-15 18:02:36 -04:00