You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
In this post I'm excited to announce the Saber Virtual Machine, or SaberVM. It's a project I've been working hard on for the past month, with fascinating properties and an in-progress MVP implementation that's coming along well. If you like writing functional languages and want a portable backend to target that's fast and/or safe, you may be very interested in SaberVM, especially in its upcoming A
uxn is a delightful virtual-machine specification (with lots of implementations) supporting 16-bit operation. At present, it is a “real mode” machine, and there is no support for running virtual uxn machines under an uxn hypervisor. It’d be neat to have a virtualizable uxn system: you could write a full operating system, with memory protection and multi-tasking, entirely in uxntal, and existing RO
Published Wednesday, Jul 12, 2023 - 2181 words, 11 minutes Lately I’ve been spending quite a bit of time learning Rust, and as any sane person would do, after writing a few 100 lines programs I’ve decided to take on something a little bit more ambitious: I have written a Java Virtual Machine in Rust. 🎉 With a lot of originality, I have called it rjvm. The code is available on GitHub. I want to st
Just over a year ago, I wrote a blog post about a topic that’s very important to me, which is the problem of code rot, of software constantly breaking because of shifting foundations, and the toll it takes on programmers, and on society at large. We’re no doubt collectively wasting billions of dollars and millions of human hours every year because of broken software that should never have been bro
Date: 2023-01-15 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00015-fast-interpreters.md In this post, I hope to explore how interpreters are often implemented, what a "virtual machine" means in this context, and how to make them faster. Note: This post will contain a lot of C source code. Most of it is fairly simple C which should be easy to follow, but some familiarity w
Higher-order Virtual Machine (HVM) is a pure functional runtime that is lazy, non-garbage-collected and massively parallel. It is also beta-optimal, meaning that, for higher-order computations, it can, in some cases, be exponentially (in the asymptotical sense) faster than alternatives, including Haskell's GHC. That is possible due to a new model of computation, the Interaction Net, which supersed
This tutorial is intended for C beginners who want to do some coding practice and in the process, gain valuable insights regarding low-level programming and how (some) Virtual Machines operate under the hood. By the end of the article, we will have a working register-based VM capable of interpreting and running a limited set of ASM instructions + some bonus programs to test if everything works wel
Updated: 2023-01-06 About a year ago I was bitten by the PL bug. It started with reading Crafting Interpreters and discovering the wonders hidden under the hood of a compiler. I am also been a big fan of Emacs, and this started to get me interested in how its interpreter works. At the same time, I was reading the Rust book and trying to understand the concepts there. This all came to a head, and I
Virtual Machines (VMs) are a magical thing: a computer being emulated inside a physical computer. Since this emulated computer isn’t physical, we call it “virtual”. Such a simple description for something so powerful. From a practical perspective, VMs allow users to safely run programs in an isolated environment: the emulated machine. Why build a Virtual Machine from scratch So, why build one when
Arm入門勉強会とは、macOSがArmに移行したこの機にArmアーキテクチャでのプログラミングについて入門するソフトウェアエンジニアのための会です。今回主催の@nullpo_head 氏が、Armの仮想化支援機構について、その仕組みから深く説明します。前半は「現代のハードウェア仮想化支援機構」について。全2回。 ハードウェア仮想化支援とは何か 佐伯 学哉氏:入門セッション3つ目は『Armの仮想化支援機構』についての入門セッションです。どうぞよろしくお願いします。 本発表のスタートとゴールです。VMwareとかQemuとか使ったことあるけど仮想マシンの仕組みなんも知らんというところがまずスタートになっています。 1個目のゴールは、最近のVMのざっくりした仕組みとハードウェア仮想化支援とは何かということがわかること。そしてその話のあとに実際にArmの仮想化支援機構の概要を説明し、Armの仮想
Hello! I spent this whole past week figuring out how to use Firecracker and I really like it so far. Initially when I read about Firecracker being released, I thought it was just a tool for cloud providers to use – I knew that AWS Fargate and https://fly.io used it, but I didn’t think that it was something that I could directly use myself. But it turns out that Firecracker is relatively straightfo
2005年のそれほど新しくないものだが、Context Threading: A flexible and efficient dispatch technique for virtual machine interpreters という論文を読んだので、内容について少しまとめておく。 前提知識: 既存のThreading手法 http://www.complang.tuwien.ac.at/forth/threaded-code.html にまとまっているが、この論文では以下の2つが関係している: Direct threading: ラベルのアドレスを取得するGCC拡張などを使い、VMのprogram counterからVM命令の実装のアドレスをディスパッチしてそこにジャンプする Subroutine threading: VM命令の実装を関数にしておき、それをcallする命令を並べたネ
RubyでオレオレVMとアセンブラとコード生成器を2週間で作ってライフゲームを動かした話 の製作過程を雑にダラダラ書きます。 下書きっぽいものは用意しているので、打ち切りにならずに完走はできると思います(2019-10-05 完走しました!) 予定では全38回 時間や気力不足などで 1ヶ月更新が止まるとかはあるかもしれません 教科書的な正しさは保証できませんし、自分用のふりかえりメモみたいな体でやります なので、文体は丁寧でも説明は全然足りてないと思います 最初に作ったもの(v1)と全く同じではなく、微妙に違うものになります 試行錯誤した過程を全部そのまま書くとさすがに退屈・煩雑になるので多少整理したり あと、作って時間が経ってるので細かいところは覚えてない あまり大きく変えない程度に改良したり(2周目なので) 私はあれこれ悩みながら2週間かけて作りましたが、 単純に書き写すだけなら1週間
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く