{"id":20425372,"url":"https://github.com/catseye/wierd","last_synced_at":"2025-04-12T18:55:19.518Z","repository":{"id":3696409,"uuid":"4767184","full_name":"catseye/Wierd","owner":"catseye","description":"A fungeoid language where bends in the chain determine the instructions","archived":false,"fork":false,"pushed_at":"2021-11-16T07:59:37.000Z","size":104,"stargazers_count":12,"open_issues_count":3,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T13:11:56.928Z","etag":null,"topics":["esolang","esoteric-language","esoteric-programming-language","fungeoid"],"latest_commit_sha":null,"homepage":"http://catseye.tc/node/Wierd","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"tsaiDavid/simple-redux-boilerplate","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/catseye.png","metadata":{"files":{"readme":"README.markdown","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}},"created_at":"2012-06-23T19:52:43.000Z","updated_at":"2024-04-11T21:51:15.000Z","dependencies_parsed_at":"2022-09-16T04:41:27.039Z","dependency_job_id":null,"html_url":"https://github.com/catseye/Wierd","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FWierd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FWierd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FWierd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/catseye%2FWierd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/catseye","download_url":"https://codeload.github.com/catseye/Wierd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248618263,"owners_count":21134200,"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":["esolang","esoteric-language","esoteric-programming-language","fungeoid"],"created_at":"2024-11-15T07:13:05.058Z","updated_at":"2025-04-12T18:55:19.484Z","avatar_url":"https://github.com/catseye.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"The Wierd Programming Language\r\n==============================\r\n\r\nThis is Cat's Eye Technologies' distribution of Wierd, a two-dimensional\r\nesoteric programming language (a \"fungeoid\".)  Unlike similar languages\nwhere the symbols in a program determine which instructions are executed,\nin Wierd, it is the *bends* in the chain of arbitrary symbols that determine\nwhich instructions are executed.\r\n\r\nHistory\r\n-------\r\n\r\nWierd has a long and colourful history of language fuzziness.\r\n\r\nWierd was originally designed by Ben Olmstead, John Colagioia, and Chris\r\nPressey, in a three-way email discussion about how [Befunge][] and [brainfuck][]\r\ncould be combined in an interesting way.\r\n\r\nBased on this discussion, John wrote an interpreter in C for his interpretation\nof Wierd (which, as comments in its source code explain, differs from \"official\"\nWierd), and wrote a version of the classic \"Hello, world!\" program which runs\non his interpreter.\n\nLater on, based on his implementation, John wrote a specification for the\nlanguage accepted by his interpreter, calling it Wierd.\n\r\nEven later on, Milo van Handel (who was not privy to the email conversation)\nwrote an interpreter, also in C, for his interpretation of Wierd, which was\napparenly based largely on John's interpreter and spec, but interpreting some\nconditions slightly differently, and filling in some gaps (such as treatment\nof EOF.)  Milo also wrote several example programs that run on his interpreter,\nincluding several versions of the classic `cat` program and a Wierd/INTERCAL\npolyglot.\n\r\nUnfortunately, the language implemented by Milo's interpreter has different\nsemantics from the language implemented by John's interpreter — and from what\nI've been able to tell, the two languages are largely incompatible.  It may of\ncourse be possible to write polyglot programs which are accepted by both\ninterpreters, perhaps even having the same behaviour in both, but I'm pretty\nsure that none of the included example programs fall into this category.\r\n\nLater still, Chris attempted to implement John's interpretation of Wierd in the\r\n[yoob][] framework, based on John's spec, but when trying to run `hello.w`\r\non it, found that it would only get so far before entering an infinite loop\r\n(back and forth along the chain.)  This suggested a possible bug in either\r\nthe yoob implementation or in `wierd.c` or in the spec.\r\n\nShortly after this, Chris also patched Milo's implementation to take standard\nlong options, for portability (NetBSD doesn't have `getopt_long_only`.)  (Sorry\nMilo, hope you don't mind.)\n\nShortly after *that*, Chris began writing an interpreter in Javascript,\nusing the [yoob.js][] framework, of John's interpretation of Wierd, and\ndiscovered the source of the problems with his previous attempt: `hello.w`\nrelies on incorrectly-documented behaviour.  Specifically, while John's spec\n*and* the comments in John's interpreter say that during the \"putget\" operation,\na zero value means \"get\" and a non-zero value means \"put\", in the\nimplementation, it is actually the other way around.\n\n### Given all this... ###\n\nGiven all this, well, here's how I see it.\n\nThe name _Wierd_ refers to the language defined (however fuzzily) by that\noriginal email conversation.\n\nGiven that that email thread is, as far as I know, lost and gone forever,\nWierd has no specification, and no reference implementation.  (Therefore,\nthere are no `src`, `doc`, or `eg` directories in the root directory of this\nrepository.)\n\nBoth John Colagioia and Milo van Handel designed and implemented _dialects_ of\nWierd.  (Therefore there is a directory called `dialect` in this repository.)\nI have tended to call them \"John's Wierd\" and \"Milo's Wierd\" in the\npast, but anything else that distinguishes them by the name of their author\nwould suffice.  (Therefore there are subdirectories `dialect/wierd-jnc` and\n`dialect/wierd-mvh` in this repository, and each of *those* contains the\nstandard `src`, `doc`, and `eg` subdirectories.  And in addition, because\nChris's interpreter implements John's Wierd, it is in the `impl` directory\nof `dialect/wierd-jnc`.  It is also [installed online at catseye.tc][].)\n\nAnd in light of all this, it might also be acceptable to consider Wierd to be\na language *family* rather than a language.  I'm not yet decided on this point.\n\n### Pull Requests ###\n\nYou are perfectly welcome to open pull requests on this repository, but please\nobserve the layout described above:\n\n*   implementations of John's Wierd go into `dialect/wierd-jnc/impl`\n*   example programs in John's Wierd go into `dialect/wierd-jnc/eg`\n*   implementations of Milo's Wierd go into `dialect/wierd-mvh/impl`\n*   example programs in Milo's Wierd go into `dialect/wierd-mvh/eg`\n*   any other dialects of Wierd go into `dialect/your-dialect-name`\n\nIn light of the following section, I would also ask that you provide some\nlicense information regarding any sources you submit.  Open-source licensing\nwould definitely be preferable.\n\r\nLicense\r\n-------\r\n\r\nThe Wierd distribution's licensing matches the language's fuzziness.\r\n\r\nWith the exception of Milo's `quine.w`, which is licensed under the GPL\r\n(no version specified), no license was ever explicitly placed on any of John's\nor Milo's sources or documentation, so they are all implicitly copyrighted by\ntheir respective authors.\r\n\r\nHowever, Cat's Eye Technologies has been redistributing these sources in\r\nthe form of this Wierd distribution for years now, with no objections from\r\nthe authors, so I think it's safe to consider them to be freely\r\nredistributable, unmodified and for non-commercial purposes; however, I am\r\nnot a lawyer, your mileage may vary, caveat emptor, etc. etc.\r\n\nIn stark (I hope) contrast to this, Chris's implementation, `wierd-jnc.js`, is\nplaced into the public domain (see the file `UNLICENSE` in its directory.)\n\n- - - -\n\n[Befunge]: http://catseye.tc/node/Befunge-93\n[brainfuck]: http://catseye.tc/node/brainfuck\r\n[yoob]: http://catseye.tc/node/yoob\n[yoob.js]: http://catseye.tc/node/yoob.js\n[installed online at catseye.tc]: http://catseye.tc/installation/Wierd_%28John_Colagioia%29\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatseye%2Fwierd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcatseye%2Fwierd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcatseye%2Fwierd/lists"}