git @ Cat's Eye Technologies Chrysoberyl / 33e4782
Merge pull request #36 from catseye/forks-article Forks article Chris Pressey authored 6 years ago GitHub committed 6 years ago
11 changed file(s) with 313 addition(s) and 121 deletion(s). Raw diff Collapse all Expand all
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
13061306 [games]: ../article/Games.md
13071307 [gewgaws]: ../article/Gewgaws.md
13081308 [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
13111311 [Z-Machine code]: ../article/Retrocomputing.md#z-machine
13121312 [Javascript]: ../article/Project%20Dependencies.md#javascript
13131313 [Web Workers]: https://en.wikipedia.org/wiki/Web_worker
44 * common authors: Chris Pressey
55
66 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.
910
1011 ### PL-{GOTO}.NET
1112
311312 * in distribution: [ALPACA distribution](http://catseye.tc/distribution/ALPACA_distribution)
312313
313314 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.
345315
346316 - - - -
347317
5858
5959 Emulators: The `x64` executable from [VICE](http://vice-emu.sourceforge.net/), written in C99 and
6060 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.
6262 Cat's Eye Technologies uses it to showcase our Commodore 64 games as online installations, using Java Web Start.
6363 We forked it to fix some bugs and because mainline development seemed stalled.
6464
252252
253253 Here are its [specifications documents](http://inform-fiction.org/zmachine/standards/).
254254
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.
256256 There are other, much better emulators, such as Frotz.
257257
258258 #### The Never-Ending Maze
321321 [Commodore BASIC 2.0]: ../article/Retrocomputing.md#commodore-basic-20
322322 [Applesoft BASIC]: ../article/Retrocomputing.md#applesoft-basic
323323 [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
77
88 [Formats][] often have tools for processing them, and those are listed along with the format
99 instead of here.
10
11 Note that Cat's Eye Technologies also maintains some [forks](Forks.md) of some tools.
1012
1113 ### Console::Virtual
1214
342344 * reference-distribution: [SixtyPical distribution](http://catseye.tc/distribution/SixtyPical_distribution)
343345
344346 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][]
374347
375348 Archival Tools
376349 --------------
17871787 "reponame": "Maxixe",
17881788 "tag-style": "new"
17891789 },
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 },
18001790 "Muriel distribution": {
18011791 "entries": [
18021792 "muriel.pl"
18791869 "version": "1.0"
18801870 }
18811871 ]
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"
18921872 },
18931873 "PL-{GOTO}.NET distribution": {
18941874 "entries": [
33863366 }
33873367 ]
33883368 },
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 },
33993369 "erlaunch distribution": {
34003370 "discontinued": true,
34013371 "releases": [
36573627 ],
36583628 "reponame": "stringie",
36593629 "tag-style": "new"
3660 },
3661 "tideay distribution": {
3662 "entries": [
3663 "tideay"
3664 ],
3665 "fixed-tag": "OMIT",
3666 "releases": [],
3667 "reponame": "tideay"
36683630 },
36693631 "toolshelf distribution": {
36703632 "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 }
2525 "anchor": "ms-dos",
2626 "filename": "article/Retrocomputing.md"
2727 },
28 "JaC64": {
29 "anchor": "commodore-64",
30 "filename": "article/Retrocomputing.md"
31 },
3228 "MS-DOS Batchfile": {
3329 "anchor": "ms-dos",
3430 "filename": "article/Retrocomputing.md"
4945 "anchor": "z80",
5046 "filename": "article/Retrocomputing.md"
5147 },
52 "Zplet": {
53 "anchor": "z-machine",
54 "filename": "article/Retrocomputing.md"
55 },
5648 "v86": {
5749 "anchor": "ms-dos",
5850 "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
2121 ('Archived', 'Tool',),
2222 ('Languages', 'Language',),
2323 ('Language Implementations', 'Language Implementation',),
24 ('Forks', 'Fork',),
2425 ('Automata', 'Language',),
2526 ('Gewgaws', 'Gewgaw',),
2627 ('Events', 'Event',),
4445
4546 def rewrite_documents(refdex):
4647 for title, schema in ARTICLES:
48 if title in ('News',):
49 continue
4750 print("{}...".format(title))
4851 filename = document_name(title)
4952 document = read_document_from(filename)
5053 document.rewrite_reference_links(refdex)
54
5155 if schema:
5256 schema_document = read_document_from("schema/{}.md".format(schema))
5357 schema = Schema(schema_document)
5458 results = schema.check_documents([document])
5559 if results:
5660 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'))
6065
6166
6267 def accumulate_article_refdex(refdex):
11 # encoding: UTF-8
22
33 import json
4 #from optparse import OptionParser
54 import os
65 import re
76 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
127
138
149 def create_shelf_catalog():
1813
1914 with open('distribution/distributions.json', 'r') as f:
2015 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)
2121
2222 infos = {}
2323 for (key, node) in sorted(distributions.iteritems()):