Use %n instead of %S in calls to get_all_args(). %S has been a compat alias for %n since 2004. For now it remains one, but should have no further in-tree users.
Use %c instead of %s in calls to get_all_args(). %s has been a compat alias for %c since 2004. For now it remains one, but should have no further in-tree users.
Use %t instead of %W in calls to get_all_args(). %W has been a compat alias for %t since 2004. For now it remains one, but should have no further in-tree users.
EFUNs: Use pike_strptime() to implement predef::strptime(). predef::strptime() should now exist on all platforms (ie including NT).
Compiler: Add format attribute to yywarning() and my_yyerror().
EFUNs [Solaris]: Fix mktime() on 32-bit big-endian without altzone. Fixes mktime_zone() on eg Solaris 8/Sparc with 32-bit ABI. Note that eg Solaris 11 has altzone and is thus not affected.
Build: Do not include <sys/poll.h> when <poll.h> exists. Some libc's (eg musl) complain.
EFUNs [NT] [AIX]: Fix mktime() some more. Fixes truncation issues when time_t is larger than 32-bit. Fixes testsuite failure for mktime(gmtime(-1<<33)).
EFUNs [NT] [AIX]: Fix mktime() for dates prior to 1915-01-01. There was a 32-bit singed integer overflow in the seconds offset when the year offset got past 56 years. Fixes testsuite failure.
EFUNs: Fix excessive popping by strftime().
EFUNs [NT] [AIX]: Attempt to support dates before 1970-01-01T00:00:00. gmtime(), localtime() and mktime() now attempt to support negative timestamps on NT and AIX. Fixes multiple testsuite failures.
System.TM [NT]: Use string_builder_strftime(). We now use the same implementation of strftime() on all platforms. Fixes issues with strftime() on NT not supporting eg %D, %e, %g, %G, %r, %T, %u and %V. Fixes testsuite failures on NT.
EFUNs [NT]: Fix timezone support via $TZ in mktime_zone(). tzset() needs to be called after altering the $TZ environment variable. This caused mktime() on WIN32 to fail on times near 1970-01-01T00:00:00UTC as it does not support negative timestamps. Also fixes potential issue where putenv() may have overwritten the saved old value for $TZ.
Build [NT]: Make cl happy. cl does not like preprocessor directives in macro arguments.
EFUNs: Reduce strictness of the aggregate_mapping() result. The previous type was correct, but generated huge types that caused even larger performance issues in the type checker. The resulting type should now be on par with the one generated by the old hand-coded type-deriver for aggregate_mapping(). Fixes issues deriving the type for the timezone_expert_tree mapping in Calendar.TZnames.
EFUNs: Improved type for aggregate_mapping().
Fix a couple of docs typos
EFUNs: Improved types for predef::indices() and predef::values().
EFUNs: Improved type for predef::object_program().
Compiler [Typechecker]: Remove some redundant special cases. Remove the compiler special cases for indices() and values() as the type system already handles this.
Compiler [Typechecker]: Add function name field to call_state.
EFUNs: Improved type for reverse().
Pike: get_return_type() now supports the state mapping.
Pike: Fixed type for low_check_call(). Also some code clean-up and typo fixes.
Pike: Support state mapping in low_check_call().
Merge branch 'patches/bug10084' * patches/bug10084: EFUNs: Fix support for reverse() on subranges of strings.
Merge branch 'patches/bug10084' into 8.0 * patches/bug10084: EFUNs: Fix support for reverse() on subranges of strings.
Merge branch 'patches/bug10084' into 7.8 * patches/bug10084: EFUNs: Fix support for reverse() on subranges of strings.
EFUNs: Fix support for reverse() on subranges of strings. Fixes #10084.
EFUNs: Fix return type for predef::glob(array, string).
EFUNs: Improved type for predef::map(string, function, ...). Fixes compilation error for map(str, lambda(int i){ return i; }); Error: Bad argument 2 to map. Error: Expected: mapping(mixed:int) | multiset | function(int, mixed ... : int). Error: Got : function(mixed : mixed).
EFUNs: Added Pike 8.0 compat variant of sscanf and array_sscanf().
Compiler: Updated prototypes for __handle_{sprintf,sscanf}_format(). The second argument may be UNDEFINED, so declare the function type accordingly, and do not complain if it is.
EFUNs: Use the sscanf_input attribute in sscanf() and array_sscanf(). Fixes quite a few warnings.
Compiler [Typechecker]: Add support for a mapping to the call_state.
Compiler [Typechecker]: Add struct call_state. This struct is intended to contain state that is to be propagated between arguments during typechecking of function calls.
EFUNs: Improved type for predef::map().
EFUNs: Adjust type for predef::map() some more.
EFUNs: Adjusted type for predef::map().
EFUNs: allocate() can not generate arrays with negative length...
EFUNs: Improved type for predef::allocate().
EFUNs: Fix return value of rows() on mapping
Program: Fixed some warnings with respect to defined().
Compiler [Typechecker]: More fix_overloaded_type() fixes.
Compiler [Typechecker]: Handle some T_OR nodes in fix_overloaded_type(). Fixes the returned type for indices() and values() in some now common cases. Fixes some testsuite failures.
Merge branch 'patches/support-mixed-in-count_memory' * patches/support-mixed-in-count_memory: GC: Support remaining types in Pike.count_memory().
Merge branch 'patches/support-mixed-in-count_memory' into 8.0 * patches/support-mixed-in-count_memory: GC: Support remaining types in Pike.count_memory().
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.
EFUNs: Improved type for predef::indices().
EFUNs: Improved type for predef::search().
EFUNs: Improved type for predef::aggregate(). It now returns the correct type for the empty array.
EFUNs: Fix type for filter().
EFUNs: Improved type for filter().
EFUNs: Adjusted types for combine_path() et al.
EFUNs: Improved types for basename() and dirname().
crypt: NUL-terminate the salt string
EFUNs: Stricter types for combine_path() et al.
Doc: Fixed AutoDoc markup typo.
Doc [Builtin.__master]: Document the class.
EFUNs: Zap the length component of the return type for basename(). Fixes multiple warnings.
EFUNs: Zap the length component of the return type for dirname(). Fixes multiple warnings.
Merge branch 'security/decode_value' into 8.0 * security/decode_value: decode_value(): Allow to restrict decoding to simple types
Merge branch 'security/decode_value' * security/decode_value: decode_value(): Allow to restrict decoding to simple types
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: Added some more doc about Pike.soft_cast().
Runtime: Adjusted some more return types to include zero.
Doc: Fix some documentation typos.
Compiler [Typechecker]: Updated type for aggregate_mapping(). Fixes several warnings.
EFUNs: Use mallinfo2(3C) if available. Fixes warnings on versions of Linux where mallinfo(3C) has been deprecated.
Merge branch 'patches/memory-usage-mallinfo2' * patches/memory-usage-mallinfo2: EFUNs: Use mallinfo2(3C) if available.
Compiler [Typechecker]: Added flags to pike_types_le().
Add encode_value_basic() and decode_value_basic() These functions implements a subset of the standard encode_value encoding. Encoded data generated by encode_value_basic() is supposed to be compatible to decode_value(). However, decode_value_basic() should only be used for data encoded by encode_value_basic(). Both functions are optimized for speed.
Program.annotations: invert recursion flag to make more sense for the default case.
Documentation: Improved doc for search().
strftime: Remove non-standard conversions %k and %l from doc and testsuite These are not part of any C standard, not even C2x. Thus libc can not be expected to implement them.
Program: add Program.annotations() for retrieving annotations defined on a program.
EFUNs: Do not throw errors on validation failure in crypt(). The glibc crypt() implementation in RHEL 8 apparently sometimes performs misguided "validation" of the salt even for "$6$" and fails with EINVAL instead of actually validating the password. Throwing an error on validation failure is not what existing code expects, so just return a failure instead in this case. Fixes #10050. See also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=714219
EFUNs: Do not throw errors on validation failure in crypt(). The glibc crypt() implementation in RHEL 8 apparently sometimes performs misguided "validation" of the salt even for "$6$" and fails with EINVAL instead of actually validating the password. Throwing an error on validation failure is not what existing code expects, so just return a failure instead in this case. Fixes some of #10050. See also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=714219
EFUNs: Stricter type for map(). The type for map() now validates that the arguments to the callback funtion match the arguments to map().
Thread.Thread: Add gethrvtime().
Fix compilation issue with f_gethrdtime without threads. Don't know if the result makes sense though.
C API: Export callablep().
LFUNs: Added lfun::_reverse(). This is a function that is called by reverse() to generate a reversed object.
Documentation: Updated type for predef::types().
decode_value: Initial support for disassembly-style debug output. This is analogous to recent changes in encode_value().
encode_value: Support a String.Buffer for debug output. Giving a String.Buffer object as the third argument to encode_value{,_canonic}() now causes debug level 1 (ie disassembly-style) to be written to the buffer. Also makes the debug argument part of the public type.
EFUNs: Add deprecated_typep() efun.
EFUNs: Add typeof_identifier() typeof_identifier(prog, identifier) returns the type of a named identifier in the program.
[utf8]: fixed handling of surrogate pairs
Merge remote-tracking branch 'origin/master' into new_utf8
Builtin: Fixed mktime_zone() when localtime is in dst. Adds variant using timezone/altzone (eg Solaris). Fixes the fallback implementation (using gmtime(3F)) to not drift by an hour when the local time zone has tm_isdst == 1.
EFUNs: lfun::_destruct() may now inhibit explicit destruction. lfun::_destruct() returning 1 now causes the object to survive an explicit destruct() call. Note that the object will still be destructed if the destruct is for any other reason.
Runtime: Added API for delaying destruct() during critical sections. Adds object_inhibit_destruct() and object_permit_destruct() to temporarily delay explicit destruct() in critical sections.
Merge branch 'patches/lyslyskom22891031' * patches/lyslyskom22891031: Runtime: Calling UNDEFINED now returns UNDEFINED. EFUNs [callablep]: Updated to uncallable integers.
EFUNs [callablep]: Updated to uncallable integers. Integers other than UNDEFINED are no longer callable.
Merge commit '4799249b074' into patches/lyslyskom22891031 * commit '4799249b074': Only need to check cyclic for arrays.
Merge commit '722771973bd' into patches/lyslyskom22891031 * commit '722771973bd': (6177 commits) Verify that callablep responses are aligned with reality. ...
GC: Silence compiler warnings GCC 8 warns more agressively about mismatching signatures of function pointers. To silence it, now we have an explicit do_gc_callback() function of the correct signature, which calls do_gc(). Adjusted do_gc()'s signature in the process, as there is no reason for it to be semi-compatible with callbacks anymore.
EFUNs: Silence compiler warning GCC 8 became much more aggressive about warning about casts between incompatible function pointers. mktime_zone() is now thus more careful and uses putenv() through a wrapper in SET_ONERROR() only.
Debug: Fixed type for dump_program_tables().
Merge commit '2470270f500c728d10b8895314d8d8b07016e37b' into grubba/typechecker-automap * commit '2470270f500c728d10b8895314d8d8b07016e37b': (18681 commits) Removed the old typechecker. ...
Merge branch 'grubba/wop-local-variables-debug-info' into bill/debugger-concept
WIP: Local variables debug info.
EFUNs: Attempt to use thread-safe implementations of crypt(3C).
Documentation: Moved doc for {base,dir}name().
EFUNs: Check for signals after sleep().
EFUNs: Implement {base,dir}name() in C. This makes it possible to have a stricter type for basename() and dirname(). Also adjusts the type for combine_path() et al.
EFUNs [Master]: get_active_{compilation,error}_handler() moved to master. This is in preparation for moving all handler stuff to the master.
LFUNs: Added magic lfun ::_annotations().
EFUNs: Return an array(multiset) from predef::annotations(). A multiset is a more natural datatype for the set of annotations. NB: The low-level code still uses arrays; this will most likely be changed later.
EFUNs: Fixed some argument handling bugs in annotations().
WOP: Local variables debug info.
Runtime: Extended low_get_line() with local variable info.
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().
Don't send function name to bad_arg_error when it isn't needed.
Merge remote-tracking branch 'origin/8.1' into gobject-introspection
Builtin: Range check tz in mktime_zone() This makes sure that the tz indication (in hours) is not more than 2 digits.
Simplify error messages and avoid sending function name to get_all_args
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.
Builtin: Fixed mktime_zone() for edge values. mktime_zone() now falls back to setting the TZ enviroment variable and calling mktime() again if the initial call fails. This fixes handling of times near the edge cases (-0x80000000 & 0x7fffffff) on systems with 32-bit time_t.
System.TM: Added some internal doc.
EFUNs: Removed some stack droppings from crypt().
Merge branch 'patches/pike111' into 8.0 * patches/pike111: Sql.mysql / Mysql.SqlTable: Use UTF-8 encoded UTF-16 in a couple of other applicable cases. Sql.mysql: Use/support UTF-8 encoded UTF-16. Testsuite [utf8_to_string]: Fixed typo. EFUNs: Support encoding to UTF-8 encoded UTF-16 in string_to_utf8().
Merge branch 'patches/pike111' into 8.1 * patches/pike111: EFUNs: Support encoding to UTF-8 encoded UTF-16 in string_to_utf8().
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).
Merge branch 'tobij/inline_gc_markers' into 8.1
EFUNs: Rewrite of validate_utf8(). Changed validation approach in validate_utf8() to simplify the code, and make it easier to read/understand. Also adds some corresponding testsuite tests.
EFUNs: Added validate_utf8(). This efun checks whether a string is valid UTF-8 or not.
Efuns: Use utf8_string in string_to_utf8() and utf8_to_string().
Remove base_sp argument from bad_arg_error
Improved type of Array.everynth
Merge commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e' into patches/pike63 * commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e': (19587 commits) ...
FALL THROUGH -> FALLTHRU to survive -Wimplicit-fallthrough=4.
Add more FALLTHRU directives where needed
Fix spelling of FALLTHRU directive The non-standard spelling "FALL_THROUGH" is not recognized by gcc 7.3. Also, the comment must not contain any other text, or be placed inside braces.
Improve docs.
Merge branch '8.1' into peter/travis
Accomodate for non-zero null.
strptime: Init struct tm to zero.
strptime/strftime: Added at global level; rip out special strptime/strftime in Val.*.
Debug.find_all_clones(): Fixed off by one issue. It now seems to work as intended also when include_subclasses is true.
Debug.find_all_clones(): Fixed stack pollution. Debug.find_all_clones() is an efun, so it must follow the strict pike stack calling conventions.
Debug: Added find_all_clones().
Restore part of AmigaOS support.
Rip out final remains of OS2 and AmigaOS.
Equvivalent and equivalent are not equivalent.
We do not support OS/2
Merge remote-tracking branch 'origin/8.1' into peter/travis
mktime: Clarify docs.
mktime: Aftermath fixes. Got rid of args to mktime_zone error. Fixed use of uninitialized value. Indent (pretend) class local function. Removed unused set_zone. struct tm requires time_stuff. Got rid of (now unused) fname argument too.
mktime: Got rid of (now unused) fname argument too.
mktime: Improve timezone support, increase performance, bugfixes. System.TM: Properly fixed, code reuse with mktime(). Extended testsuite for both. Reduced memory footprint.
Got rid of args to mktime_zone error. Fixed use of uninitialized value.
System.TM: Properly fixed, code reuse with mktime().
Runtime: Reinstate original mktime() code. Includes the original workaround for tm structs missing gmtoff. The confusion about this issue is because mktime(3) tries to infer daylight saving if isdst==-1. Setting it explicitly to zero when querying UTC is sufficient to get deterministic results. Also reinstates JSON5 testsuite.
Runtime: Temporarily run the original workaround mktime() code on all xenofarms. This should show that the workaround works on all platforms, except Solaris 5.10 under certain circumstances. This does not depend on the current timezone. Also temporarily disables JSON5 testsuite, to get unclobbered xenofarm results.
Runtime: Fix mktime() on platforms without gmtoff in struct tm. For some reason the old approach was off by 3600 seconds for eg 2017-07-14T12:03:22+0000 when executed in the CET timezone. Fixes testsuite failures on Solaris 10.
mktime: Only need to clear memory once.
Daylight 'savings' spelling corrections.
mktime: Missing tm_gmtoff, minimal workaround fixed.
mktime: Solaris does not have tm_gmtoff; added minimal workaround.
mktime: Normalisation normalised to <12 hours.
mktime: Fast and simple normalisation.
mktime: Improve timezone support, increase performance, minor bugfixes. I am presuming that by now all systems we run on either have the tm_gmtoff or the __tm_gmtoff struct member on the <time.h> struct tm. This allows me to squash a few annoying bugs in the System.TM module and also in the mktime() implementation. It speeds up mktime() a lot, gets rid of large pieces of stale code, as well as extends its range to basically unlimited, and even though it improves it a bit, it still leaves System.TM more limited/buggy/slower than mktime() (especially when using timezones other than UTC or the local timezone).
Interpreter: merge callsite_execute and callsite_return
map: use new callsite API This avoids repeated function lookup and frame allocation and setup.
Interpreter: fixed return from trampoline frames Calls to functions which created trampolines, the local variables were popped from the stack too early.
Interpreter: merged callsite_set_args into callsite_init
Removed unused includes.
GC: Inline markers into datastructures Initial work is done. This may have worse performance characteristics for now. Futher work will use the block allocator provided iterator instead of linked lists to visit all objects and potentially optimize the memory layout of the marker struct.
Remove some more stuff.h that apparently were not tracked by dependencies.
Merge branch 'grubba/rename_lfun_destroy' into 8.1 * grubba/rename_lfun_destroy: Modules: Fixed logts of warnings. Testsuite: Updated for LFUN::_destruct(). Compiler: Don't complain about LFUN::destroy() in compat mode. Fix multiple warnings. Runtime: LFUN::destroy() has been renamed to _destruct(). Compiler: Rename LFUN::destroy() to LFUN::_destruct().
Runtime: LFUN::destroy() has been renamed to _destruct(). Reflect the name change on some APIs.
Compiler: Rename LFUN::destroy() to LFUN::_destruct(). As decided at Pike Conference 2017.
Remove !SHARED_NODES Pike with SHARED_NODES disabled did not work. By descision of the Pike Conference it is removed.
time: Clarify and correct documentation.
size_object(): Added some assertions. Make Coverity happy... Fixes [CID 1294650].
utf8_to_string: make decoder reusable This change makes it possible to reuse the decoder without creating a pike string first.
utf8_to_string: use local variables Due to C aliasing rules, the compiler has to reload the string pointer and length in every iteration. Use local variables to make the generated code better. This new version of utf8_to_string is significantly faster than the previous 8.1 baseline: utf8/code.pike#decode_7bit | 1.8 G 2.5 % | 24.2 G 3.5 % | utf8/code.pike#decode_8bit | 350.0 M 1.8 % | 552.2 M 1.1 % | utf8/code.pike#decode_arabic | 325.7 M 0.8 % | 438.0 M 1.0 % | utf8/code.pike#decode_bulgarian | 321.8 M 0.9 % | 378.8 M 2.2 % | utf8/code.pike#decode_estonian | 375.6 M 1.1 % | 503.0 M 0.9 % | utf8/code.pike#decode_hebrew | 325.8 M 0.8 % | 438.8 M 0.9 % | utf8/code.pike#decode_japanese | 391.3 M 1.9 % | 517.5 M 1.8 % | utf8/code.pike#decode_polish | 371.9 M 0.9 % | 583.2 M 3.8 % | utf8/code.pike#decode_thai | 377.8 M 0.8 % | 510.6 M 1.0 % | utf8/code.pike#decode_yiddish | 326.2 M 1.1 % | 443.3 M 0.7 % | This are the results on my i7.
utf8_to_string: implement 7bit fast path Implement a fast path for the length calculation for 7 bit strings.
Documentation: Minor clarification.
search: Fixed end of range condition. Fixes testsuite failure.
Revert "Revert "map: use new callsite API"" This reverts commit 3a1cd08558e320a6a60bf067b3f34ec4333a5b7b.
Revert "map: use new callsite API" This reverts commit ce175008a87794c2060124f0ee2dabef71f4d0da. This optimization is broken until the unlink_previous_frame() code has been updated.
search: Added end argument for the string and array cases.
Faster string_to_utf8() This commit splits the length calculation of the resulting string and the actual encoding into two new functions. This makes it possible to e.g. encode utf8 directly into a buffer. The length calculation has been rewritten for different shift sizes. For 8bit strings it uses a popcount loop, which calculates the number of high bits (code points bigger than 0x7f) on machine size chunks. On machines which have popcount instructions this is much faster. With compilers which do not support __builtin_popcount it uses a simple manual popcount. For 16bit and 32bit strings the length calculation uses clz to count the number of bits in the codepoint to calculate the length without branches. The encoding function is split into one version for each shift size. For 32bit strings it avoids branches by using the resulting byte lengths as a jump size. This generates reasonable code, at least in gcc. Benchmark results on my i7: utf8/code.pike#encode_7bit | 1.3 G 1.6 % | 8.3 G 3.4 % | utf8/code.pike#encode_8bit | 651.1 M 1.8 % | 1.1 G 1.2 % | utf8/code.pike#encode_arabic | 498.4 M 0.8 % | 710.3 M 1.2 % | utf8/code.pike#encode_bulgarian | 488.2 M 1.2 % | 688.4 M 2.6 % | utf8/code.pike#encode_estonian | 614.8 M 6.6 % | 969.5 M 1.5 % | utf8/code.pike#encode_hebrew | 496.9 M 1.8 % | 710.1 M 1.0 % | utf8/code.pike#encode_japanese | 704.9 M 4.0 % | 785.4 M 1.6 % | utf8/code.pike#encode_polish | 388.9 M 0.4 % | 710.1 M 1.3 % | utf8/code.pike#encode_thai | 642.8 M 3.3 % | 858.0 M 0.9 % | utf8/code.pike#encode_yiddish | 485.9 M 3.3 % | 692.5 M 3.8 % | I also tested on arm32, the speedups are around 50%.
Fixed crypt() to work on purpose and not just by accident.
Calling crypt() now crypts a random string. Useful as a quick way of generating passwords.
Export f_hash, not the compat version.
string_to_utf8: use local variable This avoid unneeded loads of 'out->str'.
The start parameter to search() has no effect on mappings.
Documentation: Documented optional further args to search(). Also fixes the types for search() and lfun::_search().
Let's lower the paranoia and assume f_zero_type and f_search push integers.
hash_value: Fixed truncation bug on 64-bit architectures. The hash value was truncated to 32 bits. Fixes testsuite failures on Solaris/sun4u, and most likely random failures on other 64-bit architectures when the process has a large memory footprint.
Even more specific types of crypt in documentation.
Revert back the deprecated flag on the hash functions. The name already tells they are deprecated. Yabu testsuite gives lots of warnings as it is using the bad hash_7_0 function. It can't be changed to a better hash in a simple way, and removing Yabu is probably better than more fixing of it.
Siphash24: added byte order independent versions for wide strings This commits adds two versions of siphash for both 16 and 32 bit wide strings. They are identical to the 8bit version on little endian machines. The different siphash versions are now also available dynamic modules.
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.
Added a new hash() function using siphash.
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?
f_map: reuse frame
Extended glob pattern syntax: o \ can now be used to quote special characters in the pattern o [ can be used for ranges of characters ([bx] [a-c0-9] [^a] etc). Also changed glob to return the matching glob instead of 1 when an array is passed as the first (pattern) argument. This can be used to remove some loops where you want to do different things depending on which pattern matched. Both these changes are incompatible.
LONGEST is just INT64, so use that instead.
Added documentation of array as second argument to map().
Removed PTRDIFF_T_TO_LONG
Optimise Pike function calls from f_map by reusing the frame, if possible.
Reduce copy and paste. No need to put the random function on the stack.
Take crypt salt from random().
Move crypt prototype from global.h to port.h
GC [arrays]: Added do_gc_weak_array(). It is now possible to request a quick gc of an array with weak references.
GC: Fixed typo in type declaration for gc(). It should now accept being called without arguments again. Thanks to Jeff Hungerford <hungerf3-roxen3@house.ofdoom.com> for the report. Fixes [Pike mailinglist 14512]/[LysLysKOM 21651115].
Documentation [GC]: Fixed typo.
GC [mappings]: Added do_gc_weak_mapping(). It is now possible to request a quick gc of a mapping with weak references.
SIMPLE_TOO_FEW_ARGS_ERROR should be SIMPLE_WRONG_NUM_ARGS_ERROR since long ago. Replaced them and tighten up argument control in places.
SIMPLE_BAD_ARG_ERROR is only kept for compatibility, but we still had 500+ uses of it.
Removed f_random[string,seed] from module API.
Make random_seed() a noop and deprecate.
math.h is included from pike_float.h
inline is part of c99 We do have.. excessive amounts of inline, incidentally. :)
Only need to check cyclic for arrays.
Don't use 0 for max range in my_rand
Moved the range limiting of random numbers into my_rand(64).
Added PIKE_DEBUG around code that shouldn't happen.
Obsess less about if size_shift is 3.
Removed Intel IA64 compiler specific DO_NOT_WARN.
Fixed warning.
Ignore the mood of apcc
Static:ified a lot of strings. This is more or less all instances of push_text(static data here). Left to do: make_shared_X_string(static data here). :)
Strings: correctly count bytes in strings
Strings: print string types in memory_usage()
Strings: added and used push_static_text Use the new static string allocation support where possible. This is the case all code which is not dynamically loaded.
strings: split string header and contents All string structs are now allocated by the block allocator while the actual string content is kept in a different area. Short strings with byte length smaller than sizeof(struct pike_string) have their content allocated from the block allocator, aswell. In most cases short string contents are allocated on creation and therefore the data will end up directly after the header in memory.
Strings: global const strings
Use @rfc{@} autodoc syntax.
Merge branch 'arne/string_alloc' into 8.1 Conflicts: src/backend.cmod src/builtin.cmod src/builtin_functions.c src/stralloc.c
Build: The declaration of my_rand() has moved to stuff.h. Fixes quite a few warnings.
Work for all random_string lengths.
Make random_string twice as fast when using rdrnd.
Documentation: Some markup changes to some efuns. Improves the documentation of indices(), values() and types().
unicode_to_string: Support UTF8LE without BOM. Adds an optional second argument to unicode_to_string() to specify the default byte order (an initial BOM in the input string overrides this argument).
string_to_unicode: Support outputting UTF8LE. Adds an optional second argument to string_to_unicode() to specify the wanted byte order.
this_object(): Minor documentation fix.
Documentation: Added reference to `==() from equal().
Documentation: Removed duplicate doc for hash_7_4(). Also fixes some obsolete documentation references.
Debug.memory_usage(): Added kludge for Linux libc. The fields in struct mallinfo in Linux libc (as of glibc 2.20) are declared as int, and will thus overflow into negative when the values get larger than 0x3fffffff. This commit interprets negative mallinfo values as 32-bit unsigned values.
enumerate(): fixed integer overflow handling This change fixes two bugs 1) the overflow checks were incorrect, because signed integers do not overflow 2) when overflow was actually detected, the code fell back to the slow path (using f_add) with the last array element as the new start value, which led to wrong results
Fixed typo in previous commit
Added gethrdtime().
Removed trailing spaces.
f_zero_type: cleanup
destructedp, zero_type: detect trampolines referencing destructed objects
Changed two malloc to xcalloc.
Array: Fixed NULL-dereference in uniq_array() on certain content. Fixes SIGSEGV in String testsuite.
equal() now regards all false values as equal. Also updates the documentation somewhat.
Builtins: Fixed lost reference in longest_ordered_sequence().
Removed more stack-adjustment code from the rest of the non-efuns.
Simplified malloc+memset with xcalloc
Whitespace changes.
Always enable _gdb_breakpoint
Moved dump_backlog to Debug.
Moved gc_set_watch to Debug.
Moved describe to Debug.
Moved locate_references to Debug.
First experiment with new contract: Functions do not have to trim the stack before returning. Stack top is the return value and the rest is discarded.
Misc: Added some missing fall-through markers and breaks.
Moved DEBUG_MALLOC code into _Debug.
Optimized has_index for mappings and multiset It is now way faster for mappings (in testing about 2x) and somewhat faster for multisets. Since our developers have a tendency to write if(has_index(map,key)) instead of if(mapping[key]) this can be a noticeable gain.
Remove deprecated security system.
Moved _next, _prev and next_object to Debug.
Moved _refs
Moved map_all_objects
Start moving debug code to the Debug module.
Documentation: 7.4::hash() is no more. Use hash_7_4() instead.
Fixed unused argument warning.
Reuse the new type pike strings where possible and easy.
Shortened some error messages.
Added F_UNDEFINEDP and F_DESTRUCTEDP. These are the same as the functions with the same name, but lends themselves to inlining.
Fix a crash.
hash_7_4 is not deprecated.
Remove Pike 7.0 support. We now only support post-2000 code.
Cap compatibility mode to lowest supported.
Strengtened the return type of glob()
Build: Added lots of missing TYPEOF()s.
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.
Unused defines.
Removed code that has been #if 0 for quite some time It mainly confuses things when you are searching for code. I also removed a few instances of 'well, this would be nice, but is not possible' and 'this code is obviously broken because X' etc. We do, after all, have a revision control system. With history. :)
Binary size: push_constant_text -> push_text when not time-critical. Especially in error handling, and code that does a lot of other string operations anyway the speed gain is not wort the 100+ bytes code size of each instance of push_constant_text This saves about 20K of code size (main pike binary), while not really changing the speed much. push_constant_text that seemed to be in at least pseudo-time-critical code was kept as they were. On a related note, push_constant_text(":") four times in a row creates four different string variables, for obvious reasons. Some of the remaining push_constant_text really should have a module/file local string variable, even though that is more bothersome to create. It might be nice to have this in .cmod files automatically.
Added string_filter_non_unicode This function replaces all non-unicode characters in a pike string with 0xffea
Removed support for changing of comparators and values (partially) from multisets. This saved 60Kb binary size, and presumably speeds up the code since a lot of tests will have been removed compile-time.
Free takes void* and doesn't need any cast anymore.
Internals: Increase visibility of f___get_first_arg_type(). It can be useful from other C-level code.
Stronger type for random_string
f_parse_format isn't used.
4x faster random_string.
Efuns: Fixed trailer fixup code in random_string(). Due to missing compensation for the three byte offset from the main loop in the fixup loop, the fixup loop never did anything. Also a minor optimization of the previous code.
Tagged some more arguments UNUSED
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.
Fixed callablep for multi-level arrays.
Builtin: callablep() now supports cyclic arrays.
Some more string -> string(0..255). encode_value_*, read_{file,bytes} and string2hex and hex2string. I have only updated the return values, to avoid making it even more impossible to write strict types code.
Document some previously undocumented symbols. Most builtin stuff should now be documented.
Debug.size_object: Added some doc for lfun::_size_object(). All lfuns should now be documented.
Added Debug.map_all_objects It is somewhat hard to iterate over all objects from pike. Some objects do their very best to emulate false/0, and destructed objects are also somewhat hard to differentiate from 0. The easiest solution was to add a Debug.map_all_objects function.
Added support for an _object_size method in objects. If defined the return value from that function will be added to the size calculated by _object_size. This is mainly useful to get more correct debug information about memory usage, as an example when using Debug.pp_object_usage. Callbacks have currently only been added to Image.Image and System.Memory. Currently the normal memory_usge() function does not include these sizes, it should probably do so, however.
Fixed multiset and mapping size calculations in rec_size_svalue. Also handle values that show up multiple times in an object correctly (before an object with two intances of the same value only got the first one counted, then divided by the refs. Now both are included in the total size). As an example: | class foo { string a; string b; } | string q = random_string(10000); | | > (f->a = q), _size_object(f); | (1) Result: 5072 | > (f->b = q), _size_object(f); | (2) Result: 6744 | > (q=0), _size_object(f); | (3) Result: 10088 rec_size_svalue is now public, and used from as an example the ADT.List class.
Added an _object_size() function. It tries to aproximate how large an object is in RAM.
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.
Revert "propagate CLEAR_ON_EXIT flag in string operations" This reverts commit c39be4e9c6787f7a03bdb7ab7f1506fdacaf972c.
propagate CLEAR_ON_EXIT flag in string operations
Removed auto bignum checks.
Rewrite Locale.Charset to Charset
Added macro REFCOUNTED_TYPE(). This is to simplify renumbering of the types.
use string range information in has_prefix and has_suffix
use string range information to optimize utf8_to_string/string_to_utf8
Added min- and max- range-indicators to strings. Also added flags indicating if a string is lowercase or uppercase. The min/max is only calculated on demand to avoid any slowdowns. This makes upper_case/lower_case(X), where X is an already lowercased string very fast ('search' also utilize the ranges when available, so search(string,"\0") is very fast if there are no null characters in the string). It also speeds up the %s format for get_all_args (at least the second time a certain string is used) since the function checking for null characters can now use the fields. Currently most string operations simply reset the string to unchecked, as an optimization they could copy the ranges/flag as appropriate. The + operator already does keep track of the flags and ranges. For wide-strings the min/max value is somewhat less correct, since it's saved in a single byte. But '0' still works (you get string(0..X) for strings with 0, and string(1..X) for strings without 0 but with any other character from the first 255).
More specific string types.
string_to_utf8: use macros to access string. much faster for long 7bit strings
Runtime: Support OS/2 path conventions.
Type fixes for compile warnings reported by clang.
Wrap unused parameters in UNUSED(), and debug-only parameters in DEBUGUSED(), to cut down on compiler warnings. The macro also renames parameters to catch accidental use. (There are more places to clean up but I don't want to modify code that isn't compiling on my machine.)
Documentation update
Reinstate legacy hash functions for the benefit of legacy network protocols.
Remove superfluous legacy compat support prior to 7.8.
Fix -Wglobbered warnings. One of them was actually legitimate.
Removed f_sscanf_76 and f_sprintf_76.
Removed security system (on this branch)
Merge remote-tracking branch 'origin/8.0' into string_alloc Conflicts: src/stralloc.c
localtime, gmtime and mktime are C89 and 4.3BSD, so assume they exists
memcmp is C89 and 4.3BSD
memmove is C89 and 4.3BSD
Don't cast memcpy void* arguments.
memcpy is C89 and 4.3BSD
memset is C89 and 4.3BSD
Fixed direct cast calls.
On second thought, this is so obscure that we shouldn't probably do it at all.
Fixed the indexing-fallback-code of map on objects.
Use pike_sizeof instead if _sizeof.
Fixed direct call of cast.
Consistent formatting of function name parameter to get_all_args
Merge remote-tracking branch 'origin/8.0' into string_alloc
Runtime: Fixed some broken type checks. NB: There's a difference between the C-types "int" and "INT_TYPE"...
Improved type checking.
Merge branch '8.0' into gobject-introspection
Merge remote-tracking branch 'origin/7.9' into pdf
Merge remote-tracking branch 'origin/7.9' into ba
replaced some more usages of pike internals
Merge branch '7.9' into gobject-introspection
Fixed --enable-dlmalloc on systems with struct mallinfo.
silence
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
has_prefix: Fixed broken handling of objects.
add GJAlloc as a bundle
Merge remote branch 'origin/7.9' into breaking_into_pieces
Support dlmallinfo(). Fixes [bug 6275 (#6275)] for WIN32 some more.
Debug.memory_usage: Fixed typo.
Debug.memory_usage: Proper fix for compilation --without-debug.
Compilation workaround quickfix.
Debug.memory_usage(): Added fields for all current block_allocs.
Debug.memory_usage(): Added information from mallinfo(3MALLOC).
Debug.memory_usage(): Code cleanup and some doc updates.
utf8_to_string(): Fixed bug in the surrogate decoder.
utf8_to_string(): Added support for optionally decoding surrogates.
pike_memory: new helper cmemset()
Fixed special case in type of map().
Compiler: The compiler and runtime are now INT_TYPE-clean wrt line numbers.
Removed broken type for predef::indices().
Type-checker: Send the proper flags to get_first_arg_type().
Type-checker: Enabled special-casing of last argument checking in new_check_call(). Inverted meaning of flag CALL_LAST_ARG to CALL_NOT_LAST_ARG. Fixed some related bugs. Fixes some of [bug 6064 (#6064)].
crypt(): Handle UNDEFINED as the second argument properly.
Fixed some minor typos.
builtin_functions.c: suppress unfounded warnings
Change in internal timehandling; ability to invalidate current_time.
Removed $Id$.
Atomic megapatch: Use svalue accessor macros everywhere.
And now, as an amazing bonus, it also survives BEING COMPILED!
Removed Pike 7.2-isms from backport.
Survive crypt(3C) failing. Fixes [bug 6013 (#6013)].
The compatibility hash functions and hashstr are only used in builtin_functions.c. Move them there.
Further glob optimizations: Now also optimized for 8bit format and 16 bit haystack.
10x faster glob for 8/8 bit strings. I guess more versions could be added, but 8/8 seemsz to be by far the most common case.
No more foreign_idents.
Use get_real_time to make sleep() more accurate. Another attempt at fixing the thread switch test. Didn't help there, but is probably a good thing anyway.
A glob always matches itself, so return early if that is the case.
Update current_time returned by time(1) after sleeping.
Fixed overoptimization of time() calls. time(0) is not side-effect free since it updates current_time which affects later time(1) calls.
Added __get_type_attributes().
Added predef::types() in analogue with indices() and values(). Also adds lfun::_types() and ::_types().
glob can now take an array of patterns as the first argument. It will work as normal, but return true, or keep a string, if any of the glob patterns match.
Preparations for changing the identifier information for constants.
has_prefix() should not throw errors when the prefix is longer than the object supports.
Don't optimize away th_yield() calls in sleep(0). Rev: src/builtin_functions.c:1.706 Rev: src/threads.c:1.283 Rev: src/threads.h:1.137
Added a variable to identify the master and all ex-masters. Rev: lib/master.pike.in:1.475 Rev: src/builtin_functions.c:1.705 Rev: src/object.c:1.311
Fixed several cases of unsafe use of get_all_args for optional args. Rev: src/builtin_functions.c:1.704 Rev: src/cpp.c:1.178 Rev: src/modules/Gettext/gettext.c:1.28 Rev: src/modules/Image/font.c:1.92 Rev: src/modules/_Roxen/roxen.c:1.56 Rev: src/modules/files/socket.c:1.112 Rev: src/modules/files/udp.c:1.84 Rev: src/post_modules/GTK2/source/gnomecanvas.pre:1.8 Rev: src/post_modules/GTK2/source/gtksourceiter.pre:1.7 Rev: src/post_modules/GTK2/source/gtktextiter.pre:1.14
Fixed segfault for allocate (17, UNDEFINED). Also restored compatibility with previous pike versions in that situation. Rev: src/builtin_functions.c:1.703 Rev: src/testsuite.in:1.898
Added pike wrapper for debug_malloc_dump_references. Rev: lib/modules/Debug.pmod/module.pmod:1.6 Rev: src/builtin_functions.c:1.702
Backported fix for leak of memory_usage callbacks from Pike 7.6. Rev: src/backend.cmod:1.47 Rev: src/builtin_functions.c:1.485 Rev: src/builtin_functions.h:1.25 Rev: src/main.c:1.165
Backported fix for leak of memory_usage callbacks from Pike 7.8. Rev: src/backend.cmod:1.159 Rev: src/builtin_functions.c:1.565 Rev: src/builtin_functions.h:1.31 Rev: src/main.c:1.206
Fixed leak of memory_usage callbacks. Rev: src/backend.cmod:1.243 Rev: src/builtin_functions.c:1.701 Rev: src/builtin_functions.h:1.42 Rev: src/module.c:1.60
Some autodoc updates regarding hash functions. Rev: src/builtin_functions.c:1.700 Rev: src/program.c:1.777
Added more xrefs to the doc. Rev: src/builtin_functions.c:1.699
Fixed some typos. Rev: src/builtin_functions.c:1.698
Added support for searching of objects to has_prefix(). Rev: src/builtin_functions.c:1.697
Simplify and reduce sleep functions, use nanosleep when available. Rev: src/builtin_functions.c:1.696 Rev: src/port.c:1.89 Rev: src/port.h:1.68 Rev: src/post_modules/SQLite/sqlite.cmod:1.30 Rev: src/threads.c:1.282
Let implicit_gc_real_time take an nsec argument just like gethrtime etc. Rev: src/builtin_functions.c:1.695 Rev: src/gc.c:1.333
Get more time info about the implicit gc runs. Debug.gc_status() now includes the total CPU and real time consumed by the gc. Added Pike.implicit_gc_real_time() to return the consumed real time quickly. Rev: lib/modules/Pike.pmod/module.pmod:1.23 Rev: src/builtin_functions.c:1.694 Rev: src/gc.c:1.332 Rev: src/gc.h:1.137
Added optimization of has_value() and search() for single-character strings. Thanks to Arjan van Staalduijnen <Arjan.van.Staalduijnen@rtl.nl> for the suggestion. Rev: src/builtin_functions.c:1.693
Ensure that the elements on the stack are always valid. Rev: src/builtin_functions.c:1.692
Never put stuff on the freed part of the stack. Rev: src/builtin_functions.c:1.691
Never put stuff on the freed part of the stack. Rev: src/builtin_functions.c:1.484
Never put stuff on the freed part of the stack. Rev: src/builtin_functions.c:1.564
_dump_program_tables() now supports an optional indent level. Rev: src/builtin_functions.c:1.690
Fixed small doc typo. Rev: src/builtin_functions.c:1.689
Updated the type for Pike.count_memory. Added a documentation FIXME. Rev: src/builtin_functions.c:1.688
Corrected some error messages and prevented crypt from not crypting. Rev: src/builtin_functions.c:1.687
Fixed typo. Rev: src/builtin_functions.c:1.153 Rev: src/modules/sprintf/sprintf.c:1.33
Updated the remaining generate_*() functions to keep track of the stack depth. Rev: src/builtin_functions.c:1.686 Rev: src/operators.c:1.244
reverse() on strings now releases the interpreter lock if the string is sufficiently large (currently >= 512KB). Rev: src/builtin_functions.c:1.685
Let exit() perform an _exit() if running in a forked child. Rev: src/builtin_functions.c:1.684 Rev: src/builtin_functions.h:1.37 Rev: src/signal_handler.c:1.334
Bugfix. Rev: src/builtin_functions.c:1.683
Removed some unused variables. Type hint optimization in f_glob on arrays. Rev: src/builtin_functions.c:1.682
Added doc about the deprecated functions hash_7_{0,4}(). Rev: src/builtin_functions.c:1.681
Deprecated hash_7_{0,4}(). The supported names for the functions are now 7.0::hash() and 7.4::hash(). Rev: lib/7.0/modules/__default.pmod:1.11 Rev: lib/7.4/modules/__default.pmod:1.24 Rev: src/builtin_functions.c:1.680
Fixed some warnings. Rev: src/builtin_functions.c:1.679
Better types. Rev: src/builtin_functions.c:1.678
Some more static -> protected. Rev: src/builtin.cmod:1.216 Rev: src/builtin_functions.c:1.677 Rev: src/iterators.cmod:1.69 Rev: src/language.yacc:1.438 Rev: src/mklibpike.pike:1.5 Rev: src/operators.c:1.235 Rev: src/threads.c:1.258
Enable the stricter type for indices(). It now doesn't accept being called with zero (or void). Rev: src/builtin_functions.c:1.676
Fix when gmtime gets an invalid timestamp on windows. Rev: src/builtin_functions.c:1.675
Cpp directives doesn't always work in macro arguments. Rev: src/builtin_functions.c:1.674
Repaired broken type for f_indices(). Added disabled code for when disallowing zero arguments works in the type system. Rev: src/builtin_functions.c:1.673
Strengthened the type for indices() some more- Rev: src/builtin_functions.c:1.672
Changed do_really_free_pike_string to a much more descriptive name. Viva ABI incompatibility! ;) Rev: src/builtin_functions.c:1.671 Rev: src/modules/files/file.c:1.391 Rev: src/stralloc.c:1.220 Rev: src/stralloc.h:1.106
Fixed some Autodoc mk II typos. Rev: src/builtin_functions.c:1.670 Rev: src/program.c:1.716
Make use of the new svalue init macros and global constant svalues for 0 and 1. Rev: src/array.c:1.209 Rev: src/bignum.c:1.45 Rev: src/builtin_functions.c:1.669 Rev: src/code/ia32.c:1.48 Rev: src/encode.c:1.275 Rev: src/error.c:1.163 Rev: src/multiset.c:1.113 Rev: src/multiset.h:1.46 Rev: src/svalue.c:1.242
Added CIM_LONGUPPERDELTA/CIM_LONGLOWERDELTA to support Unicode 5.1.0. Rev: bin/make_ci.pike:1.12 Rev: src/builtin_functions.c:1.668
Object subtype indexing mega patch. Added inherit_number argument to the high-level object indexing functions. Subtyped objects should now be usable in many cases in Pike code. Updated several modules to the new API. Rev: src/builtin_functions.c:1.667 Rev: src/interpret.c:1.402 Rev: src/modules/HTTPLoop/requestobject.c:1.32 Rev: src/modules/Image/colors.c:1.76 Rev: src/modules/files/stat.c:1.33 Rev: src/object.c:1.294 Rev: src/object.h:1.97 Rev: src/operators.c:1.233 Rev: src/post_modules/SDL/SDL.cmod:1.30
object_program() now works with subtyped objects where the inherit uses the parent. Rev: src/builtin_functions.c:1.666
array_sscanf() doesn't have side-effects... Rev: src/builtin_functions.c:1.665
First go at format string checking for sscanf et al. Added __handle_sscanf_format(). F_SSCANF-nodes are now type checked with new_check_call() (just like ordinary function calls). new_check_call() now accepts and detects F_LVALUE_LIST nodes as arguments. Added flag CALL_ARG_LVALUE to indicate that checked arguments are lvalues. Rev: src/builtin_functions.c:1.664 Rev: src/las.c:1.410 Rev: src/pike_types.c:1.335 Rev: src/pike_types.h:1.117 Rev: src/sscanf.c:1.179 Rev: src/sscanf.h:1.5
Added backwards compatibility for sscanf and array_sscanf. Rev: lib/7.6/modules/__default.pmod:1.4 Rev: lib/7.6/modules/testsuite.in:1.6 Rev: src/builtin_functions.c:1.663 Rev: src/language.yacc:1.423 Rev: src/sscanf.c:1.178 Rev: src/sscanf.h:1.4 Rev: src/testsuite.in:1.814
Updated the type for Pike.count_memory. Rev: src/builtin_functions.c:1.662
Fixed some prototypes in dmalloc mode. Rev: src/builtin_functions.c:1.661
Put all illegal size shift fatals behind ifdef PIKE_DEBUG. Rev: src/builtin.cmod:1.199 Rev: src/builtin_functions.c:1.660 Rev: src/cpp.c:1.169 Rev: src/encode.c:1.265 Rev: src/iterators.cmod:1.66 Rev: src/operators.c:1.231 Rev: src/preprocessor.h:1.93 Rev: src/program.c:1.683 Rev: src/sscanf.c:1.172 Rev: src/stralloc.c:1.217
Added Pike.count_memory to be able to see the memory consumed by arbitrary pike structures. The Gmp classes have been fixed to accurately report sizes, but there's probably more to do in other modules. Rev: lib/modules/Pike.pmod/module.pmod:1.17 Rev: src/array.c:1.205 Rev: src/builtin_functions.c:1.659 Rev: src/gc.c:1.305 Rev: src/gc.h:1.131 Rev: src/mapping.c:1.199 Rev: src/modules/Gmp/acconfig.h:1.8 Rev: src/modules/Gmp/configure.in:1.48 Rev: src/modules/Gmp/mpf.cmod:1.35 Rev: src/modules/Gmp/mpq.cmod:1.27 Rev: src/modules/Gmp/mpz_glue.c:1.178 Rev: src/multiset.c:1.107 Rev: src/object.c:1.288 Rev: src/pike_types.c:1.323 Rev: src/program.c:1.681 Rev: src/stralloc.c:1.216 Rev: src/stralloc.h:1.102
Use a better type for counting bytes. Rev: src/array.c:1.204 Rev: src/array.h:1.73 Rev: src/block_alloc.h:1.85 Rev: src/block_alloc_h.h:1.25 Rev: src/builtin_functions.c:1.658 Rev: src/multiset.h:1.42 Rev: src/object.c:1.287 Rev: src/program.h:1.241 Rev: src/stralloc.c:1.214 Rev: src/stralloc.h:1.101
Fixed a warning when LONG_MAX can't fit in INT32. Rev: src/builtin_functions.c:1.657
Moved compilation_depth to struct compilation. Yet another step on the way to making the compiler thread safe. Got rid of some now unused cleanup code in dynamic_load.c. Rev: src/builtin_functions.c:1.656 Rev: src/dynamic_load.c:1.91 Rev: src/encode.c:1.264 Rev: src/language.yacc:1.416 Rev: src/pike_compiler.h:1.9 Rev: src/program.c:1.679 Rev: src/program.h:1.240
Pike 7.4 doesn't have SIMPLE_ARG_ERROR(). Rev: src/builtin_functions.c:1.483
Fixed some more cut-n-paste mistakes. Rev: src/builtin.cmod:1.198 Rev: src/builtin_functions.c:1.655
Fixed some more cut-n-paste mistakes. Rev: src/builtin_functions.c:1.482
Fixed some more cut-n-paste mistakes. Rev: src/builtin.cmod:1.160 Rev: src/builtin_functions.c:1.563
Fixed overflow error in mktime when sizeof(time_t) > sizeof(INT_TYPE). This fixes [bug 4525 (#4525)]. Fixed gmtime, localtime and ctime to handle bignums in the same circumstances. Rev: src/builtin.cmod:1.196 Rev: src/builtin_functions.c:1.654 Rev: src/pike_int_types.h:1.4
Fixed overflow error in mktime when sizeof(time_t) > sizeof(INT_TYPE). This fixes [bug 4525 (#4525)]. Fixed gmtime, localtime and ctime to handle bignums in the same circumstances. Rev: src/builtin.cmod:1.159 Rev: src/builtin_functions.c:1.562 Rev: src/pike_int_types.h:1.4
Fixed overflow error in mktime when sizeof(time_t) > sizeof(INT_TYPE). This fixes [bug 4525 (#4525)]. Fixed gmtime, localtime and ctime to handle bignums in the same circumstances. Rev: src/builtin.cmod:1.109 Rev: src/builtin_functions.c:1.481 Rev: src/configure.in:1.702 Rev: src/global.h:1.81
Pike compiler mega patch mk II. Rev: src/builtin_functions.c:1.653 Rev: src/language.yacc:1.414 Rev: src/pike_compiler.h:1.4 Rev: src/program.c:1.667 Rev: src/program.h:1.239
Pike compiler mega patch. Added predef::CompilerEnvironment, which is a wrapper for struct compilation. Moved the definition of struct compilation to the new header file "pike_compiler.h". The compilation struct is now contained in the current context in the current_object during compilation. The global variable lex is no more, it has moved into the compilation struct. Added enter_compiler() and exit_compiler(). predef::compile() is now shorthand for predef::CompilerContext()->compile(). Rev: src/builtin_functions.c:1.652 Rev: src/compilation.h:1.35 Rev: src/docode.c:1.197 Rev: src/docode.h:1.20 Rev: src/dynamic_load.c:1.90 Rev: src/encode.c:1.263 Rev: src/language.yacc:1.411 Rev: src/las.c:1.406 Rev: src/lex.c:1.121 Rev: src/lex.h:1.36 Rev: src/lexer.h:1.66 Rev: src/module.c:1.52 Rev: src/object.c:1.284 Rev: src/operators.c:1.230 Rev: src/pike_compiler.h:1.1 Rev: src/pike_types.c:1.321 Rev: src/program.c:1.660 Rev: src/program.h:1.237
reverse() now supports reversals of sub-ranges. Rev: src/array.c:1.199 Rev: src/array.h:1.72 Rev: src/builtin_functions.c:1.651
Eradicated all instances of setting type to T_INT without also setting the subtype in an svalue. From now on one should either set the subtype or use the new svalue type PIKE_T_FREE (see svalue.h). Rev: src/OCPikeInterpreter.m:1.3 Rev: src/apply_low.h:1.32 Rev: src/array.c:1.198 Rev: src/array.h:1.71 Rev: src/bignum.c:1.42 Rev: src/builtin.cmod:1.193 Rev: src/builtin_functions.c:1.650 Rev: src/configure.in:1.1038 Rev: src/cpp.c:1.164 Rev: src/encode.c:1.250 Rev: src/error.c:1.151 Rev: src/interpret.c:1.385 Rev: src/interpret_functions.h:1.197 Rev: src/iterators.cmod:1.64 Rev: src/las.c:1.403 Rev: src/main.c:1.228 Rev: src/mapping.c:1.195 Rev: src/module.c:1.47 Rev: src/modules/Gmp/mpz_glue.c:1.170 Rev: src/modules/HTTPLoop/accept_and_parse.c:1.39 Rev: src/modules/HTTPLoop/requestobject.c:1.31 Rev: src/modules/Image/colortable.c:1.130 Rev: src/modules/Java/jvm.c:1.84 Rev: src/modules/Parser/html.c:1.178 Rev: src/modules/Parser/xml.cmod:1.97 Rev: src/modules/Postgres/postgres.c:1.55 Rev: src/modules/_math/math.c:1.87 Rev: src/modules/files/sendfile.c:1.78 Rev: src/modules/spider/spider.c:1.134 Rev: src/multiset.c:1.106 Rev: src/object.c:1.281 Rev: src/operators.c:1.226 Rev: src/pike_error.h:1.42 Rev: src/post_modules/Shuffler/Shuffler.cmod:1.45 Rev: src/post_modules/_ADT/circular_list.cmod:1.18 Rev: src/post_modules/_ADT/sequence.cmod:1.19 Rev: src/program.c:1.642 Rev: src/signal_handler.c:1.331 Rev: src/sscanf.c:1.170 Rev: src/svalue.c:1.234 Rev: src/svalue.h:1.149
I seem to have been out biking with the last checkin... Fixed memory leaks, stack corruption and leaked recoveries. Rev: src/builtin_functions.c:1.649
Added some paranoia to optimize_replace(). Rev: src/builtin_functions.c:1.648
Fixed obscure bug in optimize_replace(). Rev: src/builtin_functions.c:1.647
Removed some debug. Rev: src/builtin_functions.c:1.646
Use CPU_TIME_TICKS_LOW in the preprocessor expressions. Rev: src/builtin_functions.c:1.645
Let's assume zero_type always return an integer. Rev: src/builtin_functions.c:1.644
Improved type for map(). Fixes [bug 4434 (#4434)] and [bug 4436 (#4436)]. Rev: src/builtin_functions.c:1.643
Added undefinedp() and destructedp() as a more readable version of zero_type() Rev: src/builtin_functions.c:1.642
Fixed bug in gethrvtime when cpu_time_t isn't 64 bit long. Fixed gethrtime to actually use the get_real_time function. Rev: src/builtin_functions.c:1.641
Fixed bug in gethrvtime when cpu_time_t isn't 64 bit long. Rev: src/builtin_functions.c:1.561
Added support for POSIX style timers using clock_gettime(3). Notably this fixes nice high resolution thread local cpu time and monotonic real time on reasonably modern Linux systems. Also added a few more pike constants about various characteristics of the cpu/real time interfaces in use. Rev: src/acconfig.h:1.155 Rev: src/builtin_functions.c:1.640 Rev: src/configure.in:1.1019 Rev: src/gc.c:1.290 Rev: src/gc.h:1.129 Rev: src/modules/system/system.c:1.182 Rev: src/pike_rusage.h:1.18 Rev: src/rusage.c:1.46 Rev: src/threads.c:1.254 Rev: src/threads.h:1.132
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
Improved the doc for glob() somewhat. Rev: src/builtin_functions.c:1.638
Implemented PIKE_T_ATTRIBUTE type nodes. Added push_type_attribute(). Added use and documentation of CompilationHandler()->handle_attribute_constant() when attributed parameters are encountered with constant values. low_new_check_call() now takes an svalue as the fourth argument. Fixed bug in get_first_argument_type() for anded function types. Added register_attribute_handler(). Added efuns __register_attribute_handler() and __handle_attribute_constant(). The efun __low_check_call() now takes a fourth argument. Rev: src/builtin_functions.c:1.637 Rev: src/pike_types.c:1.293 Rev: src/pike_types.h:1.105
The type of map() now seems to behave as intended. Rev: src/builtin_functions.c:1.636
More typeof(map) fixes. Rev: src/builtin_functions.c:1.635
Strengthened the type for map() some more... Rev: src/builtin_functions.c:1.634
Fixed broken type for search(). Detected by the new argument checker. Rev: src/builtin_functions.c:1.633
Fixed type for __low_check_call(). Rev: src/builtin_functions.c:1.632
NOTE: Changed argument order for __check_call(), and renamed it to __low_check_call(). Rev: src/builtin_functions.c:1.631
Fixed my_time_inverse (used by mktime e.g. when the timezone argument is used) to work better for time fields outside the valid bounds. Also improved overflow checks in it. Fixes [bug 4326 (#4326)]. Rev: src/builtin_functions.c:1.480 Rev: src/testsuite.in:1.603
Fixed my_time_inverse (used by mktime e.g. when the timezone argument is used) to work better for time fields outside the valid bounds. Also improved overflow checks in it. Fixes [bug 4326 (#4326)]. Rev: src/builtin_functions.c:1.560 Rev: src/testsuite.in:1.727
Fixed my_time_inverse (used by mktime e.g. when the timezone argument is used) to work better for time fields outside the valid bounds. Also improved overflow checks in it. Fixes [bug 4326 (#4326)]. Rev: src/builtin_functions.c:1.630 Rev: src/testsuite.in:1.773
Added flags argument to __check_call(). Rev: src/builtin_functions.c:1.629
Added efuns __check_call(), __get_return_type() and __get_first_arg_type(), which interface to the corresponding functions in pike_types.c. Rev: src/builtin_functions.c:1.628
Fixed refdoc prototype syntax Rev: src/builtin_functions.c:1.627
Added some more. Rev: src/builtin_functions.c:1.626
Somewhat stricter string types. Rev: src/builtin_functions.c:1.625
Added some optimizations for common cases to f_diff(). Rev: src/builtin_functions.c:1.624
Fixed NULL deref at out of memory in f_longest_ordered_sequence(). Found by Klocwork. Rev: src/builtin_functions.c:1.623
Removed redundant check. Rev: src/builtin_functions.c:1.622
Increased paranoia in efun::exit() with werror arguments. Found by Klocwork. Rev: src/builtin_functions.c:1.621
Increased paranoia. Rev: src/builtin_functions.c:1.620
Don't dereference NULL when DEBUG_MY_TIME_INVERSE is define. Rev: src/builtin_functions.c:1.619
Don't dereference NULL when DEBUG_MY_TIME_INVERSE is define. Rev: src/builtin_functions.c:1.559
Use thread safe variant of gmtime(3) if available. Rev: src/builtin_functions.c:1.618 Rev: src/configure.in:1.967
Removed some redundant preprocessor directives. Rev: src/builtin_functions.c:1.617
Fixed typo. Rev: src/builtin_functions.c:1.558
Backported replace_many() optimizations and bugfixes from Pike 7.7. Rev: src/builtin_functions.c:1.557
Minor optimization of find_longest_prefix. Rev: src/builtin_functions.c:1.616
optimize_replace() now actually uses single_string_replace_program. Rev: src/builtin_functions.c:1.615
Splitted replace_many() into several parts, so that the same code can be used by multi_string_replace_program(). optimize_replace() now supports a few more cases. Rev: src/builtin_functions.c:1.614
Extracted some loop-invariants in replace_many(). It's now ~82% as fast as the serial case in the benchmark (it used to be ~53%). Rev: src/builtin_functions.c:1.613
replace_many() now actually works for zero-length strings... Rev: src/builtin_functions.c:1.612
Now replace_many() seems to actually work again... Rev: src/builtin_functions.c:1.611
replace_many() et al now uses generic_find_binary_prefix(). Rev: src/builtin_functions.c:1.610
Added FIXME. Rev: src/builtin_functions.c:1.609
Removed debug... Oops... Rev: src/builtin_functions.c:1.608
Rewrote find_longest_prefix() to not recurse. find_longest_prefix() now requires the prefix forest to be initialized before being called (this is now done by replace_many()). Added a few FIXME's about possible optimizations. Rev: src/builtin_functions.c:1.607
Added minor optimization to replace(). Added support for replace(string, array(string), string) ==> string. Rev: src/builtin_functions.c:1.606
Backport of hash_value() from 7.6. Rev: src/builtin_functions.c:1.479
Added some documentation about compilation handlers. Rev: src/builtin_functions.c:1.605 Rev: src/cpp.c:1.159
Added get_active_{compilation,error}_handler(). Rev: src/builtin_functions.c:1.604
Added _dump_program_tables(). Rev: src/builtin_functions.c:1.603
Made "time(0)" behave as one reasonably can expect, namely like "time()". Previously it behaved like "time(1)" and could return a too old timestamp. Rev: src/builtin_functions.c:1.602
Made "time(0)" behave as one reasonably can expect, namely like "time()". Previously it behaved like "time(1)" and could return a too old timestamp. Rev: src/builtin_functions.c:1.478
Made "time(0)" behave as one reasonably can expect, namely like "time()". Previously it behaved like "time(1)" and could return a too old timestamp. Rev: src/builtin_functions.c:1.556
Fixed typo in get_all_args(). Rev: src/builtin_functions.c:1.601
Some doc improvements. Rev: src/builtin_functions.c:1.600
Fixed various type errors for 64 bit architectures and other warnings. (Most are in harmless debug messages, but anyway..) Rev: src/array.c:1.181 Rev: src/backend.cmod:1.175 Rev: src/builtin_functions.c:1.599 Rev: src/code/bytecode.h:1.11 Rev: src/encode.c:1.228 Rev: src/gc.c:1.270 Rev: src/interpret_functions.h:1.184 Rev: src/las.c:1.364 Rev: src/modules/Image/image.c:1.222 Rev: src/modules/Parser/html.c:1.177 Rev: src/modules/_Charset/iso2022.c:1.38 Rev: src/modules/files/file.c:1.351 Rev: src/modules/files/sendfile.c:1.72 Rev: src/modules/spider/xml.c:1.75 Rev: src/modules/system/memory.c:1.34 Rev: src/object.c:1.267 Rev: src/peep.c:1.106 Rev: src/pike_types.c:1.247 Rev: src/post_modules/Shuffler/a_source_system_memory.c:1.12 Rev: src/post_modules/Shuffler/b_source_normal_file.c:1.14 Rev: src/program.c:1.588 Rev: src/rbtree.c:1.25 Rev: src/threads.c:1.244
Fixed various type errors for 64 bit architectures. (Most are in harmless debug messages, but anyway..) Rev: src/array.c:1.164 Rev: src/backend.cmod:1.146 Rev: src/builtin_functions.c:1.555 Rev: src/code/bytecode.h:1.11 Rev: src/encode.c:1.214 Rev: src/gc.c:1.257 Rev: src/interpret_functions.h:1.170 Rev: src/las.c:1.347 Rev: src/modules/Gmp/mpz_glue.c:1.162 Rev: src/modules/Image/encodings/xcf.c:1.49 Rev: src/modules/Parser/html.c:1.173 Rev: src/modules/files/file.c:1.321 Rev: src/modules/files/sendfile.c:1.70 Rev: src/modules/spider/xml.c:1.71 Rev: src/object.c:1.257 Rev: src/peep.c:1.99 Rev: src/pike_types.c:1.236 Rev: src/post_modules/Shuffler/a_source_system_memory.c:1.11 Rev: src/program.c:1.566 Rev: src/svalue.c:1.195 Rev: src/threads.c:1.238
Perhaps this is better. Rev: src/builtin_functions.c:1.598
Fixed a warning Rev: src/builtin_functions.c:1.597
A couple type fixes. Rev: src/builtin_functions.c:1.477 Rev: src/encode.c:1.188
Fixed compat for the error reporting in the last backport. Rev: src/builtin_functions.c:1.476
Added string width sanity check to utf8_to_string. Rev: src/builtin_functions.c:1.596
Do not decode non-shortest forms in utf8_to_string, for security reasons and unicode 3.1 compliance. Rev: src/builtin_functions.c:1.554 Rev: src/testsuite.in:1.726
Do not decode non-shortest forms in utf8_to_string, for security reasons and unicode 3.1 compliance. Rev: src/builtin_functions.c:1.475
Optimized utf8_to_string a bit now when non-shortest forms aren't permitted. Rev: src/builtin_functions.c:1.595
Made string_to_utf8 and utf8_to_string unicode 3.1 compliant by not allowing chars outside the valid ranges and by not decoding non-shortest forms. Rev: src/builtin_functions.c:1.594 Rev: src/testsuite.in:1.753
Split large aggregate() calls into smaller segments. Fixes some of LysLysKOM:12979151. Rev: src/builtin_functions.c:1.593
Attempt 2 at fixing for AIX and some versions of gcc. Rev: src/builtin_functions.c:1.592
VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 doesn't like preprocessor directives inside macro expansions. Rev: src/builtin_functions.c:1.591
Changed return type for throw to mixed|void. Fixes [bug 3412 (#3412)]. Rev: src/builtin_functions.c:1.590
Fix some bugs in the type_field of arrays generated by map. Rev: src/builtin_functions.c:1.553
Fix some bugs in the type_field of arrays generated by map. Rev: src/builtin_functions.c:1.589
Handle the case when the function is zero better - false and destructed objects should also be treated as zeroes. Rev: src/builtin_functions.c:1.588
Pass a flag to lfun::destroy about the reason for the destruct. Rev: lib/modules/Object.pmod:1.1 Rev: src/builtin_functions.c:1.587 Rev: src/gc.c:1.262 Rev: src/object.c:1.265 Rev: src/object.h:1.90 Rev: src/program.c:1.586
Oops. Rev: src/builtin_functions.c:1.586
Fixed typo. Rev: src/builtin_functions.c:1.585
Various object subtype related fixes and FIXME:s. Rev: src/array.c:1.178 Rev: src/backend.cmod:1.148 Rev: src/builtin_functions.c:1.584 Rev: src/cpp.c:1.157 Rev: src/error.c:1.143 Rev: src/interpret.c:1.360 Rev: src/iterators.cmod:1.57 Rev: src/language.yacc:1.352
Fix for localtime() returning NULL in mktime(). Fixes [bug 3855 (#3855)]. Rev: src/builtin_functions.c:1.474
Fix for localtime() returning NULL in mktime(). Fixes [bug 3855 (#3855)]. Rev: src/builtin_functions.c:1.552
Fix for localtime() returning NULL in mktime(). Fixes [bug 3855 (#3855)]. Rev: src/builtin_functions.c:1.583
object_program() now knows about object subtypes. Rev: src/builtin_functions.c:1.582
Backported improved overflow handling in f_mktime to avoid regression. Rev: src/builtin_functions.c:1.551 Rev: src/configure.in:1.841 Rev: src/pike_int_types.h:1.3
Corrected the last check-in. Rev: src/builtin_functions.c:1.581
Corrected the last check-in. Rev: src/builtin_functions.c:1.550
Corrected f_mktime for some combinations of HAVE_MKTIME, HAVE_GMTIME and HAVE_LOCALTIME. Make the timezone correction even when my_time_inverse is used with localtime as replacement for gmtime. Disabled the "fix" for the allegedly broken Linux mktime(3) since the fix itself is broken. Rev: src/builtin_functions.c:1.580
Corrected f_mktime for some combinations of HAVE_MKTIME, HAVE_GMTIME and HAVE_LOCALTIME. Make the timezone correction even when my_time_inverse is used with localtime as replacement for gmtime. Disabled the "fix" for the allegedly broken Linux mktime(3) since the fix itself is broken. Rev: src/builtin_functions.c:1.473
Corrected f_mktime for some combinations of HAVE_MKTIME, HAVE_GMTIME and HAVE_LOCALTIME. Make the timezone correction even when my_time_inverse is used with localtime as replacement for gmtime. Disabled the "fix" for the allegedly broken Linux mktime(3) since the fix itself is broken. Rev: src/builtin_functions.c:1.549
Fixed overflow handling in f_mktime and my_time_inverse. Rev: src/builtin_functions.c:1.579
Handle overflow better in my_time_inverse. Rev: src/builtin_functions.c:1.472
Handle overflow better in my_time_inverse. Rev: src/builtin_functions.c:1.548
Fixed mktime() to work before 1970 even when the system mktime(3) doesn't. Fixed the gmtime inverse function to work for localtime too. It also maps to the closest valid time when given an invalid time, just like mktime(3) usually does. Rev: src/builtin_functions.c:1.578
Fixed mktime() to work before 1970 even when the system mktime(3) doesn't. Fixed the gmtime inverse function to work for localtime too. It also maps to the closest valid time when given an invalid time, just like mktime(3) usually does. Rev: src/builtin_functions.c:1.547
Fixed mktime() to work before 1970 even when the system mktime(3) doesn't. Fixed the gmtime inverse function to work for localtime too. It also maps to the closest valid time when given an invalid time, just like mktime(3) usually does. Rev: src/builtin_functions.c:1.471
mktime should treat UNDEFINED as missing argument for the optional arguments. Rev: src/builtin_functions.c:1.577
mktime should treat UNDEFINED as missing argument for the optional arguments. Rev: src/builtin_functions.c:1.546
Fixed the type for mktime (arg 7 is optional), and various other small fixes in that function. Rev: src/builtin_functions.c:1.470
Note about a case where total order might be assumed. Rev: src/builtin_functions.c:1.576
Added check for too large size to f_allocate. Rev: src/builtin_functions.c:1.575
Fix to make it work --with-long-long-int Rev: src/builtin_functions.c:1.574
Fixed typo found by Lance Dillon. Rev: src/builtin_functions.c:1.573
Missed a warning fix. Rev: src/builtin_functions.c:1.572
Fixed warning. Rev: src/builtin_functions.c:1.571 Rev: src/encode.c:1.220 Rev: src/modules/_Image_XFace/image_xface.c:1.23 Rev: src/modules/files/efuns.c:1.149 Rev: src/modules/files/file.c:1.331 Rev: src/post_modules/Bz2/libbzip2mod.cmod:1.17 Rev: src/svalue.c:1.202
Easy optimization. Rev: src/builtin_functions.c:1.570
Fix. Rev: src/builtin_functions.c:1.545
Show the error when the compile time replace() optimizer fails. Rev: src/builtin_functions.c:1.544
Show the error when the compile time replace() optimizer fails. Rev: src/builtin_functions.c:1.569
Show the error when the compile time replace() optimizer fails. Rev: src/builtin_functions.c:1.568
Show the error when the compile time replace() optimizer fails. Rev: src/builtin_functions.c:1.469 Rev: src/language.yacc:1.317 Rev: src/las.c:1.326 Rev: src/program.c:1.493 Rev: src/program.h:1.182
RCSID is not really useful anymore. Rev: src/array.c:1.169 Rev: src/backend.cmod:1.145 Rev: src/builtin_functions.c:1.567 Rev: src/callback.c:1.35 Rev: src/constants.c:1.54 Rev: src/cyclic.c:1.13 Rev: src/dlopen.c:1.74 Rev: src/docode.c:1.179 Rev: src/dynamic_buffer.c:1.25 Rev: src/dynamic_load.c:1.84 Rev: src/encode.c:1.219 Rev: src/error.c:1.133 Rev: src/fd_control.c:1.51 Rev: src/fdlib.c:1.66 Rev: src/fsort.c:1.23 Rev: src/gc.c:1.256 Rev: src/hashtable.c:1.15 Rev: src/interpret.c:1.353 Rev: src/iterators.cmod:1.55 Rev: src/language.yacc:1.342 Rev: src/las.c:1.349 Rev: src/lex.c:1.119 Rev: src/main.c:1.207 Rev: src/mapping.c:1.183 Rev: src/module.c:1.28 Rev: src/module_support.c:1.63 Rev: src/modules/_math/math.c:1.79 Rev: src/modules/files/datagram.c:1.9 Rev: src/modules/files/efuns.c:1.147 Rev: src/modules/files/file.c:1.329 Rev: src/modules/files/socket.c:1.91 Rev: src/modules/files/stat.c:1.30 Rev: src/modules/files/termios.c:1.24 Rev: src/modules/files/udp.c:1.70 Rev: src/modules/sprintf/sprintf.c:1.120 Rev: src/modules/system/memory.c:1.29 Rev: src/modules/system/passwords.c:1.44 Rev: src/modules/system/syslog.c:1.26 Rev: src/modules/system/system.c:1.171 Rev: src/multiset.c:1.88 Rev: src/object.c:1.257 Rev: src/opcodes.c:1.164 Rev: src/operators.c:1.195 Rev: src/peep.c:1.104 Rev: src/pike_memory.c:1.155 Rev: src/pike_types.c:1.237 Rev: src/port.c:1.78 Rev: src/program.c:1.568 Rev: src/rbtree.c:1.24 Rev: src/rusage.c:1.41 Rev: src/signal_handler.c:1.304 Rev: src/sscanf.c:1.163 Rev: src/stralloc.c:1.166 Rev: src/svalue.c:1.197 Rev: src/threads.c:1.240 Rev: src/version.c:1.142
More LP64 fixes. Rev: src/builtin_functions.c:1.566
Fix alloc overflow Rev: src/builtin_functions.c:1.565
master() may now return UNDEFINED. Rev: src/builtin_functions.c:1.564
Replaced werror stuff in f_exit with code that is shorter, faster, and actually works... Rev: src/builtin_functions.c:1.563
Fixed typo. Rev: src/builtin_functions.c:1.468
We can't get werror from the master, since it is private. Take it from builtin constants instead. Rev: src/builtin_functions.c:1.562
Weed out f_werror Rev: src/builtin_functions.c:1.561
werror() and write() implementation synced, code reduced Rev: lib/master.pike.in:1.356 Rev: src/builtin_functions.c:1.560 Rev: src/dumpmaster.pike:1.14 Rev: src/modules/files/efuns.c:1.146
werror() -> _werror() allows overriding werror() using loadsequence reordering Rev: lib/master.pike.in:1.355 Rev: src/builtin_functions.c:1.559 Rev: src/dumpmaster.pike:1.13 Rev: src/modules/files/efuns.c:1.145
Backported mktime() fixes from Pike 7.6. Rev: src/builtin_functions.c:1.467
Various --with-profiling fixes: * Now uses get_cpu_time() instead of gethrtime(). * Added PROFILING_DEBUG and corresponding DO_IF_PROFILING_DEBUG() (verbose). * Renamed Pike_interpreter.time_base to Pike_interpreter.unlocked_time. * Removed unused macro low_return_profiling(). * Profiling information is now updated by POP_PIKE_FRAME(). * Fixed various bugs causing negative self_time accounting. * Added PIKE_DEBUG checks verifying positive profiling accounting. * Removed unused field time_base from struct thread_state. Rev: src/apply_low.h:1.28 Rev: src/builtin_functions.c:1.558 Rev: src/global.h:1.99 Rev: src/interpret.c:1.349 Rev: src/interpret.h:1.152 Rev: src/interpret_functions.h:1.168 Rev: src/pike_threadlib.h:1.54 Rev: src/program.h:1.203 Rev: src/threads.h:1.128
12% optimization of has_prefix/has_suffix. These functions was the major callers of get_all_args by a factor 100 over other functions, which prompted for an optimization of get_all args. Solved by not calling it at all instead. Waste space, save cycles. Rev: src/builtin_functions.c:1.557
Backported fix for segfault in random_string with negative argument. Rev: src/builtin_functions.c:1.543
Fixed some fixmes Rev: src/builtin_functions.c:1.556
Fixed error message for replace(string,mapping) Rev: src/builtin_functions.c:1.555
Simplified type_field use Rev: src/builtin.cmod:1.159 Rev: src/builtin_functions.c:1.554 Rev: src/docode.c:1.175 Rev: src/modules/Image/polyfill.c:1.48 Rev: src/modules/files/efuns.c:1.143 Rev: src/modules/files/file.c:1.320 Rev: src/signal_handler.c:1.297
faster crypt. doc reformat Rev: src/builtin_functions.c:1.553
Rewrote allocate to use get_all_args (really testing cvs viewer) Rev: src/builtin_functions.c:1.552
Speed up upper_case with up to 20% when it contains 0xb5 or 0xff. Rev: src/builtin_functions.c:1.551
Fixed bug in f_exit Rev: src/builtin_functions.c:1.542
Fixed bug in f_exit Rev: src/builtin_functions.c:1.550
Fixed segfault in interleave_array Rev: src/builtin_functions.c:1.549
Some more. Rev: src/builtin_functions.c:1.548
Improved docs for combine_path. Rev: src/builtin_functions.c:1.547
Added stack check in replace(). Also fixed a leak that could occur if it runs out of memory. Rev: src/builtin_functions.c:1.546
Added stack check in replace(). Also fixed a leak that could occur if it runs out of memory. Rev: src/builtin_functions.c:1.545
Added stack check in replace(). Also fixed a leak that could occur if it runs out of memory. Rev: src/builtin_functions.c:1.466
A few more type_field related optimizations. Rev: src/builtin_functions.c:1.544
Another slight optimization of replace. Fixes for callablep on arrays. More documentation of interleave_array. Rev: src/builtin_functions.c:1.543
Very minor optimizations. Rev: src/builtin_functions.c:1.542
Updated destruct documentation. Rev: src/builtin_functions.c:1.541
MAPPING_LOOP -> NEW_MAPPING_LOOP Rev: src/builtin_functions.c:1.540 Rev: src/mapping.c:1.180 Rev: src/modules/Oracle/oracle.c:1.82 Rev: src/modules/Parser/html.c:1.172 Rev: src/modules/Perl/perlmod.c:1.36 Rev: src/modules/_Image_JPEG/image_jpeg.c:1.65 Rev: src/operators.c:1.189
Another adjustment in the spirit of Per's optimizations. Rev: src/builtin_functions.c:1.539
five times faster lower and uppercase for 7bit characters. Rev: src/builtin_functions.c:1.538
--without-new-multisets no longer builds and no one would really be interested in doing that anymore. Removing PIKE_NEW_MULTISETS Rev: src/acconfig.h:1.140 Rev: src/array.c:1.158 Rev: src/builtin.cmod:1.152 Rev: src/builtin_functions.c:1.537 Rev: src/configure.in:1.827 Rev: src/encode.c:1.211 Rev: src/gc.c:1.251 Rev: src/iterators.cmod:1.54 Rev: src/main.c:1.199 Rev: src/modules/Oracle/oracle.c:1.81 Rev: src/multiset.c:1.84 Rev: src/multiset.h:1.33 Rev: src/operators.c:1.188 Rev: src/svalue.c:1.192
security.h -> pike_security.h Rev: src/MANIFEST:1.4 Rev: src/array.c:1.157 Rev: src/builtin_functions.c:1.536 Rev: src/constants.c:1.51 Rev: src/interpret.c:1.348 Rev: src/iterators.cmod:1.53 Rev: src/main.c:1.198 Rev: src/mapping.c:1.179 Rev: src/modules/CommonLog/clf.c:1.16 Rev: src/modules/Perl/perlmod.c:1.35 Rev: src/modules/files/efuns.c:1.141 Rev: src/modules/files/file.c:1.317 Rev: src/modules/spider/spider.c:1.126 Rev: src/modules/system/nt.c:1.63 Rev: src/modules/system/syslog.c:1.23 Rev: src/modules/system/system.c:1.169 Rev: src/multiset.c:1.83 Rev: src/object.c:1.255 Rev: src/operators.c:1.187 Rev: src/program.c:1.561 Rev: src/security.c:1.46 Rev: src/signal_handler.c:1.295
Backported localtime() fix from Pike 7.5. Rev: src/builtin_functions.c:1.465
Fixed bug in localtime() and updated documentation. Rev: src/builtin_functions.c:1.535
Bugfix in my_timegm(). Rev: src/builtin_functions.c:1.534
map_array was not available from pike. The only compatibility concern here is if anyone called f_map_array, but that's not likely. Rev: src/builtin_functions.c:1.533 Rev: src/builtin_functions.h:1.30
Fixed doc typo Rev: src/builtin_functions.c:1.532
Some cleanup by using the optional args feature in get_all_args. Rev: src/builtin_functions.c:1.531
More stable operation of my_tm_diff(). Rev: src/builtin_functions.c:1.530
Oops, disabled some debug. Rev: src/builtin_functions.c:1.529
More my_tm_diff() fixes. Rev: src/builtin_functions.c:1.528
Some my_tm_diff() related fixes. Rev: src/builtin_functions.c:1.527
Oops, disabled some unneeded code. Rev: src/builtin_functions.c:1.526
mktime() now uses my_timegm() when an UTC offset has been specified. Rev: src/builtin_functions.c:1.525
Make it possible to write to stderr in an exit call. Very handy when writing scripts (as oppose to applications). Rev: src/builtin_functions.c:1.524
combine_path_amigaos(). Rev: src/builtin_functions.c:1.523 Rev: src/combine_path.h:1.13
Some type fixes. Used push_text where possible instead of push_string. Rev: src/builtin_functions.c:1.522
gmtime has no external depend. Also try to optimize has_index/has_value. Rev: src/builtin_functions.c:1.521
Synched the function headers. Only define _leak in rtldebug mode. Rev: src/builtin_functions.c:1.520 Rev: src/builtin_functions.h:1.29
(init|exit)_lex are now (init|exit)_opcodes. Rev: src/builtin_functions.c:1.519 Rev: src/main.c:1.185
Added a function hash_value to access the hashing method for mappings. Rev: src/builtin_functions.c:1.518
Made some limits for native ints and floats available in Pike. Xenofarm will tell if I've taken too much liberty in assuming which constants are available. ;) Rev: lib/modules/Float.pmod:1.1 Rev: lib/modules/Int.pmod:1.4 Rev: src/builtin_functions.c:1.517
There is no group_by. Rev: src/builtin_functions.c:1.516
Improved a bit of doc. Rev: src/builtin_functions.c:1.515
More accurate callablep, although not completely so. Rev: src/builtin_functions.c:1.514
Fixed bug in Function.defined when handling functions in inherited programs. Cope with functions in constants (i.e. subprograms). Rev: src/builtin_functions.c:1.513
Fixed bug in Function.defined when handling functions in inherited programs. Cope with functions in constants (i.e. subprograms). Rev: src/builtin_functions.c:1.464
More Mac OS X poll() fixes. Rev: src/builtin_functions.c:1.369 Rev: src/modules/HTTPLoop/timeout.c:1.8
More Mac OS X poll() fixes. Rev: src/builtin_functions.c:1.463 Rev: src/modules/HTTPLoop/timeout.c:1.11
Fixed poll(2) support for MacOS X. Rev: src/builtin_functions.c:1.512
Work (formerly) in progress; this method isn't actually exported yet. Rev: src/builtin_functions.c:1.511
Fixed insane complexity in _verify_internals. Rev: src/builtin_functions.c:1.510
Use ASSERT_SECURITY_ROOT Rev: src/builtin_functions.c:1.509 Rev: src/signal_handler.c:1.276
Bugfix in search(). Rev: src/builtin_functions.c:1.508
Helpful pointers. Rev: src/builtin_functions.c:1.507
{upp,low}er_case() now accept single characters. Rev: src/builtin_functions.c:1.506
Fixed a few typos. Rev: src/builtin_functions.c:1.505
predef::search() now supports lfun::search() and iterators. Rev: src/builtin_functions.c:1.504
Refdoc. Rev: src/builtin_functions.c:1.503
The macro MIN() is not always present... Rev: src/builtin_functions.c:1.462
Backported an important fix from 7.5, along with testsuite cases: Reworked the Foo::this implementation to work correctly with parent pointers through inherits etc. It's now done through a special identifier reference integer IDREF_MAGIC_THIS. Rev: bin/mktestsuite:1.22 Rev: src/builtin_functions.c:1.461 Rev: src/docode.c:1.162 Rev: src/interpret.c:1.293 Rev: src/interpret_functions.h:1.125 Rev: src/las.c:1.321 Rev: src/object.c:1.220 Rev: src/program.c:1.474 Rev: src/program.h:1.176 Rev: src/testsuite.in:1.589
Fixed typo Rev: src/builtin_functions.c:1.502 Rev: src/modules/system/system.c:1.153
Oops... Rev: src/builtin_functions.c:1.501
The macro MIN() is not always present... Rev: src/builtin_functions.c:1.500
Adapted this_object() to the fact that it doesn't always access the lexically surrounding parent objects. Rev: src/builtin_functions.c:1.499 Rev: src/interpret_functions.h:1.153
Use the symbolic names for the magic values in parent_offset. Rev: src/builtin_functions.c:1.498
Cleaned up some pointer handling. Rev: src/apply_low.h:1.19 Rev: src/backend.cmod:1.43 Rev: src/block_alloc.h:1.68 Rev: src/builtin_functions.c:1.497 Rev: src/cyclic.c:1.11 Rev: src/encode.c:1.190 Rev: src/fdlib.c:1.63 Rev: src/fsort_template.h:1.16 Rev: src/gc.c:1.220 Rev: src/interpret.c:1.307 Rev: src/interpret.h:1.142 Rev: src/interpret_functions.h:1.151 Rev: src/las.c:1.336 Rev: src/main.c:1.177 Rev: src/mapping.c:1.168 Rev: src/mapping.h:1.50 Rev: src/modules/Oracle/oracle.c:1.78 Rev: src/modules/_Charset/misc.c:1.14 Rev: src/multiset.c:1.74 Rev: src/object.c:1.238 Rev: src/object.h:1.79 Rev: src/pike_macros.h:1.37 Rev: src/pike_memory.c:1.146 Rev: src/pike_search.c:1.16 Rev: src/pike_search_engine2.c:1.9 Rev: src/pike_threadlib.h:1.47 Rev: src/pike_types.c:1.218 Rev: src/port.c:1.72 Rev: src/port.h:1.51 Rev: src/signal_handler.c:1.274 Rev: src/svalue.c:1.168 Rev: src/threads.c:1.219
Removed some almost useless PIKE_DEBUG checks. Rev: src/builtin_functions.c:1.496
Better argument checking in has_index and has_value. Rev: src/builtin_functions.c:1.460
Fixed TCC warnings Rev: src/builtin_functions.c:1.495 Rev: src/combine_path.h:1.12 Rev: src/peep.c:1.86 Rev: src/pike_types.c:1.216
Better argument checking in has_value and has_index. Rev: src/builtin_functions.c:1.494
Improved some range check error messages. Rev: src/array.c:1.147 Rev: src/builtin.cmod:1.136 Rev: src/builtin_functions.c:1.493 Rev: src/error.c:1.108 Rev: src/fd_control.c:1.48 Rev: src/opcodes.c:1.147 Rev: src/operators.c:1.179 Rev: src/stralloc.c:1.156
Fixed glob() to not be limited by the pike stack when filtering arrays. Rev: src/builtin_functions.c:1.492
Fixed glob() to not be limited by the pike stack when filtering arrays. Rev: src/builtin_functions.c:1.459
Fixed glob() to not be limited by the pike stack when filtering arrays. Rev: src/builtin_functions.c:1.368
Removed sort from __static_modules.Builtin. It is already an efun. Rev: src/builtin_functions.c:1.491
Improved type fields for arrays. Rev: src/array.c:1.143 Rev: src/backend.cmod:1.42 Rev: src/builtin.cmod:1.134 Rev: src/builtin_functions.c:1.490 Rev: src/encode.c:1.172 Rev: src/interpret.c:1.304 Rev: src/iterators.cmod:1.41 Rev: src/main.c:1.175 Rev: src/mapping.c:1.166 Rev: src/modules/files/efuns.c:1.127 Rev: src/modules/system/memory.c:1.24 Rev: src/object.c:1.236 Rev: src/opcodes.c:1.145 Rev: src/operators.c:1.177 Rev: src/post_modules/Unicode/unicode_module.cmod:1.7 Rev: src/post_modules/_ADT/circular_list.cmod:1.8 Rev: src/post_modules/_ADT/sequence.cmod:1.8
array_fix_bad_type_field renamed to array_fix_unfinished_type_field. Rev: src/builtin_functions.c:1.489
Use stack_pop_keep_top and stack_pop_2_elems_keep_top where possible. Rev: src/builtin_functions.c:1.488 Rev: src/interpret_functions.h:1.150 Rev: src/iterators.cmod:1.40 Rev: src/modules/files/stat.c:1.28 Rev: src/opcodes.c:1.144 Rev: src/operators.c:1.176
Made sort() stable since the impact hardly is measurable. (It's still unstable when plain types like small integers, strings and floats are sorted since stability doesn't have any observable effect then.) Rev: src/builtin_functions.c:1.487
Fixed erroneous documentation. Rev: src/builtin_functions.c:1.486
Updated object_program type and added some mysterious documentation Rev: src/builtin_functions.c:1.485
Be more precise about the epoch time. Rev: src/builtin_functions.c:1.484
Be more precise about the epoch time. Rev: src/builtin_functions.c:1.458
Use @expr where more approrpiate than @tt Rev: lib/modules/ADT.pmod/Table.pmod:1.26 Rev: lib/modules/Crypto.pmod/aes.pike:1.2 Rev: lib/modules/Getopt.pmod:1.27 Rev: lib/modules/Parser.pmod/module.pmod:1.18 Rev: lib/modules/Protocols.pmod/DNS.pmod:1.72 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Query.pike:1.56 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Session.pike:1.11 Rev: lib/modules/Protocols.pmod/HTTP.pmod/module.pmod:1.37 Rev: lib/modules/Protocols.pmod/LDAP.pmod/client.pike:1.48 Rev: lib/modules/Protocols.pmod/Line.pmod:1.22 Rev: lib/modules/Protocols.pmod/SMTP.pmod:1.22 Rev: lib/modules/Sql.pmod/Sql.pike:1.64 Rev: lib/modules/Stdio.pmod/module.pmod:1.169 Rev: lib/modules/String.pmod/module.pmod:1.14 Rev: lib/modules/Tools.pmod/AutoDoc.pmod/ProcessXML.pmod:1.54 Rev: src/builtin.cmod:1.131 Rev: src/builtin_functions.c:1.483 Rev: src/cpp.c:1.117 Rev: src/dynamic_load.c:1.69 Rev: src/error.c:1.106 Rev: src/modules/DVB/dvb.c:1.19 Rev: src/modules/Gdbm/gdbmmod.c:1.24 Rev: src/modules/Gettext/gettext.c:1.15 Rev: src/modules/Gmp/mpf.cmod:1.25 Rev: src/modules/MIME/mime.c:1.37 Rev: src/modules/Mird/module.pmod.in:1.12 Rev: src/modules/Msql/msqlmod.c:1.25 Rev: src/modules/Mysql/mysql.c:1.71 Rev: src/modules/Mysql/result.c:1.29 Rev: src/modules/Yp/module.pmod.in:1.19 Rev: src/modules/_Charset/module.pmod.in:1.31 Rev: src/modules/_Crypto/arcfour.c:1.21 Rev: src/modules/_Crypto/cast.c:1.16 Rev: src/modules/_Crypto/des.c:1.28 Rev: src/modules/_Crypto/idea.c:1.22 Rev: src/modules/_Crypto/invert.c:1.17 Rev: src/modules/_Crypto/md2.c:1.17 Rev: src/modules/_Crypto/md4.c:1.6 Rev: src/modules/_Crypto/pipe.c:1.26 Rev: src/modules/_Crypto/rijndael.c:1.11 Rev: src/modules/_Crypto/sha.c:1.25 Rev: src/modules/_Ffmpeg/ffmpeg.c:1.17 Rev: src/modules/_math/math.c:1.60 Rev: src/modules/files/efuns.c:1.126 Rev: src/modules/files/file.c:1.267 Rev: src/modules/files/stat.c:1.27 Rev: src/modules/files/udp.c:1.43 Rev: src/modules/system/passwords.c:1.41 Rev: src/modules/system/system.c:1.142 Rev: src/operators.c:1.174 Rev: src/pike_search.c:1.15 Rev: src/post_modules/_ADT/circular_list.cmod:1.5 Rev: src/post_modules/_ADT/sequence.cmod:1.6 Rev: src/program.c:1.498 Rev: src/security.c:1.42 Rev: src/signal_handler.c:1.262
We are not building tpike, so this is not needed. Rev: src/Makefile.in:1.351 Rev: src/builtin_functions.c:1.482 Rev: src/builtin_functions_t.c:1.4(DEAD) Rev: src/dummy_ci.h:1.7(DEAD) Rev: src/las.c:1.335 Rev: src/las_t.c:1.4(DEAD) Rev: src/module.c:1.23 Rev: src/module_t.c:1.4(DEAD) Rev: src/peep.c:1.85 Rev: src/peep_t.c:1.4(DEAD)
Autodoc fix Rev: lib/7.2/modules/__default.pmod:1.16 Rev: src/builtin.cmod:1.128 Rev: src/builtin_functions.c:1.481 Rev: src/mapping.c:1.165 Rev: src/modules/Math/module.pmod.in:1.16 Rev: src/modules/_Crypto/cast.c:1.15 Rev: src/modules/_Crypto/crypto.c:1.55 Rev: src/modules/_math/math.c:1.59 Rev: src/modules/files/efuns.c:1.125 Rev: src/modules/files/file.c:1.265 Rev: src/multiset.c:1.70 Rev: src/operators.c:1.173 Rev: src/program.c:1.496 Rev: src/security.c:1.41
Copy OPT_EXTERNAL_DEPEND from mapped function in f_map(). Rev: src/builtin_functions.c:1.480
Copy OPT_EXTERNAL_DEPEND from mapped function in f_map(). Rev: src/builtin_functions.c:1.457
Improved dmalloc. Rev: src/apply_low.h:1.16 Rev: src/array.c:1.138 Rev: src/backend.cmod:1.38 Rev: src/bignum.c:1.34 Rev: src/block_alloc.h:1.63 Rev: src/builtin_functions.c:1.479 Rev: src/code/ia32.c:1.25 Rev: src/cpp.c:1.115 Rev: src/encode.c:1.169 Rev: src/error.c:1.102 Rev: src/gc.c:1.209 Rev: src/interpret.c:1.295 Rev: src/interpret.h:1.131 Rev: src/interpret_functions.h:1.141 Rev: src/iterators.cmod:1.35 Rev: src/las.c:1.330 Rev: src/mapping.c:1.163 Rev: src/modules/Image/orient.c:1.24 Rev: src/modules/Image/phase.h:1.6 Rev: src/modules/Java/jvm.c:1.60 Rev: src/modules/SANE/sane.c:1.17 Rev: src/modules/_Roxen/roxen.c:1.33 Rev: src/multiset.c:1.69 Rev: src/object.c:1.228 Rev: src/opcodes.c:1.143 Rev: src/operators.c:1.172 Rev: src/pike_types.c:1.211 Rev: src/post_modules/Shuffler/Shuffler.cmod:1.23 Rev: src/post_modules/Shuffler/a_source_pikestring.c:1.8 Rev: src/post_modules/Shuffler/a_source_system_memory.c:1.9 Rev: src/post_modules/Shuffler/b_source_normal_file.c:1.8 Rev: src/post_modules/Shuffler/c_source_stream.c:1.7 Rev: src/post_modules/Shuffler/d_source_pikestream.c:1.6 Rev: src/post_modules/Shuffler/e_source_block_pikestream.c:1.2 Rev: src/preprocessor.h:1.58 Rev: src/program.c:1.486 Rev: src/signal_handler.c:1.249 Rev: src/stralloc.c:1.153 Rev: src/stralloc.h:1.73 Rev: src/svalue.c:1.161 Rev: src/threads.c:1.211
Made hash() byte-order independant. Added hash_7_4() and 7.4::hash() for backward compatibility. Added simple_hashmem{1,2}() to implement the new hash(). Rev: lib/7.4/modules/__default.pmod:1.3 Rev: src/builtin_functions.c:1.478 Rev: src/pike_memory.c:1.139 Rev: src/pike_memory.h:1.43
Various minor things. Rev: src/builtin_functions.c:1.477 Rev: src/builtin_functions.h:1.23 Rev: src/configure.in:1.691 Rev: src/pike_memory.h:1.42
create_thread() is now truly a class... Rev: src/builtin_functions.c:1.476 Rev: src/encode.c:1.164 Rev: src/gc.c:1.208 Rev: src/interpret.c:1.290 Rev: src/interpret.h:1.127 Rev: src/modules/HTTPLoop/timeout.c:1.11 Rev: src/modules/files/file.c:1.254 Rev: src/pike_threadlib.h:1.30 Rev: src/threads.c:1.203 Rev: src/threads.h:1.124
Better names for the YES, NO and UNKNOWN flags to avoid clashes. Rev: src/acconfig.h:1.115 Rev: src/builtin_functions.c:1.475 Rev: src/configure.in:1.685 Rev: src/gc.c:1.206 Rev: src/modules/system/system.c:1.140 Rev: src/threads.c:1.201 Rev: src/threads.h:1.123
Reverted bogus fix. Rev: src/builtin_functions.c:1.474 Rev: src/gc.c:1.205
Bugfix. Rev: src/builtin_functions.c:1.473
Better error reporting from get_cpu_time and (pike) gethrvtime. Rev: src/builtin_functions.c:1.472 Rev: src/gc.c:1.202 Rev: src/pike_rusage.h:1.14 Rev: src/rusage.c:1.32
Oops, bugfix. Rev: src/builtin_functions.c:1.471
Documentation fixes. gethr{,v}time() now actually look at the argument. Rev: src/builtin_functions.c:1.470
Exclude the time spent in the gc from the measurements returned by gethrvtime. Rev: src/builtin_functions.c:1.469 Rev: src/gc.c:1.200 Rev: src/gc.h:1.98 Rev: src/threads.c:1.200 Rev: src/threads.h:1.122
Backported line info improvements from 7.5 since it can be a major bonus to have this when tracking down bugs: Provide line number info for C programs even when compiling without rtldebug, but strip off the path to the build tree. Let Function.defined return the line number info for the program when it's a C function that doesn't have any line info itself. Rev: src/Makefile.in:1.339 Rev: src/builtin_functions.c:1.456 Rev: src/program.c:1.468 Rev: src/program.h:1.172
Provide line number info for C programs even when compiling without rtldebug, but strip off the path to the build tree. Let Function.defined return the line number info for the program when it's a C function that doesn't have any line info itself. Rev: src/Makefile.in:1.345 Rev: src/builtin_functions.c:1.468 Rev: src/program.c:1.478 Rev: src/program.h:1.175
Fixed do_gc call. Rev: src/builtin_functions.c:1.467
Enabled some consistency checks in the gc when compiled without rtldebug (only activated on debug level 1 or higher). Always define _verify_internals to be able to use this. Made it possible to turn on trace messages for the gc only with trace(1,"gc"). This is the embryo of a facility based trace system. Still to do: Raise all the global trace levels to make room for gc only trace at level 1, and fix a framework for trace facilities. Rev: src/array.c:1.137 Rev: src/builtin.cmod:1.113 Rev: src/builtin_functions.c:1.466 Rev: src/gc.c:1.199 Rev: src/gc.h:1.97 Rev: src/mapping.c:1.162 Rev: src/multiset.c:1.68 Rev: src/object.c:1.218 Rev: src/program.c:1.477
Enabled some consistency checks in the gc when compiled without rtldebug (only activated on debug level 1 or higher). Always define _verify_internals to be able to use this. Made it possible to turn on trace messages for the gc only with trace(1,"gc") (intended to be compatible with a facility based trace system in 7.5). Rev: src/array.c:1.134 Rev: src/builtin.cmod:1.103 Rev: src/builtin_functions.c:1.455 Rev: src/gc.c:1.192 Rev: src/gc.h:1.94 Rev: src/mapping.c:1.158 Rev: src/multiset.c:1.61 Rev: src/object.c:1.213 Rev: src/program.c:1.467
Enabled some consistency checks in the gc when compiled without rtldebug (only activated on debug level 1 or higher). Always define _verify_internals to be able to use this. Made it possible to turn on trace messages for the gc only with trace(1,"gc"). Rev: src/array.c:1.108 Rev: src/builtin.cmod:1.31 Rev: src/builtin_functions.c:1.367 Rev: src/gc.c:1.152 Rev: src/gc.h:1.76 Rev: src/mapping.c:1.125 Rev: src/multiset.c:1.34 Rev: src/object.c:1.165 Rev: src/program.c:1.316
Fixed security check for next_object. Do not run the gc twice in verify_internals. Rev: src/builtin_functions.c:1.465
Fixed security check for next_object. Do not run the gc twice in verify_internals. Rev: src/builtin_functions.c:1.454
Some more work to get INT_TYPE long long to work: use INT_TYPE instead of INT32 when we use/make the Pike int type Use PRINTPIKEINT when we sprintf-format it Rev: src/builtin.cmod:1.109 Rev: src/builtin_functions.c:1.464 Rev: src/encode.c:1.162 Rev: src/global.h:1.78 Rev: src/language.yacc:1.313 Rev: src/las.c:1.322 Rev: src/las.h:1.60 Rev: src/pike_types.c:1.205 Rev: src/pike_types.h:1.84 Rev: src/threads.c:1.198
Switched to push_function and ref_push_function in a couple of places. Rev: src/builtin_functions.c:1.463 Rev: src/encode.c:1.161 Rev: src/interpret_functions.h:1.128
Removed f_rusage. (Nilsson has promised to add a compatibility wrapper using System.getrusage.) Rev: src/builtin_functions.c:1.462
Made gethrvtime use get_cpu_time, so now it always exists. Added doc for gethrtime and gethrvtime. Rev: src/builtin_functions.c:1.461
Added a function get_cpu_time that provides an interface for high resolution cpu time measurement. The clumsier internal_rusage is obsoleted by this. Also some minor fixes in get_pike_rusage. Rev: src/builtin_functions.c:1.460 Rev: src/gc.c:1.196 Rev: src/pike_rusage.h:1.11 Rev: src/rusage.c:1.25
Improved the gc strategy and made it configurable; see Pike.gc_parameters for details. Rev: src/backend.cmod:1.34 Rev: src/builtin.cmod:1.106 Rev: src/builtin_functions.c:1.459 Rev: src/gc.c:1.195 Rev: src/gc.h:1.95 Rev: src/interpret_functions.h:1.127 Rev: src/main.c:1.165
ISO-C §6.3.4. Rev: src/builtin_functions.c:1.458
Updated the doc about the return value from gc(). Rev: src/builtin_functions.c:1.457
Use the SIMPLE_ macros. Fixed droppings error in has_index and has_value. Rev: src/builtin_functions.c:1.456
Fixed hash_7_0 error messages. Rev: src/builtin_functions.c:1.455
Renamed rusage.h to pike_rusage.h to avoid name conflicts with system header files. Rev: src/builtin_functions.c:1.454 Rev: src/modules/system/system.c:1.134 Rev: src/pike_rusage.h:1.10 Rev: src/rusage.h:1.10(DEAD)
Use low_get_line and low_get_program_line in some places where the dwim:ey error strings just gets in the way. Rev: src/builtin_functions.c:1.453 Rev: src/opcodes.c:1.127
Allow arguments to be passed to the _gdb_breakpoint function. Rev: src/builtin_functions.c:1.452 Rev: src/error.c:1.95
Moved some debug functions to Debug. Updated sleep doc. Fixed describe_backtrace type. Rev: src/builtin_functions.c:1.451
Check avaiable stack in f_glob(). Rev: src/builtin_functions.c:1.450
Don't discard error messages when doing inherits etc. Rev: src/builtin_functions.c:1.449 Rev: src/docode.c:1.151 Rev: src/language.yacc:1.303 Rev: src/las.c:1.306 Rev: src/las.h:1.59
Even more mktime() fixes. Rev: src/builtin_functions.c:1.366