Merge pull request #36 from catseye/forks-article
Forks article
Chris Pressey authored 6 years ago
GitHub committed 6 years ago
0 | Forks | |
1 | ===== | |
2 | ||
3 | Cat's Eye Technologies maintains some forks of some projects which are | |
4 | otherwise abandoned or under-maintained or whose canonical distribution | |
5 | just doesn't fit our requirements. | |
6 | ||
7 | Note that kinds of projects forked here range from | |
8 | [Language Implementations](Language%20Implementations.md) to Emulators to | |
9 | [Tools](Tools.md). | |
10 | ||
11 | Language Projects | |
12 | ----------------- | |
13 | ||
14 | ### minischeme | |
15 | ||
16 | * implementation of: [Scheme][] (R4RS) | |
17 | * implementation type: interpreter | |
18 | * license: Public Domain | |
19 | * host language: [ANSI C][] | |
20 | * inception date: Nov 5, 1989 | |
21 | * in distribution: [https://github.com/catseye/minischeme](https://github.com/catseye/minischeme) | |
22 | ||
23 | Originally forked in order to make it build on [AmigaDOS 1.3][]. | |
24 | Also a good test target for [Pixley][]. | |
25 | ||
26 | Fork began Dec 13, 2011. | |
27 | ||
28 | ### OpenZz | |
29 | ||
30 | * implementation of: [Zz][] | |
31 | * implementation type: interpreter | |
32 | * license: LGPL | |
33 | * host language: [C99][] | |
34 | * inception date: Jan 7, 2002 | |
35 | * in distribution: [https://github.com/catseye/OpenZz](https://github.com/catseye/OpenZz) | |
36 | ||
37 | Forked because [Zzrk][] depends on it, and I want to maintain that. | |
38 | ||
39 | Note that while most of the code is LGPL, the REPL is GPL. | |
40 | ||
41 | Fork began Feb 1, 2012. | |
42 | ||
43 | Emulators | |
44 | --------- | |
45 | ||
46 | ### JaC64 | |
47 | ||
48 | * implementation of: [Commodore 64][] | |
49 | * implementation type: emulator | |
50 | * license: GPL | |
51 | * host language: [Java][] | |
52 | * inception date: 2006 | |
53 | * in distribution: [https://github.com/catseye/JaC64](https://github.com/catseye/JaC64) | |
54 | ||
55 | A Commodore 64 emulator written in Java. Originally it ran as an applet, | |
56 | but Java applets are pretty much history now. It has always ran as a | |
57 | desktop application. It can now run as a JNLP application. | |
58 | ||
59 | We forked this because we wanted to put [Bubble Escape 2K][] online | |
60 | and this emulator ran as an applet but there were a few bugs in it. | |
61 | We fixed those bugs and submitted those fixes upstream, but heard | |
62 | nothing from the maintainer. Thus we keep this fork. | |
63 | ||
64 | ### Zplet | |
65 | ||
66 | * implementation of: [Z-Machine][] | |
67 | * implementation type: emulator | |
68 | * license: Artistic License | |
69 | * host language: [Java][] | |
70 | * inception date: Nov 16, 2001 | |
71 | * in distribution: [https://github.com/catseye/Zplet](https://github.com/catseye/Zplet) | |
72 | ||
73 | A Z-Machine emulator written in Java. Originally it ran as an applet, | |
74 | but Java applets are pretty much history now. We modified it so that | |
75 | it can run as a desktop application, so that it can now run as a JNLP | |
76 | application. | |
77 | ||
78 | This was for [The Never-Ending Maze][]. | |
79 | ||
80 | ### linapple | |
81 | ||
82 | * implementation of: [Apple II][] | |
83 | * implementation type: emulator | |
84 | * license: GPL | |
85 | * host language: [C++][] | |
86 | * inception date: 1994 (as AppleWin) | |
87 | * in distribution: [https://github.com/catseye/linapple](https://github.com/catseye/linapple) | |
88 | ||
89 | An Apple II emulator. We maintain a fork only to make it work like | |
90 | a proper Unix command-line utility and thus play nicely with | |
91 | [Funicular][]. | |
92 | ||
93 | Tools | |
94 | ----- | |
95 | ||
96 | ### klaus | |
97 | ||
98 | * license: MIT-like | |
99 | * in distribution: [https://github.com/catseye/klaus](https://github.com/catseye/klaus) | |
100 | ||
101 | Klaus is a nice-and-simple Git web interface that we are using | |
102 | to run [git.catseye.tc](http://git.catseye.tc/). | |
103 | ||
104 | ### ee | |
105 | ||
106 | * license: BSD 2-clause | |
107 | * in distribution: [https://github.com/catseye/ee](https://github.com/catseye/ee) | |
108 | ||
109 | `ee` is the "easy editor" which comes with [FreeBSD][]. Cat's Eye Technologies | |
110 | extracted it from there so we could have a nicer text editor in [The Platform][]. | |
111 | ||
112 | Local version 1.5.2ce1. | |
113 | ||
114 | ### tideay | |
115 | ||
116 | * original authors: Paul Harrison | |
117 | * license: GPL | |
118 | * inception date: Apr 2013 | |
119 | * development stage: work in progress | |
120 | * in distribution: [tideay distribution](http://catseye.tc/distribution/tideay_distribution) | |
121 | ||
122 | `tideay` is Cat's Eye Technologies' fork of `yaedit`, a GtkSourceView-based | |
123 | text editor written by Paul Harrison. In addition to the | |
124 | features provided by `yaedit`, `tideay` supports things such as | |
125 | string-rewriting-based editing commands. | |
126 | ||
127 | ### a2tools | |
128 | ||
129 | * license: GPL | |
130 | * inception date: 1998 | |
131 | * in distribution: [https://github.com/catseye/a2tools](https://github.com/catseye/a2tools) | |
132 | ||
133 | `a2tools` is a set of programs for copying files off of and onto | |
134 | [Apple II][] floppy disk images. We use it as part of [Funicular][]. | |
135 | There was a bug in it that we fixed so we maintain a fork for that. | |
136 | ||
137 | [Scheme]: ../article/Project%20Dependencies.md#scheme | |
138 | [ANSI C]: ../article/Project%20Dependencies.md#ansi-c | |
139 | [C99]: ../article/Project%20Dependencies.md#c99 | |
140 | [AmigaDOS 1.3]: ../article/Retrocomputing.md#amiga-500 | |
141 | [Pixley]: ../article/Languages.md#pixley | |
142 | [Zz]: https://cdn.rawgit.com/catseye/OpenZz/90896648/doc/zzdoc.html | |
143 | [Zzrk]: ../article/Games.md#zzrk | |
144 | [Java]: ../article/Project%20Dependencies.md#java | |
145 | [Bubble Escape 2K]: ../article/Games.md#bubble-escape | |
146 | [The Never-Ending Maze]: ../article/Games.md#the-never-ending-maze | |
147 | [Z-Machine]: ../article/Retrocomputing.md#z-machine | |
148 | [C++]: http://www.open-std.org/jtc1/sc22/wg21/ | |
149 | [Funicular]: ../article/Tools.md#funicular | |
150 | [Commodore 64]: ../article/Retrocomputing.md#commodore-64 | |
151 | [Apple II]: ../article/Retrocomputing.md#apple-ii | |
152 | [The Platform]: ../article/Platforms.md#the-cats-eye-technologies-platform | |
153 | [FreeBSD]: https://www.freebsd.org/ | |
154 |
1306 | 1306 | [games]: ../article/Games.md |
1307 | 1307 | [gewgaws]: ../article/Gewgaws.md |
1308 | 1308 | [platforms]: ../article/Platforms.md |
1309 | [JaC64]: ../article/Retrocomputing.md#commodore-64 | |
1310 | [Zplet]: ../article/Retrocomputing.md#z-machine | |
1309 | [JaC64]: ../article/Forks.md#jac64 | |
1310 | [Zplet]: ../article/Forks.md#zplet | |
1311 | 1311 | [Z-Machine code]: ../article/Retrocomputing.md#z-machine |
1312 | 1312 | [Javascript]: ../article/Project%20Dependencies.md#javascript |
1313 | 1313 | [Web Workers]: https://en.wikipedia.org/wiki/Web_worker |
4 | 4 | * common authors: Chris Pressey |
5 | 5 | |
6 | 6 | This is a list of languages that Cat's Eye Technologies has built an implementation for |
7 | (or simply maintains a fork of), but which were not designed by Cat's Eye Technologies. | |
8 | (For those, see [Languages](../article/Languages.md).) | |
7 | but which were not designed by Cat's Eye Technologies. For those, see [Languages](Languages.md). | |
8 | ||
9 | Note that Cat's Eye Technologies also maintains some [forks](Forks.md) of some language projects. | |
9 | 10 | |
10 | 11 | ### PL-{GOTO}.NET |
11 | 12 | |
311 | 312 | * in distribution: [ALPACA distribution](http://catseye.tc/distribution/ALPACA_distribution) |
312 | 313 | |
313 | 314 | Wireworld, in ALPACA. |
314 | ||
315 | Forked Language Projects | |
316 | ------------------------ | |
317 | ||
318 | ### miniscm | |
319 | ||
320 | * implementation of: [Scheme][] (R4RS) | |
321 | * implementation type: interpreter | |
322 | * license: Public Domain | |
323 | * host language: [ANSI C][] | |
324 | * inception date: Nov 5, 1989 | |
325 | * in distribution: [Minischeme distribution](http://catseye.tc/distribution/Minischeme_distribution) | |
326 | ||
327 | Forked in order to make it build on [AmigaDOS 1.3][]. | |
328 | ||
329 | Fork began Dec 13, 2011. | |
330 | ||
331 | ### OpenZz | |
332 | ||
333 | * implementation of: [Zz][] | |
334 | * implementation type: interpreter | |
335 | * license: LGPL | |
336 | * host language: [C99][] | |
337 | * inception date: Jan 7, 2002 | |
338 | * in distribution: [OpenZz distribution](http://catseye.tc/distribution/OpenZz_distribution) | |
339 | ||
340 | Forked because [Zzrk][] depends on it, and I want to maintain that. | |
341 | ||
342 | Note that while most of the code is LGPL, the REPL is GPL. | |
343 | ||
344 | Fork began Feb 1, 2012. | |
345 | 315 | |
346 | 316 | - - - - |
347 | 317 |
58 | 58 | |
59 | 59 | Emulators: The `x64` executable from [VICE](http://vice-emu.sourceforge.net/), written in C99 and |
60 | 60 | distributed under the GPL, is a generally recommended emulator for the Commodore 64. |
61 | Also, [JaC64](https://github.com/catseye/JaC64) is a GPL Java application which emulates a Commodore 64. | |
61 | Also, [JaC64][] is a GPL Java application which emulates a Commodore 64. | |
62 | 62 | Cat's Eye Technologies uses it to showcase our Commodore 64 games as online installations, using Java Web Start. |
63 | 63 | We forked it to fix some bugs and because mainline development seemed stalled. |
64 | 64 | |
252 | 252 | |
253 | 253 | Here are its [specifications documents](http://inform-fiction.org/zmachine/standards/). |
254 | 254 | |
255 | Emulators: [Zplet](https://github.com/catseye/Zplet/) is a Java application which emulates a Z-Machine. | |
255 | Emulators: [Zplet][] is a Java application which emulates a Z-Machine. | |
256 | 256 | There are other, much better emulators, such as Frotz. |
257 | 257 | |
258 | 258 | #### The Never-Ending Maze |
321 | 321 | [Commodore BASIC 2.0]: ../article/Retrocomputing.md#commodore-basic-20 |
322 | 322 | [Applesoft BASIC]: ../article/Retrocomputing.md#applesoft-basic |
323 | 323 | [Blurry Memories of DOS Programming]: ../view/The-Dossier/article/Blurry%20Memories%20of%20DOS%20Programming.md |
324 | ||
324 | [JaC64]: ../article/Forks.md#jac64 | |
325 | [Zplet]: ../article/Forks.md#zplet | |
326 |
7 | 7 | |
8 | 8 | [Formats][] often have tools for processing them, and those are listed along with the format |
9 | 9 | instead of here. |
10 | ||
11 | Note that Cat's Eye Technologies also maintains some [forks](Forks.md) of some tools. | |
10 | 12 | |
11 | 13 | ### Console::Virtual |
12 | 14 | |
342 | 344 | * reference-distribution: [SixtyPical distribution](http://catseye.tc/distribution/SixtyPical_distribution) |
343 | 345 | |
344 | 346 | A tiny (44 byte) "display hack" for the Commodore 64. |
345 | ||
346 | Forked Tools | |
347 | ------------ | |
348 | ||
349 | ### ee | |
350 | ||
351 | * development-stage: mature | |
352 | * reference-distribution: [ee distribution](http://catseye.tc/distribution/ee_distribution) | |
353 | ||
354 | `ee` is the "easy editor" which comes with [FreeBSD][]. Cat's Eye Technologies | |
355 | has forked it for use in [The Platform][]. | |
356 | ||
357 | ### tideay | |
358 | ||
359 | * authors: Paul Harrison, Chris Pressey | |
360 | * inception-date: Apr 2013 | |
361 | * development-stage: work in progress | |
362 | * reference-distribution: [tideay distribution](http://catseye.tc/distribution/tideay_distribution) | |
363 | ||
364 | `tideay` is Cat's Eye Technologies' fork of `yaedit`, a GtkSourceView-based | |
365 | text editor written by Paul Harrison. In addition to the | |
366 | features provided by `yaedit`, `tideay` supports things such as | |
367 | string-rewriting-based editing commands. | |
368 | ||
369 | #### Implementation: tideay (Python) | |
370 | ||
371 | * reference: true | |
372 | * license: GPL | |
373 | * host-language: [Python][] | |
374 | 347 | |
375 | 348 | Archival Tools |
376 | 349 | -------------- |
1787 | 1787 | "reponame": "Maxixe", |
1788 | 1788 | "tag-style": "new" |
1789 | 1789 | }, |
1790 | "Minischeme distribution": { | |
1791 | "description": "Cat's Eye Technologies' fork of the original Mini-scheme distribution.\n", | |
1792 | "entries": [ | |
1793 | "miniscm" | |
1794 | ], | |
1795 | "fixed-tag": "0.85ce1", | |
1796 | "fork": true, | |
1797 | "releases": [], | |
1798 | "reponame": "minischeme" | |
1799 | }, | |
1800 | 1790 | "Muriel distribution": { |
1801 | 1791 | "entries": [ |
1802 | 1792 | "muriel.pl" |
1879 | 1869 | "version": "1.0" |
1880 | 1870 | } |
1881 | 1871 | ] |
1882 | }, | |
1883 | "OpenZz distribution": { | |
1884 | "description": "Cat's Eye Technologies' fork of OpenZz, an open-source implementation\nof the dynamic grammar-based language Zz.\n", | |
1885 | "entries": [ | |
1886 | "OpenZz" | |
1887 | ], | |
1888 | "fixed-tag": "1.0.4-4ce1", | |
1889 | "fork": true, | |
1890 | "releases": [], | |
1891 | "reponame": "OpenZz" | |
1892 | 1872 | }, |
1893 | 1873 | "PL-{GOTO}.NET distribution": { |
1894 | 1874 | "entries": [ |
3386 | 3366 | } |
3387 | 3367 | ] |
3388 | 3368 | }, |
3389 | "ee distribution": { | |
3390 | "description": "Cat's Eye Technologies' fork of `ee`, the \"easy editor\" which comes with [[FreeBSD]].\nWe forked it to allow easier bundling, namely into [[The Platform]].\n", | |
3391 | "entries": [ | |
3392 | "ee" | |
3393 | ], | |
3394 | "fixed-tag": "1.5.2ce1", | |
3395 | "fork": true, | |
3396 | "releases": [], | |
3397 | "reponame": "ee" | |
3398 | }, | |
3399 | 3369 | "erlaunch distribution": { |
3400 | 3370 | "discontinued": true, |
3401 | 3371 | "releases": [ |
3657 | 3627 | ], |
3658 | 3628 | "reponame": "stringie", |
3659 | 3629 | "tag-style": "new" |
3660 | }, | |
3661 | "tideay distribution": { | |
3662 | "entries": [ | |
3663 | "tideay" | |
3664 | ], | |
3665 | "fixed-tag": "OMIT", | |
3666 | "releases": [], | |
3667 | "reponame": "tideay" | |
3668 | 3630 | }, |
3669 | 3631 | "toolshelf distribution": { |
3670 | 3632 | "entries": [ |
0 | { | |
1 | "ee distribution": { | |
2 | "entries": [ | |
3 | "ee" | |
4 | ], | |
5 | "fixed-tag": "1.5.2ce1", | |
6 | "releases": [], | |
7 | "reponame": "ee" | |
8 | }, | |
9 | "Minischeme distribution": { | |
10 | "entries": [ | |
11 | "miniscm" | |
12 | ], | |
13 | "fixed-tag": "0.85ce1", | |
14 | "releases": [], | |
15 | "reponame": "minischeme" | |
16 | }, | |
17 | "OpenZz distribution": { | |
18 | "entries": [ | |
19 | "OpenZz" | |
20 | ], | |
21 | "fixed-tag": "1.0.4-4ce1", | |
22 | "releases": [], | |
23 | "reponame": "OpenZz" | |
24 | }, | |
25 | "tideay distribution": { | |
26 | "entries": [ | |
27 | "tideay" | |
28 | ], | |
29 | "fixed-tag": "master", | |
30 | "releases": [], | |
31 | "reponame": "tideay" | |
32 | }, | |
33 | "JaC64 distribution": { | |
34 | "entries": [ | |
35 | "JaC64" | |
36 | ], | |
37 | "fixed-tag": "master", | |
38 | "releases": [], | |
39 | "reponame": "JaC64" | |
40 | }, | |
41 | "Zplet distribution": { | |
42 | "entries": [ | |
43 | "Zplet" | |
44 | ], | |
45 | "fixed-tag": "master", | |
46 | "releases": [], | |
47 | "reponame": "Zplet" | |
48 | }, | |
49 | "linapple distribution": { | |
50 | "entries": [ | |
51 | "linapple" | |
52 | ], | |
53 | "fixed-tag": "catseye", | |
54 | "releases": [], | |
55 | "reponame": "linapple" | |
56 | }, | |
57 | "klaus distribution": { | |
58 | "entries": [ | |
59 | "klaus" | |
60 | ], | |
61 | "fixed-tag": "git.catseye.tc", | |
62 | "releases": [], | |
63 | "reponame": "klaus" | |
64 | }, | |
65 | "a2tools distribution": { | |
66 | "entries": [ | |
67 | "a2tools" | |
68 | ], | |
69 | "fixed-tag": "master", | |
70 | "releases": [], | |
71 | "reponame": "a2tools" | |
72 | } | |
73 | }⏎ |
25 | 25 | "anchor": "ms-dos", |
26 | 26 | "filename": "article/Retrocomputing.md" |
27 | 27 | }, |
28 | "JaC64": { | |
29 | "anchor": "commodore-64", | |
30 | "filename": "article/Retrocomputing.md" | |
31 | }, | |
32 | 28 | "MS-DOS Batchfile": { |
33 | 29 | "anchor": "ms-dos", |
34 | 30 | "filename": "article/Retrocomputing.md" |
49 | 45 | "anchor": "z80", |
50 | 46 | "filename": "article/Retrocomputing.md" |
51 | 47 | }, |
52 | "Zplet": { | |
53 | "anchor": "z-machine", | |
54 | "filename": "article/Retrocomputing.md" | |
55 | }, | |
56 | 48 | "v86": { |
57 | 49 | "anchor": "ms-dos", |
58 | 50 | "filename": "article/Retrocomputing.md" |
0 | Fork (schema) | |
1 | ============= | |
2 | ||
3 | This is a schema which defines, for now, a few rudimentary things about | |
4 | what properties Fork entries in Chrysoberyl should have. | |
5 | ||
6 | The order in which they are listed here induces an order in which they | |
7 | should appear on each entry. | |
8 | ||
9 | * implementation of: [Scheme][] (R4RS) | |
10 | * implementation type: interpreter | |
11 | * license: Public Domain | |
12 | * host language: [ANSI C][] | |
13 | * inception date: Nov 5, 1989 | |
14 | * in distribution: [Minischeme distribution](http://catseye.tc/distribution/Minischeme_distribution) | |
15 | ||
16 | ### original authors | |
17 | ||
18 | * optional: true | |
19 | ||
20 | original authors | |
21 | ||
22 | ### implementation of | |
23 | ||
24 | * optional: true | |
25 | ||
26 | implementation of | |
27 | ||
28 | ### implementation type | |
29 | ||
30 | * optional: true | |
31 | ||
32 | implementation type | |
33 | ||
34 | ### license | |
35 | ||
36 | license | |
37 | ||
38 | ### host language | |
39 | ||
40 | * optional: true | |
41 | ||
42 | what it's written in | |
43 | ||
44 | ### inception date | |
45 | ||
46 | * optional: true | |
47 | ||
48 | date | |
49 | ||
50 | ### development stage | |
51 | ||
52 | * optional: true | |
53 | ||
54 | development stage | |
55 | ||
56 | ### in distribution | |
57 | ||
58 | where it's at |
21 | 21 | ('Archived', 'Tool',), |
22 | 22 | ('Languages', 'Language',), |
23 | 23 | ('Language Implementations', 'Language Implementation',), |
24 | ('Forks', 'Fork',), | |
24 | 25 | ('Automata', 'Language',), |
25 | 26 | ('Gewgaws', 'Gewgaw',), |
26 | 27 | ('Events', 'Event',), |
44 | 45 | |
45 | 46 | def rewrite_documents(refdex): |
46 | 47 | for title, schema in ARTICLES: |
48 | if title in ('News',): | |
49 | continue | |
47 | 50 | print("{}...".format(title)) |
48 | 51 | filename = document_name(title) |
49 | 52 | document = read_document_from(filename) |
50 | 53 | document.rewrite_reference_links(refdex) |
54 | ||
51 | 55 | if schema: |
52 | 56 | schema_document = read_document_from("schema/{}.md".format(schema)) |
53 | 57 | schema = Schema(schema_document) |
54 | 58 | results = schema.check_documents([document]) |
55 | 59 | if results: |
56 | 60 | raise ValueError(json.dumps(results, indent=4, sort_keys=True)) |
57 | s = feedmark_markdownize(document, schema=schema) | |
58 | with open(document.filename, 'w') as f: | |
59 | f.write(s.encode('UTF-8')) | |
61 | ||
62 | text = feedmark_markdownize(document, schema=schema) | |
63 | with open(document.filename, 'w') as f: | |
64 | f.write(text.encode('UTF-8')) | |
60 | 65 | |
61 | 66 | |
62 | 67 | def accumulate_article_refdex(refdex): |
1 | 1 | # encoding: UTF-8 |
2 | 2 | |
3 | 3 | import json |
4 | #from optparse import OptionParser | |
5 | 4 | import os |
6 | 5 | import re |
7 | 6 | import sys |
8 | ||
9 | #sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), '..', 'src')) | |
10 | ||
11 | #from chrysoberyl import commands | |
12 | 7 | |
13 | 8 | |
14 | 9 | def create_shelf_catalog(): |
18 | 13 | |
19 | 14 | with open('distribution/distributions.json', 'r') as f: |
20 | 15 | distributions = json.loads(f.read()) |
16 | ||
17 | with open('distribution/forks.json', 'r') as f: | |
18 | forks = json.loads(f.read()) | |
19 | ||
20 | distributions.update(forks) | |
21 | 21 | |
22 | 22 | infos = {} |
23 | 23 | for (key, node) in sorted(distributions.iteritems()): |