HN user

smasher164

1,510 karma

akhil.cc

Posts45
Comments247
View on HN
flintlib.org 23d ago

Flint: Fast Library for Number Theory

smasher164
11pts0
www.blog.akhil.cc 26d ago

Type Inference (Part 1)

smasher164
2pts0
github.com 1mo ago

Portsh: A batch/shell polyglot that implements a Lisp

smasher164
31pts0
github.com 2y ago

Moby: Block io_uring_* syscalls in default profile

smasher164
1pts0
www.cs.cit.tum.de 2y ago

vmcache: Virtual-Memory Assisted Buffer Management [pdf]

smasher164
38pts4
github.com 2y ago

WASM typed function references and GC are in standardization

smasher164
3pts0
blog.ezyang.com 2y ago

The AST Typing Problem

smasher164
74pts32
github.com 3y ago

Libui-ng: a portable GUI library for C (fork of libui)

smasher164
2pts0
www.cl.cam.ac.uk 3y ago

CN: Verifying Systems C Code with Separation-Logic Refinement Types [pdf]

smasher164
2pts0
rakyll.medium.com 3y ago

How to peacefully grow your service

smasher164
1pts0
blog.rust-lang.org 3y ago

The Keyword Generics Initiative

smasher164
5pts0
spack.readthedocs.io 4y ago

Spack – A flexible package manager that supports multiple versions

smasher164
4pts1
conf.researchr.org 4y ago

Here We Go Again: Why Is It Difficult for Developers to Learn Another Language?

smasher164
2pts3
www.arewesixelyet.com 4y ago

Are We Sixel Yet?

smasher164
23pts7
project-everest.github.io 4y ago

Project Everest: Provably Secure Communication Software

smasher164
3pts0
github.com 4y ago

Better-Engineered Font Formats, Part 1: Boring Expansion

smasher164
12pts0
fzakaria.com 4y ago

Shrinkwrap: Taming Dynamic Shared Objects

smasher164
20pts3
github.com 4y ago

Better-Engineered Font Formats, Part 1: Boring Expansion

smasher164
3pts0
research.swtch.com 4y ago

Go’s Version Control History

smasher164
179pts38
fredrikj.net 4y ago

Calcium: Exact real and complex numbers in C

smasher164
4pts0
github.com 4y ago

Fuse-Archive – Serve an archive or compressed file as a FUSE file system

smasher164
2pts0
research.swtch.com 4y ago

On “Trojan Source” Attacks

smasher164
75pts10
groups.google.com 4y ago

Expectations for generics in Go 1.18

smasher164
263pts200
www.blog.akhil.cc 4y ago

Installing the Shelly Dimmer 2 (Integrated with Home Assistant and Tailscale)

smasher164
1pts0
www.youtube.com 4y ago

Nim Nuggets: Systems Programming and Metaprogramming Magic

smasher164
7pts1
github.com 4y ago

Hrmpf rescue system, built on Void Linux

smasher164
71pts34
ossf.github.io 4y ago

Open Source Vulnerability format v1.0

smasher164
1pts0
github.com 4y ago

An optimal algorithm for bounded random integers

smasher164
244pts41
github.com 5y ago

WinFsp 2021 – FUSE for Windows

smasher164
3pts1
www.perl.com 5y ago

Why I Hate Programming Language Advocacy (2000)

smasher164
63pts72

It's still shocking to me that the approach taken wasn't to have Claude write a tool that translates Zig to Rust. I imagine it would've been cheaper, deterministic, and each iteration would produce a better tool.

If you have a goal of making your OS usable, you have to design it with this in mind. Build your kernel and driver subsystem in a way that legacy OS interfaces can be implemented on top of them. Find ways to repurpose existing infrastructure so you don't have to do all the work yourself.

I guess I interpreted this part of their README as implying that the author found RC too fragile

Reference counting buys correctness and composability, but at a cost.

Disadvantage #1: you must balance every reference. Each value_create, value_retain, and each operation's implicit retain of its operands has to be matched by a value_release. Forget one and you leak; do one too many and you free memory that is still in use. The training examples in examples/ are verbose precisely because they are scrupulous about this in their error paths; that verbosity is the price of leak-free C.

Cargo-Geiger 1 month ago

I think what would matter from this kind of measure is whether a project's use of unsafe actually has undefined behavior. Like the number of unsafe blocks is not really my concern as much as what the unsafe blocks are doing. If you build a single faulty abstraction via unsafe, anything that uses it is broken.

In my projects, it usually comes down to a scenario like needing to write inline assembly or invoke a foreign function, where there are close to zero guarantees the language can give me.

I was having a conversation with someone recently if RSEQ would be a good primitive to build a load-link/store-conditional implementation in user-space. It gives you a critical window, though you still have to deal with spurious restarts, and provide a way for one core to abort another.

I'm not against AI usage but the website, documentation, and even the comments the creator (proggeramlug) makes in response to questions are all very clearly AI-generated. Also, as someone else noticed, the pacing of the commits is eerily fast. That combined with the level of functionality makes me dubious how much accountability the creators have over the implementation.

Like you really built a backend that lowers to LLVM, integrated it with a generational gc, wrote a cross-platform reactive runtime, and built support for eleven different targets within like a year? Are you just prompting the model to tack on the next coolest thing or do you understand how these features work?

I worry how many of these kinds of projects will show up now. How do you guarantee stability? If there's a memory corruption error in the GC implementation, who's going to debug it?

What I don't understand is if they were going to translate Zig to unsafe Rust, why not just build a translation tool for it? You could do a one-to-one mapping of language constructs, hardcoding patterns in your codebase, and as one friend put it "Tbh they could've just hooked up zig translate-c to c2rust". They would get deterministic translation, would probably have not been a heavy investment to build, and the output would have the same assurances as the input.

In this case, I would trust the output even less than the input. The input was memory-unsafe but hand-written. The output is memory-unsafe but also vibe-coded and has had no eyeballs on it. What is the point of abusing agentic AI for this use-case?

Hammerspoon 4 months ago

One of the reasons I left macos was that automation via Automator and Applescript was inconsistent and unsupported in many contexts. Well that and the locking down of app distribution and sandboxing. However, the positive reception to Hammerspoon is making me consider trying it again.

This is very exciting! I've been longing for an acme-like editor that adapts better to mainstream OSes. Being vim-like is a major plus. I'm gonna try this out!

Does tvix support targeting windows? And I do not mean WSL. iirc, the nix attempted a windows port but there were some hardcoded assumptions made about unix in the implementation that made it intractable, for example the location of the store. Do these issues also hold for tvix?

Yeah in many ways, Nix is a research project that escaped the lab. It’s the first tool of its kind that also happened to become successful. You have to write in this dynamically typed Haskell with poor affordances for being a build system and fragmented ways of addressing pinning.

Yeah, I also tend to bring up iCloud Notes in a browser tab. It’s still far from perfect, since Notes is usually an offline-first app, which you miss out on here.

I’ve been looking for a replacement, but nothing really gives you

- Offline-first usage

- Sync changes via CRDT

- Fast startup time

- Rich text support

- iOS and desktop linux support

we're still inventing languages where local variables can be mutated

Local mutability is probably one of the most common uses of mutability. A lot of it is using local state to build up a more complicated structure, and then getting rid of that state. Getting rid of that use-case is just giving up performance.