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
EFUNs: Restructuring of the sprintf() typechecker.
Stdio.FakeFile: Improved function types. This class needs to be compatible with both Stdio.BlockingFile and Stdio.NonblockingStream. Also fixes several broken prototypes in Stdio.NonblockingStream. Fixes several testsuite failures.
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.
Backported fragment helper methods.
Doc: Fixed AutoDoc markup typo.
Merge branch 'security/decode_value' into 8.0 * security/decode_value: decode_value(): Allow to restrict decoding to simple types
Doc [Ffmpeg]: Fixed some markup issues.
EFUNs: Add __cast().
Image.ILBM: Remove $Id$
Image.X: Remove $Id$
Image.BMP: Remove $Id$
Image.GIF: Remove $Id$
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.
EFUNs: Added efuns for accessing iterator state.
EFUNs: Add predef::atomic_get_set().
Stdio.Fd: Convert read() into a PIKEFUN.
MIME: Move decode_/encode_headerfield_params functions here.
Documentation [Stdio]: Document low-level classes.
Stdio: Some pty-handling cleanup. Add wrappers emulating missing libc functions.
ADT.CritBit.BigNumTree: Disable autodoc more robustly. CExtractor now actually errors about spurious @endclass directives, which means we need to use DOCSTART() and DOCEND() around them in {tree,iterator}_source.H as we define DOCSTART() to /* in bignumtree.cmod to disable autodoc generation.
Thread.ResourceCountKey: Make destruct immediate
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.
TURBO2-1398: Allow disabling of wrapping of describe_backtrace output. The wrapping can add lots of spaces to the end of lines to pad them, resulting in enormous backtrace files in some circumstances.
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.
Documentation [SQLite]: Fixed some AutoDoc markup issues.
Documentation [Sybase]: Fixed broken AutoDoc markup. Fixes the inheritance graph for predef::...
Tools.Standalone.precompile: Fix storage offset handling Programs using their parent may store parent information in the beginning of ->storage, thus we need to add p->inherits[0].storage_offset when trying to reach an object's storage. The compiler/runtime correctly takes care of this in THIS, but the OBJ2_ and GET_..._STORAGE macros did not take this into account.
Documentation [Web.Sass]: Make the doc appear in the correct place.
EFUNs: Add typeof_identifier() typeof_identifier(prog, identifier) returns the type of a named identifier in the program.
EFUNs: Add deprecated_typep() efun.
Pike.ProxyFactory: Added new function. This is a factory for creating classes that act as a proxy for the specified program.
Concurrent.Promise: Introduce delay() and optimise timeout().
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.
Merge branch 'marcus/exif_sanitization' into 8.0
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: Hide mutex keys and crypto contexts from backtraces. Having unexpected references to mutex keys may cause hangs and complaints about attempting to lock mutexes recursively. Fixes PIKE-156 (#8156).
EFUNs: Added m_add(). This function adds (as opposed to inserts) an element to a multiset. Also adds corresponding (fake) lfun::_m_add().
EFUNs: Added predef::annotations(). This function returns the annotations (if any) corresponding to the symbols returned by indices() on the same value. Also adds lfun::_annotations().
Cpp: Added some optional parameters to define_macro(). Renumber the CPP_MACRO_* values, so that the ones useful for users (CPP_MACRO_VARARGS and CPP_MACRO_KEEP_NL) come first. define_macro() now accepts two additional optional arguments; numargs and flags.
EFUNs: Added m_clear().
Cpp: Macro expansion failure is now indicated by returning 0.
CHANGES: Added note about inherit of CompilerEnvironment.
Documentation [Cpp]: Fix documentation markup error. Fixes remainder of LysLysKOM 22790861.
EFUNs: Added get_active_compiler(). This function could be used to implement get_active_error_handler() and get_active_compilation_handler(). API clean up in preparation for moving handling of handlers to code written in Pike.
Pike.get_runtime_info: Report the size of time_t too. Adds the entry "time_size" to the result from Pike.get_runtime_info().
EFUNs: Support encoding to UTF-8 encoded UTF-16 in string_to_utf8(). string_to_utf8() now supports the same extensions as utf8_to_string(). Fixes PIKE-111 (#8111).
CPP: fixed refdoc comment
EFUNs: Added validate_utf8(). This efun checks whether a string is valid UTF-8 or not.
Merge branch 'pike-modules/sass' into 8.0 * pike-modules/sass: (91 commits) Sass: Use ONERROR to free sass contexts on error. Sass: Unlink stale JMPBUF. Sass: Fixed indentation. Added some tests for Sass compilation errors. Just some cleanup of a simple test. Transfered "ownership" of error message from libsass to Pike. Fixed stupid Emacs indentation.:wq Testsuite [Sass]: Fixed detection of Web.Sass some more. Testsuite [Sass]: Updated testsuite to the moved module. Sass: Move module to Web.Sass. Sass: Hide the module when not available. Install: Added Tools.Sass to the feature list. Testsuite [Sass]: Check that Tools.Sass is available. Sass: Hide the s8 symbol. Sass: Use HAVE_LIBSASS instead of HAVE_SASS_H. Sass: Clean up configure script. Sass: Clean up acheader.h. Sass: Removed redundant cast. Sass: Adjusted debug message. Sass: Fixed a few C99-isms. ...
pgsql: Make affected_rows() and status_command_complete() wait for a meaningful result.
Merge branch 'pike-modules/sass' into 8.1 * pike-modules/sass: (79 commits) Testsuite [Sass]: Check that Tools.Sass is available. Sass: Hide the s8 symbol. Sass: Use HAVE_LIBSASS instead of HAVE_SASS_H. Sass: Clean up configure script. Sass: Clean up acheader.h. Sass: Removed redundant cast. Sass: Adjusted debug message. Sass: Fixed a few C99-isms. Sass: Don't throw pike errors through the libsass layer. Sass: Error messages need to end with a line feed. Sass: Cleaned up documentation a bit. Sass: Fix building in a separate build tree. Sass: Generate config.h.in from acconfig.h. Sass: Removed obsolete stuff from Makefile.in. Sass: Removed quite a bit of stuff. ...
Merge github.com:poppa/pike-libsass into patches/pike89 * github.com:poppa/pike-libsass: (64 commits) [...]
Added Thread.Farm()->set_thread_name_cb() to help applications that monitor thread creation and termination for the purpose of tracking thread names.
Cpp: Added C-implementation of a stack. This class is API-compatible with ADT.Stack, and is intended to be used by the preprocessor.
Squashed 'vendor/libsass/' content from commit 6de5050 git-subtree-dir: vendor/libsass git-subtree-split: 6de5050d11a1789d9922eb24e2925047ecbb499b
Stdio.File()->write: add documentation for buffer variant
Merge commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e' into patches/pike63 * commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e': (19587 commits) ...
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.
strptime/strftime: Added at global level; rip out special strptime/strftime in Val.*.
MPI: Add documentation.
Debug: Added find_all_clones().
Restore part of AmigaOS support.
Rip out final remains of OS2 and AmigaOS.
Daylight 'savings' spelling corrections.
Compiler: Rename LFUN::destroy() to LFUN::_destruct(). As decided at Pike Conference 2017.
Add GL.GLSL and GL.GLSLUtil. This was a project by Per Hedbor that he intended to prepare for inclusion in Pike and shared as a separate repository on the pike-git server, albeit yet in the form of an external module. We have now performed the integration into Pike as a post_module.
Pikedoc fixes.
Added Concurrent, and moved changes not in the next release to next beta.
Documentation [MasterObject]: Documented some more stuff. Also restructures the markup a bit.
SQLite: Use __builtin.Sql. Also some AutoDoc markup adjustments.
Initial commit
Fix doc prototype.
More narrow documentation.
program.c: autodoc fix
Documentation: Documented optional further args to search(). Also fixes the types for search() and lfun::_search().
Documented some of the new Randomness subsystem.
Efuns: Renamed hash_7_8() to hash_8_0() for consistency. Also made the hash_*() types somewhat stricter.
Efuns: Fixed multiple issues with the new hash(). It now follows the same API as the old hash() (ie the second argument is a modulo). It now also has the same value range as the old hash (eg it no longer returns negative values), and returns the same value on both 32-bit and 64-bit platforms. As a side-effect this fixes a buffer read overrun when the second argument was larger than the length of the string. It no longer leaves droppings on the stack. Updated the testsuite.
Renamed 'hash' to 'hash_7_8' Hopefully it will not be used now (this is triggered by yet another person thinking it's a good string hashing function). The function is not really suitable for use. The returned values are higly likely to be the same for similar strings, something that is not optimal for hashing. Also added comments about what to use instead (hash_value or one of the cryptographic hash functions). It might make sense to add a hash() that actually works, perhaps siphash?
Renamed pow lfun from pow to `**. This is somewhat incompatible, previously pow(X,3) called X->pow, now it will call X->`**.
Apple.Keychain: Added initial parser of Keychain files. CAVEAT: This is a VERY limited implementation, and is only intended to be used to extract root certificates from "/Library/Keychains/X509Anchors".
Concurrent: Added new module for handling asynchronous results.
Doc fix.
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.
Documentation [HTTPAccept]: Fix all references to HTTPLoop. HTTPLoop installs itself as HTTPAccept, so fix the documentation to reflect this. Thanks to Eiichiro ITANI <emu@ceres.dti.ne.jp> for the report.
Removed f_random[string,seed] from module API.
Documentation.
Don't call f_random directly.
Sql: Added support for multiple results. Adds Sql.sql_result()->next_result().
strlen is for strings only these days
On this branch portable bytecode generation is not normally done This actually noticeably speeds up the compiler and also saves about 15% of RAM when starting hilfe. If the decode_value code is modified to free the portable bytecode _TWICE_. This will not be merged to 8.1 until I figure out _why_ that is. It should only need to be freed once, but I guess it's in the string table twice?
Moving Auth.pmod to Web.pmod/Auth.pmod and WebApi.pmod to Web.pmod/Api.pmod
Updated all references since the modules were moved from root namespace to the Web namespace
Merge branch '8.1' into grubba/typechecker-mk3 * 8.1: (51 commits) Compiler [Types]: Got rid of my_describe_type(). Compiler [Types]: Fixed wide strings in nested types. Compiler [Types]: low_describe_type() now uses string_builder. string_builder_sprintf: Fixed '+' for floats. string_builder_sprintf: Added support for %T. Calendar.mkrules: Improved backward compat. Auth.OAuth.Client: Fixed AutoDoc markup issue. New modules for communicating with different (RESTful) web apis (including OAuth and OAuth2 client modules) . Documentation [%]: Added some clarifications and improved markup. Inotify: Minor code cleanup. Potential fix for [CID 1325796]. Inotify: Removed some debug output. Filesystem.Monitor [Inotify]: Improved support for blocking mode. Inotify: Don't reference count immediate circular references. Inotify: Removed some dead code. System.Inotify, Filesystem.Monitor: Updates to use new Inotify API. Inotify: Use fd_callback_boxes, internal event parsing. Search.Database.MySQL: Censor the SQL-url. Sql: Added censor_sql_url(). Search.Database.MySQL: Avoid long lived database connections. Inotify: Don't throw errors in rm_watch() on invalid watch descriptor. ...
New modules for communicating with different (RESTful) web apis (including OAuth and OAuth2 client modules) . Implemented APIs are (that is, you can authenticate against them and all have basic methods for doing generic get, post, put and so on requests) * Facebook * Github * Google * Analuytics * Plus * Instagram * LinkedIn * Twitter
Threads: Added support for setting a thread time quanta. This is mostly intended to be used to identify code that inhibits other threads from running.
Merge remote-tracking branch 'origin/8.1' into per/substrings
GTK1 is deprecated
HPack: Added module. This module is intended to implement RFC 7541 (HPACK). Currently it only implements huffman_{en,de}code(), which is the huffman encoding used in the RFC.
Added gethrdtime().
Document _gdb_breakpoint.
documentation
Got rid of the @belongs
Moved _next, _prev and next_object to Debug.
Moved _refs
Documentation: 7.4::hash() is no more. Use hash_7_4() instead.
Compat: Added some symbols from 8.0.
Reinstate legacy hash functions for the benefit of legacy network protocols.
Remove superfluous legacy compat support prior to 7.8.
Moved deprecated methods to compat.
SSL.handshake: Support setting the minimum required version. The SSL 3.0 protocol can now be disabled by setting min_version in the context to SSL.Constants.PROTOCOL_TLS_1_0. Backported API from Pike 8.0. Note that the constants differ from Pike 8.0 and later, so use the provided symbolic values.
_Roxen: Fixed buffer overrun in http_decode_string(). Also increases the strictness of a few related testsuite tests.
Remove 7.6 compat files.
Removed the spider module (deprecated since it was created).
Revert to String.Buffer simplex. Lost functionality needs to be found in IOBuffer.
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
Added Stdio.IOBuffer.write_to(Stdio.Stream).
GTK2: Update Scale docs based on source file
The IOBuffer documentation now extracts
Moved __builtin.IOBuffer to Stdio.IOBuffer (for now)
IOBuffer documentation fixes.
Some minor documentation tweaks. It has been a while since the classes were called Gz_deflate and Gz_inflate.
Pike 7.2 was released 2002. Stop supporting compat for it.
Merge remote-tracking branch 'origin/8.0' into string_alloc
Improved type checking.
Remove Pike 7.0 support. We now only support post-2000 code.
Stdio.sendfile: Fixed use before set. Fixes "Indexing the NULL value with \"call_out\".", when Stdio.sendfile(({""}), 0, -1, -1, 0, simulated_file, cb, ...). Also fixes issue where the trailers weren't sent if there was no source file, no headers and a non-empty file length. Fixes [bug 7230 (#7230)].
Added Yabu documentation Also renamed db -> DB and lookup -> LookupDB
Remove Pike 0.6 support.
Removed Calendar_I. It has been deprecated since before Jul 2000 (the first time it was included in the main pike tree).
Aded GLUT absolutely minimal autodoc This is generated automatically, but if GLUT is not installed on the computer the generation is skipped. Thus, also check in the generated file.
Added basic documentation to Image.WebP.
Moved all _Image_JPEG documentation to Image.JPEG.
Moved _Regexp_PCRE documentation to Regexp.PCRE. Also mark up code segments in the documentation with @code.
Removed pike 7.5 (I think?) support and added some documentation.
Optimizer: Fixed bug in foreach with ranges. The foreach range optimizer didn't handle negative start ranges, which would cause foreach to index the array out of bounds. Fixes [bug 7216 (#7216)].
Crypto.RSA: Reenable the generate_key() compat function. Also fixes some related warnings.
TYPE_SUBTYPE: avoid undefined behavior (X) << 16 cannot always be represented by an int
Doc: Moved identify_cycle() documentation to proper place.
Significantly faster stack handling in many cases This is done by declaring pike_interpreter to be a const variable. This is, obviously, not quite true. Different threads have different values for the variable in question, but it is always the same for the lifetime of the thread. These changes make it be const everywhere except in interpret.c and threads.c. If the variable was moved to threads.c it could probably be const in interpret.c as well. This generates fully working code on at least one architecture with one compiler. ;) The gain is fairly substantial in code size (it saves about 10% of the binary size) and speed is faster, since it no longer has to read the value of **Pike_interpreter every time the stack is used (one step is skipped, but the stack pointer is still re-read if a function has been called) push_int(0), push_int(1), push_int(2) before: | movq Pike_interpreter_pointer(%rip), %rax | movq (%rax), %rcx | leaq 16(%rcx), %rdx | movq %rdx, (%rax) | movq $0, 8(%rcx) | movq $0, (%rcx) | movq Pike_interpreter_pointer(%rip), %rax | movq (%rax), %rcx | leaq 16(%rcx), %rdx | movq %rdx, (%rax) | movq $0, (%rcx) | movq $1, 8(%rcx) | movq Pike_interpreter_pointer(%rip), %rax | movq (%rax), %rcx | leaq 16(%rcx), %rdx | movq %rdx, (%rax) | movq $0, (%rcx) | movq $2, 8(%rcx) And after: | movq Pike_interpreter_pointer(%rip), %rax | movq (%rax), %rcx | movq $0, (%rcx) | movq $0, 8(%rcx) | movq $0, 16(%rcx) | movq $1, 24(%rcx) | leaq 48(%rcx), (%rax) | movq $0, 32(%rcx) | movq $2, 40(%rcx)
Pike: Added Pike.identify_cycle(). This is useful to identify reference cycles in Pike data structures, so that the need for garbage collection can be reduced.
Added string_filter_non_unicode This function replaces all non-unicode characters in a pike string with 0xffea
sprintf: reduce inlining of slow paths The code handling snurkels and object _sprintf calls was inlined into each format handling case. This patch reduces the code size to about 25% of the original.
Standards.BSON: test float handling
release number bumped to 854 by export.pike
release number bumped to 851 by export.pike
Backend: Improved support for OOB with kqueue(2). On MacOS X out-of-band data on sockets is signalled by the flag EV_OOBAND (aka EV_FLAG1) in the EVFILT_READ notification. Unfortunately this notification is by default only sent when there is also normal data available. The kernel source indicates that it should be possible to get notifications on just OOB by setting EV_OOBAND in the call to kevent(2) (this is what poll(2) does internally). kevent(2) however masks the flag before calling the internal function kevent_register(), so it is not possible at this time. On FreeBSD it seems out-of-band data is signalled as a normal EVFILT_READ notification. Improves the status for [bug 7063 (#7063)], but requires kernel changes to fix the problem on MacOS X fully.
Added some more type checking functions to the Pike module. The efuns __soft_cast(), __low_check_call(), __get_return_type(), __get_first_arg_type() and __get_type_attributes() are now all available in the Pike module (without their '__' prefixes), and documented as belonging there.
GTK2: Add a signal_stop() method to prevent signal propagation
GTK2: start of support for WebkitGTK+
Merge branch '8.0' into gobject-introspection
Nettle: Fixed some Autodoc markup errors in hogweed.
Crypto.ECC: Added some Elliptic Curve Crypto support.
Add class Standards.JSON.Validator which can be used to validate json with a schema The Standards.JSON.Validator class does not yet implement the full set of schema validations. It does not yet handle dependencies nor references. The regular expressions (for pattern properties) are limited to those that can be handled by Regexp.SimpleRegexp. To use the validator, load and decode a JSON schema and create a validator: mixed schema = Standards.JSON.decode(schema_string); Standards.JSON.Validator validator = Standards.JSON.Validator(schema); Then load and decode some JSON data and pass it to the function Standards.JSON.Validator->validate(): mixed json_data = Standards.JSON.decode(data_string); if (string error = validator->validate(json_data)) werror("Error: %s\n", error); else write("JSON matches the schema\n"); For more information of JSON schema look at - http://json-schema.org/documentation.html "The home of JSON Schema"
Nettle: Fixed some broken Autodoc markup. Also fixes an Autodoc typo in udp.c.
MIME: getencoded() should probably never return a StringRange. (cherry picked from commit 87b47190e06ff9b0f253c1db0350e135f2595a71)
Fixed DSA certificate generation.
Autodoc: Documented some of the automap internals.
Fuse: Avoid crashing due to the changes to thread handling.
Added access() This is access(2), there is currently no version for windows.
NetUtils - A new module with network utility functions Mainly things like IP address parsing, netmask handling and similar.
Stdio.File()->open_socket: Document the use of negative port for "unspecified"
Nettle.DES: Fixed typo in previous commit.
Nettle.Cipher: Major refactoring of the ciphers. The cipher state now uses parent pointers instead of mixins. Renamed Nettle.<CIPHER>_Info to Nettle.<CIPHER> and moved Nettle.<CIPHER>_State to Nettle.<CIPHER>.State. Adjusted the corresponding code in Crypto, so that the APIs there should be the same as before.
__builtin.Nettle: Added Hash base class.
Build: sprshd doesn't seem to like I/O redirection.
TURBO2-80: Do not crash when decoding certain PNG files. The aggregate and n++ was not done if the PNG was (slightly) truncated
Protocols.DNS: Mark async_client()->do_query() for autodoc
Trivial fix to Regexp.PCRE.Plain autodoc to make it appear in docs
release number bumped to 784 by export.pike
Calendar.Timezone.Runtime_timezone_compiler: Improve reentrancy. The runtime timezone compiler was not thread safe, and could fail with the compiler error "Undefined identifier forever." when multiple concurrent threads compiled the same timezone. Potentially fixes [bug 6816 (#6816)] #1:1.
Updated release tag prefix for branch 7.8 to refs/tags/v.
Image: Fixed some AutoDoc markup bugs.
Image: Improved documentation.
Pike.gc_parameters(): Added some gc callbacks. Adds callbacks that are called from the gc to simplify debugging of memory leaks and similar.
Merge remote-tracking branch 'origin/7.9' into pdf
Some tweaks that removes both _Stdio and files from the documentation.
Moved Locale.Charset -> Charset (1. Move files)
Doc fixes.
Move documentation to _Stdio.
Merge remote-tracking branch 'origin/7.9' into ba
Moved the EXIF parsing version of JPEG decoder to exif_decode and keep decode/_decode as before.
Removed the experimental facets implementation.
Call fd_select() before fd_accept() in my_socketpair() to make sure it's ready.
Optimize query for word_hit blob length when there are several blobs for a given word.
sprintf is not a module anymore
Added small comment on RFC1123 format as specified in RFC2616 (and RFC1945).
Standards.EXIF: Support rationals with a zero denominator. The denominator may be zero to indicate infinites. Fixes [bug 6729 (#6729)].
Merge pike-modules/Tokenizer into grubba/tokenizer This merges the old experimental Tokenizer module into current Pike 7.9. * /home/grubba/src/cvsmigration/Tokenizer: (72 commits)
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.
Parser.PDF.Reader: initial comit
Merge branch '7.9' into gobject-introspection
Runtime: Avoid use of negative array index in MAKE_{NAN,INF} Apparently clang doesn't support indexing with a negative literal, so switch the implementation to use unions instead, whenever possible. (cherry picked from commit 6331fed0a6b5bab3b3ba7cae336b1b1b68096018) Conflicts: src/port.h
Runtime: Avoid use of negative array index in MAKE_{NAN,INF} Apparently clang doesn't support indexing with a negative literal, so switch the implementation to use unions instead, whenever possible. (cherry picked from commit 6331fed0a6b5bab3b3ba7cae336b1b1b68096018)
Release: bump version
Java (NT): Use SetDllDirectory() to find required dlls. Fixes [bug 6471 (#6471)]. Oracle's jvm.dll has dependencies on runtime libraries that it doesn't install in the global dll path or in the same directory. This patch adds the directory where they do install the required dlls to the dll search path, with a fallback to using the current directory on older NT. The main change in this patch is to fix some calling-convention bugs in earlier attempts, and to use the Unicode APIs.
Fixed bug where the month was lost with %a to Calendar.parse.
release number bumped to 722 by export.pike
Java: Fixed some issues with the previous NT patch.
release number bumped to 720 by export.pike
Java: Attempt to support loading of Java 6 and 7 on NT. cf http://www.duckware.com/tech/java6msvcr71.html
release number bumped to 706 by export.pike
Fixed --enable-dlmalloc on systems with struct mallinfo.
release number bumped to 704 by export.pike
Runtime: Tune malloc(3C) in glibc. Alleviates [bug 6045 (#6045)]. Malloc(3C) in glibc defaults to having one pool (aka arena) of memory per thread. This means that by default memory released by one thread will not be reused by another thread. This in turn can cause a "pumping" effect where one thread temporarily may use a lot of memory, which causes that thread's arena to grow. If the same code is run again later, but by a different thread, that threads arena will grow even though there's plenty of free memory in the old arena. This means that there's a multiplication effect by the number of active threads. This implements the suggested work-around from the similar bug at http://sourceware.org/bugzilla/show_bug.cgi?id=11261
release number bumped to 698 by export.pike
Backend: compile fix
Stdio.UDP: linux kernel commit f24d43c07e208372aa3d3bff419afbf43ba87698 introduces a behaviour change where you can get used random ports if bound with SO_REUSEADDR - hence, do not use SO_REUSEADDR when binding a random port.
Backend: Increased robustness of PIKE_DEBUG code for call_outs.
Bills fix would not affect the first directory in the paht. Fixed, together with a lot of other nits.
Implement 029f1c1e6c in other backend classes so that `() throws an error when called with non-zero integer.
Compiler: Fix CAR == CDR case in new_check_call().
Compiler: Fixed bug in new_check_call(). Fixes [bug 6442 (#6442)].
Compiler: Fix recursion in new_check_call(). Fixes [bug 6442 (#6442)].
Process: make locate_binary() more reliable on Windows.
Optimization safe fix for formatting Int.NATIVE_MIN. Signed overflows aren't defined, so gcc is free to optimize away the second comparison. Amends c0d5e154.
Standards.IIM: Fixed integer underflow. This bug could in some circumstances cause an infinite loop in get_information().
Backend: Avoid broken precompiler syntax The 7.8 cmod precompiler does not support dotted object types, while the 7.9 cmod precompiler does and complains. Alter the affected type so that both precompilers agree.
Avoid compilation error in forkd.pike if the underlying support is missing.
release number bumped to 694 by export.pike
Fixed bug in Windows stat(2) wrapper for most non-fat filesystems. This bug caused file_stat etc to not return a stat for anything on a non-fat filesystem, due to an unexpected error code from GetVolumeInformation. It's uncertain under which conditions that error code is returned, but it was observed for a VBoxSharedFolderFS share in Windows 7 and Vista. Fixes [bug 6432 (#6432)].
release number bumped to 692 by export.pike
Fix callback of native methods with FFI where the "this" pointer was missed for instance methods.
release number bumped to 690 by export.pike
Image.JPEG: Fix integer underflow. Fixes [bug 6413 (#6413)].
Clean up languageless document entries when indexing a multilanguage URI. Part of [bug 6419 (#6419)].
release number bumped to 688 by export.pike
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
Gz: Remove C++ style comments
Regexp.PCRE: Support modern libpcre.
Handle null objects correctly in emulate_bindings. Note that fixing this opens up a bug compat issue, described in comment #7 in [bug 5900 (#5900)].
Sql.pgsql: Filter session_authorization from the runtime params. From [bug 6366 (#6366)] comment #1: | Currently our postgresql server is 8.2, Roxen5.2 has an problem and with | this postgres, saying: | | RXML run error: Query failed: FATAL 22023: invalid value for parameter | "session_authorization": "user" | (guc.c:set_config_option:4260) | | So I just patched pgsql.pike like below:
ZXID: Improved thread-safety.
First go at MPI bindings
Calendar.mkrules: Cleanup white-space at end of line in TZnames.
files: Moved documentation for some low-level stuff to their actual place.
Tools.Standalone.extract_autodoc: Support filenames with embedded dots. Fixes documentation for GTK2.G.Object.
Tools.Standalone.autodoc_to_split_html: Include inherited symbols in the navigation.
has_prefix: Fixed broken handling of objects.
Add support for content encoded as UTF-8.
Merge remote branch 'origin/7.9' into breaking_into_pieces
GI: Upper case all enum identifiers
GI: New module The GI module provides a binding to the gobject-introspection API of GLib. Currently not much functionality here...
master: Added kludge for describe_function() to workaround [bug 6156 (#6156)].
GTK: Added GDK1 and GDK2 modules corresponding to GTK1 and GTK2. Updated the GTKSupport module accordingly.
Protocols.DNS: Support for IPv6 now seems to work properly.
Compiler: Added _Static_assert() and its companion macro static_assert.
CompilerEnvironment: Separated report() to a separate Reporter class.
`[..]: fixed autodoc
ZXID: Initial implementation.
Git: Added new module for interfacing to git.
GTK: Added wrappers for GTK2.Gnome2 and GTK2.Pango. Also fixed some bugs in the corresponding GTK1.Gnome wrapper.
Separated the doc for Codec into Encoder and Decoder.
Add missing @endmodule autodoc tag (thanks to larcky.)
Documentation for WebP.encode/decode and postprocessing control for decode added.
Fixed constant syntax to work with the recent changes in the extractor.
Added a new Val module for various global constant values. Currently with true, false, and null, moved from Standards.JSON and Sql. Also allows these values to be overridden with extended versions.
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.
Added __get_type_attributes().
Added predef::types() in analogue with indices() and values(). Also adds lfun::_types() and ::_types().
Sql.Null: Fixed AutoDoc ambiguity regarding the symbol type of Sql.Null.
Added compatibility mode for Pike 7.8.
First step towards supporting deferred evaluation of constants.
Added some simplified facet syntax.
First go at supporting static storage.
Added missing documentation for "%n".
has_prefix() should not throw errors when the prefix is longer than the object supports.
Fixed typo.
The old GTK module has been renamed to GTK1.
Renamed GTK to GTK1, added a GTK.pmod that is either GTK2 (if available) or GTK1 (if available). The GTK1 module should probably be deprecated.
First go at supporting SendEvent.
Merge branch 'pike-modules/whitefish/4.5' into 7.4
Merge commit 'whitefish_split_4.5_5.0' into whitefish-fixup This is in preparation to fixup Search.Process as well.
Merge remote branch 'pike-modules/whitefish/5.0' into 7.9 Updated Search.Utils and Search.Process to a non-roxen context. Conflicts: .gitattributes .gitignore lib/modules/.autodoc
Merge branch 'pike-modules/whitefish/5.0' into 7.8 Updated Search.Utils and Search.Process to a non-roxen context. Conflicts: .gitattributes .gitignore lib/modules/.autodoc
Initial version.
Added paranoia check for detecting some broken backports from Pike 7.8.
Added some Autodoc mk II markup for Protocols.X.
Reset revents when fd-boxes are unhooked.
Avoid yielding to other threads in bad places. Do not yield when an lvalue is temporarily cleared for single ref optimizations, since another thread might see the zero then.
Added pike wrapper for debug_malloc_dump_references. Rev: lib/modules/Debug.pmod/module.pmod:1.6 Rev: src/builtin_functions.c:1.702
Fixed Autodoc markup. Rev: src/modules/Odbc/odbc.c:1.52
Fixed Autodoc markup. Rev: src/modules/Parser/c.c:1.11 Rev: src/modules/Parser/parser.c:1.21 Rev: src/modules/Parser/pike.c:1.11 Rev: src/modules/Parser/rcs.c:1.5
Some Autodoc mk II markup fixes. Rev: src/modules/_Image_TIFF/module.pmod.in:1.3
Added decode_header() methods for TIFF and PS. Added these two to Image.ANY.decode_header(). Converted old style autodoc to new style. Rev: lib/modules/_Image_PS.pmod:1.16 Rev: src/modules/Image/encodings/any.c:1.35 Rev: src/modules/_Image_TIFF/module.pmod.in:1.1
First version. Rev: lib/modules/Filesystem.pmod/Monitor.pmod/basic.pike:1.1 Rev: lib/modules/Filesystem.pmod/Monitor.pmod/debug.pike:1.1
Fixed leaked database URI entries when removing documents from index Rev: lib/modules/Search.pmod/Database.pmod/Base.pike:1.8 Rev: lib/modules/Search.pmod/Database.pmod/MySQL.pike:1.90
Sitebuilder namespace. Rev: lib/modules/.autodoc:1.1
Fixed AutoDoc mk II markup for RegGet{Value{,s},KeyNames}() to match reality... Rev: src/modules/system/nt.c:1.82
__handle_sprintf_format() now have two operating modes; strict and normal. Added documentation for __handle_sprintf_format() and the type constants. Added new type constant strict_sprintf_args. Rev: src/modules/sprintf/sprintf.c:1.155
autodoc fixes Rev: src/backend.cmod:1.235
Fixed the doc for encode_value to conform to reality. Fixed some spelling. Rev: src/encode.c:1.287
Fixed some typos in the Autodoc mk II markup. Rev: src/post_modules/GSSAPI/gssapi.cmod:1.7
Fixed some Autodoc mk II markup. Rev: src/post_modules/GSSAPI/gssapi.cmod:1.6