Statically typed systems language with optimizing native backend, compiled to Linux x86_64/AArch64.
3.0K
The official image of Mica, compute you can see through: a statically typed systems language with its own optimizing native backend and a built-in numeric and machine-learning surface, from tensors with compile-time shapes to an autograd tape and GPU-resident training. From formula to GPU in one language.
One pull is a complete working environment: the compiler, the GNU assembler and linker it drives, and gdb ready for the DWARF debug information Mica emits. Nothing else to install.
docker run -it micalang/mica
The container opens a shell, and the compiler answers:
mica --version
Inside the container, open a new file in the editor:
nano Hello.mica
Type or paste this program:
program Hello;
imp
WriteLn : std;
begin
WriteLn("hello from mica");
end.
Save it with Ctrl+O and Enter, and leave the editor with Ctrl+X. Then build and run it:
mica --compile --link --optimize release,full_optimizations --source Hello.mica --build build
./build/Hello
hello from mica
The compiler builds for the machine it runs on, x86-64 or ARM64, whichever
Docker gave you. The result is one native binary: no runtime to install, no
interpreter, nothing but the C library every Linux system has. Naming the
other architecture, as in --platform linux,arm64,utf-8, builds for that one.
The image is also a ready-made VS Code dev container. Clone the starter repository and reopen it in the container:
mkdir -p ~/source/repos
cd ~/source/repos
git clone https://gitlab.com/mica-lang/mica-container.git
code mica-container # then: Reopen in Container, and choose Mica Developer
The container opens on ~/source/repos, the folder that holds the starter,
and make -C mica-container/examples/Hello run in its terminal builds and
runs the first example.
With the Mica extension you get diagnostics, navigation, hovers, and notebooks, and F5 compiles and debugs the file you have open under gdb. The repository carries the whole example suite — from first programs to a GPT trained in pure Mica — plus the benchmarks and the verified notebooks, all working out of the box.
| Piece | Detail |
|---|---|
mica | the compiler driver — one statically linked executable |
| standard library and runtime | for both architectures, resolved automatically |
| binutils, libc6-dev | the assembler and linker Mica drives, and what compiled programs link, for this architecture and the other one |
| gdb | source-level debugging works immediately on Mica binaries |
| nano | an editor for the first program, inside the container |
| valgrind, hyperfine | callgrind's attribution of instructions to procedures and lines, and the wall clock — the profiling tutorial's tools, beside gdb's inlined frames |
mica-provision | the devkit's installer: mica-provision gcc or llvm adds a C toolchain for work at the C boundary, qemu runs programs built for the other architecture, bench the measurement tools, and sdk fetches the Dragon SDK — the compiler's backend as a C API — on request |
The image is deliberately lean: the C toolchains and the SDK install in seconds when asked for, so the pull stays small.
latest — the current release<version> (for example 7.6.0) — that release, kept permanently, so a
pinned tag keeps building foreverEvery tag is a multi-platform image for linux/amd64 and linux/arm64;
docker pull selects your architecture automatically. During the build, each
platform installs the released package and runs the compiler before its layer
is kept.
.deb
packages, if you would rather not use DockerThe Mica compiler is free for any use, including commercial work, under the
Mica Compiler License 1.0. The Dragon SDK installed by mica-provision sdk is a
separate package under its own license. Details:
mica-dev.com/company/licensing.
Content type
Image
Digest
sha256:259a566d0…
Size
163.3 MB
Last updated
about 21 hours ago
docker pull micalang/mica