Commit graph

49 commits

Author SHA1 Message Date
Orion Poplawski
350c410d4b Update print() signature for octave 4.0 2015-07-09 19:20:46 -06:00
Orion Poplawski
248890aad0 Support for octave 4.0.0 2015-07-08 13:26:36 -06:00
Jeremy
e301457a43 Attempting fixes for Octave shared_ptr support 2015-01-05 10:53:06 -05:00
William S Fulton
23373e9ffd Revert "Octave: cleanup/restructure library files"
This reverts commit bf12d76d03.

Reverting a series of Octave commits for re-applying again without
incorrect whitespace changes.
2014-10-09 19:34:02 +01:00
Karl Wette
bf12d76d03 Octave: cleanup/restructure library files
- Restructure runtime code into declarations, function
  and class definitions, and initialisation code
- Rename internal functions/types to follow SWIG_Octave...
  or SwigOct... naming styles
- Style/comment/whitespace cleanups
2014-10-04 19:18:32 +02:00
William S Fulton
4ba4a02e93 Fix unused method warning in Octave 2014-02-15 18:36:01 +00:00
Karl Wette
5b167cc12d octave: update support to Octave version 3.8.0 2014-01-13 18:24:17 +13:00
Karl Wette
d72e3dd899 Octave: add SWIGRUNTIMEINLINE to SWIG_Octave_SetConstant() 2013-06-13 17:46:47 +02:00
Karl Wette
ef160ec072 Octave: remove allocation of new octave_value in SWIG_Octave_SetGlobalValue()
- this introduces a memory leak, which becomes significant for large
  modules (many global variables) and many module re-loadings (e.g.
  during a long-running script)
- the original motivation was to prevent double-frees on exit, but this
  problem appears to have been fixed by the _Exit() hack in later commits,
  and in any case is an issue only for Octave ~3.2, so it should be safe to
  remove; tested by running Octave examples/test suite with Debian 3.2.4 and
  built-from-source 3.2.4, 3.4.3, and 3.6.3
2013-05-12 17:32:08 +01:00
Karl Wette
f76d63419f [octave] Declare these functions only if directors are used
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13108 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-23 09:32:51 +00:00
Karl Wette
bc2a78fbab New Octave module loading behaviour
- Use call syntax instead of cmdline to choose global/noglobal load:
  global: 'example;', noglobal: 'example = example;'
- All functions loaded with Octave 'autoload' command; correctly
  loads .oct module and prevents segfault in Octave 3.0.5
- Functions no longer installed as global variables as well,
  so global operator dispatch now only looks for functions
- Octave at-exit function created from string, not function,
  so no dependence on loaded .oct files at cleanup time
- C at-exit function now immediately exits Octave (with correct
  status) to prevent seg-fault due to dodgy memory cleanup
  in some Octave versions
- Documentation string for module loading function

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13088 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-14 09:24:15 +00:00
Karl Wette
4f11aaa849 Declare Octave public wrapping functions with DEFUNX_DLD
- New helper function Octave_begin_function writes function declaration
  and installer function definition using SWIG_DEFUN macro, which in
  turn uses Octave DEFUNX_DLD macro
