Releases: RigCLang/rigc-lang
Releases · RigCLang/rigc-lang
RigC v0.3.1
0.3.1 (2022-10-16)
Features
- vm: danger conversion operator (4458a9f)
- vm: null keyword and
Null
type. (a51ba6a) - vm: proper
Addr<T>
printing (c68421d)
Bug Fixes
- vm: allow non-danger
as
operator to convertAddr<T>
toAddr<Void>
(698dfd3) - vm: missing escape of
{}
format braces (8934a79)
Full Changelog: v0.3.0...v0.3.1
RigC v0.2.1
RigC v0.2.1
Grab a binary from the section below or build the VM yourself using pacc:
Building using pacc
Use the following commands in the RigC root directory
pacc install
pacc build -c=Release -p=x64 --cores=N --verbose
Breaking changes
- explicit return type is mandatory (until we introduce return type deduction)
func foo() -> Int32 { // ... }
- renamed
StaticArray<T, N>
toArray<T, N>
Features
- constructors can now be templated:
- convert types with
as
operator:5 as Float32
printCharacters(addr: Addr<Char>, count: Int32)
functionreadInt<N: Int32>(info?: Array<Char, N>) -> Int32
functionreadFloat<N: Int32>(info?: Array<Char, N>) -> Float64
functionallocateMemory(byteCount: Int32) -> Addr<Char>
function (temporary, will be reworked later)freeMemory(addr: Addr<Char>)
function (temporary, will be reworked later)--version
program argument
and many more...
Bug fixes
Generally more stable behavior, and...
- fixed long lasting bug that resulted in broken
self
address in destructors - fixed module not being resolved properly when path started with
.\
- ... many more
v0.2.0-prealpha
0.2.0-prealpha (2022-10-16)
Features
- add --logfile option (fc72e80)
- add --logfile option (6161a49)
- app: added basic destructor support (b7ce690)
- clear logs on opening (18ab9bc)
- clear logs on opening (0b56185)
- don't send frame debug message if the frame is
nullptr
. (cf011c2) - format the stack frame' labels in a nicer way (54aecf2)
- send actual context to the debugger (1171f0e)
- send debug messages about the stack frames and allocations (54b39d7)
- vm:
--wait-for-connection
program argument (358625d) - vm:
Breakpoint
struct for a DevServer (7005316) - vm:
builtin::printCharacters
function. (3d1355a) - vm:
devserverLog
function (729c165) - vm: added
json
package and some aliases. (ccb19fe) - vm: added
Void
type (e4d6b7c) - vm: added memory allocation / deallocation functions (fb8a54e)
- VM: basic conversions example. (2939389)
- VM: error handling and formatting utilities. (c443b24)
- VM: exception handling for runtime_error. (322b55e)
- vm: generate and use copy constructors for each type. (ea54c96)
- VM: internal exception class and utils. (08ddecb)
- vm: support constructor templates (ff4044b)
- vm: working on a dev server (f7b80fa)
- vm: working on a dev server and destructors. (16bb61f)
Bug Fixes
- automation: fixed invalid tag for artifacts (f8fe4e0)
- examples: made examples conforming to the new changes (61792b3)
- proper case for program argument (now):
--skip-root-exception-catching
(d991b41) - proper case for program argument (now):
--skip-root-exception-catching
(afe08a1) - proper formatting in stack json requests (5878c27)
- removed accidentally added test files. (0da83b1)
- typo in json debug message alllocation -> allocation (2970c0d)
- vm: added missing return types for
readInt
andreadFloat
(175a128) - VM: allocateOnStack condition in assert. (332388d)
- VM: conversion operator wrong name extraction. (bad55d9)
- vm: do not allow execution if error ocurred during argument parsing (4154ef9)
- VM: evalPostfixOperator's paramString concatenation loop. (7bf77d3)
- vm: method templates not being handled properly (problem with
self
param) (29d1e1e) - vm: non-debug build used debug-only code. (83d4eed)
- vm: order of core type creation (7bfb829)
- vm: path starting with
.\
bug (337b4c3) - VM: unintended ADL-related error (53ae9af)
- vm: variable getting invalid address when created (1c5b34c)
v0.1.1-prealpha
0.1.1-prealpha (2022-06-23)
Bug Fixes
v0.1.0-prealpha
This is an experimental release of RigC's virtual machine on Windows x64 and Linux x64.
You can test it using command line:
VM filename
Example source code:
func main {
print("Hello, World!\n");
}
Find other examples here.
Expect many bugs and crashes.