Commit graph

95 commits

Author SHA1 Message Date
Orion Poplawski
5a6a39a4ee Add #include <climits> for INT_MAX 2015-07-10 08:24:09 -06:00
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
Olly Betts
c4268c369b Fix cut-and-paste typo 2015-03-12 17:50:52 +13: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
William S Fulton
bfa3d378ec Revert "Octave: drop support for Octave versions older than 3.2.0"
This reverts commit 952eee8f59.

Reverting a series of Octave commits for re-applying again without
incorrect whitespace changes.
2014-10-09 19:33:58 +01:00
William S Fulton
851f122bfe Revert "Octave: remove unused function SwigOctType::help_text()"
This reverts commit 8c7e578279.

Reverting a series of Octave commits for re-applying again without
incorrect whitespace changes.
2014-10-09 19:33:48 +01:00
William S Fulton
a9c9c9c848 Revert "Octave: remove unused field SwigOctClass::constructor_doc"
This reverts commit afa9affcd9.

Reverting a series of Octave commits for re-applying again without
incorrect whitespace changes.
2014-10-09 19:33:40 +01:00
Karl Wette
afa9affcd9 Octave: remove unused field SwigOctClass::constructor_doc 2014-10-05 20:54:20 +02:00
Karl Wette
8c7e578279 Octave: remove unused function SwigOctType::help_text() 2014-10-05 20:53:27 +02:00
Karl Wette
952eee8f59 Octave: drop support for Octave versions older than 3.2.0
- Latest non-supported version is 3.0.5, released 2009-04-09
- Earliest supported version is 3.2.0, released 2009-06-05
2014-10-04 19:40:52 +02: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
Karl Wette
5c5510842b Octave: remove Python code from std_carray.i 2014-05-29 23:42:55 +02:00
Olly Betts
2f3bf144c6 Fix assorted comment and documentation typos 2014-02-23 17:15:22 +13:00
William S Fulton
0d9a8721f4 Move some header file includes into fragments for UTL languages 2014-02-21 19:02:14 +00:00
William S Fulton
4ba4a02e93 Fix unused method warning in Octave 2014-02-15 18:36:01 +00:00
William S Fulton
cc650e692e Director exceptions now derive from std::exception 2014-01-20 19:40:52 +00:00
Karl Wette
5b167cc12d octave: update support to Octave version 3.8.0 2014-01-13 18:24:17 +13:00
William S Fulton
1a19451c1b Error out attempting to use directors without -c++
Remove redundant #ifdef __cplusplus markers in director.swg
2013-12-23 20:23:54 +00:00
William S Fulton
135a7cc558 Beautify director.swg files
Also some comment corrections for Perl
2013-12-23 19:50:41 +00:00
William S Fulton
80f8d1d922 Fix for missing C++ code in std::multimap wrappers.
%template for a std::multimap generated uncompilable code unless a
%template for a std::map of the same template types was also coded up.

This patch is needed in conjunction with previous commit - 5f1fff1849

Closes #64
Closes #65
2013-08-06 07:02:49 +01:00
Karl Wette
d72e3dd899 Octave: add SWIGRUNTIMEINLINE to SWIG_Octave_SetConstant() 2013-06-13 17:46:47 +02:00
Karl Wette
93650b2911 Octave: install functions only once, when creating module
- once installed, Octave functions can never really be uninstalled
  (clear -f doesn't prevent the function being called again), so
  it makes no sense to install functions more than once
- this can lead to a significant speed-up of module loading times,
  up to a factor of 10 for a large module loaded multiple times
2013-05-12 17:32:09 +01: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
e60ae2d81d octave: Simplified module loading.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13941 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-28 20:22:56 +00:00
Karl Wette
ae0c4d37b9 octave: improved segfault-on-exit prevention hack
- Now simply set exit function pointer "octave_exit" to _Exit.
  This correctly preserves exit status when error() is called.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13336 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-07-20 07:31:32 +00:00
Karl Wette
d1ae77bdc2 octave: use _Exit instead of _exit
- _exit is a POSIX function (unistd.h), whereas _Exit is in C99 (stdlib.h)
  and is therefore more likely to be supported by C++ compilers (cstdlib)

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13318 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-07-12 17:53:02 +00: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
f8135379a1 [octave] Make sure SWIG_global_name is a std::string for comparison
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13107 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-23 09:32:38 +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
Karl Wette
70e0cf60f7 Fixed segfault-on-exit in octave 3.2.4
- see SourceForge #3516652

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12994 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-04-15 22:47:19 +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
William S Fulton
347f2782d2 Fix missing stddef.h when %import of STL containers. Was causing compile failures witht g++-4.6.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12939 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-03-20 20:07:56 +00:00
William S Fulton
50693941c6 Fix #3475492 - iterating through std::vector wrappers of enumerations.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12916 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-03-13 07:10:24 +00:00
Xavier Delacour
65942bd224 add missing file Lib/octave/std_list.i
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12914 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-02-27 18:29:50 +00:00
Xavier Delacour
95a084affb Fix imports test (from Karl Wette)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12912 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-02-27 17:09:44 +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
6cd79f4320 Use -globals . to load global variables in module namespace (from Karl Wette)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12908 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-02-27 17:07:16 +00:00
Xavier Delacour
f8774be92d Allow Octave modules to be re-loaded after a "clear all" (thanks to Karl Wette; SF 3418908)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12824 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-10-13 23:48:28 +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
3372c2ba62 Changes Octave module loading behavior, so that modules can be safely loaded inside functions without first being loaded at the base level. (Basically the module is now always loaded in the base context, and then a local link to the module is created in the current context.) Added an example, module_load, to Examples/octave to test this behaviour in different ways. 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@12793 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-08-31 20:50:59 +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