Jumpy - makestub

* generate script will create working stub dll for windows, including alternative implementations of given functions.

by: William
jumpy

* Added reference implementation of managed code

By: William
deleted everything

* so we can do all this properly, with tests.

By: William
Real work

* Created tests for, and implemented:
** A StubMaker class for reading DLLs and generating the files necessary to build stubs for them;
** A script which uses the StubMaker to create a stub for Python25.dll
* Windows-only at the moment.

By: William, Jonathan
Tidying

* Added several files to ignore list

By: William
Tidying

* Moved buildstub into tools; updated references
* CHanged Jazz testdata to contain legal C
* Added better functional test to buildstubtest

By: Kamil, William
Changes

* We also build a c# project, and have tests for that.
* Added StubReference class.
* Added missing dependencies to .o files in makefiles.

By: Kamil, William
Through the fire and the flames

* Fixed access modifiers on StubReference DllImports
* Added PythonMapper (+ tests), which provides the actual address_getter functionality to unmanaged code.

By: Glenn, William
...we carry on

* Added PydImporter, and test data to exercise it;
* functionalitytest now passes (the single trivial test that it currently contains).

By: Glenn, William
More

* We now correctly interpret some of the args to Py_InitModule4.
* New: Python25Mapper, which contains the start of an actual implementation of Py_InitModule4, and Python25Structs, containing tedious definitions.

By: Kamil, William
Changes for Cygwin

* Line endings; some paths.

By: Kamil, William
* Added declarations for standard delegates to Python25Structs.
* Added empty PyString_FromString and PyModule_AddObject to base PythonMapper class.
* Implemented Py_InitModule4 on Python25Mapper; of necessity, added memory allocator indirection which allows us to partially test for correct behaviour.

By: Andrzej, Kamil, William
* Added Python25Mapper.IncRef, .DecRef, and .RefCount methods (taking pointers).
* Extended _jumpy_dispatch functions to maintain reference counts of passed arg tuples/dicts.

By: Andrzej, William
* Disassembled build line for diagnostic purposes.
* PythonMapper now recognises PyArg_ParseTupleAndKeywords
* Python25Mapper now implements a brain-damaged version of PA_PTAK -- it doesn't actually read the format string, does no error checking, and assumes 'long' is the only data type in the universe.

By: William, Jonathan
added argwriters and tests
split Python25Mapper.ParseTupleAndKeywordArgs into GetArgValues / SetArgValues.

by william with a dash of jonathan
PyArg_ParseTupleAndKeywords work

* Implemented IntArgWriter and SizedStringArgWriter
* Python25Mapper will construct appropriate dictionaries of argIndex:argValue and argIndex:argWriter, and use the 2 in conjunction to fill in the correct parts of the supplied pointer table
* Python25Mapper can temporarily store pointers for subsequent deallocation; string data provided to C functions in PA_PTAK is not leaked, but becomes invalid at the end of the call into C.
* Factored test allocators out to tests/utils/allocators.py.

By: Jonathan, William
Completed primitive PyArg_ParseTupleAndKeywords

* Added C function to translate PyArg_ParseTupleAndKeywords' varargs into a pointer array for consumption by C#.
* Added leak test for PyArg_ParseTupleAndKeywords, which is run in a separate process to reduce the effects of previous allocations by other tests.
* Changed build process to recreate the test libraries which have been removed from source control
* Changed PyArg_ParseTupleAndKeywords to return an int throughout, due to lack of bool in C
* Moved intSize, ptrSize, and OffsetPtr to tests/utils/memory.py

By: Menno, William
* Unbroke runtests.bat
* Added basic non-useful PyString_FromStringAndSize

By: Menno, William
Tweaks

* override files now have .c extension so we get syntax highlighting
* stub libraries are now initialised with a data_setter as well as an address_getter; this is using to fill in blocks of memory declared in the stub (as opposed to pointers declared in the stub, which can be set to point to memory allocated by the managed program.)
* stubmaker will now allow for custom data (as blocks of memory) rather than just void*s
* PythonMapper now has machinery to fill data for PyString_Type (but no good implementation yet)
* pyarg_parsetupleandkeywordstest no longer runs the risk of having its PythonMapper GCed halfway through

by: William, Glenn
Consistency

* Renamed tests/data/source to tests/data/src

by: William