{"id":26825112,"url":"https://github.com/chancehudson/hackathon_24","last_synced_at":"2026-01-08T15:05:16.210Z","repository":{"id":254548721,"uuid":"846876523","full_name":"chancehudson/hackathon_24","owner":"chancehudson","description":"👻","archived":false,"fork":false,"pushed_at":"2024-09-02T04:36:04.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T10:19:26.539Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chancehudson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-24T07:42:37.000Z","updated_at":"2024-09-02T04:36:07.000Z","dependencies_parsed_at":"2024-08-24T08:48:53.765Z","dependency_job_id":"70f22390-151a-42be-a22d-3cb4a5acdb2d","html_url":"https://github.com/chancehudson/hackathon_24","commit_stats":null,"previous_names":["chancehudson/hackathon_24"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chancehudson/hackathon_24","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chancehudson%2Fhackathon_24","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chancehudson%2Fhackathon_24/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chancehudson%2Fhackathon_24/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chancehudson%2Fhackathon_24/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chancehudson","download_url":"https://codeload.github.com/chancehudson/hackathon_24/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chancehudson%2Fhackathon_24/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28246411,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2026-01-08T02:00:06.591Z","response_time":241,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-30T10:19:15.917Z","updated_at":"2026-01-08T15:05:16.142Z","avatar_url":"https://github.com/chancehudson.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# PSE hackathon 2024 plan\n\nBuild a web ide/benchmarking utility for [ashlang](https://github.com/chancehudson/ashlang). [More info](https://github.com/chancehudson/ashlang/tree/main/src/r1cs#readme).\n\nI'd like to build all of these things with equal priority. I'd like to build the features before the stretch features.\n\n## IDE features\n\n- [x] static webpage with a text entry field\n  - [reference experience](https://www.egui.rs/#EasyMarkEditor)\n  - [x] compile single function\n- [ ] vim mode\n  - \"i literally won't use it without vim mode ✨\" - one prospective user\n  - [ ] insert and visual mode\n  - [ ] reduced set of keys:\n    - `a`, `A`, `i`, `I`, `w`, `W` , `o`, `j`, `k`, `l`, `h`\n    - numbers for repeated sequences\n- [ ] local function directory storage\n  - [ ] use indexeddb or similar\n  - [ ] export directory tarball\n- [ ] getting started scripts\n- [ ] links (repo, information, docs)\n- [x] compile code as it's written\n  - [ ] show a green or red light if compilation succeeds or fails\n  - [x] show messages from the assembler\n    - assembler will provide a standard message format\n- [ ] builtin access to the [stdlib](https://github.com/chancehudson/ashlang/tree/main/stdlib)\n- [ ] builtin access to the benchmark library (see below)\n- [ ] basic syntax highlighting\n- [ ] syntax completion for function names when a button is pressed\n  - e.g.\n    - i'm writing code and am about to invoke a function\n    - `let x = `\n  - [ ] i press `shift+space` and a list of _function names_ appears\n  - [ ] the function _source code_ appears in a window next to the list\n  - [ ] the function source changes with the _up/down arrow keys_\n  - [ ] as i type the list is filtered and the **source code preview** changes\n    - this is simple and fast, each include is a directory tree of function names\n    - function name = filename without extension = `'pow5.ash'.split('.')[0]`\n    - the file extension determines what functions can be called\n    - `ash` -\u003e calls everything, `tasm` -\u003e calls nothing, `ar1cs` -\u003e calls nothing\n- [ ] r1cs binary file format\n  - include [witness instructions](https://github.com/chancehudson/ashlang/tree/main/src/r1cs#symbolic-constraints) in the r1cs file\n- [ ] green checkmark if the prover being targeted is post quantum secure\n\n### Stretch features\n\n- [ ] publish and share circuits (leetcode style)\n- [ ] ai based auto-completion/suggestion (disabled for functions)\n\n## Benchmark features\n\n- [ ] numerous scripts designed to test different aspects of the language and prover\n  - [ ] matrix multiplication, division, addition and subtraction\n  - [ ] various permutations using these operations, e.g. prove `a[0..1024][0..1024] * b[0..1024][0..1024]`, `pow5(a[0..1024])`, `pow5_inv_sum(a[0..1024])`\n  - [ ] stack depth tests\n    - automatically generate a tree of functions to grow the stack\n  - [ ] execute logic at different stack depths over time\n    - pass arguments of various size to functions at various depths\n- [ ] support for the following provers\n  - [ ] [TritonVM](https://github.com/TritonVM/triton-vm)\n  - [ ] [Spartan](https://github.com/microsoft/Spartan)\n  - [ ] [Spartan2](https://github.com/microsoft/Spartan2)\n  - [ ] [snarkjs](https://npm.com/snarkjs)\n  - [ ] [arkworks](./.gitignore)\n  - [ ] [nova](https://github.com/microsoft/Nova)\n  - [ ] [dalek/bulletproofs](https://github.com/dalek-cryptography/bulletproofs)\n  - [ ] [vole-zk-prover](https://github.com/holonym-foundation/vole-zk-prover/tree/main)\n  - **your prover here**\n- [ ] show information about proving time and circuit size\n  - [ ] `tasm` targets\n    - [ ] show [vm stats](https://github.com/TritonVM/triton-vm/issues/319#issuecomment-2290842186)\n    - [ ] show proof _byte length_\n  - [ ] `r1cs` targets\n    - [ ] show number of signals\n    - [ ] show number of constraints\n    - [ ] show average number of signals per constraint (efficiency)\n- [ ] include ability to \"run all files in directory\" and benchmark each one\n  - e.g. for ci or device tests\n- [ ] export benchmark to file (json is fine)\n\n### Stretch features\n\n- [ ] show graph visualization of `r1cs` constraint system\n- [ ] analyze `r1cs` signal relationships\n  - [reference experience](https://www.egui.rs/#Demo)\n  - [ ] analyze the signal structure and visualize it in a graph?\n    - [ ] goal is to provide data for implementing an optimizer\n- [ ] public lists of benchmarks (e.g. recent benchmarks)\n  - [ ] publish benchmark after running\n    - [ ] optionally include hash of program that was run\n    - [ ] optionally include anonymized device information\n\n## Collaboration tools\n\n- [ ] run a git server that _anyone_ can push to\n  - [ ] mirror that server to a github pull request\n\n## Chore tasks\n\n- [x] move [scalar field](https://github.com/chancehudson/ashlang/tree/main/src/math) implementations to a separate crate\n  - [x] curated implementions of each curve _scalar field_ into a single minimal _trait_\n  - [scalarff](https://github.com/chancehudson/scalarff)\n\n## Interested?\n\nPreferred strategies:\n\n- [dynamic web](https://github.com/Unirep/trusted-setup/tree/main/packages/frontend/src)\n- [static web](https://github.com/chancehudson/keccak-doomsday/tree/main/web/src)\n- [if you're a goat](https://github.com/emilk/egui)\n\n## Repos i like right now\n\n- [triton tui](https://github.com/TritonVM/triton-tui#readme)\n  - simple and effective stack debugging\n- [twenty-first](https://github.com/neptune-crypto/twenty-first#readme)\n  - fast `2^64 - 2^32 + 1` (0xfoi) scalar field implementation\n  - very nice api\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchancehudson%2Fhackathon_24","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchancehudson%2Fhackathon_24","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchancehudson%2Fhackathon_24/lists"}