Ericson2314

Joined 13 years ago

Karma
8,238
Submissions
5,086
Member since
Apr 1
Focuses on program languages and systems programming, with the ideal of formal correctness always in mind.

x should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. - R^nRS

Nothing is more important than good abstractions.

Haskell is practical; it pays my bills. (https://www.obsidian.systems/ is where I work.)

View on Hacker News

Recent submissions

Comment · 7 hours ago
Yet another person confusing "allowed" vs "required"
Comment · 9 hours ago
PBT testing and fuzzing are basically the same thing in my mind.

What's funny though is that the reasoning needed to say some sampling is comprehensive....makes it closer fo proofs! AFL — coverage-based fuzzing — was the original innovator here, but imagine an interpreter — code coverage in the interpreter itself isn't so good, you also want to explore the interpreted program!

This is why "is my testing comprehensive?" is actually an open-ended problem that, in the limit, is just as hard as formal verification.

I suspect we're basically going to see a convergence here. Randomized testing can be called "Monte Carlo formal verification" hehe.

Comment · 1 day ago
I don't think you want to avoid this complexity:

- OOP is existential types where the layouts share some sort of shared prefix (e.g. pointer to vtable, fields in common, etc.). To accurately model such things (and they occur in FFI), you need to separate types from layout, and hold the "supertype's layout" fixed.

- A classic use-case of dependent types is dynamically-sized arrays, and "tensors". When you have a pair (L: Nat, V: Pointer(Array(N, T))), you have a layout behind the pointer that is dynamic, but you don't want to conflate this with arbitrary types of the pointee.

Failure to deal with this in fully generality will force you to go down Rust's path of ad-hoc arrays and "dyn trait", which is actually more complexity.

Comment · 1 day ago
> Not entirely, since Syl uses static data to describe types' runtime layout. Allowing dynamic there would require overhead (e.g. a uniform representation).

This is where it is crucial to distinguish types from layouts. "uniform representation" means the layout is static while the type is dynamic. But this isn't an overhead in the sense of dynamic checks or lack of erasure.

Having static (erased) layout parameter and dynamic (erased) type parameter is the fully-general solution: monomorphization per layout, not type. And the caller decided whether to thread a layout parameter, or fix a single layout.

Comment · 1 day ago
Yeah I think this project could use a little guidance.

The real magic with types parameters is that they can both be dynamic and erased!

> That is, Syl is dependently typed at compile time and simply typed at runtime.

This is not full dependent types. And there is no reason to limit oneself this way for performance, because again dynamic + erased has no overhead.

Comment · 2 days ago
- More public transit (I am personally working on it)

- Cheep Chinese EVs

- Another attempt (ugh) at getting Detroit to cooperate

- Denser housing

- Higher gas/carbon taxes

should all contribute to people driving with gas less in the relatively near future.

Comment · 2 days ago
Training, producing open weights, can be done by the government.

Inference can be a commoditized business.

Comment · 2 days ago
If the farmer didn't buy electric tractors, it's not really your fault. But if you drive a gas vehicle yes it's your fault.
Comment · 2 days ago
There is no right answer re blaming the customer or owner. This is push vs pull.
Comment · 2 days ago
I'm talking about white collar workers working remote on a multi-day HSR trip all the way from the Continental US, through BC-CA, AK-US, RU, etc.

Yes, this is a very, very, very large Capital project :)

Comment · 2 days ago
But we're talking 100,000s of different parts that can be soddered on a board. That's not one factory.

If we were serious about domestic Manufacturing we'd both be doing massive automation and open borders with Latin America. You need the massive inflow of temporarily cheaper labor.

Automation picks up up as immigrants run out.

Comment · 2 days ago
Actually with Carbon inequality, the problem is that driving and flying is not expensive enough!
Comment · 2 days ago
If they take both supply chains of consumption and ownership into account, they are straight-up double-counting, unless they are separating opex and capex or something.
Comment · 2 days ago
This is mostly a distraction because so much Carbon pollution is within supply chains, and therefore not wise to ascribe to individual consumers.

The exceptions are driving and flying. 8M is more than the private jet users, I assume. Getting rid of ICE driving is going very well (outside fossil-Luddite America).

Getting rid of flying is harder, but I fully support a rail bridge across the Bearing Strait. I'll take long sleeper trains working remote before I get to my old world vacation proper. This is good for circadian rhythm too.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton