cracauer | 9 months ago | on: European Lisp Symposium
cracauer's comments
cracauer | 10 months ago | on: On Lisp (1993)
cracauer | 1 year ago | on: These years in Common Lisp: 2023-2024 in review
cracauer | 2 years ago | on: Show HN: Use an old tablet as an extra monitor
cracauer | 2 years ago | on: Compile time regular expression in C++
cracauer | 2 years ago | on: OpenSSL 1.1.1 End of Life
cracauer | 2 years ago | on: U.S. v. Google
Google pays Mozilla a lot of money, mainly to keep Google search the default search engine in Firefox.
If that turns out to be illegal it could create a financial crisis for the Firefox browser and hence reduce diversity in web browsers.
cracauer | 2 years ago | on: All-AMD Ryzen Notebooks for Linux Gamers: USB4, AMD GPU? and PCIe-Gen-4.0
cracauer | 2 years ago | on: Linux becoming a Windows / OS X clone
cracauer | 4 years ago | on: Almost every publicly available CVE PoC
Anything like that around? I know it isn't trivial.
cracauer | 4 years ago | on: Land of Lisp (2010)
https://medium.com/@MartinCracauer/static-type-checking-in-t...
cracauer | 4 years ago | on: s/bash/zsh/g
I use those functions in both scripts and my interactive shell (which is bash).
I cannot do the same with zsh as my interactive shell if scripting is supposed to stay POSIX/bourne shell. Which I want as I often do this in systemwide scripts or modify existing scripts (all plain sh). The incompatibilities do matter.
cracauer | 4 years ago | on: Learning Common Lisp to beat Java and Rust on a phone encoding problem
You can add type declarations and a good compiler will check against them at compile time: https://medium.com/@MartinCracauer/static-type-checking-in-t...
cracauer | 4 years ago | on: LLVM 13.0
cracauer | 4 years ago | on: Only Three Countries in the World (Officially) Still Use the Imperial System
cracauer | 5 years ago | on: Take care editing bash scripts (2019)
cracauer | 6 years ago | on: Garbage Collection
This can go really bad, for example in systems that keep caches/repositories of preallocated things for faster re-use. If they are anchored at global variables, or near global, then you need to treat those preallocated things special. You can't just go and move them every time even when knowing you will never collect them.
Generally, GC works better if you don't do tricks/optimizations with memory allocation and let just everything flow freely into the heap. If you do have to optimize allocation you generally have to teach your GC about your hack.
cracauer | 6 years ago | on: Garbage Collection
Let later placement be decided by the order in which the heap is scavenged. That is what e.g. re-unifies array-of-pointer target instances. You scavenge the array of pointers and in the default case you line up the instances the pointers point to beautifully one after another. Even if the initial allocation had interleaving other memory. In that case your code gets faster after GC than before the data is first GCed.
cracauer | 6 years ago | on: Garbage Collection
Keep in mind that you only have a tiny amount of L1 data cache lines. They are gone so quickly. If you can get a couple more struct instances in an array into those cache lines (without the cache lines holding unrelated nonsense as a byproduct of a memory fetch) that is a huge win.
The issue of L1 cache lines is more important than the size of the L1 cache. The granularity of the cache lines uses up the size of the cache very quickly if all cache lines are padded up with 3/4rd nonsense that you don't need right now.
cracauer | 6 years ago | on: Garbage Collection
A better questions would be whether anybody has a moving, precise GC running on LLVM. Clasp with MPS runs, but that might be coincidence/luck.