Recent Activity

It took a couple of more months than I had expected (as always), but today the back-from-the-dead-update for &bedit command line has a stable RC ready! GUI will still needs a lot of work, but you can download the command line version from itch https://kipt.itch.io/bedit. Command line version is free, as always.

Although new features are few, here's what's actually have been updated:

  • Changed a lot of lexing by making tokenizer, parser and instruction generator basically a FSM.
  • Separated build time data from runtime data by:
    • adding instruction serialization,
    • adding binary meta data section required by runtime.
  • Updated debugger (yep, BEdit has a debugger):
  • Changed instructions; removed 5, added 27.
  • Lowered memory footprint by actually deleting data.
  • Changed command line to be single-pass.
  • Added plotting (see last couple of posts).
  • Added 348 automated tests.
  • Re-wrote public API to basically be three calls to compile instructions, and three to execute the runtime.
  • Updated coloring for command line visualization.

All-in-all 30 427 lines added and 8 652 lines deleted compared to previous release.

Only thing I didn't have time for was to write an optimizer...

View original message on Discord

A bit of continuation on my previous &bedit post, but now I think the plotting is ready. This time showing a 3.5 million sample count plot with some UI (yes, the browser loads for 4-5 seconds before displaying). https://www.youtube.com/watch?v=HlzS8Evjxfc

Oh and it also has a light theme... if ppl actually use that.

View original message on Discord

BEdit on-going update; just got the plot html visualization looking at least not bad. This one is generated from a wav file containing a sine wave (note C5) with the following code snippet:

struct WaveFile
{
    RiffHeader header;
    FormatChunk fmt;
    
    DataChunk(fmt.blockAlign, fmt.bitsPerSample, fmt.channelCount, fmt.audioFormat) data;
    
    if (fmt.audioFormat == WaveFormatID.IEEE_FLOAT)
    {
        var plot = create_plot();
        
        for (var channel = 0; channel < fmt.channelCount; channel += 1)
        {
            for (var i = 0; i < data.chunkSize / fmt.blockAlign; i += 1)
            {
                plot_y(fmt.channelCount * plot + channel, data.samples_ieee[i].e[channel]);
            }
        }
    }
}

Still some way to go but progress!

&bedit

View original message on Discord