Branch: Tag:

2023-05-06

2023-05-06 13:56:12 by Tobias S. Josefowitz <tobij@tobij.de>

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.

2023-05-06 11:30:49 by Tobias S. Josefowitz <tobij@tobij.de>

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.

2023-05-06 10:37:27 by Tobias S. Josefowitz <tobij@tobij.de>

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.

2023-04-06

2023-04-06 10:26:22 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Use pike_strptime() to implement predef::strptime().

predef::strptime() should now exist on all platforms (ie including NT).

2023-03-03

2023-03-03 12:36:24 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler: Add format attribute to yywarning() and my_yyerror().

2023-01-30

2023-01-30 16:55:37 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2023-01-16

2023-01-16 14:07:29 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Build: Do not include <sys/poll.h> when <poll.h> exists.

Some libc's (eg musl) complain.

2023-01-12

2023-01-12 09:55:27 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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)).

2023-01-10

2023-01-10 17:30:36 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2023-01-10 11:16:20 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Fix excessive popping by strftime().

2023-01-10 09:49:36 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2023-01-03

2023-01-03 09:58:23 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2022-12-29

2022-12-29 09:43:03 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2022-12-27

2022-12-27 10:55:34 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Build [NT]: Make cl happy.

cl does not like preprocessor directives in macro arguments.

2022-10-18

2022-10-18 08:37:57 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2022-10-16

2022-10-16 09:37:49 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved type for aggregate_mapping().

2022-10-14

2022-10-14 11:43:36 by Chris Angelico <rosuav@gmail.com>

Fix a couple of docs typos

2022-09-29

2022-09-29 09:29:54 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved types for predef::indices() and predef::values().

2022-09-25

2022-09-25 08:23:20 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved type for predef::object_program().

2022-09-22

2022-09-22 09:58:31 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler [Typechecker]: Remove some redundant special cases.

Remove the compiler special cases for indices() and values()
as the type system already handles this.

2022-07-12

2022-07-12 15:07:03 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler [Typechecker]: Add function name field to call_state.

2022-07-10

2022-07-10 10:16:34 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved type for reverse().

2022-07-09

2022-07-09 08:53:18 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Pike: get_return_type() now supports the state mapping.

2022-07-08

2022-07-08 17:04:43 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Pike: Fixed type for low_check_call().

Also some code clean-up and typo fixes.

2022-07-08 11:04:51 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Pike: Support state mapping in low_check_call().

2022-07-06

2022-07-06 11:06:48 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge branch 'patches/bug10084'

* patches/bug10084:
EFUNs: Fix support for reverse() on subranges of strings.

2022-07-06 11:05:56 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge branch 'patches/bug10084' into 8.0

* patches/bug10084:
EFUNs: Fix support for reverse() on subranges of strings.

2022-07-06 11:04:27 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge branch 'patches/bug10084' into 7.8

* patches/bug10084:
EFUNs: Fix support for reverse() on subranges of strings.

2022-07-06 11:01:35 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Fix support for reverse() on subranges of strings.

Fixes #10084.

2022-06-22

2022-06-22 10:05:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Fix return type for predef::glob(array, string).

2022-06-17

2022-06-17 09:26:36 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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).

2022-06-14

2022-06-14 13:21:30 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Added Pike 8.0 compat variant of sscanf and array_sscanf().

2022-06-14 10:41:31 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2022-06-14 10:32:10 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Use the sscanf_input attribute in sscanf() and array_sscanf().

Fixes quite a few warnings.

2022-06-11

2022-06-11 08:51:08 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler [Typechecker]: Add support for a mapping to the call_state.

2022-06-10

2022-06-10 18:29:54 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2022-06-09

2022-06-09 13:56:55 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved type for predef::map().

2022-05-31

2022-05-31 09:11:13 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved types for predef::indices() and predef::values().

2022-05-18

2022-05-18 12:38:05 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Adjust type for predef::map() some more.

2022-05-13

2022-05-13 10:13:14 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Adjusted type for predef::map().

2022-05-10

2022-05-10 16:37:47 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: allocate() can not generate arrays with negative length...

2022-05-10 11:40:50 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved type for predef::allocate().

2022-05-07

2022-05-07 17:31:34 by Marcus Comstedt <marcus@mc.pp.se>

EFUNs: Fix return value of rows() on mapping

2022-04-14

2022-04-14 12:15:59 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Program: Fixed some warnings with respect to defined().

2022-03-17

2022-03-17 14:37:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler [Typechecker]: More fix_overloaded_type() fixes.

2022-03-17 12:48:59 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2022-03-09

2022-03-09 11:13:10 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge branch 'patches/support-mixed-in-count_memory'

* patches/support-mixed-in-count_memory:
GC: Support remaining types in Pike.count_memory().

2022-03-09 11:09:37 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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().

2022-03-09 11:02:38 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2022-03-07

2022-03-07 13:59:25 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved type for predef::indices().

2022-03-06

2022-03-06 13:44:59 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved type for predef::search().

2022-03-04

2022-03-04 09:40:51 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved type for predef::aggregate().

It now returns the correct type for the empty array.

2022-01-14

2022-01-14 11:33:06 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Fix type for filter().

2022-01-14 10:35:22 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved type for filter().

2021-11-12

2021-11-12 09:49:34 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Adjusted types for combine_path() et al.

2021-11-09

2021-11-09 10:20:46 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Improved types for basename() and dirname().

2021-09-12

2021-09-12 12:06:54 by Marcus Comstedt <marcus@mc.pp.se>

crypt: NUL-terminate the salt string

2021-09-12 12:01:52 by Marcus Comstedt <marcus@mc.pp.se>

crypt: NUL-terminate the salt string

2021-08-29

2021-08-29 14:11:45 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Stricter types for combine_path() et al.

2021-07-20

2021-07-20 11:11:52 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Doc: Fixed AutoDoc markup typo.

2021-07-18

2021-07-18 11:51:45 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Doc [Builtin.__master]: Document the class.

2021-07-13

2021-07-13 09:08:46 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Zap the length component of the return type for basename().

Fixes multiple warnings.

2021-07-10

2021-07-10 13:47:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Zap the length component of the return type for dirname().

Fixes multiple warnings.

2021-07-02

2021-07-02 20:42:55 by Tobias S. Josefowitz <tobij@tobij.de>

Merge branch 'security/decode_value' into 8.0

* security/decode_value:
decode_value(): Allow to restrict decoding to simple types

2021-07-02 20:42:19 by Tobias S. Josefowitz <tobij@tobij.de>

Merge branch 'security/decode_value'

* security/decode_value:
decode_value(): Allow to restrict decoding to simple types

2021-07-02 20:27:26 by Tobias S. Josefowitz <tobij@tobij.de>

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.

2021-06-29

2021-06-29 21:12:13 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Doc: Added some more doc about Pike.soft_cast().

2021-06-01

2021-06-01 10:40:23 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Runtime: Adjusted some more return types to include zero.

2021-05-01

2021-05-01 14:18:21 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Doc: Fix some documentation typos.

2021-04-14

2021-04-14 16:14:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler [Typechecker]: Updated type for aggregate_mapping().

Fixes several warnings.

2021-04-12

2021-04-12 08:48:12 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Use mallinfo2(3C) if available.

Fixes warnings on versions of Linux where mallinfo(3C) has
been deprecated.

2021-04-12 08:47:27 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge branch 'patches/memory-usage-mallinfo2'

* patches/memory-usage-mallinfo2:
EFUNs: Use mallinfo2(3C) if available.

2021-04-12 08:44:23 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Use mallinfo2(3C) if available.

Fixes warnings on versions of Linux where mallinfo(3C) has
been deprecated.

2021-03-22

2021-03-22 14:12:22 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler [Typechecker]: Added flags to pike_types_le().

2021-02-18

2021-02-18 17:07:27 by Arne Goedeke <el@laramies.com>

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.

2021-01-27

2021-01-27 20:50:05 by H William Welliver <william@welliver.org>

Program.annotations: invert recursion flag to make more sense for the default case.

2020-12-06

2020-12-06 11:02:56 by Arne Goedeke <el@laramies.com>

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.

2020-10-31

2020-10-31 15:55:59 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: Improved doc for search().

2020-10-22

2020-10-22 20:12:11 by Marcus Comstedt <marcus@mc.pp.se>

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.

2020-10-10

2020-10-10 17:56:27 by H William Welliver <william@welliver.org>

Program: add Program.annotations() for retrieving annotations defined on a program.

2020-08-14

2020-08-14 09:36:53 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2020-08-14 09:36:26 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2020-07-14

2020-07-14 13:01:16 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Stricter type for map().

The type for map() now validates that the arguments to
the callback funtion match the arguments to map().

2020-06-22

2020-06-22 11:51:40 by Stephen R. van den Berg <srb@cuci.nl>

Thread.Thread: Add gethrvtime().

2020-05-20

2020-05-20 19:12:41 by Martin Nilsson <nilsson@fastmail.com>

Fix compilation issue with f_gethrdtime without threads. Don't know if the result makes sense though.

2020-05-08

2020-05-08 08:44:32 by Henrik Grubbström (Grubba) <grubba@grubba.org>

C API: Export callablep().

2019-11-20

2019-11-20 19:13:40 by Henrik Grubbström (Grubba) <grubba@grubba.org>

LFUNs: Added lfun::_reverse().

This is a function that is called by reverse() to generate
a reversed object.

2019-08-14

2019-08-14 12:36:50 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: Updated type for predef::types().

2019-08-02

2019-08-02 09:02:25 by Henrik Grubbström (Grubba) <grubba@grubba.org>

decode_value: Initial support for disassembly-style debug output.

This is analogous to recent changes in encode_value().

2019-07-31

2019-07-31 07:55:20 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2019-05-12

2019-05-12 21:43:44 by Tobias S. Josefowitz <tobij@tobij.de>

EFUNs: Add deprecated_typep() efun.

2019-05-12 21:43:44 by Tobias S. Josefowitz <tobij@tobij.de>

EFUNs: Add typeof_identifier()

typeof_identifier(prog, identifier) returns the type of a named
identifier in the program.

2019-05-04

2019-05-04 13:04:23 by Arne Goedeke <el@laramies.com>

[utf8]: fixed handling of surrogate pairs

2019-05-04 09:12:19 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/master' into new_utf8

2019-04-26

2019-04-26 11:31:26 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2019-04-05

2019-04-05 18:20:43 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2019-04-03

2019-04-03 16:17:19 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2019-03-19

2019-03-19 12:46:54 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge branch 'patches/lyslyskom22891031'

* patches/lyslyskom22891031:
Runtime: Calling UNDEFINED now returns UNDEFINED.
EFUNs [callablep]: Updated to uncallable integers.

2019-03-19 12:44:57 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs [callablep]: Updated to uncallable integers.

Integers other than UNDEFINED are no longer callable.

2019-03-19 12:40:54 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge commit '4799249b074' into patches/lyslyskom22891031

* commit '4799249b074':
Only need to check cyclic for arrays.

2019-03-19 12:33:55 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge commit '722771973bd' into patches/lyslyskom22891031

* commit '722771973bd': (6177 commits)
Verify that callablep responses are aligned with reality.
...

2019-03-18

2019-03-18 22:27:31 by Tobias S. Josefowitz <tobij@tobij.de>

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.

2019-03-18 22:27:31 by Tobias S. Josefowitz <tobij@tobij.de>

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.

2019-03-15

2019-03-15 15:29:21 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug: Fixed type for dump_program_tables().

2019-03-14

2019-03-14 10:39:03 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge commit '2470270f500c728d10b8895314d8d8b07016e37b' into grubba/typechecker-automap

* commit '2470270f500c728d10b8895314d8d8b07016e37b': (18681 commits)
Removed the old typechecker.
...

2019-02-07

2019-02-07 15:02:50 by William Welliver <william@welliver.org>

Merge branch 'grubba/wop-local-variables-debug-info' into bill/debugger-concept

2019-02-07 09:51:52 by Henrik Grubbström (Grubba) <grubba@grubba.org>

WIP: Local variables debug info.

2019-02-07 09:04:57 by Henrik Grubbström (Grubba) <grubba@grubba.org>

WIP: Local variables debug info.

2019-02-06

2019-02-06 22:25:15 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Attempt to use thread-safe implementations of crypt(3C).

2019-02-06 22:25:15 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: Moved doc for {base,dir}name().

2019-02-06 22:25:14 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Check for signals after sleep().

2019-02-06 22:25:14 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2019-02-06 22:24:07 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs [Master]: get_active_{compilation,error}_handler() moved to master.

This is in preparation for moving all handler stuff to the master.

2019-02-06 22:22:42 by Henrik Grubbström (Grubba) <grubba@grubba.org>

LFUNs: Added magic lfun ::_annotations().

2019-02-06 22:17:42 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2019-02-06 22:15:43 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Fixed some argument handling bugs in annotations().

2019-02-06 18:53:39 by Henrik Grubbström (Grubba) <grubba@grubba.org>

WOP: Local variables debug info.

2019-02-02

2019-02-02 18:29:02 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Runtime: Extended low_get_line() with local variable info.

2019-01-26

2019-01-26 14:06:52 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: Moved doc for {base,dir}name().

2019-01-25

2019-01-25 15:36:11 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Attempt to use thread-safe implementations of crypt(3C).

2019-01-21

2019-01-21 12:58:28 by Chris Angelico <rosuav@gmail.com>

Fix a couple of docs typos

2019-01-21 12:57:32 by Chris Angelico <rosuav@gmail.com>

Fix a couple of docs typos

2019-01-17

2019-01-17 13:41:44 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2019-01-14

2019-01-14 16:24:04 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Check for signals after sleep().

2019-01-04

2019-01-04 14:33:17 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs [Master]: get_active_{compilation,error}_handler() moved to master.

This is in preparation for moving all handler stuff to the master.

2018-12-19

