3a6fd92013-10-08Per Hedbor Pike 8: Changes since Pike 7.8 (scratch area for future release notes)
2ac4992011-03-09Martin Stjernholm ----------------------------------------------------------------------
6f85282013-11-01Per Hedbor -- New language features
2ac4992011-03-09Martin Stjernholm 
6f85282013-11-01Per Hedbor 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
1447e72011-12-13Tobias S. Josefowitz 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.
6f85282013-11-01Per Hedbor 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.
7edb532012-03-02Arne Goedeke o Added module Geography.GeoIP
6f85282013-11-01Per Hedbor 
3a6fd92013-10-08Per Hedbor o Protocols.WebSocket
6f85282013-11-01Per Hedbor  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
3a6fd92013-10-08Per Hedbor o Mysql - Support more modern client libraries (incl. MariaDB)
6f85282013-11-01Per Hedbor 
3a6fd92013-10-08Per Hedbor o Standards.PEM: Added some support for encrypted PEM files
6f85282013-11-01Per Hedbor  o Nettle refactored
3a6fd92013-10-08Per Hedbor o String.Buffer + Added buffer->add(buffer) support + Added buffer->sprintf() + Added adat() o pike -x benchmark output format changed 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 Thread no longer inherits Thread.Thread (aka thread_create)
6f85282013-11-01Per Hedbor o Thread.Farm now might work
3a6fd92013-10-08Per Hedbor o Stdio.UDP + added ipv6 multicast support + added set_buffer
6f85282013-11-01Per Hedbor 
3a6fd92013-10-08Per Hedbor o sprintf("%H") and sscanf("%H") (new) sscanf("%n") (now documented, existed before (%!<X> modifier, used by optimizer)) o Image.JPEG.exif_decode o Process.daemon The daemon() function is for programs wishing to detach themselves from the controlling terminal and run in the background as system daemons. o Crypto.PGP - support more hash functions. o String.levenshtein_distance()
6f85282013-11-01Per Hedbor  That function calculates the Levenshtein distance between two
3a6fd92013-10-08Per Hedbor  strings. The Levenshtein distance describes the minimum number of edit operations insert, delete or substitue a character to get from one string to the other.
2ac4992011-03-09Martin Stjernholm 
3a6fd92013-10-08Per Hedbor  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 Unicode databases updated to 6.2.0 o Timezone databases updated to tzdata2013d o inherit ::this_program This syntax refers to the previous definition of the current class in its parent, and is typically used with inherit like: inherit Foo; // Override the Bar inherited from Foo. class Bar { // Bar is based on the implementation of Bar in Foo. inherit ::this_program; // ... } o precompile + inherit "identifier" -- inherit the program returned by calling master()->resolve() on the specified identifier. Useful to inherit code written in pike. + cpp prefix feature #cmod_define #cmod_if etc o System.sync() o System.getloadavg() 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. git_export_autodoc Exports a stream of autodoc.xml suitable for git-fast-import. pv Pike image viewer (diet). o Lots of GTK2 fixes o Crypto.crypt_hash() o Image.JPEG.decode now has basic CMYK/YCCK support o visibility=hidden default (PMOD_EXPORT now also needed on unix) o Fixed units in pike --help=kladdkaka o clang compilation fixes (bignum overflow checks, misc) o Various coverity fixes 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
6f85282013-11-01Per Hedbor 
3a6fd92013-10-08Per Hedbor o generic ipv6 fixes, ipv6 mapped ipv4 addresses o Async Protocols.SNMP client o MacOSX CoreFoundation support in the backend o lots of autodoc fixes o Some Parser.SGML fixes o Readline tries to set the charset to the terminal charset o Fixes to Process.run, Process.spawn_pike and friends. 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 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 New charsets A lot of ISO-IR charsets added: 9-1, 9-2, 31, 232, 234, 231 (aka ANSI/NISO Z39.46, aka ANSEL) 230 (aka TDS 565) 225 (SR 14111:1998), 197/209 (sami) 208 (IS 434:1997) 207 (IS 433:1996), 204,205 and 206 (aka 8859-1, 8859-4 and 8859-13 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
6f85282013-11-01Per Hedbor  9566-97). Fixed CSA_Z242.4
3a6fd92013-10-08Per Hedbor o Fixes to the HTTP client in Protocols.HTTP. o dtrace support (on macosX at least?) o Blowfish and Serpent support fixed in Nettle