6bf19a | 2002-09-15 | Peter Bortas | | Changes since Pike 7.2:
----------------------------------------------------------------------
|
cd683a | 2001-07-27 | Johan Sundström | |
|
bf7e8e | 2002-09-26 | Martin Nilsson | | New/improved functionality:
---------------------------
|
cd683a | 2001-07-27 | Johan Sundström | |
|
6bf19a | 2002-09-15 | Peter Bortas | | o New Hilfe
|
d4ce82 | 2002-09-26 | Johan Sundström | | The interactive pike environment you get when running pike without
giving a program name, has been thoroughly rewritten. Most notably
it now supports more of the common pike constructs, and is more
extendable and configurable. Start it and type help for more info.
|
cd683a | 2001-07-27 | Johan Sundström | |
|
7ab100 | 2002-10-31 | Martin Nilsson | | o AutoDoc
|
29147c | 2002-10-31 | Martin Nilsson | | The major parts of Pike now has some sort of documentation on
class and function level thanks to the AutoDoc system which has
been deployed during the last year. Manual dumps are published on
|
a3055d | 2002-11-24 | Marcus Agehall | | http://pike.ida.liu.se/docs/reference/.
|
7ab100 | 2002-10-31 | Martin Nilsson | |
|
6bf19a | 2002-09-15 | Peter Bortas | | o pike -x
|
d4ce82 | 2002-09-26 | Johan Sundström | | When starting pike with the -x parameter, the pike process will
run the named script in Tools.Standalone, giving the rest of the
arguments as command-line switches. This is a convenient way of
running rsif (replace string in file) and pv (the image viewer
you may be familiar with from Tools.PV).
|
cd683a | 2001-07-27 | Johan Sundström | |
|
251587 | 2002-11-28 | Martin Nilsson | | o pike -e scope
When running command line one liners with pike -e you can now
access the numer of arguments, the actual arguments and the
environment variables through the variables argc, argv and env.
|
6bf19a | 2002-09-15 | Peter Bortas | | o unbug
|
00c0df | 2002-11-24 | Peter Bortas | | Embryo of a Pike debugger. Not stable nor finished.
|
d72917 | 2002-07-14 | Honza Petrous | |
|
bf7e8e | 2002-09-26 | Martin Nilsson | | o Unicode 3.2.0
|
99b2a6 | 2002-09-26 | Henrik Grubbström (Grubba) | | All charts have been updated to Unicode 3.2.0. This applies both to
the Unicode module as well as to Pike-global functionality such as
|
bf7e8e | 2002-09-26 | Martin Nilsson | | upper_case/lower_case. unicode_to_string() also has support for
|
777d3c | 2002-11-28 | Martin Nilsson | | surrogate and byteorder mark handling.
|
d72917 | 2002-07-14 | Honza Petrous | |
|
bf7e8e | 2002-09-26 | Martin Nilsson | | o Extended random()
|
bd8a48 | 2002-10-27 | Martin Nilsson | | random() now works on floats, arrays, multisets, mappings and
objects in addition to integers.
|
bf7e8e | 2002-09-26 | Martin Nilsson | |
o delay()/sleep()
|
bd8a48 | 2002-10-27 | Martin Nilsson | | sleep() no longer busywaits, which it previously did for small
|
e2a738 | 2002-11-24 | Peter Bortas | | values. The old behavior is available from the delay() function.
|
6225dd | 2002-11-25 | Martin Stjernholm | | (This has change been made in later 7.2 releases too.)
|
bf7e8e | 2002-09-26 | Martin Nilsson | |
|
d4ce82 | 2002-09-26 | Johan Sundström | | o search(string, int) / has_value(string, int)
Both of these methods now handle both looking for strings and
|
378751 | 2002-09-27 | Johan Sundström | | integers (the unicode number for a single character).
Examples: search("hi, ho!", '!'), has_value("Nope.", ' ')
|
bf7e8e | 2002-09-26 | Martin Nilsson | |
|
29147c | 2002-10-31 | Martin Nilsson | | o Expanded Charset module
The character set module now has support for the character sets
Shift_JS, UTF-7.5, EUC, Big5, CP950, UTF-16, UTF-16BE, UTF-16LE.
It is now also easier to get the right charset codec since the
names are normalized internally.
|
251587 | 2002-11-28 | Martin Nilsson | | o sprintf("%O", foo) is more descriptive
If foo is a program or an object then Pike will try to find the
resolved name instead of returning just "program" or "object".
However, if an object contains an _sprintf function it will still
be called in this case.
o basetype(foo)
Returns a string with the basic type of foo as opposed to
typeof(foo) that returns the actual type. Also available as
sprintf("%t", foo).
o getenv()/putenv()
The environment variable functions getenv and putenv is now is now
both case insensitive on Microsoft Windows systems. This should
make your programs more portable.
|
29147c | 2002-10-31 | Martin Nilsson | |
|
bf7e8e | 2002-09-26 | Martin Nilsson | | Language additions:
-------------------
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
638b8d | 2002-09-22 | Martin Stjernholm | | o foreach(X; Y; Z)
The foreach statement has been extended to allow iterations over
mappings, multisets and any object that implements the iterator
interface (see below). To make it possible to use this
conveniently, a new syntax has been added to get both the index
and the value in each iteration:
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | foreach (something; index-expr; value-expr) ...
|
638b8d | 2002-09-22 | Martin Stjernholm | |
This iterates over something, assigning in turn each index to
index-expr and each value to value-expr. The index and value
expressions can be declarations or lvalues, and they can also be
left out if the index and/or value part isn't interesting.
Note that it depends on the data type whether the iteration order
is well defined or not; arrays and multisets are iterated over
starting with the first element while mappings are visited in some
arbitrary order (each element is still visited only once, though).
o Iterators
As noted above, an iterator interface has been added that is now
used in various places to iterate over different data structures.
Not only the built-in data types are supported, but actually any
object that fulfills the interface for iterators:
When iterating over an object o, o->_get_iterator() is called to
|
99b2a6 | 2002-09-26 | Henrik Grubbström (Grubba) | | get an iterator object. An iterator object should at least have
two functions, index() and value(), to get the index and value
at the current position, a function `+=(int steps) to advance the
current position the specified number of steps, and a `!() that
|
f221a9 | 2002-11-02 | Henrik Grubbström (Grubba) | | returns zero if the end of the data set hasn't been reached yet.
|
638b8d | 2002-09-22 | Martin Stjernholm | |
Also, if the object o lacks a _get_iterator function, it's assumed
to be an iterator itself. This makes it possible to pass an
iterator explicitly to e.g. the foreach statement.
The built-in data types also have iterator classes with this
interface. They are found as Array.Iterator, Mapping.Iterator, etc
and can be used to iterate over these data types in some custom
fashion. This is especially useful for mappings and multisets,
which cannot be iterated over directly in any other way. For
example, to get some arbitrary index in a mapping m:
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | mixed any_index = Mapping.Iterator(m)->index();
|
638b8d | 2002-09-22 | Martin Stjernholm | |
|
6bf19a | 2002-09-15 | Peter Bortas | | o Automap
|
4ec62a | 2002-10-31 | Johan Sundström | | To perform per-element operations on arrays, there is now a convenience
syntax for map(), that can make code more readable in some situations.
Summing up two arrays element by element using automap looks like this:
|
a3055d | 2002-11-24 | Marcus Agehall | | a[*] + b[*]; // the result has as many elements as the shortest array.
|
4ec62a | 2002-10-31 | Johan Sundström | |
Multiplying all elements in a by a constant:
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | a[*] * 4711;
|
4ec62a | 2002-10-31 | Johan Sundström | |
Make an array of what sprintf("%O", a[n]) returns for all elements in a:
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | sprintf("%O", a[*]);
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | o Implicit lambda
|
00c0df | 2002-11-24 | Peter Bortas | | A convenient way to embed code that needs pre- and/or post-
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | initialization. If a statement starts with a function call
followed directly by a brace block, then the block is transformed
to a lambda function which is passed as the last argument to the
function being called.
The following example embeds OpenGL calls that modifies the matrix
in an implicit lambda that will save the matrix before execution
and restore it afterwards:
void PushPop( function f )
{
glPushMatrix();
mixed err = catch(f());
glPopMatrix();
if (err) throw(err);
}
|
00c0df | 2002-11-24 | Peter Bortas | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | void do_something()
{
PushPop() {
|
a3055d | 2002-11-24 | Marcus Agehall | | glTranslate( ((1.0-0.08))/2, 0.0, 0.0 );
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | draw_stuff();
};
}
|
00c0df | 2002-11-24 | Peter Bortas | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | Note that although useful, this feature has important
disadvantages and will probably be obsoleted by a better
alternative in the future. The problem is that the inner brace
block become a completely separate function instead of remaining a
block. The difference (apart from being slower) is shown by this
example:
|
00c0df | 2002-11-24 | Peter Bortas | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | void do_something()
{
PushPop() {
if (glError()) return;
|
e2a738 | 2002-11-24 | Peter Bortas | | glTranslate( (1.0-0.08)/2, 0.0, 0.0 );
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | draw_stuff();
};
draw_more_stuff();
}
|
00c0df | 2002-11-24 | Peter Bortas | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | Since the inner block is a separate function, the return statement
doesn't exit do_something() as one might expect, causing
draw_more_stuff() to be called even when there's a GL error.
Another effect is that break and continue can't be associated with
statements outside the implicit lambda block.
|
00c0df | 2002-11-24 | Peter Bortas | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | Another method that overcomes these problems will likely be
implemented. The problem is that it can give compatibility
problems to change old code that uses implicit lambdas to that
one, since e.g. return will work differently without giving any
sort of error.
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | o Access to hidden variables in surrounding scopes
|
638b8d | 2002-09-22 | Martin Stjernholm | | Include the names of the surrounding classes themselves in the lookup for
|
e2a738 | 2002-11-24 | Peter Bortas | | Foo::, to make it possible to address hidden variables in the scopes of
|
638b8d | 2002-09-22 | Martin Stjernholm | | surrounding classes, e.g:
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
638b8d | 2002-09-22 | Martin Stjernholm | | class Foo {
int i;
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | void create (int i) {Foo::i = i;}
|
638b8d | 2002-09-22 | Martin Stjernholm | | }
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
638b8d | 2002-09-22 | Martin Stjernholm | | o global::
Added new keyword global to be able to access identifiers on the
top level of the compilation unit using global::foo.
|
3dbeca | 2002-09-16 | Johan Sundström | |
o global.
All top level modules (and other identifiers in that scope) can now
|
638b8d | 2002-09-22 | Martin Stjernholm | | be accessed with a "global." prefix. This is useful in cases where
|
3dbeca | 2002-09-16 | Johan Sundström | | local identifiers overshadow the top level, for instance in the Image
module, where the Image.Image class would occasionally block your view.
|
6bf19a | 2002-09-15 | Peter Bortas | |
o this
Added a magic identifier "this" that can be used instead of
this_object(). Like this_program, it only exists when there's no
|
638b8d | 2002-09-22 | Martin Stjernholm | | other identifier with that name. The primary reason for adding
this magic identifier is to make it possible to address the object
of a surrounding class with Foo::this.
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | o The program type can be specialized
It's possible to specialize a program variable by adding a program
identifier, much like an object variable can be specialized. E.g:
|
6225dd | 2002-11-25 | Martin Stjernholm | | program(Stdio.File) fd_prog = Stdio.File;
|
fc7f8d | 2002-11-24 | Martin Stjernholm | |
|
638b8d | 2002-09-22 | Martin Stjernholm | | o ::_indices(), ::_values().
|
00c0df | 2002-11-24 | Peter Bortas | | There are now two "magic" functions ::_indices() and ::_values()
that can be used by an object to list all identifiers and their
values in itself. They are primarily intended when the _indices()
and _values() lfuns have been defined, to get the default
implementations. This is to complement the "magic" ::`->() and
::`->=() functions that exist in earlier releases.
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
bf7e8e | 2002-09-26 | Martin Nilsson | | o UNDEFINED
|
00c0df | 2002-11-24 | Peter Bortas | | To generate a 0 (zero) with a zero_type(var) == 1, you previously
had to use constructs like ([])[0]. This is now available as the
globally available symbol UNDEFINED.
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
bf7e8e | 2002-09-26 | Martin Nilsson | | o _m_delete
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | A class can now define a function mixed _m_delete(mixed index) to
make the objects work like mappings with m_delete(). (This feature
has been added to later 7.2 releases too.)
|
1a3f71 | 2002-11-28 | Peter Bortas | | o Constant objects
An object can now be constant, allowing for better
|
251587 | 2002-11-28 | Martin Nilsson | | performace and better dumping. For example used for Gmp.Bignum,
Math.Matrix and Image.Color.
|
1a3f71 | 2002-11-28 | Peter Bortas | |
|
cd683a | 2001-07-27 | Johan Sundström | |
|
e2a738 | 2002-11-24 | Peter Bortas | | New modules / classes / methods / functionality added:
------------------------------------------------------
|
cd683a | 2001-07-27 | Johan Sundström | |
|
6bf19a | 2002-09-15 | Peter Bortas | | o ADT.History
|
29147c | 2002-10-31 | Martin Nilsson | | ADT implementation of a "leaking stack". Hilfe example:
> object h=ADT.History(3);
> for(int i=17; i<22; i++) h->push(i);
Ok.
> h->get_first_entry_num();
(1) Result: 3
> h[3];
(2) Result: 19
|
6bf19a | 2002-09-15 | Peter Bortas | | o ADT.Relation.Binary
|
29147c | 2002-10-31 | Martin Nilsson | | Handles binary relations. Hilfe example:
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | > object r=ADT.Relation.Binary("test");
|
29147c | 2002-10-31 | Martin Nilsson | | > r->add(1,2)->add(2,3)->add(3,5)->add(1,4)->add(4,5);
(1) Result: ADT.Relation.Binary("test")
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | > r->find_shortest_path(1,5);
|
29147c | 2002-10-31 | Martin Nilsson | | (2) Result: ({ /* 3 elements */
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | 1,
4,
5
})
> r->remove(1,4);
|
29147c | 2002-10-31 | Martin Nilsson | | (3) Result: ADT.Relation.Binary("test")
> r->add(5,1);
(4) Result: ADT.Relation.Binary("test")
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | > r->find_shortest_path(1,5);
|
29147c | 2002-10-31 | Martin Nilsson | | (5) Result: ({ /* 4 elements */
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | 1,
2,
3,
5
})
|
3dbeca | 2002-09-16 | Johan Sundström | |
|
92cf9f | 2002-11-25 | Honza Petrous | | o Audio.Codec and Audio.Format
Contain decoders/encoders and format parsers for audio.
Currently WAV and MP3.
|
02c81c | 2002-09-17 | Honza Petrous | | Note: The API remains marked "unstable".
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
46983f | 2002-11-24 | Peter Bortas | | o Crypto.md4
|
afb9bb | 2002-11-24 | Peter Bortas | | Hash used for NT Lanmanager passwords.
|
fc7f8d | 2002-11-24 | Martin Stjernholm | |
|
29147c | 2002-10-31 | Martin Nilsson | | o Crypto.crypt_md5
|
46983f | 2002-11-24 | Peter Bortas | | Convenience function to produce crypted $1$ style crypted
passwords (commonly called MD5 passwords).
|
29147c | 2002-10-31 | Martin Nilsson | |
|
6bf19a | 2002-09-15 | Peter Bortas | | o Debug.Tracer
|
29147c | 2002-10-31 | Martin Nilsson | | o Debug.Subject
|
46983f | 2002-11-24 | Peter Bortas | | Helper classes that helps in understanding what Pike is doing.
|
29147c | 2002-10-31 | Martin Nilsson | |
|
92cf9f | 2002-11-25 | Honza Petrous | | o DVB
Access to DVB (digital sat) resources. Controls tuner, MP2
audio and video decoders. Allows extract multiple channels
at once.
Note: Only old 0.9.4 DVB API is supported.
|
251587 | 2002-11-28 | Martin Nilsson | | o Gz.File
Pike can now compress and decompress the Gzip format. This is
still a bit experimental but the basic functions should work
just fine.
o HTTP.Server
A simple HTTP Server.
o Image.Dims
Can extract the dimensions of an image with a minimal amount of
data loading. Currently handles JPEG, GIF and PNG images. Hilfe
example:
> Image.Dims.get(Stdio.File("test.gif"));
(1) Result: ({ /* 2 elements */
1412,
1120
})
o Image.DWG
Decodes the thumbnail images embedded in AutoCAD drawings.
o Image.Fonts
High level API for font handling. Should be used instead of
accessing the FreeType, TTF and Image.Font modules directly.
o Image.Image
|
0fe81a | 2002-11-28 | Martin Nilsson | | Added two new methods, blur() and grey_blur(), which are hard
coded, MMX optimized versions of these common matrix operations.
|
251587 | 2002-11-28 | Martin Nilsson | |
o Image.JPEG
|
0fe81a | 2002-11-28 | Martin Nilsson | | Support for lossless transforms, such as rotating and rescaling
the image, and handling of metadata.
|
251587 | 2002-11-28 | Martin Nilsson | |
o Image.PVR
VQ compression/decompression added.
o Image.SVG
Support for Structured Vector Graphics through the Gnome SVG
library. Requires Gnome 2.
|
0fe81a | 2002-11-28 | Martin Nilsson | | o Local
All Pike modules and classes found in the directory hierarchies
/usr/local/pike_modules, /opt/pike_modules, /opt/share/pike_modules,
/usr/local/share/pike_modules, $HOME/pike_modules, and
$PIKE_LOCAL_PATH (a :-separated list of directories) are available
with the prefix "Local.". Local.add_path() and Local.remove_path()
respectively adds and removes entries from the list of paths to
inspect when resolving Local.* symbols.
|
6bf19a | 2002-09-15 | Peter Bortas | | o Locale.Language
|
0fe81a | 2002-11-28 | Martin Nilsson | | Support for time formatting, counting and more for various
languages. Currently added languages are Catalan, Croatian, Czech,
Dutch, English, Finnish, French, German, Hungarian, Italian,
Japanese, Maori, Norwegian, Polish, Portuguese, Russian, Serbian,
Slovenian, Spanish and Swedish.
|
e2a738 | 2002-11-24 | Peter Bortas | |
o Math.Matrix
Methods sum(), max(), min(), convolve() and dot_product() added.
o Math.Transforms
|
a3055d | 2002-11-24 | Marcus Agehall | | Glue for supporting FFT and iFFT via libfftw and librfftw.
|
e2a738 | 2002-11-24 | Peter Bortas | |
o Math
|
0fe81a | 2002-11-28 | Martin Nilsson | | Added the IEEE float constants inf and nan.
|
e2a738 | 2002-11-24 | Peter Bortas | |
o MIME.Message
|
0fe81a | 2002-11-28 | Martin Nilsson | | Guess mode added. *FIXME: expand on this jhs*
|
cd683a | 2001-07-27 | Johan Sundström | |
|
6bf19a | 2002-09-15 | Peter Bortas | | o Parser.Python
|
bf7e8e | 2002-09-26 | Martin Nilsson | | Splits Python source code into text tokens.
|
6bf19a | 2002-09-15 | Peter Bortas | |
o Parser.RCS
|
3dbeca | 2002-09-16 | Johan Sundström | | Extracts data from RCS or CVS repositories.
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
251587 | 2002-11-28 | Martin Nilsson | | o Parser.XML.NSTree
|
0fe81a | 2002-11-28 | Martin Nilsson | | This is an extended version of Parser.XML.Tree that can handle
namespaces according to the W3C namespace specification.
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
c5bc25 | 2002-09-16 | Johan Sundström | | o Protocols.X.KeySyms
|
251587 | 2002-11-28 | Martin Nilsson | |
|
6bf19a | 2002-09-15 | Peter Bortas | | o Standards.CIFF
|
251587 | 2002-11-28 | Martin Nilsson | |
|
6bf19a | 2002-09-15 | Peter Bortas | | o Standards.FIPS10_4
|
e2a738 | 2002-11-24 | Peter Bortas | | FIXME: remove?
|
6bf19a | 2002-09-15 | Peter Bortas | |
o Standards.ID3
|
705f93 | 2002-09-23 | Honza Petrous | | ID3 tags decoder/encoder. Supports versions: 1.0, 1.1,
|
d4ce82 | 2002-09-26 | Johan Sundström | | 2.2-2.4. Frequently used in MP3 files for encapsulating metadata.
|
6bf19a | 2002-09-15 | Peter Bortas | |
o Standards.RDF
|
0fe81a | 2002-11-28 | Martin Nilsson | | Represents an RDF domain and allows you to perform searches in its
relations. Currently only serializes/deserializes to N-triple
format.
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
bf7e8e | 2002-09-26 | Martin Nilsson | | o System.Time
|
46983f | 2002-11-24 | Peter Bortas | | Used to get the current time with sub second precision.
|
99b2a6 | 2002-09-26 | Henrik Grubbström (Grubba) | |
|
bf7e8e | 2002-09-26 | Martin Nilsson | | o System.Timer
|
e2a738 | 2002-11-24 | Peter Bortas | | Measures the time between two calls.
o System.Memory
Handles read/write from mmap'ed or allocated memory.
system.normalize_path
system.gettimeofday
system.get_netinfo_property (Max OS X)
system.usleep/nanosleep
FIXME: per?
|
bf7e8e | 2002-09-26 | Martin Nilsson | |
|
251587 | 2002-11-28 | Martin Nilsson | | o Stdio
Moved get_all_active_fd() from spider to Stdio.
Added methods to Stdio.File: sync(), line_iterator()
o Stdio.expand_symlinks(string path)
Expands all symlinks along a path (returns 0 for broken links).
(Only available on systems with readlink.)
|
6bf19a | 2002-09-15 | Peter Bortas | | o Stdio.FakeFile
|
46983f | 2002-11-24 | Peter Bortas | | Wraps a string and exports a Stdio.File interface.
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
e2a738 | 2002-11-24 | Peter Bortas | | o Stdio.File->grantpt()
can now allocate a VTY on systems with /dev/ptmx support.
Minimal example:
fd = Stdio.File("/dev/ptmx", "rw" );
Stdio.File fd2 = Stdio.File( fd->grantpt(), "rw" );
Process.create_process( ({ "/bin/bash" }), ([
"stdin":fd2, "stdout":fd2, "stderr":fd2, "setsid":fd2,
]) );
|
6bf19a | 2002-09-15 | Peter Bortas | | o Tools.PV
Convenience tool that sets up a canvas with GTK, presents a
picture on it and delivers a number of image inspection and
|
29147c | 2002-10-31 | Martin Nilsson | | manipulation options. This is a great tool for image work in
Hilfe.
> object i=Image.Image(32,32)->random();
> Tools.PV(i);
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
a3055d | 2002-11-24 | Marcus Agehall | | The Pike Viewer tool is also accessible via "pike -x pv".
|
3dbeca | 2002-09-16 | Johan Sundström | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | o Shuffler
|
6bf19a | 2002-09-15 | Peter Bortas | | o Gmp.mpq and Gmp.mpf
|
c301e8 | 2002-09-27 | Johan Sundström | | Multi precision fractions.
|
3dbeca | 2002-09-16 | Johan Sundström | |
|
d10730 | 2002-09-22 | Martin Stjernholm | | o String.SplitIterator
|
e2a738 | 2002-11-24 | Peter Bortas | | FIXME: grubba
|
d10730 | 2002-09-22 | Martin Stjernholm | |
o String.Replace, String.SingleReplace
|
e2a738 | 2002-11-24 | Peter Bortas | | FIXME
o SDL
Wrapper for a subset of Simple DirectMedia Layer
functionality. Useful for writing games, movie players and other
graphically intensive applications.
o Oracle
CLOB and BLOB support.
|
d10730 | 2002-09-22 | Martin Stjernholm | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | o Return value from catch blocks.
The return value from catch blocks that exit normally has been
changed from a normal zero (i.e. zero_type 0) to UNDEFINED (i.e.
zero_type 1).
|
638b8d | 2002-09-22 | Martin Stjernholm | |
|
cd683a | 2001-07-27 | Johan Sundström | | Optimizations:
--------------
|
d10730 | 2002-09-22 | Martin Stjernholm | | o Machine code used on some architectures.
|
bd8a48 | 2002-10-27 | Martin Nilsson | | o Computed goto
o Better module dumping
|
d10730 | 2002-09-22 | Martin Stjernholm | | o Overall speed improvements.
|
bd8a48 | 2002-10-27 | Martin Nilsson | | Function calls (new opcodes)
|
99b2a6 | 2002-09-26 | Henrik Grubbström (Grubba) | | sprintf
arrays
replace
|
bf7e8e | 2002-09-26 | Martin Nilsson | |
o Deferred backtraces.
|
d10730 | 2002-09-22 | Martin Stjernholm | |
|
e2a738 | 2002-11-24 | Peter Bortas | | o Saved 8 bytes per object for objects not using their parent scope
|
6bf19a | 2002-09-15 | Peter Bortas | | o Improvement and bug tickets closed: 1499
Compatibility changes:
----------------------
|
638b8d | 2002-09-22 | Martin Stjernholm | | The following changes are known to break compatibility. The old
|
e2a738 | 2002-11-24 | Peter Bortas | | behavior is emulated in the compatibility layer that is activated by
|
638b8d | 2002-09-22 | Martin Stjernholm | | adding the preprocessor directive "#pike 7.2" to your program or by
giving the argument "-V7.2" to the pike executable.
o "global" has become a reserved keyword.
o Changed lookup rule for ::.
Previously the identifier in front of :: was only looked up among
the preceding inherits. Now the lookup additionally includes the
names of the surrounding classes. The inherits inside a class
still take precedence over the name of the class, though.
o Using local:: on variables is an error.
Previously the construct local::foo could be used to access the
identifier "foo" in the class scope if it had been overridden by
an argument or function variable. That is however only a
side-effect of the real use for local::, namely to bind the
identifier statically at that point only, to avoid getting an
overridden version. In the case of variables this leads to
questionable semantics, which is the reason it's been made an
error in this version. Pike 7.2 didn't implement it correctly;
there local:: on variables had only the effect to access the class
scope. Now a proper way to access hidden identifiers has been
added, so all such uses of local:: should be replaced with
this_program::.
|
6bf19a | 2002-09-15 | Peter Bortas | |
|
1d89c5 | 2002-09-24 | Johan Sundström | | o Identifier lookup
The search algorithm for finding identifiers from inherited classes
has been changed to look for the most recent definition in the most
recent inherit. In Pike 7.2 and prior, it looked up the last
definition regardless of inherit depth, unless there was a
definition in the current program. (This actually changed more than
once during 7.3 - between 7.3.23 and 7.3.32, it looked up the most
recent definition with the least inherit depth.) This example shows
what the lookup strategies would find:
class A {
int foo() {}
}
class B {
int foo() {}
inherit A;
}
class C {
inherit B;
}
class D {
inherit B;
inherit C;
}
Lookup of identifier "foo" in D():
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | D-+-B-+-foo (Pike 7.3.23 --- Pike 7.3.32)
|
1d89c5 | 2002-09-24 | Johan Sundström | | | |
| +-A---foo
|
+-C---B-+-foo Pike 7.3.33 --- (present day)
|
+-A---foo --- Pike 7.3.22
Lookup of identifier "foo" in C():
C---B-+-foo Pike 7.3.23 --- (present day)
|
+-A---foo --- Pike 7.3.22
Lookup of identifier "foo" in B():
B-+-foo All versions of Pike
|
+-A---foo
|
6225dd | 2002-11-25 | Martin Stjernholm | | o Thread.Condition()->wait()
This function takes a mutex lock to unlock while it waits on the
condition. That argument was previously optional, but not any
more. The reason is that any code that leaves it out will always
contain a race; it doesn't work to e.g. rely on the internal
interpreter lock in this case.
|
e2a738 | 2002-11-24 | Peter Bortas | |
o Protocols.HTTP
All methods in Protocols.HTTP that take a header mapping can now
handle array values (signifying multiple headers of that type).
o Protocols.LDAP.client
The return code from all methods was changed to follow Pike's
logic better. 0 is now a failure. The old behavior is emulated in
a compatibility layer.
o dirname
Now correctly returns a directory instead of just stripping the
part after the nearest directory separator.
|
777d3c | 2002-11-28 | Martin Nilsson | | o default_yp_domain
The EFUN default_yp_domain is now only available as
Yp.default_domain.
|
0fe81a | 2002-11-28 | Martin Nilsson | | o clone
The function clone has been removed. Instead of doing clone(x), do
x() in the future if x is a program or ((program)x)() if x is a
string.
|
e2a738 | 2002-11-24 | Peter Bortas | | o LR
|
777d3c | 2002-11-28 | Martin Nilsson | | LR has been moved to Parser.LR and the API has been changed
slightly to conform to current API practice, e.g. regarding casing
of symbols.
|
e2a738 | 2002-11-24 | Peter Bortas | |
o wmml documentation removed
Use the documentation in the refdoc directory instead.
o .build_lobotomize_crypto removed
Use the Makefile target lobotomize_crypto to lobotomize Pike.
Should preferably be executed in an unused tree straight from CVS.
Compatibility changes without backward compatibility:
-----------------------------------------------------
|
6225dd | 2002-11-25 | Martin Stjernholm | | The following changes were considered bugs and have no backwards
|
e2a738 | 2002-11-24 | Peter Bortas | | compatibility layer.
o enum and typedef have implicit local binding
enums and typedefs now always have static binding. In 7.2 they
could sometimes be dynamically bound.
|
6225dd | 2002-11-25 | Martin Stjernholm | | o Image.Layer modes modified
|
7ab100 | 2002-10-31 | Martin Nilsson | | Alpha channel handling for modes add, subtract, multiply, divide,
modulo, invsubtract, invdivide, invmodulo, difference, max, min,
bitwise_and, bitwise_or, bitwise_xor, screen and overlay modified so
that the source layer alpha channel copied to the destination layer
alpha channel rather then mixed with the current layer alpha channel:
aD=aS
rather then the behavior before:
aD=(aL+(1-aL)*aS)
(which is the behavior of the 'normal' mode.)
Bug fixes in the above modes so that alpha r,g,b channels
|
03360f | 2002-10-31 | Johan Sundström | | are handled properly (separately).
|
e2a738 | 2002-11-24 | Peter Bortas | | Bug fixes in equal, not_equal, less, more, less_or_equal, and
|
7ab100 | 2002-10-31 | Martin Nilsson | | more_or_equal modes so that the alpha channel is handled as
documented (which is, in fact, as above; aD=aS).
|
03360f | 2002-10-31 | Johan Sundström | |
|
e2a738 | 2002-11-24 | Peter Bortas | | Bug fix in divide and invdivide to actually do what the modes are
supposed to do (rather then just black the layer).
|
03360f | 2002-10-31 | Johan Sundström | |
|
7ab100 | 2002-10-31 | Martin Nilsson | | And while on it, adding some modes:
|
03360f | 2002-10-31 | Johan Sundström | |
|
7ab100 | 2002-10-31 | Martin Nilsson | | 'imultiply' - D=(1-L)*S
'idivide' - D=S/(1-L)
'invidivide' - D=L/(1-S)
|
03360f | 2002-10-31 | Johan Sundström | |
|
7ab100 | 2002-10-31 | Martin Nilsson | | 'value_mul' - multiplying the source layer value
|
03360f | 2002-10-31 | Johan Sundström | | (as in h,s,v) with the current layer value to the destination
layer ("true burn").
|
7ab100 | 2002-10-31 | Martin Nilsson | |
|
fc7f8d | 2002-11-24 | Martin Stjernholm | |
|
bf7e8e | 2002-09-26 | Martin Nilsson | | C level/development changes:
----------------------------
|
99b2a6 | 2002-09-26 | Henrik Grubbström (Grubba) | | o Some global symbols have been renamed to avoid name clashes.
|
bf7e8e | 2002-09-26 | Martin Nilsson | | sp -> Pike_sp
fp -> Pike_fp
fatal -> Pike_fatal
empty_string -> empty_pike_string
o --with-internal-profiling
o Module symbols not available from other modules.
|
6bf19a | 2002-09-15 | Peter Bortas | |
Bugs fixed:
-----------
o Reworked trampolines to cause less circular references. (solves 1937)
|
e2a738 | 2002-11-24 | Peter Bortas | | o Works with Autoconf 2.50
|
638b8d | 2002-09-22 | Martin Stjernholm | | (To browse bug tickets, either visit
http://community.roxen.com/crunch/ - or append the ticket id to
"http://bugs.roxen.com/" for an address directly to the ticket
itself.)
|
bf7e8e | 2002-09-26 | Martin Nilsson | |
|
e2a738 | 2002-11-24 | Peter Bortas | | Uncategorized misc changes:
---------------------------
|
bd8a48 | 2002-10-27 | Martin Nilsson | | o it is possible to change predefines without forking a new pike
o #pragma save_parent
|
03360f | 2002-10-31 | Johan Sundström | | o #pragma dont_save_parent (overrides constant __pragma_save_parent__)
|
e2a738 | 2002-11-24 | Peter Bortas | | o dont_dump_module *FIXME: grubba*
|
fc7f8d | 2002-11-24 | Martin Stjernholm | | o C modules can no longer call functions in other dynamic C modules directly
|
e2a738 | 2002-11-24 | Peter Bortas | | FIXME: mast, grubba?
o It is possible to inherit pike programs from C programs.
o Separate weak flags for indices and values in mappings
o Added low lowel glue for the Ffmpeg library.
o Calendar.verify *FIXME: remove?*
Nilsson does lib:
master.pike
- add_predefine/remove_predefine
- Improved handling of module cross dependencies.
Array.common_prefix
Array.count
Array.greedy_diff
Array.oid_sort_func
Array.arrayify
Array.uniq2
Array.sum
Local
Multiset
Pike.Backend
Pike.Security
Pike.BacktraceFrame
Pike.WEAK_INDICES, WEAK_VALUES, WEAK
Image.DWG
|
361da4 | 2002-11-25 | Martin Nilsson | | Image.DIMS
Image.Fonts
Image.filled_circle
|
e2a738 | 2002-11-24 | Peter Bortas | |
String.Elite
String.SingleReplace
String.Replace
String.SplitIterator
String.soundex
String.Buffer
|
361da4 | 2002-11-25 | Martin Nilsson | | String.HTML
String.int2char
String.int2hex
String.expand_tabs
String.int2roman
String.int2size
|
e2a738 | 2002-11-24 | Peter Bortas | |
ADT.History
ADT.Relation.Binary
Audio
Debug.Subject
Debug.Tracer
Locale.Language
MIME.ext_to_media_type
Parser.Python
Parser.RCS
Parser.decode_numeric_xml_entity
Parser.get_xml_parser
Parser.parse_html_entities
Parser.LR
Parser.XML.NSTree
Protocols.HTTP.Query supports https
|
92cf9f | 2002-11-25 | Honza Petrous | | Protocols.LDAP supports ldaps
|
361da4 | 2002-11-25 | Martin Nilsson | | Protocols.SNMP now works
Protocols.XMLRPC
SSL support TLS 1.0
Standards.EXIF
Standards.FIPS10_4
Standards.ID3
Standards.ISO639_2.map_to_639_1, convert_b_to_t, convert_t_to_b
Standards.RDF
Standards.CIFF
Stdio.FakeFile
Stdio.connect_unix
Stdio.simplify_path
Stdio.expand_symlinks
Stdio.file_equal
Stdio.FILE.set_charset
DVB
Web.Crawler
|