2018-12-19 12:11:59 by Henrik Grubbström (Grubba) <grubba@grubba.org>

LFUNs: Added magic lfun ::_annotations().

2018-12-13

2018-12-13 10:51:08 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2018-12-04

2018-12-04 12:03:21 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Fixed some argument handling bugs in annotations().

2018-12-03

2018-12-03 02:23:15 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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().

2018-12-01

2018-12-01 14:28:36 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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().

2018-11-05

2018-11-05 13:30:42 by Martin Nilsson <nilsson@fastmail.com>

Don't send function name to bad_arg_error when it isn't needed.

2018-11-04

2018-11-04 16:11:11 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/master' into new_utf8

2018-11-03

2018-11-03 14:21:37 by Marcus Comstedt <marcus@mc.pp.se>

Merge remote-tracking branch 'origin/8.1' into gobject-introspection

2018-08-05

2018-08-05 11:40:00 by Marcus Comstedt <marcus@mc.pp.se>

Builtin: Range check tz in mktime_zone()

This makes sure that the tz indication (in hours) is not more than 2
digits.

2018-08-05 10:33:29 by Martin Nilsson <nilsson@fastmail.com>

Simplify error messages and avoid sending function name to get_all_args

2018-07-18

2018-07-18 12:43:50 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2018-06-15

2018-06-15 12:41:47 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2018-06-11

2018-06-11 14:09:57 by Henrik Grubbström (Grubba) <grubba@grubba.org>

System.TM: Added some internal doc.

2018-06-07

2018-06-07 16:26:59 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Removed some stack droppings from crypt().

2018-05-25

2018-05-25 12:20:44 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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().

2018-05-24

2018-05-24 09:46:36 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge branch 'patches/pike111' into 8.1

* patches/pike111:
EFUNs: Support encoding to UTF-8 encoded UTF-16 in string_to_utf8().

2018-05-24 09:40:32 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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).

2018-05-19

2018-05-19 09:13:29 by Arne Goedeke <el@laramies.com>

Merge branch 'tobij/inline_gc_markers' into 8.1

2018-05-18

2018-05-18 12:27:48 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2018-05-17

2018-05-17 15:33:50 by Henrik Grubbström (Grubba) <grubba@grubba.org>

EFUNs: Added validate_utf8().

This efun checks whether a string is valid UTF-8 or not.

2018-04-22

2018-04-22 20:50:43 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Efuns: Use utf8_string in string_to_utf8() and utf8_to_string().

2018-04-03

2018-04-03 17:45:24 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2018-02-25

2018-02-25 05:56:53 by Martin Nilsson <nilsson@fastmail.com>

Remove base_sp argument from bad_arg_error

2018-02-16

2018-02-16 15:55:05 by Martin Nilsson <nilsson@fastmail.com>

Improved type of Array.everynth

2018-02-15

2018-02-15 15:54:26 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Merge commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e' into patches/pike63

* commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e': (19587 commits)
...

2018-02-15 11:58:36 by Martin Nilsson <nilsson@fastmail.com>

FALL THROUGH -> FALLTHRU to survive -Wimplicit-fallthrough=4.

2018-02-12

2018-02-12 22:22:42 by Marcus Comstedt <marcus@mc.pp.se>

Add more FALLTHRU directives where needed

2018-02-12 21:49:35 by Marcus Comstedt <marcus@mc.pp.se>

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.

2018-02-09

2018-02-09 12:05:48 by Stephen R. van den Berg <srb@cuci.nl>

Improve docs.

2018-02-09 11:54:50 by Stephen R. van den Berg <srb@cuci.nl>

Improve docs.

2018-02-03

2018-02-03 09:48:55 by Peter Bortas <bortas@gmail.com>

Merge branch '8.1' into peter/travis

2018-02-01

2018-02-01 11:02:18 by Martin Nilsson <nilsson@fastmail.com>

Accomodate for non-zero null.

2018-02-01 02:05:20 by Stephen R. van den Berg <srb@cuci.nl>

strptime: Init struct tm to zero.

2018-01-31

2018-01-31 19:13:26 by Stephen R. van den Berg <srb@cuci.nl>

strptime/strftime: Added at global level; rip out special strptime/strftime in Val.*.

2018-01-19

2018-01-19 10:12:26 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.find_all_clones(): Fixed off by one issue.

It now seems to work as intended also when include_subclasses is true.

2018-01-19 09:46:12 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.find_all_clones(): Fixed stack pollution.

Debug.find_all_clones() is an efun, so it must follow the
strict pike stack calling conventions.

2018-01-18

2018-01-18 14:49:45 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug: Added find_all_clones().

2018-01-12

2018-01-12 18:55:45 by Stephen R. van den Berg <srb@cuci.nl>

Restore part of AmigaOS support.

2018-01-12 12:42:47 by Stephen R. van den Berg <srb@cuci.nl>

Rip out final remains of OS2 and AmigaOS.

2018-01-12 12:11:05 by Stephen R. van den Berg <srb@cuci.nl>

Equvivalent and equivalent are not equivalent.

2018-01-12 12:09:30 by Stephen R. van den Berg <srb@cuci.nl>

Equvivalent and equivalent are not equivalent.

2018-01-11

2018-01-11 23:28:13 by Martin Nilsson <nilsson@fastmail.com>

We do not support OS/2

2017-12-31

2017-12-31 23:19:10 by Peter Bortas <bortas@gmail.com>

Merge remote-tracking branch 'origin/8.1' into peter/travis

2017-12-26

2017-12-26 10:54:41 by Stephen R. van den Berg <srb@cuci.nl>

mktime: Clarify docs.

2017-12-26 10:53:01 by Stephen R. van den Berg <srb@cuci.nl>

mktime: Clarify docs.

2017-12-26 09:43:57 by Martin Nilsson <nilsson@fastmail.com>

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.

2017-12-26 09:24:23 by Stephen R. van den Berg <srb@cuci.nl>

mktime: Got rid of (now unused) fname argument too.

2017-12-26 03:05:11 by Stephen R. van den Berg <srb@cuci.nl>

mktime: Improve timezone support, increase performance, bugfixes.

System.TM: Properly fixed, code reuse with mktime().

Extended testsuite for both.
Reduced memory footprint.

2017-12-26 00:10:57 by Martin Nilsson <nilsson@fastmail.com>

Got rid of args to mktime_zone error. Fixed use of uninitialized value.

2017-12-25

2017-12-25 09:41:15 by Stephen R. van den Berg <srb@cuci.nl>

System.TM: Properly fixed, code reuse with mktime().

2017-12-24

2017-12-24 02:26:50 by Stephen R. van den Berg <srb@cuci.nl>

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.

2017-12-24 01:46:04 by Stephen R. van den Berg <srb@cuci.nl>

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.

2017-12-23

2017-12-23 14:12:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2017-12-14

2017-12-14 15:45:01 by Stephen R. van den Berg <srb@cuci.nl>

mktime: Only need to clear memory once.

2017-12-14 15:40:03 by Stephen R. van den Berg <srb@cuci.nl>

mktime: Only need to clear memory once.

2017-12-13

2017-12-13 10:41:07 by Stephen R. van den Berg <srb@cuci.nl>

Daylight 'savings' spelling corrections.

2017-12-13 10:39:56 by Stephen R. van den Berg <srb@cuci.nl>

Daylight 'savings' spelling corrections.

2017-12-07

2017-12-07 10:57:53 by Stephen R. van den Berg <srb@cuci.nl>

mktime: Missing tm_gmtoff, minimal workaround fixed.

2017-12-07 03:06:41 by Stephen R. van den Berg <srb@cuci.nl>

mktime: Solaris does not have tm_gmtoff; added minimal workaround.

2017-12-06

2017-12-06 22:28:45 by Stephen R. van den Berg <srb@cuci.nl>

mktime: Normalisation normalised to <12 hours.

2017-12-06 22:06:08 by Stephen R. van den Berg <srb@cuci.nl>

mktime: Fast and simple normalisation.

2017-12-06 21:11:26 by Stephen R. van den Berg <srb@cuci.nl>

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).

2017-11-18

2017-11-18 10:13:14 by Arne Goedeke <el@laramies.com>

Interpreter: merge callsite_execute and callsite_return

2017-11-18 10:13:13 by Arne Goedeke <el@laramies.com>

map: use new callsite API

This avoids repeated function lookup and frame allocation and setup.

2017-11-18 10:13:13 by Arne Goedeke <el@laramies.com>

Interpreter: fixed return from trampoline frames

Calls to functions which created trampolines, the local variables were
popped from the stack too early.

2017-11-18 10:13:13 by Arne Goedeke <el@laramies.com>

Interpreter: merged callsite_set_args into callsite_init

2017-11-18 05:04:40 by Martin Nilsson <nilsson@fastmail.com>

Removed unused includes.

2017-11-11

2017-11-11 16:35:01 by Tobias S. Josefowitz <tobij@tobij.de>

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.

2017-11-07

2017-11-07 14:12:47 by Martin Nilsson <nilsson@fastmail.com>

Remove some more stuff.h that apparently were not tracked by dependencies.

2017-11-05

2017-11-05 15:53:18 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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().

2017-11-05 15:03:11 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Runtime: LFUN::destroy() has been renamed to _destruct().

Reflect the name change on some APIs.

2017-11-05 14:35:39 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler: Rename LFUN::destroy() to LFUN::_destruct().

As decided at Pike Conference 2017.

2017-11-04

2017-11-04 14:51:06 by Arne Goedeke <el@laramies.com>

Remove !SHARED_NODES

Pike with SHARED_NODES disabled did not work. By descision of the Pike
Conference it is removed.

2017-11-01

2017-11-01 13:53:30 by Stephen R. van den Berg <srb@cuci.nl>

time: Clarify and correct documentation.

2017-11-01 13:50:36 by Stephen R. van den Berg <srb@cuci.nl>

time: Clarify and correct documentation.

2017-10-14

2017-10-14 11:18:44 by Henrik Grubbström (Grubba) <grubba@grubba.org>

size_object(): Added some assertions.

Make Coverity happy...

Fixes [CID 1294650].

2017-10-11

2017-10-11 06:56:15 by Arne Goedeke <el@laramies.com>

utf8_to_string: make decoder reusable

This change makes it possible to reuse the decoder without creating
a pike string first.

2017-10-08

2017-10-08 11:53:17 by Arne Goedeke <el@laramies.com>

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.

2017-10-08 11:37:20 by Arne Goedeke <el@laramies.com>

utf8_to_string: implement 7bit fast path

Implement a fast path for the length calculation for 7 bit strings.

2017-08-10

2017-08-10 21:24:04 by Martin Nilsson <nilsson@fastmail.com>

Fix compilation issue with f_gethrdtime without threads. Don't know if the result makes sense though.

2017-05-24

2017-05-24 15:51:14 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: Minor clarification.

2017-04-02

2017-04-02 20:36:18 by Henrik Grubbström (Grubba) <grubba@grubba.org>

search: Fixed end of range condition.

Fixes testsuite failure.

2017-03-19

2017-03-19 15:41:09 by Arne Goedeke <el@laramies.com>

map: use new callsite API

This avoids repeated function lookup and frame allocation and setup.

2017-03-19 15:41:09 by Arne Goedeke <el@laramies.com>

Interpreter: fixed return from trampoline frames

Calls to functions which created trampolines, the local variables were
popped from the stack too early.

2017-03-19 15:41:09 by Arne Goedeke <el@laramies.com>

Interpreter: merged callsite_set_args into callsite_init

2017-03-19 15:41:09 by Arne Goedeke <el@laramies.com>

Interpreter: merge callsite_execute and callsite_return

2017-03-07

2017-03-07 17:47:25 by Arne Goedeke <el@laramies.com>

Interpreter: fixed return from trampoline frames

Calls to functions which created trampolines, the local variables were
popped from the stack too early.

2017-03-06

2017-03-06 08:24:46 by Arne Goedeke <el@laramies.com>

map: use new callsite API

This avoids repeated function lookup and frame allocation and setup.

2017-02-25

2017-02-25 18:15:23 by Arne Goedeke <el@laramies.com>

Revert "Revert "map: use new callsite API""

This reverts commit 3a1cd08558e320a6a60bf067b3f34ec4333a5b7b.

2017-02-24

2017-02-24 20:44:05 by Arne Goedeke <el@laramies.com>

Revert "map: use new callsite API"

This reverts commit ce175008a87794c2060124f0ee2dabef71f4d0da.

This optimization is broken until the unlink_previous_frame() code has
been updated.

2017-02-18

2017-02-18 10:48:49 by Arne Goedeke <el@laramies.com>

map: use new callsite API

This avoids repeated function lookup and frame allocation and setup.

2017-02-15

2017-02-15 12:04:42 by Henrik Grubbström (Grubba) <grubba@grubba.org>

search: Added end argument for the string and array cases.

2017-02-11

2017-02-11 13:26:27 by Arne Goedeke <el@laramies.com>

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%.

2017-02-11 11:09:32 by Arne Goedeke <el@laramies.com>

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%.

2016-12-10

2016-12-10 16:45:57 by Martin Nilsson <nilsson@fastmail.com>

Fixed crypt() to work on purpose and not just by accident.

2016-12-08

2016-12-08 18:20:31 by Martin Nilsson <nilsson@fastmail.com>

Calling crypt() now crypts a random string. Useful as a quick way of generating passwords.

2016-11-05

2016-11-05 10:03:49 by Martin Nilsson <nilsson@fastmail.com>

Export f_hash, not the compat version.

2016-10-28

2016-10-28 15:22:17 by Arne Goedeke <el@laramies.com>

string_to_utf8: use local variable

This avoid unneeded loads of 'out->str'.

2016-10-12

2016-10-12 17:19:29 by Martin Nilsson <nilsson@fastmail.com>

The start parameter to search() has no effect on mappings.

2016-10-12 13:42:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: Documented optional further args to search().

