Viewing profile — gsg
gsg
HN member- Joined
- Mon, Dec 13, 2010, 4:29 AM UTC
- HN karma
- 893
- Public activity
- 307 items
- HN profile
- View on Hacker News ↗
About gsg
No profile information was provided.
Recent public activity
-
comment
Comment #28186771
This works until the analogue of monotremes shows up to ruin your supposedly flawless categorisation.
-
comment
Comment #27684839
System F doesn't have general recursion. Extensions with a letrec-like construct are common, and are sometimes inaccurately called 'System F', but those languages do not have the p…
-
comment
Comment #27393652
There are some examples, for example Crowbar is an OCaml tool that uses AFL to drive property based tests.
-
comment
Comment #26436262
chrisseaton is talking about the bump-pointer allocator in a modern GC, not an implementation of malloc/free. The performance characteristics are quite different. In a generational…
-
comment
Comment #26436105
Yes, this has been done a few times. CDR-coding was a hardware-assisted method of unrolling a Lisp list (complicated somewhat by the need to support mutation of car and cdr) that a…
-
comment
Comment #26435927
You can easily see by searching for 'kmalloc' (or 'malloc') at https://github.com/torvalds/linux/blob/master/include/linux/... that it does no such thing. Here's the logic for addi…
-
comment
Comment #24576942
BOUND is pretty slow, and requires an odd start/end pair to be placed in memory. I don't see any reason that it would be better than the usual unsigned comparison + branch that lan…
-
comment
Comment #24576806
Sure, but that didn't change much between x86 and x86-64. Perhaps it got a little worse because the SIMD instructions aren't overflow check friendly.
-
comment
Comment #24576134
That still exists though? add rax, rbx/jo overflow_error is how you do overflow checking on x86-64.
-
comment
Comment #24443374
> As far as I understand it, this limitation is also the only thing preventing tail-call elimination in C/C++. That is not the case. Guaranteed TCE requires deallocating the stack …
-
comment
Comment #24060321
Interesting if somewhat opaque. I'm familiar with defunctionalisation as an alternative to closure conversion in whole program compilers and as a description of how data types are …
- comment
-
comment
Comment #18046110
Lambda lifting is an alternative to closure conversion, so it doesn't get rid of closures so much as obviate introducing them at all. The two transformations are fairly closely rel…
-
comment
Comment #16975986
My guess would be that they were thinking h <= SIZE_MAX / w, and added the most obvious logic to avoid a division by zero.
-
comment
Comment #16950861
Monomorphising doesn't work for rank-n polymorphism, either. (This is mentioned on the page.)
-
comment
Comment #16837651
A bunch of languages have something much like .let/.apply already, since it's pretty much just function application in reverse order: "foo" |> String.length |-> printf "%d\n" |> fu…
-
comment
Comment #16612066
This is nonsense. Modern compilers don't work by generating the results you see with -O0 and then optimising; the poor quality of -O0 code is the result of skipping register alloca…
-
comment
Comment #16444524
First, deriving is just pointer arithmetic and doesn't copy anything. Second, standard flat closure representations already involve copying parts of environments, with any sharing …
-
comment
Comment #16444025
Mutually recursive functions can be closure converted without cycles by deriving closure values from each other rather than storing them in each other.
-
comment
Comment #15212990
I see. It seems like that would still make calling supporting routines annoyingly expensive, but perhaps that (and the extra tag memory) doesn't matter as much as I think it does. …
-
comment
Comment #15212732
How do you pass arguments? In two registers? On the stack?
-
comment
Comment #15154718
There's a decent textbook written in the incremental style argued for by the author: Essentials of Compilation. It features compilers for seven languages, written in Racket, each w…
-
comment
Comment #15052622
My complaint with |> is that it makes code with nesting look quite different based on argument position. Argument position is not a very interesting property, so it doesn't seem ri…
-
comment
Comment #15016333
> some random OO language on Amiga that I've never really been able to track down Maybe Amiga E? http://strlen.com/amiga-e/
-
comment
Comment #14836714
So... the only way to stop a bad guy with a GAN is a good guy with a GAN?