Hacker News

New stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. AI companies sued for "collusion" to slow down(bloomberglaw.com ↗)
    discuss
  2. What happened to the front end while you weren't watching(davidpoblador.com ↗)
    discuss
  3. Sweden, Germany deploy 1,500 troops to Gotland in Baltic exercise(euractiv.com ↗)
    discuss
  4. TeraPHY Optical I/O Chiplet (8 Tbps bi-directional bandwidth, 10ns latency)(ayarlabs.com ↗)
    discuss
  5. Is modern consumer technology less interesting(codeutopia.net ↗)
    discuss
  6. The first sub-millisecond router to execute trades with zero native balance(rhopool.com ↗)
    discuss
  7. Firefox 156 arrives with a forest of forks in its wake(theregister.com ↗)
    1comments
  8. Bull Beats Out HPE for Next-Gen Lumi AI Supercomputer(nextplatform.com ↗)
    discuss
  9. U.S. House Votes to Make Am Radio Standard in New Cars(roadandtrack.com ↗)
    discuss
  10. Typst Makes Big Strides(lwn.net ↗)
    discuss
  11. Inside the suddenly explosive world of AI safety(theverge.com ↗)
    discuss
  12. Programmable Photonic Circuits: Flexible light manipulation on IC's (2020) [pdf](intec.ugent.be ↗)
    discuss
  13. The Pain Axis: LLMs Represent Self-Directed Harm and Act to Relieve It(arxiv.org ↗)
    discuss
  14. Another Instinct Article(jamesin.substack.com ↗)
    discuss
  15. My Productivity System in 2026(nunodonato.com ↗)
    1comments
  16. Origami Artist Spends 24 Hours Folding a Working-Looking Typewriter from 1 Sheet(thatericalper.com ↗)
    discuss
  17. Shellit – Open-source SSH client with self-hosted E2EE sync and MCP(github.com/kobaltgit ↗)
    discuss
  18. Show HN: Kobblestone – Minecraft on Kubernetes(github.com/kobblestoneio ↗)
    discuss
  19. Show HN: AliasFleet – Email aliases with in-app sending. No reverse-alias hassle(aliasfleet.com ↗)
    discuss
  20. How to Conduct Effective Premortems(leonlins.com ↗)
    discuss
  21. Why do I feel guilty about thinking?(domelian.substack.com ↗)
    1comments
  22. 6502 Is a Good Starting Point for Beginning Assembly Programming(nemanjatrifunovic.substack.com ↗)
    1comments
  23. Human brain is two separate organs(independent.co.uk ↗)
    discuss
  24. Don't treat surface-level AI metaphors as if they describe fundamental reality(andymasley.com ↗)
    discuss
  25. Is Jev Confident?(bernoulli.app ↗)
    2comments
  26. FreeBSD on Aoostar WTR Pro NAS(tumfatig.net ↗)
    discuss
  27. Panting email: Norway's bottle-deposit system against spam(danielfava.com ↗)
    1comments
  28. Bill Gurley: Searching for Feynman [video](youtube.com ↗)
    discuss
  29. Next-Token Predictor Is an AI's Job, Not Its Species(astralcodexten.com ↗)
    discuss
  30. Splash Engine – The Fastest Local Qwen3.8 on Apple Silicon(lmstudio.ai ↗)
    discuss

SDCC – Small Device C Compiler

96 pointsby 9h agosdcc.sourceforge.net
20 comments
9h agoHN ↗

TIL about Dallas Semiconductor from this page.

Love Silicon Prairie lore.

9h agoHN ↗

SDCC has the best OSS 8051 compiler. It is buggy as hell, but it is free. Sometimes that is good enough.

8h agoHN ↗

I used it for some toy projects never ran into "bugs" as in this is just broken, but it's quirky for sure.

7h agoHN ↗

