Releases: TRC-Loop/CColon
Releases · TRC-Loop/CColon
v1.3.0
Full Changelog: v1.2.2...v1.3.0
Optimized VM
fib(35)is now 3x faster (7s->2.2s)
in comparison to ver1.2.2
New Syntax
asinimportstatements to set the packages namespace name. g.import console as con
Bugfixes
- Fixed several bugs of the http server in the
httpmodule (it started 3 times when calling it once…)
Detailed info to optimzations
- Cached frame fields (code, ip, basePtr, consts) as locals in the execute loop
- Inlined readByte/readUint16 as closures instead of method calls
- Small integer cache (-128 to 127) avoids allocations for common values
- Singleton true/false/nil values reused instead of allocating
- Inline fast paths for int+int add, subtract, and compare directly in the switch cases
Planned for next release: (1.4.0)
- function decorators (similar to
@…in python) - more optimization as ccolon is 2x slower than python (python 1.1s, ccl 2.2s for fib(35))
v1.2.2
Full Changelog: v1.2.1...v1.2.2
v1.2.1
Full Changelog: v1.2.0...v1.2.1
v1.2.0
Full Changelog: v1.1.0...v1.2.0
Bug fixes:
- Fixed HTTP handler panic (index out of range) by adding bounds checking in readByte() and proper frame isolation in CallFunc()
- Fixed REPL instant quit by replacing peterh/liner with chzyer/readline
New language features:
- F-strings:
f"hello {1 + 2}"with automatic string conversion - String auto-coercion:
"count: " + 42works now - Constants:
const int x = 5with compile-time and runtime enforcement - Keyword arguments:
greet(name="World", greeting="Hello") - from ... import:
from math import sqrt, piorfrom math import * - Math properties:
math.pi,math.e,math.infwithout parentheses
Package manager:
--localflag for project-scoped installspkg upgrade <package>command- Source repo URL shown in
pkg list - Improved progress bar
- Packages registered as importable modules
Compile command:
-o/--output flagfor custom output path--bundleflag (reserved)
v1.1.0
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Full Changelog: v0.2.3...v1.0.0
v0.2.3 - Better strings, None and bugfixes.
Full Changelog: v0.2.2...v0.2.3
v0.2.2 - Bugifx (Overflow Bug)
Full Changelog: v0.2.1...v0.2.2
This Fixes a Bug where numbers could go into the negatives or just be 0. (For example, when calculating large factorials).
v0.2.1 REPL Version fix & new LICENSE
Full Changelog: v0.2.0...v0.2.1