Releases: melt-umn/silver
Releases · melt-umn/silver
Silver 0.6.0
Major new release of Silver, with breaking changes to simplify the type system, removing implicit undecoration. MWDA support for tree sharing is completed and enhanced. Also significant enhancements to the build system, the Silver compiler can now depend on pre-built grammars from jar files. This is used in re-factoring the build for the Silver compiler itself into multiple separate artifact jars.
What's Changed
- Require explicit new for undecoration by @krame505 in #849
- Permit building against jars containing compiled grammars by @krame505 in #852
- Fix Jenkinsfile bug, avoid running fetch-jars when building a PR merge by @krame505 in #856
- Permit transattr.decorate in flowtype specs by @krame505 in #857
- Fix overly-permissive exemption for cycles involving dispatch prods in inh completeness checks by @krame505 in #858
- Fix translation bug with dispatching by @krame505 in #860
- Make diagnostic output readable when showing nested messages with generated origins by @krame505 in #859
- Adds uniq and uniqBy. by @remexre in #862
- A few fixes related to decoration sites translation attributes by @krame505 in #861
- Add MWDA check for dispatch depending on inh attributes supplied by the target production by @krame505 in #865
- Fix flow deps for taking a reference to an instance of a translation attribute by @krame505 in #866
- Refactor/rename root to file by @allen-liaoo in #875
- Include annotations in native serialization format by @krame505 in #874
- Add error message instead of silently doing nothing when JAVA_HOME isn't set by @krame505 in #872
- Overload function application syntax with named arguments for annotation update by @krame505 in #877
- Fixes bug with undeclared lambda parameter type declarations by @unironically in #871
- No annotations can have the same short name on nonterminal by @allen-liaoo in #878
- Make supplying a type optional in do bindings by @tardism in #876
- Fixes and cleanup to MWDA related to translation attributes by @krame505 in #869
- Fix Tuple Selector Error Message by @tardism in #879
- Test/fetch unshallow by @allen-liaoo in #882
- Silver now reports its latest git tag as its version by @allen-liaoo in #881
- Merge master into develop by @krame505 in #883
- Include default production graphs in flow type inference by @krame505 in #880
- Revert "Disable comparison of dataness/trackedness in NT unification" by @krame505 in #884
New Contributors
- @allen-liaoo made their first contribution in #875
- @tardism made their first contribution in #876
Full Changelog: v0.5.1...v0.6.0
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.