{"id":13780232,"url":"https://github.com/tavmem/buddy","last_synced_at":"2025-06-15T02:34:41.274Z","repository":{"id":35970778,"uuid":"40261850","full_name":"tavmem/buddy","owner":"tavmem","description":"early A interpreter with buddy system space management.","archived":false,"fork":false,"pushed_at":"2020-10-28T02:51:54.000Z","size":127,"stargazers_count":44,"open_issues_count":2,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-13T16:54:42.804Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tavmem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-05T18:21:45.000Z","updated_at":"2025-03-02T08:07:19.000Z","dependencies_parsed_at":"2022-09-16T15:51:47.967Z","dependency_job_id":null,"html_url":"https://github.com/tavmem/buddy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tavmem/buddy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tavmem%2Fbuddy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tavmem%2Fbuddy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tavmem%2Fbuddy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tavmem%2Fbuddy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tavmem","download_url":"https://codeload.github.com/tavmem/buddy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tavmem%2Fbuddy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259912924,"owners_count":22931138,"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-03T18:01:13.565Z","updated_at":"2025-06-15T02:34:41.239Z","avatar_url":"https://github.com/tavmem.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"The focus of this repository is the version of the interpreter\nportion of the A+ system distributed by Morgan Stanley that\nexisted when Arthur Whitney left MS (to cofound Kx Systems).\nIn particular, it shows the buddy space management system that\nwas eliminated in later versions, and shows more of Arthur's\nunique coding style.\n\nNote that this version is 32-bit, and dates from 4/30/1993.\nAn open source 64-bit version was not released til 3/27/2008.\n\nWhy is this relevant?\n\n1) \"Notation as a tool of thought\" (Ken Iverson).\nArthur Whitney is a talented implementor of computer languages, eg.,\na version of Scheme, a port of IPSA APL to limited hardware, A+,\nk, KSQL, q, KDB+, and shakti.  The notation he uses is significant.\n\n2) The study of Domain Specific Languages:  Ostensibly Arthur uses C.\nActually, he uses the C preprocessor to create a terse language of his\nown.  The style is referred to as the \"ATW_VERSION\" in the file a/b.c.\n\n3) A study of ATW-C directly carries over to k, q/KDB+, or shakti.\nThe style of using very short functions is helpful.  Supposedly, \nArthur never bothered to learn GDB (or other debugging tools\nnormally used with C).  You would not use such tools with q/KDB+ \neither. Comments are sparse (or nonexistent).\n\n4) Code as Poetry.  Read, study, and enjoy.\nAn extreme example of contrasting styles is contained in file a/b.c.\nThere are 2 versions of the buddy memory allocation system.  The \n\"ATW_VERSION\" has 11 lines.  The second is in well documented \ntraditional C (almost 750 lines).\n\nWhy does the code compile on a 32-bit Linux, but not work? (See issues)\n\nAgain, it may have to do with file a/b.c.  The traditional C version in \na/b.c has a comment stating that \"these procedures depend critically on\nthe memory configuration of the computer performing these procedures\".\nThe code in a/b.c is tuned for Solaris on Sun workstattions. It undoubtedly\nneeds modification to work with Linux or Windows or macOS on Intel processors.\nAnother strong possibility is that there are typos that remain (see partial\nfix to issue 3).  This entire repository was keyed in from source documents.\n\n-------------------------------------------------------------------------\n\nA+ and the A+ Reference Manual are Copyright Morgan Stanley Dean Witter \u0026\nCo.  They are distributed under the GNU General Public License and the GNU\nFree Documentation License and available from http://www.aplusdev.org/.\nSee the file LICENSE and the appendix titled GNU Free Documentation\nLicense of the reference manual regarding the terms under which A+\nsoftware and documentation is being made available.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftavmem%2Fbuddy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftavmem%2Fbuddy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftavmem%2Fbuddy/lists"}