Standard library modules for Vix 0.4.6. Import the package from a project root
with mod vstd; functions are called through their full module path, for
example vstd::array::push(&values, VInt(1)).
The library intentionally uses concrete containers around the shared Value
ADT because generic struct literals are not yet supported by the compiler.
Mutable containers are passed by reference so array growth is retained by the
caller.
Modules:
types:Value,Pair,Ordering,Result, and concrete container typesmem: allocation, release, copy, fill, and comparisonstr: duplication, comparison, prefix/suffix, and substring checksarray: mutableValueArraylist: mutable orderedValueListmap: string-keyedValueMapwith insert/update/lookupjson: strict JSON parsing, recursive serialization, and object/array queriesio: console output and whole-file reads/writesos: commands, environment lookup, and process terminationrand: seeding and bounded pseudo-random integerstime: Unix time and millisecond sleepnet: DNS-backed TCP request/responsehttp: HTTP/1.0 GET over TCP
UI modules:
tinyui: backend-independent widget tree with windows, rows, columns, labels, buttons, inputs, and child compositiontinyui_gtk: GTK3 binding using opaque widget handles, event callbacks, and the GTK main loop
The GTK demo can be checked and built with GTK3 development files installed:
make gtk-check
make gtk-build
./build/tinyui_gtk_demoGTK applications should be linked with the GTK3 libraries returned by
pkg-config --libs-only-l gtk+-3.0.
Vedior Vix source editor:
make editor-build
./build/vix_editor path/to/file.vixThe editor provides a VS Code-inspired explorer sidebar, file tab, monospace
GTK text view, file loading, and saving. The implementation demonstrates Vix
ADTs, match, pipe expressions, macros, and expression-form if ... else.