What happened in Eko development today? 2026-Aug-5

Today I added support for new functions to the new cbased runtime so that we have more mathematical functions in the double section. Although not all of them are defined in the interpreter yet.

Also, today I started adding support for if in the AST. I plan to completely skip the if/else compiler mode by adding function to the AST and use ast entirely. That's why it's better to merge axiom with the interpreter itself.

Also, the code in GitHub is not complete, but the installer script downloads the latest stable version of the code. Do not compile the code in GitHub because it gives errors - this is my draft code.

And be sure to use the installer:

curl -sL https://raw.githubusercontent.com/ekolang/eko/main/install.sh | bash

Because the installer downloads the original 0.0.4 alpha source code, not the source on GitHub. And I tested that source code myself and it worked (most of it).

Here are the new parts I added to cbased.c:

double _exp(double arg)
{
    if (arg > 709.8 || arg < -708.9)
    {
        printf("Core fault: `exp` value cant be bigger then 709.8, and cant be lower then -708.9");
        _abort();
    }
    else
    {
        return exp(arg);
    }
}

double _cos(double arg)
{
    return cos(arg);
}

double _cosh(double arg)
{
    return cosh(arg);
}

double _fabs(double num)
{
    return fabs(num);
}

double _floor(double num)
{
    return floor(num);
}

double _fmod(double x, double y)
{
    return fmod(x, y);
}

double _frexp(double num, int *exp)
{
    return frexp(num, exp);
}

double _ldexp(double num, int exp)
{
    return ldexp(num, exp);
}

double _hypot(double x, double y)
{
    return hypot(x, y);
}

double _log(double num)
{
    return log(num);
}

double _log10(double num)
{
    return log10(num);
}

double _modf(double num, double *i)
{
    return modf(num, i);
}

double _pow(double base, double exp)
{
    return pow(base, exp);
}

double _sin(double arg)
{
    return sin(arg);
}

double _sinh(double arg)
{
    return sinh(arg);
}

double _sqrt(double arg)
{
    return sqrt(arg);
}

double _tan(double num)
{
    return tan(num);
}

double _tanh(double arg)
{
    return tanh(arg);
}

double _ceil(double num)
{
    return ceil(num);
}

/* Also cbased.h */

double _exp(double arg);
double _fabs(double num);
double _floor(double num);
double _fmod(double x, double y);
double _frexp(double num, int *exp);
double _sinh(double arg);
double _sqrt(double num);
double _tan(double arg);
double _tanh(double arg);
double _ceil(double num);
double _cos(double arg);
double _cosh(double arg);
double _log(double num);
double _log10(double num);
double _modf(double num, double *i);
double _hypot(double x, double y);
double _ldexp(double num, int exp);
double _pow(double base, double exp);
double _sin(double arg);