frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

NetBSD 10.x Kernel Math_emulation

https://mezzantrop.wordpress.com/2025/02/04/netbsd-10-x-kernel-math_emulation/
57•jaypatelani•10mo ago

Comments

__s•10mo ago
This sort of platform support is cool, but it's a sign when existing hardware is failing & the platform support is shown with emulation

If uou run ancient hardware, use ancient software. Preservation efforts in keeping an image of that ancient software available makes sense (which becomes harder as modern build systems pull from network to build)

boricj•10mo ago
Sometimes it's useful to be able to run modern software on ancient hardware.

I once made an image of a hard disk so old it wouldn't work on anything newer than a Pentium. I plugged in a USB PCI card+USB stick and booted a modern-ish at the time Debian Live CD.

It took over 5 minutes to decompress just the kernel and a hour to copy the HDD to the USB stick, but it did work. The time delta between the oldest and newest component on that system was well over 20 years, sometimes this is what you have to do with what you have on hand.

jmclnx•10mo ago
I saw this a few days ago, nice, especially since Linux is dropping support for older hardware. Even OpenBSD is slowly limiting i386 (32bit) support:

https://www.openbsd.org/i386.html

NetBSD so far has no plans to drop 32bit x86 support, and it is always nice to be able to run a modern UN*X on older hardware. IIRC, porting NetBSD to a new platform is quite easy when compared to other systems. This is due to how their HAL (hardware abstraction layer) is designed.

Today I saw in the OpenBSD @misc mailing list one of the issues they are having with i386 is rust is too large for them to compile on a i386 system. That means software packages that need rust are being removed from their packages.

This does not affect NetBSD because they allow cross-compiling of everything on their systems.

anthk•10mo ago
OpenBSD runs perfectly fine under i386, atom user there.

I don't care about Rust and it's killer app Firefox, there are tons of alternatives for i686. From Luakit to Vimb.

johnklos•10mo ago
Compiling rust on a 32 bit system is a several year old issue. Enough of us made a fuss about it that the rust build system was fixed enough that this became possible again.

If rust doesn't compile on an i386 system with 4 gigs of memory, then that's very odd. I don't know much about rust, but I was still able to get it to compile for earmv6hf on a Raspberry Pi 3 with 1 gig of RAM. Perhaps the OpenBSD people need to try some of the things we've already figured out.

https://mail-index.netbsd.org/tech-pkg/2025/05/09/msg031137....

makz•10mo ago
Cannot find the mail in @misc you are talking about
jmclnx•10mo ago
Here it is

https://marc.info/?l=openbsd-misc&m=174696055709421&w=2

anthk•10mo ago
On math FP emulation, by looking up the code it seems pretty close to the code from Robert F. Illyes for Forth 83.

