frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Uv is the best thing to happen to the Python ecosystem in a decade

https://emily.space/posts/251023-uv
1205•todsacerdoti•8h ago•691 comments

China has added forest the size of Texas since 1990

https://e360.yale.edu/digest/china-new-forest-report
385•Brajeshwar•1d ago•241 comments

Tell HN: Azure outage

662•tartieret•11h ago•633 comments

IRCd service written in awk

https://example.fi/blog/ircd.html
14•pabs3•31m ago•2 comments

Minecraft removing obfuscation in Java Edition

https://www.minecraft.net/en-us/article/removing-obfuscation-in-java-edition
575•SteveHawk27•10h ago•197 comments

Raspberry Pi Pico Bit-Bangs 100 Mbit/S Ethernet

https://www.elektormagazine.com/news/rp2350-bit-bangs-100-mbit-ethernet
70•chaosprint•3h ago•14 comments

OS/2 Warp, PowerPC Edition

https://www.os2museum.com/wp/os2-history/os2-warp-powerpc-edition/
30•TMWNN•3h ago•12 comments

AWS to bare metal two years later: Answering your questions about leaving AWS

https://oneuptime.com/blog/post/2025-10-29-aws-to-bare-metal-two-years-later/view
627•ndhandala•15h ago•431 comments

Dithering – Part 1

https://visualrambling.space/dithering-part-1/
225•Bogdanp•8h ago•48 comments

How the U.S. National Science Foundation Enabled Software-Defined Networking

https://cacm.acm.org/federal-funding-of-academic-research/how-the-u-s-national-science-foundation...
57•zdw•5h ago•15 comments

AOL to be sold to Bending Spoons for $1.5B

https://www.axios.com/2025/10/29/aol-bending-spoons-deal
192•jmsflknr•10h ago•170 comments

Kafka is Fast – I'll use Postgres

https://topicpartition.io/blog/postgres-pubsub-queue-benchmarks
312•enether•12h ago•250 comments

A century of reforestation helped keep the eastern US cool

https://news.agu.org/press-release/a-century-of-reforestation-helped-keep-the-eastern-us-cool/
89•softwaredoug•3h ago•10 comments

Tailscale Peer Relays

https://tailscale.com/blog/peer-relays-beta
259•seemaze•10h ago•71 comments

Crunchyroll is destroying its subtitles

https://daiz.moe/crunchyroll-is-destroying-its-subtitles-for-no-good-reason/
175•Daiz•3h ago•58 comments

OpenAI’s promise to stay in California helped clear the path for its IPO

https://www.wsj.com/tech/ai/openais-promise-to-stay-in-california-helped-clear-the-path-for-its-i...
156•badprobe•9h ago•210 comments

Board: New game console recognizes physical pieces, with an open SDK

https://board.fun/
147•nicoles•23h ago•56 comments

The Internet runs on free and open source software and so does the DNS

https://www.icann.org/en/blogs/details/the-internet-runs-on-free-and-open-source-softwareand-so-d...
111•ChrisArchitect•8h ago•7 comments

GLP-1 therapeutics: Their emerging role in alcohol and substance use disorders

https://academic.oup.com/jes/article/9/11/bvaf141/8277723?login=false
156•PaulHoule•2d ago•67 comments

How to Obsessively Tune WezTerm

https://rashil2000.me/blogs/tune-wezterm
79•todsacerdoti•7h ago•47 comments

Keep Android Open

http://keepandroidopen.org/
2342•LorenDB•22h ago•748 comments

Responses from LLMs are not facts

https://stopcitingai.com/
148•xd1936•5h ago•100 comments

Meta and TikTok are obstructing researchers' access to data, EU commission rules

https://www.science.org/content/article/meta-and-tiktok-are-obstructing-researchers-access-data-e...
147•anigbrowl•4h ago•68 comments

More than DNS: Learnings from the 14 hour AWS outage

https://thundergolfer.com/blog/aws-us-east-1-outage-oct20
79•birdculture•2d ago•25 comments

Using Atomic State to Improve React Performance in Deeply Nested Component Trees

