I fixed all the memory leaks I found with Valgrind.
The musl structure does not have argc and argv members anymore. This meant that prototypes for mu_par_num() and mu_par_str() also changed.
mu_set_num() and mu_get_num() has been renamed to mu_set_int() and mu_get_int()
mu_error_text() has been improved to show the line where the error occurred properly.
There is now a THROW() built-in function to allow errors to be thrown in scripts.
Fixed an error in the CALL() function that caused the error message to be lost. CALL() itself may not be such an important function, but this serves as a good example for how to handle errors in the callback .
Related to the above, mu_throw() now accepts NULL as a fmt parameter.
Fixed the issue where a call to mu_throw() would cause parameters to be leaked.
Moved the THROW() function down in the list of priorities.
Fixed the THROW() function which was broken by the previous fix (THROW() used to free() its parameter properly, but with my last fix that became a double free).