Forth implementation in Eforth it's like this:

    ( FORTH-83 FLOATING POINT.
      ----------------------------------
      COPYRIGHT 1985 BY ROBERT F. ILLYES
            PO BOX 2516, STA. A
            CHAMPAIGN, IL 61820
            PHONE: 217/826-2734  )     HEX
    : ZERO  OVER 0= IF DROP 0 THEN ;
    : FNEGATE 8000 XOR ZERO ;
    : FABS  7FFF AND ;
    : NORM  >R 2DUP OR
            IF BEGIN DUP 0< NOT
               WHILE D2* R> 1- >R
               REPEAT SWAP 0< - ?DUP
               IF R> ELSE 8000 R> 1+ THEN
            ELSE R> DROP THEN ;
    : F2*   1+ ZERO ;
    : F*    ROT + 4000 - >R UM* R> NORM ;
    : FSQ   2DUP F* ;
    : F2/   1- ZERO ;
    : UM/   DUP >R UM/MOD SWAP R>
            OVER 2* 1+ U< SWAP 0< OR - ;
    : F/    ROT SWAP - 4000 + >R
            0 ROT ROT 2DUP U<
            IF   UM/ R> ZERO
            ELSE >R D2/ FABS R> UM/ R> 1+
            THEN ;
    : ALIGN 20 MIN 0 DO D2/ LOOP ;
    : RALIGN 1- ?DUP IF ALIGN THEN
            1 0 D+ D2/ ;
    : FSIGN FABS OVER 0< IF >R DNEGATE R>
            8000 OR THEN ;
    : F+    ROT 2DUP >R >R FABS SWAP FABS -
            DUP IF DUP 0<
                    IF   ROT SWAP  NEGATE
                         R> R> SWAP >R >R
                    THEN 0 SWAP RALIGN
            THEN SWAP 0 R> R@ XOR 0<
            IF   R@ 0< IF 2SWAP THEN D-
                 R> FSIGN ROT SWAP NORM
            ELSE D+ IF 1+ 2/ 8000 OR R> 1+
                    ELSE R> THEN THEN ;
    : F-    FNEGATE F+ ;
    : F<    F- 0< SWAP DROP ;
    ( FLOATING POINT INPUT/OUTPUT ) DECIMAL
    CREATE PL 3 , HERE  ,001 , ,   ,010 , ,
              ,100 , ,            1,000 , ,
            10,000 , ,          100,000 , ,
         1,000,000 , ,       10,000,000 , ,
       100,000,000 , ,    1,000,000,000 , ,
    : TENS  2* 2* LITERAL + 2@ ;     HEX
    : PLACES PL ! ;
    : SHIFTS FABS 4010 - DUP 0< NOT
            ABORT" TOO BIG" NEGATE ;
    : F#    >R PL @ TENS DROP UM* R> SHIFTS
            RALIGN PL @ ?DUP IF 0 DO # LOOP
            ". HOLD THEN #S ROT SIGN ;
    : TUCK  SWAP OVER ;
    : F.    TUCK <# F# #> TYPE SPACE ;
    : DFLOAT 4020 FSIGN NORM ;
    : F     DFLOAT POINT TENS DFLOAT F/ ;
    : FCONSTANT F 2CONSTANT ;
    : FLOAT DUP 0< DFLOAT ;
    : -+    DROP SWAP 0< IF NEGATE THEN ;
    : FIX   TUCK 0 SWAP SHIFTS RALIGN -+ ;
    : INT   TUCK 0 SWAP SHIFTS  ALIGN -+ ;
    1.      FCONSTANT ONE DECIMAL
    34.6680 FCONSTANT X1
    -57828. FCONSTANT X2
    2001.18 FCONSTANT X3
    1.4427  FCONSTANT X4
    : EXP   2DUP INT DUP >R FLOAT F-
            F2* X2 2OVER FSQ X3 F+ F/
            2OVER F2/ F-     X1 F+ F/
            ONE F+ FSQ R> + ;
    : FEXP  X4 F* EXP ;
    : GET   BL WORD DUP 1+ C@ "- = TUCK -
            0 0 ROT CONVERT DROP -+ ;
    : E     F GET >R R@ ABS 13301 4004 */MOD
            >R FLOAT 4004 FLOAT F/ EXP R> +
            R> 0< IF F/ ELSE F* THEN ;
    : E.    TUCK FABS 16384 TUCK -
            4004 13301 */MOD >R
            FLOAT 4004 FLOAT F/ EXP F*
            2DUP ONE F<
            IF 10 FLOAT F* R> 1- >R THEN
            <# R@ ABS 0 #S R> SIGN 2DROP
            "E HOLD F# #>     TYPE SPACE ;
the float abs function it's literally the same, operating over the same bits.

On the lack of floating point on some arch, Forth itself (even ANS Forth) encourages you to follow a fixed point philosophy unless it's absolutely neccesary, because you can always scale up the magnitudes on big 32 bit machines.

And Pi can be prise enough by using scaling with 'double' (for 16 bit machines) numbers:

100.000 355 113 m*/ d. 314159 ok

SudoSuccubus•10mo ago
This is the most worthless thing in the world. Why would anybody give a rat's fucking ass about a third? Not even a third rate like a 10th rate. Fucking operating system having math support. Oh wow! Congratulations! Now you can go ahead and support computers from 1985 now
2000UltraDeluxe•10mo ago
It's a hobbyist project. It doesn't need any "worth" apart from the joy the author got from it.

Kudos to the author for doing this _and_ sharing it with the world.

anthk•10mo ago
This is about software emulated FP. OFC NetBSD used the FP module in CPU's since long ago.

Also, FP is not math, it's just a kind of math. And even Forth users will use a fixed point before going into float. With 32 bits, they will just scale the point and call it a day.

And seasoned Forth users will just use quotient arithmetic and output fractional parts as two items in the stack.

Building a Procedural Hex Map with Wave Function Collapse

https://felixturner.github.io/hex-map-wfc/article/
367•imadr•7h ago•52 comments

JSLinux Now Supports x86_64

https://bellard.org/jslinux/
227•TechTechTech•7h ago•64 comments

Is legal the same as legitimate: AI reimplementation and the erosion of copyleft

https://writings.hongminhee.org/2026/03/legal-vs-legitimate/
315•dahlia•9h ago•352 comments

The first airplane fatality

https://www.amusingplanet.com/2026/03/thomas-selfridge-first-airplane-fatality.html
43•Hooke•3h ago•11 comments

