Writing a JIT and a disassembler are completely separate topics than emulating a system, don't you agree? :D (The article only talks about structuring a system emulator.)
The disassembler is my next step, since it's the easiest to tackle. Swapping binja for a custom solution on the existing code would be relatively straightforward.
The JIT is a completely different beast, it's essentially the IR -> codegen steps of a compiler (meaning without parsing, syntax/lexical analysis, object generation). Seeing as I wanted to target both x86_64 and aarch64 hosts, using an existing solution would get me started faster before I eventually write my own.
My plan is to split the JIT backends and keep cranelift for x86_64 support, but have my own aarch64 JIT also.
You have to pick your battles and assign priorities, you cannot re-invent everything at once.
Yes! I also started with using vm_memory traits in the beginning but delayed it till I refactor my memory subsystem. When we get that in upstream QEMU it might be possible to share this implementation as well as future devices.
Yes, it's possible and supported. QEMU can emulate an aarch64 system, and Google provides aarch64 Android builds for virtual machines specifically, called "Cuttlefish". Search for keywords "Android Cuttlefish QEMU" for instructions.
I agree it depends on the writer and their cultural and educational background. Another example is Thucydides (which as also a native Greek speaker, find funny that anglophones pronounce as Thoo-see-dee-dees, but I digress). Thucydides was considered even in eras closer to him than to as as too abstract/verbose.
Meanwhile Plutarch enriches the laconic myth corpus by reporting that the Lacedaemonians were content with replying to a letter with only the words "About what you wrote: no." Writing style is part of the message.
Growing up bilingual, I personally always found Greek more verbose than English even in brevity. It's good for avoiding ambiguity and getting your intent across but sometimes bad for colloquial communication.
First published in the Metropolitan Museum Journal, vol. 56, 2021, pp.160-73.
This study focuses on artist-designed frames at the end of the 19th century, many of which are preserved in the Havemeyer collection at the Metropolitan Museum, with a particular emphasis on a material known at the time as pâte coulante, unique in its ability to render extraordinary profiles, some of which could not have been realized by any other method available at the time. Although frames in pâte coulante can be seen surrounding the works of many late 19th century and early 20th century paintings, this study refers to the few superb examples available for study in the Metropolitan Museum and in private collections, which in many cases surround works by Edgar Degas. For artists like Degas, this method became crucial for executing radical frame designs. To reinforce the argument that the process of template-cut pâte coulante granted artists and framemakers the freedom to turn any design into a reliable and serviceable moulding, replicas of period mouldings were recreated using the available historic information, and the results gleaned from this technical study are included here.
You are mixing up two concepts here, that of the domesticated species and the domesticated individual animal. The article talks about the former. The latter means taming an individual of a species. Dogs are by definition domesticated wolves and depend on humans for survival in general.
Erlang was implemented in Prolog and ran on top of it (as a prolog DSL? Not sure to be honest.), until the workloads increased and they switched to a VM model (the BEAM).
To add to other comments, a positive thing with Latin and Greek jargon is that it's not intentionally obtuse, but a combination of stem words aiming to make up literal terms. Anesthesia for example means literally "not feeling". If there wasn't an influence of the classics to the natural sciences it could be notfeeling or notfeel in English.
It's basically allowing you to use the vulkan API on the virtualized guest, by writing vulkan API commands in a ring buffer in memory that is visible both by guest and host. These memory regions are only alive and accessible as long as the allocation lives, which is controlled by virtio control commands (in specific, create, map, unmap, destroy BLOB where a blob is the shared memory allocation).
This allows textures shaders and generally large amounts of data to skip being copied to and from the virtqueues, which is the usual method of virtio communication.
So to answer your question, if you use the Vulkan API on a guest to for example query the available Vulkan devices, if the correct mesa library is installed and virtio-gpu Venus is available, you will be able to use resources on the host with the Vulkan API.
I'm sorry for your loss. I'm not a medical practitioner but it sounds like the experience triggered a psychotic "break" in your friend? It's a sad but real possibility with psychedelics that more people should be aware of.
(Thanks for cargo-nextest btw!)