File overview |
------------- |
|
System interface glue |
|
alloca.c |
Emulation of alloca(3) if it doesn't exist. |
|
crypt.c |
Implementation of BSD style crypt(3) if it doesn't exist. |
|
dlopen.c |
dlopen(3) implementation for NT. |
|
fd_control.c |
fd_control.h |
Support for setting fd modes (blocking, nonblocking, close-on-exec). |
|
fdlib.c |
fdlib.h |
NT emulation of libc style I/O on fd's. |
|
pike_cpulib.c |
pike_cpulib.h |
CPU specific code for implementing atomic locks. Used only when |
running without the interpreter lock. |
|
pike_dlfcn.h |
dlfcn.h replacement for the dlopen(3) implementation in dlopen.c. |
|
pike_float.h |
Support stuff for dealing with floats on different systems. |
|
pike_netlib.h |
Support stuff for dealing with ip addresses on different systems. |
|
pike_rusage.h |
rusage.c |
Support for getrusage(2) and look-alikes on different systems, and |
support for querying virtual cpu time. |
|
port.c |
port.h |
Glue for various stuff that doesn't work quite the same on |
different systems. |
|
Tools |
|
block_alloc.h |
block_alloc_h.h |
Macro package for defining an allocator that lumps together fixed |
size structs into larger blocks. Also contains a simple hash table |
implementation for lookup of the structs. |
|
callback.c |
callback.h |
Tool for handling lists of functions to call at specific times. |
Callbacks may be added and removed at runtime. |
|
cyclic.c |
cyclic.h |
Support for detecting and breaking cyclic call chains. |
|
dmalloc.h |
Functions for dmalloc (DEBUG_MALLOC). The code is in |
pike_memory.c. |
|
dynamic_buffer.c |
dynamic_buffer.h |
Tool for building strings in streaming fashion. |
|
fsort.c |
fsort.h |
A generic sort implementation using fsort_template.h. |
|
fsort_template.h |
Macro package for defining a sort function for an arbitrary data |
type using an arbitrary compare test. |
|
global.h |
Included initially in just about every file. Contains macros for |
the chosen Pike integer and float types, and various other basic |
macros. |
|
hashtable.c |
hashtable.h |
A simple hash table for pike strings. Used by cpp.c. |
|
pike_macros.h |
Miscellaneous support macros. |
|
pike_memory.c |
pike_memory.h |
The wrappers for malloc(3) etc and the dmalloc implementation. |
Also contain some utility functions for handling of generic memory |
blocks, e.g. hashing and some wide string tools. |
|
pike_search.c |
pike_search.h |
A memory search implementation that handles wide strings. It's |
used by search() and others. |
|
pike_search_engine.c |
Contains the needle specific parts of the memory searcher. |
Included by pike_search.c once for each string width of the |
needle. |
|
pike_search_engine2.c |
Contains the haystack specific parts of the memory searcher. |
Included by pike_search_engine.c once for each string width of the |
haystack. |
|
queue.c |
queue.h |
FIFO and LIFO queues for functions to call. The difference from |
callback.* is that the queue is emptied when the callbacks have |
been called, and that it's designed for large amounts of |
callbacks. Used primarily by the gc. |
|
rbtree.c |
rbtree.h |
rbtree_low.h |
Red/black tree implementation. Used to implement the multisets. |
|
stuff.c |
stuff.h |
Miscellaneous smaller utility functions, primarily numerical. |
|
time_stuff.h |
Some tools to handle timeval structs. |
|
Compiler |
|
cpp.c |
cpp.h |
Wrap together the preprocessor from preprocessor.h. |
|
compilation.h |
Macros for the fields in the program_state struct. Used to unify |
code that does operations uniformly across all of them. |
|
docode.c |
docode.h |
Convert node trees to opcode sequences. Also call assemble in |
peep.c to convert it to byte/machine code. |
|
language.c (autogenerated) |
language.h (autogenerated) |
language.yacc |
The yacc/bison language productions. These primarily build node |
trees (i.e. abstract syntax trees) from the language constructs. |
|
las.c |
las.h |
Node tree handling. Wrap together the tree optimizer. Also contain |
an evaluator for constant expressions and dooptcode which wraps |
together the conversion of a node tree for a function body to |
optimized byte code. |
|
lex.c |
lex.h |
Wrap together the lexer. |
|
lexer.h |
The actual lexer. Included by lex.c for different string widths. |
|
opcodes.c |
opcodes.h |
Opcode lookup tables and primitives for them. The opcode enums |
also double as token ids in many cases. |
|
peep.c |
peep.h |
Wrap together the peephole optimizer, handle the conversion of |
labels from opcodes to offsets, and the conversion from opcode |
sequences to machine code. Also have some primitives for opcodes |
and insertion into the opcode list. |
|
peep.in |
peep_engine.c (autogenerated) |
The core of the peephole optimizer. peep_engine.c is generated |
from transformation rules for opcode sequences in peep.in. |
peep_engine.c is included by peep.c. |
|
preprocessor.h |
The bulk of the preprocessor. Included by cpp.c once for each |
string width. |
|
program.c |
program.h |
Implement the data type for programs (aka classes). The compiler |
is wrapped together here. Also contain the lfun support, the C |
level parts of the resolver, and the trampoline program. |
|
program_areas.h |
Macros for the different areas in the program struct. Used to |
unify code that does operations uniformly across all of them. |
|
treeopt.h (autogenerated) |
treeopt.in |
The node tree optimizer. treeopt.h is generated from tree |
transformation rules in treeopt.in. treeopt.h is included by |
las.c. |
|
Interpreter |
|
apply_low.h |
The deeper parts of the apply function. Included by interpret.c to |
make different apply variants. |
|
code/ |
Contains the different byte code formats, e.g. machine code for |
some architectures. |
|
interpret.c |
interpret.h |
The core interpreter, i.e. apply and eval functions and runtime |
scope handling. Also has tools to handle the pike stack, e.g. |
pushing and popping of various data types. |
|
interpret_functions.h |
Implements all the opcodes. Included by interpret.c and |
interpreter.h. |
|
interpret_protos.h (autogenerated) |
Macros for the opcode prototypes. Extracted from |
interpret_functions.h. |
|
interpreter.h |
Wraps up the opcodes in interpret_functions.h into an eval |
functions with a loop and a gigantic switch. This is only used |
when machine code isn't enabled. The opcodes become separate |
functions otherwise. Included by interpret.c. |
|
pikecode.c |
pikecode.h |
Import the chosen byte code format from the code subdirectory. |
|
Built-in data types |
|
array.c |
array.h |
Implement arrays. Also contain the compare functions for some |
orders used in the core. |
|
bignum.c |
bignum.h |
The magic to hook in Gmp integers as bignums and to convert |
between 64 bit ints and bignums on systems where the int type is |
shorter. |
|
iterators.cmod |
The interface class for iterators, the built-in iterators, and the |
bulk of the foreach opcode. |
|
mapping.c |
mapping.h |
Implement mappings. |
|
multiset.c |
multiset.h |
Implement multisets. |
|
object.c |
object.h |
Implement objects. Contain the code that initializes and destruct |
objects, the implementations of the "magically inherited" lfuns, |
and the code that compiles and instantiates the master. |
|
stralloc.c |
stralloc.h |
Implement pike strings. |
|
Module system |
|
dynamic_load.c |
dynamic_load.h |
Implement the loading of dynamic modules (the load_module |
function). |
|
modules/ |
Standard modules that don't need the recently built pike in order |
to be built. |
|
module.c |
module.h |
Maintain the entry and exit hooks for the statically compiled |
modules. |
|
module_magic.h |
Compatibility header for old modules that don't use |
PIKE_MODULE_INIT and PIKE_MODULE_EXIT. |
|
module_support.c |
module_support.h |
Tools for importing and exporting symbols between modules. Also |
contain helpers for checking arguments on the pike stack. |
|
post_modules/ |
Standard modules that are built after the pike binary. These need |
the recently built pike in order to be built. |
|
Core runtime support |
|
backend.cmod |
backend.h |
Implement Pike.Backend, i.e. callback driven I/O and call outs. |
|
builtin.cmod |
builtin_functions.c |
builtin_functions.h |
Implement various core functions (mostly efuns). |
builtin_functions.c primarily contains the functions that predate |
the precompile system. |
|
case_info.h (autogenerated) |
Case tables for lower_case and upper_case in builtin_functions.c. |
|
combine_path.h |
Template for combine_path in builtin_functions.c. |
|
constants.c |
constants.h |
The global constants mapping, along with the support for efuns. |
|
encode.c |
encode.h |
Implement encode_value and decode_value. Contain low-level |
compile/resolve stuff to decode dumped programs. |
|
error.c |
pike_error.h |
Exception handling and debug style fatal exit. |
|
errors.h |
Built-in exception objects. Included by error.c. |
|
gc.c |
gc.h |
The garbage collector. Also contain tools for locating references |
to a memory object and to identify and print out the common types |
of memory objects in debug style. |
|
main.c |
main.h |
The entry point. Contain parsing of low-level command arguments |
(i.e. those not handled in the master), initialization and |
cleanup. |
|
operators.c |
operators.h |
Implement the runtime behavior for the operators. |
|
pike_int_types.h |
Macros for choosing C compiler integer types for INT64, INT32, |
INT16 and INT8. |
|
pike_threadlib.h |
Support for threads on different systems. Also has the header |
stuff for swapping pike threads and releasing/taking the |
interpreter lock. The code is in threads.c. |
|
pike_types.c |
pike_types.h |
Handling of types in pike. |
|
security.c |
pike_security.h |
The pike security system. |
|
signal_handler.c |
signal_handler.h |
Signal and process support. |
|
sscanf.c |
sscanf.h |
Implement the sscanf special function. |
|
svalue.c |
svalue.h |
Handling of normal and short svalues, e.g. functions to free, |
assign, compare and print svalues. Also contain the parts of the |
gc that follow references. |
|
threads.c |
threads.h |
Thread support. Provides a generic thread farm too. |
|
Build system |
|
Makefile.in |
The Makefile template. Used by configure to generate a Makefile. |
|
configure.in |
The configure template. Used by run_autoconfig to generate |
configure. |
|
dumpmaster.pike |
Codec made especially for dumping the Pike master. |
|
export_list |
A list of the files and directories that should be included in a |
source dist. Used by bin/export.pike. |
|
install-welcome |
GIF image used in the Pike GTK installer. |
|
patch_cc1.c |
Small utility that binary patches gcc so that it doesn't use |
.ua{half,word} directives. May be invoked by configure. |
|
precompile.sh.in |
Template to create precompile.sh, a utility script that finds the |
most apropriate Pike binary and execute the script given in its |
argument with that binary. |
|
precompile2.sh |
A script that works like the generated precompile.sh, but |
preconfigured to work with installed Pikes. Used by pike -x module. |
|
FIXME: Document these. |
|
acconfig.h |
aclocal.m4 |
install-sh |
make_variables.in |
run_autoconfig |
smartlink.c |
strip_opcodes |
uncompressor.c |
|
Testsuite |
|
test_co.pike |
Call out test. Used by testsuite.in. |
|
test_dynamic_loading.in |
Test dynamic_load.c. |
|
test_gc.pike |
GC destruct order test. Used by testsuite.in. |
|
testsuite.in |
Testsuite for the core. |
|
Miscellaneous |
|
program_id.h |
Statically allocated program id numbers. |
|
specs.in |
Template for the specs file, describing the build environment of |
the Pike. Used by pike -x module to build new binary modules with |
the same build options. |
|
version.c |
version.h |
Version info. |
|
UnicodeData-ReadMe.txt |
UnicodeData.txt |
The standard unicode database. Data from this is extracted to |
build tables for various functions, e.g. the Unicode module and |
case_info.h (lower_case/upper_case). |
|