5 ms·
A small Scheme implementation with AOT and incremental compilers that fits in 4K
- cheesecake_luvr 5y agoMarc Feeley of Gambit Scheme is one of the contributors. And the compiler is in plain Scheme itself, so can be executed from Guile, Chicken and Gambit. Very interesting. And as for the origin on the Chicken Scheme name, it is mentioned here: https://news.ycombinator.com/item?id=9323673 https://news.ycombinator.com/item?id=9323673
- stewbrew 5y agoWhen claiming it's a scheme, they should also state which version they are aiming at. From the readme, this seems to be a partial implementation of R4RS? Is this correct?
- throwaway81523 5y agoEarlier thread: https://news.ycombinator.com/item?id=29348033 https://news.ycombinator.com/item?id=29348033
- lovelyviking 5y ago>The Ribbit compiler is written in Scheme and can be executed with Gambit, Guile or Chicken. Just imagine how one who never used those tools reads it ... especially the "Chicken" part. Don't forget to imagine using search engine to find the meaning of 'Chicken' and how many nice results from the local farms you have to filter out before you find what you need. Do people think about those things when they invent them? Seriously with all those names at some point isn't it a good idea to use some prefix-Name where prefix explains what Name does? Because we see more and more of those "names" and it's getting worse and worse. Really try to read something in unfamiliar area with all those Chickens Dinosaurs and other artificial life forms )... it's getting a bit crazy.
- Turing_Machine 5y ago> Seriously with all those names at some point isn't it a good idea to use some prefix-Name where prefix explains what Name does? While neither "chicken" nor "scheme" is a very good search term on its own, of course, "chicken scheme" works pretty well. It's far from the most unsearchable name I've seen.
- lovelyviking 5y agoSure but this name was used just as example and even in that example one can say it's unclear why he should combine Scheme with Chicken and not other two for wining combination of those unfamiliar words. With all respect my focus is not with that specific name but with proposition to add prefixes-to-Name when it may be unclear to possible reader. The number of those names is growing and it seems inevitable to do something about it. It's hard to read page and search every word on it while it's enough to approximately understand what is it about and search for details later if there is a need.
- alekq 5y agoChicken in particular exists for roughly 20 years and like many projects started as hobby... Some time ago I read an interview with the author (Felix Winkelmann) and he gave the name because of the toy on his desk (if I remember correctly). Your point is clear, but he probably did not have second thoughts considering he was doing it for fun.
- lovelyviking 5y ago>Your point is clear, but he probably did not have second thoughts considering he was doing it for fun. Honestly I prefer playfulness and fun in naming. All I suggest is to provide later on some prefix for reader to understand at least something as a starting point if the name is unfamiliar. For example lisp-Kurunga instead of just Kurunga.
- glenda 5y agoYes things like Windows, Racket, Amazon, Tesla, Apple, Android… these are already words that existed however there is clearly room to share meaning based on context. When you’re taking about lisp and you mention “chicken” it’s clear you’re not talking about the animal. I am honestly surprised how many people in HN comments have this same complaint over and over again. Not everything needs to be directly searchable by name only.
- tubby12345 5y agoWhy do people incessantly complain about this? It's by far the lowest brow complaint I've ever seen about anything - "some hypothetical person might not be able to Google". Note they're never complaining on their own behalf because they have the OP's link. So it's a case of "won't someone please think of the poor Googler". In 20 years of googling there is only one project I had a hard time googling (https://dl.acm.org/doi/10.1145/390016.808445 https://dl.acm.org/doi/10.1145/390016.808445). It does not happen.
- lovelyviking 5y ago>Why do people incessantly complain about this? May be because number of those names grows and it's becoming overwhelming? >"some hypothetical person" It's not hypothetical person I constantly stumble on strange names and frequently in context where I do not care how it is called as long as I know what function it performs (even approximately). And strange names appear more and more and the main question I have usually: What is it? What it does?. The same happens with web sites for new products. With all great slogans like "It will improve your productivity" and similar sentences I am not interested to read it's lacking one mention of what it actually does and what it's all about. Thus the idea to use prefix-Name format in descriptions. What do you think about that idea? Would it improve educational function? Would it be easier to understand then searching for the term?
- deleted 5y ago[deleted]
- zem 5y agoI remember having trouble googling for examples of Nice and Clean code back when I was interested in those languages, because even adding "programming" and similar to the mix wasn't really helpful. but that was also a while ago, google has gotten better at contextual keywords since.
- throwaway81523 5y ago* https://duckduckgo.com/?q=nice+programming+language https://duckduckgo.com/?q=nice+programming+language * https://duckduckgo.com/?q=clean+programming+language https://duckduckgo.com/?q=clean+programming+language Both get language pages on the first hit past the ads.
- twic 5y ago> A small and portable Scheme implementation that supports closures, tail calls, first-class continuations, a REPL and AOT and incremental compilers. All that for a run time footprint around 4 KB! It's portable, but it contains a compiler? For any architecture? > Currently Ribbit supports the target languages C, JavaScript, Python and Scheme Aha. So it compiles to another language, and relies on that for portably compiling to a target architecture. Actually pretty sensible! Well, apart from the last option. Using Scheme to compile this Scheme implementation, written in Scheme, to a Scheme program which you can run on another Scheme implementation is surely just Scheme with extra steps. Anyway, how does the incremental compiler work with the C target?
- throwaway81523 5y agoIt doesn't compile to C, it compiles on the fly to VM code, and there are implementations of the VM in C, Python, Scheme, and JS. Otherwise the REPL would have to invoke a C compiler. Note that while the code footprint (size of the compiled VM) is only around 4k, the ram usage is much higher. They use a heap size of 200k though smaller would probably still work.
- ozten 5y agoAOT - Ahead of Time compilation
- pjmlp 5y agoNice to see some AOT love for Scheme, and not yet another interpreter.
- tooltower 5y agoI wonder how this would change if they wanted to optimize for total memory usage or runtime memory usage. Many of their target use cases (e.g. embedded) have more flash memory than ram. Does anyone know of scheme (or other) such interpreters that better in that respect?
- soegaard 5y agoSearch for picbit scheme in Google.