when you have large code, bugs will find you. for example two uint16 vars globally declared one after another. adding them together to each other will produce an access to garbage memory after 5-6 additions. dumb code but a simple repro. i ran into its bug when working on eInk price tags a while back.

7h agoHN ↗

As a student, 20 years ago, I felt like I was going crazy when using SDCC for pic16. Being new to microcontrollers and C, SDCC seemed cursed - even simple 'blink LED' test cases pseudo-randomly worked or didn't. It turned out that the compiler optimized away some 'empty' loops a little bit too aggressively without realizing that these loops were setting output pins. These bugs have long been fixed but still live on in my long-term memory.

6h agoHN ↗

I still run across this to this day with GCC and Cortex-M code. The optimizer will occasionally decide to blow away loops that are clearly doing something.

6h agoHN ↗

Please file a bug report, if you haven't done so.

6h agoHN ↗

that the compiler optimized away some 'empty' loops a little bit too aggressively without realizing that these loops were setting output pins.

Doesn't sounds like a bug in the compiler, sounds more like `volatile` was not used (unless, of course, `volatile` was not being honoured).

1h agoHN ↗

Slightly larger switch() statement and you'll run into peephole optimizer just eating away at jump target instructions without telling the jumper to adapt the destination address for the case. Of course the result is completely random code execution. Things like that. :)

But I wrote non-trivial code with sdcc regardless. My favorite 8051 targets are FX2LP USB boards from aliexpress. :)

6h agoHN ↗

What a coincidence, just yesterday I asked an LLM to generate a C compiler for the 8051 because SDCC's output was not optimized. Within an 1.5 hour it was correctly compiling my project at 60% of the size of what SDCC generates. One or 2 quota refreshes later it passed the SDCC test suite and optimized soft floats.

https://github.com/jyaif/cc51

6h agoHN ↗

I assume you're running that test suite using a 3rd party 8051 emulator to avoid the potential for common-mode errors in both your compiler and emulator resulting in false confidence the compiler's correctness?

two simulators used for testing, sim51 (a plain 8051) and minitel_sim

Narrator: No, he was not.

5h agoHN ↗

"it runs on my device" is my criteria of success here

4h agoHN ↗

I used sdcc for an 8051 based commercial project a while back. I seem to remember spending more time reading the assembly to figure out workarounds for the compiler than actually writing C code!

Whereas sdcc works brilliantly for z80 lineage processors. I wrote quite a lot of C for Gameboy recently and didn't find a single compiler bug in sdcc which revised my opinion of it upwards greatly.

8h agoHN ↗

Has worked well enough for me on 8051 and stm8

7h agoHN ↗

SDCC has been a nice resource for a variety of MCUs. I wish it had support for some of the 8-bit PIC chips like the PIC10 and PIC12... maybe one day!

7h agoHN ↗

If it has not to be SDCC, Mikroe compilers have support for them across C, BASIC and Pascal compilers, if I am not mistaken.

7h agoHN ↗

The PIC compiler options were never standards compliant up until around when Microchip purchased AVR. There are great chips now that have free gcc support, reasonable power draw, and 32bit float support (ATSAM3X8E current prices are not worth it in many cases.)

PIC does still have a few key use-cases, but most people will hit the stack depth limits pretty quickly in C. A pic12 Assembly project is fun, but the limitations cut deep these days.

STM32/ESP32/RP2350 or nRF for low power stuff are far less effort these days, and give much better value. =3

1h agoHN ↗

Microchip XC compiler has support for those. They recently dropped the licensing requirement, so while it's not FOSS, it's freeware now, without limits.

3h agoHN ↗

I have fond memories of using it for PIC16 as a teenager, ~25 years ago. It was a huge step up from writing assembly. My parents bought me a Microchip PICSTART Plus, but refused to pay for a Hitech-C compiler license. :)

2h agoHN ↗

I use SDCC for 8051.

I have started to notice that programming with an LLM it seems to make little difference if I get it to write the entire program in assembly language rather than c.