Show HN: Remotely use my guitar tuner

https://realtuner.online/
19•smith-kyle•3d ago•4 comments

DARPA’s new X-76

https://www.darpa.mil/news/2026/darpa-new-x-76-speed-of-jet-freedom-of-helicopter
143•newer_vienna•7h ago•143 comments

Show HN: The Mog Programming Language

https://moglang.org
111•belisarius222•6h ago•55 comments

Oracle is building yesterday's data centers with tomorrow's debt

https://www.cnbc.com/2026/03/09/oracle-is-building-yesterdays-data-centers-with-tomorrows-debt.html
177•spenvo•3h ago•85 comments

Launch HN: Terminal Use (YC W26) – Vercel for filesystem-based agents

78•filipbalucha•7h ago•54 comments

Bluesky CEO Jay Graber is stepping down

https://bsky.social/about/blog/03-09-2026-a-new-chapter-for-bluesky
281•minimaxir•5h ago•241 comments

So you want to write an “app” (2025)

https://arcanenibble.github.io/so-you-want-to-write-an-app.html
40•jmusall•3h ago•15 comments

FontCrafter: Turn your handwriting into a real font

https://arcade.pirillo.com/fontcrafter.html
417•rendx•15h ago•133 comments

Florida judge rules red light camera tickets are unconstitutional

https://cbs12.com/news/local/florida-news-judge-rules-red-light-camera-tickets-unconstitutional
291•1970-01-01•7h ago•422 comments

Show HN: DenchClaw – Local CRM on Top of OpenClaw

https://github.com/DenchHQ/DenchClaw
81•kumar_abhirup•9h ago•81 comments

Restoring a Sun SPARCstation IPX part 1: PSU and NVRAM (2020)

https://www.rs-online.com/designspark/restoring-a-sun-sparcstation-ipx-part-1-psu-and-nvram
89•ibobev•9h ago•48 comments

Fixfest is a global gathering of repairers, tinkerers, and activists

https://fixfest.therestartproject.org/
136•robtherobber•6h ago•16 comments

An opinionated take on how to do important research that matters

https://nicholas.carlini.com/writing/2026/how-to-win-a-best-paper-award.html
71•mad•8h ago•15 comments

Notes on Baking at the South Pole

https://www.newyorker.com/culture/the-weekend-essay/the-most-beautiful-freezer-in-the-world
28•mitchbob•5h ago•8 comments

Flash media longevity testing – 6 years later

https://old.reddit.com/r/DataHoarder/comments/1q6xnun/flash_media_longevity_testing_6_years_later/
127•1970-01-01•1d ago•69 comments

Rethinking Syntax: Binding by Adjacency

https://github.com/manifold-systems/manifold/blob/master/docs/articles/binding_exprs.md
40•owlstuffing•1d ago•15 comments

Durdraw – ANSI art editor for Unix-like systems

https://durdraw.org/
35•caminanteblanco•5h ago•14 comments

Ireland shuts last coal plant, becomes 15th coal-free country in Europe (2025)

https://www.pv-magazine.com/2025/06/20/ireland-coal-free-ends-coal-power-generation-moneypoint/
843•robin_reala•14h ago•516 comments

Velxio, Arduino Emulator

https://velxio.dev/
39•dmonterocrespo•1d ago•16 comments

No leap second will be introduced at the end of June 2026

https://lists.iana.org/hyperkitty/list/tz@iana.org/thread/P6D36VZSZBUSSTSMZKFXKF4T4IXWN23P/
67•speckx•12h ago•78 comments

Reverse-engineering the UniFi inform protocol

https://tamarack.cloud/blog/reverse-engineering-unifi-inform-protocol
135•baconomatic•11h ago•59 comments

Rendezvous with Rama

https://blog.engora.com/2026/03/rendezvous-with-rama.html
81•Vermin2000•2h ago•88 comments

Algebraic topology: knots links and braids

https://aeb.win.tue.nl/at/algtop-5.html
66•marysminefnuf•10h ago•7 comments

Jolla on track to ship new phone with Sailfish OS, user-replaceable battery

https://liliputing.com/the-new-jolla-phone-with-sailfish-os-is-on-track-to-start-shipping-in-the-...
181•heresie-dabord•7h ago•117 comments

What I Always Wanted to Know about Second Class Values

https://dl.acm.org/doi/epdf/10.1145/3759427.3760373
29•todsacerdoti•7h ago•16 comments

The Cost of 'Lightweight' Frameworks: From Tauri to Native Rust

https://www.gethopp.app/blog/hate-webkit
10•birdculture•54m ago•0 comments