cakeml VS hardware

Compare cakeml vs hardware and see what are their differences.

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
cakeml hardware
14 2
912 23
2.1% -
9.8 0.0
4 days ago about 1 year ago
Standard ML Standard ML
GNU General Public License v3.0 or later BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

cakeml

Posts with mentions or reviews of cakeml. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-11.
  • The Deep Link Equating Math Proofs and Computer Programs
    5 projects | news.ycombinator.com | 11 Oct 2023
    If I understand what you are asking about correctly, then I do think you are mistaken.

    As a sibling comment observed, you would be proving something about a program, but proving things about programs is both possible and done.

    This ranges from things like CakeML (https://cakeml.org/) and CompCert (compilers with verified correctness proofs of their optimizations) to something simple like absence of runtime type errors in statically strongly soundly-typed languages.

    Of note is that you are proving properties of your program, not proving them perfect in every way. The properties of your program that you prove can vary wildly in both difficulty and usefulness. A sufficiently advanced formally verified compiler like CakeML can transfer a high-level proof about your source code to a corresponding proof about the behavior of the generated machine-executable code.

  • The future of Clang-based tooling
    3 projects | news.ycombinator.com | 29 Jul 2023
    > A single IR with multiple passes is a good way to build a compiler

    https://mlir.llvm.org/, which is using, is largely claiming the opposite. Most passes more naturally are not "a -> a", but "a -> b". data structures and data structures work hand in hand, it is very nice to produce "evidence" for what is done in the output data structure.

    This is why https://cakeml.org/, which "can't cheat" with partial functions, has so many IRs!

    Using just a single IR was historically done for cost-control, the idea being that having many IRs was a disaster in repetitive boilerplate. MLIR seeks to solve that exact problem!

  • CakeML – A Verified Implementation of ML
    1 project | news.ycombinator.com | 5 Jun 2023
  • Tools for Verifying a Language and its Semantics
    1 project | /r/ProgrammingLanguages | 2 Jan 2023
    You may want to look at [CakeML](https://cakeml.org) done in HOL4, there is also a nice proof pearl about a more .. minimalistic verified bootstrapped compiler also in HOL4.
  • old languages compilers
    12 projects | /r/ProgrammingLanguages | 26 Dec 2022
    CakeML
  • Is there a formally-proven real-time language/computing env. or operating system?
    2 projects | /r/ProgrammingLanguages | 7 Sep 2022
    There is also Cake ML which is a formally verified functional programming language compiler and runtime.
  • CakeML: A Verified Implementation of ML
    2 projects | /r/sml | 7 Mar 2022
    There is also a CakeML -> Standard ML compiler though it seems to have been built to translate benchmarks and sort of old so I'm not sure how comprehensive it is: https://github.com/CakeML/cakeml/tree/master/unverified/front-end
  • The λ-Cube
    3 projects | news.ycombinator.com | 15 Jan 2022
    > One guess is that lisps cope with being minimal through use of macros and metaprogramming, it's difficult for a typed language to support that level of metaprogramming while maintaining the various guarantees that one wants from such a system.

    Difficult, but certainly not impossible [0].

    [0] https://cakeml.org/

  • Two Mechanisations of WebAssembly 1.0
    2 projects | /r/ProgrammingLanguages | 3 Jan 2022
    If this interests you, I'd highly recommend checking out CompCert (docs here) and CakeML.
  • VLISP: A Verified Implementation of Scheme [pdf]
    1 project | news.ycombinator.com | 29 Dec 2021

hardware

Posts with mentions or reviews of hardware. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-03.
  • There's an ongoing effort to rewrite Principia Mathematica using Coq
    5 projects | /r/math | 3 Dec 2021
    There are ongoing research projects about that, you may want to have a look at Kôika (https://github.com/mit-plv/koika), Kami (https://github.com/mit-plv/kami), Lutsig (https://github.com/CakeML/hardware) and silveroak (https://github.com/project-oak/silveroak). Closer to HLS there is also Vericert (https://github.com/ymherklotz/vericert). There may be other research project I am unaware of, feel free to add them in a reply, I am interested in it.
  • Lutsig - A verified Verilog synthesizer
    1 project | /r/FPGA | 11 Jan 2021
    All source code and proofs are available on Github: https://github.com/CakeML/hardware. However, if you are not familiar with the HOL4 theorem prover it's not entirely straightforward to run Lutsig since you currently have to run Lutsig inside the theorem prover.

What are some alternatives?

When comparing cakeml and hardware you can also consider the following projects:

Daikon - Dynamic detection of likely invariants

NyuziProcessor - GPGPU microprocessor architecture

mpl - The MaPLe compiler for efficient and scalable parallel functional programming

koika - A core language for rule-based hardware design 🦑

CompCert - The CompCert formally-verified C compiler

kami - A Platform for High-Level Parametric Hardware Specification and its Modular Verification

Checker Framework - Pluggable type-checking for Java

checkedc - Checked C is an extension to C that lets programmers write C code that is guaranteed by the compiler to be type-safe. The goal is to let people easily make their existing C code type-safe and eliminate entire classes of errors. Checked C does not address use-after-free errors. This repo has a wiki for Checked C, sample code, the specification, and test code.

smlpkg - Generic package manager for Standard ML libraries and programs

pancake - stack-oriented pain-maximising toy programming language

isabelle-lambda-calculus - A formal definition and verification of System F. To be extended to System Fc

install-mlkit - Action for installing MLKit