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•10mo 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•10mo 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•10mo ago
> sqrt(10^100)-1 -> 100000000000000000000000000000000000000000000000000

Not what I expected.

emaro•10mo ago
In the readme it says it uses double precision for numbers. Also not quite whet I expected from 'arbitrary precision'.
chriswarbo•10mo 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•10mo 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•10mo 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•10mo ago
the addition of astro_float fixed this.
primitivesuave•10mo 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•10mo 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•10mo 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•10mo ago
Do you mean, the first returns false and the second returns true?
primitivesuave•10mo 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.

johannesrexx•10mo ago
Rewrite it like so

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

I_complete_me•10mo ago
I wish you well. And I clicked you a star on github. Keep up the good work.
crap•10mo 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•10mo ago
This is cool.

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

lttlrck•10mo ago
and different input base notations, 0x, o, 0b etc
crap•10mo ago
This definitely fits, base conversion is on the roadmap!
librasteve•10mo 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

Show HN: Free alternative to Wispr Flow, Superwhisper, and Monologue

https://github.com/zachlatta/freeflow
175•zachlatta•11h ago•81 comments

Show HN: I built a tool to un-dumb Claude Code's CLI output (Local Log Viewer)

https://github.com/matt1398/claude-devtools
5•matt1398•3d ago•0 comments

Show HN: Scanned 1927-1945 Daily USFS Work Diary

https://forestrydiary.com/
90•dogline•8h ago•16 comments

Show HN: Glitchy camera – a circuit-bent camera simulator in the browser

https://glitchycam.com
4•elayabharath•20h ago•0 comments

Show HN: Wildex – Pokémon Go for real wildlife

https://apps.apple.com/us/app/wildex-identify-plants-animals/id6748092158
76•AnujNayyar•11h ago•51 comments

Show HN: Jemini – Gemini for the Epstein Files

https://jmail.world/jemini
348•dvrp•1d ago•68 comments

Show HN: Maths, CS and AI Compendium

https://github.com/HenryNdubuaku/maths-cs-ai-compendium
73•HenryNdubuaku•17h ago•17 comments

Show HN: Klaw.sh – Kubernetes for AI agents

https://github.com/klawsh/klaw.sh
57•eftalyurtseven•1d ago•44 comments

Show HN: 2D Coulomb Gas Simulator

https://simonhalvdansson.github.io/2D-Coulomb-Gas-Tools/index_gpu.html
37•swesnow•13h ago•5 comments

Show HN: Simple org-mode web adapter

https://github.com/SpaceTurth/Org-Web-Adapter
59•turth•16h ago•6 comments

Show HN: Script to check if Notepad++ is backdoored by Lotus Blossom APT

https://github.com/nHunter0/Notepad-vulnerability-checker
4•10000000001•4h ago•0 comments

Show HN: I graded 234 stocks on free cash flow (not earnings)

https://aureus-swart.vercel.app
15•babylonprince•6h ago•9 comments

Show HN: Nerve: Stitches all your data sources into one mega-API

https://playground.get-nerve.com/
13•mprast•2d ago•3 comments

Show HN: OpenEntropy – 47 hardware entropy sources from your computer's physics

https://github.com/amenti-labs/openentropy
3•amentiflow•6h ago•0 comments

Show HN: Microgpt is a GPT you can visualize in the browser

https://microgpt.boratto.ca
271•b44•1d ago•25 comments

Show HN: VOOG – Moog-style polyphonic synthesizer in Python with tkinter GUI

https://github.com/gpasquero/voog
94•gpasquero•1d ago•39 comments

Show HN: JeffTube

https://jmail.world/jefftube
38•dvrp•1d ago•3 comments

Show HN: Scrappy – Open-source browser scraper written in Go

https://github.com/sunergos-ro/scrappy
8•RaulOnRails•11h ago•1 comments

Show HN: Pangolin: Open-source identity-based VPN (Twingate/Zscaler alternative)

https://github.com/fosrl/pangolin
76•miloschwartz•1d ago•24 comments

Show HN: WowAI.pet – Generate cinematic videos from blurry pet photos

https://wowai.pet/
2•zy5a59•9h ago•0 comments

Show HN: Knock-Knock.net – Visualizing the bots knocking on my server's door

https://knock-knock.net
217•djkurlander•1d ago•91 comments

Show HN: Deep Research for Flights

https://flightdeepresearch.com/
9•aiddun•9h ago•4 comments

Show HN: Interactive Chord Finder, Free Piano Scale and Chord Explorer

https://interactivechordfinder.com
4•magikMaker•14h ago•1 comments

Show HN: Lightwave – Real-time notes app, 3.5 years of hand-rolled JavaScript

48•jv22222•1d ago•33 comments

Show HN: ZIT: Zooplankton Image Tool for 2d rendering of biological locomotion

https://github.com/juleshenry/zooplankton-image-tool
2•juleshenry•10h ago•0 comments

Show HN: Vocalinux // 100% offline voice typing for Linux

https://vocalinux.com/
3•jatinkrmalik•10h ago•0 comments

Show HN: Scene It SF – Hollywood thinks San Francisco is 3 blocks wide

2•distribution14•11h ago•0 comments

Show HN: Your binary is no longer safe

https://reorchestrate.com/posts/your-binary-is-no-longer-safe/
3•seddonm1•11h ago•0 comments

Show HN: Telescope now queries Kubernetes logs directly

https://github.com/iamtelescope/telescope/releases/tag/v0.0.24
7•r0b3r4•12h ago•0 comments

Show HN: ViewLint – Lint UI, Not Code

https://github.com/EvanZhouDev/viewlint
3•EvanZhouDev•12h ago•0 comments