{"id":23167679,"url":"https://github.com/oblivious-oblivious/margaret","last_synced_at":"2025-08-18T06:32:42.501Z","repository":{"id":37267738,"uuid":"419102879","full_name":"Oblivious-Oblivious/margaret","owner":"Oblivious-Oblivious","description":"An object-oriented system based on Ruby and Smalltalk.","archived":false,"fork":false,"pushed_at":"2024-12-12T13:44:53.000Z","size":3816,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-12T14:34:14.202Z","etag":null,"topics":["declarative-programming","margaret","object-oriented-programming","programming-language"],"latest_commit_sha":null,"homepage":"https://www.margaret-lang.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Oblivious-Oblivious.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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-10-19T21:58:02.000Z","updated_at":"2024-12-12T13:44:57.000Z","dependencies_parsed_at":"2024-05-09T20:25:01.515Z","dependency_job_id":"7c058bd6-0603-4160-83b6-9cfaf2ce58ac","html_url":"https://github.com/Oblivious-Oblivious/margaret","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/Oblivious-Oblivious%2Fmargaret","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oblivious-Oblivious%2Fmargaret/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oblivious-Oblivious%2Fmargaret/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oblivious-Oblivious%2Fmargaret/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Oblivious-Oblivious","download_url":"https://codeload.github.com/Oblivious-Oblivious/margaret/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230208226,"owners_count":18190280,"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":["declarative-programming","margaret","object-oriented-programming","programming-language"],"created_at":"2024-12-18T02:31:49.967Z","updated_at":"2025-08-18T06:32:42.433Z","avatar_url":"https://github.com/Oblivious-Oblivious.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# margaret\n\n[![GPLv3 License](https://img.shields.io/badge/license-GPL%20v3-yellow.svg)](./LICENSE)\n\nMargaret is a modern object-oriented programming language that emphasizes message-passing\nparadigms and intuitive object interactions.  Its design features powerful literals and\nSmalltalk-inspired messaging patterns for powerful object-oriented capabilities.\n\n- Every value in margaret is a pure object.\n- There are no reserved words and no explicit syntax apart from message sending.\n- Uses prototypal inheritance similar to Self or Javascript.\n- Uses C-style literals like int, float, string.\n- Implements tensors, tuples, tables, and bitstrings as modern built-in data structures.\n- Runs on a portable, lightweight, embeddable, register based VM.\n\n## Installation\n\nTODO - Write installation instructions\n\n## \"Postcard\"\n\n```margaret\n$Margaret -- #ultimate_answer: x =\u003e {\n  $true \u0026\u0026 !$false not not \u0026\u0026 ($nil is_nil?) if_false: { exit: 0 },\n  y = @self methods size + @super to_string length * 42,\n  [:label, 42, 42.2, \"str\", 0b0110, 0xbeef, 0o741, %[y, 42, \"val\"],\n    %{\"k1\": -42, k2: 43}, %(42, 1::1, 0::1)] each: { elem |\n      puts: elem object_id,\n    },\n  if: x \u003c y then: { x } else: { y },\n},\nputs: (ultimate_answer: 42),\n```\n\n## Development\n\n- [Changelog](https://github.com/Oblivious-Oblivious/margaret/blob/master/CHANGELOG.md)\n- [Contributing](https://github.com/Oblivious-Oblivious/margaret/blob/master/CONTRIBUTING.md)\n\n## Contributing\n\n1. Fork it (\u003chttps://github.com/Oblivious-Oblivious/margaret/fork\u003e)\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create a new Pull Request\n\n## Contributors\n\n- [oblivious](https://github.com/Oblivious-Oblivious) - creator and maintainer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foblivious-oblivious%2Fmargaret","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foblivious-oblivious%2Fmargaret","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foblivious-oblivious%2Fmargaret/lists"}