Viewing profile — kanaka
kanaka
HN member- Joined
- Mon, Jul 12, 2010, 10:06 PM UTC
- HN karma
- 123
- Public activity
- 52 items
- HN profile
- View on Hacker News ↗
About kanaka
No profile information was provided.
Recent public activity
-
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…
-
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…
-
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…
-
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,…
-
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…
-
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…
-
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…
-
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…
-
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 …
-
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.
-
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…
-
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). …
-
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.
-
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…
-
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…
-
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 …
-
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…
-
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…
-
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 …
-
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…
-
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…
-
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).…
-
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…
-
comment
Comment #9132910
Good resource. Added.
-
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…