BERK Language Support for VS Code

BERK is a systems programming language that brings RTOS semantics to compile-time.
"BERK does not replace an RTOS kernel.
It replaces how RTOS-style applications are expressed and verified."
Positioning:
| Question |
Answer |
| Is BERK an RTOS? |
No. BERK is a systems programming language. |
| What is BERK-RTOS? |
A separate product – a minimal real-time kernel powered by BERK language. |
| Works with existing RTOS? |
Yes. Standalone on bare-metal or hosted mode on FreeRTOS/Zephyr/VxWorks. |
| What's the advantage? |
Makes RTOS semantics verifiable at compile-time. |
BERK Language & BERK-RTOS: Two Products, One Ecosystem
BERK is a systems programming language. BERK-RTOS is a separate real-time operating system product that is powered by BERK language.
BERK-RTOS is the only RTOS with a dedicated systems programming language designed specifically for it.
15 World-First Features:
| Feature |
Description |
| Zero-Jitter Scheduler |
±20-80 ns precision |
| Verified Driver Framework |
Formally verified drivers |
| AI-Assisted WCET Engine |
ML-based timing estimation |
| Dynamic MPU Recomposition |
O(1) memory protection |
| O-RAN xApp Native |
5G/LTE stack (30 modules) |
| P2W 2.0 Predictive Scheduler |
Trend-based prediction |
| Z² Cycle-Accurate Replay |
Debug system |
| Formal Verification (Kani) |
Mathematical proofs |
14 Sectors, Single Kernel:
| Sector |
Certification |
| Defense |
CC EAL5+/EAL7 |
| Avionics |
DO-178C DAL-A/B |
| Automotive |
ISO 26262 ASIL-D |
| Medical |
IEC 62304 Class C |
| Railway |
EN 50128 SIL4 |
| Space |
ECSS-E-ST-40C |
| Telecom |
3GPP / IEC 62443 |
| Industrial |
IEC 61508 SIL3 |
| IoT |
ETSI EN 303645 |
| Energy |
IEC 61850 |
| Robotics |
ISO 10218 |
| TSN |
IEEE 802.1 |
| Automation |
IEC 62443 SL2+ |
| Edge AI |
- |
Project Scale: 139,799 LOC · 218 files · 28 BSPs · 600+ tests

