Skip to content

Releases: mech-lang/mech

v0.2.6-beta

12 Aug 21:31
Compare
Choose a tag to compare

More matrix access patterns:

x := 4..10
x[1..=3]

x := [1 2 3
      4 5 6
      7 8 9]; 

x[2..=3, 2..=3]
x := [94 53 13]; 
y := [3 3]; x[y]
y := [3; 3]; x[y]
x := [94 53 13
      4  5  6 
      7  8  9]; 

x[2,1..3]
x[1..3,2]
x := 1..10; 
y := x'; 
ix := 1..5; 
y[ix]'

Record dot access and Swizzling:

x := {x: 1, y: 2, z: 3}; 
x.x
x.y,z,z

Matrix dot access:

x := [1,2,3]; 
x.1

Also added a desktop application that launches a Mech REPL. It will be the basis for an IDE in the future.

Full Changelog: v0.2.5-beta...v0.2.6-beta

v0.2.5-beta

05 Aug 23:57
Compare
Choose a tag to compare

Mostly work on matrix slicing, still working on fleshing it out though.

x := [1 2; 4 5]; 
x[:]
x[:,2]
x[2,:]

x := [1 2 3 4; 5 6 7 8]; 
x[:,1..=2]

x := [1 2 3; 4 5 6; 7 8 9]; 
x[1..=2,:]
x[[1 1],:]
x[:,[1,1]]; y[:]

x := [94 53 13]; 

y := [3 3]; x[y]

y := [3; 3]; x[y]
y := 3; x[y]

ix := [false true true]; x[ix]

a := [1,2,3]'; a[2]

Full Changelog: v0.2.4-beta...v0.2.5-beta

v0.2.4-beta

30 Jul 01:13
Compare
Choose a tag to compare

Type conversion for floats, sin and cos for f32, figured out range slicing

math/cos([0.0 0.0])
math/cos(0.0)
math/sin(1.5707963267948966)
math/sin([1.570796327 1.570796327])
x := [1 2 3; 4 5 6; 7 8 9]; x[2..=3, 2..=3]
a := [1,2;3,4]; a[1,2]
false != true
x<f32> := 123;
2<u8> ^ 2<u8>
2.0 ^ 2.0

Full Changelog: v0.2.3-beta...v0.2.4-beta

v0.2.3-beta

22 Jul 04:25
Compare
Choose a tag to compare

This one has operations defined for all the numeric types.

a := [1,2;3,4]; a[2,1]
a := [1.0,2.0,3.0]; a[2]
x := [66 2 3; 66 4 66]; y := [1 2 3; 4 5 6]; x < y
[1<u8> 2<u8> 3<u8>]'
1<u8>..=4<u8>
1<u8>..4<u8>
![false true false]
!false
[true false false] ⊕ [true true false]
[true false true] | [false false true]
[true false true] & [false false true]

Full Changelog: v0.2.2-beta...v0.2.3-beta

v0.2.2-beta

16 Jul 06:01
Compare
Choose a tag to compare

Most types and operations implemented.

true == false
true == true
10 == 11
10 != 11
10 >= 10
10 <= 10
[1 8; 10 5] > [7 2; 4 11]
[1 8 10 5] < [7 2 4 11]
3 * [1 2 3]
[1 2 3] * 3
a := [1 2; 3 4]; b := [4 5; 6 7]; c := a ** b
a := [1.0 2.0 3.0; 4.0 5.0 6.0]; b := [4.0 5.0; 6.0 7.0; 8.0 9.0]; c := a ** b

Full Changelog: v0.2.1-beta...v0.2.2-beta

v0.2.1-beta

09 Jul 04:48
Compare
Choose a tag to compare

v0.2-beta

01 Jul 05:02
Compare
Choose a tag to compare

Starting over with a fresh parser and interpreter.

v0.1-alpha

29 Apr 20:19
Compare
Choose a tag to compare

v0.0.5

07 May 01:32
Compare
Choose a tag to compare

Full Changelog: v0.0.4...v0.0.5

v0.0.4

04 Apr 23:58
Compare
Choose a tag to compare

Full Changelog: v0.0.3...v0.0.4