Also fixes the types for search() and lfun::_search().

2016-10-11

2016-10-11 14:47:18 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: Improved doc for search().

2016-09-11

2016-09-11 19:57:30 by Martin Nilsson <nilsson@fastmail.com>

Let's lower the paranoia and assume f_zero_type and f_search push integers.

2016-08-18

2016-08-18 12:30:43 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2016-07-25

2016-07-25 20:37:28 by Martin Nilsson <nilsson@fastmail.com>

Even more specific types of crypt in documentation.

2016-07-04

2016-07-04 19:18:32 by Martin Nilsson <nilsson@fastmail.com>

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.

2016-07-03

2016-07-03 10:41:29 by Arne Goedeke <el@laramies.com>

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.

2016-07-02

2016-07-02 09:21:27 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Efuns: Renamed hash_7_8() to hash_8_0() for consistency.

Also made the hash_*() types somewhat stricter.

2016-06-29

2016-06-29 13:00:50 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2016-06-24

2016-06-24 16:51:13 by Per Hedbor <ph@opera.com>

Added a new hash() function using siphash.

2016-06-24 09:49:17 by Per Hedbor <ph@opera.com>

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?

2016-06-14

2016-06-14 09:13:37 by Arne Goedeke <el@laramies.com>

f_map: reuse frame

2016-05-13

2016-05-13 12:44:53 by Per Hedbor <ph@opera.com>

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.

2016-05-09

2016-05-09 16:28:36 by Martin Nilsson <nilsson@fastmail.com>

LONGEST is just INT64, so use that instead.

2016-04-27

2016-04-27 18:04:47 by Martin Nilsson <nilsson@fastmail.com>

Added documentation of array as second argument to map().

2016-04-12

2016-04-12 17:01:37 by Arne Goedeke <el@laramies.com>

f_map: reuse frame

2016-04-08

2016-04-08 19:48:49 by Martin Nilsson <nilsson@fastmail.com>

Removed PTRDIFF_T_TO_LONG

2016-04-05

2016-04-05 21:52:37 by Martin Karlgren <marty@roxen.com>

Optimise Pike function calls from f_map by reusing the frame, if possible.

2016-03-12

2016-03-12 20:19:58 by Martin Nilsson <nilsson@fastmail.com>

Reduce copy and paste. No need to put the random function on the stack.

2016-03-12 19:03:37 by Martin Nilsson <nilsson@fastmail.com>

Take crypt salt from random().

2016-03-06

2016-03-06 20:54:00 by Martin Nilsson <nilsson@fastmail.com>

Move crypt prototype from global.h to port.h

2016-03-01

2016-03-01 11:49:04 by Henrik Grubbström (Grubba) <grubba@grubba.org>

GC [arrays]: Added do_gc_weak_array().

It is now possible to request a quick gc of an array with weak references.

2016-02-29

2016-02-29 21:55:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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].

2016-02-29 21:52:24 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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].

2016-02-29 14:46:05 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation [GC]: Fixed typo.

2016-02-29 14:45:11 by Henrik Grubbström (Grubba) <grubba@grubba.org>

GC [mappings]: Added do_gc_weak_mapping().

It is now possible to request a quick gc of a mapping with weak references.

2016-02-29 13:47:03 by Henrik Grubbström (Grubba) <grubba@grubba.org>

GC [mappings]: Added do_gc_weak_mapping().

It is now possible to request a quick gc of a mapping with weak references.

2016-02-12

2016-02-12 13:50:54 by Martin Nilsson <nilsson@fastmail.com>

Removed PTRDIFF_T_TO_LONG

2016-01-26

2016-01-26 21:08:15 by Martin Nilsson <nilsson@fastmail.com>

SIMPLE_TOO_FEW_ARGS_ERROR should be SIMPLE_WRONG_NUM_ARGS_ERROR since long ago. Replaced them and tighten up argument control in places.

2016-01-26 19:38:42 by Martin Nilsson <nilsson@fastmail.com>

SIMPLE_BAD_ARG_ERROR is only kept for compatibility, but we still had 500+ uses of it.

2016-01-18

2016-01-18 12:48:20 by Martin Nilsson <nilsson@fastmail.com>

Removed f_random[string,seed] from module API.

2016-01-18 00:07:22 by Martin Nilsson <nilsson@fastmail.com>

Make random_seed() a noop and deprecate.

2016-01-14

2016-01-14 22:48:26 by Martin Nilsson <nilsson@fastmail.com>

math.h is included from pike_float.h

2016-01-12

2016-01-12 18:09:27 by Per Hedbor <ph@opera.com>

inline is part of c99

We do have.. excessive amounts of inline, incidentally. :)

2015-12-14

2015-12-14 14:29:51 by Martin Nilsson <nilsson@fastmail.com>

Only need to check cyclic for arrays.

2015-12-12

2015-12-12 10:44:07 by Henrik Grubbström (Grubba) <grubba@grubba.org>

C API: Export callablep().

2015-11-16

2015-11-16 00:42:14 by Martin Nilsson <nilsson@fastmail.com>

Don't use 0 for max range in my_rand

2015-11-15

2015-11-15 00:34:36 by Martin Nilsson <nilsson@fastmail.com>

Moved the range limiting of random numbers into my_rand(64).

2015-10-17

2015-10-17 00:52:11 by Martin Nilsson <nilsson@fastmail.com>

Added PIKE_DEBUG around code that shouldn't happen.

2015-10-17 00:28:32 by Martin Nilsson <nilsson@fastmail.com>

Obsess less about if size_shift is 3.

2015-10-14

2015-10-14 18:49:19 by Martin Nilsson <nilsson@fastmail.com>

Removed Intel IA64 compiler specific DO_NOT_WARN.

2015-10-14 17:54:42 by Martin Nilsson <nilsson@opera.com>

Fixed warning.

2015-09-27

2015-09-27 04:27:07 by Martin Nilsson <nilsson@fastmail.com>

Ignore the mood of apcc

2015-08-22

2015-08-22 18:35:10 by Per Hedbor <ph@opera.com>

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). :)

2015-08-22 18:35:09 by Arne Goedeke <el@laramies.com>

Strings: correctly count bytes in strings

2015-08-22 18:35:09 by Arne Goedeke <el@laramies.com>

Strings: print string types in memory_usage()

2015-08-22 18:34:29 by Arne Goedeke <el@laramies.com>

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.

2015-08-22 18:32:00 by Arne Goedeke <el@laramies.com>

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.

2015-08-22 18:32:00 by Arne Goedeke <el@laramies.com>

Strings: global const strings

2015-08-22 00:15:23 by Martin Nilsson <nilsson@fastmail.com>

Use @rfc{@} autodoc syntax.

2015-08-18

2015-08-18 18:07:49 by Per Hedbor <ph@opera.com>

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). :)

2015-08-18 16:55:08 by Per Hedbor <ph@opera.com>

Merge branch 'arne/string_alloc' into 8.1

Conflicts:
src/backend.cmod
src/builtin.cmod
src/builtin_functions.c
src/stralloc.c

2015-08-02

2015-08-02 11:12:34 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Build: The declaration of my_rand() has moved to stuff.h.

Fixes quite a few warnings.

2015-08-01

2015-08-01 19:46:40 by Martin Nilsson <nilsson@fastmail.com>

Work for all random_string lengths.

2015-08-01 18:08:54 by Martin Nilsson <nilsson@fastmail.com>

Make random_string twice as fast when using rdrnd.

2015-06-26

2015-06-26 15:15:12 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: Some markup changes to some efuns.

Improves the documentation of indices(), values() and types().

2015-06-24

2015-06-24 11:55:36 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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).

2015-06-24 11:55:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

string_to_unicode: Support outputting UTF8LE.

Adds an optional second argument to string_to_unicode() to
specify the wanted byte order.

2015-06-23

2015-06-23 12:57:27 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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).

2015-06-23 12:54:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>

string_to_unicode: Support outputting UTF8LE.

Adds an optional second argument to string_to_unicode() to
specify the wanted byte order.

2015-06-18

2015-06-18 12:48:29 by Henrik Grubbström (Grubba) <grubba@grubba.org>

this_object(): Minor documentation fix.

2015-06-17

