Turns out the issue that led me to push a broken commit in
the first place also caused the build to succeed when I
tested the fix in a rush. I should've just used the GitHub
merge button. Sorry for the noise, hopefully won't happen again.
The original code was ported from the C# module. It looks like it
tried to avoid reading TLS data by using a shared counter. However,
without also synchronizing on the counter check (or using atomics)
the code is racy. While the races might be benign (the thread that
sets the exception also increments the counter, so when there is
actually an exception, the visible value will always be non-zero
even if it is outdated), they are still undefined behavior,
strictly speaking. Additionally, just using TLS isn't expensive
either.
Just "%typemap(ddirectorout) MyType &USEME = SWIGTYPE &;" does not
inherit the antivepointer attribute from the SWIGTYPE & case, but
the other typemaps that are not overridden (dout/…). Thus, some
of the emitted code used native pointers, and some SWIGTYPE_p_int.
Object is currently a D keyword for the purposes of SWIG
(that's in fact a little too strict, but Object is the root
of the class hierarchy and some parts of the code break).
'template_typedef_typedef' is supposed to test.
Previously, the function pointers were not only declared with
extern(C) calling convention, but actually had C linkage
themselves. Thus, they were exported under their bare names,
potentially colliding with the actual function definitions
in the wrapped library if the dynamic linker decided to
resolve them the wrong way.
This fixes the sneaky1 test case, although I have no idea why
the add() reference in D_add() (via the PLT) is rebound to the
function pointer there and not in all other test cases and
real-world libraries. As far as I can see, there don't seem to
be any special symbol visibility/binding settings involved in
our build system.
There might be other cases where this happens when $dclassname
is used for code emitted into the proxy class itself, but so
far, there are none in the test suite or any bug reports.
The director cycle breaking code was emitted when protectors
were not actually enabled on the parent class, leading to
swigIsMethodOverridden being called but not declared.
Fixes unknown preprocessor directive error introduced in #217
commit 255c929c56
These were probably intended as script comments using # when C/C++
comments using // or /* */ should have been used.
* vadz/py-args:
Allow using enum elements as default values for Python functions.
Don't always use "*args" for all Python wrapper functions.
No real changes, just make PYTHON::check_kwargs() const.
Refactor: move makeParameterName() to common Language base class.
Remove long line wrapping from Python parameter list generation code.
* kwwette-master:
Doc/Manual/Octave.html: update which Octave versions have been tested against
.travis.yml: also test against Octave version 3.8
Revert "Suppress Octave failing the build"
.travis.yml: reduce Octave make jobs to 3
Octave: disable optimization of tests for faster compiles/less memory usage
- This reverts commit fea2fc137e.
- Failures were probably due to gcc running out of memory
- Disabling optimization of Octave tests should both increase
compile times and reduce memory usage, and reducing number
of make jobs to 3 should also allow for more memory per job
- Filter out all but -g... and -W... flags from OCTAVE_CXXFLAGS
- Use AX_CHECK_COMPILE_FLAG() to check if -O0 is supported, if so
add to end of OCTAVE_CXXFLAGS to ensure optimization is disabled
- Also run mkoctfile under "env -" to protect it from environment
- Also use more standard-compliant sed expressions
Sometimes the GC just won't run the finalizers, so we output a warning
instead of throwing an error, so now the test-suite will pass but with a
warning if the number of objects is not as expected.
Was notably failing on RHEL6 using OpenSUSE build testing with openjdk-1.6
variable. Only set the variable if another global variable is true,
but that variable is always false. The effect is that the variable is
never written, but as far as the compiler is concerned it might escape.