Branch: Tag:


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

Merge commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e' into patches/pike63

* commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e': (19587 commits)


2017-12-31 23:19:10 by Peter Bortas <>

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


2017-12-19 14:56:00 by Henrik Grubbström (Grubba) <>

Compiler: Add an extra pass on demand.


2017-12-11 18:05:19 by Henrik Grubbström (Grubba) <>

Compiler: Add symbolic constants COMPILER_PASS_*.

This is in preparation for adding more passes.


2017-02-17 11:35:59 by Henrik Grubbström (Grubba) <>

Compiler: Removed some dead code.

Removes the old obsolete C-API function compile() (which has been
generating a fatal error on use since 2008-04-14).


2017-02-09 17:34:20 by Henrik Grubbström (Grubba) <>

Compiler: Moved yyreport() et al to pike_compiler.cmod.

More code cleanup.


2017-02-08 17:03:29 by Henrik Grubbström (Grubba) <>

Compiler: Moved {null,placeholder}_program to pikecompiler.cmod.

Use the CMOD preprocessor for these programs.


2017-02-04 13:37:00 by Henrik Grubbström (Grubba) <>

Compiler: Move some more stuff from program.c to pike_compiler.c.


2017-02-02 15:47:31 by Henrik Grubbström (Grubba) <>

Break out compiler stuff from program.c to pike_compiler.c.

Code layout cleanup.

Work in progress; there's still quite a bit of stuff left in
program.c that ought to be in pike_compiler.c.


2016-12-31 17:12:23 by Arne Goedeke <>

Replace dynamic_buffer API everywhere

This change should be purely cosmetic. It replaces the old
dynamic_buffer API by the corresponding byte_buffer API everywhere.
The wrapper definitions in dynamic_buffer.h will remain for now.


2016-12-30 09:29:45 by Arne Goedeke <>

Replace dynamic_buffer API everywhere

This change should be purely cosmetic. It replaces the old
dynamic_buffer API by the corresponding byte_buffer API everywhere.
The wrapper definitions in dynamic_buffer.h will remain for now.


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

Removed trailing spaces.


2014-04-28 14:39:24 by Henrik Grubbström (Grubba) <>

Compiler: Avoid threads_disable().

The Pike compiler now uses a dedicated reentrant lock instead
of the brute-force approach of using threads_disable().

This should improve concurrency with other threads.


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

Merge branch '8.0' into gobject-introspection


2013-08-14 09:23:42 by Marcus Comstedt <>

Runtime: Fix references to threads_disabled if no threads


2011-11-20 17:33:32 by Henrik Grubbström (Grubba) <>

Compiler: Moved the resolve_cache to the compiler context proper.


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

Removed $Id$.


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-08-13 18:02:03 by Martin Stjernholm <>

Probably a better fix for the multiple run_cleanup calls bug.

Rev: src/pike_compiler.h:1.16
Rev: src/program.c:1.741

2008-08-13 14:27:36 by Martin Stjernholm <>

Fix for multiple run_cleanup calls for failed delay compiled programs.
Also exteded the COMPILER_DEBUG messages somewhat.

Rev: src/pike_compiler.h:1.15
Rev: src/program.c:1.739


2008-05-24 15:14:13 by Henrik Grubbström (Grubba) <>

Compiler messaging mega patch.
va_yyreport() is now the main C-level dispatcher for compiler messages.
It also handles the automatic conversion of type errors to warnings in compat mode.
Consolidated the location for the implementation of most of the yy*-messaging functions to program.c.
Added yytype_report().
Changed APIs for yyexplain_*().
Moved the definitions of REPORT_* from pike_compiler.h to program.h.
va_yyerror() and low_yyerror() are no more.
Most type-system messages should now be marked with the appropriate subsystem.
Reenabled the typechecking for sscanf and sprintf() now that errors are converted into warnings in compat mode.

Rev: src/language.yacc:1.425
Rev: src/las.c:1.413
Rev: src/las.h:1.79
Rev: src/modules/sprintf/sprintf.c:1.153
Rev: src/pike_compiler.h:1.14
Rev: src/pike_types.c:1.337
Rev: src/pike_types.h:1.118
Rev: src/program.c:1.702
Rev: src/program.h:1.248
Rev: src/sscanf.c:1.184


2008-05-18 15:36:23 by Henrik Grubbström (Grubba) <>

Added CompilerEnvironment()->PikeCompiler()->apply_attribute_constant().

Rev: src/pike_compiler.h:1.13
Rev: src/program.c:1.699


2008-05-04 14:04:11 by Henrik Grubbström (Grubba) <>

More warnings for __deprecated__ symbols.
Added CompilerEnvironment()->PikeCompiler()->apply_type_attribute().
Added some FIXMEs.

Rev: src/pike_compiler.h:1.12
Rev: src/pike_types.c:1.325
Rev: src/program.c:1.687


2008-05-03 20:06:07 by Henrik Grubbström (Grubba) <>

First go at warning for deprecated symbols.
Added CompilerEnvironment()->PikeCompiler()->{push,pop}_type_attribute().
pike_types_le() now calls the above when encountering asymmetric attribute types.
Added some tests for the above.

Rev: src/pike_compiler.h:1.11
Rev: src/pike_types.c:1.324
Rev: src/program.c:1.686
Rev: src/


2008-05-02 10:56:06 by Henrik Grubbström (Grubba) <>

Added handle_inherit() to CompilerEnvironment and PikeCompiler.

Rev: src/pike_compiler.h:1.10
Rev: src/program.c:1.682


2008-04-26 19:04:26 by Henrik Grubbström (Grubba) <>

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-26 14:27:08 by Henrik Grubbström (Grubba) <>

The global svalue stack used_modules is no more.
Moved used_modules to struct pike_compilation.
Got rid of the old struct pike_compilation fields used_modules_save and num_used_modules_save.

Rev: src/pike_compiler.h:1.8
Rev: src/program.c:1.677


2008-04-25 13:46:30 by Henrik Grubbström (Grubba) <>

Improved doc.

Rev: src/module_support.c:1.74
Rev: src/pike_compiler.h:1.7


2008-04-24 16:03:54 by Henrik Grubbström (Grubba) <>

Made the Pike compiler somewhat more transparent.
Added change_compiler_compatibility() and get_{compilation_handler,default_module}().
Added _sprintf() for PikeCompiler.
dump_program_tables() now also dumps the string table.

Rev: src/pike_compiler.h:1.6
Rev: src/program.c:1.674


2008-04-19 10:10:07 by Henrik Grubbström (Grubba) <>


Rev: src/pike_compiler.h:1.5


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

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 16:34:54 by Henrik Grubbström (Grubba) <>

Moved some of the resolver code to the CompilationEnvironment object.

Rev: src/pike_compiler.h:1.3
Rev: src/program.c:1.663

2008-04-14 12:17:44 by Henrik Grubbström (Grubba) <>

Added REPORT_*.

Rev: src/pike_compiler.h:1.2

2008-04-14 10:14:41 by Henrik Grubbström (Grubba) <>

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