Hello World
June 28, 2026 Β· View on GitHub
Object-oriented β’ JIT-compiled β’ AI-native β’ Robust APIs
Why Objeck?
Built for modern development:
- π JIT-compiled for performance (ARM64/AMD64)
- π€ AI-native: OpenAI, Gemini, Ollama, ONNX, OpenCV β no third-party packages
- π Network-complete: HTTP/1.1 Β· HTTP/2 Β· HTTP/3/QUIC Β· WebSocket Β· DTLS β all standard library
- π» Developer-friendly: REPL shell, LSP plugins for VSCode/Sublime/Kate, DAP debugger
- π Cross-platform: Linux, macOS, Windows (x64 + ARM64/RPI)
- π§ Full-featured: Threads, generics, closures, reflection, serialization
Perfect for: AI/ML prototyping β’ Computer vision β’ Web services β’ Real-time applications β’ Game development
Try It Online
ππ½ Playground β 33 demos across 7 categories, Monaco editor, no install required.
Quick Start
# Install (example for macOS/Linux)
curl -LO https://github.com/objeck/objeck-lang/releases/download/v2026.6.4/objeck-linux-x64_2026.6.4.tgz
tar xzf objeck-linux-x64_2026.6.4.tgz
export PATH=$PATH:./objeck-lang/bin
export OBJECK_LIB_PATH=./objeck-lang/lib
# Hello World
echo 'class Hello {
function : Main(args : String[]) ~ Nil {
"Hello World"->PrintLine();
}
}' > hello.obs
# Compile and run (modern syntax)
obc hello && obr hello
π Full docs: objeck.org π‘ Examples: github.com/objeck/objeck-lang/programs
What's New
v2026.6.4 β
- Multithreaded GC stability fix β fixed an intermittent crash (
0xC0000005) in the generational minor garbage collector during thread startup: a thread being spawned held itsselfand argument as untracked raw pointers, so a moving collection during the spawn handoff could relocate the object and leave the new thread a stale reference. These are now tracked and relocated across collection. Surfaced only under heavy multithreaded churn
v2026.6.3
- Generational minor garbage collection β minor (nursery) collection is now enabled: a nursery-full collection scans only the remembered set plus roots and recycles the young generation without sweeping the old generation, falling back to a full major GC under old-gen pressure. JIT and interpreter reference stores emit the write barrier on AMD64 and ARM64, and the nursery is now zeroed at allocation time instead of inside the stop-the-world pause. See performance β
- Closure ergonomics β three quality-of-life additions for function references: call a
FuncRefdirectly withv()(no explicit->Call()); write bare lambdas with an inferred return type β\(x) => x * 2β that auto-wrap intoFuncRef<R>when assigned, returned, passed as a method argument, or stored as a collection element; and give a lambda a block body (\(x) => { ... }). A multi-capture closure heap-corruption bug is fixed β captures now use closure-local ids - New
System.Concurrencylibrary β structured concurrency withTaskScope,Task, andMonitor, plusruntime.*process/GC/CPU diagnostics (GC pause, promotion, allocation rate, lock contention, thread/STW/nursery counters) read throughRuntime->GetProperty("runtime.β¦")
v2026.6.2
- Major JIT & GC performance work β the cooperative stop-the-world GC safepoint poll (new in v2026.6.1) is now nearly free in JIT'd code: an inline flag test that only calls the collector when a collection is active, reading
&stw_activefrom a register cached at the prologue (R12/X19) and emitted only at loop back-edges.fannkuchreduxroughly halved (~59s β ~31s), recovering the full regression on AMD64 and ARM64. Closure / function-reference calls (DYN_MTHD_CALL) now auto-JIT on both architectures βspectralnormreachesnative-level speed once warm (43s interpreted β 0.46s at n=2000, matching the hand-nativekernel). Nursery allocation forNEW_OBJ_INSTis inlined on AMD64, and the interpreter gains a float fast-path. See performance β - JIT correctness hardening β a sweep of float-codegen and tail-call bugs surfaced by forcing JIT (
OBJECK_JIT_THRESHOLD=1): AMD64Floor/Ceil/ArcTancodegen and two latentDYN_MTHD_CALLmiscompiles; ARM64 transcendental/round cached-local operands, dropped libc float result/argument, working-stack registers clobbered across inlined float calls, and animm19backpatch SIGILL (ml_gbt); and a TCO deferred-load corruption (e.g.return Gcd(b, a%b)) on both architectures; and an ARM64 negative-offset load bug that crashed when a JIT-compiled closure captured in a collection (Vector<FuncRef>) was invoked β its memory encoders couldn't represent a negative displacement and read the wrong stack slot, now routed through a signed-offsetLDUR/STURhelper (x64 was never affected). The full ARM64 suite is now green atOBJECK_JIT_THRESHOLD=1 - UTF-8 in any locale β
obcreading UTF-8 source andobrloading/printing UTF-8 strings no longer break under aC/non-UTF-8 process locale;sys.hnow uses systemic locale-independent UTF-8 codecs instead ofmbstowcs/wcstombs - VM shutdown race fixed β worker threads are quiesced before program teardown, removing a JIT-shutdown thread race
Int->MinSize()now returnsINT64_MIN(wasINT64_MAXβ the float2->Pow(63)path saturated on conversion)- Native cross-language perf gate (CI) β a non-Docker harness measures Objeck against Python/Ruby/LuaJIT/Java with committed baseline ratios, so performance regressions are caught automatically
π Full changelog β’ πΊοΈ Roadmap β’ π Editor & IDE setup
Downloads
Latest Release: v2026.6.4
| Platform | Architecture | Download |
|---|---|---|
| Windows | x64 | MSI Installer / ZIP |
| Windows | ARM64 | MSI Installer / ZIP |
| Linux | x64 | TGZ Archive |
| Linux | ARM64 | TGZ Archive |
| macOS | ARM64 | TGZ Archive |
| LSP | All platforms | ZIP Archive |
π¦ Alternative: Sourceforge β’ π API Docs: objeck.org/api/latest
Note: All Windows installers are digitally signed. Releases are fully automated via CI/CD and built on GitHub Actions runners.
See It In Action
HTTP/2 Client
use Web.HTTP;
# Persistent connection β multiple requests share one TLS session
client := Http2Client->New("httpbin.org");
resp := client->Get("/get");
"Status: {$resp->GetCode()}"->PrintLine(); # Status: 200
body := "{\"lang\":\"objeck\"}"->ToByteArray();
resp2 := client->Post("/post", body, "application/json");
client->Close();
# One-liner for quick requests
resp := Http2Client->QuickGet(Url->New("https://httpbin.org/get"));
HTTP/3 / QUIC Client
use Web.HTTP;
# QUIC over UDP β zero round-trip connection on repeat visits
client := Http3Client->New("quic.nginx.org");
resp := client->Get("/");
"Status: {$resp->GetCode()}"->PrintLine(); # Status: 200
client->Close();
# One-liner
resp := Http3Client->QuickGet(Url->New("https://quic.nginx.org/"));
AI Integration
# OpenAI Realtime API - get text AND audio
response := Realtime->Respond("How many James Bond movies?",
"gpt-4o-realtime-preview", token);
text := response->GetFirst();
audio := response->GetSecond();
Mixer->PlayPcm(audio->Get(), 22050, AudioFormat->SDL_AUDIO_S16LSB, 1);
Face Recognition
# SCRFD detector + ArcFace R50 embeddings (InsightFace buffalo_l)
session := FaceSession->New("det_10g.onnx", "w600k_r50.onnx");
r1 := session->Recognize(img1_bytes, 0.5);
r2 := session->Recognize(img2_bytes, 0.5);
faces1 := r1->GetResults(); faces2 := r2->GetResults();
sim := FaceSession->Compare(faces1[0]->GetEmbedding(), faces2[0]->GetEmbedding());
"Same person: {$(sim > 0.35)}"->PrintLine();
Computer Vision
# OpenCV face detection
detector := FaceDetector->New("haarcascade_frontalface_default.xml");
faces := detector->Detect(image);
faces->Size()->PrintLine(); # "5 faces detected"
Natural Language Processing
# Sentiment analysis and TF-IDF
text := "This product is absolutely wonderful!";
sentiment := SentimentAnalyzer->Classify(text); # "positive"
# Train TF-IDF on documents
docs := ["cats are pets", "dogs are pets", "birds can fly"];
tfidf := TF_IDF->New();
tfidf->Fit(docs);
vector := tfidf->Transform("cats and dogs"); # [0.47, 0.0, 0.47, ...]
Language Features
Object-Oriented
- Inheritance, interfaces, generics
- Type inference and boxing
- Reflection and dependency injection
- See OOP examples β
Functional
- Closures and lambda expressions
- First-class functions
- See functional examples β
Strings & Formatting
- Interpolation with expressions:
"{$i + 1}","{$obj->M()}" - Format specifiers:
"{$pi:.2}","{$n:05}","{$v:x}" - Positional templates:
String->Format("{0} = {1}", a, b) - See string features β
Platform Support
- Unicode, file I/O, sockets, named pipes
- Threading with mutexes
- See platform features β
Libraries
AI & Machine Learning β π AI Developer Guide Β· GitHub source Β· π€ Getting Models
- OpenAI β chat, vision, realtime audio, image generation, embeddings, moderation, batch
- Gemini β chat, vision, search grounding, files, context caching, batch embeddings
- Ollama β local LLM chat, vision, and embeddings; recommended models:
llama3.2,phi3,llava(get models β) - NLP β tokenization, TF-IDF, text similarity, sentiment analysis
- OpenCV β computer vision: detection, transforms, video
- ONNX Runtime β local ML inference: YOLO, ResNet, DeepLab, OpenPose, Phi-3, face recognition (get models β)
- Face Recognition β SCRFD detector + ArcFace R50 (InsightFace buffalo_l)
- Phi-3 / Phi-3 Vision β local SLM text and multimodal inference
Web & Networking
- HTTP/1.1 server/client, OAuth
- HTTP/2 β multiplexed TLS client via nghttp2
- HTTP/3 / QUIC β UDP-based client via ngtcp2 + nghttp3
- RSS
Data
- JSON (hierarchical + streaming), XML, CSV
- SQL/ODBC, In-memory queries
- Collections
Other
Development
Modern tooling and practices:
- π€ Claude Code for pair programming, debugging, and refactoring
- π CI/CD: Fully automated build, test, sign, and release pipeline (GitHub Actions)
- β Every push triggers multi-platform builds (Windows, Linux, macOS)
- β Automated code signing for Windows installers
- β
One-tag releases:
git tag v2026.2.1β automated distribution in 60 minutes - β Parallel builds across 6 platforms (x64/ARM64)
- π Release Process Documentation β’ CI/CD Architecture β’ System Architecture
- π Quality: Coverity static analysis + CodeQL security scanning
- π§ͺ Testing: 350+ tests across 3 suites (regression, comprehensive, deploy)
- Regression suite: 10 focused tests for critical functionality
- Comprehensive suite: 323+ tests for full language validation
- Deploy suite: 17 real-world usage examples
- Full cross-platform coverage (Windows/Linux/macOS, x64/ARM64)
Editor Support:
- LSP plugins for VSCode, Sublime, Kate, Neovim, Emacs, Helix, and more
- REPL for interactive development
- API docs at objeck.org
π Testing Documentation β’ π§ͺ Regression Tests β’ π Performance & Benchmarks
Resources
- π Documentation
- ποΈ Architecture β Mermaid diagrams covering compiler, VM, JIT, libraries, and CI/CD
- π― Examples
- π¬ Discussions
- π Issues