HNHacker News
TopNewBestAskShowJobs

tekknolagi

1,872 karma · joined October 6, 2011

[ my public key: https://keybase.io/tekknolagi; my proof: https://keybase.io/tekknolagi/sigs/3yeAq3H_gbqDnK8_Il6wEe8ncwrDEkYiZc0ld5NxGIE ]

https://bernsteinbear.com

email on website

submissionscomments
tekknolagi··on Reciprocal Approximation with 1 Subtraction
I haven't manually checked every case but it's normally folded into the load or shift or whatever and completely erased
tekknolagi··on Show HN: Onramp Can Compile Doom
This is so great. I've been watching the project develop and it's really neat to see this milestone!
tekknolagi··on Reciprocal Approximation with 1 Subtraction
We used memcpy everywhere in our runtime and after the 10th or so time doing it, it becomes less awkward.
tekknolagi··on Into CPS, Never to Return
I'll get back to this in more detail soon, but I did have lambda expressions in my blog post...
tekknolagi··on I keep turning my Google Sheets into phone-friendly webapps
See also: retool
tekknolagi··on Into CPS, Never to Return
Taking a look now. A couple of questions:

* Why give literal ints their own temporaries? * Why not support lambda expressions? Is it tricky in this approach or just accidentally missing?

tekknolagi··on Into CPS, Never to Return
Please show this gist. I would enjoy linking to it
tekknolagi··on Into CPS, Never to Return
Funnily enough, both CPS and SSA are US government services
tekknolagi··on Into CPS, Never to Return
To be clear, I am not Taylor and I did not come up with scrapscript! That website belongs to him and I'm just a random guy on the internet who emailed him and built an implementation.

The way I think about it is kind of like software versions. Say you want to do some kind of reproducible software. You can write that your software depends on jazzinator==3.0.0 but that's kind of unsatisfying because it relies either on tools or people to make sure that versions are immutable. It also relies on jazzinator to specify its own dependencies pretty strictly. So maybe you end up inventing the concept of a lockfile to partially solve that problem, but you still have the issue of relying on a third party to not change things up on you.

However, if you can address a library by a name that is computed from its code (a hash), things get interesting. You end up with this tree/DAG of dependencies where every dependency is immutable--you can't change the code without also changing the name. It's a Merkle DAG like Git. You do lose the ability to say things like "above version 2.5"... sort of.

If you also build a ref or tag system (similar to Git refs), you can kinda do normal style versioning on top of this content addressable world. But again, that relies on someone or something (maybe your hash-based store) to keep a map point-version names to hash names.

The other thing that's interesting with scrapscript in particular is since everything is addressable, you can use (sort of implicitly import/download) any value from any other program in a repository readable by you. But no scrapscript implementation fully does this yet, as far as I'm aware. For a fully working system, check out Unison.

tekknolagi··on Into CPS, Never to Return
Now that I'm back at a computer:

* https://bernsteinbear.com/blog/scrapscript/

* https://bernsteinbear.com/blog/scrapscript-baseline/

* https://bernsteinbear.com/blog/scrapscript-tricks/

* https://bernsteinbear.com/blog/type-inference/

* https://bernsteinbear.com/blog/row-poly/

and the repo for the main implementation: https://github.com/tekknolagi/scrapscript

tekknolagi··on Into CPS, Never to Return
See my other blog posts and GitHub if you would like some more!
tekknolagi··on Into CPS, Never to Return
No, and in fact internet searching for continuation-passing style stuff is quite tricky for this reason :(
tekknolagi··on Ruby 3.4.0
GraalVM tends toward open core. They have entire test suites and test tools that are internal-only that make developing it kind of difficult.
tekknolagi··on You can use C-Reduce for any language
Thank you for your feedback. I'll take that into consideration for my next blog post and compiler.
tekknolagi··on Deegen: A JIT-Capable VM Generator for Dynamic Languages
~~It didn't work; PyPy moved away from partial evaluation years ago~~

Sorry, I think I was responding to completely the wrong comment. I would also like a more general-purpose tool for writing fast programming language implementations

tekknolagi··on Deegen: A JIT-Capable VM Generator for Dynamic Languages
There is significant warmup required, which is not good for most programs. Deegen's approach is very promising for interactive use or other situations that require low latency.
tekknolagi··on Deegen: A JIT-Capable VM Generator for Dynamic Languages
It is very exciting to get a multi-tier VM from just bytecode encoded version of VM spec.
tekknolagi··on Deegen: A JIT-Capable VM Generator for Dynamic Languages
No, they also compare JIT to JIT and theirs is 30% slower. But it's only a baseline JIT and they'll have optimizing soon (tm).
tekknolagi··on Baby’s Second Garbage Collector
Oh? Which python runtime?
tekknolagi··on FBDetect: Catching Tiny Performance Regressions at Hyperscale [pdf]
They are extraordinarily different languages and runtime systems.
tekknolagi··on Seer: A GUI front end to GDB for Linux
See also https://github.com/nakst/gf
tekknolagi··on Damas-Hindley-Milner inference two ways
Please do! I would love to read it and link to it!
tekknolagi··on Damas-Hindley-Milner inference two ways
The man, the myth, the legend! Ok, so for extensible records: I don't have a good intuition for why the record objects would have to keep around the shadowed (hidden/duplicate) fields at run-time. Do you have a motivating example for that? Also entirely possible I missed it in the paper

(I'll check out the new paper later - thank you for the link)

tekknolagi··on Fast B-Trees
I thought a lot of b(+)tree advantage was in bigger-than-RAM something or other for large databases and these benchmarks seem relatively small in comparison
tekknolagi··on Everything you need to know about Python 3.13 – JIT and GIL went up the hill
They have gotten much better about that recently and it's much much more compatible now.
tekknolagi··on What's in an E-Graph?
I did not specify the integer size. It could be arbitrary precision like Python.
tekknolagi··on Microui+fenster=Small GUI
Yes; they're small enough that it's reasonable
tekknolagi··on Microui+fenster=Small GUI
Bundle them into your project. Commit them into your source control

    #include "fenster.h"
    #include "microui.h"
(see main.c and Makefile)
tekknolagi··on Microui+fenster=Small GUI
Probably yes, but it wouldn't be upstreamable into fenster. A Wayland impl would at least double the size. I'm vaguely looking into it anyway. Feel free to file an issue
tekknolagi··on Microui+fenster=Small GUI
I originally wanted to port dear imgui to fenster but that looked difficult and microui already had a very straightforward little bytecode to implement
← PreviousPage 3 of 21Next →