https://runharbor.com/blog/2025-10-26-improving-deeply-nested-react-render-performance-with-jotai...
4•18nleung•3d ago•0 comments

Upwave (YC S12) is hiring software engineers

https://www.upwave.com/job/8228849002/
1•ckelly•10h ago

Composer: Building a fast frontier model with RL

https://cursor.com/blog/composer
179•leerob•10h ago•133 comments

How blocks are chained in a blockchain

https://www.johndcook.com/blog/2025/10/27/blockchain/
50•tapanjk•2d ago•21 comments

Extropic is building thermodynamic computing hardware

https://extropic.ai/
97•vyrotek•8h ago•70 comments

Tailscale Services

https://tailscale.com/blog/services-beta
126•xd1936•1d ago•28 comments
Open in hackernews

Encoding x86 Instructions

https://www-user.tu-chemnitz.de/~heha/hs/chm/x86.chm/x86.htm
82•st_goliath•9h ago

Comments

khedoros1•8h ago
I was recently working on some x86 emulation code. This is one of the best links that I found to summarize how it works, skipping the giant Intel instruction set references.
__alexander•8h ago
It’s been a little bit since I watched it but I recall this playlist being useful/interesting

https://youtube.com/playlist?list=PLJRRppeFlVGIvcTQNISPTxvNm...

cube2222•8h ago
This is so relevant for me!

I spent some time last weekend on a small side project which involves JIT encoding ARM64 instructions to run them on Apple Silicon.

I’ve written assembly before, but encoding was always kind of black magic.

How surprised was I to learn how simple instruction encoding is on arm64! Arguably simpler than implementing encoding wasm to byte code, which I played with a while ago.

If you want to play with this, based on my very very limited experience so far, I’d suggest starting with arm - fixed length 4 byte instructions, nice register naming scheme, straightforward encoding of arguments, make it very friendly.

aengelke•7h ago
> I’d suggest starting with arm

I agree: AArch64 is a nice instruction set to learn. (Source: I taught ARMv7, AArch64, x86-64 to first-year students in the past.)

> how simple instruction encoding is on arm64

Having written encoders, decoders, and compilers for AArch64 and x86-64, I disagree. While AArch64 is, in my opinion, very well designed (also better than RISC-V), it's certainly not simple. Here's some of my favorite complexities:

- Many instructions have (sometimes very) different encodings. While x86 has a more complex encoding structure, most encodings follow the same structure and are therefore remarkably similar.

- Huge amount of instruction operand types: memory + register, memory + unsigned scaled offset, memory + signed offset, optionally with pre/post-increment, but every instruction supports a different subset; vector, vector element, vector table, vector table element; sometimes general-purpose register encodes a stack pointer, sometimes a zero register; various immediate encodings; ...

- Logical immediate encoding. Clever, but also very complex. (To be sure that I implemented the decoding correctly, I brute-force test all inputs...)

- Register constraints: MUL (by element) with 16-bit integers has a register constraint on the lowest 16 registers. CASP requires an even-numbered register. LD64B requires an even-numbered register less than 24 (it writes Xt..Xt+7).

- Much more instructions: AArch64 SIMD (even excluding SVE) has more instructions than x86 including up to AVX-512. SVE/SME takes this to another level.

timonoko•8h ago
I asked Grok to make recursive fibonacci on assembly. Worked OK but C-version was faster. I asked about it, but explanation was non-trivial and beyond comprehension.

Anyways. This means that learning ANY computer language is waste of time. Soon.

ainiriand•7h ago
You have the proof right there that it will never be a waste of time. You can't understand why the C one is faster, and someone who does will be superior to a machine because they can apply this learning, context, and much more, to solve really though problems.
PaulHoule•6h ago
If it was a real superhuman AI it would use the closed form expansion

https://en.wikipedia.org/wiki/Fibonacci_sequence

Writing Fibonacci in assembly as recursive functions using C-like calling conventions is like asking Superman to mainline Kryptonite, rather I'd expect an assembly implementation to look like a BASIC version that calculates iteratively.

