{"id":18006621,"url":"https://github.com/plietar/advent-2021","last_synced_at":"2025-04-04T11:41:20.150Z","repository":{"id":145798010,"uuid":"434335026","full_name":"plietar/advent-2021","owner":"plietar","description":"The Advent of Code, but it's a different language every day","archived":false,"fork":false,"pushed_at":"2023-10-03T13:17:41.000Z","size":50,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-09T21:31:20.248Z","etag":null,"topics":["advent-of-code","advent-of-code-2021"],"latest_commit_sha":null,"homepage":"","language":"Assembly","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/plietar.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":"2021-12-02T18:40:23.000Z","updated_at":"2021-12-14T12:58:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"f95c9a1a-eb1d-4dd9-a1e7-1bcb98667e3c","html_url":"https://github.com/plietar/advent-2021","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plietar%2Fadvent-2021","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plietar%2Fadvent-2021/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plietar%2Fadvent-2021/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plietar%2Fadvent-2021/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plietar","download_url":"https://codeload.github.com/plietar/advent-2021/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174369,"owners_count":20896074,"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","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":["advent-of-code","advent-of-code-2021"],"created_at":"2024-10-30T01:09:04.951Z","updated_at":"2025-04-04T11:41:20.133Z","avatar_url":"https://github.com/plietar.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Advent of Code, but it's a different language every day\n\n## Solutions\n- [Day 1: Sonar Sweep (Python)](day01)\n- [Day 2: Dive! (Rust)](day02)\n- [Day 3: Binary Diagnostic (Awk)](day03)\n- [Day 4: Giant Squid (x64 Assembly)](day04)\n- [Day 5: Hydrothermal Venture (Perl)](day05)\n- [Day 6: Lanternfish (Nix)](day06)\n- [Day 7: The Treachery of Whales (Lua)](day07)\n- [Day 8: Seven Segment Search (JavaScript)](day08)\n- [Day 9: Smoke Basin (PHP)](day09)\n- [Day 10: Syntax Scoring (F#)](day10)\n- [Day 11: Dumbo Octopus (Coq)](day11)\n- [Day 13: Transparent Origami (Go)](day13)\n- [Day 14: Extended Polymerization (Pony)](day14)\n- [Day 16: Packet Decoder (Java)](day16)\n\n## Languages\n\nThis is a tentative list of languages that haven't been used yet, subject to change:\n\n- C++\n- Haskell\n- OCaml\n- Idris\n- Ruby\n- Bash\n- C#\n- Swift\n- ObjC\n- Scala\n- Kotlin\n- Prolog\n\n## Structure\n\nEvery day of the advent calendar is located in a separate directory. Each\ndirectory contains a `Makefile` with build instructions suitable to the\nspecific language. The `Makefile` should expose two targets, `build/part1` and\n`build/part2`, each one of them an executable file that solves the respective\nparts of the problem. Each executable reads the input data on stdin and\nproduces the output on stdout.\n\nAdditionally, each subdirectory contains a `default.nix`, describing the\ndependencies necessary to build or execute the solution.\n\n## Rules\n\nSolutions may only use the standard library that comes with the default\ninstallation, with some exceptions.\n\n### Assembly\n\nThe assembly solution may use the `read`, `write` and `mmap` functions from the\nC runtime. The first two are necessary in order to load the input data and\nproduce the output, the latter is used to allocate memory. On Linux, we could\nhave replaced the method calls with system calls, but that is not portable and\nnot officially supported on macOS.\n\n### Coq\n\nCoq does not provide a way to perform the necessary I/O used to load the input\nand produce the data. In fact, there is no such thing as a Coq executable.\n\nInstead, the Coq definitions should be extracted into OCaml, and a thin layer\nof OCaml code is used to provide the necessary I/O.\n\nAs an extended goal, the solution should include a proof of termination and correctness.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplietar%2Fadvent-2021","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplietar%2Fadvent-2021","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplietar%2Fadvent-2021/lists"}