Releases: melt-umn/silver
Releases · melt-umn/silver
Silver 0.5.1
Final planned release of Silver prior to significant breaking change to typing for undecoration.
New features
- Permit
_
in lambda parameter syntax. Breaking change:_ :: SomeType
for anonymous lambda params instead ofSomeType
. - Concise function syntax
nondecorated local
/nondecorated production
attributes- Initial implementation of dispatch signatures and signature sharing, with incomplete support in the flow analysis
- Permit referencing the
forwardParent
- Add
^
as a new unary operator shorthand fornew
Other changes
- Remove experimental "unique reference" types, simplify semantics of
@
tree sharing operator - Significant refactoring to origin tracking API and implementation
- Change over the Silver compiler to use origin tracking
Full Changelog: v0.5.0...v0.5.1
Silver 0.5.0
New features
- Finish support for unique references, tree sharing operator and associated uniqueness analysis
- Reference-site flow projections, to permit using inherited attributes supplied to a shared tree
- Translation attributes
- Forward production attributes
- Data nonterminals, not permitted to have inherited attributes, for performance and simplicity
- Deriving mechanism for
Eq
andOrd
, supporting polymorphic and data nonterminals - Threaded collection attributes
- Improvements to scripts and build infrastructure
- Other bug fixes and refactoring in the flow analysis implementation
Breaking changes
- Removed support for autocopy
- Change
Pair
to be a data nonterminal, withfst
andsnd
as annotations
New Contributors
- @keltono made their first contribution in #719
- @dependabot made their first contribution in #766
Full Changelog: v0.4.5...v0.5.0
Silver 0.4.5
Changes
- Add support for type classes, and refactor the standard library to use them
- Higher-kinded types
Decorated
types are now parameterized by a (possibly polymorphic) set of inherited attributes present, instead of a global reference set- Globals can now be polymorphic
- Pattern match completeness checking
- Tuple syntax
- Convenience aspect syntax
- Revised do-notation, supporting applicative do and mutually-recursive
mdo
- Change the inherited portion of equality attributes into a separate feature, "destruct" attributes
- Rewrite random tree generation extension to make use of type classes and allow specifying what grammars should be included
- Implement ordering attributes
runtimeTypeable
built-in type constraint for use with reflectiontypeError
built-in type constraint for custom instance resolution failure error messages- Native term serialization library to/from binary format
- Subprocess library
- Literate Silver
- Rename
IO -> IOToken
,IOMonad
->IO
and rename associated functions - Major refactors to driver/build process
- Construct copper parsers using the API, rather than generating an XML file
- Transitively rebuild dependent grammars, fixing issues with incorrect error messages / invalid java code generated from non-clean builds
- Bug fixes and improvements to type checking, flow analysis, implicit monads, origin tracking, automatic attributes, string/document templates and documentation generation
- Language server protocol implementation using lsp4j and VS Code extension, with some language-agnostic features for building LSP implementations
- Remove the old eclipse IDE plugin generation extension and infrastructure
Experimental/unstable features
- "Partially decorated" references
- Attribute occurs-on type constraints (probably stable-ish)
- Inherited attribute subset type constraints
Silver 0.4.4
- Implement strategy attributes
- Fixes to pattern matching order semantics
- Other minor changes to rule semantics for consistency with papers
Silver 0.4.3
- Implement and use monoid attributes
- Other misc. changes corresponding to the reflection COLA paper
Silver 0.4.2
- Add reflection-based library/extension for term rewriting
- Enhancements/fixes to lexer classes, transparent prefixes and disambiguation
- Better semantics for determining concrete production layout
- Allow for generalized pattern antiquotation in meta-translation library
- Refactor
silver:host
grammar to export all default modifications and extensions
Silver 0.4.1
- Add support for concrete object language syntax embedding
- Implement disambiguation classes
- New syntax for specifying extension composition
- Improvements to pattern matching
- Eliminate RunSilver.jar
- Refactoring to the Eclipse IDE plugin
- Fixes to IO
- Bug fixes and improvements to error messages
- Other misc. bug fixes and improvements
Silver 0.4.0
v0.4.0 update reported version number for release
Silver 0.3.6
v0.3.6 Version 0.3.6, updated history.
Silver 0.3.5
v0.3.5 Release 0.3.5.