Map, SharedMap, WeakMap

Argentum standard library has three hash maps: Map, SharedMap, WeakMap. Most of design details of Maps are similar to Arrays: These maps are unordered key-value containers, where: Internally they are implemented as flat, open addressed, 2n grow, linear probe, robin…

Array, WeakArray, SharedArray

Argentum has no built-in Arrays Other languages have built-in arrays (and some even have built-in maps), but these built-in data structures quickly become insufficient. So the parallel containers from the standard libraries emerge. They quickly surpass and replace the built-in…

Install Argentum demo on the SteamDeck (Arch Linux)

Steam-OS specific tasks Steam Deck is an Arch Linux machine with slightly tweaked environment.So first let’s first convert it to some more standard Linux. Download and install the Argentum demo Argentum demo goes in the form of DEB package. Arch…

Build Argentum compiler on Ubuntu

Preparations Install GCC and friends: Install Ninja build system and CMake LLVM Get LLVM sources: Prepare build files: Build LLVM (this will take ~~hour) Install LLVM to out dir Now ~ contains the newly built release version of LLVM SDL…

Configure Linux subsystem on Windows (WSL)

Create Start the PowerShell and type: After reboot enter your username/password and viola, you have your Ubuntu. Unfortunately it is on drive C. If you need it somewhere else, there is a way: Move to over location (D:) Make a…

Build Argentum from sources on Windows

Directory structure: Install prerequisites Build LLVM from sources Unzip LLVM sources from d:\cpp\llvm-project-llvmorg-17.0.4 Make VS project/solution files This takes several minutes Build the LLVM project This might take several hours. Install Check for errors and if everything is ok,…

What for?

The secret actual reason for Argentum creation Argentum executables are small (starting from kilobytes w/o specific runtime libs), they have no memory and CPU overheads. So this language is applicable to everything from microcontrollers to desktops, web and mobile platforms.…

Return, break, continue

Argentum blocks can be marked with ‘=name’ labels that are visible from inner sub-statements. They are used in ^leave statements. Leave-statement can have a parameter – expression that produces result It reads as “here’s a block “sign”. If ‘i<0’ terminate…