Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
2108470a
Commit
2108470a
authored
Oct 06, 1997
by
Guido van Rossum
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Done with adding changes from 1.4 till 1.5a3.
parent
c708f1e8
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
321 additions
and
76 deletions
+321
-76
Misc/NEWS
Misc/NEWS
+321
-76
No files found.
Misc/NEWS
View file @
2108470a
What's new in this release?
What's new in this release?
===========================
===========================
Below is a
partial list of changes. This list is much more detailed than
Below is a
list of all relevant changes since the release 1.4, up till
previous; however it is still not complete. I did go through my CVS logs
the release of 1.5a3. At the end is a list of changes made since
but ran out of time. Some changes made beteen Oct 1996 and April 1997
1.5a3 that will be in 1.5a4; this list is not yet complete and will be
have not yet been noted
.
merged with the main list later
.
A note on attributions: while I have sprinkled some names throughout
here, I'm grateful to many more people who remain anonymous. You may
find your name in the ACKS file. If you believe you deserve more
credit, let me know and I'll add you to the list!
Security
--------
- If you are using the setuid script C wrapper (Misc/setuid-prog.c),
please use the new version. The old version has a huge security leak.
Miscellaneous
Miscellaneous
-------------
-------------
- Because of various (small) incompatible changes in the Python
bytecode interpreter, the magic number for .pyc files has changed
again.
- The default module search path is now much saner. Both on Unix and
- The default module search path is now much saner. Both on Unix and
Windows, it is essentially derived from the path to the executable
Windows, it is essentially derived from the path to the executable
(which can be overridden by setting the environment variable
(which can be overridden by setting the environment variable
...
@@ -18,6 +33,10 @@ front of the default path, like in Unix (instead of overriding the
...
@@ -18,6 +33,10 @@ front of the default path, like in Unix (instead of overriding the
default path). On Windows, the directory containing the executable is
default path). On Windows, the directory containing the executable is
added to the end of the path.
added to the end of the path.
- A new version of python-mode.el for Emacs has been included. Also,
a new file ccpy-style.el has been added to configure Emacs cc-mode for
the preferred style in Python C sources.
- On Unix, when using sys.argv[0] to insert the script directory in
- On Unix, when using sys.argv[0] to insert the script directory in
front of sys.path, expand a symbolic link. You can now install a
front of sys.path, expand a symbolic link. You can now install a
program in a private directory and have a symbolic link to it in a
program in a private directory and have a symbolic link to it in a
...
@@ -48,12 +67,6 @@ when using the debugger or profiler (reported by Just van Rossum).
...
@@ -48,12 +67,6 @@ when using the debugger or profiler (reported by Just van Rossum).
The simplest example is ``def f((a,b),(c,d)): print a,b,c,d''; this
The simplest example is ``def f((a,b),(c,d)): print a,b,c,d''; this
would print the wrong value when run under the debugger or profiler.
would print the wrong value when run under the debugger or profiler.
- The sort() methods for lists no longer uses the C library qsort(); I
wrote my own quicksort implementation, with help from Tim Peters.
This solves a bug in dictionary comparisons on some Solaris versions
when Python is built with threads, and makes sorting lists even
faster.
- The hacks that the dictionary implementation used to speed up
- The hacks that the dictionary implementation used to speed up
repeated lookups of the same C string were removed; these were a
repeated lookups of the same C string were removed; these were a
source of subtle problems and don't seem to serve much of a purpose
source of subtle problems and don't seem to serve much of a purpose
...
@@ -65,6 +78,25 @@ removed from the sources.
...
@@ -65,6 +78,25 @@ removed from the sources.
- Plugged the two-byte memory leak in the tokenizer when reading an
- Plugged the two-byte memory leak in the tokenizer when reading an
interactive EOF.
interactive EOF.
- There's a -O option to the interpreter that removes SET_LINENO
instructions and assert statements (see below); it uses and produces
.pyo files instead of .pyc files. The speedup is only a few percent
in most cases. The line numbers are still available in the .pyo file,
as a separate table (which is also available in .pyc files). However,
the removal of the SET_LINENO instructions means that the debugger
(pdb) can't set breakpoints on lines in -O mode. The traceback module
contains a function to extract a line number from the code object
referenced in a traceback object. In the future it should be possible
to write external bytecode optimizers that create better optimized
.pyo files, and there should be more control over optimization;
consider the -O option a "teaser". Without -O, the assert statement
actually generates code that first checks __debug__; if this variable
is false, the assertion is not checked. __debug__ is a built-in
variable whose value is initialized to track the -O flag (it's true
iff -O is not specified). With -O, no code is generated for assert
statements, nor for code of the form ``if __debug__:
<something>
''.
Sorry, no further constant folding happens.
Performance
Performance
-----------
-----------
...
@@ -138,21 +170,18 @@ Friedrich.)
...
@@ -138,21 +170,18 @@ Friedrich.)
- There's a simple assert statement, and a new exception
- There's a simple assert statement, and a new exception
AssertionError. For example, ``assert foo > 0'' is equivalent to ``if
AssertionError. For example, ``assert foo > 0'' is equivalent to ``if
not foo > 0: raise AssertionError''. Sorry, the text of the asserted
not foo > 0: raise AssertionError''. Sorry, the text of the asserted
condition is not available; it would be too generate code for this.
condition is not available; it would be too complicated to generate
However, the text is displayed as part of the traceback! There's also
code for this (since the code is generated from a parse tree).
a -O option to the interpreter that removes SET_LINENO instructions,
However, the text is displayed as part of the traceback!
assert statements; it uses and produces .pyo files instead of .pyc
files (the line numbers are still available in the .pyo file, as a
- The raise statement has a new feature: when using "raise SomeClass,
separate table; but the removal of the SET_LINENO instructions means
somevalue" where somevalue is not an instance of SomeClass, it
that the debugger can't set breakpoints on lines in -O mode). In the
instantiates SomeClass(somevalue). In 1.5a4, if somevalue is an
future it should be possible to write external bytecode optimizers
instance of a *derived* class of SomeClass, the exception class raised
that create better optimized .pyo files. Without -O, the assert
is set to somevalue.__class__, and SomeClass is ignored after that.
statement actually generates code that first checks __debug__; if this
variable is false, the assertion is not checked. __debug__ is a
- Duplicate keyword arguments are now detected at compile time;
built-in variable whose value is initialized to track the -O flag
f(a=1,a=2) is now a syntax error.
(it's true iff -O is not specified). With -O, no code is generated
for assert statements, nor for code of the form ``if __debug__:
<something>
''. Sorry, no further constant folding happens.
Changes to builtin features
Changes to builtin features
...
@@ -161,7 +190,8 @@ Changes to builtin features
...
@@ -161,7 +190,8 @@ Changes to builtin features
- There's a new exception FloatingPointError (used only by Lee Busby's
- There's a new exception FloatingPointError (used only by Lee Busby's
patches to catch floating point exceptions, at the moment).
patches to catch floating point exceptions, at the moment).
- The obsolete exception ConflictError has been deleted.
- The obsolete exception ConflictError (presumably used by the long
obsolete access statement) has been deleted.
- There's a new function sys.exc_info() which returns the tuple
- There's a new function sys.exc_info() which returns the tuple
(sys.exc_type, sys.exc_value, sys.exc_traceback) in a thread-safe way.
(sys.exc_type, sys.exc_value, sys.exc_traceback) in a thread-safe way.
...
@@ -169,6 +199,20 @@ patches to catch floating point exceptions, at the moment).
...
@@ -169,6 +199,20 @@ patches to catch floating point exceptions, at the moment).
- There's a new variable sys.executable, pointing to the executable file
- There's a new variable sys.executable, pointing to the executable file
for the Python interpreter.
for the Python interpreter.
- The sort() methods for lists no longer uses the C library qsort(); I
wrote my own quicksort implementation, with lots of help (in the form
of a kind of competition) from Tim Peters. This solves a bug in
dictionary comparisons on some Solaris versions when Python is built
with threads, and makes sorting lists even faster.
- The semantics of comparing two dictionaries have changed, to make
comparison of unequal dictionaries faster. A shorter dictionary is
always considered smaller than a larger dictionary. For dictionaries
of the same size, the smallest differing element determines the
outcome (which yields the same results as before in this case, without
explicit sorting). Thanks to Aaron Watters for suggesting something
like this.
- The semantics of try-except have changed subtly so that calling a
- The semantics of try-except have changed subtly so that calling a
function in an exception handler that itself raises and catches an
function in an exception handler that itself raises and catches an
exception no longer overwrites the sys.exc_* variables. This also
exception no longer overwrites the sys.exc_* variables. This also
...
@@ -197,9 +241,9 @@ pystone benchmark.
...
@@ -197,9 +241,9 @@ pystone benchmark.
- Dictionary objects have several new methods; clear() and copy() have
- Dictionary objects have several new methods; clear() and copy() have
the obvious semantics, while update(d) merges the contents of another
the obvious semantics, while update(d) merges the contents of another
dictionary d into this one, overriding existing keys.
BTW, the
dictionary d into this one, overriding existing keys.
The dictionary
dictionary implementation file is now called dictobject.c rather than
implementation file is now called dictobject.c rather than the
the
confusing mappingobject.c.
confusing mappingobject.c.
- The intrinsic function dir() is much smarter; it looks in __dict__,
- The intrinsic function dir() is much smarter; it looks in __dict__,
__members__ and __methods__.
__members__ and __methods__.
...
@@ -220,13 +264,20 @@ phase is still random.
...
@@ -220,13 +264,20 @@ phase is still random.
global variable __builtins__ -- an empty directory will be provided
global variable __builtins__ -- an empty directory will be provided
by default.
by default.
- Guido's corollary to the "Don Beaudry h
ack": it is now possible to d
o
- Guido's corollary to the "Don Beaudry h
ook": it is now possible t
o
metaprogramming by using an instance as a base class. Not for the
do
metaprogramming by using an instance as a base class. Not for the
faint of heart; and undocumented as yet, but basically if a base class
faint of heart; and undocumented as yet, but basically if a base class
is an instance, its class will be instantiated to create the new
is an instance, its class will be instantiated to create the new
class. Jim Fulton will love it -- it also works with instances of his
class. Jim Fulton will love it -- it also works with instances of his
"extension classes", since it is triggered by the presence of a
"extension classes", since it is triggered by the presence of a
__class__ attribute on the purported base class.
__class__ attribute on the purported base class. See
Demo/metaclasses/index.html for an explanation and see that directory
for examples.
- Another change is that the Don Beaudry hook is now invoked when
*any* base class is special. (Up to 1.5a3, the *last* special base
class is used; in 1.5a4, the more rational choice of the *first*
special base class is used.)
- New optional parameter to the readlines() method of file objects.
- New optional parameter to the readlines() method of file objects.
This indicates the number of bytes to read (the actual number of bytes
This indicates the number of bytes to read (the actual number of bytes
...
@@ -234,6 +285,27 @@ read will be somewhat larger due to buffering reading until the end of
...
@@ -234,6 +285,27 @@ read will be somewhat larger due to buffering reading until the end of
the line). Some optimizations have also been made to speed it up (but
the line). Some optimizations have also been made to speed it up (but
not as much as read()).
not as much as read()).
- Complex numbers no longer have the ".conj" pseudo attribute; use
z.conjugate() instead, or complex(z.real, -z.imag). Complex numbers
now *do* support the __members__ and __methods__ special attributes.
- The complex() function now looks for a __complex__() method on class
instances before giving up.
- Long integers now support arbitrary shift counts, so you can now
write 1L
<
<
1000000
,
memory
permitting
.
(
Python
1
.
4
reports
"
outrageous
shift
count
for
this
.)
-
The
hex
()
and
oct
()
functions
have
been
changed
so
that
for
regular
integers
,
they
never
emit
a
minus
sign
.
For
example
,
on
a
32-bit
machine
,
oct
(
-1
)
now
returns
'
037777777777
'
and
hex
(
-1
)
returns
'
0xffffffff
'.
While
this
may
seem
inconsistent
,
it
is
much
more
useful
.
(
For
long
integers
,
a
minus
sign
is
used
as
before
,
to
fit
the
result
in
memory
:-
)
-
The
hash
()
function
computes
better
hashes
for
several
data
types
,
including
strings
,
floating
point
numbers
,
and
complex
numbers
.
New
extension
modules
New
extension
modules
---------------------
---------------------
...
@@ -243,13 +315,7 @@ Fulton and other folks at Digital Creations. These are much more
...
@@ -243,13 +315,7 @@ Fulton and other folks at Digital Creations. These are much more
efficient
than
their
Python
counterparts
StringIO
.
py
and
pickle
.
py
,
efficient
than
their
Python
counterparts
StringIO
.
py
and
pickle
.
py
,
but
don
'
t
support
subclassing
.
cPickle
.
c
clocks
up
to
1000
times
but
don
'
t
support
subclassing
.
cPickle
.
c
clocks
up
to
1000
times
faster
than
pickle
.
py
;
cStringIO
.
c
'
s
improvement
is
less
dramatic
but
faster
than
pickle
.
py
;
cStringIO
.
c
'
s
improvement
is
less
dramatic
but
still significant. The pickle.py module has been updated to make it
still
significant
.
compatible with the new binary format that cPickle.c produces (by
default it produces the old all-ASCII format compatible with the old
pickle.py, still much faster than pickle.py; it can read both
formats). A new helper module, copy_reg.py, is provided to register
extensions to the pickling code. (These are now identical to the
release 0.3 from Digital Creations.)
-
New
extension
module
zlibmodule
.
c
,
interfacing
to
the
free
zlib
-
New
extension
module
zlibmodule
.
c
,
interfacing
to
the
free
zlib
library
(
gzip
compatible
compression
).
There
'
s
also
a
module
gzip
.
py
library
(
gzip
compatible
compression
).
There
'
s
also
a
module
gzip
.
py
...
@@ -273,7 +339,16 @@ Changes in extension modules
...
@@ -273,7 +339,16 @@ Changes in extension modules
-
The
struct
extension
module
has
several
new
features
to
control
byte
-
The
struct
extension
module
has
several
new
features
to
control
byte
order
and
word
size
.
It
supports
reading
and
writing
IEEE
floats
even
order
and
word
size
.
It
supports
reading
and
writing
IEEE
floats
even
on platforms where this is not the native format.
on
platforms
where
this
is
not
the
native
format
.
It
uses
uppercase
format
codes
for
unsigned
integers
of
various
sizes
(
always
using
Python
long
ints
for
'
I
'
and
'
L
'),
'
s
'
with
a
size
prefix
for
strings
,
and
'
p
'
for
"
Pascal
strings
"
(
with
a
leading
length
byte
,
included
in
the
size
;
blame
Hannu
Krosing
).
A
prefix
'
>
' forces big-endian data
and '
<
'
forces
little-endian
data
;
these
also
select
standard
data
sizes
and
disable
automatic
alignment
(
use
pad
bytes
as
needed
).
-
The
array
module
supports
uppercase
format
codes
for
unsigned
data
formats
(
like
the
struct
module
).
-
The
fcntl
extension
module
now
exports
the
needed
symbolic
-
The
fcntl
extension
module
now
exports
the
needed
symbolic
constants
.
(
Formerly
these
were
in
FCNTL
.
py
which
was
not
available
constants
.
(
Formerly
these
were
in
FCNTL
.
py
which
was
not
available
...
@@ -282,6 +357,15 @@ or correct for all platforms.)
...
@@ -282,6 +357,15 @@ or correct for all platforms.)
-
The
extension
modules
dbm
,
gdbm
and
bsddb
now
check
that
the
-
The
extension
modules
dbm
,
gdbm
and
bsddb
now
check
that
the
database
is
still
open
before
making
any
new
calls
.
database
is
still
open
before
making
any
new
calls
.
-
The
dbhash
module
is
no
more
.
Use
bsddb
instead
.
(
There
'
s
a
third
party
interface
for
the
BSD
2
.
x
code
somewhere
on
the
web
;
support
for
bsddb
will
be
deprecated
.)
-
The
gdbm
module
now
supports
a
sync
()
method
.
-
The
socket
module
now
has
some
new
functions:
getprotobyname
(),
and
the
set
{
ntoh
,
hton
}{
s
,
l
}().
-
Various
modules
now
export
their
type
object:
socket
.
SocketType
,
-
Various
modules
now
export
their
type
object:
socket
.
SocketType
,
array
.
ArrayType
.
array
.
ArrayType
.
...
@@ -294,16 +378,19 @@ promiscuous mode.) Theres' also a new function getprotobyname().
...
@@ -294,16 +378,19 @@ promiscuous mode.) Theres' also a new function getprotobyname().
-
STDWIN
is
now
officially
obsolete
.
Support
for
it
will
eventually
-
STDWIN
is
now
officially
obsolete
.
Support
for
it
will
eventually
be
removed
from
the
distribution
.
be
removed
from
the
distribution
.
- The binascii extension module is now hopefully fully debugged. (XXX
-
The
binascii
extension
module
is
now
hopefully
fully
debugged
.
Oops -- Fredril Lundh promised me a fix that I never received.)
(
XXX
Oops
--
Fredrik
Lundh
promised
me
a
uuencode
fix
that
I
never
received
.)
- audioop.c: added a ratecv method
-
audioop
.
c:
added
a
ratecv
()
function
;
better
handling
of
overflow
in
add
().
-
posixmodule
.
c:
now
exports
the
O_*
flags
(
O_APPEND
etc
.).
On
-
posixmodule
.
c:
now
exports
the
O_*
flags
(
O_APPEND
etc
.).
On
Windows
,
also
O_TEXT
and
O_BINARY
.
The
'
error
'
variable
(
the
Windows
,
also
O_TEXT
and
O_BINARY
.
The
'
error
'
variable
(
the
exception
is
raises
)
is
renamed
--
its
string
value
is
now
"
os
.
error
",
exception
is
raises
)
is
renamed
--
its
string
value
is
now
"
os
.
error
",
so
newbies
don
'
t
believe
they
have
to
import
posix
(
or
nt
)
to
catch
so
newbies
don
'
t
believe
they
have
to
import
posix
(
or
nt
)
to
catch
it when they see os.error reported as posix.error.
it
when
they
see
os
.
error
reported
as
posix
.
error
.
The
execve
()
function
now
accepts
any
mapping
object
for
the
environment
.
-
A
new
version
of
the
al
(
audio
library
)
module
for
SGI
was
-
A
new
version
of
the
al
(
audio
library
)
module
for
SGI
was
contributed
by
Sjoerd
Mullender
.
contributed
by
Sjoerd
Mullender
.
...
@@ -315,7 +402,27 @@ successor, re.py.
...
@@ -315,7 +402,27 @@ successor, re.py.
-
The
"
new
"
module
(
which
creates
new
objects
of
various
types
)
once
-
The
"
new
"
module
(
which
creates
new
objects
of
various
types
)
once
again
has
a
fully
functioning
new
.
function
()
method
.
Dangerous
as
again
has
a
fully
functioning
new
.
function
()
method
.
Dangerous
as
ever!
ever
!
Also
,
new
.
code
()
has
several
new
arguments
.
-
A
problem
has
been
fixed
in
the
rotor
module:
on
systems
with
signed
characters
,
rotor-encoded
data
was
not
portable
when
the
key
contained
8-bit
characters
.
Also
,
setkey
()
now
requires
its
argument
rather
than
having
broken
code
to
default
it
.
-
The
sys
.
builtin_module_names
variable
is
now
a
tuple
.
Another
new
variables
in
sys
is
sys
.
executable
(
the
full
path
to
the
Python
binary
,
if
known
).
-
The
specs
for
time
.
strftime
()
have
undergone
some
revisions
.
It
appears
that
not
all
format
characters
are
supported
in
the
same
way
on
all
platforms
.
Rather
than
reimplement
it
,
we
note
these
differences
in
the
documentation
,
and
emphasize
the
shared
set
of
features
.
There
'
s
also
a
thorough
test
set
(
that
occasionally
finds
problems
in
the
C
library
implementation
,
e
.
g
.
on
some
Linuxes
),
thanks
to
Skip
Montanaro
.
-
The
nis
module
seems
broken
when
used
with
NIS
+;
unfortunately
nobody
knows
how
to
fix
it
.
It
should
still
work
with
old
NIS
.
New
library
modules
New
library
modules
...
@@ -341,7 +448,10 @@ Drake.
...
@@ -341,7 +448,10 @@ Drake.
-
New
module
code
.
py
.
The
function
code
.
compile_command
()
can
-
New
module
code
.
py
.
The
function
code
.
compile_command
()
can
determine
whether
an
interactively
entered
command
is
complete
or
not
,
determine
whether
an
interactively
entered
command
is
complete
or
not
,
distinguishing incomplete from invalid input.
distinguishing
incomplete
from
invalid
input
.
(
XXX
Unfortunately
,
this
seems
broken
at
this
moment
,
and
I
don
'
t
have
the
time
to
fix
it
.
It
'
s
probably
better
to
add
an
explicit
interface
to
the
parser
for
this
.)
-
There
is
now
a
library
module
xdrlib
.
py
which
can
read
and
write
the
-
There
is
now
a
library
module
xdrlib
.
py
which
can
read
and
write
the
XDR
data
format
as
used
by
Sun
RPC
,
for
example
.
It
uses
the
struct
XDR
data
format
as
used
by
Sun
RPC
,
for
example
.
It
uses
the
struct
...
@@ -353,6 +463,15 @@ Changes in library modules
...
@@ -353,6 +463,15 @@ Changes in library modules
-
Module
codehack
.
py
is
now
completely
obsolete
.
-
Module
codehack
.
py
is
now
completely
obsolete
.
-
The
pickle
.
py
module
has
been
updated
to
make
it
compatible
with
the
new
binary
format
that
cPickle
.
c
produces
.
By
default
it
produces
the
old
all-ASCII
format
compatible
with
the
old
pickle
.
py
,
still
much
faster
than
pickle
.
py
;
it
will
read
both
formats
automatically
.
A
few
other
updates
have
been
made
.
-
A
new
helper
module
,
copy_reg
.
py
,
is
provided
to
register
extensions
to
the
pickling
code
.
-
Revamped
module
tokenize
.
py
is
much
more
accurate
and
has
an
-
Revamped
module
tokenize
.
py
is
much
more
accurate
and
has
an
interface
that
makes
it
a
breeze
to
write
code
to
colorize
Python
interface
that
makes
it
a
breeze
to
write
code
to
colorize
Python
source
code
.
Contributed
by
Ka-Ping
Yee
.
source
code
.
Contributed
by
Ka-Ping
Yee
.
...
@@ -380,8 +499,8 @@ the value of fields (Clarence Gardner). The FieldStorage class now
...
@@ -380,8 +499,8 @@ the value of fields (Clarence Gardner). The FieldStorage class now
has
a
__len__
()
method
.
has
a
__len__
()
method
.
-
httplib
.
py:
the
socket
object
is
no
longer
closed
;
all
HTTP
/
1
.
*
-
httplib
.
py:
the
socket
object
is
no
longer
closed
;
all
HTTP
/
1
.
*
versions are now treated the same; and it is now thread-safe (by not
responses
are
now
accepted
;
and
it
is
now
thread-safe
(
by
not
using
using
the regex module).
the
regex
module
).
-
BaseHTTPModule
.
py:
treat
all
HTTP
/
1
.
*
versions
the
same
.
-
BaseHTTPModule
.
py:
treat
all
HTTP
/
1
.
*
versions
the
same
.
...
@@ -390,8 +509,9 @@ access to the standard error stream and the process id of the
...
@@ -390,8 +509,9 @@ access to the standard error stream and the process id of the
subprocess
possible
.
subprocess
possible
.
-
Added
timezone
support
to
the
rfc822
.
py
module
,
in
the
form
of
a
-
Added
timezone
support
to
the
rfc822
.
py
module
,
in
the
form
of
a
getdate_tz() method and a parsedate_tz() function. Also added
getdate_tz
()
method
and
a
parsedate_tz
()
function
;
also
a
mktime_tz
().
recognition of some non-standard date formats, by Lars Wirzenius.
Also
added
recognition
of
some
non-standard
date
formats
,
by
Lars
Wirzenius
,
and
RFC
850
dates
(
Chris
Lawrence
).
-
mhlib
.
py:
various
enhancements
,
including
almost
compatible
parsing
-
mhlib
.
py:
various
enhancements
,
including
almost
compatible
parsing
of
message
sequence
specifiers
without
invoking
a
subprocess
.
Also
of
message
sequence
specifiers
without
invoking
a
subprocess
.
Also
...
@@ -404,6 +524,7 @@ Wirzenius.) (Of course, you should be using cStringIO for performance.)
...
@@ -404,6 +524,7 @@ Wirzenius.) (Of course, you should be using cStringIO for performance.)
-
Improvements
for
whrandom
.
py
by
Tim
Peters:
use
32-bit
arithmetic
to
-
Improvements
for
whrandom
.
py
by
Tim
Peters:
use
32-bit
arithmetic
to
speed
it
up
,
and
replace
0
seed
values
by
1
to
avoid
degeneration
.
speed
it
up
,
and
replace
0
seed
values
by
1
to
avoid
degeneration
.
A
bug
was
fixed
in
the
test
for
invalid
arguments
.
-
Module
ftplib
.
py:
added
support
for
parsing
a
.
netrc
file
(
Fred
-
Module
ftplib
.
py:
added
support
for
parsing
a
.
netrc
file
(
Fred
Drake
).
Also
added
an
ntransfercmd
()
method
to
the
FTP
class
,
which
Drake
).
Also
added
an
ntransfercmd
()
method
to
the
FTP
class
,
which
...
@@ -412,13 +533,20 @@ parse150() function to the module which parses the corresponding 150
...
@@ -412,13 +533,20 @@ parse150() function to the module which parses the corresponding 150
response
.
response
.
-
urllib
.
py:
the
ftp
cache
is
now
limited
to
10
entries
.
Added
-
urllib
.
py:
the
ftp
cache
is
now
limited
to
10
entries
.
Added
quote_plus() method which is like qupte() but also replaces spaces
quote_plus
()
and
unquote_plus
()
functions
which
are
like
quote
()
and
with '+', for encoding CGI form arguments. Catch all errors from the
unquote
()
but
also
replace
spaces
with
'+'
or
vice
versa
,
for
ftp module. HTTP requests now add the Host: header line. The proxy
encoding
/
decoding
CGI
form
arguments
.
Catch
all
errors
from
the
ftp
module
.
HTTP
requests
now
add
the
Host:
header
line
.
The
proxy
variable
names
are
now
mapped
to
lower
case
,
for
Windows
.
The
variable
names
are
now
mapped
to
lower
case
,
for
Windows
.
The
spliturl
()
function
no
longer
erroneously
throws
away
all
data
past
spliturl
()
function
no
longer
erroneously
throws
away
all
data
past
the
first
newline
.
The
basejoin
()
function
now
intereprets
"../"
the
first
newline
.
The
basejoin
()
function
now
intereprets
"../"
correctly.
correctly
.
I
*believe*
that
the
problems
with
"
exception
raised
in
__del__
"
under
certain
circumstances
have
been
fixed
(
mostly
by
changes
elsewher
in
the
interpreter
).
-
In
urlparse
.
py
,
there
is
a
cache
for
results
in
urlparse
.
urlparse
();
its
size
limit
is
set
to
20
.
Also
,
new
URL
schemes
shttp
,
https
,
and
snews
are
"
supported
".
-
shelve
.
py:
use
cPickle
and
cStringIO
when
available
.
Also
added
-
shelve
.
py:
use
cPickle
and
cStringIO
when
available
.
Also
added
a
sync
()
method
,
which
calls
the
database
'
s
sync
()
method
if
there
is
a
sync
()
method
,
which
calls
the
database
'
s
sync
()
method
if
there
is
...
@@ -437,9 +565,6 @@ command line utilities.
...
@@ -437,9 +565,6 @@ command line utilities.
-
Various
small
fixes
to
the
nntplib
.
py
module
that
I
can
'
t
bother
to
-
Various
small
fixes
to
the
nntplib
.
py
module
that
I
can
'
t
bother
to
document
in
detail
.
document
in
detail
.
- There is a cache for results in urlparse.urlparse(); its size limit
is set to 20 (not 2000 as it was in earlier alphas).
-
Sjoerd
Mullender
'
s
mimify
.
py
module
now
supports
base64
encoding
and
-
Sjoerd
Mullender
'
s
mimify
.
py
module
now
supports
base64
encoding
and
includes
functions
to
handle
the
funny
encoding
you
sometimes
see
in
mail
includes
functions
to
handle
the
funny
encoding
you
sometimes
see
in
mail
headers
.
It
is
now
documented
.
headers
.
It
is
now
documented
.
...
@@ -456,16 +581,20 @@ smarter.
...
@@ -456,16 +581,20 @@ smarter.
-
The
Writer
classes
in
the
formatter
.
py
module
now
have
a
flush
()
-
The
Writer
classes
in
the
formatter
.
py
module
now
have
a
flush
()
method
.
method
.
- The Python bytecode disassembler module, dis.py, has been enhanced
-
The
sgmllib
.
py
module
accepts
hyphens
and
periods
in
the
middle
of
quite a bit. There's now one main function, dis.dis(), which takes
attribute
names
.
While
this
is
against
the
SGML
standard
,
there
is
almost any kind of object (function, module, class, instance, method,
some
HTML
out
there
that
uses
this
...
code object) and disassembles it; without arguments it disassembles
the last frame of the last traceback. The other functions have
-
The
interface
for
the
Python
bytecode
disassembler
module
,
dis
.
py
,
changed slightly, too.
has
been
enhanced
quite
a
bit
.
There
'
s
now
one
main
function
,
dis
.
dis
(),
which
takes
almost
any
kind
of
object
(
function
,
module
,
class
,
instance
,
method
,
code
object
)
and
disassembles
it
;
without
arguments
it
disassembles
the
last
frame
of
the
last
traceback
.
The
other
functions
have
changed
slightly
,
too
.
-
The
imghdr
.
py
module
recognizes
new
image
types:
BMP
,
PNG
.
-
The
imghdr
.
py
module
recognizes
new
image
types:
BMP
,
PNG
.
- The string module has a new function replace(str, old, new,
-
The
string
.
py
module
has
a
new
function
replace
(
str
,
old
,
new
,
[
maxsplit
])
which
does
substring
replacements
.
It
is
actually
[
maxsplit
])
which
does
substring
replacements
.
It
is
actually
implemented
in
C
in
the
strop
module
.
The
functions
[
r
]
find
()
an
implemented
in
C
in
the
strop
module
.
The
functions
[
r
]
find
()
an
[
r
]
index
()
have
an
optional
4th
argument
indicating
the
end
of
the
[
r
]
index
()
have
an
optional
4th
argument
indicating
the
end
of
the
...
@@ -473,6 +602,24 @@ substring to search, alsoo implemented by their strop counterparts.
...
@@ -473,6 +602,24 @@ substring to search, alsoo implemented by their strop counterparts.
(
Remember
,
never
import
strop
--
import
string
uses
strop
when
(
Remember
,
never
import
strop
--
import
string
uses
strop
when
available
with
zero
overhead
.)
available
with
zero
overhead
.)
-
The
string
.
join
()
function
now
accepts
any
sequence
argument
,
not
just
lists
and
tuples
.
-
The
string
.
maketrans
()
requires
its
first
two
arguments
to
be
present
.
The
old
version
didn
'
t
require
them
,
but
there
'
s
not
much
point
without
them
,
and
the
documentation
suggests
that
they
are
required
,
so
we
fixed
the
code
to
match
the
documentation
.
-
The
regsub
.
py
module
has
a
function
clear_cache
(),
which
clears
its
internal
cache
of
compiled
regular
expressions
.
Also
,
the
cache
now
takes
the
current
syntax
setting
into
account
.
(
However
,
this
module
is
now
obsolete
--
use
the
sub
()
or
subn
()
functions
or
methods
in
the
re
module
.)
-
The
undocumented
module
Complex
.
py
has
been
removed
,
now
that
Python
has
built-in
complex
numbers
.
A
similar
module
remains
as
Demo
/
classes
/
Complex
.
py
,
as
an
example
.
Changes
to
the
build
process
Changes
to
the
build
process
----------------------------
----------------------------
...
@@ -498,6 +645,11 @@ version string (sys.version).
...
@@ -498,6 +645,11 @@ version string (sys.version).
-
As
far
as
I
can
tell
,
neither
gcc
-Wall
nor
the
Microsoft
compiler
-
As
far
as
I
can
tell
,
neither
gcc
-Wall
nor
the
Microsoft
compiler
emits
a
single
warning
any
more
when
compiling
Python
.
emits
a
single
warning
any
more
when
compiling
Python
.
-
A
number
of
new
Makefile
variables
have
been
added
for
special
situations
,
e
.
g
.
LDLAST
is
appended
to
the
link
command
.
These
are
used
by
editing
the
Makefile
or
passing
them
on
the
make
command
line
.
-
A
set
of
patches
from
Lee
Busby
has
been
integrated
that
make
it
-
A
set
of
patches
from
Lee
Busby
has
been
integrated
that
make
it
possible
to
catch
floating
point
exceptions
.
Use
the
configure
option
possible
to
catch
floating
point
exceptions
.
Use
the
configure
option
--with-fpectl
to
enable
the
patches
;
the
extension
modules
fpectl
and
--with-fpectl
to
enable
the
patches
;
the
extension
modules
fpectl
and
...
@@ -512,6 +664,10 @@ a file Setup. Most changes to the Setup script can be done by editing
...
@@ -512,6 +664,10 @@ a file Setup. Most changes to the Setup script can be done by editing
Setup
.
local
instead
,
which
makes
it
easier
to
carry
a
particular
setup
Setup
.
local
instead
,
which
makes
it
easier
to
carry
a
particular
setup
over
from
one
release
to
the
next
.
over
from
one
release
to
the
next
.
-
The
Modules
/
makesetup
script
now
copies
any
"
include
"
lines
it
encounters
verbatim
into
the
output
Makefile
.
It
also
recognizes
.
cxx
and
.
cpp
as
C
++
source
files
.
-
The
configure
script
is
smarter
about
C
compiler
options
;
e
.
g
.
with
-
The
configure
script
is
smarter
about
C
compiler
options
;
e
.
g
.
with
gcc
it
uses
-O2
and
-g
when
possible
,
and
on
some
other
platforms
it
gcc
it
uses
-O2
and
-g
when
possible
,
and
on
some
other
platforms
it
uses
-Olimit
1500
to
avoid
a
warning
from
the
optimizer
about
the
main
uses
-Olimit
1500
to
avoid
a
warning
from
the
optimizer
about
the
main
...
@@ -521,10 +677,24 @@ loop in ceval.c (which has more than 1000 basic blocks).
...
@@ -521,10 +677,24 @@ loop in ceval.c (which has more than 1000 basic blocks).
pointer
or
a
valid
block
(
of
length
zero
).
This
avoids
the
nonsense
pointer
or
a
valid
block
(
of
length
zero
).
This
avoids
the
nonsense
of
always
adding
one
byte
to
all
malloc
()
arguments
on
most
platforms
.
of
always
adding
one
byte
to
all
malloc
()
arguments
on
most
platforms
.
-
The
configure
script
has
a
new
option
,
--with-dec-threads
,
to
enable
DEC
threads
on
DEC
Alpha
platforms
.
Also
,
--with-threads
is
now
an
alias
for
--with-thread
(
this
was
the
Most
Common
Typo
in
configure
arguments
).
-
Many
changes
in
Doc
/
Makefile
;
amongst
others
,
latex2html
is
now
used
to
generate
HTML
from
all
latex
documents
.
Change
to
the
Python
/
C
API
Change
to
the
Python
/
C
API
--------------------------
--------------------------
-
Because
some
interfaces
have
changed
,
the
PYTHON_API
macro
has
been
bumped
.
Most
extensions
built
for
the
old
API
version
will
still
run
,
but
I
can
'
t
guarantee
this
.
Python
prints
a
warning
message
on
version
mismatches
;
it
dumps
core
when
the
version
mismatch
causes
a
serious
problem
:-
)
-
I
'
ve
completed
the
Grand
Renaming
,
with
the
help
of
Roger
Masse
and
-
I
'
ve
completed
the
Grand
Renaming
,
with
the
help
of
Roger
Masse
and
Barry
Warsaw
.
This
makes
reading
or
debugging
the
code
much
easier
.
Barry
Warsaw
.
This
makes
reading
or
debugging
the
code
much
easier
.
Many
other
unrelated
code
reorganizations
have
also
been
carried
out
.
Many
other
unrelated
code
reorganizations
have
also
been
carried
out
.
...
@@ -533,6 +703,14 @@ include Python.h followed by rename2.h. But you're better off running
...
@@ -533,6 +703,14 @@ include Python.h followed by rename2.h. But you're better off running
Tools
/
scripts
/
fixcid
.
py
-s
Misc
/
RENAME
on
your
source
,
so
you
can
omit
Tools
/
scripts
/
fixcid
.
py
-s
Misc
/
RENAME
on
your
source
,
so
you
can
omit
the
rename2
.
h
;
it
will
disappear
in
the
next
release
.
the
rename2
.
h
;
it
will
disappear
in
the
next
release
.
-
Various
and
sundry
small
bugs
in
the
"
abstract
"
interfaces
have
been
fixed
.
Thanks
to
all
the
(
involuntary
)
testers
of
the
Python
1
.
4
version
!
Some
new
functions
have
been
added
,
e
.
g
.
PySequence_List
(
o
),
equivalent
to
list
(
o
)
in
Python
.
-
New
API
functions
PyLong_FromUnsignedLong
()
and
PyLong_AsUnsignedLong
().
-
The
API
functions
in
the
file
cgensupport
.
c
are
no
longer
-
The
API
functions
in
the
file
cgensupport
.
c
are
no
longer
supported
.
This
file
has
been
moved
to
Modules
and
is
only
ever
supported
.
This
file
has
been
moved
to
Modules
and
is
only
ever
compiled
when
the
SGI
specific
'
gl
'
module
is
built
.
compiled
when
the
SGI
specific
'
gl
'
module
is
built
.
...
@@ -573,6 +751,10 @@ now explicit APIs to manipulate the interpreter lock. Read the source
...
@@ -573,6 +751,10 @@ now explicit APIs to manipulate the interpreter lock. Read the source
or
the
Demo
/
pysvr
example
;
the
new
functions
are
or
the
Demo
/
pysvr
example
;
the
new
functions
are
PyEval_
{
Acquire
,
Release
}{
Lock
,
Thread
}().
PyEval_
{
Acquire
,
Release
}{
Lock
,
Thread
}().
-
The
test
macro
DEBUG
has
changed
to
Py_DEBUG
,
to
avoid
interference
with
other
libraries
'
DEBUG
macros
.
Likewise
for
any
other
test
macros
that
didn
'
t
yet
start
with
Py_
.
-
New
wrappers
around
malloc
()
and
friends:
Py_Malloc
()
etc
.
call
-
New
wrappers
around
malloc
()
and
friends:
Py_Malloc
()
etc
.
call
malloc
()
and
call
PyErr_NoMemory
()
when
it
fails
;
PyMem_Malloc
()
call
malloc
()
and
call
PyErr_NoMemory
()
when
it
fails
;
PyMem_Malloc
()
call
just
malloc
().
Use
of
these
wrappers
could
be
essential
if
multiple
just
malloc
().
Use
of
these
wrappers
could
be
essential
if
multiple
...
@@ -588,7 +770,8 @@ non-fatally, by calling one of the PyErr_* functions and returning.
...
@@ -588,7 +770,8 @@ non-fatally, by calling one of the PyErr_* functions and returning.
-
The
PyInt_AS_LONG
()
and
PyFloat_AS_DOUBLE
()
macros
now
cast
their
-
The
PyInt_AS_LONG
()
and
PyFloat_AS_DOUBLE
()
macros
now
cast
their
argument
to
the
proper
type
,
like
the
similar
PyString
macros
already
argument
to
the
proper
type
,
like
the
similar
PyString
macros
already
did. (Suggestion by Marc-Andre Lemburg.)
did
.
(
Suggestion
by
Marc-Andre
Lemburg
.)
Similar
for
PyList_GET_SIZE
and
PyList_GET_ITEM
.
-
Some
of
the
Py_Get*
function
,
like
Py_GetVersion
()
(
but
not
yet
-
Some
of
the
Py_Get*
function
,
like
Py_GetVersion
()
(
but
not
yet
Py_GetPath
())
are
now
declared
as
returning
a
const
char
*
.
(
More
Py_GetPath
())
are
now
declared
as
returning
a
const
char
*
.
(
More
...
@@ -602,6 +785,10 @@ PyErr_Occurred() to check (there is *no* special return value).
...
@@ -602,6 +785,10 @@ PyErr_Occurred() to check (there is *no* special return value).
instead
of
clearing
exceptions
.
This
fixes
an
obscure
bug
where
using
instead
of
clearing
exceptions
.
This
fixes
an
obscure
bug
where
using
these
would
clear
a
pending
exception
,
discovered
by
Just
van
Rossum
.
these
would
clear
a
pending
exception
,
discovered
by
Just
van
Rossum
.
-
There
'
s
a
new
function
,
PyArg_ParseTupleAndKeywords
(),
which
parses
an
argument
list
including
keyword
arguments
.
Contributed
by
Geoff
Philbrick
.
-
PyArg_GetInt
()
is
gone
.
-
PyArg_GetInt
()
is
gone
.
-
It
'
s
no
longer
necessary
to
include
graminit
.
h
when
calling
one
of
-
It
'
s
no
longer
necessary
to
include
graminit
.
h
when
calling
one
of
...
@@ -609,6 +796,10 @@ the extended parser API functions. The three public grammar start
...
@@ -609,6 +796,10 @@ the extended parser API functions. The three public grammar start
symbols
are
now
in
Python
.
h
as
Py_single_input
,
Py_file_input
,
and
symbols
are
now
in
Python
.
h
as
Py_single_input
,
Py_file_input
,
and
Py_eval_input
.
Py_eval_input
.
-
The
CObject
interface
has
a
new
function
,
PyCObject_Import
(
module
,
name
).
It
calls
PyCObject_AsVoidPtr
()
on
the
object
referenced
by
"
module
.
name
".
Tkinter
Tkinter
-------
-------
...
@@ -623,25 +814,57 @@ lifetime.
...
@@ -623,25 +814,57 @@ lifetime.
-
New
standard
dialog
modules:
tkColorChooser
.
py
,
tkCommonDialog
.
py
,
-
New
standard
dialog
modules:
tkColorChooser
.
py
,
tkCommonDialog
.
py
,
tkMessageBox
.
py
,
tkFileDialog
.
py
,
tkSimpleDialog
.
py
These
interface
tkMessageBox
.
py
,
tkFileDialog
.
py
,
tkSimpleDialog
.
py
These
interface
with the new Tk dialog scripts. Contributed by Fredrik Lundh.
with
the
new
Tk
dialog
scripts
,
and
provide
more
"
native
platform
"
style
file
selection
dialog
boxes
on
some
platforms
.
Contributed
by
Fredrik
Lundh
.
-
Tkinter
.
py:
when
the
first
Tk
object
is
destroyed
,
it
sets
the
-
Tkinter
.
py:
when
the
first
Tk
object
is
destroyed
,
it
sets
the
hiddel
global
_default_root
to
None
,
so
that
when
another
Tk
object
is
hiddel
global
_default_root
to
None
,
so
that
when
another
Tk
object
is
created
it
becomes
the
new
default
root
.
Other
miscellaneous
created
it
becomes
the
new
default
root
.
Other
miscellaneous
changes
and
fixes
.
changes
and
fixes
.
-
The
Image
class
now
has
a
configure
method
.
-
Added
a
bunch
of
new
winfo
options
to
Tkinter
.
py
;
we
should
now
be
up
to
date
with
Tk
4
.
2
.
The
new
winfo
options
supported
are:
mananger
,
pointerx
,
pointerxy
,
pointery
,
server
,
viewable
,
visualid
,
visualsavailable
.
-
The
broken
bind
()
method
on
Canvas
objects
defined
in
the
Canvas
.
py
module
has
been
fixed
.
The
CanvasItem
and
Group
classes
now
also
have
an
unbind
()
method
.
-
The
problem
with
Tkinter
.
py
falling
back
to
trying
to
import
"
tkinter
"
when
"
_tkinter
"
is
not
found
has
been
fixed
--
it
no
longer
tries
"
tkinter
",
ever
.
This
makes
diagnosing
the
problem
"
_tkinter
not
configured
"
much
easier
and
will
hopefully
reduce
the
newsgroup
traffic
on
this
topic
.
-
The
ScrolledText
module
once
again
supports
the
'
cnf
'
parameter
,
to
be
compatible
with
the
examples
in
Mark
Lutz
'
book
(
I
know
,
I
know
,
too
late
...)
-
The
_tkinter
.
c
extension
module
has
been
revamped
.
It
now
support
-
The
_tkinter
.
c
extension
module
has
been
revamped
.
It
now
support
Tk
versions
4
.
1
through
8
.
0
;
support
for
4
.
0
has
been
dropped
.
It
Tk
versions
4
.
1
through
8
.
0
;
support
for
4
.
0
has
been
dropped
.
It
works
well
under
Windows
and
Mac
(
with
the
latest
Tk
ports
to
those
works
well
under
Windows
and
Mac
(
with
the
latest
Tk
ports
to
those
platforms
).
It
also
supports
threading
--
it
is
safe
for
one
platforms
).
It
also
supports
threading
--
it
is
safe
for
one
(
Python-created
)
thread
to
be
blocked
in
_tkinter
.
mainloop
()
while
(
Python-created
)
thread
to
be
blocked
in
_tkinter
.
mainloop
()
while
other threads modify widgets. (To make the changes visible, those
other
threads
modify
widgets
.
To
make
the
changes
visible
,
those
threads must use update_idletasks()method.) Unfortunately, on Windows
threads
must
use
update_idletasks
()
method
.
(
The
patch
for
threading
and Mac, Tk 8.0 no longer supports CreateFileHandler, so
in
1
.
5a3
was
broken
;
in
1
.
5a4
,
it
is
back
in
a
different
version
,
_tkinter.createfilehandler is not available on those platforms. I
which
requires
access
to
the
Tcl
sources
to
get
it
to
work
--
hence
it
will have to rethink how to interface with Tcl's lower-level event
is
disabled
by
default
.)
mechanism, or with its channels (which are like Python's file-like
objects).
-
A
bug
in
_tkinter
.
c
has
been
fixed
,
where
Split
()
with
a
string
containing
an
unmatched
'"'
could
cause
an
exception
or
core
dump
.
-
Unfortunately
,
on
Windows
and
Mac
,
Tk
8
.
0
no
longer
supports
CreateFileHandler
,
so
_tkinter
.
createfilehandler
is
not
available
on
those
platforms
when
using
Tk
8
.
0
or
later
.
I
will
have
to
rethink
how
to
interface
with
Tcl
'
s
lower-level
event
mechanism
,
or
with
its
channels
(
which
are
like
Python
'
s
file-like
objects
).
Jack
Jansen
has
provided
a
fix
for
the
Mac
,
so
createfilehandler
*is*
actually
supported
there
;
maybe
I
can
adapt
his
fix
for
Windows
.
Tools
and
Demos
Tools
and
Demos
...
@@ -665,7 +888,7 @@ Languages (Vol 2, No 2); Scripting the Web with Python (pp 97-120).
...
@@ -665,7 +888,7 @@ Languages (Vol 2, No 2); Scripting the Web with Python (pp 97-120).
Includes
a
parser
for
robots
.
txt
files
by
Skip
Montanaro
.
Includes
a
parser
for
robots
.
txt
files
by
Skip
Montanaro
.
-
New
small
tools:
cvsfiles
.
py
(
prints
a
list
of
all
files
under
CVS
-
New
small
tools:
cvsfiles
.
py
(
prints
a
list
of
all
files
under
CVS
i
n a particular directory tree), treesync.py (a rather Guido-specific
n
a
particular
directory
tree
),
treesync
.
py
(
a
rather
Guido-specific
script
to
synchronize
two
source
trees
,
one
on
Windows
NT
,
the
other
script
to
synchronize
two
source
trees
,
one
on
Windows
NT
,
the
other
one
on
Unix
under
CVS
but
accessible
from
the
NT
box
),
and
logmerge
.
py
one
on
Unix
under
CVS
but
accessible
from
the
NT
box
),
and
logmerge
.
py
(
sort
a
collection
of
RCS
or
CVS
logs
by
date
).
In
Tools
/
scripts
.
(
sort
a
collection
of
RCS
or
CVS
logs
by
date
).
In
Tools
/
scripts
.
...
@@ -705,13 +928,19 @@ low-level operations defined in the Microsoft Visual C++ Runtime Library.
...
@@ -705,13 +928,19 @@ low-level operations defined in the Microsoft Visual C++ Runtime Library.
These
include
locking
(),
setmode
(),
get_osfhandle
(),
set_osfhandle
(),
and
These
include
locking
(),
setmode
(),
get_osfhandle
(),
set_osfhandle
(),
and
console
I
/
O
functions
like
kbhit
(),
getch
()
and
putch
().
console
I
/
O
functions
like
kbhit
(),
getch
()
and
putch
().
- The -u option not only sets the standard I/O streams to unbuffered
-
The
-u
option
not
only
sets
the
standard
I
/
O
streams
to
unbuffered
status, but also sets them in binary mode.
status
,
but
also
sets
them
in
binary
mode
.
(
This
can
also
be
done
using
msvcrt
.
setmode
(),
by
the
way
.)
-
The
,
sys
.
prefix
and
sys
.
exec_prefix
variables
point
to
the
directory
-
The
,
sys
.
prefix
and
sys
.
exec_prefix
variables
point
to
the
directory
where
Python
is
installed
,
or
to
the
top
of
the
source
tree
,
if
it
was
run
where
Python
is
installed
,
or
to
the
top
of
the
source
tree
,
if
it
was
run
from
there
.
from
there
.
-
The
various
os
.
path
modules
(
posixpath
,
ntpath
,
macpath
)
now
support
passing
more
than
two
arguments
to
the
join
()
function
,
so
os
.
path
.
join
(
a
,
b
,
c
)
is
the
same
as
os
.
path
.
join
(
a
,
os
.
path
.
join
(
b
,
c
)).
-
The
ntpath
module
(
normally
used
as
os
.
path
)
supports
~
to
$
HOME
-
The
ntpath
module
(
normally
used
as
os
.
path
)
supports
~
to
$
HOME
expansion
in
expanduser
().
expansion
in
expanduser
().
...
@@ -726,6 +955,13 @@ _tkinter.createfilehandler().
...
@@ -726,6 +955,13 @@ _tkinter.createfilehandler().
must
call
it
yourself
.
(
And
you
can
'
t
call
it
twice
--
it
'
s
a
fatal
must
call
it
yourself
.
(
And
you
can
'
t
call
it
twice
--
it
'
s
a
fatal
error
to
call
it
when
Python
is
already
initialized
.)
error
to
call
it
when
Python
is
already
initialized
.)
-
The
time
module
'
s
clock
()
function
now
has
good
precision
through
the
use
of
the
Win32
API
QueryPerformanceCounter
().
-
Mark
Hammond
will
release
Python
1
.
5
versions
of
PythonWin
and
his
other
Windows
specific
code:
the
win32api
extensions
,
COM
/
ActiveX
support
,
and
the
MFC
interface
.
Mac
Mac
---
---
...
@@ -908,3 +1144,12 @@ added to shup up various compilers.
...
@@ -908,3 +1144,12 @@ added to shup up various compilers.
- test_rotor.py: print b -> print `b`
- test_rotor.py: print b -> print `b`
- Tkinter.py: (tagOrId) -> (tagOrId,)
- Tkinter.py: (tagOrId) -> (tagOrId,)
- Tkinter.py: the Tk class now also has a configure() method and
friends (they have been moved to the Misc class to accomplish this).
- dict.get(key[, default]) returns dict[key] if it exists, or default
if it doesn't. The default defaults to None. This is quicker for
some applications than using either has_key() or try:...except
KeyError:....
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment