Refactor repository structure by language and "hello world" output type #1746
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #1528 -> Allows multiple implementations per language resolving this issue.
Closes #1527 -> This becomes a feature rather than a bug.
This refactor updates the repository structure to organize
hello-worldexamples by programming language, ensuring clarity and preserving history withgit mv. It standardizes folder naming, separates language versions, and ensures file names are valid across platforms (including Windows-safe character replacements) as existing.The old structure was as follows:
The new proposed structure is as follows:
Example:
The
lib-Prefix has been used when a non-standard library has been used to perform the "hello world" task. For instance:Because kivy is a non-standard library, it has been included with the
lib-prefix.It should also be noted that some have a
impl-prefix... I am uncertain these should stay in the repo generally, howeverhello-world\c\c\impl-web-cgi.c- as far as I can tellCGI(Common Gateway Interface) is simply a binary specification. I.E. Any binary with this specification can act as a web server. It definitely belongs inchowever it simply requires implementation of an interface, and it doesn't do anything other than outputing html tostdout... Again, unsure whether this really sits within this repo, as it's a very different thing than a standalone example (it requires a separate CGI host).A list of all prefixes used are as follows:
Known Limitations
File purposes have been assumed, not verified
It has to be said that generally speaking file purposes/output type has been assumed from inspecting file name and contents, but for some esolangs this has been with great difficulty... E.G. does:
Print to
stdout, or some other location like a javascript console? It's unclear without knowing the ins and outs of the specification. In these casesstdouthas been assumed, and these can be moved at a later stage withgit mvby someone more in-the-know.Additionally I would recommend we include a readme under each language folder, which at the very least links to the language specification, source code or evidence that it exists, because while trying to determine what the specifications were, I found numerous languages which have been removed from the internet. E.G
FOG/masterappears to have been removed andhttps://fog.falkirks.com/404s. I did at the very least find cfog though, which appears to be a C implementation of FOG...Further issues
During this process I've identified numerous issues with the repo, however I'd like to get this PR out of the way first if possible as it will affect all future PRs.