Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
hayley-patton
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
11 ms
·
91.
▲
by
hayley-patton
3y ago
"interpreted language" and "compiled language" are category errors.
92.
▲
by
hayley-patton
3y ago
gencgc uses software protection on some but not all architectures -- I recall x86-64 and MIPS but not ARM though. On x86-64 with SBCL 2.3.8 for example: * (disassemble #'(setf svref)) ; disassembly for (SETF SVREF) ; Size
93.
▲
by
hayley-patton
3y ago
SBCL now uses the "write-bitmap"/"card marking" scheme on some platforms, which is a tiny bit faster (1-2% mentioned on sbcl-devel). More interesting is that doing the touch-detection in software allows for finer gr
94.
▲
by
hayley-patton
3y ago
You probably want to read and not write, as writing will cause a lot of cache ping-pong and slow the mutator down when it doesn't SEGV on the dummy access < https://users.cecs.anu.edu.au/~steveb/pubs/papers&
95.
▲
by
hayley-patton
3y ago
Gladly! https://github.com/robert-strandh/SICL (which I wrote a decent chunk of the compiler backend of.)
96.
▲
by
hayley-patton
3y ago
Trivia pattern matches (a la ML, probably weaker than tree regular expressions) on data structures/trees, PPCRE regular expressions on strings.
97.
▲
by
hayley-patton
3y ago
TAL does use garbage collection; verifying that a GC behaves is another can of worms.
98.
▲
by
hayley-patton
3y ago
Compile to typed assembly language? https://www.cs.cornell.edu/talc/
99.
▲
by
hayley-patton
3y ago
> Compiled programs have some disadvantages for modern software development. Every time a developer makes a change, the compiler must be invoked to recreate the executable file. Executable files are inessential to compilation.
100.
▲
by
hayley-patton
3y ago
The mark-region GC has worse throughput with really large heaps compared to the live set (as the cost model doesn't work out), and always had* worse latency on Kandria. But generally throughput with more than two cores tends to be bett
101.
▲
by
hayley-patton
3y ago
There are still pauses, but the pauses are faster by using multiple cores to collect, which is nice for both throughput- and latency-sensitive apps. No-pause ("on-the-fly") collectors exist, but sufficiently-short pause ("con
102.
▲
by
hayley-patton
3y ago
It should be pretty portable, porting is just a matter of time and interest. The main thing is that the compiler needs to use a (more precise, lower overhead) software write barrier rather than using the (coarser, slower) hardware write bar
103.
▲
by
hayley-patton
3y ago
I have yet to benchmark it again; my setup was sloppy as I had to run the same part of the game over and over, because record/replay didn't work. (Nor do I have the time and energy now; have to survive the last semester of univers
104.
▲
by
hayley-patton
3y ago
Please note that the paper was published before I implemented incremental compaction; the GC in SBCL 2.3.8 can compact.
105.
▲
by
hayley-patton
3y ago
CakeML is a formally verified implementation of a subset of Standard ML which generates native code. Not sure about what it optimises though.
106.
▲
by
hayley-patton
3y ago
It does: "Nevertheless, implicit mutation of heap objects is rife at runtime, thanks to the implementation of lazy evaluation (which, we admit, is somewhat ironic)." says < https://www.microsoft.com/en-us/re
107.
▲
by
hayley-patton
3y ago
Drepper's "What every programmer should know about memory", though you mightn't find it all interesting. https://gwern.net/doc/cs/hardware/2007-drepper.pdf
108.
▲
by
hayley-patton
3y ago
For what it's worth, compaction with my mark-region GC for SBCL follows "An algorithm for parallel incremental compaction" < https://dl.acm.org/doi/10.1145/773039.512442 > which instead logs all
109.
▲
by
hayley-patton
3y ago
> That's a fun benchmark to have. Seems like gencgc is better than the new GC anyway wrt pause times? At that time the GC didn't compact, and so much time was wasted scavenging and sweeping the old objects. Old objects aren
110.
▲
by
hayley-patton
3y ago
> Lisp machines are long gone. They also had assembly and microcode (and Maclisp got scoping wrong until CL, anyway). So those weren't much better if you want to measure "purity". > Tell people to implement a Lisp down
111.
▲
by
hayley-patton
3y ago
That's still a fine GC. Although ridiculous, consider performing a tracing GC after every assignment - that system would provide the same immediacy (or better, due to cycle detection).
112.
▲
by
hayley-patton
3y ago
Rc is reference counting, which is garbage collection, although not tracing garbage collection. Though optimizing RC throughput tends to involve deferral (and optimising tracing latency tends to involve more upfront work on the mutator) <
113.
▲
by
hayley-patton
3y ago
In your defense, I recall Self did use unaligned traps to deal with dispatching on heap object/immediate, when immediates didn't usually appear at a call site.
114.
▲
by
hayley-patton
3y ago
> so car and cdr are implemented with one instruction and are safe (that is, throw an exception if applied to something they don't work on) even in code compiled at (safety 0). It is? By default x86 will happily do unaligned accesse
115.
▲
by
hayley-patton
3y ago
One can re-align when accessing; this is how SBCL e.g. handles tagging. e.g. the first slot would be accessed by MOV RAX, [RBX - 1].
116.
▲
by
hayley-patton
3y ago
JVM, Python and WASM are more like the SECD [0], not a plain stack machine, by use of a local environment. BEAM (for Erlang) is a register machine. And the JVM and WASM get compiled to code for register machines, with the VM stack not prese
117.
▲
by
hayley-patton
3y ago
> which explains why Robert Fripp played guitar with The Damned while King Crimson was on hiatus "The Stranglers and Friends" is an excellent live album of punks and prog figures (including Fripp) playing with the Stranglers wh
118.
▲
by
hayley-patton
3y ago
The author notes Fripp disbanding King Crimson in 1974, but doesn't mention the 80s reformation at all (with Discipline, Beat and Three of a Perfect Pair). Or the 90s ("double trio") reformation, or the 00s ("double duo&
119.
▲
by
hayley-patton
3y ago
Mine has a dodgy power connection somehow, and will refuse to turn on most of the time (depending on star alignment and where it was plugged in). Maybe if I could remove the power cable, I could check if that's the issue. Okay, I guess
120.
▲
by
hayley-patton
3y ago
Whyever the dangling parens? The OpenGOAL decompilation has many dangling parens too - they're a rather odd sight when moving around S-expressions (dodging the issue of if it's "Lisp" or not). I guess WAST and SMT-LIB pr
More ›