Branch: Tag:


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

Merge commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e' into patches/pike63

* commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e': (19587 commits)


2018-02-03 09:48:55 by Peter Bortas <>

Merge branch '8.1' into peter/travis


2018-01-13 23:37:58 by Martin Nilsson <>

Include cleanup


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

Rip out final remains of OS2 and AmigaOS.

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

Equvivalent and equivalent are not equivalent.

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

Equvivalent and equivalent are not equivalent.


2017-11-07 12:34:40 by Martin Nilsson <>

Retire stuff.c/h


2017-07-25 20:46:28 by Martin Nilsson <>

Added comment.


2016-04-08 19:48:49 by Martin Nilsson <>

Removed IA64 configurations.


2016-03-19 11:05:21 by Martin Nilsson <>

Removed my_rand.


2016-03-12 15:58:19 by Martin Nilsson <>

Always init internal random.


2016-02-12 14:56:50 by Martin Nilsson <>

Removed IA64 configurations.


2016-01-12 18:29:30 by Per Hedbor <>

Union init is part of C99 init


2015-10-18 00:55:44 by Martin Nilsson <>

unistd.h is included from global.h


2015-10-17 16:51:20 by Martin Nilsson <>

No need to check for locale.h. It's part of C89 and we don't use HAVE_LOCALE_H everywhere.

2015-10-17 16:19:01 by Martin Nilsson <>

errno.h is part of C89, and is already included ungoarded in some places.


2015-08-22 18:34:29 by Arne Goedeke <>

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-18 16:55:08 by Per Hedbor <>

Merge branch 'arne/string_alloc' into 8.1



2015-05-25 15:33:02 by Martin Nilsson <>

Removed trailing spaces.


2015-04-28 14:02:09 by Jonas Walldén <>

Silence more compiler warnings by restoring the UNUSED() family of macros. If
this change exposes any invalid attributes, please remove them specifically

2015-04-28 13:56:46 by Jonas Walldén <>

Silence more compiler warnings by restoring the UNUSED() family of macros. If
this change exposes any invalid attributes, please remove them specifically


2015-03-16 17:27:53 by Martin Nilsson <>

Remove deprecated security system.


2014-12-08 16:28:52 by Martin Nilsson <>

pike_memory_locks isn't used. Remove that and the now always unused initializer.


2014-10-29 16:26:41 by Martin Nilsson <>

Removed bignum include.


2014-10-03 16:16:13 by Per Hedbor <>

Removed security system (on this branch)


2014-10-02 17:28:23 by Martin Nilsson <>

Whitespace changes

2014-10-02 16:36:41 by Per Hedbor <>

Removed MAX_FD configure test

It only returns the current max anyway, which is usually
smaller than the max if you are running as root, and can
also be changed at any time at runtime.

Instead, use sysconf(_SC_OPEN_MAX) when available if needed, and as a
last resort a hardcoded value (on Windows), but as a secondary change
all uses except two was removed:

o Stdio.get_all_active_fd - On systems without /dev/fd and

o On NT, the size of FD_SET is now set to a hardcoded value (64k).

The rewrite of get_all_active_fd also speeds it up a lot. Not that it
is a frequently used function.


2014-09-04 15:57:43 by Arne Goedeke <>

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


2014-09-04 00:57:49 by Martin Nilsson <>

setlocale is C89, so assume it exists.

2014-09-04 00:22:38 by Martin Nilsson <>

setbuf and setvbuf are C89, so assume they exists.


2014-08-22 19:59:05 by Arne Goedeke <>

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-05-22 16:49:17 by Per Hedbor <>

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-02-25 14:37:13 by Per Hedbor <>

Tagged some more arguments UNUSED


2014-01-05 15:14:13 by Marcus Comstedt <>

Merge branch '8.0' into gobject-introspection


2013-06-21 09:18:55 by Arne Goedeke <>

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


2013-06-17 21:40:00 by Martin Nilsson <>

Removed auto bignum checks.


2013-06-12 20:04:24 by Arne Goedeke <>

Added new block allocator. It dramatically speeds up free, when
allocating many blocks and deallocation happens non linearly.

2013-06-12 19:01:37 by Arne Goedeke <>

new block alloc

2013-06-12 18:34:31 by Arne Goedeke <>

new block alloc

2013-06-12 18:21:52 by Arne Goedeke <>

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


2013-06-12 15:46:22 by Per Hedbor <>

[performance] Do not use block-alloc for pike_frame and catch_context

They are too important for code execution speed.

struct pike_frames are allocated in chunks but not free:d until the
program exists. This is basically just like the normal stack, and for
all but the most extreme of recursive programs this is not really an
issue. And for those programs the only loss now is that we are not
returning the frame memory to the system, we are actually using less
memory at peak.

The catch_context structures (that are fairly large, anyway, 80 bytes
on my machine) are simply allocated using malloc, and up to 100 free
ones are kept in a list for quick use.


2013-06-11 21:51:01 by Arne Goedeke <>

ammend this


2012-12-30 15:37:27 by Jonas Walldén <>

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-07-02 18:30:50 by Arne Goedeke <>

added gjalloc to constants

2012-07-02 13:16:37 by Arne Goedeke <>

gjalloc for pike frame structs

2012-07-02 08:08:46 by Arne Goedeke <>

use new block allocator for gc and callbacks


2012-07-01 16:14:31 by Arne Goedeke <>

use gjalloc in gc


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

Change in internal timehandling; ability to invalidate current_time.


2011-11-05 15:02:44 by Martin Nilsson <>

Removed $Id$.


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

Atomic megapatch: Use svalue accessor macros everywhere.


2011-04-25 16:41:40 by Martin Stjernholm <>

No more foreign_idents.

More pain than they are worth.

