Sam Edwards
e2b4353800
general: Replace NULL (and 0 as pointer) with C++11 nullptr
...
Exceptions to this replacement are:
- .c files
- Headers included by a .c file
- stb_image.h
- dr_flac.h
- Strings
- Comments
2018-06-03 16:35:13 -06:00
Sam Edwards
d422d74abb
general: Clean up asserts which were abusing NULL
2018-06-03 16:26:44 -06:00
rdb
e0245d2777
First step towards eliminating `using namespace std;` ( #335 )
2018-06-03 20:32:23 +02:00
rdb
db5dd98d33
general: further warning fixes, use -Wno-unused-variable if NDEBUG
...
Disabling unused variable checking is needed in NDEBUG builds because of the heavy use of temporary variables in asserts.
2018-05-30 22:51:04 +02:00
rdb
6b726fa697
general: fix various compiler warnings and issues exposed thereby
2018-05-30 11:09:35 +02:00
rdb
3b4d12cb99
interrogate: also fall back to compare_to in Python 2
...
This is to create the same behaviour in Python 2 and 3.
2018-05-21 11:55:46 +02:00
rdb
7125a3e587
interrogate: allow passing None for args that have NULL as default value
2018-04-05 20:49:13 +02:00
rdb
8b6616814d
interrogate_module: warn about circular dependencies between classes
...
This will help us catch cases wherein we inadvertently create a circular dependency between component libraries. Right now it only checks inheritance and typedefs, but this can be expanded in the future.
Also, sorts the module initialization by dependency topology. This isn't very important right now, but having this guarantee might help when refactoring module initialization in the future.
2018-02-27 20:23:36 +01:00
rdb
fa231664bd
interrogate: don't mark base types as global
2018-02-27 18:47:51 +01:00
rdb
2450f31ef5
interrogate: remove deprecated and unneeded downcastTo*() functions
...
They have not been needed for a very long time, and they create an awkward reverse dependency of base classes on derived classes.
2018-02-27 15:06:12 +01:00
rdb
193e4b5f59
interrogate: clean py_panda.h; use macros to access Dtool_PyInstDef
2017-12-12 23:03:38 +01:00
rdb
18678214ae
interrogate: pass "args" tuple to function that takes PyObject *args
2017-12-12 16:20:59 +01:00
rdb
69b3468b2c
interrogate: more improvements to seq/map wrappers
...
Gets rid of properties defined as both MAKE_SEQ_PROPERTY/MAKE_MAP_PROPERTY, which are just a bad idea. Instead, adds a way for map properties to define a separate "keys" interface.
Fixes : #203
2017-11-27 17:29:50 +01:00
rdb
404842e70b
interrogate: fix warning message caused by erroneously wrapped remap
...
Fixes : #191
2017-11-11 20:36:58 +01:00
rdb
b8bf8bd641
interrogate: fix crash when calling functions returning TypedWritable
2017-11-08 00:04:00 +01:00
rdb
1b1d80cd27
More thoroughly fix issues with pickling Panda objects in Python 3
...
This also adds DatagramBuffer, a class for writing datagrams to memory and reading them from there again.
2017-11-08 00:02:35 +01:00
rdb
483a491ed7
interrogate: simplify coercion code
...
This remove support for coercing non-ReferenceCounted types that are neither default-constructible nor move-assignable, but it turns out none of the classes we really need it for matches that.
It further cuts down on the amount of code that is being generated to support coercion in cases where it makes absolutely no sense.
2017-11-06 19:53:38 +01:00
rdb
96d237377b
interrogate: add various sequence/mapping methods to seq/map property
2017-11-05 18:01:39 +01:00
frainfreeze
f22c0cdd83
Add README.md files for various directories
...
Closes : #10
2017-10-31 19:20:24 +01:00
rdb
0c0f9adab9
Support coroutines and async/await in the task manager and loader
2017-10-31 18:56:41 +01:00
rdb
51d948a7fa
Support compilation for Python 3.7
2017-10-13 12:40:47 +02:00
rdb
464cd5fc8b
Replace __builtin_expect macros with LIKELY/UNLIKELY
2017-10-09 00:22:28 +02:00
rdb
bf190f7306
interrogate: support MAKE_MAP_PROPERTY
2017-10-09 00:02:46 +02:00
rdb
0e2b14cf4c
pgraph: custom binding for set_shader_input()
...
Should be faster and more reliable at PTA handling
We no longer need the interrogate perf hack for the first-arg InternalName
Fixes : #161
2017-10-08 17:50:28 +02:00
rdb
7ff8b62fb8
interrogate: various fixes:
...
* handle static methods with explicit self
* fix len() and __setitem__ of mapping types
* fix inheritance of __getattr__ and __setattr__
* fix overload resolution error with nullptr_t arguments
* bool overloads now come after float/double overloads
* record whether class is final in interrogatedb
* add Dtool_EmptyTuple
* optimization for final classes: no need for downcast
2017-09-19 18:46:21 +02:00
rdb
d1c34c3360
interrogate: support static properties
2017-08-07 22:04:56 +02:00
rdb
d576c6b638
Improvements to generated API docs, especially in direct tree.
...
Also add an entry point for pfreeze.
2017-05-24 13:30:21 +02:00
rdb
a387fb9f35
interrogate: nullptr handling, faster kwargs handling in some cases
2017-05-14 22:19:25 +02:00
rdb
e1c916cdc3
interrogate: handle implicit destructors correctly
2017-04-02 14:44:51 +02:00
Sam Edwards
ea1ba281b5
interrogate: Add missing cast in generated calls to PyObject_INIT_VAR
2017-03-08 01:54:21 -07:00
rdb
cfe810ace7
Add set_shader_inputs for efficiently setting multiple shader inputs
2017-02-06 13:16:27 +01:00
rdb
4ed199cece
Fix various compile warnings and a few code consistency issues
2017-01-09 20:36:53 +01:00
rdb
41d26284d7
Fix various compilation issues on Mac.
...
Work around bugs in Apple Clang that ships with XCode 4 with C++11 by disabling constexpr
Use move() instead of std::move()
It also looks like we'll have to continue using pystub for tools that use libp3interrogatedb for now.
2017-01-08 17:17:56 -05:00
rdb
32377cb618
interrogate: fix to allow pointers to forcetyped classes
2016-12-07 23:04:15 +01:00
rdb
22f0b50851
More Interrogate C++11 support changes:
...
* Parse variadic templates
* Add (incomplete) type_traits support
* Parse anonymous class template params
* Parse volatile/lvalue/rvalue methods
* Don't generate destructor for indestructible types
* Add xmmintrin.h header
* Allow invoking extensions with references
2016-11-03 12:17:11 +01:00
rdb
29411f5e14
Merge remote-tracking branch 'origin/release/1.9.x'
2016-10-31 22:32:39 +01:00
rdb
5832ab8099
Fix errors when trying to raise vectors to a power
2016-10-31 22:10:47 +01:00
rdb
f1f4951fb5
Merge remote-tracking branch 'origin/release/1.9.x'
2016-10-13 00:25:57 +02:00
rdb
955ca0d334
Fix support for passing keyword arguments to methods named make()
...
such as *Attrib.make() and Shader.make()
2016-10-13 00:21:59 +02:00
rdb
33c6e21352
Fix regression that stopped buffer protocol from working
2016-08-09 01:45:26 +02:00
rdb
47388b0dbc
Separate out CPython calls from core libs; eliminate need for pystub
2016-07-20 14:30:41 +02:00
rdb
8381118a97
Assorted tweaks and compile warning fixes
2016-07-14 12:54:39 +02:00
rdb
0821bec2d0
Backport 2f0bc01 to 1.9: Fix bug causing random crash during module initialization
2016-06-22 15:04:00 +02:00
rdb
4283a63a7d
Merge branch 'release/1.9.x'
2016-06-11 01:29:14 +02:00
rdb
ba919b0948
Fix crash running TaskTester
2016-06-11 01:11:03 +02:00
rdb
7d6b7f40f5
Merge branch 'release/1.9.x'
2016-06-09 21:52:51 +02:00
rdb
b303962e96
Disable cycle detection in tasks for now, it is way too unstable
2016-06-09 16:48:31 +02:00
rdb
8d05ef3022
Assorted fixes
2016-06-03 22:23:42 +02:00
rdb
5543716660
Interrogate wraps vector<unsigned char> as Python 3 bytes object
2016-06-03 01:47:54 +02:00
rdb
242cc5f57d
Support template "using" definitions in interrogate
2016-05-31 18:48:32 +02:00
rdb
ce29ae490d
Interrogate improvements, more properties, MAKE_SEQ_PROPERTY
2016-05-11 00:16:53 +02:00
rdb
fb78fe6e2a
Interrogate enum class support (maps to Python 3.4 enums), sanify wrapper code
2016-05-07 00:45:26 +02:00
rdb
5feecd2243
Fix iterator support in interrogate
2016-04-28 11:08:23 +02:00
rdb
2f0bc01b68
Fix bug causing random crash during module initialization
2016-04-18 14:34:50 +02:00
rdb
15b0ba45f9
Fix broken pickling in Python 3 build
2016-03-31 16:49:27 +02:00
rdb
f933eb4e96
Fix compile warnings (incl. "Attempt to define invalid type" spam), define _Dtool_CheckErrorOccurred in release builds for binary compat
2016-02-27 16:45:22 +01:00
tobspr
0fcfb8e372
New file headers, new comment style
2016-02-17 17:47:48 +01:00
rdb
caa03c53dd
Interrogate cppparser improvements, C++11/14/17 additions:
...
* Support trailing return type.
* Ignore C++14 digit separators.
* Parse C++14 binary number representations.
* Support "using"-style type aliases.
* Support decltype and auto with "new".
* Remove silly "long float" and "long long float".
* Support default visibility with class inheritance.
* Remove -longlong hack since C++11 supports long long natively.
* Support unary plus operator.
* Preserve bitfield definitions.
* Support constructor inits using braces.
* Support override/final specifiers.
* Ignore [[attributes]] in certain cases
* Add support for typeid() in expressions
* Parse (but ignore) lambda expressions
* Differentiate between casts, add const_cast/reinterpret_cast
* Support thread_local variables.
2016-02-16 01:18:51 +01:00
rdb
ef72a0a410
Merge branch 'release/1.9.x'
2016-02-11 19:09:25 +01:00
rdb
bb684b2a07
Fix a few issues with obscure CPython-based deployments
2016-02-09 12:33:57 +01:00
rdb
090e912ce6
Cleanup of comments and whitespace
2016-02-01 22:30:43 +01:00
rdb
8a205ac100
MAKE_PROPERTY should ignore setter overloads that take the wrong number of arguments
2016-01-25 17:02:25 +01:00
rdb
83ed206551
Support implicitly generated copy constructor and default constructor in interrogate
2016-01-03 21:55:50 +01:00
rdb
be60303502
Support =default and =delete methods in Interrogate
2016-01-03 19:56:20 +01:00
rdb
bccddaf4e8
TextNode properties, fix setters that return error bool
2015-12-29 18:46:37 +01:00
rdb
cdc8d7d4d9
Interrogate should pick up definitions in all files explicitly named
2015-12-26 15:24:19 +01:00
rdb
e4857a58bb
Add many more Python properties
2015-12-24 16:17:34 +01:00
rdb
db6f0342cc
Add properties with has/clear (interrogatedb v3.1)
2015-12-24 14:25:45 +01:00
rdb
6480e82e3b
First pass adding properties to many Panda classes
2015-12-10 16:23:06 +01:00
rdb
50d2e8324e
Merge branch 'release/1.9.x'
...
Conflicts:
.travis.yml
direct/src/directtools/DirectLights.py
panda/src/nativenet/buffered_datagramconnection.h
2015-12-06 22:32:12 +01:00
rdb
287c44ce53
Various fixes for Python 3 versions before Python 3.3
2015-12-06 22:05:44 +01:00
rdb
33d183d4f7
Throw ImportError instead of cryptic failure when importing extension module from incompatible version of Python
2015-11-28 19:22:57 +01:00
rdb
1b857d6bda
A few interrogate improvements
2015-11-28 17:54:01 +01:00
rdb
bdf91e206d
Remove references to Python.h and py_config.h from Panda headers, to prevent picking up a dependency on Python libraries in third-party modules
2015-11-28 16:33:44 +01:00
rdb
0a9f9887f9
Merge branch 'release/1.9.x'
...
Conflicts:
direct/src/p3d/Packager.py
direct/src/p3d/ppackage.py
makepanda/makepandacore.py
2015-11-21 03:17:33 +01:00
rdb
4c61db6374
Consider non-const overload before considering const overload in Python bindings
2015-11-20 20:24:58 +01:00
rdb
d3885b665e
Fix static MAKE_SEQs (eg WebcamVideo.get_options(), MicrophoneAudio.get_options())
2015-11-20 02:05:44 +01:00
rdb
db3ab953e4
Remove ppremake, genPyCode, and all hacks created to support them
2015-11-09 19:06:49 +01:00
rdb
ac1c036cac
interrogatedb 3.0 to restructure make_seq, improve make_seq handling and performance
2015-11-09 18:03:30 +01:00
rdb
da17cce447
Fix error and warnings in 32-bit Windows build
2015-11-01 16:57:52 +01:00
rdb
0ae2df7e02
Merge branch 'release/1.9.x'
2015-11-01 15:54:58 +01:00
rdb
63a9b5dfec
Re-expose MouseWatcherGroup; clearer error message for make_seq when getter is not exposed
2015-11-01 15:45:52 +01:00
rdb
4ebbe0748d
Add -nomangle flag to interrogate do disable mangled aliases of function names
2015-10-17 14:25:37 +02:00
rdb
920210c999
Fix the vast majority of Interrogate parse issues and warnings, add support for inline namespace and constexpr
2015-10-16 14:57:40 +02:00
rdb
a43d6a45c1
Fix issue building with pre-C++11 compiler
2015-10-12 14:20:23 +02:00
rdb
ba45120eac
Try to stay compatible with Bison 2.5 (for Ubuntu precise), support C++11 and C++17 static_assert, improve error reporting, handle several gcc keyword aliases, fix bug handling preprocessor expression in which the same manifest occurs more than once
2015-10-11 16:52:33 +02:00
rdb
e327c7e978
Vastly improve quality of Interrogate error messages, also fix erroneous location indications
...
This change also causes Interrogate to safely ignore "register" keywords in function parameters
2015-10-10 15:15:22 +02:00
rdb
7738294657
Fix a few more type size issues
2015-10-07 19:10:52 +02:00
rdb
18ad6d1543
Replace many int params with size_t params where appropriate, and work towards fixing type conversion warnings
2015-10-07 18:58:26 +02:00
rdb
036adff924
Merge branch 'release/1.9.x'
2015-09-30 14:07:21 +02:00
rdb
fcd3bfd15c
Fix interrogate issues with long, streampos, streamoff, streamsize and ptrdiff_t
2015-09-28 13:08:38 +02:00
rdb
1d9aff0c48
Fix wrapper for operator bool of TypeHandle
2015-09-19 14:50:59 +02:00
rdb
57e5c8fb25
Wrap TypeHandle and ButtonHandle as ints in C wrappers
2015-09-10 15:29:31 +02:00
rdb
d3487eba6b
Set visibility attributes on all exported bindings
2015-09-07 23:31:15 +02:00
rdb
3cd15c3d48
Merge branch 'release/1.9.x'
2015-08-31 15:59:06 +02:00
rdb
56b94eb815
Don't raise exception in tp_traverse, instead silently passing case where object is already destructed
2015-08-28 16:28:03 +02:00
rdb
64144955a0
Fix for typedefs to external types in interrogate
2015-07-29 10:45:55 +02:00
rdb
1f0b4332e3
Add softspace flag to StreamWriter - fixes print spaces in runtime env
2015-07-27 20:23:47 +02:00
Sam Edwards
16bfd3750f
Add missing includes.
2015-07-12 19:27:13 -07:00
rdb
5913546229
Proper overflow checking for numeric chars
2015-07-08 02:03:24 +02:00