Carp – a statically typed, non-GC Lisp language
github.com
github.com
Carp – A statically typed Lisp, without a GC, for real-time applications - https://news.ycombinator.com/item?id=28875051 - Oct 2021 (134 comments)
Carp 0.3 - https://news.ycombinator.com/item?id=20368969 - July 2019 (23 comments)
Carp: A statically typed Lisp, without a GC, for real-time applications - https://news.ycombinator.com/item?id=16829278 - April 2018 (39 comments)
Show HN: A simple drawing and animation framework in Carp - https://news.ycombinator.com/item?id=15995146 - Dec 2017 (1 comment)
A walkthrough of the internals of the Carp compiler - https://news.ycombinator.com/item?id=15986827 - Dec 2017 (1 comment)
Carp, a compiled Lisp with type inference and a borrow checker - https://news.ycombinator.com/item?id=15778530 - Nov 2017 (109 comments)
Carp Language - https://news.ycombinator.com/item?id=13087780 - Dec 2016 (1 comment)
Carp: a statically typed lisp, without a GC, for high performance applications - https://news.ycombinator.com/item?id=12039268 - July 2016 (67 comments)
Carp – a statically typed Lisp, without a GC, for high performance applications - https://news.ycombinator.com/item?id=12037783 - July 2016 (1 comment)
Is the tooling any good? Package manager?
The GUI example in that page looks intriguing.
That's just SDL[0] though; they implemented basic SDL bindings.
[0] https://github.com/carp-lang/Carp/blob/master/core/SDL.carp
This one is cool too, I believe from the same author. I've read it recently and it makes pretty clear the intuition behind dependent types implementation.
Great book (the entire series) by the way.
It's interesting to see it's implemented in Haskell, looks like Clojure, has certain Rust-like semantics, and compiles to C. Quite an eclectic mix of languages going on here. Quite unusual that they don't mention anything about concurrency anywhere. The docs do say that there's a fork function, but there's no real information. Maybe the expectation is for developers to use C concurrency primitives?
(defn say-hi [text]
(while true
(if (< (length &text) 10)
(println "Too short!")
(println &text))))
Surprisingly similar to Rust, though I wonder if borrowing-by-default wouldn't be more readable than adding & everywhere. If you really need to give something ownership, you could have a sigil that maps to (move <var>)My guess is that they simply haven't thought much about this yet. One step at a time.
Note: I'm a contributor.
What does VM mean in this context? I assume it stands for Virtual Memory - does that mean it bypasses the MMU?
Which is kind of funny, I wonder if that means they directly call sbrk and brk rather than using malloc and free.
[1] https://en.wikipedia.org/wiki/Dylan_(programming_language)
I'm sure Carp is interesting, but I would be so unproductive in it.
Note: I'm a contributor.
https://news.ycombinator.com/newsguidelines.html
We detached this subthread from https://news.ycombinator.com/item?id=34027264.
The first actual census in USSR came up 15M "short", but it is unknown how many were killed, vs. previously overcounted because of weird czarist policy inherited from Mongol rule: peasants who escaped were still counted against a town's tax obligations.
Making nukes whose spiritual descendants will be handed over to Putin's insane successors, as Russian Federation splinters, might do in the whole world.
The term is used quasi-ironically on this very site, when people say they will “steelman” an argument. And there are many other people born with that name in various languages, such as Stahlman or, notably around here, Stallman.
I’m not to trying to defend one of the most brutal dictators in history, but since you’re the one who raised the onomastic issue…
https://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:1...
(compare the meritocracy espoused here and in following sections with that described by Goldstein in 1984 ... and we can be certain EA Blair had read the Republic)
b) non-hackers pick names in hopes of glorification by reference; hackers pick names that are pejorative: eg git
Когда называть вещи, щепки летят.
https://en.wikipedia.org/wiki/Excess_mortality_in_the_Soviet...
https://en.m.wikipedia.org/wiki/Eastern_Front_(World_War_II)
https://eu.usatoday.com/story/news/factcheck/2021/08/19/fact...
I know its still early, but to code something practical in 2022, We need to be able to connect and talk to other programs.
Missing:
1) Network lib (http client + server)
2) Basic Db access
3) How will concurrency work ? Threads ? CSP ?
4) Cryptographic functions (hashes etc)
5) enc/dec like json, xml etc
Don't get me wrong Im very impressed with Carp, but i want to be able to actually use it :/
Please dont say 'the std lib needs to be small' and ppl can bring their own http and crypto libs. Its 2022 (at least for a little bit more) your language is up against a lot of competition that does include the basics.
Go-Lang (I know not everyones.cup of tea) what they did do right from day one is include these basics in the stdlib. They really wanted ppl to use it to build stuff!
Again congratulations on getting this far, been keeping an eye on it every now and again.
Sounds like perfect things for you to work on to learn and enjoy programming with carp!
This is one possible philosophy. Another is the one rust is following.
- open source project on the internet
- that clearly states it's a research project
and instead of commenting on the project, you complain that it doesn't have the libraries you need for your job.
Brilliant!
Aaai I guess the my tone got lost via the internet :/ That is why I made sure to compliment the author/project twice in the beginning and in the end.
1)>>Very cool... and congrats.... I know its still early...,
2)>> Again congratulations on getting this far, been keeping an eye on it every now and again.
I am assuming, at some point the authors would want their project to be used by some people ? If I were one of those people, the above is what I would need.
I guess the internet and my 2nd-lang-english, might have made me came out "rude" ? But I assure you it was really just "positive-feedback" and my honest opinion ! YMMY
sigh
There are protocols other than HTTP, too.
It doesn't have any of the above in the standard library, apart from threads, and it seems to be doing fine...
Building a language is a massive amount of work already. Building out a reasonable cross platform standard library is a huge amount of work on top.
These things can easily provided by libraries. (apart from concurrency)
Besides, if you look at the commit history, the language doesn't seem to be developed anymore anyway, just a few commits in the last year.
Keep in mind that Rust has a package manager (+ registry) and build system as part of its distribution. The whole mentality of "small, reusable crates" is what makes a small standard library reasonable.
Lol true, true. I showed one example (Go) where they had it in and (I liked it). You showed one example (Rust) where it was/is not in the case. My personal preference is to have them included YMMY :)