Live data from Hacker News

Viewing profile — kanaka

kanaka

HN member
Joined
Mon, Jul 12, 2010, 10:06 PM UTC
HN karma
123
Public activity
52 items

About kanaka

No profile information was provided.

Recent public activity

  1. comment
    Comment #26937831

    I wouldn't say it was entirely unintentional :-). I was definitely aware that "mal" could mean "evil" when I named it. It was a bit more apropos when mal only had a single implemen…

  2. comment
    Comment #26937789

    Mal uses a regex for lexing/tokenizing. I didn't want people to get hung up on the lexing step (my university compilers class spent 1/3rd of the semester just on lexing). It's cert…

  3. comment
    Comment #26937680

    It's a long regex, but it's just whitespace followed by an alternation with 5 different types of data: split-unquote, special characters, strings, comments, symbols. The string tok…

  4. comment
    Comment #26937623

    - There are several reasons for the weird way that the output and expected messages are printed. One of the main reasons is that in order to enable more flexible test case results,…

  5. comment
    Comment #15234986

    The steps and main files are the same for every implementation (that's part of the requirements for merging into the main tree). Some implementations have additional files like rea…

  6. comment
    Comment #15234966

    Every implementation has a stats target that gives byte counts, LOCs, and comments that is specific to that implementation. I.e. from the top-level you can run the following to get…

  7. comment
    Comment #15231804

    It started with the question "Could you implement a Lisp using just GNU Make macros"? (Hint: Yes) Bit of trivia: Mal originally stood for MAke-Lisp. Conveniently the acronym didn't…

  8. comment
    Comment #15230937

    Implementation size is hard to compare accurately across languages (bytes? lines of code? exclude comments? excluding leading spaces?). Also, the mal implementations were created b…

  9. comment
    Comment #15230828

    BYOL is targeted at implementing Lisp in C and focuses on learning C. There is a fair bit more hand-holding and example code in C for most of the steps than in the mal guide. BYOL …

  10. comment
    Comment #15230610

    I look forwards to your pull request! One challenge you'll run into is that (as I recall) the Boehm GC linkage no longer works with newer versions of Boehm.

  11. comment
    Comment #13978980

    I made a quick gist of the current LOC/file size stats: https://gist.github.com/kanaka/fdef20f5d0c2e04b97d9106b2f2f2... Note that this should obviously be taken with a grain of sal…

  12. comment
    Comment #13978793

    The problem with that command is that it also counts the Makefile, Dockerfile and other supporting files. It also counts every implementation step (so lots of repeats in the LOC). …

  13. comment
    Comment #9870231

    Clojurescript.net is running an online version of the bootstrapped REPL. It works on at least some mobile devices I've checked.

  14. comment
    Comment #9154007

    pcwalton: thanks to Alex Crichton, the implementation has been cleaned up and updated to Rust 1.0.0 nightly. Yay! The feedback you noted has been applied to the code base. The perf…

  15. comment
    Comment #9147291

    Yes, it was intended to be somewhat in jest. "The expert" was a subtle (perhaps too subtle) acknowledgement of his role. Although, I am serious that if somebody with better Rust ch…

  16. comment
    Comment #9147222

    I'm rather hesitant to post any sort of benchmarks (since the existing ones suck so bad), but the using these, the lua 5.1.5 equivalents would be: 1, 1, 293 Lua does seem to be an …

  17. comment
    Comment #9147170

    I'm quite happy to take PRs from an expert to address the issues and represent Rust better. :-) UPDATE: I will point out that the README is pretty clear that this is rust 0.13. Doe…

  18. comment
    Comment #9147155

    Thanks for the feedback. That did seem rather inefficient at the time but I wasn't able to discern the more efficient method at the time. I've kind of been waiting for Rust 1 to cy…

  19. comment
    Comment #9147127

    Well, I'm not going to remove it. But I will see if I can find some time to improve it in the next few days. I've been meaning to cycle back around. Of course, fixes from somebody …

  20. comment
    Comment #9147093

    Yeah, the performance benchmarks currently suck. They are neither statistically valid, comprehensive, and often just run with default settings. That was really just a personal note…

  21. comment
    Comment #9135324

    That chart (i.e. cloc) is actually missing 6 of the more interesting implementations: - forth - mal itself (e.g. self-hosting: all implementations can run this) - miniMAL (Lisp int…

  22. comment
    Comment #9132944

    The forth and OCaml implementations were written from scratch by chouser (Chris Houser of "Joy of Clojure"). The rest were written from scratch by yours truly (kanaka/Joel Martin).…

  23. comment
    Comment #9132927

    mal C implementation: https://github.com/kanaka/mal/tree/master/c Caveat, no GC. Although that could probably be added easily using the Boehm GC. I plan to do so at some point assu…

  24. comment
    Comment #9132910

    Good resource. Added.

  25. comment
    Comment #9132888

    Python is one of the oldest implementations and I ought to do a another pass through to clean it up sometime. I'm happy to take pull requests that make an implementation shorter an…