-
Notifications
You must be signed in to change notification settings - Fork 47
/
HACKING
25 lines (17 loc) · 1.02 KB
/
HACKING
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
== Needed tools ==
You need to install python, with development headers, and a C/C++ compiler.
== Project style / goals / development guidelines ==
Code style rules:
* Should generate clean C or C++ code
- Near what a human programmer would write;
* Do not depend on C++ language features except when wrapping C++ APIs
- It should be possible to generate pure C modules for wrapping pure C libraries;
* No C++ templates allowed (except if wrapping them)
* Macros should be used rarely, and should be small if used at all
- Shift the complexity into Python side, keep the C/C++ simple (even if large);
* Generated code should not require any external library
- Whenever possible, do not create functions, expand the needed code from the Python code generator instead;
== Submitting patches ==
1. First, make sure all unit tests pass: waf clean && waf check
2. Report the feature/bug in launchpad: https://bugs.launchpad.net/pybindgen/+filebug
3. Attach a patch or branch to the bug report