admin

admin

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

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…