comparison README @ 781:eba92770173a

[xemacs-hg @ 2002-03-18 10:13:39 by ben] stragglers: config.inc.samp, xemacs.mak: Deal with never-ending perl quoting problems. README: Include a long, long description of the suggested directory layout for developing XEmacs. This should probably go as part of a larger document, a "Getting Started with Developing XEmacs". #### Does such a document exist? etc\unicode\mule-ucs\*: New directory, containing translation files for the remaining charsets that are not in unicode\unicode-consortium but are in mule-ucs. etc\unicode\other\*: New directory, containing translation files made up on an ad-hoc basis. etc\unicode\README: Update. * Some ChangeLog entries from stuff that got applied long ago never got checked in, due to the nasty SCCS "oops, i forgot again ..." bug. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. dumped-lisp.el: Load the remaining languages -- lao, indian, devanagari, tibetan. Load new file mule-msw-init-late. unicode.el: Load the new tables for Ethiopic, Vietnamese, and other languages extracted from mule-ucs. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. dumped-lisp.el: Load the remaining languages -- lao, indian, devanagari, tibetan. Load new file mule-msw-init-late. unicode.el: Load the new tables for Ethiopic, Vietnamese, and other languages extracted from mule-ucs. mule\lao.el: Convert stuff to XEmacs-style. mule\thai-xtis.el: Move thai-xtis-chars.el stuff to here, since we can now handle encountering characters of a charset before the charset is defined. mule\thai-xtis-chars.el: Removed, moved into thai-xtis.el. mule\mule-msw-init.el: Move some stuff into mule-msw-init-late.el, which references charsets and thus needs to be delayed until after all charsets have been created. mule\mule-msw-init-late.el: New file, some stuff from mule-msw-init.el. fns.c, lread.c: Add variable require-prints-loading-message to cause loading messages to get printed when a file is loading during a "require", which normally doesnt happen. This can be set using env var XEMACSDEBUG to debug problems with non-interactive compilation. Modify load-internal so it prints "Requiring: ..." instead of "Loading: ..." when appropriate.
author ben
date Mon, 18 Mar 2002 10:13:39 +0000
parents 3e13cd716cff
children 715eed24e30e
comparison
equal deleted inserted replaced
780:578cb2932d72 781:eba92770173a
108 and read that section using the Info files that come with XEmacs.) 108 and read that section using the Info files that come with XEmacs.)
109 See `etc/MAILINGLISTS' for more information on mailing lists relating 109 See `etc/MAILINGLISTS' for more information on mailing lists relating
110 to XEmacs. 110 to XEmacs.
111 111
112 112
113 *** How do I get started developing XEmacs?
114
115 First, get yourself set up under CVS so that you can access the CVS
116 repositories containing the XEmacs sources and the XEmacs packages.
117
118 Next, set up your layout. This is important, as a good layout will
119 facilitate getting things done efficiently, while a bad layout will could
120 lead to disaster, as you can't figure out which code is the most recent,
121 which can be thrown away, etc. We suggest the following layout: (feel free
122 to make changes)
123
124 -- Everything goes under /src/xemacs (use a different directory if you
125 want). From now, instead of saying /src/xemacs, we use <xsrc-top>, to
126 make it easier in case someone picked a different directory.
127
128 -- Package source is in <xsrc-top>/package-src.
129
130 -- Installed packages go under <xsrc-top>/xemacs-packages, and
131 <xsrc-top>/mule-packages.
132
133 -- A "workspace" is a complete copy of the sources, in which you do work of
134 a particular kind. Workspaces can be differentiated by which branch of
135 the source tree they extend off of -- usually either the stable or
136 experimental, unless other branches have been created (for example, Ben
137 created a branch for his Mule work because (1) the project was long-term
138 and involved an enormous number of changes, (2) people wanted to be able
139 to look at what his work in progress, and (3) he wanted to be able to
140 check things in and in general use source-code control, since it was a
141 long-term project). Workspaces are also differentiated in what their
142 purpose is -- general working workspace, workspace for particular
143 projects, workspace keeping the latest copy of the code in one of the
144 branches without mods, etc.
145
146 -- Various workspaces are subdirectories under <xsrc-top>, e.g.:
147
148 -- <xsrc-top>/working (the workspace you're actively working on,
149 periodically synched up with the latest trunk)
150
151 -- <xsrc-top>/stable (for making changes to the stable version of
152 XEmacs, which sits on a branch)
153
154 -- <xsrc-top>/unsigned-removal (a workspace for a specific, difficult
155 task that's going to affect lots of source and take a long time, and
156 so best done in its own workspace without the interference of other
157 work you're doing. Also, you can commit just this one large change,
158 separate from all the other changes).
159
160 -- <xsrc-top>/latest (a copy of the latest sources on the trunk,
161 i.e. the experimental version of XEmacs, with no patches in it;
162 either update it periodically, by hand, or set up a cron job to do it
163 automatically). Set it up so it can be built, and build it so you
164 have a working XEmacs. (Building it might also go into the cron job.)
165
166 This workspace serves a number of purposes:
167 -- 1. You always have a recent version of XEmacs you can compare
168 against when something you're working on breaks. It's true
169 that you can do this with cvs diff, but when you need to do
170 some serious investigation, this method just fails.
171 -- 2. You (almost) always have a working, up-to-date executable that
172 can be used when your executable is crashing and you need to
173 keep developing it, or when you need an `xemacs' to build
174 packages, etc.
175 -- 3. When creating new workspaces, you can just copy the `latest'
176 workspace using GNU cp -a. You have all the .elc's built,
177 everything else probably configured, any spare files in place
178 (e.g. some annoying xpm.dll under Windows, etc.).
179
180 -- <xsrc-top>/latest-stable/ (equivalent to <xsrc-top>/latest/, but
181 for the Stable branch of XEmacs, rather than the Experimental branch
182 of XEmacs). This may or may not be necessary depending on how much
183 development you do of the stable branch.
184
185 -- <xsrc-top>/xemacsweb is a workspace for working on the XEmacs web site.
186
187 -- <xsrc-top>/in-patches for patches received from email and saved to files.
188
189 -- <xsrc-top>/out-patches for locally-generated patches to be sent to
190 xemacs-patches@xemacs.org. Less useful now that the patcher util has been
191 developed.
192
193 -- <xsrc-top>/build, for build trees when compiling and testing XEmacs with
194 various configuration options turned off and on. The scripts in
195 xemacs-builds/ben (see below) can be used to automate building XEmacs
196 workspaces with many different configuration options and automatically
197 filtering out the normal output so that you see only the abnormal
198 output.
199
200 -- <xsrc-top>/xemacs-builds, for the xemacs-builds module, which you need
201 to check out separately in CVS. This contains scripts used for building
202 XEmacs, automating and simplifying using CVS, etc. Under various
203 people's directories are their own build and other scripts. The
204 currently most-maintained scripts are under ben/, where there are easily
205 configurable scripts that can be used to easily build any workspace
206 (esp. if you've more or less followed the layout presented above)
207 unattended, with one or more configuration states (there's a
208 pre-determined list of the most useful, but it's easy to change). The
209 output is filtered and split up in various ways so that you can identify
210 which output came from where, and you can see the output either full or
211 with all "normal" output except occasional status messages filtered so
212 that you only see the abnormal ones.
213
113 *** What's the basic layout of the code? 214 *** What's the basic layout of the code?
114 215
115 The file `configure' is a shell script to acclimate XEmacs to the 216 The file `configure' is a shell script to acclimate XEmacs to the
116 oddities of your processor and operating system. It will create a 217 oddities of your processor and operating system. It will create a
117 file named `Makefile' (a script for the `make' program), which helps 218 file named `Makefile' (a script for the `make' program), which helps