Documentation [ADT.CircularList]: Added some cross-references.
Documentation [ADT.CircularList]: Fix AutoDoc markup error.
ADT.CircularList: Add force argument to add() and push_{front,back}(). This makes it possible to take advantage of it being circular.
Tools.AutoDoc.PikeObjects.EnumConstant: Reduce code duplication.
Fix a couple of docs typos
Debug: added functions to generate perf map files
EFUNs: Improved integer types for several math functions. Improves the return types for predef::sqrt(), predef::min(), predef::max(), predef::limit(), predef::abs() and predef::sgn() when called with integer types.
Misc: Fix incorrect syntax in autodoc
ADT.Sequence: Update to new iterator API.
Documentation [ADT.Sequence]: Remove remaining references to adapters. The module was renamed ADT.Sequence almost 20 years ago, so fix the remaining places that refer to it as an array adapter.
ADT.List: Updated to new iterator API. Fixes some of #10085.
ADT.CircularList: Update iterator to new API. Also adds testsuite and fixes some documentation errors.
ADT.Relation.Binary: Updated implementation of lfun::_get_iterator(). Also added some documentation.
Compiler [Typechecker]: Changed API for apply_type_attribute() et al. They now get a mapping that they may use to keep state between arguments.
Crypto: Fix multiple warnings about passing of zero values.
Image.GIF: Updated type for _render_block().
EFUNs: Improved type for sizeof() and strlen().
Program: Fixed some warnings with respect to defined().
GC: Support remaining types in Pike.count_memory(). Users of Pike.count_memory() typically do not want to bother filtering its arguments, so perform filtering in count_memory() rather than throwing errors. Also adds support for counting memory for objects referenced via functions.
Added String.bits to give the number of actually used character bits.
Int: Make ninf visible.
Documentation [Array]: Improved doc for dwim_sort_func().
Doc: Fixed AutoDoc markup typo.
decode_value(): Allow to restrict decoding to simple types The encoded value has quite a bit of control over our process. Allow to restrict decoding to primitive types by passing coding as -1.
Doc [Ffmpeg]: Fixed some markup issues.
Runtime: Adjusted return types for lots of functions to include zero.
Inotify: add_watch() now returns -1 on some failures. This is to simplify differentiation between failures due to the filesystem being in flux (eg races), and failures due to resource limits. Fixes race condition (time of check, time of use) in Filesystem.Monitor.basic.InotifyMonitor()->register_path(). Fixes #10059.
Program.annotations: invert recursion flag to make more sense for the default case.
ADT: Use new iterator LFUNs in more places.
ADT.List: Use the new iterator LFUNs. Fixes multiple warnings on start.
Program: add Program.annotations() for retrieving annotations defined on a program.
SSL.Context: Context commits to tickets via offers_tickets() In certain situations, i.e. after receiving an empty Session Ticket extension (client supports, but does not yet have a ticket), by including the Session Ticket extension in the server hello commits us to providing a ticket later. As SSL.Context would simply return 0 in encode_ticket() when use_cache was zero (not the default), we used to break the protocol on such occasions. Instead, we now use SSL.Context()->offers_tickets() to signal whether Session Tickets should be supported on the connection (and whether the Context commits to encoding a session as ticket later on).
Arg: Document the help/usage system.
ADT.OrderedMapping: Improve docs.
ADT.OrderedMapping: Fix duplicate entries, optimise and add substract.
Stdio: Some pty-handling cleanup. Add wrappers emulating missing libc functions.
ADT.List: Added _reverse().
Sprintf: Cleanup linebreak mode. The sprintf "%/s" and "%=s" modes now break at the column width (defaulting it to the field width) and not the field width. This makes it possible to use formats like eg "%;*-=s" (instead of "%*-=s") to not get every line padded to the full column width.
Documentation: Fixed some AutoDoc markup errors. The documentation for String.Replace et al should now be in the correct place again, and the documentation for System.Time et al should no longer get lost.
Mysql.Result: Update the index counter when fetching rows. Call Sql.Result::increment_index() at relevant places. Fixes testsuite failure. Fixes PIKE-197 (#8197).
Documentation [Traditional]: Added some sections.
ADT.Stack: Added pop_to(). This is useful to undo an unknown number of push()es.
ADT: Protect even more lfuns.
Merge commit '722771973bd' into patches/lyslyskom22891031 * commit '722771973bd': (6177 commits) Verify that callablep responses are aligned with reality. ...
Thread.Farm: Added ResultWrapper. This is a wrapper for the Result class to detect when the user loses its reference to it, in order to not lose reports of any errors from the worker threads.
Merge commit '2470270f500c728d10b8895314d8d8b07016e37b' into grubba/typechecker-automap * commit '2470270f500c728d10b8895314d8d8b07016e37b': (18681 commits) Removed the old typechecker. ...
Compiler: Call end_pass_identifier() for identifier annotations.
Builtin.LiveBacktraceFrame: Initial implementation. NB: Some features are still missing.
Image.Dims: Revert EXIF flipping of dimensions in get_JPEG Like for JPEG._decode, add a specific exif_get_JPEG which does the flipping instead.
Merge branch 'patches/pike156' into 8.0 * patches/pike156: EFUNs: Hide mutex keys and crypto contexts from backtraces.
EFUNs: m_delete() now supports operation on multisets.
Thread.Condition: Improve docs.
Array.sum_arrays: Fix autodoc typo The function is called "sum_arrays", with a trailing "s", but the example in the documentation said "sum_array".
Fix copy-paste error in refdoc.
ADT.Stack: Added peek().
Efuns: Support little-endian input in string2hex().
I/O [NT]: Use new low-level functions from Process.
Merge github.com:poppa/pike-libsass into patches/pike89 * github.com:poppa/pike-libsass: (64 commits) [...]
Documentation [ADT.Stack]: Fixed some typos.
Improved type of Array.everynth
Merge commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e' into patches/pike63 * commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e': (19587 commits) ...
Fix typos and docs.
String.Buffer: Moved implementation. Moves implementation of String.Buffer from builtin.cmod to string_builder.cmod. Adds initialization of the module to happen before that of cpp. This will allow cpp.cmod to rely on String.Buffer to exist at compile time.
Equvivalent and equivalent are not equivalent.
pgsql: Update docs.
Fix spelling of 'necessary' in comments and docs
There was an XML syntax error in this file.
Manual: Extended the data types chapter with void & mixed. Added some elaboration on the difference between compile-time and run-time types, as well as some about the types void & mixed and how they are used. Fixes [bug 1656 (#1656)].
ADT.Heap: Survive the same Element being pushed multiple times. Calling push() with an Element already present on the heap is now equivalent to calling adjust() with the same element. Previously the heap got corrupted in the above case.
Documentation [Function]: Some Autodoc markup cleanup.
String.Buffer: Added _search(). It is now possible to search a String.Buffer.
Added Nettle.version()
Fix doc prototype.
More narrow documentation.
New class ADT.OrderedMapping. This class emulates a mapping but will keep the order of the indices as they were added.
Function: several doc fixes
ADT.Heap: Added low_pop(). This function is analogous to low_peek().
String.Buffer [search]: Added lfun::_search().
Allow sprintf %x on a string.
Documentation [Multiset]: Added minimal description.
Crypto.DH [SSL]: Updated with references to RFC 7919.
It's tedious to write trim_all_whites. Make trim the canonical name.
Added C++11-alike Function.bind functionality. This is somewhat similar to Function.curry, but more dynamic. However, the usage is somewhat cumbersome, you have to use placeholders if you want anything except static arguments. As an example: import Function.Placeholder; function add_6 = Function.bind( `+, arg0, 6 ); This returns a function that adds 6 to it's only argument (in that order, unlike curry which would be the other way around) Function.Placeholder has these useful indices: o argN -- takes argument N from the call o rest -- All unused arguments (by argN, Arg(N) or Splice) o Splice(start[,end]) arguments from start (if end is not specified, all arguments) o Arg(N) similar to argN, but N can be negative o Expr(func[,splice]) Call func with arguments, use return value if splice is true, returns an array to be @:ed. Things to do: The syntax is rather horrid, really. Is there a way to get a more reasonable one?
Added Function.composite.
ADT.Heap: Added low_peek().
Revert "Added the Markdown module and the standalone pike_to_html.pike from 8.1." This reverts commit 2706a62c3c72b296a0c77b418f1e186c682c7ac5.
Added creation method raw to put binary data directly in an image object without adaptation.
Don't call f_random directly.
Made hex2string more permissive, as any non-hex characters are now allowed outside hex tuples. It is also less permissive, as non-hex characters will produce an error when in tuples, whereas they were previously treated as 0.
Don't push 0 in void methods. Don't clean the stack in void methods. Fixed a _sprintf prototype. Converted some code to use RETURN.
ADT.Scheduler: API fix mk II. ADT.Scheduler()->get() now works as documented and intended again. Reverts the testsuite changes from c2535027a79c958d5355686026e12ff78007b598.
ADT.TreeScheduler: Updated to new Heap API.
Nettle: Let the IV be set through Nettle.Proxy (aka Crypto.Buffer).
Filesystem.Monitor: Added check_all().
Protocols.HTTP2: Added Frame class.
ADT.Heap: Added ADT.Heap.Element. This adds one level of indirection, but is needed to get a reasonable performance in code that needs to call adjust(). Also corresponding updates to ADT.Priority_queue. Also removes the LFUN::`==() operator from ADT.Priority_queue.elem, as it doesn't serve any purpose.
Support linking direct to RFC anchor.
Autodoc fixes.
Use @rfc{@} autodoc syntax.
ADT.TreeScheduler: Added scheduler from RFC 7540 section 5.3.
Thread.Thread [Documentation]: Adjusted return type of thread function. The return value of the thread function is relevant (as it is returned by wait())... Fixes [LysLysKOM 21410113] reported by Per Cederqvist. Thanks. Also adjusted the declared type of create() somewhat so that it requires a thread function (ie the compiler will now complain if it is called without arguments).
Documentation [ADT.Heap]: Added some cross-references.
ADT.Heap: Added remove().
ADT.Scheduler: Keep Consumer()->offset up to date. This simplifies code that needs to check the priority of potentially inactive consumers.
ADT.Scheduler: First version. This is a data type intended to be used to distribute quanta of a resource fairly among a set of prioritized consumers.
Mark read and write as deprecated. Added documentation.
Removed trailing spaces.
ADT.Bloom: doc typo
ADT.Bloom: Added Bloom filter class for integers
ADT.Bloom.SValue: corrected comment
Added ADT.Bloom Added several different Bloom filters. They all use the same base class but differ in what keys they accept and how the hash functions are constructed. Consult the documentation for more information. Bloom filters can be faster than hash tables However, this speed advantage is hard to get to from pike, due to the extra cost of calling lfuns vs mapping lookups. Therefore, the only advantage these bloom filters have over pike mappings is the much lower memory footprint.
Deprecate ADT.struct
Remove superfluous legacy compat support prior to 7.8.
Process.spawn_pike: Added launcher argument.
Moved deprecated methods to compat.
String.Buffer: completed the removal of addat
Stdio.IOBuffer -> Stdio.Buffer (part 1)
Document Program.all_inherits and give an example
Rework Program.all_inherits to be recursive
Revert to String.Buffer simplex. Lost functionality needs to be found in IOBuffer.
Remove String.Buffer.addat().
Resistance is futile, ye shall be assimilated. String.Buffer on steroids; embraces and extends IOBuffer.
Merge remote-tracking branch 'origin/8.0' into string_alloc Conflicts: src/stralloc.c
Allow setting and unsetting buffers for each direction
Added Function.uncurry. It is sort of the reverse of Function.curry.
ADT.struct removal, stage 1: Use Stdio.IOBuffer internally
GTK2: Update Scale docs based on source file
Moved __builtin.IOBuffer to Stdio.IOBuffer (for now)
IOBuffer documentation fixes.
Use [..] lfun instead.
Update doc.
Prototype and doc fixes.
Support < and > operators.
Document features.
Fix prototype, and do not second-guess the user for optimum size.
Repair and cleanup declarations.
Optimise clear() for speed.
Support == operator.
Stricter return types for cast. This, if nothing else, makes the documentation cleaner.
Update String.Buffer documentation.
Add new member functions [] and cut().
Some minor documentation tweaks. It has been a while since the classes were called Gz_deflate and Gz_inflate.
Merge remote-tracking branch 'origin/8.0' into string_alloc
Improved type checking.
Added a few more global variable opcodes. Gotta catch em all! This time: PRIVATE_IF_DIRECT_GLOBAL and ASSIGN_PRIVATE_IF_DIRECT_GLOBAL These will fetch or assign a global variable if the currently executing program is the program the object is cloned from. These are only slightly slower than the F_PRIVATE_GLOBAL family of opcodes, and the overhead if the global is not actually private is minimal. Missing: [ASSIGN_]PRIVATE_IF_DIRECT_TYPED_GLOBAL[_AND_POP] and ASSIGN_PRIVATE_IF_DIRECT_GLOBAL_AND_POP.
Moved a few modules around in the traditional refdoc We really should update this file completely, I think
Less zero_type.
Fix a crash.
Documentation: Added some crossreferences for *.secure().
Object: Added secure(). This function sets the OBJECT_CLEAR_ON_EXIT flag on the provided object (analogous to String.secure() and STRING_CLEAR_ON_EXIT). Also fixes the documented type of String.secure().
Documentation for put_var_string_array.
Incompatible change for multibyte get/put_var_uint_array ADT.struct calles. The SSL specification, which is was made for, stores the number of bytes in the array size description, while this implementation stored the number of elements. Either one works fine for 1 byte arrays, which this was used for. Changed to use the byte size.
Fix variable names and stop using @decl.
Allow chaining of put calls to struct.
Added String.range.
Configure: Inhibit machine code with gcc 4.6.0 and later. The machine code generator is broken when compiled with gcc 4.6.0 and later, so disable it in that case.
Standards.ASN1.Decode: Added more control to simple_der_decode(). It is now simple to add a few more known types to parse to simple_der_decode(). This is typically useful when the ASN.1 definition uses IMPLICIT tags.
Unicode.normalize: use unsigned ints for hash value hval % HSIZE for a negative hval will result in a negative htable index. this is triggered by characters in 32 bit strings which are represented by negative 32 bit signed integers
Crypto.ECC.Curve: Fixed pkcs_ec_parameters(). The curve identifier should not be wrapped in a sequence. Fixes interoperability with OpenSSL and GNUTLS.
Merge branch '8.0' into gobject-introspection
SSL: Improved robustness in destroy(). The embedded stream may still be registered with a backend when the sslfile object loses its last reference. Make sure not to trigger the "In callback mode in a different backend." error in that case. Fixes [bug 6958 (#6958)].
Crypto: Stricter string types.
ADT.struct: Stricter string types.
String.Buffer: Support adding of buffers. String.Buffer()->add() et al now support String.Buffer objects in addition to strings. Also adds clear(). Fixes [bug 4581 (#4581)].
Added an optional second argument to Program.defined(). When passed it will give you the filename and line number a specific identifier in a program is defined on. This is very useful for profiling output, as an example.
Merge remote-tracking branch 'origin/7.9' into pdf
Doc fixes.
sprintf is not a module anymore
Added small comment on RFC1123 format as specified in RFC2616 (and RFC1945).
Add function String.levenshtein_distance() That function calculates the Levenshtein distance between two 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. 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.
Fix the type of String.Buffer->sprintf.
Added sprintf to String.Buffer.
OMS-7836, OMS-7899: Allow setting Stdio.UDP buffer sizes. Mostly copied from Stdio.File.
Slightly more strict type for Function.curry. This one really could use some type inference
Documentation: Some more notes about String.width().
Documentation: Fixed AutoDoc markup in a few places.
Image.AVS: Enable support for alpha channel in encode().
String: Made the status() function reachable. Adds String.status(), which is a direct interface to add_string_status(). add_string_status() now uses string_builder instead of dynamic_buffer. It also now knows about short and wide strings. Changes the output formatting of add_string_status(), but this should not matter, since it was not used anywhere.
ADT.CritBit: added bignum support Author: Tobias S. Josefowitz <tobij@tobij.de> Author: Arne Goedeke <el@laramies.com>
Program.inherits(): accept objects as first argument.
Merge branch '7.9' into gobject-introspection
ADT.CritBit: iterator uses parent
Image.JPEG: Fix integer underflow. Fixes [bug 6413 (#6413)].
Merge remote branch 'origin/7.9' into rblock_alloc Conflicts: src/post_modules/CritBit/floattree.cmod src/post_modules/CritBit/inttree.cmod src/post_modules/CritBit/stringtree.cmod
ADT.List: added some methods
ADT.Queue: support several arguments to put()
ADT.CritBit: added common_prefix()
added ADT.CritBit module. Author: Arne Goedeke <el@laramies.com> Author: Tobias S. Josefowitz <tobij@tobij.de>
ADT.Stack: Added _search().
No more foreign_idents.
private -> protected. Made _indices, _values and _sprintf protected.
No need to _-prefix argument.
System.Timer: create() now actually is protected (as documented). Documented a few other protected functions as protected.
Serializer: Fixed some Autodoc mk II markup typos. Thanks to Matthew Clarke (Larcky) <pclar7@yahoo.co.uk> for the report.
Serializer: First implementation of the Serializer interface.
String.Buffer: Added String.Buffer()->addat().
ADT.BitBuffer: Some Autodoc clarifications.
String.trim_all_whites 10% faster and includes all Unicode. Rev: CHANGES:1.208 Rev: src/builtin.cmod:1.254
Improve documentation. Rev: src/builtin.cmod:1.250
Support wide strings for both arguments of normalize_space. Rev: lib/modules/String.pmod/testsuite.in:1.28 Rev: src/builtin.cmod:1.246
Improve documentation. Rev: src/builtin.cmod:1.245
New member String.normalize_whitespace. Rev: lib/modules/String.pmod/module.pmod:1.34 Rev: lib/modules/String.pmod/testsuite.in:1.27 Rev: src/builtin.cmod:1.242 Rev: src/builtin_functions.h:1.41
Autodoc Rev: lib/modules/ADT.pmod/Heap.pike:1.14
Tiny fixes for compilation in debug mode. Rev: src/object.c:1.302
Marked compat functions top() and size() as deprecated. Rev: lib/modules/ADT.pmod/Heap.pike:1.13
Added String.__HAVE_SPRINTF_NEGATIVE_F__ to indicate litte endian support for %F. Updated Autodoc. Rev: lib/modules/String.pmod/module.pmod:1.33 Rev: src/modules/sprintf/sprintf.c:1.165
Added String.__HAVE_SPRINTF_STAR_MAPPING__. Rev: lib/modules/String.pmod/module.pmod:1.32 Rev: src/modules/sprintf/sprintf.c:1.163
`+() now accepts multiple arguments. Rev: src/post_modules/_ADT/circular_list.cmod:1.20
`+() and `-() must accept multiple arguments. Rev: src/post_modules/_ADT/sequence.cmod:1.21
Stricter type for String.secure(). Rev: src/builtin.cmod:1.220
String.secure Rev: lib/modules/String.pmod/module.pmod:1.30 Rev: src/builtin.cmod:1.218
Some touchup on the Char extension, most importantly hiding the internal stuff and making setting work like the other Items. Rev: lib/modules/ADT.pmod/Struct.pike:1.19
Added possibility to use earlier members in an ADT.Struct as size for ADT.Struct.Chars. Rev: lib/modules/ADT.pmod/Struct.pike:1.18
Cleaned up use of program_state->parent_identifier. Removed some dead code. Rev: src/language.yacc:1.410 Rev: src/program.c:1.657
Kludges to avoid type warnings on correctly typed strict_types code that uses sort_arrays et al. Rev: lib/modules/Array.pmod:1.109
Removed rot13. Added as Crypto.rot13 Rev: lib/modules/String.pmod/module.pmod:1.28
rot-13 and rot-n for plain english alphabet Rev: lib/modules/String.pmod/module.pmod:1.27
Fixed some warnings: Disabled compact_diff3 until it actually gets an implementation. Rev: lib/modules/Array.pmod:1.108
oid_sort_func now returns -1..1, not only 0..1 (still works the same for the actual sort function). Rev: lib/7.6/modules/Array.pmod:1.3 Rev: lib/modules/Array.pmod:1.106
Documentation of encode_html_entities Rev: lib/modules/Parser.pmod/module.pmod:1.23
Trying out protected instead of static to see how it looks and feels... Rev: lib/modules/ADT.pmod/BitBuffer.pike:1.9
string(8) -> string(0..255) Rev: refdoc/xml.txt:1.4 Rev: src/builtin_functions.c:1.639 Rev: src/modules/spider/spider.c:1.133
More typeof(map) fixes. Rev: src/builtin_functions.c:1.635
Fixed type warnings. Rev: lib/modules/ADT.pmod/module.pmod:1.11
Fixed autodoc references. Rev: src/modules/files/efuns.c:1.184 Rev: src/modules/files/file.c:1.360
Backported character set handling from Pike 7.6. Rev: src/modules/Mysql/acconfig.h:1.13 Rev: src/modules/Mysql/configure.in:1.43 Rev: src/modules/Mysql/mysql.c:1.74 Rev: src/modules/Mysql/precompiled_mysql.h:1.16 Rev: src/modules/Mysql/result.c:1.30
Small comment fixes. Rev: src/post_modules/_ADT/circular_list.cmod:1.17 Rev: src/post_modules/_ADT/sequence.cmod:1.18
Robustness fix for invalid <!ELEMENT> declarations. Rev: lib/modules/Parser.pmod/XML.pmod/Validating.pike:1.5
Backported lots of fixes from Pike 7.7. Rev: lib/modules/Parser.pmod/XML.pmod/Validating.pike:1.4
Documentation by Robert Hinn <exodusd@gmx.de>, thanks. Rev: lib/modules/ADT.pmod/Heap.pike:1.10 Rev: lib/modules/ADT.pmod/Priority_queue.pike:1.8
Documentation by Robert Hinn <exodusd@gmx.de>, thanks. Rev: lib/modules/ADT.pmod/Heap.pike:1.8 Rev: lib/modules/ADT.pmod/Priority_queue.pike:1.8
Fixed typo in autodoc. Rev: src/builtin.cmod:1.189
Added setproctitle as suggested by Adam Montague Rev: src/modules/system/configure.in:1.75 Rev: src/modules/system/system.c:1.179
The multi_string_replace_program now uses the related functions in builtin_functions.c. Rev: src/builtin.cmod:1.180
hard to imagine that someone would want these functions, but i guess perl is pretty popular. Rev: lib/modules/Array.pmod:1.102
Added Array.combinations(). Rev: lib/modules/Array.pmod:1.101
Added Array.combinations(). Rev: lib/modules/Arr