Releases: chharvey/counterpoint
Releases · chharvey/counterpoint
v0.3.0
v0.2.0
In addition to the features mentioned in Milestone v0.2.0, this release contains the following changes:
Non-Breaking Changes
External
- Add compiler feature toggles to enable programming language features. The end user (programmer) has control over these.
- languageFeatures
- comments
- integerRadices
- numericSeparators
- compilerOptions
- constantFolding
- intCoercion
- languageFeatures
- add type-checking and improve constant-folding of expressions
- improve int coercion for arithmetic operations when constant-folding is turned off
- optimize exponentiation operation:
a ^ b
is faster whena
is0
or1
- improve documentation & error reporting
Internal
- Add development flags to internal functionality and tests. Based only on
package.json
version number. Flags for a version should be removed & fully enabled before that version is released. - replace Jest testing suite with Mocha
- abstract out cli scripting functionality into a
CLI
class - reorganize code structures to match specification: from smallest/simplest to largest/most complex
- more structured code builder (mechanism that produces assembly code)
v0.1.0
Introducing the Solid Programming Language
(name to be finalized)
Version 0.1.0 is the first pre-release version! Expect each v0.X.0 version to incrementally introduce new features, until v1.0.0, a complete programming language.
- a simple calculator
- integer operands represented in 16-bit two’s complement
- arithmetic operators
- addition
+
- subtraction
-
- multiplication
*
- division
/
- exponentiation
^
- grouping
( )
- addition
- infix notation syntax, e.g.
2 * (3 + 4)
, not(* 2 (+ 3 4))
or*(2, +(3, 4))
- compiled output is WASM format
- compiled and run via a small command-line interface