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`

of`clap`

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 the`Array`

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`

and`scoop`

to install MufiZ.Switched from using

`FNV-1a`

to`xxhash64`

for hashing.- Will do a benchmark in the future to test the performance between
`fnv1a`

,`cityhash64`

and`xxhash64`

.

- 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 matrix`rref()`

: 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 in`build_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!