pike.git/
CHANGES
Branch:
Tag:
Non-build tags
All tags
No tags
2008-06-29
2008-06-29 21:18:09 by Martin Nilsson <mani@lysator.liu.se>
2f5dd46e3806af4476e098aeb7e3354f56abaab5 (
215
lines) (+
117
/-
98
)
[
Show
|
Annotate
]
Branch:
7.9
Rearranged a bit.
Rev: CHANGES:1.110
1:
Changes since Pike 7.6: ----------------------------------------------------------------------
-
o
Added
ABI
selection
.
+
This
is
a
high level list of changes between Pike 7
.
6 and Pike 7.8.
+
General bug fixes, build fixes and optimizations are not mentioned
+
here. For a complete list of changes, please consult the CVS changelog
+
either directly or through Code Librarian.
-
It's now possible to select whether to compile in 32bit or 64bit
-
mode at configure time by using the --with-abi option.
+
-
+
New / improved language functionality
+
-------------------------------------
+
o New syntax to index from the end in range operations. A "<" can be added before an index in the [..] operator to count from the end instead. This is convenient to e.g. chop off the last element in an array: a[..<1].
-
o Improved support for embedding.
-
-
Several declarations and definitions (most notably the debug and
-
runtime flags) have moved from main.h to pike_embed.h, in an attempt
-
to add support for embedding.
-
-
o Major compiler API cleanups.
-
-
The Pike compiler is now executing in a pike function context
-
(rather than in an efun context), and it is possible to customize
-
some of its behaviour via inherit (rather than via handler objects).
-
As a consequence the compiler is now much closer to being thread-safe.
-
+
o New `[..] operator function. Range operations have been separated from the `[] operator function
90:
o New (stricter) type checker for function calls.
-
The type checker for function calls is now based on the concept
-
of currification. This should provide for error messages that
-
are more easily understood. It also is much better att typechecking
-
function calls utilizing the splice (@) operator.
-
The mechanisms used by the typechecker are also made available as
-
Pike.get_first_arg_type(), Pike.low_check_call() and Pike.get_return_type().
+
The type checker for function calls is now based on the concept
of
+
currification. This should provide for error messages that are more
+
easily understood. It also is much better att typechecking
function
+
calls utilizing the splice (@) operator. The mechanisms used by the
+
typechecker are also made available as Pike.get_first_arg_type(),
+
Pike.low_check_call() and Pike.get_return_type().
o Added generic attributes for types.
108:
string(0..255) bytes;
-
o Stdio
-
-
- Stdio.cp can now work recursively in a directory tree. It will
-
also keep the permissions of files it copies.
-
-
- Added Stdio.recursive_mv which works on every OS and also when the
-
destination isn't on the same filesystem as the source.
-
-
- Added more symbolc default termcap/terminfo bindings to
-
Stdio.Readline.
-
-
- Improved support for Terminfo on NetBSD.
-
-
- read_file(), read_bytes(), write_file() and append_file() will may
-
now throw exceptions on uncommon errors such as when write_file is
-
unable to write all its data.
-
-
- Stdio.File->openat() opens a file relative to an open directory.
-
+
o Support for having multiple different active backend implementations. FIXME: example?
-
...
-
The global variable next_timeout is no more. It has been replaced by
-
a backend-specific variable. Added backend_lower_timeout() for accessing
-
the new variable. This fixes issues GTK, GTK2 and sendfile had with the
-
new backend implementation.
+
-
NOTE!
-
NOTE! C-API incompatibility!
-
NOTE!
-
NOTE! Changed the argument for backend callbacks!
-
NOTE!
-
NOTE! The argument is now a struct Backend_struct * when called
-
NOTE! at entry (was NULL).
-
NOTE! The argument is now NULL when called at exit (was 1).
-
NOTE!
-
-
o bin/precompile.pike
-
-
Voidable pointer types are no longer promoted to mixed.
-
+
o cpp The preprocessor now supports macro expansion in the #include and #string directives.
-
o PIKE_PORTABLE_BYTECODE
-
-
--with-portable-bytecode is now the default. Pike programs that have
-
been dumped on one architecture now can be decoded on another.
-
+
o Destruct reason passed to lfun::destroy. lfun::destroy now receives an integer flag that tells why the object
169:
DESCTRUCT_EXPLICIT, DESTRUCT_NO_REFS, DESTRUCT_GC and DESTRUCT_CLEANUP.
-
o Support for class symbols with storage in parent scope.
-
Also added support for aliased symbols.
-
+
o Improved support for mixin. The Pike compiler now supports mixin for symbols that have been
196:
Case information and the Unicode module are updated to Unicode 5.1.0.
-
o protected
+
o
The keyword
protected
The modifier protected is now an alias for the modifier static. NOTE: In next release static will be deprecated.
-
o Pike_fp->context
-
-
Pike_fp->context is now a pointer to the current struct inherit
-
rather than a copy of it. This allows for easier access to
-
inherited symbols in C-code.
-
-
NOTE!
-
NOTE! C-API incompatibility!
-
NOTE!
-
-
o Inherit level argument added to several object handling functions.
-
-
In order to implement subtyping of objects, an extra argument
-
"inherit_level" has been added to many object indexing related
-
functions.
-
-
NOTE!
-
NOTE! C-API incompatibility!
-
NOTE!
-
-
Extensions and New Functions
-
+
o __attribute__ and __deprecated__ It's now possible to set custom attributes on types. This is
258:
#pragma deprecation_warnings
+
+
Extensions and New Functions
+
----------------------------
+
o limit() The new toplevel function limit(a, x, b) is a convenience function
739:
FIXME
+
o Stdio
+
+
- Stdio.cp can now work recursively in a directory tree. It will
+
also keep the permissions of files it copies.
+
+
- Added Stdio.recursive_mv which works on every OS and also when the
+
destination isn't on the same filesystem as the source.
+
+
- Added more symbolc default termcap/terminfo bindings to
+
Stdio.Readline.
+
+
- Improved support for Terminfo on NetBSD.
+
+
- read_file(), read_bytes(), write_file() and append_file() will may
+
now throw exceptions on uncommon errors such as when write_file is
+
unable to write all its data.
+
+
- Stdio.File->openat() opens a file relative to an open directory.
+
o String - The function int2size has been rewritten to fixpoint as well as
812:
real time clocks in use.
-
New
Modules
+
New
modules / classes / methods added
+
-------------------------------------
o Fuse
872:
argv = opts[Arg.REST]; }
-
o Fuse
-
-
FIXME
-
+
o GTK2 FIXME
937:
Deprecations
+
------------
o The keyword nomask has been deprecated. It was functionally equivivalent with the keyword final. o Stdio.File->set_peek_file_before_read_callback() is deprecated.
-
+
Incompatible changes
-
+
--------------------
These incompatible changes can be solved by adding #pike 7.6 to your source file or starting Pike with -V7.6.
1013:
o The modules Mird, Perl and Ssleay have been removed.
+
C level module API
+
------------------
+
+
o Improved support for embedding.
+
+
Several declarations and definitions (most notably the debug and
+
runtime flags) have moved from main.h to pike_embed.h, in an attempt
+
to add support for embedding.
+
+
o Major compiler API cleanups.
+
+
The Pike compiler is now executing in a pike function context
+
(rather than in an efun context), and it is possible to customize
+
some of its behaviour via inherit (rather than via handler objects).
+
As a consequence the compiler is now much closer to being thread-safe.
+
+
o The global variable next_timeout is no more. It has been replaced by
+
a backend-specific variable. Added backend_lower_timeout() for accessing
+
the new variable. This fixes issues GTK, GTK2 and sendfile had with the
+
new backend implementation.
+
+
NOTE!
+
NOTE! C-API incompatibility!
+
NOTE!
+
NOTE! Changed the argument for backend callbacks!
+
NOTE!
+
NOTE! The argument is now a struct Backend_struct * when called
+
NOTE! at entry (was NULL).
+
NOTE! The argument is now NULL when called at exit (was 1).
+
NOTE!
+
+
o Pike_fp->context
+
+
Pike_fp->context is now a pointer to the current struct inherit
+
rather than a copy of it. This allows for easier access to
+
inherited symbols in C-code.
+
+
NOTE!
+
NOTE! C-API incompatibility!
+
NOTE!
+
+
o Inherit level argument added to several object handling functions.
+
+
In order to implement subtyping of objects, an extra argument
+
"inherit_level" has been added to many object indexing related
+
functions.
+
+
NOTE!
+
NOTE! C-API incompatibility!
+
NOTE!
+
+
o bin/precompile.pike
+
+
Voidable pointer types are no longer promoted to mixed.
+
+
o Support for class symbols with storage in parent scope.
+
Also added support for aliased symbols.
+
+
+
Building and installin
+
----------------------
+
+
o Added ABI selection.
+
+
It's now possible to select whether to compile in 32bit or 64bit
+
mode at configure time by using the --with-abi option.
+
+
o PIKE_PORTABLE_BYTECODE
+
+
--with-portable-bytecode is now the default. Pike programs that have
+
been dumped on one architecture now can be decoded on another.
+
+
New simplified method to write external C/C++ modules
-
+
-----------------------------------------------------
It's now suggested that you do not use the fairly complex 'pike internal' style of external modules (configure.in with
1119:
7.4::blaha
-
now supports micin for static symbols.
-
+
Inherit::this and Inherit::this_program now works.