hardcaml
seed7
hardcaml | seed7 | |
---|---|---|
7 | 41 | |
613 | 181 | |
0.8% | - | |
6.4 | 9.8 | |
7 days ago | 8 days ago | |
OCaml | C | |
MIT License | GNU General Public License v3.0 only |
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.
hardcaml
-
Zero Knowledge FPGAs
title: Accelerating zk-SNARKs - MSM and NTT algorithms on FPGAs with Hardcaml
Any reason the title deviates so much from original? Is it because of all the cool acronyms and code words? Here's a decoder:
zk-SNARK: zero-knowledge Succinct Non-Interactive Argument of Knowledge
MSM: Multi-Scalar Multiplication
Hardcaml: OCaml lib for hardware: https://github.com/janestreet/hardcaml
NTT: Number Theoretic Transform
-
A circuit simulator that doesn't look like it was made in 2003
Perhaps peripheral (the original site has been hugged to death).
Both clashlang: https://clash-lang.org/
And Hardcaml: https://github.com/janestreet/hardcaml
have personally fueled my interest in hardware.
Dan Luu speaks eloquently and at length about how better options are needed for logic design. I would recommend both of the above to the enthusiastic novice.
- Functional programming language for embedded devices?
-
HRT or Jane Street?
Join JS and you can program FPGAs in a strongly typed, expressive, high level programming language (OCaml): https://github.com/janestreet/hardcaml
-
You need to stop idolizing programming languages.
[1] https://github.com/janestreet/hardcaml
-
Designing a MIPS CPU in Hardcaml (12 part series)
> You can put all the functions/tasks you want in that module.
Coming from a software background, the testing strategies available in Verilog seem very clunky and overly verbose. In comparison, Hardcaml's ASCII waveform expect-test solution feels extremely elegant and simple: https://blog.janestreet.com/using-ascii-waveforms-to-test-ha....
> And all of my development and that of my team happens through gitlab-CI.
That's probably more of a gap in my education than a fault of the ecosystem then.
---
Among other qualities, I prefer languages that let fewer mistakes slip through, and allow the developer to focus on the system they intend to build rather than avoiding bugs/misunderstandings that would be easy to catch otherwise. You bring up a lot of really good points, and I suspect that if we were doing Verilog "the right way", we would have probably run into fewer issues. But at the end of the day, developing in Hardcaml was a much more ergonomic experience: testing was straightforward, most "stupid mistakes" were impossible, setup was pretty easy, and the library provided a lot of really useful abstractions. For example, Hardcaml interfaces make it easy to represent practically any data structure that can be serialized to/from a bit vector, and the Always API allows for some pretty interesting non-trivial functional logic.
https://github.com/janestreet/hardcaml/blob/master/docs/hard...
-
Hardcaml MIPS CPU Learning Project and Blog
A few months ago, I came across the Signals and Threads Programmable Hardware episode. I really liked the idea of Hardcaml: a library to write and test hardware designs in OCaml. Representing circuits as functions felt like a good abstraction, and I’ve been wanting to learn OCaml for a while.
seed7
-
Seed7 version 2023-07-09 released on GitHub and SF
This release is available at GitHub and SF. There is also a Seed7 installer for windows, which downloads the newest version from SF. The Seed7 Homepage stays at its usual place. There is also a mirror of the Seed7 Homepage at GitHub.
-
Version 2023-05-29 of the Seed7 programming language released on GitHub and SF
Seed7 at GitHub
-
Build from source issue
bugmagnet@LAPTOP-H6HBEGA9:~$ git clone https://github.com/ThomasMertes/seed7 Cloning into 'seed7'... remote: Enumerating objects: 21021, done. remote: Counting objects: 100% (4660/4660), done. remote: Compressing objects: 100% (1118/1118), done. remote: Total 21021 (delta 3677), reused 4454 (delta 3515), pack-reused 16361 Receiving objects: 100% (21021/21021), 15.95 MiB | 6.47 MiB/s, done. Resolving deltas: 100% (18593/18593), done. bugmagnet@LAPTOP-H6HBEGA9:~$ cd seed7 bugmagnet@LAPTOP-H6HBEGA9:~/seed7$ make -f src/mk_linux.mak depend make: *** No rule to make target 'chkccomp.c', needed by 'chkccomp'. Stop.
-
Seed7 version 2023-04-22 released on GitHub and SF
No. You can see at GitHub that I update Seed7 quite often. Approximately once a month I do a release and this release is announced at r/seed7 and here.
-
Question about installation
The packages are not updated so often. So you are more up-to-date with the releases (or even more up-to-date by pulling from GitHub).
-
Exercism related questions
I committed a corresponding change to GitHub (Support syntax statements without $ (dollar)).
-
Seed7 version 2023-03-05 released on GitHub and SF
This release is available at GitHub and SF. There is also a Seed7 installer for windows, which downloads the newest version from SF. The Seed7 Homepage stays at its usual place. There is also a mirror of the Seed7 Homepage which uses HTTPS.
-
Have you heard about the Seed7 programming language?
Yes, I am regularly working on improvements for Seed7. The changes are checked in at GitHub (see here for the list of commits) and once a month I do a release which is announced at r/seed7.
-
Core-js maintainer complains open source is broken
It all depends on the circumstances behind. In the beginning the core-js maintainer had no family and now he has. When I released Seed7 I already had a family. It was clear that my job had to support my family and my hobby (GitHub link).
-
Seed7 version 2022-06-26 released on GitHub and SF
Syntax highlighting for the Nano editor has been added. Many thanks to Duke Normandin for creating seed7.nanorc.
What are some alternatives?
bitvec - A crate for managing memory bit by bit
xvm - Ecstasy and XVM
bap - Binary Analysis Platform
ghc - Mirror of the Glasgow Haskell Compiler. Please submit issues and patches to GHC's Gitlab instance (https://gitlab.haskell.org/ghc/ghc). First time contributors are encouraged to get started with the newcomers info (https://gitlab.haskell.org/ghc/ghc/wikis/contributing).
nerves_system_osd32mp1 - Base system for Octavo OSD32MP1
sbcl - Mirror of Steel Bank Common Lisp (SBCL)'s official repository
nerves - Craft and deploy bulletproof embedded software in Elixir
passerine - A small extensible programming language designed for concise expression with little code.
qucs_s - Qucs-S is a circuit simulation program with Qt-based GUI
PyBasic - Simple interactive BASIC interpreter written in Python
clash-ghc - Haskell to VHDL/Verilog/SystemVerilog compiler
carnet - A Tool for Sandboxing Cargo and Buildscripts