prechelt-phone-number-encoding
ulisp
prechelt-phone-number-encoding | ulisp | |
---|---|---|
18 | 33 | |
29 | 361 | |
- | - | |
2.7 | 2.6 | |
4 months ago | about 1 year ago | |
Java | C++ | |
- | MIT License |
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.
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...
ulisp
- How to Write a (Lisp) Interpreter (In Python)
- Show HN: I Made a Lisp
-
Lisp Badge LE
I love his projects too. He's also the creator of uLisp.
http://www.ulisp.com/
-
Lisp in Space
Not CL, but there is ulisp (http://www.ulisp.com/) for microcontrollers, supposed to be really tiny, and there is Carp (https://github.com/carp-lang/Carp) which is without a GC so seems suitable for real-time stuff.
- uLisp: Lisp for Microcontrollers
-
fe: A tiny, embeddable language implemented in ANSI C
There's also ulisp (for Arduino projects etc.): http://www.ulisp.com/
This is larger, because there are functions for accessing peripherals, and the core is more standard lispy with 'caadr' et.al., and it has a compacting GC, so images can be saved as a compact blob.
- ¿Any interpreted lenguage working in low memory microcontrollers?
-
Anyone tried to run ECL on a Pi Pico?
You might consider uLisp, it's very Common Lispy for the memory constraints given (sans macros and splicing quote). And you can still connect to it and save an image. I've tried it and it works well enough. Here is the homepage.
- Scamp – a self-contained Forth computer
-
What do you think of Forth?
Agreed - the interactivity is good. Lisp is close (have you seen http://www.ulisp.com/ - I can't believe they got into into that small a target!). Python is ok, but for some reason I don't use the REPL in the same way I do in Forth - I think calling functions is just harder somehow. Mostly is exploring valves from the Python REPL.
What are some alternatives?
woo - A fast non-blocking HTTP server on top of libev
ecl
prechelt-phone-number-encoding - Comparison between Java and Common Lisp solutions to a phone-encoding problem described by Prechelt
Lua-RTOS-ESP32 - Lua RTOS for ESP32
libphonenumber - Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers.
ferret - Ferret is a free software lisp implementation for real time embedded control systems.
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
lispBM - An interpreter for a concurrent lisp-like language with message-passing and pattern-matching implemented in C.
num-bigint - Big integer types for Rust
tinyscheme - TinyScheme is easy to learn and modify. It is structured like a meta-interpreter, only it is written in C.
sb-simd - A convenient SIMD interface for SBCL.
quickjs-esp32 - QuickJS port for ESP32