• v1.2.0 54299dd2c4

    patricus released this 2026-10-22 15:14:53 +02:00 | 0 commits to master since this release

    SimpleLang 1.2.0

    Programs compiled with 1.0 or 1.1 keep running unchanged. The bytecode version is now 4, and the VM accepts any older version.

    Language

    • break and continue in while and for loops.
    • Array methods arr.push(x), arr.insert(i, x) and arr.remove(i), checked against the element type when compiling.
    • h == nil works on handles.
    • Negative numbers are allowed in global initializers (float QUIET = -45.0;).
    • float_to_int, plus the str.*, fs.* and sys.* helpers (split/join/trim/replace, read and write whole files, list folders, sys.script_directory(), and more).

    Sound

    • Sounds are held in memory and can be edited while they play: copy, erase, insert, append, paste over, mix, and resize.
    • Built-in effects: gain, normalize, fades, reverse, silence, invert, DC removal, low and high pass, EQ, echo, radio, speed change, resampling, mono/stereo conversion, channel swap and pan.
    • Measuring: peak, RMS, finding the first and last sound, and silent ranges.
    • Saving to .wav, .mp3, .flac and .ogg. Ogg files now load too.
    • Recording from an input device.
    • Device lists and selection: audio_output_devices(), audio_input_devices(), audio_set_output_device(i) and audio_set_input_device(i).

    Accessibility and GUI

    • screen_reader_speak, screen_reader_braille and related natives speak through NVDA, JAWS, System Access or ZDSR, falling back to SAPI.
    • wx gains:
      • key_down, focus and activate events, with key and modifier queries
      • accessible names, roles and values
      • a sound surface, status bars, custom dialogs, text-entry and confirm dialogs, and a save dialog with a suggested name

    VST 3

    • plugin_* natives load VST 3 effects, set their parameters, process sounds offline, and open the plug-in's own editor window.

    Inspector

    • simplelang.inspector.load(path) reads a .slc or .slcbundle and reports its bytecode version, functions, natives, and the modules and DLLs it loads. examples/inspect_demo.sl is a GUI inspector built on it.

    Libraries and installers

    • vcpkg libraries are updated (wxWidgets 3.3.3, libffi 3.8.0), and FLAC and Vorbis are added. Every third-party library ships as a DLL beside slvm.exe.
    • The installers remove old DLLs before installing, so no stale wxWidgets builds are left behind.

    Docs

    • The language reference covers everything above, plus the text-to-speech, audio_convert, shuffle() and multi-line text controls that 1.1 shipped without documentation.
    • The bytecode spec describes the version history and how the new features compile. 1.2 adds no new opcodes.
    Downloads