rod-lin / Ivm
Licence: mit
a tiny vm
Stars: ✭ 34
Labels
Projects that are alternatives of or similar to Ivm
Tox
Tox is a statically typed version programming language that is written in rust.
Stars: ✭ 24 (-29.41%)
Mutual labels: vm
Moarvm
A VM with adaptive optimization and JIT compilation, built for Rakudo
Stars: ✭ 537 (+1479.41%)
Mutual labels: vm
Virtlet
Kubernetes CRI implementation for running VM workloads
Stars: ✭ 620 (+1723.53%)
Mutual labels: vm
Vm
💻☁📦 The (official) Nextcloud VM (virtual machine appliance), Home/SME Server and scripts for RPi (4).
Stars: ✭ 716 (+2005.88%)
Mutual labels: vm
Embiggen Disk
embiggden-disk live-resizes a filesystem after first live-resizing any necessary layers below it: an optional LVM LV and PV, and an MBR or GPT partition table
Stars: ✭ 440 (+1194.12%)
Mutual labels: vm
Jellyvm
A VM written following the Linear Abstract Machine architecture
Stars: ✭ 21 (-38.24%)
Mutual labels: vm
Securityworker
The best javascript code protection solution ever.
Stars: ✭ 626 (+1741.18%)
Mutual labels: vm
Deep Learning Vm
Sets up a VM with Keras, TensorFlow, TFLearn and Theano installed
Stars: ✭ 23 (-32.35%)
Mutual labels: vm
Vmcli
A set of utilities (vmcli + vmctl) for macOS Virtualization.framework
Stars: ✭ 571 (+1579.41%)
Mutual labels: vm
Zetavm
Multi-Language Platform for Dynamic Programming Languages
Stars: ✭ 592 (+1641.18%)
Mutual labels: vm
Ethereumjs Monorepo
Monorepo for the Ethereum VM TypeScript Implementation
Stars: ✭ 813 (+2291.18%)
Mutual labels: vm
Runmacosinvirtualbox
Run macOS 10.16 Big Sur (and other versions) in VirtualBox on macOS
Stars: ✭ 839 (+2367.65%)
Mutual labels: vm
Lc3 Vm
Write your own virtual machine for the LC-3 computer!
Stars: ✭ 631 (+1755.88%)
Mutual labels: vm
ivm
ivm is a simple vm built for a prototype-based language ink
Prerequisites
cmake >= 2.8
gcc >= 4.8.4 or clang >= 3.0
Build
Build using cmake
cmake -DVERSION=release
make
After Building
run tests or anything you write
make test
build/bin/ink hello.ink
Examples(of ink)
ink is a dynamically-typed language with...
Weird grammar
// js-like prototype mechanism
list.proto.map = fn f:
[ f(i) for loc i in base ]
// partial applied function
[ 1, 2, 3 ].
map(1 .+(_)).
map {
i -> i * 2
}.
map(print)
Natively supported coroutine
loc c = fork fn [ (yield i * 2) for loc i in range(10) ]
while c.alive():
print(resume c)
All sorts of overloading(which is bad)...
// context overload
loc = loc.clone()
list.proto.reduce = fn f: {
assert base.size() > 1
loc init = base[0]
for loc e in base.slice(1):
init = f(init, e)
init
}
list.proto.map = fn f: [ f(i) for loc i in base ]
// is capital or non-capital letter
// custom operators
string.proto.+? =
fn c = base.ord(): c >= "A".ord() && c <= "Z".ord()
string.proto.-? =
fn c = base.ord(): c >= "a".ord() && c <= "z".ord()
string.proto.~ = fn:
base.
chars().
map(fn c:
if +? c:
c.ord() - "A".ord() + "a".ord()
elif -? c:
c.ord() - "a".ord() + "A".ord()
else:
c.ord()
).
map(fn c: c.char()).
reduce(fn i, a: i + a)
print(~"hELLO, WORLD!")
... And tolerable performance
loc fib = fn n:
n < 2 ?
1 : fib(n - 1) + fib(n - 2)
print(fib(30))
more tests and examples can be found in test and test/examples folders
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].