Commit Graph

6255 Commits

Author SHA1 Message Date
Guido van Rossum 16221126d6 Added warning about ni's obsolescence. Retracted semantic changes
(i.e. when using ni, the old __init__.py semantics prevail!)
1997-09-07 03:02:39 +00:00
Guido van Rossum 593801142e Initial revision 1997-09-07 02:56:35 +00:00
Guido van Rossum f5f5fdbdd0 Significant speedup -- when a submodule imports a global module, add a
dummy entry to sys.modules, marking the absence of a submodule by the
same name.

Thus, if module foo.bar executes the statement "import time",
sys.modules['foo.time'] will be set to None, once the absence of a
module foo.time is confirmed (by looking for it in foo's path).

The next time when foo.bar (or any other submodule of foo) executes
"import time", no I/O is necessary to determine that there is no
module foo.time.

(Justification: It may seem strange to pollute sys.modules.  However,
since we're doing the lookup anyway it's definitely the fastest
solution.  This is the same convention that 'ni' uses and I haven't
heard any complaints.)
1997-09-06 20:29:52 +00:00
Guido van Rossum 81da02e6aa Added feeble test for reload() of packages and submodules. 1997-09-06 19:58:53 +00:00
Guido van Rossum 222ef56bbf Fix reload() for package submodules. 1997-09-06 19:41:09 +00:00
Guido van Rossum 17fc85f2f5 Phase two of package import. "import a.b.c" and all variants now do the
right thing.

Still to do:

- Make reload() of a submodule work.

- Performance tweaks -- currently, a submodule that tries to import a
global module *always* searches the package directory first, even if
the global module was already imported.  Not sure how to solve this
one; probably need to record misses per package.

- Documentation!
1997-09-06 18:52:03 +00:00
Guido van Rossum 114c1eabbb #Added prototype for PyObject_HasAttr() -- must've been an oversight. 1997-09-06 18:44:59 +00:00
Guido van Rossum 6c61242c78 Test set for package import. 1997-09-06 18:42:57 +00:00
Guido van Rossum d6bf45bcf6 Fixed some details of printing the str() of an exception. This fixes
a core dump when __str__() returns a non-string, and plugs a memory
leak as well: the result of PyObject_Str() was never DECREFed.
1997-09-05 19:11:53 +00:00
Guido van Rossum f394f56c2b Made the 'info' argument to SyntaxError optional, so phase-2 syntax
errors are handled (these gave ``TypeError: not enough arguments'').

Also changed its __str__() to correct a typo (missing self.) and
return str(self.msg) to ensure the result is always string.

Also changed the default __str__ to simply return str(self.args).
1997-09-05 19:00:56 +00:00
Fred Drake 49bb0e32a0 Fix in trailing comment: PyDict_SetItemString() does *not* consume a reference
count, PyList_SetItem() does.  Very confusing!
1997-09-05 17:53:53 +00:00
Guido van Rossum aee0bad0a5 First part of package support.
This doesn't yet support "import a.b.c" or "from a.b.c import x", but
it does recognize directories.  When importing a directory, it
initializes __path__ to a list containing the directory name, and
loads the __init__ module if found.

The (internal) find_module() and load_module() functions are
restructured so that they both also handle built-in and frozen modules
and Mac resources (and directories of course).  The imp module's
find_module() and (new) load_module() also have this functionality.
Moreover, imp unconditionally defines constants for all module types,
and has two more new functions: find_module_in_package() and
find_module_in_directory().

There's also a new API function, PyImport_ImportModuleEx(), which
takes all four __import__ arguments (name, globals, locals, fromlist).
The last three may be NULL.  This is currently the same as
PyImport_ImportModule() but in the future it will be able to do
relative dotted-path imports.

Other changes:

- bltinmodule.c: in __import__, call PyImport_ImportModuleEx().

- ceval.c: always pass the fromlist to __import__, even if it is a C
function, so PyImport_ImportModuleEx() is useful.

- getmtime.c: the function has a second argument, the FILE*, on which
it applies fstat().  According to Sjoerd this is much faster.  The
first (pathname) argument is ignored, but remains for backward
compatibility (so the Mac version still works without changes).

By cleverly combining the new imp functionality, the full support for
dotted names in Python (mini.py, not checked in) is now about 7K,
lavishly commented (vs. 14K for ni plus 11K for ihooks, also lavishly
commented).

Good night!
1997-09-05 07:33:22 +00:00
Guido van Rossum 026de19906 Added PyImport_ImportModuleEx(name, globals, locals, fromlist); this
is like PyImport_ImporModule(name) but receives the globals and locals
dict and the fromlist arguments as well.  (The name is a char*; the
others are PyObject*s).
1997-09-05 07:11:32 +00:00
Guido van Rossum 9eb671fac3 Contribution by Hannu Krosing (with some changes).
Added 'p' format character for Pascal string (i.e. leading length
byte).  This uses the count prefix line 's' does, except that the
count includes the length byte; i.e. '10p' takes 10 bytes packed but
has space for a length byte and 9 data bytes.
1997-09-05 07:08:39 +00:00
Guido van Rossum bd4435abcc Don't use ANSI string literal concatenation (everything is K&R compatible). 1997-09-05 07:01:19 +00:00
Guido van Rossum 8102c005e0 Get rid of most silly #include and #ifdefs near the top; these are all
obsolete now it includes Python.h.

Make all functions K&R compatible (Sue Williams).
1997-09-05 01:48:48 +00:00
Jeremy Hylton 6459627b12 Now produces some reassuring output. 1997-09-04 23:42:01 +00:00
Jeremy Hylton 9dc2b8ee07 Many more tests, including tests of many optional arguments. 1997-09-04 23:41:37 +00:00
Jeremy Hylton cb91404890 Several changes:
1. Fix bug in (de)compression objects.  The final string resize used
zst.total_out to determine the length of the string, but the
(de)compression object will output data a little bit at a time, which
means total_out is not the string size.  Fix: save original value of
total_out at the start of the call.

2. Be sure to Py_DECREF the result value if you exit with an
exception.

3. Use PyInt_FromLong instead of Py_BuildValue

4. include more constants from the zlib header file

5. Use PyErr_Format instead of using a local buffer and sprintf.
1997-09-04 23:39:23 +00:00
Guido van Rossum 898c915a31 Added some try-excepts so that it can be imported in restricted mode
(though some type names are undefined in that case, e.g. CodeType
(inaccessible), FileType (not always accessible), and TracebackType
and FrameType (inaccessible).
1997-09-04 22:12:34 +00:00
Guido van Rossum d807b7589b The re test suite is very slow on slower hosts.
To save time, only run the first and last 10 tests except in verbose mode.
1997-09-04 14:35:45 +00:00
Barry Warsaw c7736b9d49 Added first line to set Emacs makefile mode (pretty colors :-) 1997-09-04 13:05:14 +00:00
Barry Warsaw c12c62ee5a (py-parse-partial-sexp-works-p): Removed as obsolete. All current
Emacs and XEmacs versions should have working parse-partial-sexp's.

(py-emacs-features): Defined as future placeholder.
1997-09-04 04:18:07 +00:00
Guido van Rossum dc5d07d952 Different test for Unix -- rely on os.sep instead of sys.platform. 1997-09-03 23:12:18 +00:00
Guido van Rossum 2b3fd76cc7 One patch from Sjoerd and one from Jack.
Sjoerd: add separate administration of temporary files created y
URLopener.retrieve() so cleanup can properly remove them.  The old
code removed everything in tempcache which was a bad idea if the user
had passed a non-temp file into it.  (I added a line to delete the
tempcache in cleanup() -- it still seems to make sense.)

Jack: in basejoin(), interpret relative paths starting in "../".  This
is necessary if the server uses symbolic links.
1997-09-03 22:36:15 +00:00
Guido van Rossum f01dff7e93 Give in to Mike Meyer -- add *both* lib/python1.5/packages and
lib/site-python to the path (if they exist).  This is a reasonable
compromise.
1997-09-03 22:05:54 +00:00
Guido van Rossum ad87d3e826 Give in to Mike Meyer -- add *both* lib/python1.5/packages and
lib/site-python to the path (if they exist).  This is a reasonable
compromise.
1997-09-03 21:41:30 +00:00
Guido van Rossum 9efe8ef7a1 #Plug small memory leaks in constructors. 1997-09-03 18:19:40 +00:00
Guido van Rossum c3beda2f27 Plug small leaks: the [de]compress object itself was never freed. 1997-09-03 18:14:30 +00:00
Guido van Rossum d5f0ce9f28 Added some symbols (I'm afraid more will come). 1997-09-03 16:12:00 +00:00
Guido van Rossum fd91056d59 Change instructions to require use of PCbuild directory (instead of
just recommending it).  At Mark Hammond's request.
1997-09-03 16:11:19 +00:00
Guido van Rossum 9ca064fbb4 At Mark Hammond's suggestion:
- use the DLL versions of the C runtime (!)
- change path settings so intermediate files go to Debug/temp or Release/temp
- add resource file to python15.dll (can't remember what this does)
- add a separate project to build the parser module
1997-09-03 16:10:52 +00:00
Guido van Rossum 4a78a3cf3b Added empty PCbuild directory for use by the NT build process. 1997-09-03 15:37:50 +00:00
Guido van Rossum 64790de195 Added new flags and exceptions; removed AccessError exception. 1997-09-03 01:09:25 +00:00
Guido van Rossum d19c04a88e Change [_Py_]re_compile_pattern() to return a char*.
Since it only returns an error message (or NULL) there's no reason
for it to be unsigned char *, and various compilers like this better.
1997-09-03 00:47:36 +00:00
Guido van Rossum 5ade084902 Mod suggested by Donn Cave -- invoke makexp_aix relative to $0
so it doesn't have to be on $PATH.
1997-09-03 00:45:30 +00:00
Guido van Rossum 3f0bff666d Disable the portable multimedia modules (audioop, imageop, rgbimg) by
default since they don't work on 64-bit platforms.
1997-09-03 00:44:14 +00:00
Guido van Rossum fc6efffbf9 #Removed debug print that was accidentally left in. 1997-09-03 00:35:38 +00:00
Guido van Rossum 5ed5c4c364 Add the same _keep_alive patch (by Michael Scharff) that was added to
copy.deepcopy() a while ago.  Can't reproduce this but it doesn't
break anything and it looks like the code could have the same problem.
1997-09-03 00:23:54 +00:00
Guido van Rossum 15a40394b0 Fix the bug Jeremy was experiencing: both the close() and the
dealloc() functions contained code to free/DECREF the buffer
(there were differences between I and O objects but the logic bug was
the same).  Fixed this be setting the buffer pointer to NULL and
testing for that.  (This also makes it safe to call close() more than
once.)

XXX Worry: what if you try to read() or write() once the thing is
closed?
1997-09-03 00:09:26 +00:00
Jack Jansen 2d30840b92 Define BUILDNO in macbuildno.h (incremented by fullbuild) 1997-09-01 15:39:07 +00:00
Jack Jansen 68a0ee0a87 Can't remember... 1997-09-01 15:38:24 +00:00
Jack Jansen 898ac1bb46 Added GetTicks() here, so profiling can use a decent timer 1997-09-01 15:38:12 +00:00
Jack Jansen faad995380 Fullbuild now maintains BUILDNO for mac builds 1997-09-01 15:37:07 +00:00
Jack Jansen 04fb06f320 Names changed 1997-09-01 15:36:42 +00:00
Guido van Rossum 625f40de05 #typo 1997-08-30 20:04:42 +00:00
Guido van Rossum 28cad964ec Document newly revamped site configuration mechanism.
Damn the criticism in c.l.p!
1997-08-30 20:03:28 +00:00
Guido van Rossum 36764b8b0e Added docs for 'user' customization module. Renamed libuser.tex
(which had UserDict/UserList) to libuserdict.tex.
1997-08-30 20:02:25 +00:00
Guido van Rossum d7ed683a7e Inline PyObject_CallObject (Marc-Andre Lemburg). 1997-08-30 15:02:50 +00:00
Guido van Rossum b2afc811c2 Added os.altsep; this is '/' on DOS/Windows, and None on systems with
a sane filename syntax.
1997-08-29 22:37:44 +00:00