mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-03-03 15:38:22 +00:00
We had previously not enabled TLS in MODE=tiny in order to keep the smallest example programs (e.g. life.com) just 16kb in size. But it was error prone doing that, so now we just always enable it because this change uses hacks to ensure it won't increase life.com's size. This change also fixes a bug on NetBSD, where signal handlers would break thread local storage if SA_SIGINFO was being used. This looks like it might be a bug in NetBSD, but it's got a simple workaround. |
||
---|---|---|
.. | ||
lib | ||
plinko.c | ||
plinko.mk | ||
README.txt |
DESCRIPTION plinko is a simple lisp interpreter that takes advantage of advanced operating system features irrespective of their practicality such as using the nsa instruction popcount for mark sweep garbage collection overcommit memory, segment registers, and other dirty hacks that the popular interpreters cannot do; this lets plinko gain a considerable performance edge while retaining an event greater edge in simplicity We hope you find these sources informative, eductional, and possibly useful too. Lisp source code, written in its dialect is included too under //tool/plinko/lib and unit tests which clarify their usage can be found in //test/tool/plinko. BENCHMARK binary trees (n=21) - sbcl: 200 ms (native jit; simulated arithmetic) - plinko: 400 ms (interpreted; simulated arithmetic) - python3: 800 ms (interpreted; native arithmetic) - racket: 1200 ms (interpreted; simulated arithmetic) AUTHOR Justine Alexandra Roberts Tunney <jtunney@gmail.com> LICENSE ISC SEE ALSO SectorLISP SectorLambda