Compiler: Move cumulative_parse_error to struct compilation. Fixes spurious erroneous warnings --with-debug about leaked nodes. This appears to have been due to the destruct order and the use of a global variable getting out of phase.
Build: Add some extern declarations. PMOD_EXPORT does not imply extern... Fixes linking issues on platforms that don't use FORTRAN-style COMMON-segments (ie with eg gcc-10).
Build [NT]: Declare {Annotations,Inherited}_program only once. This makes cl happier.
Compiler: Move node_allocator to struct compilation. Allocated nodes may need to live during an entire translation unit. This moves the allocator from struct Pike_compiler (ie compilation.h) to struct compilation (aka CompilationEnvironment.PikeCompiler). Fixes use of already freed nodes after certain syntax errors.
decode_value: Handle circular dependencies between dumped and undumped code
Compiler: Warn about indexing of deprecated values.
Merge remote-tracking branch 'origin/master' into new_utf8
Merge commit '722771973bd' into patches/lyslyskom22891031 * commit '722771973bd': (6177 commits) Verify that callablep responses are aligned with reality. ...
Merge commit '2470270f500c728d10b8895314d8d8b07016e37b' into grubba/typechecker-automap * commit '2470270f500c728d10b8895314d8d8b07016e37b': (18681 commits) Removed the old typechecker. ...
Compiler: Added some internal doc.
Compiler: Make some Annotation-related symbols PMOD_EXPORT.
Compiler: Disable C-level support for handlers.
Compiler: Preparations for removing handlers from the compiler.
Compiler: Changed storage for self ref in supporters.
Compiler: Added support for Pike.Annotations.Inherited. This attribute has the same semantics as the attribute of the same name in Java.
PikeCompiler: Move high-level classes to _static_modules.Builtin. Top-level CMOD symbols in pike_compiler.cmod were previously lost to the void unless explicitly handled. They now instead show up in _static_modules.Builtin (as with similar symbols elsewhere).
Merge remote-tracking branch 'origin/8.1' into gobject-introspection
CompilerEnvironment: Added handle_import().
Compiler: Make the Reporter program more visible.
Merge commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e' into patches/pike63 * commit '75c9d1806f1a69ca21c27a2c2fe1b4a6ea38e77e': (19587 commits) ...
Merge remote-tracking branch 'origin/8.1' into peter/travis
Compiler: Add an extra pass on demand.
Compiler: Add symbolic constants COMPILER_PASS_*. This is in preparation for adding more passes.
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).
Compiler: Moved yyreport() et al to pike_compiler.cmod. More code cleanup.
Compiler: Moved {null,placeholder}_program to pikecompiler.cmod. Use the CMOD preprocessor for these programs.
Compiler: Move some more stuff from program.c to pike_compiler.c.
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.
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.
Removed trailing spaces.
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.
Runtime: Fix references to threads_disabled if no threads
Merge branch '8.0' into gobject-introspection
Compiler: Moved the resolve_cache to the compiler context proper.
Removed $Id$.
No more foreign_idents. More pain than they are worth.
No more foreign_idents.
Probably a better fix for the multiple run_cleanup calls bug. Rev: src/pike_compiler.h:1.16 Rev: src/program.c:1.741
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
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
Added CompilerEnvironment()->PikeCompiler()->apply_attribute_constant(). Rev: src/pike_compiler.h:1.13 Rev: src/program.c:1.699
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
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/testsuite.in:1.804
Added handle_inherit() to CompilerEnvironment and PikeCompiler. Rev: src/pike_compiler.h:1.10 Rev: src/program.c:1.682
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
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
Improved doc. Rev: src/module_support.c:1.74 Rev: src/pike_compiler.h:1.7
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
REPORT_INFO ==> REPORT_NOTICE. Rev: src/pike_compiler.h:1.5
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
Moved some of the resolver code to the CompilationEnvironment object. Rev: src/pike_compiler.h:1.3 Rev: src/program.c:1.663
Added REPORT_*. Rev: src/pike_compiler.h:1.2
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