pike.git/
CHANGES
Branch:
Tag:
Non-build tags
All tags
No tags
2013-11-01
2013-11-01 15:59:59 by Per Hedbor <ph@opera.com>
54fe98f3226192301e7b5d06aadcffd1062ad728 (
231
lines) (+
131
/-
100
)
[
Show
|
Annotate
]
Branch:
7.9
Fixed the reorganization
1:
Pike 8: Changes since Pike 7.8 (scratch area for future release notes) ----------------------------------------------------------------------
+
-- New language features
-
___
TOTALLY
UNORGANIZED
AND
TOO
SHORT
CHANGELOG
FOLOWS
__
-
o
decode
_
value
now
throws
the
error
object
Error
.
DecodeError
.
Useful
-
to
catch
format
errors
in the
decode
string
.
+
o local::
+
o variant
+
| class Test1 { int b(); }
+
| class Test2 { int a(); }
+
|
+
| class Foo
+
| {
+
| variant string foo( object q ){ return "Genericfoo"; }
+
| variant string foo( Test1 x ) { return "Test 1"; }
+
| variant string foo( Test2 x ) { return "Test 2"; }
+
|
+
| variant string bar( int(0..0) s ) { return "0"; }
+
| variant float bar( int(1..1) s ) { return 1.0; }
+
| variant int bar( int(2..2) s ) { return 2; }
+
| }
+
+
o New typechecker
+
+
o Support for ", ##
__
VA
_
ARGS__"
cpp
feature.
+
+
o
Allow
'.'
to
be
used
as an index operator in the few places id did
+
not work before.
+
+
o safe index
+
+ X[?10] -- index X with 10, or if X is null, evaulates to 0.
+
+ X?->foo -- index X with foo, or if X is null, evaluates to 0.
+
+
o Added the '?:' operator for compatibility with other C-like languages.
+
It is identical to '||' in pike.
+
+
o && changed, when doing A && B, and A is false, keep A instead of
+
pushing 0.
+
+
o X::this
+
+
o dynamic macros (master()->add
_
predefine("MACRO()", callback) etc)
+
| > master()->add
_
predefine("RND()", lambda( string arg1 ) { return random((int)arg1); });
+
| > RND(10);
+
| (2) Result: 9
+
| > cpp("RND(123)")
+
| (3) Result: "19"
+
|
+
| It can also be used to override the default builtin macros. If you
+
| want "fun" debug information (not used for backtraces, but code using
+
|
_
_LINE__
will be confused):
+
|
+
| > master()->add_predefine("__LINE__", lambda() { return random(4711); });
+
| > __LINE__;
+
| (6) Result: 2593
+
| > __LINE__;
+
| (7) Result: 1780
+
+
--- optimizations
+
+
o New significantly faster block allocator
+
o Power-of-two hashtables are
now
used
for
most
hashtables
+
o
Significantly changd x86-32 and new AMD64/x86-64 machinecode
+
compilation backend
+
o svalue type renumbering
+
o string(x
..
y)
(constant) types
+
| > typeof("foo");
+
| (1) Result: string(102..111)
+
also used
to
optimize
lower_case/upper_case
search
and
+
string_has_null etc.
+
+
o Several other optimizations to execution speed has been done
+
+
--- removed stuff
+
o Removed bundles
+
o Removed facets
+
o The built
in
sandbox is now deprecated.
+
o Bignums are now a required language feature, it is no longer
+
possible to build a pike without them
+
o Tools.PEM and Tools.X409 deprecated (use
the
corresponding
modules in Standards
.
)
+
o The old 'files' module was renamed to _Stdio
+
o Locale.Charset -> Charset
+
o Renamed GTK to GTK1, added a GTK.pmod that is either GTK2 (if
+
available) or GTK1 (if there is no GTK2, but GTK1 is available).
+
+
-- new modules
o Added ADT.CritBit module Mapping-like key-sorted data structures for string, int and float-keys (ADT.CritBit.Tree, ADT.CritBit.IntTree, ADT.CritBit.FloatTree). Implemented in C.
-
+
o Standards.BSON
+
A new module for working with BSON serialized data.
+
See http://bsonspec.org/
+
o Crypto.CAMELLIA
+
o System.TM
+
Low-level wrapper for struct tm.
+
+
This can be used to do (very) simple calendar operations. It is,
+
as it stands, not 100% correct unless the local time is set to
+
GMT, and does mirror functionality already available in gmtime()
+
and localtime() and friends, but in a (perhaps) easier to use API.
+
o Added module Geography.GeoIP
-
o Debug.pp_memory() Debug.pp_object_usage()
-
debug information functions, useful to get debug information from
-
running pike applications.
-
o Debug.program_defined( prog, x );
-
o Removed bundles
-
o files was renamed to _Stdio
-
o Several OS/2 and windows compilation fixes
-
o New significantly faster block allocator
+
o Protocols.WebSocket
-
+
An implementation of the WebSocket (RFC 6455) standard.
+
o Image.WebP.
+
o Serializer.Encodable (automatic _encode/_decode)
+
o Serializer
+
o Filesystem.Monitor (System.Inotify, System.FSEvents)
+
o Mysql.SqlTable
+
o Parser.CSV
+
o ZXID
+
o Bz2 Bz2.File("path"), line_iterator
+
o Git module
+
o Val.{true,false,null}
+
o SDL.Music
+
+
-- UNSORTED
+
+
o decode_value now throws the error object Error.DecodeError.
+
Useful to catch format errors in the decode string.
+
+
o Debug.pp_object_usage()
+
Pretty print debug information, useful to get debug information
+
about object counts and memory usage in pike applications.
+
+
Uses the new _object_size lfun, if present in objects, to account
+
for RAM-usage in C-objects that allocate their own memory.
+
+
+
o Several OS/2 and windows compilation fixes
+
o Mysql - Support more modern client libraries (incl. MariaDB)
-
o AMD64/x86_64 machinecode compilation backend
-
o svalue type renumbering
+
o Standards.PEM: Added some support for encrypted PEM files
-
o new _object_size lfun / global function correct ram-usage debug for C
-
objects allocating memory.
-
o Nettle
.Hash
refactored
+
+
o Nettle refactored
o String.Buffer + Added buffer->add(buffer) support + Added buffer->sprintf() + Added adat()
-
o Tools.PEM and Tools.X409 deprecated (use the corresponding modules in Standards.)
+
o pike -x benchmark output format changed
-
o Standards.BSON
-
A new module for working with BSON serialized data.
-
See http://bsonspec.org/
+
o Protocols.DNS + Prevent endless loops in maliciously crafted domain names. + Add QTYPE T_ANY to DNS enum EntryType in DNS.pmod. + Handle truncated labels + TCP client and server support
-
o Crypto.CAMELLIA
-
o System.TM
-
Low-level wrapper for struct tm.
-
-
This can be used to do (very) simple calendar operations. It is,
-
as it stands, not 100% correct unless the local time is set to
-
GMT, and does mirror functionality already available in gmtime()
-
and localtime() and friends, but in a (perhaps) easier to use API.
+
o Thread no longer inherits Thread.Thread (aka thread_create)
-
o Thread.Farm
nwo
might work
+
o Thread.Farm
now
might work
o Stdio.UDP + added ipv6 multicast support + added set_buffer
-
o Bignums are now required, it is no longer possible to build a pike without them
-
o Locale.Charset -> Charset
-
o Image.WebP.
-
o serveral optimizations to execution speed
+
o sprintf("%H") and sscanf("%H") (new) sscanf("%n") (now documented, existed before (%!<X> modifier, used by optimizer))
-
o string(x..y) (constant) types
-
| > typeof("foo");
-
| (1) Result: string(102..111)
-
also used to optimize lower_case/upper_case search and string_has_null etc.
-
o The built in sandbox is now deprecated.
+
o Image.JPEG.exif_decode
-
o Removed facets
-
o local::
-
o variant
-
| class Test1 { int b(); }
-
| class Test2 { int a(); }
-
|
-
| class Foo
-
| {
-
| variant string foo( object q ){ return "Genericfoo"; }
-
| variant string foo( Test1 x ) { return "Test 1"; }
-
| variant string foo( Test2 x ) { return "Test 2"; }
-
|
-
| variant string bar( int(0..0) s ) { return "0"; }
-
| variant float bar( int(1..1) s ) { return 1.0; }
-
| variant int bar( int(2..2) s ) { return 2; }
-
| }
+
o Process.daemon The daemon() function is for programs wishing to detach themselves from the controlling terminal and run in the background as system
93:
The algorithm can be used in approximate string matching to find matches for a short string in many longer texts, when a small number of differences is expected.
-
o Serializer.Encodable (automatic _encode/_decode)
-
o Serializer
+
o Unicode databases updated to 6.2.0 o Timezone databases updated to tzdata2013d o inherit ::this_program
116:
+ cpp prefix feature #cmod_define #cmod_if etc o System.sync() o System.getloadavg()
-
o Filesystem.Monitor (System.Inotify, System.FSEvents)
+
o Stdio.File()->send/receive[_fd] o The Search module has seen several fixes o Standalone tools added: autodoc_to_html AutoDoc XML to HTML converter. autodoc_to_split_html AutoDoc XML to splitted HTML converter.
-
forkd Light-weight daemon for spawning new processes.
+
git_export_autodoc Exports a stream of autodoc.xml suitable for git-fast-import. pv Pike image viewer (diet).
-
o Renamed GTK to GTK1, added a GTK.pmod that is either GTK2 (if
-
available) or GTK1 (if there is no GTK2, but GTK1 is available).
+
o Lots of GTK2 fixes o Crypto.crypt_hash() o Image.JPEG.decode now has basic CMYK/YCCK support
136:
o clang compilation fixes (bignum overflow checks, misc) o Various coverity fixes
-
o safe index
-
+ X[?10] -- index X with 10, or if X is null, evaulates to 0.
-
+ X?->foo -- index X with foo, or if X is null, evaluates to 0.
+
-
o Added the '?:' operator for compatibility with other C-like languages.
-
It is identical to '||' in pike.
-
-
o Mysql.SqlTable
-
+
o SNI client extension support for SSL (Server Name Indicator) o System.get_home + System.get_user (mostly) Cross-platform ways to get username and home directory o System.AllocConsole, System.FreeConsole and System.AttachConsole for NT o Process - forkd
-
o dynamic macros (master()->add_predefine("MACRO()", callback) etc)
-
| > master()->add_predefine("RND()", lambda( string arg1 ) { return random((int)arg1); });
-
| > RND(10);
-
| (2) Result: 9
-
| > cpp("RND(123)")
-
| (3) Result: "19"
-
|
-
| It can also be used to override the default builtin macros. If you
-
| want "fun" debug information (not used for backtraces, but code using
-
| __LINE__ will be confused):
-
|
-
| > master()->add_predefine("__LINE__", lambda() { return random(4711); });
-
| > __LINE__;
-
| (6) Result: 2593
-
| > __LINE__;
-
| (7) Result: 1780
+
-
o X::this
-
o Parser.CSV
+
o generic ipv6 fixes, ipv6 mapped ipv4 addresses o Async Protocols.SNMP client o MacOSX CoreFoundation support in the backend
-
o ZXID
-
o Bz2 Bz2.File("path"), line_iterator
-
o Git module
-
o new typechecker
+
o lots of autodoc fixes o Some Parser.SGML fixes o Readline tries to set the charset to the terminal charset
-
o && changed, when doing A && B, and A is false, keep A instead of pushing 0.
+
o Fixes to Process.run, Process.spawn_pike and friends.
-
o Val.{true,false,null}
+
o glob( array, X ) o AES support added to SSL o SSL now supports TLS 1.0 (SSL 3.1) and TLS 1.1
-
o SDL.Music
+
o predef::types (seems somewhat broken, or is it intended at types(({1,2,3})) returns ({ mixed,mixed,mixed})?) o Builtin._get_setter / Builtin.Setter o Parser.XML.Tree fixes
-
o power-of-two hashtables are now used for most hashtables
-
o Doing + and - on a lot of floats is now more accurate.
+
o New charsets A lot of ISO-IR charsets added:
200:
with euro) 201, 200, 138 (ECMA-121) 198 (ISO 8859-8:1999) 182, 181, 189 (TCVN 5712:1993, aka VSCII) 167, 166 (aka TIS 620-2533 (1990)), 164, 160, 151 (NC 99-10:81), 68 (APL), 59 (CODAR-U), 202 (KPS
-
9566-97).
-
Fixed CSA_Z242.4
+
9566-97). Fixed CSA_Z242.4
o Fixes to the HTTP client in Protocols.HTTP. o dtrace support (on macosX at least?) o Blowfish and Serpent support fixed in Nettle
-
o Allow '.' to be used as an index operator in the few places id did not work before.
-
o support for ", ##__VA_ARGS__" cpp feature.
+
Changes since Pike 7.8.352 (third 7.8 release): ----------------------------------------------------------------------