{"id":13546223,"url":"https://github.com/Co-dfns/Co-dfns","last_synced_at":"2025-04-02T17:32:48.129Z","repository":{"id":3857521,"uuid":"4942419","full_name":"Co-dfns/Co-dfns","owner":"Co-dfns","description":"High-performance, Reliable, and Parallel APL","archived":false,"fork":false,"pushed_at":"2024-10-29T11:52:48.000Z","size":418854,"stargazers_count":711,"open_issues_count":2,"forks_count":32,"subscribers_count":33,"default_branch":"master","last_synced_at":"2024-10-29T13:28:51.605Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"APL","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Co-dfns.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"COPYING.txt","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},"funding":{"github":null,"patreon":"arcfide","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2012-07-08T00:01:26.000Z","updated_at":"2024-10-29T11:52:51.000Z","dependencies_parsed_at":"2023-10-17T04:56:54.441Z","dependency_job_id":"db778f03-1aa4-4679-883f-6e2ccbf518a6","html_url":"https://github.com/Co-dfns/Co-dfns","commit_stats":{"total_commits":4549,"total_committers":16,"mean_commits":284.3125,"dds":"0.018025939766981747","last_synced_commit":"f302edd94ecccfcb4d21dd97b043aea9e4c861dc"},"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Co-dfns%2FCo-dfns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Co-dfns%2FCo-dfns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Co-dfns%2FCo-dfns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Co-dfns%2FCo-dfns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Co-dfns","download_url":"https://codeload.github.com/Co-dfns/Co-dfns/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246860328,"owners_count":20845644,"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":[],"created_at":"2024-08-01T12:00:34.243Z","updated_at":"2025-04-02T17:32:48.124Z","avatar_url":"https://github.com/Co-dfns.png","language":"APL","funding_links":["https://patreon.com/arcfide","https://www.patreon.com/arcfide"],"categories":["APL"],"sub_categories":[],"readme":"﻿# Co-dfns Compiler\n\nThe Co-dfns project aims to provide a high-performance, high-reliability\ncompiler for a parallel extension of the Dyalog dfns programming language.\nThe dfns language is a functionally oriented, lexically scoped dialect of\nAPL. The Co-dfns language extends the dfns language to include explicit task\nparallelism with implicit structures for synchronization and determinism. \nThe language is designed to enable rigorous formal analysis of programs \nto aid in compiler optimization and programmer productivity, as well as in\nthe general reliability of the code itself.\n\nOur mission is to deliver scalable APL programming to information and domain\nexperts across many fields, expanding the scope and capabilities of what\nyou can effectively accomplish with APL.\n\n## Getting Help\n\nDocumentation on Co-dfns can be found in the [docs/](docs/) folder. \n\nAPL and Co-dfns can be a little different at first. I encourage you to contact \nme (arcfide@sacrideo.us) for any questions you may have regarding either APL or Co-dfns. \n\nAdditionally, if you have general Dyalog APL inquiries, please do not hesitate to \nemail Dyalog's support email: support@dyalog.com.\n\n## Contributing and Helping\n\nWe are seeking to create an open funding model for Co-dfns research through \nuser and patron contributions. You can support the project by contributing code, feedback, benchmarks, and so forth, but you can also directly support the Co-dfns project by funding the author: \n\nhttps://www.patreon.com/arcfide\n\nWe welcome code contributions, improvements, and fixes. Our internal team \nprimarily works \"old school\" via email and patches, and you are welcome to \nsubmit your own diffs via email to arcfide@sacrideo.us for inclusion into \nthe compiler. However, we would also like to credit you in the most visible \nway possible if you wish, and the easiest way to do this is to submit a \npull request of your changes against the master branch. Using a pull request \nis optional, but makes it easier to give you credit on the GitHub platform\nfor any of your contributions. \n\nPlease note that Co-dfns is a dual-licensed project, and any contributions \nmust use the same dual-licensing model to be accepted. We also require a \ncopyright transfer to enable us to work effectively with the codebase from \na legal standpoint. A pull request is assumed to be an acknowledgement \nand acceptance of these terms. \n\n## Related Projects\n\nThere are a number of related initiatives that are based on the Co-dfns \ntechnology:\n\n* [Mystika](https://github.com/Co-dfns/mystika):\n  a high-level, high-performance cryptographic stack\n* [apixlib](https://github.com/Co-dfns/apixlib): \n  programmable, easy to use image processing\n\n## Publications\n\nThe following publications are either directly related to Co-dfns or talk about Co-dfns in their presentations.\n\n[Designing Your Data: The Bread and Butter of APL Performance](https://www.youtube.com/watch?v=ozlxUmdYsHA)\n\n[Living The Loopless Life: Techniques For Removing Explicit Loops And Recursion, LambdaConf 2024](https://www.youtube.com/watch?v=F1q-ZxXmYbo)\n\n[The Nano-parsing Architecture: Sane And Portable Parsing For Perverse Environments, LambdaConf 2024](https://www.youtube.com/watch?v=uInwQEMYAP8)\n\n[Co-dfns Update 2023 // Aaron Hsu // Dyalog '23](https://www.youtube.com/watch?v=6yfBlNKw7Ug)\n\n[U-Net CNN in APL: Exploring Zero-Framework, Zero-Library Machine Learning. ARRAY 2023.](https://dl.acm.org/doi/10.1145/3589246.3595371)\n\n[Implementing the Convolutional Neural Network U-Net in APL, Dyalog User Meeting 2022](https://dyalog.tv/Dyalog22/?v=LQz1b14YYiI)\n\n[Text Processing in APL, Dyalog User Meeting 2022](https://dyalog.tv/Dyalog22/?v=5I4YPkVU7mY)\n\n[Co-dfns Report, Dyalog User Meeting 2022](https://dyalog.tv/Dyalog22/?v=HegGB0ykGlQ)\n\n[DSLs, Architecture, \u0026 Structural Design in APL, 3 ways by Aaron W Hsu #FnConf 2022](https://youtu.be/fH4kxG5zR1Y)\n\n[A Taste of GPU Compute, mentions Co-dfns](https://www.youtube.com/watch?v=eqkAaplKBc4)\n\n[Modern APL in the Real World: Theory, Practice, Case Studies - λC 20 Global Edition](https://www.youtube.com/watch?v=2FMBf6A2eAA)\n\n[Programming Obesity: A Code Health Epidemic - FnConf 2019](https://youtu.be/UDqx1afGtQc)\n\n[Program Obesity: A Code Health Epidemic - λC 2019 Unconference](https://www.youtube.com/watch?v=Oj_xgO2uKJM)\n\n[A Data Parallel Compiler Hosted on the GPU](https://scholar.google.com/scholar?hl=en\u0026as_sdt=0%2C26\u0026q=%22A+data+parallel+compiler+hosted+on+the+gpu%22+Aaron+Hsu\u0026btnG=)\n\n[Pragmatic Array Oriented Functional Programming @ JIO Talks](https://jiotalks.com/watch/204/home/Morten_Kromberg_\u0026_Aaron_Hsu/Pragmatic_Array_Oriented_Functional_Programming)\n\n[Live Reading/Writing Co-dfns, The Way of APL](https://www.youtube.com/watch?v=ABG5eSCZPrE)\n\nParallel-by-construction Tree Manipulation with APL - λC 2018 (Part [1](https://www.youtube.com/watch?v=lc4IjR1iJTg) [2](https://www.youtube.com/watch?v=X5_5MtOYNos))\n\n[Does APL Need a Type System? (FnConf '18)](https://youtu.be/z8MVKianh54)\n\n[Array-oriented Functional Programming](https://youtu.be/Gsj_7tFtODk)\n\n[Tree Manipulation Workshop and Dyalog '18 Talk](https://www.sacrideo.us/lambdaconf-tree-manipulation-workshop-videos/)\n\n[User Command for Co-dfns](https://youtu.be/BBaCKf7Od6I)\n\nFunctional Array Funhouse Intensive - λC 2017 (Part [1](https://www.youtube.com/watch?v=_3CkcoTqxfg) [2](https://www.youtube.com/watch?v=4-KLpGq6Aj8) [3](https://www.youtube.com/watch?v=8lw062D34N0) [4](https://www.youtube.com/watch?v=0S28dfQBUDg) [5](https://www.youtube.com/watch?v=j2Jyoel_myo))\n\n[APL Patterns vs. Anti-Patterns @ FunctionalConf 2017](https://youtu.be/v7Mt0GYHU9A)\n\n[Co-dfns 2017 Report](https://sway.com/mJg0M7qakrJBwP6G?ref=Link)\n\n[APL Style: Patterns and Anti-patterns](https://sway.com/b1pRwmzuGjqB30On?ref=Link)\n\n[Co-dfns Compiler Architecture and Design (Video)](https://youtu.be/gcUWTa16Jc0)\n\n[The Key to a Data Parallel Compiler](http://dl.acm.org/citation.cfm?id=2935331)\n\n[Accelerating Information Experts Through Compiler Design](http://dl.acm.org/citation.cfm?id=2774968)\n\n[Co-dfns: Ancient Language, Modern Compiler](http://dl.acm.org/citation.cfm?id=2627384)\n\n[U11: Using Co-dfns to Accelerate APL Code](http://dyalog.com/user-meetings/dyalog15.htm)\n\n[U07: Co-dfns Report: Performance and Reliability Prototyping](http://dyalog.com/user-meetings/dyalog14.htm)\n\n[I04: Co-dfns Compiler](http://dyalog.com/user-meetings/dyalog13.htm)\n\n[Dyalog 2016 Presentation](https://sway.com/FmRyyaCSqappknRD)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCo-dfns%2FCo-dfns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCo-dfns%2FCo-dfns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCo-dfns%2FCo-dfns/lists"}