Commit Graph

220 Commits

Author SHA1 Message Date
rdb e2dfc935a1 Various refactoring, esp. of GLSL input system 2015-05-21 14:16:45 +02:00
rdb 52288e299b Fix interrogate regression that broke multiview support 2015-04-16 16:57:46 +02:00
rdb 426fdf0842 Fix issue where overloads with invalid default arg types weren't exported at all 2015-03-31 22:34:28 +02:00
rdb ff58db25ac Fix inheritance of hash functions, restore compare_to(), slot get_hash/get_key 2015-03-28 21:55:55 +01:00
rdb eaedfa68dc Fix regression: methods returning const char pointer were ignored. 2015-03-28 20:51:45 +01:00
rdb 53d10aa3a3 Fix sticky exception when passing over overloads with single string arg. 2015-03-28 20:51:08 +01:00
Sam Edwards 64120cd7d8 general: Add missing includes and forward-declarations. 2015-03-28 19:27:48 +01:00
rdb c9f8ccf901 Fix interrogate bug with detecting parameter coercion possibility 2015-03-25 19:37:00 +01:00
rdb 3371df8403 Fix tp_compare, better __repr__/__str__ handling 2015-03-25 19:36:35 +01:00
rdb de0b0dd879 Fix various issues with Python 3 support, fix samples to work with Python 3 2015-03-23 00:32:47 +01:00
rdb b63d5fbe8c Support cyclic garbage collection through PythonTask objects 2015-03-15 12:24:06 +01:00
rdb e608fa69c7 Merge branch 'master' into interrogate-overhaul
Conflicts:
	dtool/src/cppparser/cppBison.yxx
	dtool/src/interrogate/interfaceMakerPythonNative.cxx
2015-03-14 16:47:31 +01:00
rdb 04d4309b14 SSE2-enhanced sRGB encode (with runtime CPU detection) 2015-03-01 11:46:52 +01:00
rdb da3f642902 Various interrogate improvements 2015-02-27 15:01:42 +01:00
rdb e29efdd0c9 Don't use swap() as fallback for std::move(), it's more picky 2015-02-15 20:26:23 +01:00
rdb 9513046e59 Various substantial changes to Interrogate:
* Allow arbitrary selection of optional keyword arguments in some cases
* Reduce code bloat of generated bindings
* Work around awkward resolution of set_shader_input overloads
* Document the code a bit better
* Make coercion a bit cleaner for reference counted types
* A few optimization tweaks
* Use generic errors in NDEBUG build to reduce size of string pool
2015-02-15 13:48:13 +01:00
rdb 4dc4c9eb3d Merge branch 'master' into interrogate-overhaul
Conflicts:
	dtool/src/interrogate/functionRemap.cxx
	dtool/src/interrogate/interfaceMakerPythonNative.cxx
	panda/src/event/pythonTask.cxx
	panda/src/express/multifile.h
	panda/src/express/pointerToArray.I
	panda/src/mathutil/config_mathutil.N
	panda/src/putil/config_util.N
	panda/src/putil/doubleBitMask.h
2015-02-11 14:41:58 +01:00
rdb cbd70ad8af Move all Python bindings out of core DLLs into the .pyd files. 2015-02-10 14:30:51 +01:00
rdb 5e905d4463 Fix various parser bugs, improve error reporting
(to show the included file chain -vv is now needed)
2015-01-04 20:30:24 +01:00
rdb 6db5d0dc11 Huge cppparser and interrogate overhaul, bringing:
* Better support for typedefs
* Same code should compile for both 32-bit and 64-bit
* C++11 typed enum support
* Synthesize __setitem__ when operator [] returns reference
* Rewrite coerce system to have better performance
* Change semantics of __getattr__ and __setattr__ to match
  Python's, add __getattribute__, __delattr__ and __delitem__
