-
Notifications
You must be signed in to change notification settings - Fork 0
/
.README
216 lines (216 loc) · 8.31 KB
/
.README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
##############################################################################
##
## Copyright (C) 2020-2023 Frank Eskesen.
##
## This file is free content, distributed under the MIT license.
## (See accompanying file LICENSE.MIT or the original contained
## within https://opensource.org/licenses/MIT)
##
##############################################################################
##
## Title-
## /home/data/home/.README
##
## Purpose-
## Describe subdirectory content.
##
## Last change date-
## 2023/08/06
##
## Implementation notes-
## This distribution is kept locally in /home/data/home/. In addition
## to this public distribution, the /home/data/. directory contains
## information shared between multiple machines.
##
## Because java web applications cannot use links when running under
## Cygwin, we use a direct path to "/home/data/web/database/" instead.
## (If that directory is missing when running make from
## "~/obj/java/Webapp", installation instructions are provided.)
##
## Subdirectory information-
## .git The git repository
## bat Cygwin/Linux batch files, most using the bash script engine.
## bin Binary executable (placeholder.)
## obj Object subdirectory.
## src Source files.
## usr Imported files (content not distributed.)
## Kept here for personal machine-to-machine backup.
## (TODO: Provide a mechanism for auto-downloading external content.)
##
## Development tree installation-
## Create build subdirectory (These instructions assume it's "~/build")
## mkdir ~/build; cd ~/build
## ln -s <this subdirectory> home
## ln -s home/bat .
## ln -s home/src .
## ln -s home/usr .
## mkdir bin
## mkdir obj
## cd obj
## ln -s ../home/obj/.UPDATE .
## .UPDATE
##
## Make sure ~/build/bat and ~/build/bin are in your $PATH
## export PATH="$HOME/build/bat:$HOME/build/bin:$PATH"
## (Normally placed somewhere in .bash_profile)
##
## Create build and test prerequisites
## cd ~/build/obj/cpp/sys
## make install
##
## Create C++ libraries
## cd ~/build/obj/cpp/lib
## make
##
## (Library installation/regression testing)
## cd ~/build/obj/cpp/lib/pub/Test
## regression
##
## cd ~/build/obj/cpp/lib/dev/Test
## regression
##
## (The other C++ libraries have Test subdirectories, but not
## regression test suites.)
##
##
## Included C++ libraries-
## src/cpp/inc-
## src/cpp/lib (built in obj/cpp/lib)-
## This is a set of five sub-libraries: com, dev, gui, obj, and pub.
## For each library LIB, the interfaces are defined in src/cpp/inc/LIB;
## outline code is in src/cpp/lib/LIB; and a set of regression tests
## are in src/cpp/lib/LIB/Test.
## The com library contains a large set of general-purpose functions.
##
## The dev library currently contains a set of functions used to build
## an HTTP client and server. Once completely operational, these
## functions will be moved to the pub library.
##
## The gui library contains a set of graphical user interface objects
## primarily used to support the Xcb editor.
##
## The obj library contains a small set of objects. The Object class
## defines an object to be deleted when its reference count becomes 0.
## The Ref object references an object. The Object/Ref relationship
## is completely thread-safe.
##
## The pub library is the current function development library.
##
## The com and obj libraries operate on Linux, Cygwin, and Windows
## systems. The dev, gui, and pub libraries are limited to Linux and
## Cygwin only. Most Linux testing is done using Red Hat Fedora, but
## Ubuntu is also used for regression testing. Cygwin is tested using
## Windows 10.
##
## Windows functionality is no longer developed or regression tested,
## and the object subdirectory required to build using Windows is not
## provided. (It exists but has not recently been regression tested.)
##
## C++ (interesting) packages-
## ** ALL included packages require library package installation **
##
## ~/obj/cpp/Clone
## Clone subdirectory using rdserver/rdclient pair.
## Similar to rsync. See S/.README for detailed information.
##
## ~/obj/cpp/Edit
## Source code editor using ncurses library. (Well tested.)
##
## ~/obj/cpp/Edit/Xcb
## Source code editor using xcb interfaces.
## (Contains some WORKING sample xcb interface usage I couldn't find
## anywhere else.)
##
## ~/obj/cpp/Fileman
## Subdirectory file search, uses src/cpp/inc/pub/Fileman.h interfaces.
## Subdirectory file checker. (Used to find/fix source problems.)
##
## ~/obj/cpp/Forth
## A trivial Forth interpreter. (Only usable from console.)
## Derived from src/asm/x86/tlc.32, omitting compile features.
##
## ~/obj/cpp/Howto
## A somewhat useful set of C++ how-to reminders.
## Most used: src/cpp/Howto/Getopt.cpp (skeleton program)
##
## ~/obj/cpp/HTTP
## Sample SLL client/server programs.
## One uses openssl socket layer, another uses openssl/bio.h interfaces.
##
## ~/obj/cpp/Poker
## For Texas Hold-'em hand monte-carlo evaluation.
## (The self-play strategy needs work.)
##
## ~/obj/cpp/Sample
## A set of pretty naive sample programs. These are mostly used to
## get a handle on system interface usage.
##
## ~/obj/cpp/Sorter
## A comparison of different sorting techniques.
##
## ~/obj/cpp/Stock
## An attempt to beat the stock market using historical data.
## Result: Don't bet on the past predicting the future.
##
## ~/obj/cpp/Stress
## Some pub library stress tests.
##
## ~/obj/cpp/Util
## Some utility functions and tiny fun programs.
##
## ~/obj/cpp/Wilbur
## A set of tools used to evaluate word usage patterns.
## (VERY preliminary to a lanuage interpreter.)
## See also: ~/obj/cpp/Brian (Brian is dyslexic for Brain.)
##
## C# packages-
## ~/src/mcs/*
## ~/obj/mcs/*
## Mostly basic C# code. Nothing really new here.
## Contains some C++ code migrated to C#.
##
## Python packages-
## ~/obj/py/*
## Similarly to other compiled packages, compilation and execution run
## from the object directory even though the python byte code is kept
## in the source directory by the compiler.
## ~/src/py/lib
## Contains the python library. In order for python to find this library,
## use: (sudo) ln -s /usr/lib/python3.6/site-packages/lib ~/src/py/lib
## (for each python version used)
##
## ~/obj/py/aiml
## This is a wrapper for the AIML ALICE interpreter, with extensions.
## The interpreter runs both from an HTTP client and the local console.
##
## ~/obj/py/Brian
## Similar to ~/obj/cpp/Brian, an extendable command handling platform.
##
## ~/obj/py/Golf
## Migration of ~/obj/java/Webapp/usr/fne/golfer
## Java is becoming less usable as an application platform.
##
## ~/obj/py/Sample/Http{Client, Server, Middle}
## Example HTTP Client, Server, and Middle (forwarding) programs.
##
## ~/obj/py/site-packages/stdio
## A .c module allowing asynchronous console character input and output.
## Provides: Module stdio, methods: getch and putch
## Includes: setup.py (for site-package installation.)
##
##############################################################################
## Included OBSOLETE packages-
##
## src/asm/x86
## This is a set of OBSOLETE assembler programs. It contains a 16-bit
## and a 32-bit version of TLC, a trivial Forth (Threaded Language)
## Compiler. See src/cpp/Forth for the C++ version of this package.
##
## src/c/lib
## This has never been productively used except for a jpeg library.
## The jpeg library build has now been removed. Since it is provided
## with all major distributions, use the standard package instead.
## The src/c/inc/com and src/c/lib/com libraries are only used as a
## placeholder. No useful code is provided in src/c/.
##
##############################################################################