Releases: Rhovas/Interpreter
Releases · Rhovas/Interpreter
Rhovas v0.0.1
The initial release of Rhovas! A complete changelog would be incredibly difficult, but here are some highlights:
- Implemented core statements/expressions
- Includes standard statements (
if
/for
/while
/etc.) - Includes
match
statements, pattern matching, and destructuring - Includes
require
/ensure
statements for contract assertions - Includes standard expressions (literals, unary/binary operators, functions, etc.)
- Includes syntax macros using interpolator transformations
- Includes pipelining (supports extension functions)
- Includes bang invocations and exception/result isomorphism
- Includes standard statements (
- Implemented classes/structs
- Includes fields, constructors, and initializers
- Does not include inheritance (or interfaces)
- Implemented typechecking and semantic analysis
- Includes types for generics, variance, and tuples/structs
- Includes analysis for type checking and inference
- Includes analysis for initialization, control flow, and exceptions
- Implemented the standard library (or at least some of it)
- Includes basic types (Boolean, Integer, Decimal, String, etc.)
- Includes basic data structures (List, Map, Set, etc.)
- Includes key interfaces (Equatable, Comparable, Iterable, etc.)
- Includes standard functions (
input
/print
,Math
, and even aregex
DSL)
- Added a REPL environment
- Added support for JavaScript targets (in addition to JVM)
Thank you to everyone who's helped get it to this point!
A note on release versions: v0.0.1
is the initial release, and can be considered as SemVer compatible treating the first non-zero number as the major
version. In effect:
v0.0.major
is effectively "anything goes" (where we are now).v0.major.minor
provides some degree of compatibility information, however breaking changes are much more likely between releases as the language is still evolving.vmajor.minor.patch
is standard SemVer.
It is intended for v0.1.0
to represent the "everything planned is implemented" (and not totally broken) release. There's no set plan for what constitutes a v1.0.0
release, but there is no intention in being stuck in ZeroVer.