I am happy to announce the next release of MufiZ, the Mars release. It brings massive changes and is an exciting new release that shows how much we can improve the language.
Release Notes for Mars (0.6.0)
Started on February 21st 2024.
Released on April 23rd 2024.
New Features
Added support for
Matrix
data type.Added support for
FVector
data type.This data type is a fixed array of floating point numbers that is able to use SIMD instructions.
This data type is used to represent vectors in 3D space.
Added network support via being able to send CRUD requests.
- This is able to be done using native Zig networking.
Added exponent token
^
Proper random number generation with either uniform or normal distribution.
Other Changes
Lots of code cleanup and added more documentation.
More functionality in the language with added builtin functions.
Updated to
v0.8.0
ofclap
for the CLI.Added features to optionally disable networking and filesystem access, and to enable sandboxing (REPL only).
Optimize your code with the new
FVector
data type, which can perform operations 3x faster than theArray
data type.Updated
what_is
function to be able to identify any Object type.Updated
build_multi
to use the Zig build system instead of a Python script which would have caching conflicts. Using a seperate Python script for packaging the binaries.Adding support for package managers like
apt
andscoop
to install MufiZ.Switched from using
FNV-1a
toxxhash64
for hashing.- Will do a benchmark in the future to test the performance between
fnv1a
,cityhash64
andxxhash64
.
- Will do a benchmark in the future to test the performance between
Switched to building targets:
arm-linux
on Debug optimization due to an LLD issue.Added
x86
target support.
Added Builtin Functions
Math
rand()
: Generate a random number between 0 and 1.randn()
: Generate a random number with a normal distribution.
Networking
get_req()
: Send a GET request to a server.post_req()
: Send a POST request to a server.put_req()
: Send a PUT request to a server.del_req()
: Send a DELETE request to a server.
Collections
matrix()
: Create a matrix with the given dimensions.fvec()
: Create a vector with the given size or array.linspace()
: Create a float vector of evenly spaced numbers.slice()
: Get a subarray of an array.splice()
: Remove a subarray from an array.sum()
: Get the sum of a list.mean()
Get the mean of a list.std()
Get the standard deviation of a list.var()
Get the variance of a list.maxl()
Get the maximum value of a list.minl()
Get the minimum value of a list.workspace()
: Prints all global variables.interp1()
: Linear interpolation between two points.dot()
: Get the dot product of two vectors.cross()
: Get the cross product of two vectors.norm()
: Get the norm of a vector.proj()
: Get the projection of one vector onto another.reflect()
: Get the reflection of one vector off another.reject()
: Get the rejection of one vector off another.refract()
: Get the refraction of one vector through another.angle()
: Get the angle between two vectors.set_row()
: Set a row in a matrix.set_col()
: Set a column in a matrix.set()
: Set a value in a matrix.kolasa()
: Get the Kolasa matrixrref()
: Get the reduced row echelon form of a matrix.rank()
: Get the rank of a matrix.det()
: Get the determinant of a matrix.transpose()
: Get the transpose of a matrix.lu()
: Get the LU decomposition of a matrix.
Removals
Removed
snap
packaging supportRemoved
wasm32-wasi
target inbuild_multi.zig
script, can still be built from source with:zig build -Doptimize=ReleaseSmall -Dtarget=wasm32-wasi -Denable_fs=false -Denable_net=false -Dsandbox=true
Check Out the Release at [Github](https://github.com/Mustafif/MufiZ/releases/tag/v0.6.0) today!