admin

admin

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

This instruction is deprecated, because Argentum switched to VCpkg. Use this instruction: Build Argentum from sources on Ubuntu Preparations Install GCC and friends: Install Ninja build system and CMake LLVM Get LLVM sources: Prepare build files: Build LLVM (this will…

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

This post is outdated. See instead 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…

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…

Nested Optionals, `&&`, `||`

In Argentum optional type can wrap any type, including another Optional. This theoretically allows having types like ?int, ??int, ???int, and so on. Why is this needed? For instance, when accessing a container of bool or optional elements, it’s necessary…

Optional and Containers Indexes/Keys

In Argentum all standard containers, return optionals (?T) when indexed with x[i]. Therefore, Argentum makes it impossible to access beyond the array bounds or using an invalid key in associative containers. It not only helps to prevent OOB errors. It…

Optionals and Weak References

In Argentum, associative reference (also known as weak) is one of fundamental built-in types. Such reference is easily created, copied, passed, and stored. It is not a pointer, it is rather a Schrodinger box that may or may not have…