frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: val – An arbitrary precision calculator language

https://github.com/terror/val
34•crap•1y ago
Wrote this to learn more about the `chumsky` parser combinator library, rustyline, and the `ariadne` error reporting crate.

Such a nice DX combo for writing new languages.

Still a work in progress, but I thought I'd share :)

Comments

jasonjmcghee•1y ago
Hey nice! We have similar interests. I built something similar, but with way less calculator functionality than you did :D

But the main idea I was going for was real-time JIT evaluation with rendered errors (specifically learning / using cranelift JIT) - less to do with the calculator aspect.

I ended up choosing miette for errors.

https://github.com/jasonjmcghee/basic-treesitter-cranelift-j...

occamatl•1y ago
> sqrt(10^100)-1 -> 100000000000000000000000000000000000000000000000000

Not what I expected.

emaro•1y ago
In the readme it says it uses double precision for numbers. Also not quite whet I expected from 'arbitrary precision'.
chriswarbo•1y ago
Hmm, yeah. It cites `bc` as prior art, which is quite widely used; but another interesting arbitrary-precision calculator is spigot https://www.chiark.greenend.org.uk/~sgtatham/spigot/spigot.h...
mananaysiempre•1y ago
Also the AOSP calculator, of course[1,2,3].

[1] https://chadnauseam.com/coding/random/calculator-app

[2] https://dl.acm.org/doi/10.1145/2911981

[3] https://dl.acm.org/doi/10.1145/3385412.3386037

emmelaich•1y ago
Ivy does big numbers (not arbitrary) but does rationals too. It's an APL subset.

    0.1 + 0.2
    3/10
https://github.com/robpike/ivy
lttlrck•1y ago
the addition of astro_float fixed this.
primitivesuave•1y ago
The UI is awesome, amazing work! However, arbitrary precision implies that there is no fixed upper limit to the number of digits - simple tests like `0.1 + 0.2 == 0.3` and `2^53 == 2^53 + 1` (both produce "false") indicates you're still using IEEE 754 double precision floats.

If "arbitrary precision" is not as important to you as "high precision", a 128 bit decimal has enough precision for 99% of real-world applications.

crap•1y ago
Thanks for checking it out! Should have been more clear that this is actively being worked on. This is ultimately the goal, and I'm currently working on integrating `astro_float` as the base for numbers.
primitivesuave•1y ago
That is awesome, I look forward to following the project and hopefully contributing! I became a better Rust programmer from reading your code :)
jdhwosnhw•1y ago
Do you mean, the first returns false and the second returns true?
primitivesuave•1y ago
Ah you're right, thank you for pointing it out!

In the previous version of this comment (where I was still reading it incorrectly) I added a fun fact, that the significand of an IEEE 754 double-precision float is only allocated 52 bits, but the "hidden bit trick" provides an extra bit of precision when the normalized form starts with 1.

I_complete_me•1y ago
I wish you well. And I clicked you a star on github. Keep up the good work.
crap•1y ago
Thanks to everyone who gave feedback!

