- Macro type parameters can now be used in defining the macro.
- Added a Web IDE, with automatically-generated syntax-highlighting.
- Improved the parser somewhat.
- Added more builtin functions, and the
Option<T>
type. - Added
common
andreserving
to the syntax for grammars.
- Fixed an erratic bug where
Form
identity was lost. - Improved display of parse ambiguities.
- Added rudimentary multi-file program support.
- To define a library, introduce the syntax and values that should be exposed,
and write
capture_language
as the program body - To use a library write
import \[library_definition.unseemly]\
. This overwrites the current syntactic environment and extends the runtime environment. (So, only the most recentimport
provides macros.) - You interpret a file in a specific language with
unseemly language_definition.unseemly program.lang
- To define a library, introduce the syntax and values that should be exposed,
and write
- Introduced string literals and the
String
type. - Introduced sequence literals.
- Introduced the
Cell
type for side-effects. - Introduced some basic operations on
Sequence<T>
,String
, andCell
types. - Introduced value and type "prefabs".
(prefab v)
produces (imaginary) syntax for an expression that returnsv
.prefab_type T
produces (imaginary) syntax for the typeT
.
- Added support for
UNSEEMLY_FRESHEN_WATCH
.
- Display of multiline error messages now uses newlines instead of "\n".
- Macros can now be used in the implementation of other macros, not just expanded-to.
- Values can be captured in macro definitions.
- Implemented the Unseemly programming language. Usage is described in
core_language_basics.md
. It's a bit buggy at the moment, and it's missing some features.