HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
JuliaSymbolics
Metatheory.jl
Julia2021–2021
JuliaSymbolics / Metatheory.jl

Metatheory.jl

Makes Julia reason with equations. General purpose metaprogramming, symbolic computation and algebraic equational reasoning library for the Julia programming language: E-Graphs & equality saturation, term rewriting and more.

2Distinct people
3Mentions
0Explicit recommenders
406GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Makes Julia reason with equations. General purpose metaprogramming, symbolic computation and algebraic equational reasoning library for the Julia programming language: E-Graphs & equality saturation, term rewriting and more.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week3 dated mentions

Observed mentions: 2021-06-06 01:39:34 UTC to 2021-11-17 21:08:24 UTC. Weeks start Monday, UTC.

012021-05-31 00:00:00 UTC to 2021-06-07 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMay 312021-06-07 00:00:00 UTC to 2021-06-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-06-14 00:00:00 UTC to 2021-06-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-06-21 00:00:00 UTC to 2021-06-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-06-28 00:00:00 UTC to 2021-07-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-07-05 00:00:00 UTC to 2021-07-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-07-12 00:00:00 UTC to 2021-07-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-07-19 00:00:00 UTC to 2021-07-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-07-26 00:00:00 UTC to 2021-08-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-08-02 00:00:00 UTC to 2021-08-09 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-08-09 00:00:00 UTC to 2021-08-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-08-16 00:00:00 UTC to 2021-08-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-08-23 00:00:00 UTC to 2021-08-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsAug 232021-08-30 00:00:00 UTC to 2021-09-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-09-06 00:00:00 UTC to 2021-09-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-09-13 00:00:00 UTC to 2021-09-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-09-20 00:00:00 UTC to 2021-09-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-09-27 00:00:00 UTC to 2021-10-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-10-04 00:00:00 UTC to 2021-10-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-10-11 00:00:00 UTC to 2021-10-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-10-18 00:00:00 UTC to 2021-10-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-10-25 00:00:00 UTC to 2021-11-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-11-01 00:00:00 UTC to 2021-11-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-11-08 00:00:00 UTC to 2021-11-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-11-15 00:00:00 UTC to 2021-11-22 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsNov 15

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
May 312021-05-31 00:00:00 UTC2021-06-07 00:00:00 UTC101
Jun 72021-06-07 00:00:00 UTC2021-06-14 00:00:00 UTC000
Jun 142021-06-14 00:00:00 UTC2021-06-21 00:00:00 UTC000
Jun 212021-06-21 00:00:00 UTC2021-06-28 00:00:00 UTC000
Jun 282021-06-28 00:00:00 UTC2021-07-05 00:00:00 UTC000
Jul 52021-07-05 00:00:00 UTC2021-07-12 00:00:00 UTC000
Jul 122021-07-12 00:00:00 UTC2021-07-19 00:00:00 UTC000
Jul 192021-07-19 00:00:00 UTC2021-07-26 00:00:00 UTC000
Jul 262021-07-26 00:00:00 UTC2021-08-02 00:00:00 UTC000
Aug 22021-08-02 00:00:00 UTC2021-08-09 00:00:00 UTC101
Aug 92021-08-09 00:00:00 UTC2021-08-16 00:00:00 UTC000
Aug 162021-08-16 00:00:00 UTC2021-08-23 00:00:00 UTC000
Aug 232021-08-23 00:00:00 UTC2021-08-30 00:00:00 UTC000
Aug 302021-08-30 00:00:00 UTC2021-09-06 00:00:00 UTC000
Sep 62021-09-06 00:00:00 UTC2021-09-13 00:00:00 UTC000
Sep 132021-09-13 00:00:00 UTC2021-09-20 00:00:00 UTC000
Sep 202021-09-20 00:00:00 UTC2021-09-27 00:00:00 UTC000
Sep 272021-09-27 00:00:00 UTC2021-10-04 00:00:00 UTC000
Oct 42021-10-04 00:00:00 UTC2021-10-11 00:00:00 UTC000
Oct 112021-10-11 00:00:00 UTC2021-10-18 00:00:00 UTC000
Oct 182021-10-18 00:00:00 UTC2021-10-25 00:00:00 UTC000
Oct 252021-10-25 00:00:00 UTC2021-11-01 00:00:00 UTC000
Nov 12021-11-01 00:00:00 UTC2021-11-08 00:00:00 UTC000
Nov 82021-11-08 00:00:00 UTC2021-11-15 00:00:00 UTC000
Nov 152021-11-15 00:00:00 UTC2021-11-22 00:00:00 UTC101

What Hacker News says

3 sources
Well IMO it can definitely be rewritten in Julia, and to an easier degree than python since Julia allows hooking into the compiler pipeline at many areas of the stack. It's lispy an built from the ground up for codegen, with libraries like (https://github.com/JuliaSymbolics/Metatheory.jl) that provide high level pattern matching with e-graphs. The question is whether it's worth your time to learn Julia to do so. You could also do it at the LLVM level: https://github.com/JuliaComputingOSS/llvm-cbe One cool use case is in https://github.com/JuliaLinearAlgebra/Octavian.jl which relies on loopvectorization.jl to do transforms on Julia AST beyond what LLVM does. Because of that, Octavian.jl. a pure julia linalg library, beats openblas on many benchmarks
In Show HN: Prometeo – a Python-to-C transpiler for high-performance computing
Some specific steps that will push it past jax/pytorch for chunky array heavy GPU code (can already beat or meet openblas/MKL for kernels written in scalar form). 1. Better compile time memory management (https://github.com/aviatesk/EscapeAnalysis.jl) 2. Linalg passes built on generic composable compiler ecosystem: https://youtu.be/IlFVwabDh6Q?t=818 3. Metatheory.jl egraph based symbolic optimization interleaved with the abstract interpreter: https://github.com/0x0f0f0f/Metatheory.jl 4. Partial eval mixed concrete and abstract interpretation 5. Compiler based autoparallel with dagger.jl 6. New compiler integrated AD (as a package) that isn't based on an accidental lispy compiler hack like zygote: https://github.com/JuliaDiff/Diffractor.jl 7. Changes to array semantics which will include generic immutability/ ownership concepts. And many m
Read the rest
ore. The key is that all the initial groundwork that traded off fundamental flexibility for specific speed will then feed back into making the ML usecase faster than if it had focused on that initially. People can do all kinds of crazy yet composable things, in pure Julia without modifying the base compiler. Bonus: Being able to modify the type lattice to track custom program properties. This means that you don't need to be stuck into global tradeoffs with a static type system and can do things like opt in track array shapes at compile time per module: https://twitter.com/KenoFischer/status/1407810981338796035 Other packages like for quantum computing are planning to do their own analyses. It's generic and the usecases and compositions aren't frozen at the outset. (unlike for example, the swift tensors fitting perfectly proposal).
In Growing open source from Torch to PyTorch
The biggest group outside of numerical computing in Julia land are the PL and systems people though? This includes type theorists [1], database folks [2], distributed systems people ([3] to name just one). There are also a fair number of compiler nuts, hence the existence of multiple projects [4][5] in this space. And this is before getting into things that bridge more than one of the domains above, e.g. [7] or [8]. FTR, I think it's fair to question whether numerical computing should have an outsized influence on the direction of the language. I also think it's a pretty fair comparison to point out how standardized and consistent the Rust governance process is compared to Julia's (the Rust RFC system is an exemplar here). That doesn't mean there is a dearth of PL and systems knowledge in the Julia community though. [1] https://github.com
Read the rest
In From Julia to Rust

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.