Live data from Hacker News

Viewing profile — gsg

gsg

HN member
Joined
Mon, Dec 13, 2010, 4:29 AM UTC
HN karma
893
Public activity
307 items

About gsg

No profile information was provided.

Recent public activity

  1. comment
    Comment #28186771

    This works until the analogue of monotremes shows up to ruin your supposedly flawless categorisation.

  2. 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…

  3. comment
    Comment #27393652

    There are some examples, for example Crowbar is an OCaml tool that uses AFL to drive property based tests.

  4. 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…

  5. 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…

  6. 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…

  7. 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…

  8. 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.

  9. comment
    Comment #24576134

    That still exists though? add rax, rbx/jo overflow_error is how you do overflow checking on x86-64.

  10. 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 …

  11. 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 …

  12. comment
  13. 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…

  14. 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.

  15. comment
    Comment #16950861

    Monomorphising doesn't work for rank-n polymorphism, either. (This is mentioned on the page.)

  16. 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…

  17. 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…

  18. 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 …

  19. 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.

  20. 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. …

  21. comment
    Comment #15212732

    How do you pass arguments? In two registers? On the stack?

  22. 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…

  23. 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…

  24. 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/

  25. comment
    Comment #14836714

    So... the only way to stop a bad guy with a GAN is a good guy with a GAN?