Add a single Python-wide (!) lock on import. Only one thread at a
time can be in PyImport_ImportModuleEx(). Recursive calls from the
same thread are okay.
Potential problems:
- The lock should really be part of the interpreter state rather than
global, but that would require modifying more files, and I first want
to figure out whether this works at all.
- One could argue that the lock should be per module -- however that
would be complicated to implement. We would have to have a linked
list of locks per module name, *or* invent a new object type to
represent a lock, so we can store the locks in the module or in a
separate dictionary. Both seem unwarranted. The one situation where
this can cause problems is when loading a module takes a long time,
e.g. when the module's initialization code interacts with the user --
during that time, no other threads can run. I say, "too bad."
Fred Drake [Tue, 3 Mar 1998 22:02:19 +0000 (22:02 +0000)]
Convert LaTeX support to create a new class of documents. HTML generation
now requires LaTeX2HTML 98.1p1 or newer (& and is still in progress).
This means that doing things to change the formatting of the manuals (at the
"normal user" level, like A4 paper), can happen in just one place, rather
than in each document file.
Instead of 'import mac', use 'import os' -- this way, the path syntax
manipulation routines can be used on non-Mac platforms (e.g. to
manipulate pathnames in a Mac specific archive).
Fred Drake [Fri, 27 Feb 1998 14:54:06 +0000 (14:54 +0000)]
When "declaring" a module using \*modindex{}, and * doesn't start with "ref",
set up the indexsubitem to "(in module #1)" automatically. This reduces the
amount of markup needed in the module docs and, more importantly, makes it
o.k. to leave out in simple sections. \setindexsubitem{} can still be used
to change or reset it.
Fred Drake [Fri, 27 Feb 1998 05:18:28 +0000 (05:18 +0000)]
Use a Python script to create "empty" indexes. This solves Guido's
corrupted file problem and avoids the shell escape interpretation
portability problem. ;-( See comments at top of newind.py for an
explanation.
Guido van Rossum [Thu, 26 Feb 1998 17:25:02 +0000 (17:25 +0000)]
New version of tb_lineno(), this time *not* using try-except, to avoid
disturbing the current exception, and returning tb.tb_lineno, which is
the line number of thr traceback, rather than the current line number.
By Jim Hugunin.
Guido van Rossum [Wed, 25 Feb 1998 20:50:32 +0000 (20:50 +0000)]
A working version of the 'args' command (it prints the current values
of the variables known to hold arguments, but that's as close as I can
get, and generally it's close enough).
Barry Warsaw [Wed, 25 Feb 1998 16:45:43 +0000 (16:45 +0000)]
(py-execute-region): Simplified calculation of temporary file name.
When running synchronously in a subproc buffer, be sure to
pop-to-buffer so the output is visible.
Fred Drake [Mon, 23 Feb 1998 21:37:27 +0000 (21:37 +0000)]
Add support for hyperref package. This builds the PDF outline, makes the ToC
and index "hot", etc.
Updated a comment about fncychap.
Removed unused minitoc support; I'm not going to use it. Something that makes
more sense with the Python lib ref can be done with reasonable effort, and can
wait a little while.
Fred Drake [Sun, 22 Feb 1998 19:47:13 +0000 (19:47 +0000)]
Changed way *.ind are forced to exist; the files are now reset to contain
an empty index instead of touched. Note that for modindex.ind, this also
includes "\label{modindex}" so that the modindex.py script doesn't change
the set of labels in the document.
Guido van Rossum [Sat, 21 Feb 1998 20:02:09 +0000 (20:02 +0000)]
Major overhaul. Don't use global variable (e.g. verbose); use
instance variables. Make all global functions methods, for easy
overriding. Restructure getpage() for easy overriding. Add
save_pickle() method and load_pickle() global function to make it
easier for other programs to emulate the toplevel interface.
Jack Jansen [Fri, 20 Feb 1998 16:02:09 +0000 (16:02 +0000)]
Regenerated from Universal Headers 3.0.1. Some new calls are
blacklisted, because they are not available in classic 68k programs,
and bgen doesn't have a way to put #ifdef/#endif in the generated
code. For now we only implement calls that work on all three models.