MufiZ v0.6.0 Released!

Photo by Andrew Neel on Unsplash

MufiZ v0.6.0 Released!

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.
  • 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 support

  • Removed 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!

Did you find this article valuable?

Support MufiZ-Lang News by becoming a sponsor. Any amount is appreciated!