- Can now use Octave's dynamic module loader to load functions safely
- Link documentation of public wrapping functions through DEFUNX_DLD

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13087 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-14 09:24:00 +00:00
Karl Wette
bf0fe83462 New functions for handling Octave global variables
- Creates a copy of the variable to be assigned to the
  symbol table, so it can be safely deallocated on exit

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13086 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-14 09:23:45 +00:00
Karl Wette
a0dbe43c73 Move Octave SWIG runtime functions to Lib/octave/octruntime.swg
- Add documentation strings for runtime functions

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13085 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-14 09:23:33 +00:00
Karl Wette
de49578c31 Move Octave director-related code into Lib/octave/director.swg
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13084 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-14 09:23:20 +00:00
Karl Wette
35b2270f84 Make octave_dim tests pass for octave version != 3.2.4
- see SourceForge #3516652

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12995 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-04-15 22:47:38 +00:00
Xavier Delacour
b0ea5581c3 add extra logic to the octave_swig_type::dims(void) method: it checks if the user has defined a __dims__ method and uses this in stead of returning (1,1) (patch from jgillis, sf 3425993)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12955 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-03-26 15:45:02 +00:00
Xavier Delacour
d29e751cce make is_object return true for swig types (patch from jgillis, sf 3424833)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12954 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-03-26 15:38:10 +00:00
Xavier Delacour
1878eb4890 Comment declaration of unimplemented function swig_register_director (from Karl Wette)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12909 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-02-27 17:07:44 +00:00
Xavier Delacour
2f68aa0a34 Added example of friend operator use to Examples/octave/operator, fixed minor bug that causes a panic in octave 3.0.5. Tested examples work for octave 3.0.5, 3.2.4, and 3.4.0. (thanks to Karl Wette)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12794 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-08-31 20:54:11 +00:00
Xavier Delacour
dae9457962 Octave patches for 3.4.0 compatibility, etc. (sf 3387394, thanks for Karl Wette)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12774 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-08-08 21:41:34 +00:00
Xavier Delacour
06221dacae Allow global operators to be SWIG-wrapped functions (by Karl Wette)
The Octave run-time allows global operators to be implemented,
e.g. op_scalar_add_X for adding a scalar and a wrapped struct X.
However it doesn't currently seem possible for these operators to
map to SWIG-wrapped functions. This is because dispatch_global_op()
looks for the operators to be installed as global variables, whereas
install_global() installs SWIG-wrapped functions as builtin functions;
the two appear to be separate symbol tables in Octave.

This patch modifies install_global() to install global operator functions
as both builtin functions and as global variables, where the value of the
global variable is a function handle to the operator function. It decides
if a function is a global operator if it begins with the prefix "op_"; this
prefix can be modified through a new command-line variable. It also always
installs the operators globally, regardless of whether the rest of the module
is being loaded globally. To accomplish this, install_global() is now always
called, but takes a bool argument specifying whether it should load symbols
globally. If a function is not a global operator, install_global() should
behave as before.

Tested that this compiles and works on Octave 3.2.4 and 3.4.0.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12675 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-17 02:02:15 +00:00
Xavier Delacour
2d5c4302b0 Adds support for Python __r*__ operators (by Karl Wette)
The Python operator model, when evaluating e.g. x + y, is to call
x.__add__(y), then y.__radd__(x) if the former does not exist, etc.
This patch adds similar functionality to the SWIG runtime code.
For the special case of the comparison operators __l*__ and __g*__,
the reverse operators are __g*__ and __l*__ respectively.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12674 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-17 02:00:25 +00:00
Xavier Delacour
360c1aaa1b Fix an incompatibility with never versions of Octave (by Karl Wette)
According to the Octave changelog (ChangeLog and src/ChangeLog
in the Octave 3.4.0 source), octave_base_value::map_value() now
returns an octave_map instead of an Octave_map; this change dates
from Octave API version 40 onward. This patch makes the necessary
changes to the SWIG runtime while remaining backward-compatible.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12673 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-17 01:59:53 +00:00
Xavier Delacour
e22eb83574 Minor improvement to the printing of Octave SWIG classes (by Karl Wette)
Uses Octave's indentation functions to make sure the classes are
printed at the correct indentation level, e.g. for a cell array
containing SWIG-wrapped classes.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12672 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-17 01:59:19 +00:00
William S Fulton
5bcfc81c12 Fix potential name clashes with symbols in the Director class
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12063 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-05-27 20:59:29 +00:00
William S Fulton
f9caea4b29 Add SWIG_DIRECTOR_CAST recently added to languages needing it
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11989 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-04-10 00:04:28 +00:00
William S Fulton
9354467b87 remove Octave -api option and use new OCTAVE_API_VERSION_NUMBER instead
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11780 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-12-12 21:11:45 +00:00
Xavier Delacour
b81cb3bff9 try not to require -api option in octave
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11577 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-08-15 01:19:28 +00:00
Xavier Delacour
68d0177d6c more fixes for octave 3.2
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11389 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-07-12 21:09:50 +00:00
Xavier Delacour
cdc9de8210 small fixes to make octave module compatible with octave 3.2
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11388 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-07-12 20:23:19 +00:00
Xavier Delacour
b6e44f2427 Octave: add {save,load}_{ascii,binary,hdf} functions that silently do nothing;
give default operator mappings a more conventional suffix;
fix test li_std_string_extra.