* Improve performance of slot functions a bit more
* Reduce memory overhead of type system
* Some support for wrapping arrays of numeric types
* C++11 character type support in cppparser
* Chars are handled as strings of length 1
* Template functions for CreatePyInstance that use runtime type map
* More functions from dtool as extension functions
* Code cleanup
2014-12-30 16:43:52 +01:00
rdb be1eb1d812 More minor linux packaging fixes 2014-12-29 15:16:33 +01:00
rdb a65b477734 Commit patches by cfsworks:
cxx: Fix missing includes masked by composite builds.
misc: Fix typos in comments.
config: Fix missing config forward-declarations.
direct: Adjust Python imports to panda3d.* instead of pandac.*.
display: Split graphicsWindow out into an extension.
framework: Use if/elif/elif/endif instead of ifdef/elif/elif/endif.
ode: Remove erroneous INLINE declarations.
interval: Fix missing import.
2014-10-19 22:41:47 +00:00
rdb f3094043df Fix left shift in Python (LP bug #1289475) 2014-10-19 15:50:54 +00:00
rdb 31a71c990d Fix issues with OS X 10.9 compilation, fix issues uncovered by clang 2014-10-12 18:45:37 +00:00
rdb 902bedc314 Fix Python 3 crash on Windows, and fix some Python 3-related compile errors 2014-10-10 13:45:05 +00:00
rdb 24386cdc1e Use a table to make InternalName::make more efficient for Python interned strings 2014-10-02 18:28:06 +00:00
rdb 778b4390f4 Temporary fix for Python 3 compilation error 2014-09-21 13:37:32 +00:00
rdb c178aba639 Add property support to interrogate (using MAKE_PROPERTY or using published members) 2014-09-19 15:23:52 +00:00
rdb a044561be5 *Always* check for exceptions in C++ methods, otherwise we miss important exceptions thrown in Python code called by C++ methods (like SystemExit!) 2014-08-26 21:01:12 +00:00
rdb e468b293d1 Fix a longstanding memory leak in certain interrogate exception handlers.
Raise MemoryError when constructor returns NULL.
Properly check argument count of constructors that take no arguments.
2014-08-26 17:17:37 +00:00
rdb 3e974abf5d Fix silly bug with longs 2014-07-23 17:41:22 +00:00
rdb f02662d4e0 Improve interrogate code readability, use METH_STATIC for static methods, support anonymous enums 2014-07-22 20:06:59 +00:00
rdb c257ce624e Interrogate overhaul that dramatically increases performance for the simpler methods 2014-07-18 13:54:38 +00:00
rdb 634190281d Support __pow__ in interrogate 2014-06-11 17:17:45 +00:00
rdb 5b967671fa Fix Python 3 build issue with iterator extensions 2014-05-23 13:42:26 +00:00
rdb d5d5de1d7e Make iterators work with interrogate by mapping None to NULL for the iternext method. Not the best solution, but is easy and fits most use cases. 2014-03-27 15:15:58 +00:00
rdb ae4bddd7f7 Fix Python 3 compile issue 2014-03-09 01:00:23 +00:00
rdb c213712600 fix windows build when the module is in different dll than the library defs 2014-02-20 18:38:35 +00:00
rdb 5f2c0a6e04 Big commit aiding in separation of Python bindings:
* Most extension functions have been moved to C++.
 * In makepanda, Python bindings are compiled into panda3d/<module>.pyd.
2014-02-20 13:33:26 +00:00
rdb f29c4681e1 Fix broken Python 3 support. 2013-12-17 17:42:16 +00:00
rdb 7926a5fa7b backward compatibility with Python 2.7 2013-10-27 18:51:20 +00:00
rdb cc3bae7e76 Big interrogate cleanup, new extension system, add __iter__ support, add buffer protocol support 2013-09-17 10:11:43 +00:00
rdb 8fff339477 A lot of code cleanup 2013-09-01 15:05:43 +00:00
David Rose 5178fb9523 fix problem with infinite recursion on coercion within constructors 2013-03-25 15:15:08 +00:00
rdb a9014cf933 reenable tp_richcompare (thanks David) 2013-02-20 10:44:48 +00:00
David Rose 53b472756b fix rich compare 2013-02-20 00:37:12 +00:00
rdb da44b3ae3b oops, disable broken rich compare for now 2013-02-19 19:21:41 +00:00
rdb 0f8361d730 Fix compile errors with Python 2 2013-02-18 12:28:52 +00:00
rdb 192d10b937 Experimental Python 3 support to the C++ code including interrogate. Also adds support for rich comparison in interrogate. 2013-02-16 19:22:26 +00:00
David Rose 9294ea77f7 interrogate supports wchar_t * and L"foo" 2011-11-29 23:25:23 +00:00
David Rose 134e9a9e92 dual names for interrogate 2011-10-11 00:45:51 +00:00
David Rose 6bed0cf394 bool should return a bool 2011-09-28 17:42:46 +00:00
rdb 319b8c4cb1 More stuff related to extensions 2011-01-03 08:25:13 +00:00
David Rose d51e49516a allow __py__ functions for python-only optimizations 2010-06-16 21:57:37 +00:00
David Rose aa76a9f59d support class method versions of MAKE_SEQ 2010-06-13 22:03:46 +00:00
David Rose bb96117de2 interrogate fix for ode::get_id() 2010-05-25 21:12:44 +00:00
David Rose a942ce5fbf lists and strings will be automatically coerced into a PTA_blah 2010-02-11 22:38:34 +00:00
David Rose f6f9e269f4 introduce stdpy.pickle module with support for common-node NodePaths within a pickle stream 2010-02-10 19:43:58 +00:00
David Rose 816ddc0387 low-level support for python copy and pickle modules 2009-12-10 01:09:06 +00:00
David Rose 1d3719ccb7 add tinyxml.h, fix char *NULL return value case 2009-10-13 21:28:18 +00:00
David Rose 8f5102d889 interrogate fix 2009-09-30 22:35:58 +00:00
David Rose 383a6e512c support tinyxml's (const string *) return types. 2009-08-11 17:24:56 +00:00
David Rose 1db044ca4e add hash(Filename) 2009-08-07 15:27:58 +00:00
David Rose 0e773c8684 respect __nonzero__ 2009-08-05 21:51:28 +00:00
David Rose 70e1e46a61 coercion memory leak fix, part 1 2009-06-10 14:33:44 +00:00
David Rose 2982ca3187 python 2.4 2009-02-19 00:38:44 +00:00
David Rose 221862b432 squelch compiler warnings about (char *) 2009-02-18 23:27:04 +00:00
David Rose f477db0b19 might as well expose int and float typecasts, too 2009-01-20 19:51:31 +00:00
David Rose a6f4fb2377 operator bool () -> __nonzero__() 2009-01-20 03:17:44 +00:00
David Rose 4cd50fa68d fix performance issues with implicit parameter coercion 2009-01-07 20:05:57 +00:00
David Rose 1462bee771 better Filename usage 2008-11-11 23:28:14 +00:00
David Rose 587f000ab5 correct prototype for setitem 2008-11-08 16:55:57 +00:00
David Rose 58e0537e3c wide interrogate improvements: sequence protocol, MAKE_SEQ, __setitem__, and parameter coercion 2008-11-07 21:12:42 +00:00
David Rose 9468e4583c further refinements to local_this checking 2008-10-29 19:06:57 +00:00
David Rose f7105a081b raise an exception if 'this' is null 2008-10-29 00:53:27 +00:00
David Rose e81660a741 check PyErr_Occurred() even in ndebug mode 2008-09-27 00:12:08 +00:00
David Rose 524128b9fd wip: starting experimental C-based task manager 2008-09-19 00:58:04 +00:00
David Rose fb9c56432a we are now using the modified BSD license 2008-05-28 18:37:20 +00:00
David Rose ef5b2fe57e squelch warning 2007-09-20 18:22:16 +00:00
David Rose 3804f89682 wchar_t might not be two bytes wide 2007-09-05 18:02:47 +00:00
David Rose 06a36aff63 get runtime info for things that don't inherit from TypedObject 2007-06-22 22:35:57 +00:00
David Rose 8d2bdc39fd first pass at SIMPLE_THREADS 2007-06-21 15:33:27 +00:00
David Rose 137998a5c7 track_in_interpreter 2007-05-09 22:07:48 +00:00
David Rose 346928ece7 support BLOCKING keyword 2007-04-18 21:51:36 +00:00
David Rose 0be53cccf6 interrogate changes: respect const, use Python names in diagnostic messages 2007-02-08 20:15:54 +00:00
David Rose 616de46c25 use as_typed_object() 2006-09-07 17:22:22 +00:00
David Rose 990174f44e class TypedObject is a typed class 2006-09-06 18:44:14 +00:00
David Rose eaf21c7e2b fix unary - in interrogate 2006-01-21 00:49:17 +00:00
David Rose 572a146c24 untabify 2006-01-13 18:38:07 +00:00
David Rose 968ad486b8 fix __rsub__ nonsense 2005-12-08 22:40:50 +00:00
David Rose 97c877ad3b don't bother to write doc strings for constructors 2005-09-26 18:22:39 +00:00
David Rose 9c24c092dd support python_repr 2005-09-14 00:08:50 +00:00
David Rose 096d7dfa50 better behavior for long comments 2005-09-12 17:18:05 +00:00
David Rose 88a77268b1 string limit 2005-09-12 16:11:00 +00:00
David Rose f2d34a6022 class doc strings 2005-09-10 00:02:12 +00:00
David Rose 59ceb897ed fix leaks, parameter checking in interrogate 2005-09-09 16:26:52 +00:00
David Rose 1f94eb12b4 build on irix 2005-07-13 17:07:25 +00:00
David Rose b531ece1b4 fix interrogate on Linux 2005-07-13 16:48:56 +00:00
David Rose 01c82da5df interrogate supports wstring 2005-07-13 15:37:56 +00:00
David Rose ac748503b4 dos2unix 2005-07-04 18:35:38 +00:00
Roger Hughston 31bf98f33a windows does not like this.. lets try again .. gcc and cv colisions :( 2005-06-29 22:13:27 +00:00
Roger Hughston a4515f26c9 till trying to get this to work on none consistant compilers.. 2005-06-29 21:57:22 +00:00
Roger Hughston 5e2df78ee8 hanged Comments for better DIR and help 2005-06-23 20:11:44 +00:00
Roger Hughston 069b7cda21 *** empty log message *** 2005-06-14 20:16:26 +00:00
Roger Hughston 05fafea499 dded Named argument support.. And A Support Class
fix to daves outpur/write bug..
2005-06-04 01:19:49 +00:00
Roger Hughston 59537b18d2 *** empty log message *** 2005-06-01 01:18:12 +00:00
Roger Hughston a31108fcb8 *** empty log message *** 2005-05-27 23:40:34 +00:00
Roger Hughston 3d02ef10f5 *** empty log message *** 2005-05-27 19:44:19 +00:00
Roger Hughston cdadcc77d8 *** empty log message *** 2005-05-27 03:15:02 +00:00
Roger Hughston d259278846 *** empty log message *** 2005-05-27 01:35:37 +00:00
Roger Hughston ac19f25620 *** empty log message *** 2005-05-27 01:20:46 +00:00
Roger Hughston c11bb894b2 *** empty log message *** 2005-05-25 23:03:56 +00:00
Roger Hughston 7c54d39837 *** empty log message *** 2005-05-25 22:57:40 +00:00
Roger Hughston 98196002ed *** empty log message *** 2005-05-25 20:20:46 +00:00
Roger Hughston a6d9f869dd *** empty log message *** 2005-05-25 20:09:00 +00:00
Roger Hughston b0276d5ddd *** empty log message *** 2005-05-24 18:16:25 +00:00
Roger Hughston feacd638ff *** empty log message *** 2005-05-24 17:46:10 +00:00
Roger Hughston 93ae9f6b1f *** empty log message *** 2005-05-24 17:44:37 +00:00
Roger Hughston f2e3a52f31 *** empty log message *** 2005-05-24 17:42:04 +00:00
Roger Hughston 63290756fe *** empty log message *** 2005-05-23 21:04:31 +00:00