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

Not what I expected.

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

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

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

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

lttlrck•9mo ago
and different input base notations, 0x, o, 0b etc
crap•9mo ago
This definitely fits, base conversion is on the roadmap!
librasteve•9mo 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: Ocrbase – pdf → .md/.json document OCR and structured extraction API

https://github.com/majcheradam/ocrbase
55•adammajcher•5h ago•14 comments

Show HN: wxpath – Declarative web crawling in XPath

https://github.com/rodricios/wxpath
3•rodricios•6d ago•0 comments

Show HN: Trinity – a native macOS Neovim app with Finder-style projects

https://scopecreeplabs.com/trinity/
2•kidproquo•32m ago•0 comments

Show HN: I was burnt out and failing so I built AI that give shit about me

2•kaufy•1h ago•2 comments

Show HN: Loci – Visual knowledge map with auto-generated flashcards and FSRS

https://github.com/lmanhes/loci
3•omnitrol•1h ago•0 comments

Show HN: Agent Skills – 1k curated Claude Code skills from 60k+ GitHub skills

https://agent-skills.cc/
2•lixiaofei•2h ago•1 comments

Show HN: Picocode – a Rust based tiny Claude Code clone for any LLM, for fun

https://github.com/jondot/picocode
2•jondot•2h ago•0 comments

Show HN: Preloop – An MCP proxy for human-in-the-loop tool approvals

https://preloop.ai
3•yconst•2h ago•1 comments

Show HN: www.kitty.cards – Make your own Apple Wallet cards

https://www.kitty.cards
4•xenodium•2h ago•2 comments

Show HN: Artificial Ivy in the Browser

https://da.nmcardle.com/grow
91•dnmc•15h ago•16 comments

Show HN: Orcheo – a Python n8n‑like workflow engine built for AI agents

https://github.com/ShaojieJiang/orcheo
2•NeuralNotwork•3h ago•0 comments

Show HN: An interactive physics simulator with 1000’s of balls, in your terminal

https://github.com/minimaxir/ballin
67•minimaxir•1d ago•14 comments

Show HN: Claude Skill Editor

https://github.com/mtct/skill-editor
2•mtct88•3h ago•0 comments

Show HN: APIsec MCP Audit – Audit what your AI agents can access

https://github.com/apisec-inc/mcp-audit
2•rajaramr7•3h ago•0 comments

Show HN: Subth.ink – write something and see how many others wrote the same

https://subth.ink/
77•sonnig•23h ago•43 comments

Show HN: Mother MCP – Manage your Agent Skills like a boss-Auto provision skills

https://github.com/dmgrok/mcp_mother_skills
2•DavidGraca•3h ago•0 comments

Show HN: Pipenet – A Modern Alternative to Localtunnel

https://pipenet.dev/
105•punkpeye•1d ago•19 comments

Show HN: E80: an 8-bit CPU in structural VHDL

https://github.com/Stokpan/E80
29•Axonis•2d ago•2 comments

Show HN: repere – Local-first SQL data explorer using DuckDB WASM

https://repere.ai
2•mattismegevand•5h ago•0 comments

Show HN: Munimet.ro – ML-based status page for the local subways in SF

https://munimet.ro/
12•MrEricSir•4d ago•6 comments

Show HN: A creative coding library for making art with desktop windows

https://github.com/willmeyers/window-art
34•willmeyers•22h ago•4 comments

Show HN: Movieagent.io – An agent for movie recommendations (with couple mode)

https://movieagent.io
19•roknovosel•23h ago•5 comments

Show HN: Lume 0.2 – Build and Run macOS VMs with unattended setup

https://cua.ai/docs/lume/guide/getting-started/introduction
146•frabonacci•2d ago•41 comments

Show HN: LangGraph architecture that scales (hexagonal pattern, 110 tests)

https://github.com/cleverhoods/sagecompass
3•cleverhoods•10h ago•0 comments

Show HN: AWS-doctor – A terminal-based AWS health check and cost optimizer in Go

https://github.com/elC0mpa/aws-doctor
51•elC0mpa•1d ago•21 comments

Show HN: Beats, a web-based drum machine

https://beats.lasagna.pizza
152•kinduff•1d ago•48 comments

Show HN: ChunkHound, a local-first tool for understanding large codebases

https://github.com/chunkhound/chunkhound
113•NadavBenItzhak•2d ago•30 comments

Show HN: Figma-use – CLI to control Figma for AI agents

https://github.com/dannote/figma-use
112•dannote•2d ago•37 comments

Show HN: Streaming gigabyte medical images from S3 without downloading them

https://github.com/PABannier/WSIStreamer
161•el_pa_b•3d ago•48 comments

Show HN: Opal Editor, free Obsidian alternative for markdown and site publishing

https://github.com/rbbydotdev/opal
35•rbbydotdev•2d ago•6 comments