jelm
prechelt-phone-number-encoding
Our great sponsors
jelm | prechelt-phone-number-encoding | |
---|---|---|
3 | 18 | |
12 | 29 | |
- | - | |
10.0 | 2.7 | |
almost 5 years ago | 3 months ago | |
TeX | Java | |
- | - |
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.
jelm
- Is APL Dead?
- The Lisp OS “Mezzano” Running Native on Librebooted ThinkPads
-
Learning Common Lisp to beat Java and Rust on a phone encoding problem
I have a bunch of links to ML material for either APL or J. I don't know of any particular library for J. J is interpreted, so it is not as fast as other implementations. I am mainly using it to experiment on concepts and teach myself more ML in J because of the iterative nature of the REPL, and the succinct code. I can keep what's going on in my head, and glance at less than 100 lines, usually 15 lines, of code to refresh it.
There is a series of videos of learning neural networks in APL cited by others here on this thread.
Pandas author, Wes McKinney, cited J as an influence in his work on Pandas.
Extreme Learning Machine in J (code and PDF are here too):
https://github.com/peportier/jelm
Convolutional neural networks in APL (PDF and video on page):
https://dl.acm.org/doi/10.1145/3315454.3329960
A DSL to implement MENACE (Matchbox Educable Noughts And Crosses Engine) in APL (Noughts and Crosses or Tic-tac-toe):
https://romilly.github.io/o-x-o/an-introduction.html
prechelt-phone-number-encoding
-
Benchmarking Java against Rust #3
You're looking at the non-optimized version. If you read the blog post you would've seen your suggestions had already been implemented.
- Help me find bottlenecks in this benchmark. I ported the Common Lisp solution to Zig and the Zig version is much slower?!
-
Optimising Common Lisp to try and beat Java and Rust on phone encoding 2/2
> it’s using Unicode-aware string stuff
Rust uses UTF-8 internally for Strings, so it's very efficient to parse a file into a String, then using slices to go through it... this is probably the best you can get as parsing ASCII input as UTF-8 is very efficient (the 0-bit is always zero in ASCII, the unicode decoder only needs to check that's the case for every byte, so it's not some kind of complicated computation it's doing to decode)...
If you use bytes for everything, you will make the whole code much harder to follow and it still won't run faster.
Check for yourself: https://github.com/renatoathaydes/prechelt-phone-number-enco...
-
Learning Common Lisp to beat Java and Rust on a phone encoding problem
This is a pretty introductory CL article, mostly a commentary on Norvig's solution to the problem. Still, I learned about the #. readmacro from it. The conclusion: "[The Lisp implementation] was the fastest implementation for all input sizes except the largest one, where it performed just slightly worse than my best Java implementation." GH repo at https://github.com/renatoathaydes/prechelt-phone-number-enco.... Sounds like he was mostly measuring the performance of the SBCL bignum implementation.
-
Revenge Of Lisp - Learning Common Lisp to beat Java and Rust on a phone encoding problem
Here are the commits I've made so far. If anyone wants to help write the most efficient possible Lisp implementation, please send suggestions here!
-
How to write fast Rust code
OMG you're right... I'm the author, and the reason it was allocating in my original code was that I was calling the operators on a reference to n. See https://github.com/renatoathaydes/prechelt-phone-number-encoding/commit/6683dc10cc4fb380abead632b87d94e8937f8377
-
How to write slow Rust code - Part 2 (a deeper look into what really made my code slow)
This commit show how to improve that: https://github.com/renatoathaydes/prechelt-phone-number-encoding/commit/561a7307b5574bd6fd7b8cc638abf6f29884b6ca
-
My battle to beat Common Lisp and Java (in Rust) on a phone number encoding problem. Sequel to "Revisiting Prechelt's Paper…". (and they didn't even optimize the Lisp code)
See https://github.com/renatoathaydes/prechelt-phone-number-encoding/issues/6
-
How to write really slow Rust code
I get the need to want to obsessively optimize the code. There's nothing more fun than to optimize something simple, artificial, and narrowly-defined. But y'all need to take a deep breath, step back, and realize that one blog post isn't going to suddenly define the language (nor should it personally define you).
-
How to write slow Rust code
source: https://github.com/renatoathaydes/prechelt-phone-number-enco...
What are some alternatives?
BQN - An APL-like programming language. Self-hosted!
woo - A fast non-blocking HTTP server on top of libev
array - Simple array language written in kotlin
prechelt-phone-number-encoding - Comparison between Java and Common Lisp solutions to a phone-encoding problem described by Prechelt
apltail - APL Compiler targeting a typed array intermediate language
libphonenumber - Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers.
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
bordeaux-threads - Portable shared-state concurrency for Common Lisp
num-bigint - Big integer types for Rust
j-prez
sb-simd - A convenient SIMD interface for SBCL.