**** SPECIAL CAUTION TO DEVELOPERS ****
The strings that represent attribute key names like "name",
"sym:name", "type", and so forth are extensively shared to save
memory. If a key name is modified for some reason (which is not
recommended), be aware that those change may affect thousands of parse
tree nodes. Moreover, changes to a key name will break the hashing
algorithm used to perform attribute lookup.
Bottom line: don't modify hash table key strings.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4618 626c5289-ae23-0410-ae9c-e8d60b6d4f22
I've moved completely away from the "value" type to "caml_value_t". Although
a bit painful, this will make things easier for me. I seem to be seeing
quite a few things that use the word value as a function, type, etc, and
wanted to get something that doesn't collide.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4593 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Type registration. Correct support for casting. Proper type safety.
Changed:
ocaml.swg: Correct casts, declaration order for C
ocamldec.swg: Removed problematic forward declarations without array index.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4573 626c5289-ae23-0410-ae9c-e8d60b6d4f22
xx-yy-zz_wrap.c[xx] (and xx-yy-zz-clos.scm and xx-yy-zz-generic.scm if
using TinyCLOS). Consistent with the "namifying" of other C
identifiers.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4535 626c5289-ae23-0410-ae9c-e8d60b6d4f22
The code written for -fvirtual is largely replicated in the code for directors and ought to be consolidated; they both are constructing vtables of sorts.
Both approaches also need fixing for when the virtual keyword is not used, eg
class Base {
virtual void foo();
virtual void bar();
};
class Derived : public Base {
virtual void foo();
void bar();
};
Neither currently detects bar as a virtual method.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4525 626c5289-ae23-0410-ae9c-e8d60b6d4f22
ocaml.cxx: director classes (needs more testing, but my Qt example works).
director.swg: Core director class for Ocaml.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4480 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Added SetNoneComparison in lang.cxx, which allows the language module to
specify how to determine whether the empty argument was given for the
'self' pointer.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4473 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Strings <=> std::string by value
std::wstring accessible from Ocaml. The string example converts a multibyte
japanese EUC sequence to a single wchar_t sequence if you have the ja_JP.EUC-JP
locale, or similar.
Better handling of reference in types
Corrected problems with & * mismatch in type verifier.
Type verifier now really functional. No more type errors in places they
wouldn't be allowed in C++, unless you work at it.
Added argout_ref example for argout_ref.
Init code now effective (called from let _ = f_<module>_init ())
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4412 626c5289-ae23-0410-ae9c-e8d60b6d4f22
conforms with chicken "egg" standard. Got rid of ##csi#run for
relinking the Scheme interpreter as no longer needed. Changed all
documentation to reflect both changes.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4411 626c5289-ae23-0410-ae9c-e8d60b6d4f22