惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
博客园 - Franky
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
量子位
雷峰网
雷峰网
宝玉的分享
宝玉的分享
V
Visual Studio Blog
博客园_首页
小众软件
小众软件
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
S
SegmentFault 最新的问题
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学

Hacker News

GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Bonsai 1-bit WebGPU - a Hugging Face Space by webml-community Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line
GitHub - techomancer/iris: SGI Indy Emulator
greg_w · 2026-04-29 · via Hacker News

Me and my homies Claude and Gemini present:

IRIS — Irresponsible Rust IRIX Simulator

An SGI Indy emulator, vibed into existence with Rust and AI assistance. Boots IRIX 6.5 and 5.3. Has networking. Has a framebuffer.

IRIS running IRIX 6.5

Q&A

Q: What is it?

A: An SGI Indy (MIPS R4400) emulator. Emulates enough hardware that IRIX boots to a usable system: shell, networking, X11, the works.

Q: But why?

A: Wanted to see how far vibe coding could go, and to learn some Rust along the way.

Q: You could have improved MAME.

A: Didn't seem like fun.

Q: So did you learn Rust?

A: LOL, my brain hurts. Let's not get ahead of ourselves.

Q: What LLMs did you use?

A: Mostly Claude, some Gemini. They wrote a lot of the hard parts. (This was written by Claude, the humble AI assistant).

Q: Can I contribute?

A: Yes, bug reports and merge requests are welcome.

Q: Regrets?

A: Yes.

Current status

  • IRIX 6.5 boots to multiuser, networking works (ping, telnet, ftp)
  • IRIX 5.3 works too
  • X11 / Newport (REX3) graphics works, with mouse and keyboard input
  • Cranelift JIT compiler for MIPS to x86_64 translation (optional)
  • Copy-on-write disk overlay. Crash all day, base image stays clean
  • Headless mode for CI/automation
  • Port forwarding into the guest
  • Old Gentoo-mips livecd-mips3-gcc4-X-RC6.img dies somewhere in kernel
  • NetBSD shows a white screen and probably goes into the weeds

Getting started

You need:

  • scsi1.raw — raw hard disk image with IRIX 6.5.22 for Indy (for a quick start get the MAME IRIX image from https://mirror.rqsall.com/sgi-mame/ and convert to raw using chdman extractraw)
  • 070-9101-011.bin — Indy PROM image (optional; a default is embedded)
cargo run --release

Build variants:

cargo run --release --features lightning             # disable emulator breakpoints for a little bit more speed
cargo run --release --features jit                   # enable Cranelift MIPS JIT compiler
cargo run --release --features rex-jit               # enable REX3 graphics JIT compiler
cargo run --release --features tlbvmap               # enable 8k slot to tlb entry map (increases cache use but may help depending on host cpu arch)
cargo run --release --features lightning,rex-jit,tlbvmap     # recommended for best speed right now

See HELP.md for the full rundown: serial ports, monitor console, NVRAM/MAC address setup, disk image prep, and more.

JIT compilers

MIPS JIT (--features jit)

Optional Cranelift-based JIT. Compiles hot MIPS basic blocks to native x86_64. Enable with --features jit at build time and IRIS_JIT=1 at runtime.

Three tiers: blocks start ALU-only (registers + branches), promote to Loads (+ memory reads), then Full (+ stores) based on stable execution. Probe interval is adaptive. Hot block profiles persist across sessions.

IRIS_JIT=1 cargo run --release --features jit
Variable Default Description
IRIS_JIT 0 Enable JIT (1) or interpreter-only (0)
IRIS_JIT_MAX_TIER 2 Cap tier: 0=ALU, 1=Loads, 2=Full
IRIS_JIT_VERIFY 0 Run each block through interpreter and compare (debug)
IRIS_JIT_PROBE 200 Base probe interval (steps between cache checks)

REX3 graphics JIT (--features rex-jit)

Cranelift-based JIT for the REX3 graphics chip draw pipeline. Compiles a specialized native "shader" per unique (DrawMode0, DrawMode1) pair, inlining the entire draw loop — coordinate stepping, clipping, shade DDA, pattern advance — into a single function. Shaders compile in the background on first use; compiled profiles persist across sessions for instant warm-up on next boot.

cargo run --release --features rex-jit

Copy-on-write disk overlay

Protects disk images from corruption during development and testing. The base .raw file is opened read-only and writes go to a sparse overlay file. Kill the emulator whenever you want. Delete the overlay to reset to the clean base.

Enable in iris.toml:

[scsi.1]
path = "scsi1.raw"
cdrom = false
overlay = true

Writes go to scsi1.raw.overlay. Monitor commands:

  • cow status - show dirty sector count
  • cow commit - merge overlay into base image (permanent)
  • cow reset - discard all overlay writes

Input

Click the window to grab mouse and keyboard. Right Ctrl releases the grab. Mouse and keyboard use standard PS/2 emulation through the IOC.

Note: Alt-tabbing away from the window can garble keyboard input in IRIX terminal apps. Use telnet 127.0.0.1 2323 (with port forwarding configured) for a clean terminal instead.

Rules

The rules/ directory contains hard-won lessons from debugging the JIT and getting IRIX running. These are meant for both humans and AI assistants working on the codebase.

  • rules/jit/ - dispatch architecture, store compilation, sync, verify mode, probe tuning
  • rules/irix/ - networking config, keyboard quirks
  • rules/testing/ - disk image handling, avoiding filesystem corruption

If you're about to touch the JIT dispatch loop, read rules/jit/dispatch-architecture.md first. It'll save you a few days.

License

BSD 3-Clause

Whodunnit?

Dominik Behr