Sign inSign up

micalang/mica

By micalang

•Updated about 21 hours ago

Statically typed systems language with optimizing native backend, compiled to Linux x86_64/AArch64.

Image
Languages & frameworks
Machine learning & AI
Developer tools
0

3.0K

micalang/mica repository overview

⁠Mica

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

⁠Try it in one minute

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 full development setup

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.

⁠What is in the image

PieceDetail
micathe compiler driver — one statically linked executable
standard library and runtimefor both architectures, resolved automatically
binutils, libc6-devthe assembler and linker Mica drives, and what compiled programs link, for this architecture and the other one
gdbsource-level debugging works immediately on Mica binaries
nanoan editor for the first program, inside the container
valgrind, hyperfinecallgrind's attribution of instructions to procedures and lines, and the wall clock — the profiling tutorial's tools, beside gdb's inlined frames
mica-provisionthe 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.

⁠Tags and platforms

  • latest — the current release
  • <version> (for example 7.6.0) — that release, kept permanently, so a pinned tag keeps building forever

Every 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.

⁠Learn more

  • mica-dev.com⁠ — the language in one page, the facts, and the reference
  • Start⁠ — the four roads to a running Mica: the dev container, this image, the packages, a machine in the cloud
  • Learn AI with Mica⁠ — twelve chapters from what learning is, before any mathematics, to a GPT you train yourself
  • Dragon⁠ — the compiler's backend as an SDK, and the course that builds a compiler on it
  • The learn area⁠ — from an empty folder to your first debugged program in fifteen minutes, and onward to the twelve-chapter AI course
  • Installing Mica natively⁠ — the .deb packages, if you would rather not use Docker
  • The starter repository⁠ — this image's Dockerfile, the examples, benchmarks, and notebooks

⁠License

The 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⁠.

Tag summary

Content type

Image

Digest

sha256:259a566d0…

Size

163.3 MB

Last updated

about 21 hours ago

docker pull micalang/mica