git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11047 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-01-10 00:20:46 +00:00
Xavier Delacour
8b857aa9c1 Fix octave tests li_std_pair_extra, arrays_global, grouping, struct_value, unions.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11046 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-01-09 23:38:14 +00:00
Xavier Delacour
1f38f3db67 Minor fixes:
Fix crashing bug when compiling with MSVC.
Fix print of packed type of void*.
Have namespaces always invoke members as statics/globals.
Make SWIG_init_user function static.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10427 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-05-08 23:56:40 +00:00
Xavier Delacour
e7894a104b Add test for null pointer handling ([] taken as null pointer).
Support automatic single cell dereferencing. Add test for it and pass-through cell arrays.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10379 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-20 14:29:46 +00:00
Xavier Delacour
9d6e70ad35 Have convert pointer routines return SWIG_ERROR rather than more specific error, since older bindings (for other languages) depend on that interface.
Use SWIGRUNTIME instead of anonymous namespace to allow for correct linkage when using external runtime. Fixes infinite-recursion bug when calling director method of class whose base is in another module (since the common Director base gets a different typename in each module, per anonymous namespace).



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10376 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-18 01:06:23 +00:00
Xavier Delacour
87390fac26 Add map_keys support so member auto-completion works.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10373 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-13 21:16:12 +00:00
Xavier Delacour
9a0cf47532 Print all class members.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10372 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-13 21:04:43 +00:00
Xavier Delacour
4e6c09da80 Don't use __gnu_ext::hash_map.
Use octave_swig_packed to hold swig_module_info *.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10371 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-12 14:29:38 +00:00
Xavier Delacour
de6e25f3bb Fixes for building w/ 64-bit gcc.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10368 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-11 21:58:42 +00:00
John Lenz
4d10d60d7c Add SWIG_TYPE_TABLE and SWIG_RUNTIME_VERSION to the octave module
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10358 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-06 20:58:43 +00:00
Xavier Delacour
05097de0ff Add support for manual %docstrings, so users can provide texinfo help for wrapped functions.
Add some support for autodoc feature, so otherwise undocumented functions at least get prototype.
Fix bug in argument number check.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10341 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-04-03 13:22:19 +00:00
Xavier Delacour
7b1cab1554 varargs fixes.
Added passthrough out typemaps for internal Octave types.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10320 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-03-24 22:33:55 +00:00
Xavier Delacour
fe15a5a87c Fix varargs.
Allow manual construction of entire result octave_value_list.
Make octrun.swg conform to style conventions.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10316 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-03-20 23:23:38 +00:00
Xavier Delacour
e314d97f32 Added some support for inline texinfo documentation, and fixed a handful of small items needed to get OpenCV bindings to build.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10313 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-03-17 18:46:30 +00:00
Xavier Delacour
cb131bfeb9 Fixed import directive, string access segv bug, SWIG_Octave_{Get,Set}Module bug, and added partial support for boost pointers.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10301 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-03-09 20:21:14 +00:00
Xavier Delacour
4d283f59c3 Fix ~15 tests, minor doc fixes, improve STL support.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10298 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-03-05 04:35:34 +00:00
Xavier Delacour
2ded60495f Implement OCTAVE::runtimeCode, wrap some parts of runtime in anonymous namespace, put Director rtdir map into module clientdata.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10291 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-03-02 15:35:49 +00:00
Xavier Delacour
393391965c Initial commit of Octave module.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10290 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2008-03-01 23:35:44 +00:00