2015-06-17 16:57:42 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: Added reference to `==() from equal().

2015-06-17 16:56:17 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: Removed duplicate doc for hash_7_4().

Also fixes some obsolete documentation references.

2015-06-15

2015-06-15 15:14:44 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2015-06-15 15:14:18 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2015-06-15 15:06:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2015-06-14

2015-06-14 06:54:06 by Arne Goedeke <el@laramies.com>

f_map: reuse frame

2015-06-05

2015-06-05 11:49:55 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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).

2015-06-05 11:48:01 by Henrik Grubbström (Grubba) <grubba@grubba.org>

string_to_unicode: Support outputting UTF8LE.

Adds an optional second argument to string_to_unicode() to
specify the wanted byte order.

2015-06-05 08:56:57 by Arne Goedeke <el@laramies.com>

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

2015-06-05 08:19:54 by Arne Goedeke <el@laramies.com>

Fixed typo in previous commit

2015-06-05 07:55:03 by Arne Goedeke <el@laramies.com>

Fixed typo in previous commit

2015-06-05 07:07:12 by Arne Goedeke <el@laramies.com>

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

2015-06-05 07:06:51 by Arne Goedeke <el@laramies.com>

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

2015-06-02

2015-06-02 12:51:14 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added gethrdtime().

2015-06-01

2015-06-01 15:36:17 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added gethrdtime().

2015-06-01 15:34:03 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added gethrdtime().

2015-05-25

2015-05-25 15:33:02 by Martin Nilsson <nilsson@opera.com>

Removed trailing spaces.

2015-05-21

2015-05-21 17:27:08 by Tobias S. Josefowitz <tobij@tobij.de>

f_zero_type: cleanup

2015-05-21 17:26:33 by Tobias S. Josefowitz <tobij@tobij.de>

f_zero_type: cleanup

2015-05-21 17:23:53 by Tobias S. Josefowitz <tobij@tobij.de>

destructedp, zero_type: detect trampolines referencing destructed objects

2015-05-21 17:18:33 by Tobias S. Josefowitz <tobij@tobij.de>

destructedp, zero_type: detect trampolines referencing destructed objects

2015-05-21 17:17:06 by Tobias S. Josefowitz <tobij@tobij.de>

destructedp, zero_type: detect trampolines referencing destructed objects

2015-05-19

2015-05-19 18:05:25 by Martin Nilsson <nilsson@opera.com>

Changed two malloc to xcalloc.

2015-05-14

2015-05-14 13:31:29 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Array: Fixed NULL-dereference in uniq_array() on certain content.

Fixes SIGSEGV in String testsuite.

2015-05-14 10:36:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

equal() now regards all false values as equal.

Also updates the documentation somewhat.

2015-05-08

2015-05-08 15:10:07 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Builtins: Fixed lost reference in longest_ordered_sequence().

2015-05-07

2015-05-07 23:33:41 by Martin Nilsson <nilsson@opera.com>

Removed more stack-adjustment code from the rest of the non-efuns.

2015-05-06

2015-05-06 14:37:50 by Martin Nilsson <nilsson@opera.com>

Simplified malloc+memset with xcalloc

2015-04-30

2015-04-30 15:57:27 by Martin Nilsson <nilsson@opera.com>

Whitespace changes.

2015-04-30 15:50:14 by Martin Nilsson <nilsson@opera.com>

Always enable _gdb_breakpoint

2015-04-30 15:44:52 by Martin Nilsson <nilsson@opera.com>

Moved dump_backlog to Debug.

2015-04-30 15:19:26 by Martin Nilsson <nilsson@opera.com>

Moved gc_set_watch to Debug.

2015-04-30 15:18:28 by Martin Nilsson <nilsson@opera.com>

Moved describe to Debug.

2015-04-30 14:54:05 by Martin Nilsson <nilsson@opera.com>

Moved locate_references to Debug.

2015-04-29

2015-04-29 14:36:00 by Martin Nilsson <nilsson@opera.com>

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.

2015-04-23

2015-04-23 16:31:43 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Misc: Added some missing fall-through markers and breaks.

2015-04-10

2015-04-10 14:55:20 by Martin Nilsson <nilsson@opera.com>

Moved DEBUG_MALLOC code into _Debug.

2015-03-31

2015-03-31 14:50:48 by Per Hedbor <ph@opera.com>

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.

2015-03-31 07:15:07 by Per Hedbor <ph@opera.com>

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.

2015-03-16

2015-03-16 17:27:53 by Martin Nilsson <nilsson@opera.com>

Remove deprecated security system.

2015-03-16 00:37:45 by Martin Nilsson <nilsson@opera.com>

Moved _next, _prev and next_object to Debug.

2015-03-15

2015-03-15 02:32:53 by Martin Nilsson <nilsson@opera.com>

Moved _refs

2015-03-08

2015-03-08 02:32:27 by Martin Nilsson <nilsson@opera.com>

Moved map_all_objects

2015-03-07

2015-03-07 23:44:04 by Martin Nilsson <nilsson@opera.com>

Start moving debug code to the Debug module.

2014-12-06

2014-12-06 14:46:25 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation: 7.4::hash() is no more.

Use hash_7_4() instead.

2014-12-05

2014-12-05 15:01:31 by Martin Nilsson <nilsson@opera.com>

Fixed unused argument warning.

2014-12-04

2014-12-04 19:27:20 by Martin Nilsson <nilsson@opera.com>

Reuse the new type pike strings where possible and easy.

2014-12-04 19:27:20 by Martin Nilsson <nilsson@opera.com>

Shortened some error messages.

2014-12-04 19:27:18 by Per Hedbor <ph@opera.com>

Added F_UNDEFINEDP and F_DESTRUCTEDP.

These are the same as the functions with the same name, but lends
themselves to inlining.

2014-12-04 19:27:13 by Martin Nilsson <nilsson@opera.com>

Fix a crash.

2014-12-04 19:27:13 by Martin Nilsson <nilsson@opera.com>

hash_7_4 is not deprecated.

2014-12-04 19:27:09 by Martin Nilsson <nilsson@opera.com>

Remove Pike 7.0 support. We now only support post-2000 code.

2014-12-04 19:27:05 by Martin Nilsson <nilsson@opera.com>

Cap compatibility mode to lowest supported.

2014-12-04 19:26:53 by Per Hedbor <ph@opera.com>

Strengtened the return type of glob()

2014-12-04 19:26:42 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Build: Added lots of missing TYPEOF()s.

2014-12-04 19:26:38 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2014-12-04 19:26:31 by Martin Nilsson <nilsson@opera.com>

Unused defines.

2014-12-04 19:26:27 by Per Hedbor <ph@opera.com>

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. :)

2014-12-04 19:26:26 by Per Hedbor <ph@opera.com>

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.

2014-12-04 19:26:26 by Per Hedbor <ph@opera.com>

Added string_filter_non_unicode

This function replaces all non-unicode characters in a pike string
with 0xffea

2014-12-04 19:26:09 by Per Hedbor <ph@opera.com>

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.

2014-12-04 19:26:00 by Martin Nilsson <nilsson@opera.com>

Free takes void* and doesn't need any cast anymore.

2014-12-04 19:25:46 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Internals: Increase visibility of f___get_first_arg_type().

It can be useful from other C-level code.

2014-12-04 19:25:45 by Martin Nilsson <nilsson@opera.com>

Stronger type for random_string

2014-12-04 19:25:27 by Martin Nilsson <nilsson@opera.com>

f_parse_format isn't used.

2014-12-04 19:25:26 by Per Hedbor <ph@opera.com>

4x faster random_string.

2014-12-04 19:25:26 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2014-12-04 19:25:24 by Per Hedbor <ph@opera.com>

Tagged some more arguments UNUSED

2014-12-04 19:25:22 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2014-12-04 19:24:57 by Martin Nilsson <nilsson@opera.com>

Fixed callablep for multi-level arrays.

2014-12-04 19:24:57 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Builtin: callablep() now supports cyclic arrays.

2014-12-04 19:24:56 by Per Hedbor <ph@opera.com>

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.

2014-12-04 19:24:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Document some previously undocumented symbols.

Most builtin stuff should now be documented.

2014-12-04 19:24:40 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.size_object: Added some doc for lfun::_size_object().

All lfuns should now be documented.

2014-12-04 19:24:10 by Per Hedbor <ph@opera.com>

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.

2014-12-04 19:24:07 by Per Hedbor <ph@opera.com>

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.

2014-12-04 19:24:07 by Per Hedbor <ph@opera.com>

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.

2014-12-04 19:24:06 by Per Hedbor <ph@opera.com>

Added an _object_size() function.

It tries to aproximate how large an object is in RAM.

2014-12-04 19:24:03 by Per Hedbor <ph@opera.com>

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.

2014-12-04 19:24:03 by Arne Goedeke <el@laramies.com>

Revert "propagate CLEAR_ON_EXIT flag in string operations"

This reverts commit c39be4e9c6787f7a03bdb7ab7f1506fdacaf972c.

2014-12-04 19:23:58 by Arne Goedeke <el@laramies.com>

propagate CLEAR_ON_EXIT flag in string operations

2014-12-04 19:23:46 by Martin Nilsson <nilsson@opera.com>

Removed auto bignum checks.

2014-12-04 19:23:45 by Martin Nilsson <nilsson@opera.com>

Rewrite Locale.Charset to Charset

2014-12-04 19:23:38 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added macro REFCOUNTED_TYPE().

This is to simplify renumbering of the types.

2014-12-04 19:23:37 by Tobias S. Josefowitz <tobij@tobij.de>

use string range information in has_prefix and has_suffix

2014-12-04 19:23:36 by Arne Goedeke <el@laramies.com>

use string range information to optimize utf8_to_string/string_to_utf8

2014-12-04 19:23:31 by Per Hedbor <ph@opera.com>

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).

2014-12-04 19:23:30 by Martin Nilsson <nilsson@opera.com>

More specific string types.

2014-12-04 19:23:24 by Arne Goedeke <el@laramies.com>

string_to_utf8: use macros to access string. much faster for long 7bit
strings

2014-12-04 19:23:16 by Chris Angelico <rosuav@gmail.com>

Runtime: Support OS/2 path conventions.

2014-12-04 19:23:02 by 0

Type fixes for compile warnings reported by clang.

2014-12-04 19:23:02 by 0

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.)

2014-11-24

2014-11-24 09:29:05 by Martin Nilsson <nilsson@opera.com>

Documentation update

2014-11-24 09:11:12 by Stephen R. van den Berg <srb@cuci.nl>

Reinstate legacy hash functions for the benefit of legacy network protocols.

2014-11-15

2014-11-15 13:47:20 by Stephen R. van den Berg <srb@cuci.nl>

Remove superfluous legacy compat support prior to 7.8.

2014-11-15 13:42:52 by Stephen R. van den Berg <srb@cuci.nl>

Remove superfluous legacy compat support prior to 7.8.

2014-10-22

2014-10-22 23:26:20 by Martin Nilsson <nilsson@opera.com>

Fixed warning.

2014-10-22 17:19:23 by Arne Goedeke <el@laramies.com>

Fix -Wglobbered warnings.

One of them was actually legitimate.

2014-10-22 17:18:28 by Arne Goedeke <el@laramies.com>

Fix -Wglobbered warnings.

One of them was actually legitimate.

2014-10-05

2014-10-05 19:00:27 by Martin Nilsson <nilsson@opera.com>

Removed f_sscanf_76 and f_sprintf_76.

2014-10-03

2014-10-03 16:16:13 by Per Hedbor <ph@opera.com>

Removed security system (on this branch)

2014-09-04

2014-09-04 15:57:43 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/8.0' into string_alloc

Conflicts:
src/stralloc.c

2014-09-04 00:11:38 by Martin Nilsson <nilsson@opera.com>

localtime, gmtime and mktime are C89 and 4.3BSD, so assume they exists

2014-09-03

2014-09-03 20:51:16 by Martin Nilsson <nilsson@opera.com>

memcmp is C89 and 4.3BSD

2014-09-03 18:59:35 by Martin Nilsson <nilsson@opera.com>

memmove is C89 and 4.3BSD

2014-09-03 18:41:39 by Martin Nilsson <nilsson@opera.com>

Don't cast memcpy void* arguments.

2014-09-03 18:14:04 by Martin Nilsson <nilsson@opera.com>

memcpy is C89 and 4.3BSD

2014-09-03 17:53:37 by Martin Nilsson <nilsson@opera.com>

memset is C89 and 4.3BSD

2014-08-28

2014-08-28 16:46:17 by Martin Nilsson <nilsson@opera.com>

Fixed direct cast calls.

2014-08-28 16:26:52 by Martin Nilsson <nilsson@opera.com>

On second thought, this is so obscure that we shouldn't probably do it at all.

2014-08-28 15:51:59 by Martin Nilsson <nilsson@opera.com>

Fixed the indexing-fallback-code of map on objects.

2014-08-28 15:14:14 by Martin Nilsson <nilsson@opera.com>

Use pike_sizeof instead if _sizeof.

2014-08-28 13:00:40 by Martin Nilsson <nilsson@opera.com>

Fixed direct call of cast.

2014-08-25

2014-08-25 16:31:51 by Martin Nilsson <nilsson@opera.com>

Consistent formatting of function name parameter to get_all_args

2014-08-24

2014-08-24 12:36:43 by Arne Goedeke <el@laramies.com>

Strings: print string types in memory_usage()

2014-08-23

2014-08-23 12:13:36 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/8.0' into string_alloc

2014-08-23 11:59:54 by Arne Goedeke <el@laramies.com>

Strings: correctly count bytes in strings

2014-08-23 09:26:20 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Runtime: Fixed some broken type checks.

NB: There's a difference between the C-types "int" and "INT_TYPE"...

2014-08-22

2014-08-22 19:59:05 by Arne Goedeke <el@laramies.com>

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.

2014-08-22 18:51:55 by Arne Goedeke <el@laramies.com>

Strings: global const strings

2014-08-22 18:02:24 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/8.0' into string_alloc

2014-08-22 14:47:02 by Martin Nilsson <nilsson@opera.com>

Improved type checking.

2014-08-18

2014-08-18 21:31:29 by Martin Nilsson <nilsson@opera.com>

Shortened some error messages.

2014-08-18 17:17:14 by Martin Nilsson <nilsson@opera.com>

Reuse the new type pike strings where possible and easy.

2014-08-18 13:12:34 by Per Hedbor <ph@opera.com>

Added F_UNDEFINEDP and F_DESTRUCTEDP.

These are the same as the functions with the same name, but lends
themselves to inlining.

2014-08-18 08:32:17 by Arne Goedeke <el@laramies.com>

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.

2014-08-15

2014-08-15 02:39:50 by Martin Nilsson <nilsson@opera.com>

hash_7_4 is not deprecated.

2014-08-15 02:23:34 by Martin Nilsson <nilsson@opera.com>

Fix a crash.

2014-08-11

2014-08-11 20:57:16 by Martin Nilsson <nilsson@opera.com>

Remove Pike 7.0 support. We now only support post-2000 code.

2014-08-10

2014-08-10 19:05:23 by Martin Nilsson <nilsson@opera.com>

Cap compatibility mode to lowest supported.

2014-07-22

2014-07-22 13:07:57 by Per Hedbor <ph@opera.com>

Strengtened the return type of glob()

2014-06-24

2014-06-24 14:20:58 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Build: Added lots of missing TYPEOF()s.

2014-06-18

2014-06-18 13:36:58 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2014-05-27

2014-05-27 22:53:21 by Martin Nilsson <nilsson@opera.com>

Unused defines.

2014-05-23

2014-05-23 16:00:17 by Per Hedbor <ph@opera.com>

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. :)

2014-05-22

2014-05-22 17:13:39 by Per Hedbor <ph@opera.com>

Added string_filter_non_unicode

This function replaces all non-unicode characters in a pike string
with 0xffea

2014-05-22 16:49:17 by Per Hedbor <ph@opera.com>

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.

2014-05-05

2014-05-05 10:30:58 by Per Hedbor <ph@opera.com>

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.

2014-04-27

2014-04-27 18:31:29 by Martin Nilsson <nilsson@opera.com>

Free takes void* and doesn't need any cast anymore.

2014-04-07

2014-04-07 18:50:00 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Internals: Increase visibility of f___get_first_arg_type().

It can be useful from other C-level code.

2014-04-05

2014-04-05 21:55:19 by Martin Nilsson <nilsson@opera.com>

Stronger type for random_string

2014-03-01

2014-03-01 02:27:22 by Martin Nilsson <nilsson@opera.com>

f_parse_format isn't used.

2014-02-28

2014-02-28 11:57:36 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2014-02-27

2014-02-27 15:05:18 by Per Hedbor <ph@opera.com>

4x faster random_string.

2014-02-26

2014-02-26 13:27:47 by Per Hedbor <ph@opera.com>

4x faster random_string.

2014-02-25

2014-02-25 14:37:13 by Per Hedbor <ph@opera.com>

Tagged some more arguments UNUSED

2014-02-24

2014-02-24 17:32:13 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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.

2014-01-05

2014-01-05 15:14:13 by Marcus Comstedt <marcus@mc.pp.se>

Merge branch '8.0' into gobject-introspection

2013-12-14

2013-12-14 21:57:42 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Builtin: callablep() now supports cyclic arrays.

2013-12-14 15:48:16 by Martin Nilsson <nilsson@opera.com>

Fixed callablep for multi-level arrays.

2013-12-11

2013-12-11 12:26:45 by Per Hedbor <ph@opera.com>

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.

2013-11-20

2013-11-20 21:35:07 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Document some previously undocumented symbols.

Most builtin stuff should now be documented.

2013-11-18

2013-11-18 20:08:04 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.size_object: Added some doc for lfun::_size_object().

All lfuns should now be documented.

2013-10-08

2013-10-08 14:24:30 by Per Hedbor <ph@opera.com>

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.

2013-09-20

2013-09-20 14:46:08 by Per Hedbor <ph@opera.com>

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.

2013-09-18

2013-09-18 10:29:23 by Per Hedbor <ph@opera.com>

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.

2013-09-16

2013-09-16 09:31:37 by Per Hedbor <ph@opera.com>

Added an _object_size() function.

It tries to aproximate how large an object is in RAM.

2013-08-25

2013-08-25 07:49:18 by Arne Goedeke <el@laramies.com>

Revert "propagate CLEAR_ON_EXIT flag in string operations"

This reverts commit c39be4e9c6787f7a03bdb7ab7f1506fdacaf972c.

2013-08-20

2013-08-20 14:29:08 by Per Hedbor <ph@opera.com>

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.

2013-08-09

2013-08-09 20:05:00 by Arne Goedeke <el@laramies.com>

propagate CLEAR_ON_EXIT flag in string operations

2013-06-21

2013-06-21 09:18:55 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/7.9' into pdf

2013-06-17

2013-06-17 21:40:00 by Martin Nilsson <nilsson@opera.com>

Removed auto bignum checks.

2013-06-17 14:15:28 by Martin Nilsson <nilsson@opera.com>

Rewrite Locale.Charset to Charset

2013-06-12

2013-06-12 11:43:49 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/7.9' into ba

2013-06-11

2013-06-11 23:50:34 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/7.9' into ba

2013-06-11 20:22:57 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added macro REFCOUNTED_TYPE().

This is to simplify renumbering of the types.

2013-06-10

2013-06-10 18:41:52 by Tobias S. Josefowitz <tobij@tobij.de>

use string range information in has_prefix and has_suffix

2013-06-09

2013-06-09 22:19:13 by Arne Goedeke <el@laramies.com>

use string range information to optimize utf8_to_string/string_to_utf8

2013-05-31

2013-05-31 17:03:44 by Per Hedbor <ph@opera.com>

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).

2013-05-28

2013-05-28 16:54:41 by Martin Nilsson <nilsson@opera.com>

More specific string types.

2013-05-17

2013-05-17 17:49:55 by Arne Goedeke <el@laramies.com>

string_to_utf8: use macros to access string. much faster for long 7bit
strings

2013-03-16

2013-03-16 11:10:36 by Chris Angelico <rosuav@gmail.com>

Runtime: Support OS/2 path conventions.

2012-12-30

2012-12-30 15:37:27 by 0

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.)

2012-12-29

2012-12-29 18:22:47 by 0

Type fixes for compile warnings reported by clang.

2012-10-20

2012-10-20 23:28:28 by Arne Goedeke <el@laramies.com>

replaced some more usages of pike internals

2012-10-06

2012-10-06 11:38:03 by Marcus Comstedt <marcus@mc.pp.se>

Merge branch '7.9' into gobject-introspection

2012-08-20

2012-08-20 15:10:38 by Martin Stjernholm <mast@lysator.liu.se>

Fixed --enable-dlmalloc on systems with struct mallinfo.

2012-08-20 15:06:07 by Martin Stjernholm <mast@lysator.liu.se>

Fixed --enable-dlmalloc on systems with struct mallinfo.

2012-07-01

2012-07-01 14:13:17 by Arne Goedeke <el@laramies.com>

silence

2012-06-15

2012-06-15 09:54:06 by Arne Goedeke <el@laramies.com>

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

2012-05-11

2012-05-11 11:06:34 by Henrik Grubbström (Grubba) <grubba@grubba.org>

has_prefix: Fixed broken handling of objects.

2012-05-11 11:05:50 by Henrik Grubbström (Grubba) <grubba@grubba.org>

has_prefix: Fixed broken handling of objects.

2012-04-02

2012-04-02 20:42:18 by Arne Goedeke <el@laramies.com>

add GJAlloc as a bundle

2012-04-01

2012-04-01 16:15:04 by Arne Goedeke <el@laramies.com>

Merge remote branch 'origin/7.9' into breaking_into_pieces

2012-03-14

2012-03-14 15:36:08 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Support dlmallinfo(). Fixes [bug 6275 (#6275)] for WIN32 some more.

2012-03-14 15:35:53 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Support dlmallinfo(). Fixes [bug 6275 (#6275)] for WIN32 some more.

2012-03-12

2012-03-12 15:08:14 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.memory_usage: Fixed typo.

2012-03-12 15:07:13 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.memory_usage: Fixed typo.

2012-03-12 12:27:53 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.memory_usage: Proper fix for compilation --without-debug.

2012-03-12 12:26:16 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.memory_usage: Proper fix for compilation --without-debug.

2012-03-09

2012-03-09 14:45:40 by Martin Nilsson <nilsson@opera.com>

Compilation workaround quickfix.

2012-03-08

2012-03-08 17:23:45 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.memory_usage(): Added fields for all current block_allocs.

2012-03-08 17:00:19 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.memory_usage(): Added information from mallinfo(3MALLOC).

2012-03-08 16:54:39 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.memory_usage(): Code cleanup and some doc updates.

2012-03-08 16:51:39 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.memory_usage(): Added information from mallinfo(3MALLOC).

2012-03-08 16:50:50 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.memory_usage(): Added fields for all current block_allocs.

2012-03-08 16:48:52 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Debug.memory_usage(): Code cleanup and some doc updates.

2012-02-23

2012-02-23 17:45:02 by Henrik Grubbström (Grubba) <grubba@grubba.org>

utf8_to_string(): Fixed bug in the surrogate decoder.

2012-02-23 12:55:30 by Henrik Grubbström (Grubba) <grubba@grubba.org>

utf8_to_string(): Added support for optionally decoding surrogates.

2012-02-19

2012-02-19 00:05:27 by Arne Goedeke <el@laramies.com>

pike_memory: new helper cmemset()

2012-02-17

2012-02-17 20:24:20 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed special case in type of map().

2012-01-12

2012-01-12 14:49:06 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler: The compiler and runtime are now INT_TYPE-clean wrt line numbers.

2011-12-15

2011-12-15 20:33:38 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Removed broken type for predef::indices().

2011-12-09

2011-12-09 20:46:18 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Type-checker: Send the proper flags to get_first_arg_type().

2011-12-09 19:05:46 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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)].

2011-11-24

2011-11-24 10:38:35 by Henrik Grubbström (Grubba) <grubba@grubba.org>

crypt(): Handle UNDEFINED as the second argument properly.

2011-11-20

2011-11-20 17:35:50 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed some minor typos.

2011-11-17

2011-11-17 20:12:22 by Tobias S. Josefowitz <tobij@tobij.de>

builtin_functions.c: suppress unfounded warnings

2011-11-16

2011-11-16 22:52:20 by Tobias S. Josefowitz <tobij@tobij.de>

Change in internal timehandling; ability to invalidate current_time.

2011-11-05

2011-11-05 15:02:44 by Martin Nilsson <nilsson@opera.com>

Removed $Id$.

2011-10-28

2011-10-28 13:04:55 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Atomic megapatch: Use svalue accessor macros everywhere.

2011-07-02

2011-07-02 10:44:27 by Martin Stjernholm <mast@lysator.liu.se>

And now, as an amazing bonus, it also survives BEING COMPILED!

2011-07-02 10:42:08 by Martin Stjernholm <mast@lysator.liu.se>

And now, as an amazing bonus, it also survives BEING COMPILED!

2011-07-02 10:41:07 by Martin Stjernholm <mast@lysator.liu.se>

And now, as an amazing bonus, it also survives BEING COMPILED!

2011-07-02 10:40:43 by Martin Stjernholm <mast@lysator.liu.se>

And now, as an amazing bonus, it also survives BEING COMPILED!

2011-07-02 10:39:41 by Martin Stjernholm <mast@lysator.liu.se>

And now, as an amazing bonus, it also survives BEING COMPILED!

2011-07-02 10:37:37 by Martin Stjernholm <mast@lysator.liu.se>

And now, as an amazing bonus, it also survives BEING COMPILED!

2011-07-02 10:35:56 by Martin Stjernholm <mast@lysator.liu.se>

And now, as an amazing bonus, it also survives BEING COMPILED!

2011-07-01

2011-07-01 00:37:57 by Martin Stjernholm <mast@lysator.liu.se>

And now, as an amazing bonus, it also survives BEING COMPILED!

2011-06-29

2011-06-29 12:59:17 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Removed Pike 7.2-isms from backport.

2011-06-29 12:59:06 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Removed Pike 7.2-isms from backport.

2011-06-29 12:58:44 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Removed Pike 7.2-isms from backport.

2011-06-29 12:51:37 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Survive crypt(3C) failing. Fixes [bug 6013 (#6013)].

2011-06-29 12:47:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Survive crypt(3C) failing. Fixes [bug 6013 (#6013)].

2011-06-29 12:45:05 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Survive crypt(3C) failing. Fixes [bug 6013 (#6013)].

2011-06-29 12:42:37 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Survive crypt(3C) failing. Fixes [bug 6013 (#6013)].

2011-06-29 12:40:25 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Survive crypt(3C) failing. Fixes [bug 6013 (#6013)].

2011-06-29 12:38:53 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Survive crypt(3C) failing. Fixes [bug 6013 (#6013)].

2011-06-29 12:35:43 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Survive crypt(3C) failing. Fixes [bug 6013 (#6013)].

2011-06-29 12:34:21 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Survive crypt(3C) failing. Fixes [bug 6013 (#6013)].

2011-05-15

2011-05-15 03:30:31 by Per Hedbor <ph@opera.com>

The compatibility hash functions and hashstr are only used in builtin_functions.c. Move them there.

2011-05-01

2011-05-01 00:02:02 by Per Hedbor <ph@opera.com>

Further glob optimizations: Now also optimized for 8bit format and 16 bit haystack.

2011-04-30

2011-04-30 23:42:52 by Per Hedbor <ph@opera.com>

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.

2011-04-25

2011-04-25 16:12:49 by Martin Stjernholm <mast@lysator.liu.se>

No more foreign_idents.

2011-04-25 16:12:40 by Martin Stjernholm <mast@lysator.liu.se>

No more foreign_idents.

2011-03-30

2011-03-30 22:52:37 by Martin Stjernholm <mast@lysator.liu.se>

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.

2011-03-07

2011-03-07 16:41:19 by Martin Nilsson <nilsson@opera.com>

A glob always matches itself, so return early if that is the case.

2011-01-26

2011-01-26 18:04:00 by Martin Stjernholm <mast@lysator.liu.se>

Update current_time returned by time(1) after sleeping.

2011-01-24

2011-01-24 17:55:45 by Martin Stjernholm <mast@lysator.liu.se>

Update current_time returned by time(1) after sleeping.

2011-01-24 17:05:05 by Martin Stjernholm <mast@lysator.liu.se>

Fixed overoptimization of time() calls.

time(0) is not side-effect free since it updates current_time which
affects later time(1) calls.

2011-01-24 17:01:35 by Martin Stjernholm <mast@lysator.liu.se>

Fixed overoptimization of time() calls.

time(0) is not side-effect free since it updates current_time which
affects later time(1) calls.

2011-01-17

2011-01-17 17:40:06 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added __get_type_attributes().

2011-01-15

2011-01-15 15:21:04 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added predef::types() in analogue with indices() and values().

Also adds lfun::_types() and ::_types().

2010-11-26

2010-11-26 11:57:14 by Per Hedbor <ph@opera.com>

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.

2010-11-25

2010-11-25 20:33:07 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Preparations for changing the identifier information for constants.

2010-11-15

2010-11-15 14:51:45 by Henrik Grubbström (Grubba) <grubba@grubba.org>

has_prefix() should not throw errors when the prefix is longer than the object supports.

2010-11-15 14:49:19 by Henrik Grubbström (Grubba) <grubba@grubba.org>

has_prefix() should not throw errors when the prefix is longer than the object supports.

2010-11-15 14:46:30 by Henrik Grubbström (Grubba) <grubba@grubba.org>

has_prefix() should not throw errors when the prefix is longer than the object supports.

2010-09-28

2010-09-28 16:06:35 by Martin Stjernholm <mast@lysator.liu.se>

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

2010-07-28

2010-07-28 22:51:00 by Martin Stjernholm <mast@lysator.liu.se>

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

2010-07-27

2010-07-27 16:46:06 by Martin Stjernholm <mast@lysator.liu.se>

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

2010-07-27 15:33:37 by Martin Stjernholm <mast@lysator.liu.se>

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

2010-07-19

2010-07-19 15:30:48 by Martin Stjernholm <mast@lysator.liu.se>

Added pike wrapper for debug_malloc_dump_references.

Rev: lib/modules/Debug.pmod/module.pmod:1.6
Rev: src/builtin_functions.c:1.702

2010-05-31

2010-05-31 14:46:16 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2010-05-31 14:34:25 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2010-05-31 13:59:05 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2010-05-19

2010-05-19 09:32:22 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Some autodoc updates regarding hash functions.

Rev: src/builtin_functions.c:1.700
Rev: src/program.c:1.777

2010-03-30

2010-03-30 11:54:56 by Peter Bortas <zino@lysator.liu.se>

Added more xrefs to the doc.

Rev: src/builtin_functions.c:1.699

2010-02-23

2010-02-23 14:37:22 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed some typos.

Rev: src/builtin_functions.c:1.698

2010-02-23 13:16:38 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added support for searching of objects to has_prefix().

Rev: src/builtin_functions.c:1.697

2010-02-18

2010-02-18 14:50:41 by Stephen R. van den Berg <srb@cuci.nl>

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

2009-11-11

2009-11-11 20:22:19 by Martin Stjernholm <mast@lysator.liu.se>

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

2009-11-11 20:05:07 by Martin Stjernholm <mast@lysator.liu.se>

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

2009-09-09

2009-09-09 13:01:45 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2009-08-26

2009-08-26 15:50:31 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Ensure that the elements on the stack are always valid.

Rev: src/builtin_functions.c:1.692

2009-08-26 12:25:57 by Martin Stjernholm <mast@lysator.liu.se>

Never put stuff on the freed part of the stack.

Rev: src/builtin_functions.c:1.691

2009-08-26 12:25:56 by Martin Stjernholm <mast@lysator.liu.se>

Never put stuff on the freed part of the stack.

Rev: src/builtin_functions.c:1.484

2009-08-26 12:25:56 by Martin Stjernholm <mast@lysator.liu.se>

Never put stuff on the freed part of the stack.

Rev: src/builtin_functions.c:1.564

2009-06-23

2009-06-23 16:34:18 by Henrik Grubbström (Grubba) <grubba@grubba.org>

_dump_program_tables() now supports an optional indent level.

Rev: src/builtin_functions.c:1.690

2009-04-01

2009-04-01 20:47:59 by Martin Stjernholm <mast@lysator.liu.se>

Fixed small doc typo.

Rev: src/builtin_functions.c:1.689

2008-10-12

2008-10-12 21:51:12 by Martin Stjernholm <mast@lysator.liu.se>

Updated the type for Pike.count_memory. Added a documentation FIXME.

Rev: src/builtin_functions.c:1.688

2008-09-26

2008-09-26 21:29:02 by Martin Nilsson <mani@lysator.liu.se>

Corrected some error messages and prevented crypt from not crypting.

Rev: src/builtin_functions.c:1.687

2008-09-14

2008-09-14 07:17:49 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed typo.

Rev: src/builtin_functions.c:1.153
Rev: src/modules/sprintf/sprintf.c:1.33

2008-08-28

2008-08-28 20:11:47 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2008-08-22

2008-08-22 15:33:50 by Henrik Grubbström (Grubba) <grubba@grubba.org>

reverse() on strings now releases the interpreter lock if the string is sufficiently large (currently >= 512KB).

Rev: src/builtin_functions.c:1.685

2008-07-09

2008-07-09 13:29:01 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2008-07-04

2008-07-04 16:06:47 by Martin Stjernholm <mast@lysator.liu.se>

Bugfix.

Rev: src/builtin_functions.c:1.683

2008-07-04 15:52:08 by Martin Stjernholm <mast@lysator.liu.se>

Removed some unused variables. Type hint optimization in f_glob on
arrays.

Rev: src/builtin_functions.c:1.682

2008-06-29

2008-06-29 20:42:59 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added doc about the deprecated functions hash_7_{0,4}().

Rev: src/builtin_functions.c:1.681

2008-06-29 20:21:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2008-06-29 12:05:54 by Martin Stjernholm <mast@lysator.liu.se>

Fixed some warnings.

Rev: src/builtin_functions.c:1.679

2008-06-28

2008-06-28 22:30:54 by Martin Nilsson <mani@lysator.liu.se>

Better types.

Rev: src/builtin_functions.c:1.678

2008-06-28 22:05:04 by Martin Stjernholm <mast@lysator.liu.se>

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

2008-06-26

2008-06-26 11:44:25 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Enable the stricter type for indices().
It now doesn't accept being called with zero (or void).

Rev: src/builtin_functions.c:1.676

2008-06-25

2008-06-25 16:35:31 by Martin Stjernholm <mast@lysator.liu.se>

Fix when gmtime gets an invalid timestamp on windows.

Rev: src/builtin_functions.c:1.675

2008-06-23

2008-06-23 20:56:52 by Martin Stjernholm <mast@lysator.liu.se>

Cpp directives doesn't always work in macro arguments.

Rev: src/builtin_functions.c:1.674

2008-06-18

2008-06-18 21:51:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2008-06-18 09:35:13 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Strengthened the type for indices() some more-

Rev: src/builtin_functions.c:1.672

2008-06-16

2008-06-16 21:46:35 by Martin Stjernholm <mast@lysator.liu.se>

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

2008-06-01

2008-06-01 11:19:58 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed some Autodoc mk II typos.

Rev: src/builtin_functions.c:1.670
Rev: src/program.c:1.716

2008-05-30

2008-05-30 15:19:03 by Martin Stjernholm <mast@lysator.liu.se>

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

2008-05-29

2008-05-29 20:08:43 by Martin Nilsson <mani@lysator.liu.se>

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

2008-05-29 10:11:16 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2008-05-28

2008-05-28 18:55:50 by Henrik Grubbström (Grubba) <grubba@grubba.org>

object_program() now works with subtyped objects where the inherit uses the parent.

Rev: src/builtin_functions.c:1.666

2008-05-19

2008-05-19 11:31:00 by Henrik Grubbström (Grubba) <grubba@grubba.org>

array_sscanf() doesn't have side-effects...

Rev: src/builtin_functions.c:1.665

2008-05-17

2008-05-17 22:48:33 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2008-05-17 14:10:02 by Marcus Comstedt <marcus@mc.pp.se>

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

2008-05-11

2008-05-11 02:39:07 by Martin Stjernholm <mast@lysator.liu.se>

Updated the type for Pike.count_memory.

Rev: src/builtin_functions.c:1.662

2008-05-11 02:02:50 by Martin Stjernholm <mast@lysator.liu.se>

Fixed some prototypes in dmalloc mode.

Rev: src/builtin_functions.c:1.661

2008-05-03

2008-05-03 15:29:26 by Martin Nilsson <mani@lysator.liu.se>

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

2008-05-02

2008-05-02 04:15:18 by Martin Stjernholm <mast@lysator.liu.se>

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

2008-05-01

2008-05-01 21:44:34 by Martin Stjernholm <mast@lysator.liu.se>

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

2008-05-01 20:35:18 by Martin Stjernholm <mast@lysator.liu.se>

Fixed a warning when LONG_MAX can't fit in INT32.

Rev: src/builtin_functions.c:1.657

2008-04-26

2008-04-26 19:04:26 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2008-04-23

2008-04-23 11:16:55 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Pike 7.4 doesn't have SIMPLE_ARG_ERROR().

Rev: src/builtin_functions.c:1.483

2008-04-23 07:37:04 by Martin Stjernholm <mast@lysator.liu.se>

Fixed some more cut-n-paste mistakes.

Rev: src/builtin.cmod:1.198
Rev: src/builtin_functions.c:1.655

2008-04-23 07:37:03 by Martin Stjernholm <mast@lysator.liu.se>

Fixed some more cut-n-paste mistakes.

Rev: src/builtin_functions.c:1.482

2008-04-23 07:37:03 by Martin Stjernholm <mast@lysator.liu.se>

Fixed some more cut-n-paste mistakes.

Rev: src/builtin.cmod:1.160
Rev: src/builtin_functions.c:1.563

2008-04-22

2008-04-22 18:32:54 by Martin Stjernholm <mast@lysator.liu.se>

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

2008-04-22 18:18:17 by Martin Stjernholm <mast@lysator.liu.se>

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

2008-04-22 18:17:55 by Martin Stjernholm <mast@lysator.liu.se>

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

2008-04-18

2008-04-18 19:57:13 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2008-04-14

2008-04-14 10:14:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2008-01-29

2008-01-29 20:10:06 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2008-01-26

2008-01-26 22:34:27 by Martin Stjernholm <mast@lysator.liu.se>

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

2008-01-23

2008-01-23 19:52:49 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2008-01-21

2008-01-21 11:44:48 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added some paranoia to optimize_replace().

Rev: src/builtin_functions.c:1.648

2008-01-13

2008-01-13 19:20:17 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed obscure bug in optimize_replace().

Rev: src/builtin_functions.c:1.647

2008-01-08

2008-01-08 17:19:29 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Removed some debug.

Rev: src/builtin_functions.c:1.646

2008-01-08 17:08:28 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Use CPU_TIME_TICKS_LOW in the preprocessor expressions.

Rev: src/builtin_functions.c:1.645

2008-01-05

2008-01-05 18:00:06 by Martin Nilsson <mani@lysator.liu.se>

Let's assume zero_type always return an integer.

Rev: src/builtin_functions.c:1.644

2007-11-20

2007-11-20 18:06:23 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Improved type for map().
Fixes [bug 4434 (#4434)] and [bug 4436 (#4436)].

Rev: src/builtin_functions.c:1.643

2007-11-18

2007-11-18 19:04:24 by Martin Nilsson <mani@lysator.liu.se>

Added undefinedp() and destructedp() as a more readable version of zero_type()

Rev: src/builtin_functions.c:1.642

2007-06-10

2007-06-10 19:03:11 by Martin Stjernholm <mast@lysator.liu.se>

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

2007-06-10 18:39:02 by Martin Stjernholm <mast@lysator.liu.se>

Fixed bug in gethrvtime when cpu_time_t isn't 64 bit long.

Rev: src/builtin_functions.c:1.561

2007-06-10 18:11:13 by Martin Stjernholm <mast@lysator.liu.se>

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

2007-06-02

2007-06-02 04:11:30 by Martin Bähr <mbaehr@email.archlab.tuwien.ac.at>

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

2007-05-26

2007-05-26 18:38:39 by Martin Stjernholm <mast@lysator.liu.se>

Improved the doc for glob() somewhat.

Rev: src/builtin_functions.c:1.638

2007-04-21

2007-04-21 20:08:26 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2007-04-21 12:36:03 by Henrik Grubbström (Grubba) <grubba@grubba.org>

The type of map() now seems to behave as intended.

Rev: src/builtin_functions.c:1.636

2007-04-20

2007-04-20 14:39:20 by Henrik Grubbström (Grubba) <grubba@grubba.org>

More typeof(map) fixes.

Rev: src/builtin_functions.c:1.635

2007-04-09

2007-04-09 15:57:40 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Strengthened the type for map() some more...

Rev: src/builtin_functions.c:1.634

2007-04-01

2007-04-01 18:28:39 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed broken type for search(). Detected by the new argument checker.

Rev: src/builtin_functions.c:1.633

2007-03-29

2007-03-29 16:39:42 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed type for __low_check_call().

Rev: src/builtin_functions.c:1.632

2007-03-29 15:59:21 by Henrik Grubbström (Grubba) <grubba@grubba.org>

NOTE: Changed argument order for __check_call(), and renamed it to __low_check_call().

Rev: src/builtin_functions.c:1.631

2007-03-29 15:38:20 by Martin Stjernholm <mast@lysator.liu.se>

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

2007-03-29 15:36:55 by Martin Stjernholm <mast@lysator.liu.se>

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

2007-03-29 15:36:54 by Martin Stjernholm <mast@lysator.liu.se>

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

2007-03-28

2007-03-28 15:29:47 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added flags argument to __check_call().

Rev: src/builtin_functions.c:1.629

2007-03-26

2007-03-26 11:13:11 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2007-03-03

2007-03-03 21:45:14 by Martin Nilsson <mani@lysator.liu.se>

Fixed refdoc prototype syntax

Rev: src/builtin_functions.c:1.627

2007-03-03 18:15:34 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added some more.

Rev: src/builtin_functions.c:1.626

2007-03-03 18:13:06 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Somewhat stricter string types.

Rev: src/builtin_functions.c:1.625

2007-01-15

2007-01-15 16:47:10 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added some optimizations for common cases to f_diff().

Rev: src/builtin_functions.c:1.624

2007-01-15 16:30:07 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed NULL deref at out of memory in f_longest_ordered_sequence().
Found by Klocwork.

Rev: src/builtin_functions.c:1.623

2007-01-15 15:51:39 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Removed redundant check.

Rev: src/builtin_functions.c:1.622

2007-01-15 15:50:38 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Increased paranoia in efun::exit() with werror arguments.
Found by Klocwork.

Rev: src/builtin_functions.c:1.621

2007-01-15 15:44:00 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Increased paranoia.

Rev: src/builtin_functions.c:1.620

2007-01-03

2007-01-03 23:10:45 by Peter Bortas <zino@lysator.liu.se>

Don't dereference NULL when DEBUG_MY_TIME_INVERSE is define.

Rev: src/builtin_functions.c:1.619

2007-01-03 23:10:17 by Peter Bortas <zino@lysator.liu.se>

Don't dereference NULL when DEBUG_MY_TIME_INVERSE is define.

Rev: src/builtin_functions.c:1.559

2006-07-02

2006-07-02 00:00:06 by Martin Stjernholm <mast@lysator.liu.se>

Use thread safe variant of gmtime(3) if available.

Rev: src/builtin_functions.c:1.618
Rev: src/configure.in:1.967

2006-03-25

2006-03-25 12:43:27 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Removed some redundant preprocessor directives.

Rev: src/builtin_functions.c:1.617

2006-03-16

2006-03-16 09:44:50 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed typo.

Rev: src/builtin_functions.c:1.558

2006-03-14

2006-03-14 17:39:59 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Backported replace_many() optimizations and bugfixes from Pike 7.7.

Rev: src/builtin_functions.c:1.557

2006-03-13

2006-03-13 11:55:05 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Minor optimization of find_longest_prefix.

Rev: src/builtin_functions.c:1.616

2006-03-11

2006-03-11 17:45:37 by Henrik Grubbström (Grubba) <grubba@grubba.org>

optimize_replace() now actually uses single_string_replace_program.

Rev: src/builtin_functions.c:1.615

2006-03-11 17:19:46 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2006-03-11 13:23:44 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2006-03-11 12:31:35 by Henrik Grubbström (Grubba) <grubba@grubba.org>

replace_many() now actually works for zero-length strings...

Rev: src/builtin_functions.c:1.612

2006-03-10

2006-03-10 19:59:22 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Now replace_many() seems to actually work again...

Rev: src/builtin_functions.c:1.611

2006-03-10 18:54:34 by Henrik Grubbström (Grubba) <grubba@grubba.org>

replace_many() et al now uses generic_find_binary_prefix().

Rev: src/builtin_functions.c:1.610

2006-03-10 11:59:20 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added FIXME.

Rev: src/builtin_functions.c:1.609

2006-03-10 09:08:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Removed debug... Oops...

Rev: src/builtin_functions.c:1.608

2006-03-09

2006-03-09 20:31:26 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2006-03-09 15:55:07 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added minor optimization to replace().
Added support for replace(string, array(string), string) ==> string.

Rev: src/builtin_functions.c:1.606

2006-02-02

2006-02-02 10:23:37 by Jonas Wallden <jonasw@roxen.com>

Backport of hash_value() from 7.6.

Rev: src/builtin_functions.c:1.479

2006-01-27

2006-01-27 20:29:28 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added some documentation about compilation handlers.

Rev: src/builtin_functions.c:1.605
Rev: src/cpp.c:1.159

2006-01-26

2006-01-26 21:12:43 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added get_active_{compilation,error}_handler().

Rev: src/builtin_functions.c:1.604

2006-01-20

2006-01-20 17:51:52 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Added _dump_program_tables().

Rev: src/builtin_functions.c:1.603

2006-01-11

2006-01-11 04:46:52 by Martin Stjernholm <mast@lysator.liu.se>

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

2006-01-11 04:46:52 by Martin Stjernholm <mast@lysator.liu.se>

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

2006-01-11 04:46:52 by Martin Stjernholm <mast@lysator.liu.se>

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

2005-11-19

2005-11-19 17:14:35 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed typo in get_all_args().

Rev: src/builtin_functions.c:1.601

2005-08-01

2005-08-01 15:31:25 by Martin Stjernholm <mast@lysator.liu.se>

Some doc improvements.

Rev: src/builtin_functions.c:1.600

2005-05-19

2005-05-19 22:35:40 by Martin Stjernholm <mast@lysator.liu.se>

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

2005-05-18

2005-05-18 12:36:54 by Martin Stjernholm <mast@lysator.liu.se>

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

2005-05-08

2005-05-08 11:15:24 by Martin Nilsson <mani@lysator.liu.se>

Perhaps this is better.

Rev: src/builtin_functions.c:1.598

2005-05-05

2005-05-05 20:42:02 by Martin Nilsson <mani@lysator.liu.se>

Fixed a warning

Rev: src/builtin_functions.c:1.597

2005-04-21

2005-04-21 15:45:06 by Martin Stjernholm <mast@lysator.liu.se>

A couple type fixes.

Rev: src/builtin_functions.c:1.477
Rev: src/encode.c:1.188

2005-04-12

2005-04-12 09:59:01 by Martin Stjernholm <mast@lysator.liu.se>

Fixed compat for the error reporting in the last backport.

Rev: src/builtin_functions.c:1.476

2005-04-02

2005-04-02 15:06:02 by Martin Stjernholm <mast@lysator.liu.se>

Added string width sanity check to utf8_to_string.

Rev: src/builtin_functions.c:1.596

2005-04-02 14:25:14 by Martin Stjernholm <mast@lysator.liu.se>

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

2005-04-02 14:25:13 by Martin Stjernholm <mast@lysator.liu.se>

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

2005-04-02 12:24:43 by Martin Stjernholm <mast@lysator.liu.se>

Optimized utf8_to_string a bit now when non-shortest forms aren't
permitted.

Rev: src/builtin_functions.c:1.595

2005-04-02 11:43:03 by Martin Stjernholm <mast@lysator.liu.se>

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

2005-03-16

2005-03-16 12:18:19 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Split large aggregate() calls into smaller segments.
Fixes some of LysLysKOM:12979151.

Rev: src/builtin_functions.c:1.593

2005-02-21

2005-02-21 12:33:52 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Attempt 2 at fixing for AIX and some versions of gcc.

Rev: src/builtin_functions.c:1.592

2005-02-18

2005-02-18 19:35:25 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2005-02-18 14:56:06 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Changed return type for throw to mixed|void.
Fixes [bug 3412 (#3412)].

Rev: src/builtin_functions.c:1.590

2005-02-10

2005-02-10 01:37:31 by Martin Nilsson <mani@lysator.liu.se>

Fix some bugs in the type_field of arrays generated by map.

Rev: src/builtin_functions.c:1.553

2005-02-10 00:19:31 by Martin Nilsson <mani@lysator.liu.se>

Fix some bugs in the type_field of arrays generated by map.

Rev: src/builtin_functions.c:1.589

2005-02-09

2005-02-09 16:43:36 by Martin Stjernholm <mast@lysator.liu.se>

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

2005-02-09 16:43:35 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-12-23

2004-12-23 13:44:44 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Oops.

Rev: src/builtin_functions.c:1.586

2004-12-23 13:44:26 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed typo.

Rev: src/builtin_functions.c:1.585

2004-12-22

2004-12-22 18:46:15 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2004-12-22 12:50:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fix for localtime() returning NULL in mktime().
Fixes [bug 3855 (#3855)].

Rev: src/builtin_functions.c:1.474

2004-12-22 12:48:56 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fix for localtime() returning NULL in mktime().
Fixes [bug 3855 (#3855)].

Rev: src/builtin_functions.c:1.552

2004-12-22 12:45:37 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fix for localtime() returning NULL in mktime().
Fixes [bug 3855 (#3855)].

Rev: src/builtin_functions.c:1.583

2004-12-18

2004-12-18 18:39:11 by Henrik Grubbström (Grubba) <grubba@grubba.org>

object_program() now knows about object subtypes.

Rev: src/builtin_functions.c:1.582

2004-12-16

2004-12-16 17:08:36 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-12-14

2004-12-14 16:26:28 by Martin Stjernholm <mast@lysator.liu.se>

Corrected the last check-in.

Rev: src/builtin_functions.c:1.581

2004-12-14 16:26:28 by Martin Stjernholm <mast@lysator.liu.se>

Corrected the last check-in.

Rev: src/builtin_functions.c:1.550

2004-12-14 16:22:01 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-12-14 16:22:00 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-12-14 16:22:00 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-12-14 15:07:46 by Martin Stjernholm <mast@lysator.liu.se>

Fixed overflow handling in f_mktime and my_time_inverse.

Rev: src/builtin_functions.c:1.579

2004-12-14 15:04:57 by Martin Stjernholm <mast@lysator.liu.se>

Handle overflow better in my_time_inverse.

Rev: src/builtin_functions.c:1.472

2004-12-14 15:04:57 by Martin Stjernholm <mast@lysator.liu.se>

Handle overflow better in my_time_inverse.

Rev: src/builtin_functions.c:1.548

2004-12-13

2004-12-13 19:37:31 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-12-13 19:37:31 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-12-13 19:37:30 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-12-13 19:12:34 by Martin Stjernholm <mast@lysator.liu.se>

mktime should treat UNDEFINED as missing argument for the optional
arguments.

Rev: src/builtin_functions.c:1.577

2004-12-13 19:12:34 by Martin Stjernholm <mast@lysator.liu.se>

mktime should treat UNDEFINED as missing argument for the optional
arguments.

Rev: src/builtin_functions.c:1.546

2004-12-08

2004-12-08 15:16:34 by Martin Stjernholm <mast@lysator.liu.se>

Fixed the type for mktime (arg 7 is optional), and various other small
fixes in that function.

Rev: src/builtin_functions.c:1.470

2004-11-27

2004-11-27 22:48:57 by Martin Stjernholm <mast@lysator.liu.se>

Note about a case where total order might be assumed.

Rev: src/builtin_functions.c:1.576

2004-11-14

2004-11-14 11:43:53 by Martin Stjernholm <mast@lysator.liu.se>

Added check for too large size to f_allocate.

Rev: src/builtin_functions.c:1.575

2004-11-14 03:42:21 by Alexander Demenshin <aldem-pike@aldem.net>

Fix to make it work --with-long-long-int

Rev: src/builtin_functions.c:1.574

2004-11-03

2004-11-03 01:26:30 by Lance Dillon <riffraff169@yahoo.com>

Fixed typo found by Lance Dillon.

Rev: src/builtin_functions.c:1.573

2004-10-16

2004-10-16 07:28:28 by Marcus Agehall <agehall@gmail.com>

Missed a warning fix.

Rev: src/builtin_functions.c:1.572

2004-10-15

2004-10-15 15:36:51 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2004-10-13

2004-10-13 23:56:17 by Martin Nilsson <mani@lysator.liu.se>

Easy optimization.

Rev: src/builtin_functions.c:1.570

2004-10-11

2004-10-11 17:08:43 by Martin Stjernholm <mast@lysator.liu.se>

Fix.

Rev: src/builtin_functions.c:1.545

2004-10-11 17:04:08 by Martin Stjernholm <mast@lysator.liu.se>

Show the error when the compile time replace() optimizer fails.

Rev: src/builtin_functions.c:1.544

2004-10-11 16:50:07 by Martin Stjernholm <mast@lysator.liu.se>

Show the error when the compile time replace() optimizer fails.

Rev: src/builtin_functions.c:1.569

2004-10-11 16:50:02 by Martin Stjernholm <mast@lysator.liu.se>

Show the error when the compile time replace() optimizer fails.

Rev: src/builtin_functions.c:1.568

2004-10-11 16:41:49 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-09-18

2004-09-18 20:50:57 by Martin Nilsson <mani@lysator.liu.se>

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

2004-09-18 18:14:31 by Henrik Grubbström (Grubba) <grubba@grubba.org>

More LP64 fixes.

Rev: src/builtin_functions.c:1.566

2004-09-17

2004-09-17 15:02:44 by Martin Nilsson <mani@lysator.liu.se>

Fix alloc overflow

Rev: src/builtin_functions.c:1.565

2004-07-14

2004-07-14 13:57:29 by Henrik Grubbström (Grubba) <grubba@grubba.org>

master() may now return UNDEFINED.

Rev: src/builtin_functions.c:1.564

2004-07-08

2004-07-08 13:22:42 by Marcus Comstedt <marcus@mc.pp.se>

Replaced werror stuff in f_exit with code that is shorter, faster, and actually works...

Rev: src/builtin_functions.c:1.563

2004-07-08 08:38:04 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed typo.

Rev: src/builtin_functions.c:1.468

2004-07-04

2004-07-04 20:47:06 by Martin Nilsson <mani@lysator.liu.se>

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

2004-07-04 20:11:04 by Stephen R. van den Berg <srb@cuci.nl>

Weed out f_werror

Rev: src/builtin_functions.c:1.561

2004-07-04 17:23:02 by Stephen R. van den Berg <srb@cuci.nl>

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

2004-07-04 16:28:23 by Stephen R. van den Berg <srb@cuci.nl>

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

2004-05-28

2004-05-28 13:09:46 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Backported mktime() fixes from Pike 7.6.

Rev: src/builtin_functions.c:1.467

2004-05-20

2004-05-20 20:13:38 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2004-05-18

2004-05-18 01:06:46 by Martin Nilsson <mani@lysator.liu.se>

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

2004-05-16

2004-05-16 09:57:52 by Martin Nilsson <mani@lysator.liu.se>

Backported fix for segfault in random_string with negative argument.

Rev: src/builtin_functions.c:1.543

2004-05-14

2004-05-14 18:18:42 by Martin Nilsson <mani@lysator.liu.se>

Fixed some fixmes

Rev: src/builtin_functions.c:1.556

2004-05-14 13:54:02 by Martin Nilsson <mani@lysator.liu.se>

Fixed error message for replace(string,mapping)

Rev: src/builtin_functions.c:1.555

2004-05-13

2004-05-13 23:32:52 by Martin Nilsson <mani@lysator.liu.se>

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

2004-05-13 16:31:06 by Martin Nilsson <mani@lysator.liu.se>

faster crypt. doc reformat

Rev: src/builtin_functions.c:1.553

2004-05-13 00:06:31 by Martin Nilsson <mani@lysator.liu.se>

Rewrote allocate to use get_all_args (really testing cvs viewer)

Rev: src/builtin_functions.c:1.552

2004-05-12

2004-05-12 23:16:16 by Martin Nilsson <mani@lysator.liu.se>

Speed up upper_case with up to 20% when it contains 0xb5 or 0xff.

Rev: src/builtin_functions.c:1.551

2004-05-09

2004-05-09 19:45:16 by Martin Nilsson <mani@lysator.liu.se>

Fixed bug in f_exit

Rev: src/builtin_functions.c:1.542

2004-05-09 19:44:59 by Martin Nilsson <mani@lysator.liu.se>

Fixed bug in f_exit

Rev: src/builtin_functions.c:1.550

2004-05-02

2004-05-02 21:35:54 by Martin Nilsson <mani@lysator.liu.se>

Fixed segfault in interleave_array

Rev: src/builtin_functions.c:1.549

2004-05-01

2004-05-01 15:32:01 by Martin Stjernholm <mast@lysator.liu.se>

Some more.

Rev: src/builtin_functions.c:1.548

2004-05-01 15:25:29 by Martin Stjernholm <mast@lysator.liu.se>

Improved docs for combine_path.

Rev: src/builtin_functions.c:1.547

2004-04-30

2004-04-30 17:19:42 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-04-30 17:19:40 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-04-30 17:19:40 by Martin Stjernholm <mast@lysator.liu.se>

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

2004-04-29

2004-04-29 21:25:59 by Martin Nilsson <mani@lysator.liu.se>

A few more type_field related optimizations.

Rev: src/builtin_functions.c:1.544

2004-04-29 19:23:20 by Martin Nilsson <mani@lysator.liu.se>

Another slight optimization of replace. Fixes for callablep on arrays. More documentation of interleave_array.

Rev: src/builtin_functions.c:1.543

2004-04-29 01:05:29 by Martin Nilsson <mani@lysator.liu.se>

Very minor optimizations.

Rev: src/builtin_functions.c:1.542

2004-04-19

2004-04-19 22:30:19 by Martin Nilsson <mani@lysator.liu.se>

Updated destruct documentation.

Rev: src/builtin_functions.c:1.541

2004-04-15

2004-04-15 00:12:21 by Martin Nilsson <mani@lysator.liu.se>

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

2004-04-13

2004-04-13 06:43:24 by Jonas Wallden <jonasw@roxen.com>

Another adjustment in the spirit of Per's optimizations.

Rev: src/builtin_functions.c:1.539

2004-04-12

2004-04-12 00:27:38 by Per Hedbor <ph@opera.com>

five times faster lower and uppercase for 7bit characters.

Rev: src/builtin_functions.c:1.538

2004-04-06

2004-04-06 15:37:56 by Martin Nilsson <mani@lysator.liu.se>

--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

2004-04-06 13:00:52 by Martin Nilsson <mani@lysator.liu.se>

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

2004-04-02

2004-04-02 13:07:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Backported localtime() fix from Pike 7.5.

Rev: src/builtin_functions.c:1.465

2004-04-01

2004-04-01 15:44:56 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed bug in localtime() and updated documentation.

Rev: src/builtin_functions.c:1.535

2004-03-30

2004-03-30 12:50:56 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Bugfix in my_timegm().

Rev: src/builtin_functions.c:1.534

2004-03-07

2004-03-07 02:19:09 by Martin Nilsson <mani@lysator.liu.se>

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

2004-03-02

2004-03-02 20:45:47 by Martin Nilsson <mani@lysator.liu.se>

Fixed doc typo

Rev: src/builtin_functions.c:1.532

2004-02-29

2004-02-29 03:41:37 by Martin Stjernholm <mast@lysator.liu.se>

Some cleanup by using the optional args feature in get_all_args.

Rev: src/builtin_functions.c:1.531

2004-02-03

2004-02-03 22:00:07 by Henrik Grubbström (Grubba) <grubba@grubba.org>

More stable operation of my_tm_diff().

Rev: src/builtin_functions.c:1.530

2004-02-03 09:07:40 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Oops, disabled some debug.

Rev: src/builtin_functions.c:1.529

2004-02-02

2004-02-02 20:45:19 by Henrik Grubbström (Grubba) <grubba@grubba.org>

More my_tm_diff() fixes.

Rev: src/builtin_functions.c:1.528

2004-02-02 19:11:13 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Some my_tm_diff() related fixes.

Rev: src/builtin_functions.c:1.527

2004-01-30

2004-01-30 19:45:42 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Oops, disabled some unneeded code.

Rev: src/builtin_functions.c:1.526

2004-01-30 16:17:57 by Henrik Grubbström (Grubba) <grubba@grubba.org>

mktime() now uses my_timegm() when an UTC offset has been specified.

Rev: src/builtin_functions.c:1.525

2004-01-11

2004-01-11 01:16:08 by Martin Nilsson <mani@lysator.liu.se>

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

2003-12-18

2003-12-18 21:22:24 by Marcus Comstedt <marcus@mc.pp.se>

combine_path_amigaos().

Rev: src/builtin_functions.c:1.523
Rev: src/combine_path.h:1.13

2003-12-06

2003-12-06 10:08:55 by Martin Nilsson <mani@lysator.liu.se>

Some type fixes. Used push_text where possible instead of push_string.

Rev: src/builtin_functions.c:1.522

2003-12-04

2003-12-04 22:23:58 by Martin Nilsson <mani@lysator.liu.se>

gmtime has no external depend. Also try to optimize has_index/has_value.

Rev: src/builtin_functions.c:1.521

2003-11-14

2003-11-14 11:00:44 by Martin Stjernholm <mast@lysator.liu.se>

Synched the function headers. Only define _leak in rtldebug mode.

Rev: src/builtin_functions.c:1.520
Rev: src/builtin_functions.h:1.29

2003-11-14 10:13:39 by Martin Stjernholm <mast@lysator.liu.se>

(init|exit)_lex are now (init|exit)_opcodes.

Rev: src/builtin_functions.c:1.519
Rev: src/main.c:1.185

2003-11-09

2003-11-09 23:59:14 by Martin Stjernholm <mast@lysator.liu.se>

Added a function hash_value to access the hashing method for mappings.

Rev: src/builtin_functions.c:1.518

2003-11-07

2003-11-07 21:28:07 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-11-07 18:06:30 by Martin Nilsson <mani@lysator.liu.se>

There is no group_by.

Rev: src/builtin_functions.c:1.516

2003-10-31

2003-10-31 15:09:24 by Martin Stjernholm <mast@lysator.liu.se>

Improved a bit of doc.

Rev: src/builtin_functions.c:1.515

2003-10-30

2003-10-30 19:33:26 by Martin Nilsson <mani@lysator.liu.se>

More accurate callablep, although not completely so.

Rev: src/builtin_functions.c:1.514

2003-10-19

2003-10-19 16:56:00 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-10-19 16:56:00 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-09-19

2003-09-19 12:28:56 by Jonas Wallden <jonasw@roxen.com>

More Mac OS X poll() fixes.

Rev: src/builtin_functions.c:1.369
Rev: src/modules/HTTPLoop/timeout.c:1.8

2003-09-19 12:27:51 by Jonas Wallden <jonasw@roxen.com>

More Mac OS X poll() fixes.

Rev: src/builtin_functions.c:1.463
Rev: src/modules/HTTPLoop/timeout.c:1.11

2003-09-11

2003-09-11 13:45:44 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed poll(2) support for MacOS X.

Rev: src/builtin_functions.c:1.512

2003-09-11 12:26:45 by Johan Sundström <oyasumi@gmail.com>

Work (formerly) in progress; this method isn't actually exported yet.

Rev: src/builtin_functions.c:1.511

2003-09-08

2003-09-08 19:51:33 by Martin Stjernholm <mast@lysator.liu.se>

Fixed insane complexity in _verify_internals.

Rev: src/builtin_functions.c:1.510

2003-09-06

2003-09-06 23:09:24 by Martin Nilsson <mani@lysator.liu.se>

Use ASSERT_SECURITY_ROOT

Rev: src/builtin_functions.c:1.509
Rev: src/signal_handler.c:1.276

2003-09-05

2003-09-05 15:50:22 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Bugfix in search().

Rev: src/builtin_functions.c:1.508

2003-09-05 12:36:22 by Johan Sundström <oyasumi@gmail.com>

Helpful pointers.

Rev: src/builtin_functions.c:1.507

2003-09-05 11:56:24 by Henrik Grubbström (Grubba) <grubba@grubba.org>

{upp,low}er_case() now accept single characters.

Rev: src/builtin_functions.c:1.506

2003-09-04

2003-09-04 16:00:29 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed a few typos.

Rev: src/builtin_functions.c:1.505

2003-09-04 15:03:11 by Henrik Grubbström (Grubba) <grubba@grubba.org>

predef::search() now supports lfun::search() and iterators.

Rev: src/builtin_functions.c:1.504

2003-08-20

2003-08-20 15:53:26 by Johan Sundström <oyasumi@gmail.com>

Refdoc.

Rev: src/builtin_functions.c:1.503

2003-08-19

2003-08-19 09:38:16 by Tomas Nilsson <tomas@roxen.com>

The macro MIN() is not always present...

Rev: src/builtin_functions.c:1.462

2003-08-18

2003-08-18 15:11:38 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-08-05

2003-08-05 19:11:24 by Martin Nilsson <mani@lysator.liu.se>

Fixed typo

Rev: src/builtin_functions.c:1.502
Rev: src/modules/system/system.c:1.153

2003-08-04

2003-08-04 16:23:29 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Oops...

Rev: src/builtin_functions.c:1.501

2003-08-04 15:39:38 by Henrik Grubbström (Grubba) <grubba@grubba.org>

The macro MIN() is not always present...

Rev: src/builtin_functions.c:1.500

2003-08-03

2003-08-03 02:34:46 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-08-02

2003-08-02 01:08:43 by Martin Stjernholm <mast@lysator.liu.se>

Use the symbolic names for the magic values in parent_offset.

Rev: src/builtin_functions.c:1.498

2003-06-30

2003-06-30 17:11:20 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-06-24

2003-06-24 20:27:19 by Martin Nilsson <mani@lysator.liu.se>

Removed some almost useless PIKE_DEBUG checks.

Rev: src/builtin_functions.c:1.496

2003-06-12

2003-06-12 20:43:32 by Martin Stjernholm <mast@lysator.liu.se>

Better argument checking in has_index and has_value.

Rev: src/builtin_functions.c:1.460

2003-06-11

2003-06-11 23:02:55 by Martin Nilsson <mani@lysator.liu.se>

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

2003-06-03

2003-06-03 18:45:51 by Martin Stjernholm <mast@lysator.liu.se>

Better argument checking in has_value and has_index.

Rev: src/builtin_functions.c:1.494

2003-05-15

2003-05-15 15:33:31 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-05-07

2003-05-07 12:31:52 by Martin Stjernholm <mast@lysator.liu.se>

Fixed glob() to not be limited by the pike stack when filtering arrays.

Rev: src/builtin_functions.c:1.492

2003-05-07 12:31:52 by Martin Stjernholm <mast@lysator.liu.se>

Fixed glob() to not be limited by the pike stack when filtering arrays.

Rev: src/builtin_functions.c:1.459

2003-05-07 12:31:43 by Martin Stjernholm <mast@lysator.liu.se>

Fixed glob() to not be limited by the pike stack when filtering arrays.

Rev: src/builtin_functions.c:1.368

2003-04-29

2003-04-29 00:46:25 by Martin Nilsson <mani@lysator.liu.se>

Removed sort from __static_modules.Builtin. It is already an efun.

Rev: src/builtin_functions.c:1.491

2003-04-28

2003-04-28 00:32:44 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-04-27

2003-04-27 20:12:11 by Martin Stjernholm <mast@lysator.liu.se>

array_fix_bad_type_field renamed to array_fix_unfinished_type_field.

Rev: src/builtin_functions.c:1.489

2003-04-27 17:52:42 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-04-27 17:41:20 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-04-27 14:13:52 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed erroneous documentation.

Rev: src/builtin_functions.c:1.486

2003-04-27 12:08:37 by Martin Nilsson <mani@lysator.liu.se>

Updated object_program type and added some mysterious documentation

Rev: src/builtin_functions.c:1.485

2003-04-14

2003-04-14 15:04:41 by Martin Stjernholm <mast@lysator.liu.se>

Be more precise about the epoch time.

Rev: src/builtin_functions.c:1.484

2003-04-14 15:04:41 by Martin Stjernholm <mast@lysator.liu.se>

Be more precise about the epoch time.

Rev: src/builtin_functions.c:1.458

2003-04-07

2003-04-07 17:28:56 by Martin Nilsson <mani@lysator.liu.se>

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

2003-04-02

2003-04-02 19:24:49 by Martin Nilsson <mani@lysator.liu.se>

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)

2003-04-01

2003-04-01 18:15:58 by Martin Nilsson <mani@lysator.liu.se>

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

2003-03-28

2003-03-28 14:23:28 by Marcus Comstedt <marcus@mc.pp.se>

Copy OPT_EXTERNAL_DEPEND from mapped function in f_map().

Rev: src/builtin_functions.c:1.480

2003-03-28 14:23:23 by Marcus Comstedt <marcus@mc.pp.se>

Copy OPT_EXTERNAL_DEPEND from mapped function in f_map().

Rev: src/builtin_functions.c:1.457

2003-03-14

2003-03-14 15:57:49 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2003-03-02

2003-03-02 14:28:42 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2003-02-16

2003-02-16 04:23:19 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-02-15

2003-02-15 17:33:34 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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

2003-02-10

2003-02-10 17:10:40 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-02-10 16:57:55 by Martin Stjernholm <mast@lysator.liu.se>

Reverted bogus fix.

Rev: src/builtin_functions.c:1.474
Rev: src/gc.c:1.205

2003-02-10 15:24:12 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Bugfix.

Rev: src/builtin_functions.c:1.473

2003-02-09

2003-02-09 15:30:57 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-02-08

2003-02-08 18:37:54 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Oops, bugfix.

Rev: src/builtin_functions.c:1.471

2003-02-08 18:07:07 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Documentation fixes.
gethr{,v}time() now actually look at the argument.

Rev: src/builtin_functions.c:1.470

2003-02-08 17:12:27 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-02-04

2003-02-04 17:32:20 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-02-04 17:29:19 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-02-02

2003-02-02 00:31:16 by Martin Stjernholm <mast@lysator.liu.se>

Fixed do_gc call.

Rev: src/builtin_functions.c:1.467

2003-02-01

2003-02-01 15:43:51 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-02-01 15:37:23 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-01-29

2003-01-29 15:55:26 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-01-28

2003-01-28 13:18:18 by Martin Stjernholm <mast@lysator.liu.se>

Fixed security check for next_object. Do not run the gc twice in
verify_internals.

Rev: src/builtin_functions.c:1.465

2003-01-28 13:18:18 by Martin Stjernholm <mast@lysator.liu.se>

Fixed security check for next_object. Do not run the gc twice in
verify_internals.

Rev: src/builtin_functions.c:1.454

2003-01-26

2003-01-26 11:09:01 by Mirar (Pontus Hagland) <pike@sort.mirar.org>

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

2003-01-16

2003-01-16 16:10:12 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-01-13

2003-01-13 04:00:43 by Martin Stjernholm <mast@lysator.liu.se>

Removed f_rusage. (Nilsson has promised to add a compatibility wrapper
using System.getrusage.)

Rev: src/builtin_functions.c:1.462

2003-01-13 03:55:15 by Martin Stjernholm <mast@lysator.liu.se>

Made gethrvtime use get_cpu_time, so now it always exists. Added doc
for gethrtime and gethrvtime.

Rev: src/builtin_functions.c:1.461

2003-01-13 02:07:04 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-01-12

2003-01-12 16:00:14 by Martin Stjernholm <mast@lysator.liu.se>

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

2003-01-11

2003-01-11 17:06:26 by Henrik Grubbström (Grubba) <grubba@grubba.org>

ISO-C §6.3.4.

Rev: src/builtin_functions.c:1.458

2003-01-11 03:22:16 by Martin Stjernholm <mast@lysator.liu.se>

Updated the doc about the return value from gc().

Rev: src/builtin_functions.c:1.457

2003-01-05

2003-01-05 00:55:44 by Martin Nilsson <mani@lysator.liu.se>

Use the SIMPLE_ macros. Fixed droppings error in has_index and has_value.

Rev: src/builtin_functions.c:1.456

2003-01-04

2003-01-04 15:24:51 by Martin Nilsson <mani@lysator.liu.se>

Fixed hash_7_0 error messages.

Rev: src/builtin_functions.c:1.455

2002-12-07

2002-12-07 13:52:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

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)

2002-12-01

2002-12-01 18:53:05 by Martin Stjernholm <mast@lysator.liu.se>

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

2002-11-28

2002-11-28 02:19:15 by Martin Stjernholm <mast@lysator.liu.se>

Allow arguments to be passed to the _gdb_breakpoint function.

Rev: src/builtin_functions.c:1.452
Rev: src/error.c:1.95

2002-11-25

2002-11-25 00:41:17 by Martin Nilsson <mani@lysator.liu.se>

Moved some debug functions to Debug. Updated sleep doc. Fixed describe_backtrace type.

Rev: src/builtin_functions.c:1.451

2002-11-24

2002-11-24 14:57:05 by Marcus Comstedt <marcus@mc.pp.se>

Check avaiable stack in f_glob().

Rev: src/builtin_functions.c:1.450

2002-10-25

2002-10-25 13:13:57 by Marcus Comstedt <marcus@mc.pp.se>

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

2002-10-15

2002-10-15 14:57:38 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Even more mktime() fixes.

Rev: src/builtin_functions.c:1.366

2002-10-15 14:57:29 by Henrik Grubbström (Grubba) <grubba@grubba.org>