2011-04-25 16:11:00 by Martin Stjernholm <>

No more foreign_idents.


2008-07-09 20:41:30 by Martin Stjernholm <>

Added a global svalue_undefined.

Rev: src/pike_embed.c:1.18
Rev: src/svalue.c:1.246
Rev: src/svalue.h:1.167


2008-06-05 15:12:28 by Martin Stjernholm <>

Commented out pike_push_env since it's not of any use anymore.

Fixed initialization of svalue_int_one if union inits don't work
(forgot this check-in earlier).

Rev: src/pike_embed.c:1.17


2008-05-01 21:25:32 by Martin Stjernholm <>

Fixed a warning by allowing pike_do_exit to return. Should be ok considering
where it's used.

Rev: src/pike_embed.c:1.16
Rev: src/pike_embed.h:1.9


2008-04-18 19:45:42 by Henrik Grubbström (Grubba) <>

Initialize the low level object stuff before compiling the compiler.

Rev: src/object.c:1.285
Rev: src/object.h:1.94
Rev: src/pike_embed.c:1.15


2007-10-06 13:45:22 by Henrik Grubbström (Grubba) <>

The shared nodes hash table (and its associated functions) is no more.

Rev: src/docode.c:1.190
Rev: src/language.yacc:1.385
Rev: src/las.c:1.393
Rev: src/las.h:1.74
Rev: src/module.c:1.46
Rev: src/pike_embed.c:1.14
Rev: src/


2007-06-18 09:21:24 by Martin Stjernholm <>

Fixed an include loop that could cause thread_state.auto_gc_time to be
undefined incorrectly.

Rev: src/global.h:1.110
Rev: src/pike_embed.c:1.13


2007-05-18 14:00:48 by Henrik Grubbström (Grubba) <>


Rev: src/main.c:1.227
Rev: src/pike_embed.c:1.12


2007-05-13 14:55:26 by Martin Stjernholm <>

Reworked the cycle handling in the gc and documented it in detail, to work
out some kinks and to make it more convincing that the end result really is
what the gc claims it to be.

Rev: src/gc.c:1.281
Rev: src/pike_embed.c:1.11
Rev: src/program.c:1.614


2006-08-09 01:55:45 by Martin Stjernholm <>

Use the homegrown heap manager for executable memory on Windows too. The
reason is that VirtualProtect doesn't work if it's given an area that
haven't been reserved with a single VirtualAlloc MEM_RESERVE call.

Rev: src/dmalloc.h:1.62
Rev: src/pike_embed.c:1.10
Rev: src/pike_memory.c:1.183
Rev: src/pike_memory.h:1.55
Rev: src/program.c:1.608


2006-08-08 22:23:11 by Martin Stjernholm <>

Make some effort to find the real page size.

Rev: src/
Rev: src/pike_embed.c:1.9
Rev: src/pike_memory.c:1.182
Rev: src/pike_memory.h:1.54
Rev: src/program.c:1.607


2006-07-05 19:26:26 by Martin Stjernholm <>

Fixed warnings.

Rev: src/backend.cmod:1.180
Rev: src/block_alloc.h:1.82
Rev: src/builtin.cmod:1.191
Rev: src/callback.c:1.37
Rev: src/errors.h:1.33
Rev: src/mapping.c:1.188
Rev: src/mapping.h:1.64
Rev: src/multiset.c:1.101
Rev: src/object.c:1.270
Rev: src/pike_embed.c:1.8
Rev: src/pike_types.c:1.254
Rev: src/signal_handler.c:1.321


2006-02-27 12:07:10 by Martin Stjernholm <>

Avoid C stack recursion in catch blocks.

Rev: src/docode.c:1.185
Rev: src/error.c:1.144
Rev: src/interpret.c:1.368
Rev: src/interpret.h:1.165
Rev: src/interpret_functions.h:1.187
Rev: src/pike_embed.c:1.7
Rev: src/pike_error.h:1.37
Rev: src/version.h:1.383


2005-11-23 10:39:36 by Henrik Grubbström (Grubba) <>

Added missing declspec.

Rev: src/pike_embed.c:1.6


2005-04-19 22:02:43 by Martin Nilsson <>

pike_do_exit does return

Rev: src/pike_embed.c:1.5
Rev: src/pike_embed.h:1.7


2005-01-01 17:35:54 by Henrik Grubbström (Grubba) <>

Moved even more stuff from main.c to pike_embed.c.

Rev: src/main.c:1.222
Rev: src/main.h:1.26
Rev: src/pike_embed.c:1.4
Rev: src/pike_embed.h:1.4

2005-01-01 14:35:45 by Henrik Grubbström (Grubba) <>

Moved more stuff from main.c to pike_embed.c.

Rev: src/main.c:1.221
Rev: src/main.h:1.25
Rev: src/pike_embed.c:1.3
Rev: src/pike_embed.h:1.3


2004-12-30 13:40:19 by Henrik Grubbström (Grubba) <>

Moved debug and runtime flags from main to pike_embed.
Moved master path handling back from pike_embed to main.
Added find_lib_dir()
Added some support for LIBPIKE (not working yet).
Moved main() back to main.c from pike_memory.c.
Debug malloc is now initialized from init_pike().
init_pike() now gets the path to the master as the second argument.
debug and runtime options are now set via set_pike_{debug,runtime}_options().

Rev: src/main.c:1.219
Rev: src/main.h:1.24
Rev: src/pike_embed.c:1.2
Rev: src/pike_embed.h:1.2
Rev: src/pike_memory.c:1.158
Rev: src/pike_memory.h:1.50


2004-12-29 10:16:43 by Henrik Grubbström (Grubba) <>

Initial embedding API. Changes ARE needed.

Rev: src/pike_embed.c:1.1
Rev: src/pike_embed.h:1.1