Skip to content

Silver 0.4.5

Compare
Choose a tag to compare
@krame505 krame505 released this 08 Oct 05:25
· 819 commits to master since this release

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 reflection
  • typeError 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