Hacker Newsnew | past | comments | ask | show | jobs | submit | joek1301's commentslogin

> Let’s say for moral reasons you choose to link none of LLVM’s libraries (thanks for caring about your users!)

For what moral reasons would I avoid linking LLVM? I’m not familiar.


I'm not sure about moral per se, but LLVM is practically a painful dependency—it doesn't have API compatibility between versions, release builds are rapidly approaching a gigabyte, you are given some franken-version by the system, and you won't have a good time if you end up linking/loading more than one version for whatever reason.

IIRC there was also some case where an LLVM bump caused tcmalloc to explode inside wine.


I would think hyperscalers stand to benefit the most from optimizing wear!


I know they aren't the point of the article, but the photos are absolutely breathtaking.


It's impossible to take a bad picture of crater lake, it's still the single most photogenic anything I've ever seen, there may be equals but nothing superior.


I feel like there are lots of places in Central Oregon that are on the same level. Anything near the 3 sisters - McArthur Rim Trail, Highway 242, McKenzie River, Clear Lake, Sparks Lake.

And Newberry Crater - it's like Crater Lake, but without the crowds. You can drive up to the top of East Paulina Peak and you're probably the only person up there. The Great Obsidian Flow is nearby. And there's a trail going all the way around the top of the crater. You can spend 2 hours riding a MTB along that trail, and probably meet 0 other people.


If you feel this way, i recommend you go visit alaska; even just hiking hatcher’s pass on a good day outweighs crater lake in beauty for me.


> One hypothetical approach I could imagine, is that a dependency major-version release of a package can ship with AST-rewriting-algorithm code migrations

Jane Street has something similar called a "tree smash" [1]. When someone makes a breaking change to their internal dialect of OCaml, they also push a commit updating the entire company monorepo.

It's not explicitly stated whether such migrations happen via AST rewrites, but one can imagine leveraging the existing compiler infrastructure to do that.

[1]: https://signalsandthreads.com/future-of-programming/#3535


This is more of less how Facebook developed PHP -> Hack on the fly. Each new language feature would be patched in, and at the same time, a whole-monorepo transform would be run to adopt the feature. Pretty neat, if a logistical nightmare


I also was inspired to play around with Z3 after reading a Hillel Wayne article.

I used it to solve the new NYT game, Pips: https://kerrigan.dev/blog/nyt-pips


I guess z3 is fine with it, but it confuses me that they decided pips wouldn't have unique solutions


I actually wasn't aware of this either.

Z3 is fine with it--its job is to find any satisfying model. The possible outcomes are "the puzzle is solvable and here's a solution" or "the puzzle isn't solvable."


When using minizinc or other constraint programming tools to solve puzzles that require a single solution, I typically run them asking for 2 solutions. If I get 1 solution only, I know the puzzle is well formed, if I get more than one solution I know the puzzle is mal-formed.

For example, in https://zayenz.se/blog/post/benchmarking-linkedin-queens/#te... I took a large number of LinkedIn Queens puzzles, and I filtered out the ones that were not well-formed so that they wouldn't mess up the benchmarking and statistics.


I love how you create dataclasses to abstract over constraints!



Normally this kind of thing would be absolutely ripe for abuse, but with the guardrails in place for the mainstream SOTA models, it might actually be okay. Maybe I'll be proven wrong.



I clicked your link, saw DP, and tabbed away to try and solve it myself first. (I also forgot to sample without replacement and wound up with $2.86.)

Delightful read!


Pleased to hear that - I felt dumb when I made that mistake! But now I know I'm not alone.


It defines a new infix data constructor. So if `it` and `ct` are values of type `ITerm` and `CTerm` respectively, `it :@: ct` is a value of type `ITerm`. (It could have been written using a prefix operator like `ITerm`'s other data constructors.)


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: