logoalt Hacker News

Dotcl: Common Lisp Implementation on .NET

171 pointsby reikonomushalast Thursday at 4:33 PM44 commentsview on HN

Comments

Syzygiesyesterday at 6:03 PM

Any benchmarks? I have a combinatorial enumeration comparison project where the .NET jit optimized my hot loops for F# to in some cases matching Rust performance. F# is inspired by OCaml, and for me F# runs twice as fast.

Scala got a face lift where indentation replaces syntax, a modern poetry look many of us can't live without. It is entirely practical to eliminate most parentheses from Lisp (I have written thousands of lines of Scheme this way, hands down my favorite code to read), but doing so will lead to a tribal swarm attack. It is also easy to train Common Lisp to lay off the caps, but any stock installation greets users with an old man shouting (GET OFF (MY LAWN)).

The idea of Lisp is pure genius. One wonders where we would be today if any Lisp took a more pragmatic attitude towards encouraging adoption.

show 3 replies
algorithmsRcoolyesterday at 6:55 PM

Not my project, but I feel mention of IronScheme is appropriate. Leppie has been maintaining it for many years now.

[0] https://github.com/IronScheme/IronScheme

d-us-vbyesterday at 1:13 PM

Dotcl sounds like a lisp macro that interprets TCL. :D

show 2 replies
geospecktoday at 8:45 AM

There is also a native implementation of Clojure on the Common Language Runtime (CLR) https://github.com/clojure/clojure-clr

v9vyesterday at 12:47 PM

There's also Bike for CL/.NET interop: https://github.com/Lovesan/bike

SomeHacker44yesterday at 12:25 PM

Awesome! Has a MonoGame integration sample. Am curious to see if it will work with Godot or Unity. New weekend project...

Rochuslast Thursday at 11:32 PM

This is amazing. How long did it take you to implement it, i.e. reach that high level of Ansi test conformance? Have you been able to reuse concepts e.g. from ABCL?

show 1 reply
djha-skinyesterday at 4:18 PM

I have recently blogged that AI and Common Lisp don't mix, but I've come to the opposite conclusion lately. AI evens the playing field between large teams and single developers. Now all the lone wolves in cl will be able to do large things, like a .net implementation or a yaml parser. I heard one guy say he was using AI to write a c complete in common lisp. I wonder if AI was used here or not.

show 2 replies
cjbgkaghyesterday at 2:28 PM

Neat, I see AOT, will this be able to target WASM? I’m guessing there will be a mode that doesn’t use reflection emit since AOT doesn’t support that? I would check myself but I’m away from my computer.

croestoday at 11:06 AM

Does it have a REPL?

aboardRat4yesterday at 2:32 PM

Does it have tail recursion?

show 2 replies
registeryesterday at 3:46 PM

Kudos, this is what I was looking for. Time to add dynamic "scripting" to my .net projects.

pjmlpyesterday at 12:26 PM

Great! A new toy on my toolbox.

Kudos on the implementation.

Pay08yesterday at 12:56 PM

I was just wondering the other day if this exists. Great timing.

freedombenyesterday at 11:57 AM

Unfortunate near naming collision for people using doctl (the Digital Ocean CLI). I can foresee a lot of shell muscle memory causing me to use the wrong tool :-D

Really cool project! Love seeing CL work it's way into as many envs as possible