Arbitrary precision is now supported in 0.3.0 after integrating the `astro_float` (https://docs.rs/astro-float/latest/astro_float/index.html) `BigFloat` type as the base for numbers in the language.

Still working out the kinks, but its live so give it a try!

lttlrck•1y ago
This is cool.

It love to have to base conversion functions, even if it's print only. Does that fit at all?

lttlrck•1y ago
and different input base notations, 0x, o, 0b etc
crap•1y ago
This definitely fits, base conversion is on the roadmap!
librasteve•1y ago
very cool, welcome to the small club of CLI calculator authors! before I read this I knew of frink and crag (https://raku.land/zef:librasteve/App::Crag since you ask)

Crag is built on raku so has some neat tricks up its sleeve - you can see Crag of the Day to see some in action...

  crag '0.1+0.2=0.2'   #True (arbitrary precision)
  crag '₃₆123.45'      #3F.G77777  (base 36)
  crag 'e ** (i * π) =~= -1'   #True  (math symbols, complex numbers)
  crag '0rMCMXLIV'     #1944 (Roman numerals)
  crag '^<௪௨ mph>'     #42mph  (Unicode and units)
hee hee
johannesrexx•1y ago
Rewrite it like so

> 1/10 + 2/10 == 3/10 true >

Show HN: Mercek – A Desktop IDE for AWS ECS

https://www.mercek.dev/
33•utibeumanah•6h ago•7 comments

Show HN: Uruky (EU-based Kagi alternative) now has Image Search and URL Rewrites

https://uruky.com/?il=en
213•BrunoBernardino•18h ago•195 comments

Show HN: Hitoku Draft – Context aware local assistant

https://hitoku.me/draft/
16•lostathome•9h ago•2 comments

Show HN: Prela – Purely Algebraic Relation Combinators

https://github.com/remysucre/prela
63•remywang•3d ago•13 comments

Show HN: Cost.dev (YC W21) – making agents cost-aware and cheaper to call

https://cost.dev/
29•akh•15h ago•15 comments

Show HN: I embedded 685M public texts in 32 minutes (on 8x A100, Rust, TensorRT)

https://github.com/Artain-AI/ignite-ms
4•ddayanov•12h ago•0 comments

Show HN: Formally verified polygon intersection – Opus 4.8 oneshots, prev failed

https://github.com/schildep/verified-polygon-intersection
36•permute•5h ago•5 comments

Show HN: NoiR Code – because QR sounds similar to "noir"

https://noir-code.suncake.xyz/
6•Sunkek•1d ago•2 comments

Show HN: ControllerTest-test gamepads,stick drift and polling rate by browser

https://controllertestonline.com/
3•zylics•3h ago•0 comments

Show HN: Boxes.dev: ditch localhost; run Claude Code and Codex in the cloud

https://boxes.dev
85•nab•12h ago•63 comments

Show HN: Using Haskell to play music on 3D printer motors (2020)

https://lucasoshiro.github.io/software-en/2020-07-31-music_gcode/
8•lucasoshiro•7h ago•2 comments

Show HN: Papernews – self-hosted daily newspaper PDF for your reMarkable

https://github.com/marcj/papernews
3•bourbonproof•3h ago•1 comments

Show HN: Edsger – A handwritten Clojure REPL for the reMarkable 2

https://handwritten.danieljanus.pl/2026-06-01-edsger.html
253•nathell•2d ago•34 comments

Show HN: I reverse-engineered the world maps of Test Drive III (1990 DOS game)

https://github.com/s-macke/Test-Drive-3-Maps
213•s-macke•4d ago•55 comments

Show HN: A native port of Skate 3 for Windows & Linux via static recompilation

https://github.com/mchughalex/skate3recomp
4•turingfeel•5h ago•0 comments

Show HN: Nutrepedia – Nutrition info in 29 locales built with Clojure and Htmx

https://nutrepedia.com/en-us/
129•llovan•1d ago•28 comments

Show HN: FFmpeg WebCLI – Full FFmpeg in Browser, Offline PWA, No Uploads(WASM)

https://github.com/tejaswigowda/ffmpeg-webCLI
76•tejaswigowda•6h ago•23 comments

Show HN: Bot or Not – Spot AI-generated randomness

https://play-bot-or-not.vercel.app/
4•EvanZhouDev•7h ago•0 comments

Show HN: Eyeball

https://eyeball.rory.codes/
288•mrroryflint•2d ago•86 comments

Show HN: Mnemo – local-first AI memory layer for any LLM (Rust, SQLite,petgraph)

https://github.com/zaydmulani09/mnemo
54•zaydmulani•1d ago•25 comments

Show HN: Digger Solo – Local AI File Explorer

https://solo.digger.lol
3•sean_pedersen•8h ago•0 comments

Show HN: A simple bookmark manager for Mac and iOS

https://bendansby.com/apps/markwell.html
4•webwielder2•2h ago•0 comments

Show HN: Vlags, small vector flags. Less than 900 bytes each

https://vlags.com/
3•ryancanzo•8h ago•0 comments

Show HN: Bio Glyph – Turn Your Face into a One-Line Drawing

https://bio.bairui.dev/
19•subairui•1d ago•15 comments

Show HN: Live breath detection and biofeedback from a phone microphone

https://github.com/shiihaa-app/shiihaa-breath-detection
64•felixzeller•2d ago•25 comments

Show HN: Rscrypto, pure-Rust crypto with industry leading public benches

https://github.com/loadingalias/rscrypto
32•LoadingALIAS•1d ago•14 comments

Show HN: Ideogram 4.0 – open-weight 9.3B text-to-image model

https://github.com/ideogram-oss/ideogram4
44•pigcat•1d ago•10 comments

Show HN: Anthrosevka Mono, an Iosevka Build Inspired by Anthropic Mono

https://github.com/nanxstats/anthrosevka
2•road2stat•11h ago•0 comments

Show HN: Bit-banged 10BASE-T Ethernet and Wi-Fi router in Rust on the Pico 2 W

https://github.com/mattdeeds/pico-10base-t-rs
5•mdeeds•12h ago•0 comments

Show HN: AgentKitten: Swift package for provider-agnostic AI agents

https://github.com/fbeeper/agentkitten
10•fbeeper•12h ago•1 comments