Our great sponsors
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.
rosie
-
I created a library for parsing text in Kotlin. Better than regular expressions. What do you think?
I think you'd be better served to try to port Rosie Pattern Language (https://gitlab.com/rosie-pattern-language/rosie) to Kotlin than to try to roll your own. There are definite corner cases in RegEx (sounds like you've already hit some) where the asympototic performance is so large that the code is practically unrunnable. Rosie addresses several of those cases.
-
Is the regex crate a bottleneck in your program? If so, can you share the details?
I had to spend a lot of time clicking through links to finally find an example: https://gitlab.com/rosie-pattern-language/rosie/blob/master/rpl/date.rpl
-
Ask HN: What small library or tool do you want that doesn’t exist?
Something could be based on the "Rosie Pattern Language"[0]. There is already a parser for en_US/en_EU dates[1], which should be simple to extend to date ranges.
[0]: https://gitlab.com/rosie-pattern-language/rosie/-/blob/maste...
[1]: https://gitlab.com/rosie-pattern-language/rosie/blob/master/...
-
Parsing Tools
Maybe something like Rosie?
langs
- What makes a language easy for writing a parser?
- Automatic import of C headers —how to deal with macros?
- Register Window in a Stack VM Interpreter
-
A challenge: 52 languages in 52 weeks
Well, I only wrote a few dozen lines in each. (Those benchmarks I wrote are here, all in one file; scroll through to find them. Those two will be at the end.
-
'Switch' and 'Computed Goto'
Next I tried writing a custom C program just for the VM execute function; mostly this was a framework machine-generated from my interpreter, with the handlers necessary filled in manually.
This is my doswitch/u-based test program, a mini-interpreter executing a loop.
-
Is it possible to optimize this bytecode interpreter more?
Actually the next thing I did after trying svm.c was to port it to my systems language to see how my compiler managed with it. (Source is here.)
-
Where are the C Alternatives?
I have taken something away from Forth which is the (a--b) notation that describes the stack behaviour. I use it in these early docs of my IL here.
- Langception IV: I wrote BASIC in Charm, which I also wrote.
- Does the number of keywords really matter?
What are some alternatives?
prolog-to-minizinc - A Prolog-to-MiniZinc translator
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
rakudo - 🦋 Rakudo – Raku on MoarVM, JVM, and JS
vox - Vox language compiler. AOT / JIT / Linker. Zero dependencies
xvm - Ecstasy and XVM
futhark - :boom::computer::boom: A data-parallel functional programming language
factor - Factor programming language
Cwerg - A systems programming language with a reusable backend
TablaM - The practical relational programing language for data-oriented applications
rust - Empowering everyone to build reliable and efficient software.
wabt - The WebAssembly Binary Toolkit
Carp - A statically typed lisp, without a GC, for real-time applications.