d_tr•9m ago
You have a really sad view on what constitutes a waste of time.
LarsDu88•7h ago
X86 feels painful. So many instructions that wind up being decoded by physical hardware, eating up unnecessary die space and electricity, all to save ram and storage space which is now abundant and cheap compared to when x86 was designed
jeffbee•7h ago
The instruction decoder was a large part of the die in 1985. Today you won't be able to identify it in a die photo. In a world with gigantic vector register files, the area used by decode simply is not relevant. Anyway x86 does not save storage space. x86_64 code tends to be larger than armv8 code.
buildbot•6h ago
All the various bits that get tacked on for doing prefetch and branch prediction all are fairly large too, given the amount of random caching, which often is what people account for when measuring decode power usage I think. That’s going to be the case in any arch besides something like a DSP without any kind of dynamic dispatch.
jeffbee•6h ago
I think it's safe to say that a modern x86 branch predictor with its BTBs is significantly larger than the decode block.
adgjlsfhk1•6h ago
Sure, but branch prediction is (as far as we know) a necessary evil. Decode complexity simply isn't.
buildbot•3h ago
Right, but decode compexity doesn't matter because of the giant BTB and such. At least that's what I understand.
throwaway31131•3h ago
For the cores working hardest to achieve the absolute lowest cpi running user code, this is true. But these days the computers have computers in them to manage the system. And these kinds of statements aren’t necessarily true for these “inner cores” that aren’t user accessible.

“ RTKit: Apple's proprietary real-time operating system. Most of the accelerators (AGX, ANE, AOP, DCP, AVE, PMP) run RTKit on an internal processor. The string "RTKSTACKRTKSTACK" is characteristic of a firmware containing RTKit.”

https://asahilinux.org/docs/project/glossary/#r

LarsDu88•1h ago
You say its irrelevant, but that's not the same as being necessary. These decode components are simply not necessary whereas a branch prediction actually makes the processor faster
jcranmer•7h ago
This reminds me that at some point I should write up my exploration of the x86 encoding scheme, because a lot of the traditional explanations tend to be overly focused on how the 8086 would have decoded instructions, which isn't exactly the same way you look at them for a modern processors.

I actually have a tool I wrote to automatically derive on x86 decoder from observing hardware execution (based in part on sandsifter, so please don't ask me if I've heard of it), and it turns out to largely be a lot simpler than people make it out to be... if you take a step back and ignore some of what people have said about the role of various instruction prefixes (they're not prefixes, they're extra opcode bits).

(FWIW, this is fairly dated in that it doesn't cover the three-byte opcodes, or the 64-bit prefixes that were added, like the REX and VEX prefixes).

peterfirefly•5h ago
I handwrote some C code (years ago) to do parallel x86 decode in a realistic manner (= similar to how a modern CPU would do it). Was a lot easier than I feared. I didn't complete it, it was just exploratory to see what it would look like.
PaulHoule•6h ago
Here is some explanation from the source plus some code that can encode/decode x86 instructions in software
fweimer•6h ago
It would be really nice to have something like this for the x86-64 variant.
aengelke•6h ago
The same site hosts [1], but that's not nearly as nice as the 32-bit version. It's also a bit outdated.

[1]: https://www-user.tu-chemnitz.de/~heha/hs/chm/x86.chm/x64.htm

fweimer•5h ago
Thanks. Looks like the original now has some clarifications, including more detail regarding the REX prefixes: https://wiki.osdev.org/X86-64_Instruction_Encoding
non_obsolete•5h ago
sandpile.org is your friend.
1718627440•5h ago
This uses frames and the link is to the inner frame, maybe is should rather link to https://www-user.tu-chemnitz.de/~heha/hs/chm/x86.chm/ . Nevertheless, this is a nice looking website.
davikr•4h ago
x86 is an octal machine (1995): https://gist.github.com/seanjensengrey/f971c20d05d4d0efc0781...
peterfirefly•4h ago
Originally, yes. These days, not so much. It's "whatever bit confetti was necessary to squeeze in all the opcode/operand bits".
userbinator•1h ago
By "these days" you mean "since AMD messed it up".
userbinator•1h ago
Discussed here: https://news.ycombinator.com/item?id=30409100

I've memorised most of the 1st-page instructions - in octal - and it's easier than it sounds.