Befunge
bug
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Befunge
-
The Rust Performance Book
1. C compilers don't do a good job, & thus even CPython, which has historically stuck to rather vanilla C, uses computed goto, as described in https://eli.thegreenplace.net/2012/07/12/computed-goto-for-e...
I resorted to similar techniques in optimizing Befunge: https://github.com/serprex/Befunge (See bejit.c & marsh.c/marsh.h)
2. Rust enums are not variable sized, think of them as tagged C unions, where the Rust compiler can sometimes apply tricks to make Option> the same size as Vec
3. match can specialize for straight forward cases, when in doubt use https://godbolt.org
- Ask HN: Recommendation for general purpose JIT compiler
-
Why asynchronous Rust doesn't work
I've found async to be straight forward anytime I've used it. Promise#then is equivalent to callbacks
async/await often requires very little changes compared to synchronous code, whereas reworking a program into callbacks is much more impactful. & the async/await compilation process tends to produce better performance in addition to this. My first async/await work was a few years ago to increase a data importer's performance by an order of magnitude compared to the blocking code
Here's an example where looping made for a callback that recursively called, using async/await I get to use a plain loop:
before: https://github.com/serprex/Befunge/blob/946ea0024c4d87a1b75d...
after: https://github.com/serprex/Befunge/blob/9677ddddb7a26b7a17dd...
I don't see why people find it so complicated to separate begin-compute & wait-on-compute
I've since rewritten a nodejs game server into rust, https://github.com/serprex/openEtG/tree/master/src/rs/server... handleget/handlews are quite straight forward
- Python interpreter written in rust reaches 10000 commits
-
Compilers Are Hard
You'll also find them used in CPython's ceval.c
I use them in both my C befunge implementations:
https://github.com/serprex/Befunge/blob/c97c8e63a4eb262f3a60...
https://github.com/serprex/Befunge/blob/c97c8e63a4eb262f3a60...
bug
-
Ruby's private keyword is weird
Thank you for sharing!
It looks like the Scala project found allowing protected[this] fields as an escape hatch for variance to be unsound:
https://github.com/scala/bug/issues/7093
Going to have to chew on that and what it means for the same feature in Sorbet…
Thanks again for bringing this up!
-
how to setup scala
I have a new windows 10 and downloaded the Coursier installer from scala-lang.org, the https://docs.scala-lang.org/getting-started/index.html says that you should have either java8 or java11 installed but most tutorials online and posts says to install latest version of java, which java jdk version should I install or does Coursier install it for me or do I choose the latest jdk (java-jdk-19)?
-
Languages That Don't Dogfood 🤔
Scala
- Immutable Map in a var, or mutable Map in a val?
-
Scala isn't fun anymore
All of those dependencies are Java dependencies, not Scala libraries, except for one, and it's a known problem that is to some extent solved already and should be fully solved very soon. https://github.com/scala/bug/issues/12632
- Security static analysis tooling for Scala?
- Map Performance: Java vs Scala
-
The “Either” Issue
I had met the core developers, we had discussing a lot about which technology would better address our demand and, after many considerations, we had chosen Scala.
-
Next programming language?
i like scala. it combines object-oriented and functional programming into one high-level language, which makes it fun to learn. i don't know if it is popular in the robotics industry, but it runs on the jvm and can be combined with java, so there is that. i recommend the book "programming scala".
-
Scala REPL error when scala3 & scala 2 implemented with coursier installed with homebrew
See https://github.com/scala/bug/issues/12491 for info and workarounds. A fix will land in Scala 2.13.8.
What are some alternatives?
qbe-rs - QBE IR in natural Rust data structures
stage0 - A set of minimal dependency bootstrap binaries
openEtG
scalafix-organize-imports - A CI-friendly Scalafix semantic rule for organizing imports
ubpf - Userspace eBPF VM
libcperciva - BSD-licensed C99/POSIX library code shared between tarsnap, scrypt, kivaloo, spiped, and bsdiff.
Rustler - Safe Rust bridge for creating Erlang NIF functions
bamboomigrate - bamboomigrate is a typelevel transformation and migration library
rune - An embeddable dynamic programming language for Rust.
SlinkyDemos
minivm - A VM That is Dynamic and Fast
c4 - C in four functions