Docs: Language Guide · Stdlib API · Demos & Tests
CI & Test Status
⚠️ Note on GitHub Actions test results
Some CI checks may currently fail.
This is a known and temporary situation caused by:
- Ongoing core language and runtime evolution
- Recent internal architectural refactoring
- Test cases not yet fully updated to reflect new behavior
The implementation is evolving ahead of the test suite, which is being actively restructured.
✔ Runtime stability
✔ Deterministic execution goals
✔ Long-term test discipline
remain core project principles.
Test updates and CI stabilization are part of the active roadmap.
Website: berk-tech.com
Docs: Language Guide · Stdlib API · Demos & Tests
Latest Release: BERK v1.0.0
README (Turkish): https://github.com/ArslantasM/berk-release/blob/main/README_TR.md
Education Portal: BERK Learn – Free interactive systems programming courses (10 lessons, ~10 hours):
| Level |
Age |
Focus |
Theme |
| 🎮 Middle School |
11-14 |
Programming concepts introduction |
Games, characters, fun projects |
| 📚 High School |
15-18 |
Systems programming fundamentals |
Real-life problems, practical apps |
| 🎓 University |
18+ |
Advanced embedded & RTOS |
Industrial applications |
Curriculum: Hello World → Variables → Control Flow → Functions → Structs → Enums → Error Handling → Ownership → Collections → Mini Project
Whitepaper (Defense / Industrial):
Capability Snapshot (high level):
- AI/ML (Edge): CUIO concept for compile-time oriented, certifiable inference orchestration (profile-dependent).
- Embedded + HAL: platform-oriented modules (e.g., ESP32 / STM32 / Arduino / RISC-V / generic profiles).
- Industrial integrations: protocol modules (e.g., OPC-UA / MQTT / CoAP / EtherCAT / PROFINET).
- Hardware Bridge: PC↔device communication (e.g., Serial / Firmata / Modbus RTU / SLIP / BinProto).
Project Scale (current snapshot):
| Metric |
Value |
| Rust Source Code |
~200,000+ lines |
| Stdlib Modules |
120+ modules |
| Native Functions |
3,000+ functions |
| FFI Registry Entries |
3,200+ entries |
| HAL Platform Support |
5 platforms, 43 modules |
| Hardware Bridge |
5 protocols, 50+ functions |
| AI/ML Code |
~12,000 lines |
| Domain Libraries |
|
| ├─ Bioinformatics |
14 modules (~10,000 lines) |
| ├─ Finance/Trading |
6 modules (~5,000 lines) |
| ├─ Avionics (DO-178C) |
5 modules |
| ├─ ADAS (ISO 26262) |
7 modules |
| ├─ Medical (IEC 62304) |
4 modules |
| ├─ Railway (EN 50128) |
5 modules |
| ├─ Space (ECSS) |
5 modules |
| ├─ Robotics |
8 modules |
| └─ Telecom (TSN/5G) |
9 modules |
| RTOS Stdlib |
13 modules |
| Stdlib Completion |
100% |
v1.0.0 Safety-Critical Features (January 2026)
BERK v1.0.0 brings compile-time verification for safety-critical systems.
Certification-Oriented Features:
| Domain |
Capability |
Benefits |
| Traceability |
Requirements-to-code linking |
DO-178C Table A-3 compliance support |
| Determinism |
Bounded execution verification |
Predictable worst-case timing |
| Memory Safety |
Stack/heap usage analysis |
Static memory bound verification |
| Interrupt Safety |
ISR contract system |
Priority inversion detection |
| Type Safety |
Physical unit checking |
Dimensional analysis (time, frequency, velocity) |
| Formal Methods |
Verification tool hooks |
CBMC/SPARK integration ready |
Deployment Profiles:
- Defense Profile: Maximum analyzability, allocation-free builds, strict determinism
- Industrial Profile: Mixed-criticality support, protocol integration, practical maintainability
Target Standards:
✓ DO-178C (Avionics)
✓ IEC 62304 (Medical)
✓ ISO 26262 (Automotive)
✓ IEC 61508 (Industrial)
✓ EN 50128 (Railway)
✓ ECSS-E-ST-40C (Space)
Full API Documentation: Coming with v1.0.0 release
Why BERK?
BERK is first and foremost a systems programming language for safety-critical embedded systems, deterministic mixed-criticality runtimes, and high-performance messaging.
At a glance (platform + capabilities):
- AI/ML (Edge): CUIO concept for compile-time oriented, certifiable inference orchestration (profile-dependent).
- Embedded systems: designed for MCU/SBC workflows; RTOS-hosted or bare-metal style integrations.
- Industrial connectivity: protocol-oriented modules (e.g., OPC-UA / MQTT / CoAP / fieldbus families) to bridge control and integration layers.
- HAL + Hardware Bridge: talk to real hardware via HAL abstractions and PC↔device bridges (USB/Serial class workflows).
What makes it different:
- RTOS semantics at compile-time: scheduling/timing/communication constraints are designed to surface as compile-time checks and diagnostics.
- Bilingual syntax (Turkish + English): write in TR, EN, or mix both in the same file.
- Nano runtime approach: cooperative execution model oriented toward deterministic behavior.
- Zero-allocation hot paths: designed for predictable latency (profile-dependent).
- HPC messaging path: SPSC / bounded-MPSC primitives for very high throughput.
Quick Start
Install the extension from VS Code Marketplace.
Create a file: hello.berk
Write code (Turkish, English, or mixed):
// Turkish
yaz("Merhaba BERK!")
// English
print("Hello BERK!")
// Mixed
değişken x = 42
let y = 58
yaz("Toplam: ", x + y)
- Run:
Ctrl+Shift+B → build/run task
- Command Palette →
BERK: Run Current File
BerkRTOS - Real-Time Task Example
BERK-RTOS is a separate real-time operating system product powered by BERK language. BERK provides native RTOS semantics at compile-time. Define tasks with priorities, periods, and stack sizes using the bilingual syntax:
Türkçe (Turkish):
import rtos::{görev, Öncelik, Mutex, Kanal};
// Sensör verisi yapısı
yapı SensörVerisi {
sıcaklık: f32,
basınç: f32,
zaman_damgası: u64,
}
// Paylaşılan mutex ve kanal
statik veri_mutex: Mutex<SensörVerisi> = Mutex::yeni(SensörVerisi {
sıcaklık: 0.0,
basınç: 0.0,
zaman_damgası: 0,
});
statik veri_kanal: Kanal<SensörVerisi, 16> = Kanal::yeni();
// Sensör okuma görevi - yüksek öncelik, 10ms periyot
görev SensörOkuyucu {
öncelik: Öncelik::YÜKSEK,
periyot: 10ms,
yığın: 2KB,
son_tarih: 8ms,
başla() {
döngü {
bırak veri = SensörVerisi {
sıcaklık: sensör_oku_sıcaklık(),
basınç: sensör_oku_basınç(),
zaman_damgası: rtos::şimdi(),
};
// Mutex ile güvenli erişim
veri_mutex.kilitle(|v| {
*v = veri;
});
// Kanala gönder
veri_kanal.gönder(veri);
rtos::bekle_periyot();
}
}
}
// Veri işleme görevi - normal öncelik
görev Veriİşleyici {
öncelik: Öncelik::NORMAL,
periyot: 50ms,
yığın: 4KB,
başla() {
döngü {
eğer bırak Bazı(veri) = veri_kanal.al(100ms) {
eğer veri.sıcaklık > 80.0 {
alarm_tetikle("Yüksek sıcaklık!");
}
}
rtos::bekle_periyot();
}
}
}
English:
import rtos::{task, Priority, Mutex, Channel};
// Sensor data structure
struct SensorData {
temperature: f32,
pressure: f32,
timestamp: u64,
}
// Shared mutex and channel
static data_mutex: Mutex<SensorData> = Mutex::new(SensorData {
temperature: 0.0,
pressure: 0.0,
timestamp: 0,
});
static data_channel: Channel<SensorData, 16> = Channel::new();
// Sensor reading task - high priority, 10ms period
task SensorReader {
priority: Priority::HIGH,
period: 10ms,
stack: 2KB,
deadline: 8ms,
start() {
loop {
let data = SensorData {
temperature: read_temperature_sensor(),
pressure: read_pressure_sensor(),
timestamp: rtos::now(),
};
// Safe access with mutex
data_mutex.lock(|v| {
*v = data;
});
// Send to channel
data_channel.send(data);
rtos::wait_period();
}
}
}
// Data processing task - normal priority
task DataProcessor {
priority: Priority::NORMAL,
period: 50ms,
stack: 4KB,
start() {
loop {
if let Some(data) = data_channel.receive(100ms) {
if data.temperature > 80.0 {
trigger_alarm("High temperature!");
}
}
rtos::wait_period();
}
}
}
BERK-RTOS IDE Integration
What is BERK? BERK is a systems programming language. BERK-RTOS is a separate product – a minimal real-time kernel powered by BERK language and optimized with BERK's compile-time constructs.
The VS Code extension provides specialized analysis and visualization tools for BERK-RTOS development:
Task-Aware Code Analysis
| Feature |
Description |
| Priority Inversion Detection |
Detects priority conflicts between tasks at compile-time |
| Deadline Analysis |
Validates consistency of deadline constraints |
| Stack Usage Estimation |
Statically estimates stack usage for each task |
| WCET Preview |
Shows estimated worst-case execution time values |
RTOS-Aware Linting
// ⚠️ Linter warning: Potential priority inversion
task LowPriorityTask {
priority: Priority::LOW,
start() {
high_priority_mutex.lock(|v| { // ← Warning
// ...
});
}
}
Live Diagrams
- Task Graph: Task dependencies and priority relationships
- IPC Map: Channel and mutex usage map
- Timeline View: Task scheduling simulation
Memory Safety Analysis
- Stack overflow risk detection
- Heap allocation warnings (for zero-heap profile)
- DMA buffer alignment verification
Note: BERK is a systems programming language. BERK-RTOS is a separate RTOS product powered by BERK. Together they form an integrated ecosystem + compiler + runtime + IDE + analysis tool solution.
VS Code Features
- Syntax highlighting for
.berk files
- IntelliSense completion (TR/EN keywords + symbols)
- Real-time diagnostics (parser/type/lint)
- Hover type info + signature help
- Go to definition / references / rename
- Code actions & CodeLens (where available)
Energy Efficiency
BERK-RTOS mimarisinin deterministik, düşük gecikmeli ve zero-heap tasarımı enerji tüketimini dramatik biçimde azaltır.
Energy Savings Sources
| Factor |
Mechanism |
Impact |
| Ultra-short context switch |
180–500 ns (cooperative scheduling) |
Longer sleep periods |
| Zero-heap architecture |
Allocation-free hot paths |
Cache efficiency, less memory access |
| Lock-free IPC |
SPSC/bounded MPSC |
CPU wakes less frequently |
| No timer jitter |
Deterministic timing |
No wakelock issues |
| DVFS compatible |
Static task graphs |
Dynamic voltage/frequency scaling |
Expected Savings
| Domain |
Savings |
Description |
| IoT sensors |
30–60% |
Long sleep, minimal wakeup |
| Battery-powered systems |
20–40% |
Deterministic operation |
| Edge gateway |
15–30% |
Zero-copy data path |
| Telecom base station |
10–25% |
Lock-free packet processing |
This is a critical selling point for IoT modules, industrial control devices, and telecom base station hardware.
Extension Settings (Common)
{
"berk.preferredLanguage": "auto",
"berk.compilerPath": "berk-lang",
"berk.languageServerPath": "berk-lsp",
"berk.enableLinter": true
}
BERK v0.7.0 introduces comprehensive domain-specific libraries:
14 modules for molecular biology, genomics, and computational biology:
import bio::{DnaSequence, FastaReader, Aligner};
import bio::datasources::{AlphaFoldClient, UniProtClient};
import bio::databases::{KeggClient, StringDbClient};
// DNA sequence analysis
bırak dna = DnaSequence::yeni("ATGCGATCGATCG");
bırak gc_içeriği = dna.gc_content();
bırak tamamlayıcı = dna.reverse_complement();
// Fetch protein structure from AlphaFold
bırak alphafold = AlphaFoldClient::yeni();
bırak yapı = alphafold.get_structure("P12345").await?;
// Query protein-protein interactions from STRING
bırak string_db = StringDbClient::yeni();
bırak etkileşimler = string_db.get_interactions("TP53", 9606).await?;
Modules: sequence, fasta, fastq, sam, vcf, alignment, assembly, protein, crispr, pathway, phylo, omics, datasources, databases
Finance & Trading (stdlib/finance/)
6 modules for algorithmic trading and risk management:
import finance::{Price, OrderBook, Order, RiskManager};
import finance::derivatives::{BlackScholes, Option};
import finance::backtesting::Backtester;
// Order book with microsecond latency
bırak emir_defteri = OrderBook::yeni("BIST100");
bırak alış = Order::limit_buy(Price::from_float(150.50), 1000);
emir_defteri.submit(alış);
// Black-Scholes option pricing
bırak opsiyon = Option::call(
spot: 100.0,
strike: 105.0,
maturity: 0.25, // 3 months
volatility: 0.20,
risk_free: 0.05,
);
bırak fiyat = BlackScholes::price(&opsiyon);
bırak delta = BlackScholes::delta(&opsiyon);
// Risk calculation (VaR, CVaR)
bırak risk = RiskManager::yeni();
bırak var_95 = risk.value_at_risk(&portföy, 0.95, 1);
Modules: market_data, order_book, risk, derivatives, backtesting, mod
Safety-Critical Domain Libraries
BERK provides specialized libraries for industries with strict certification requirements:
Avionics (stdlib/avionics/) - DO-178C
5 modules for aerospace software development:
import avionics::{Arinc429, Arinc664, MilStd1553};
import avionics::do178c::{DalLevel, RequirementTrace};
// ARINC 429 bus communication
bırak bus = Arinc429::yeni(kanal: 1, hız: Arinc429::HIGH_SPEED);
bırak mesaj = bus.oku_etiket(0o310)?; // Octal label
// DO-178C traceability
#[requirement("REQ-NAV-001")]
#[dal(DalLevel::A)]
fn hesapla_irtifa(basınç: f64) -> f64 {
// DAL-A certified altitude calculation
44330.0 * (1.0 - (basınç / 101325.0).powf(0.1903))
}
Modules: arinc429, arinc664, mil1553, do178c, mod
ADAS (stdlib/adas/) - ISO 26262
7 modules for autonomous driving systems:
import adas::{Perception, Planning, Control};
import adas::v2x::{V2xMessage, DsrcRadio};
import adas::safety::{AsilLevel, SafetyGoal};
// Object detection with ASIL-D safety
#[asil(AsilLevel::D)]
görev NesneAlgılama {
öncelik: Öncelik::EN_YÜKSEK,
periyot: 20ms,
son_tarih: 15ms, // Hard deadline
başla() {
döngü {
bırak nesneler = lidar.algıla();
bırak tehditler = nesneler.filtrele(|n| n.mesafe < 50.0);
planlayıcı.güncelle(tehditler);
rtos::bekle_periyot();
}
}
}
// V2X communication
bırak v2x = DsrcRadio::yeni();
v2x.yayınla(V2xMessage::acil_fren(konum, hız));
Modules: perception, planning, control, localization, v2x, safety, mod
Medical (stdlib/medical/) - IEC 62304
4 modules for medical device software:
import medical::{IEC62304, RiskManagement, AuditLog};
import medical::risk::{Severity, Probability, RiskLevel};
// IEC 62304 Class C software unit
#[software_class(IEC62304::ClassC)]
#[risk_control("RC-001")]
fn dozaj_hesapla(hasta_kg: f64, ilaç_mg_kg: f64) -> Sonuç<f64, TıbbiHata> {
eğer hasta_kg <= 0.0 || ilaç_mg_kg <= 0.0 {
dön Hata(TıbbiHata::GeçersizParametre);
}
bırak dozaj = hasta_kg * ilaç_mg_kg;
// Audit trail
AuditLog::kaydet("dozaj_hesaplama", dozaj);
Tamam(dozaj)
}
Modules: iec62304, risk, audit, mod
Railway (stdlib/railway/) - EN 50128
5 modules for rail transport systems:
import railway::{ETCS, Interlocking, Signaling};
import railway::en50128::{SilLevel, SafetyFunction};
// SIL-4 interlocking logic
#[sil(SilLevel::SIL4)]
fn makas_kilit_kontrol(makas_id: u32, istek: MakasKonum) -> KilitSonucu {
bırak mevcut = interlocking.makas_durumu(makas_id);
bırak rota_çakışma = interlocking.rota_kontrol(makas_id);
eğer rota_çakışma {
dön KilitSonucu::Reddedildi("Rota çakışması");
}
interlocking.makas_hareket(makas_id, istek)
}
// ETCS Level 2 movement authority
bırak etcs = ETCS::yeni(seviye: 2);
bırak ma = etcs.hareket_yetkisi_al()?;
Modules: etcs, interlocking, signaling, en50128, mod
Space (stdlib/space/) - ECSS
5 modules for spacecraft software:
import space::{CCSDS, FDIR, Mission};
import space::ecss::{PacketType, ServiceType};
// CCSDS telemetry packet
bırak paket = CCSDS::Telemetry::yeni(
apid: 0x123,
sequence: mission.sequence_counter(),
data: sensör_verisi.serialize(),
);
downlink.gönder(paket);
// Fault Detection, Isolation, Recovery
#[fdir_monitored]
görev GüneşPaneliKontrol {
öncelik: Öncelik::YÜKSEK,
periyot: 100ms,
başla() {
döngü {
bırak güç = panel.ölç_güç();
eğer güç < eşik {
FDIR::bildir(FaultType::PowerAnomaly);
}
rtos::bekle_periyot();
}
}
}
Modules: ccsds, ecss, fdir, mission, mod
Robotics (stdlib/robotics/)
8 modules for robotic systems:
import robotics::{Arm, Drone, Navigation, Swarm};
import robotics::px4::{FlightMode, MavlinkMessage};
// 6-DOF robot arm control
bırak kol = Arm::yeni(dof: 6, kinematik: "PUMA560");
bırak hedef = Pose::yeni(x: 0.5, y: 0.3, z: 0.4, rx: 0.0, ry: PI, rz: 0.0);
bırak yol = kol.inverse_kinematics(hedef)?;
kol.hareket(yol, hız: 0.5);
// Drone swarm coordination
bırak sürü = Swarm::yeni(drone_sayısı: 10);
sürü.formasyon_belirle(Formasyon::V_şekli);
sürü.hedef_git(GPS::yeni(lat: 41.0, lon: 29.0));
Modules: arm, drone, px4, navigation, rov, ugv, swarm, mod
9 modules for telecommunications. BERK's determinism and low-latency capabilities make it ideal for modern telecom infrastructure.
Why BERK for Telecom?
| Requirement |
BERK Solution |
Result |
| Deterministic Latency |
TSN + PTP 1588 + low jitter scheduling |
Predictable frame timing |
| Zero-Copy Network Path |
Allocation-free frame buffer |
Ultra-low latency (SDR, O-RAN) |
| Energy Efficiency |
Lock-free IPC, long idle periods |
Low power consumption in base stations |
Target Markets:
| Segment |
BERK Advantage |
| 5G Small Cell |
Low latency + low power, small footprint |
| IoT Narrowband |
Deterministic sleep/wakeup, extended battery life |
| Baseband DSP |
Low jitter scheduler, clean signal processing |
| Edge Routing |
Zero-copy buffer, high packets/s |
| O-RAN RU/DU |
Deterministic fronthaul, synchronization guarantees |
import telecom::{TSN, PTP, SDR, ORAN};
import telecom::scheduler::{TrafficClass, GateControl};
// Time-Sensitive Networking
bırak tsn = TSN::yeni(arayüz: "eth0");
tsn.trafik_sınıfı_ekle(TrafficClass::CriticalControl, öncelik: 7);
tsn.gate_schedule_yükle(schedule);
// Precision Time Protocol (IEEE 1588)
bırak ptp = PTP::yeni(mode: PTP::BoundaryClock);
bırak senkron = ptp.senkronize()?;
yaz("Offset: {} ns", senkron.offset_ns);
// Software Defined Radio
bırak sdr = SDR::yeni(device: "usrp");
sdr.frekans_ayarla(2.4e9); // 2.4 GHz
bırak örnekler = sdr.al(1024);
Modules: tsn, ptp, synce, sdr, oran, frame_buffer, packet_queue, scheduler, mod
Real-World BERK Projects (Showcase)
Looking for real-world, production-oriented examples?
Explore the BERK Showcase Repository:
https://github.com/ArslantasM/berk-showcase
This repository contains:
- Embedded & RTOS-oriented projects
- Hardware–software co-design examples
- Deterministic and safety-aware systems
- Reference architectures using BERK
VS Code Extension v0.7.0 - New Features
Full LLVM IR backend (LLVM 17.0.6) support for native code generation across 33 platforms:
| Command |
Shortcut |
Description |
| Compile to Native |
Ctrl+Shift+N |
Generate native executable (.exe) |
| Emit LLVM IR |
- |
Generate LLVM IR (.ll) and open in editor |
| Emit Assembly |
- |
Generate assembly (.s) and open in editor |
🌍 Supported Target Platforms (33)
| Architecture |
Platforms |
| x86_64 |
linux-gnu, linux-musl, windows-msvc, windows-gnu, macos, freebsd, netbsd, fuchsia |
| i686 (x86) |
linux-gnu, windows-msvc, windows-gnu |
| AArch64 (ARM64) |
linux-gnu, macos, windows-msvc, android, ios, ios-sim, freebsd, fuchsia |
| ARM |
linux-gnueabihf, android (armv7) |
| Thumb (Cortex-M) |
thumbv7em-none-eabihf, thumbv7m-none-eabi, thumbv6m-none-eabi |
| RISC-V |
riscv64-linux-gnu, riscv32-none-elf |
| WebAssembly |
wasm32-unknown, wasm32-wasi |
| PowerPC |
powerpc64le-linux-gnu |
| SystemZ |
s390x-linux-gnu |
| LoongArch |
loongarch64-linux-gnu |
| MIPS |
mips64-linux-gnu |
| SPARC |
sparc64-solaris |
Cross-compilation example:
# ARM64 Linux
berk-lang build main.berk --target aarch64-linux-gnu
# WebAssembly
berk-lang build main.berk --target wasm32-wasi
# RISC-V embedded
berk-lang build main.berk --target riscv32-none-elf
# Windows from Linux
berk-lang build main.berk --target x86_64-windows-msvc
// Compile with optimization
// Settings: berk.llvm.optimizationLevel = "O2"
DAP Debugger Support
Full Debug Adapter Protocol support for interactive debugging:
| Feature |
Description |
| F5 Debug |
Start debugging current file |
| Breakpoints |
Set breakpoints by clicking line numbers |
| Launch/Attach |
Launch program or attach to running debugger |
| Stop on Entry |
Pause at program entry point |
| Variables |
Inspect variable values |
| Call Stack |
View function call hierarchy |
launch.json configuration:
{
"type": "berk",
"request": "launch",
"name": "Debug BERK Program",
"program": "${file}",
"cwd": "${workspaceFolder}",
"stopOnEntry": true,
"optimizationLevel": "O0"
}
UTF-8 Turkish Character Support
Automatic UTF-8 encoding for PowerShell terminals - Turkish characters display correctly:
| Setting |
Default |
Description |
berk.terminal.enableUtf8 |
true |
Enable UTF-8 encoding |
berk.terminal.clearBeforeRun |
false |
Clear terminal before run |
Supported characters: ğ ü ş ı ö ç Ğ Ü Ş İ Ö Ç
Manual setup: Command Palette → BERK: Setup UTF-8 Terminal
New Commands
| Command |
Description |
BERK: Compile to Native Executable |
LLVM native compilation |
BERK: Emit LLVM IR |
Generate LLVM IR |
BERK: Emit Assembly |
Generate assembly |
BERK: Setup UTF-8 Terminal |
Create UTF-8 enabled terminal |
BERK: Create New Project |
Create new BERK project |
BERK: Format Document |
Format current file |
BERK: Lint Current File |
Run linter |
BERK: Run All Tests |
Execute test suite |
BERK: Generate Documentation |
Generate docs |
Stdlib Update
Updated standard library with 506 files across 23 module directories:
| Category |
Modules |
| Core |
64 .berk files |
| AI/ML |
ai/ - Neural networks, LLM, vision |
| Embedded |
embedded/ - MQTT, OPC-UA, EtherCAT, PROFINET |
| GUI |
gui/ - Widgets, animation, reactive |
| Database |
database/ - PostgreSQL, Redis, migrations |
| Domain-Specific |
avionics/, adas/, medical/, railway/, space/, robotics/, telecom/ |
| Protocols |
protocol/, protocols/ |
| RTOS |
rtos/ - Real-time kernel |
| HAL |
hal/ - Hardware abstraction |
Keyboard Shortcuts
| Shortcut |
Command |
Ctrl+Shift+B |
Run current file |
Ctrl+Shift+N |
Compile to native |
Ctrl+Shift+F |
Format document |
Ctrl+Shift+T |
Run all tests |
Ctrl+Shift+L |
Lint file |
F5 |
Start debugging |
Status Bar
- BERK status indicator in bottom-left
- Click to run current file
- Shows extension status
Resources