frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

JVM exceptions are weird: a decompiler perspective

https://purplesyringa.moe/blog/jvm-exceptions-are-weird-a-decompiler-perspective/
66•vrnvu•5d ago

Comments

pron•2h ago
Nice post!

A minor point:

> monitors are incompatible with coroutines

If by coroutines the author meant virtual threads, then monitors have always been compatible with virtual threads (which have always needed to adhere to the Thread specification). Monitors could, for a short while, degrade the scalability of virtual threads (and in some situations even lead to deadlocks), but that has since been resolved in JDK 24 (https://openjdk.org/jeps/491).

PhilipRoman•1h ago
I think it's coroutines as in other JVM languages like Kotlin, where yielding may be implemented internally as return (due to lack of native coroutine support in JVM).

Holding a lock/monitor across a yield is a bad idea for other reasons, so it shouldn't be a big deal in practice.

marginalia_nu•2h ago
On the subject

  void foo() {
    for (;;) {
      try { return; } 
      finally { continue; }
    }
  }
is my favorite cursed Java exceptions construct.
cerved•1h ago
To anyone wondering, I believe it's cursed because the finally continue blocks hijacks the try return, so the for loop never returns
bear8642•1h ago
This is exceedingly nasty. Well Done!
kfuse•1h ago
That's not just Java and there is nothing really cursed about it: throwing in a finally block is the most common example. Jump statements are no different, you can't just ignore them when they override the return or throw statements.
ptx•58m ago
Python has the same construct but is removing it, starting with a warning in version 3.14: https://peps.python.org/pep-0765/
ziml77•49m ago
Just tested that in C# and it seems they made the smart decision to not allow shenanigans like that in a finally block:

CS0157 Control cannot leave the body of a finally clause

Joker_vD•1h ago
Doesn't JRE has some limited form of decompilation in its JIT, as a pre-pass? IIRC, it reconstructs the basic blocks and CFG from the bytecode and does some minor optimizations before going on to regalloc and codegen.
monocasa•57m ago
It's hard to call it decompilation as opposed to just regular compilation though.
immibis•1h ago
Older versions of Java did try to have only one copy of the finally block code. To implement this, there were "jsr" and "ret" instructions, which allowed a method (a subroutine) to contain subroutines inside it. This even curseder implementation of finally is prohibited starting from version 51 class files (Java 7).

Work After Work: Notes from an Unemployed New Grad Watching the Job Market Break

https://urlahmed.com/2025/11/05/work-after-work-notes-from-an-unemployed-new-grad-watching-the-jo...
63•linkregister•35m ago•12 comments

Marble Fountain

https://willmorrison.net/posts/marble-fountain/
480•chris_overseas•8h ago•54 comments

Ask HN: What Are You Working On? (Nov 2025)

112•david927•4h ago•340 comments

JVM exceptions are weird: a decompiler perspective

https://purplesyringa.moe/blog/jvm-exceptions-are-weird-a-decompiler-perspective/
67•vrnvu•5d ago•11 comments

Montana becomes first state to enshrine 'right to compute' into law

https://montananewsroom.com/montana-becomes-first-state-to-enshrine-right-to-compute-into-law/
331•bilsbie•12h ago•157 comments

Drilling down on Uncle Sam's proposed TP-Link ban

https://krebsonsecurity.com/2025/11/drilling-down-on-uncle-sams-proposed-tp-link-ban/
110•todsacerdoti•7h ago•111 comments

Building a 2.5kWh battery from disposable vapes to power my workshop [video]

https://www.youtube.com/watch?v=dy-wFixuRVU
114•rsanek•6d ago•69 comments

The Manuscripts of Edsger W. Dijkstra

https://www.cs.utexas.edu/~EWD/
181•nathan-barry•9h ago•69 comments

The Principles of Diffusion Models

https://arxiv.org/abs/2510.21890
130•Anon84•9h ago•12 comments

The Sega Master System

https://bumbershootsoft.wordpress.com/2025/11/08/the-sega-master-system/
53•ibobev•6h ago•14 comments

Bumble Berry Pi – A Cheap DIY Raspberry Pi Handheld Cyberdeck

https://github.com/samcervantes/bumble-berry-pi
99•MakerSam•8h ago•19 comments

Reviving Classic Unix Games: A 20-Year Journey Through Software Archaeology

https://vejeta.com/reviving-classic-unix-games-a-20-year-journey-through-software-archaeology/
133•mwheeler•12h ago•51 comments

CHIP8 – writing emulator, assembler, example game and VHDL hardware impl

http://blog.dominikrudnik.pl/chip8-emulator-assembler-game-vhdl
51•qikcik•6d ago•3 comments

Zensical – A modern static site generator built by the Material for MkDocs team

https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/
123•japhyr•12h ago•40 comments

If You're Not Active, You're Sick – You Just Don't Know It Yet

https://howardluksmd.substack.com/p/if-youre-not-active-youre-sick-you
57•rzk•3h ago•16 comments

The Computer Church – Pennsylvania Computer and Technology Museum

https://www.thecomputerchurch.org/
37•gregsadetsky•5h ago•7 comments

Sued by Nintendo

https://www.suedbynintendo.com/
24•notepad0x90•1h ago•1 comments

Visualize FastAPI endpoints with FastAPI-Voyager

https://www.newsyeah.fun/voyager/
109•tank-34•12h ago•18 comments

Email verification protocol

https://github.com/WICG/email-verification-protocol
128•sgoto•1w ago•92 comments

Today I Learned: Binfmt_misc

https://dfir.ch/posts/today_i_learned_binfmt_misc/
4•malmoeb•6d ago•1 comments

Using bubblewrap to add sandboxing to NetBSD

https://blog.netbsd.org/tnf/entry/gsoc2025_bubblewrap_sandboxing
77•jaypatelani•12h ago•22 comments

When Your Hash Becomes a String: Hunting Ruby's Million-to-One Memory Bug

https://mensfeld.pl/2025/11/ruby-ffi-gc-bug-hash-becomes-string/
85•phmx•5d ago•43 comments

Solving Every Sudoku Puzzle (2006)

https://norvig.com/sudoku.html
29•djoldman•5d ago•6 comments

The overengineered solution to my pigeon problem (2022)

https://maxnagy.com/posts/pigeons/
73•cyb0rg0•1w ago•54 comments

Python Software Foundation gets a donor surge after rejecting federal grant

https://thenewstack.io/psf-gets-a-donor-surge-after-rejecting-anti-dei-federal-grant/
170•MilnerRoute•7h ago•102 comments

Ironclad – formally verified, real-time capable, Unix-like OS kernel

https://ironclad-os.org/
357•vitalnodo•1d ago•118 comments

AI isn't replacing jobs. AI spending is

https://www.fastcompany.com/91435192/chatgpt-llm-openai-jobs-amazon
580•felineflock•9h ago•415 comments

Startups are pushing the boundaries of reproductive genetics

https://www.wsj.com/tech/biotech/genetically-engineered-babies-tech-billionaires-6779efc8
75•nradov•10h ago•115 comments

I Am Mark Zuckerberg

https://iammarkzuckerberg.com/
1117•jb1991•19h ago•388 comments

Microsoft forms superintelligence team under AI head Mustafa Suleyman

https://www.cnbc.com/2025/11/06/microsoft-forms-superintelligence-team-under-ai-head-mustafa-sule...
5•gmays•47m ago•0 comments