mishas / robin Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/robin
Automatically exported from code.google.com/p/robin
--classes flag of ./griffin and Griffin.jar (robin/Launcher.java), should
accept as parameters
(besides classes, functions, namespaces, etc.) variables. Also, it shouldn't
wrap them, if they are
not stated.
For example, the next code:
"""
namespace ns {
...
}
const double PI = 3.14;
"""
When ran with: "./griffin --in blah.h --classes ns"
Should wrap ONLY namespace ns, and ignore PI.
On the other hand, running with: "./griffin --in blah.h --classes PI"
Shouldn't state "Missed classes".
Original issue reported on code.google.com by misha.seltzer
on 8 Jun 2009 at 2:28
Need to create and add binary downloads for Windows, Linux and Mac.
For that to happen, need to:
* Create an installer for Windows (NSIS?)
* Create a .pkg or .dmg (probably pkg, we don't really have application, just
need to copy files) for
Mac OSX
* Create a .deb (Debian package) for Linux
* Upload a .zip/.tar.bz2/.tar.gz files of compiled sources for each platform
(also think of 32/64 bit
versions).
Original issue reported on code.google.com by misha.seltzer
on 5 Jun 2009 at 10:11
The --classes flag of both ./griffin script and Griffin.jar
(robin/Launcher.java), can also receive
names of functions.
Name should be changed to something like: --collect or --generate-wrapper.
Also, when some function on --classes wasn't found, it always says (in output):
"Missed classes",
although it might be a function.
Original issue reported on code.google.com by misha.seltzer
on 8 Jun 2009 at 2:18
The following code has problem calling the vector<string> function.
"""
#include <string>
#include <vector>
void func (std::vector<char> v) {}
void func (std::vector<std::string> v) {}
"""
Here is the python input/output for running with a list of strings (['abc',
'def']):
"""
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: Python conversion failed - RuntimeError: no overloaded member
matches
arguments.
"""
Note, that in this case, running with list of chars (['a', 'b', 'c']) works
fine. Also, running with list of
strings, when the overloaded vector<char> function does not exist, everything
works as intended.
Original issue reported on code.google.com by misha.seltzer
on 6 Jun 2009 at 4:43
Right now, when running Griffin, we get only the registered (wrapped) classes
in the output
table:
"""
=================================
| Registered classes:
| ::ns::Blah
| ::Foo
=================================
"""
We would want to see the functions and global variables too:
"""
=================================
| Registered classes:
| ::ns::Blah
| ::Foo
| Registered functions:
| int ::ns::func1(int, int)
| ::Foo ::func2(int, char)
| Registered variables:
| double ::ns::PI
| int ::boo
=================================
"""
Original issue reported on code.google.com by misha.seltzer
on 8 Jun 2009 at 9:26
What steps will reproduce the problem?
1.using ubuntu 13.10
2. can not compile it using make
What is the expected output? What do you see instead?
No SConstruct file found.
What version of the product are you using? On what operating system?
latest
Please provide any additional information below.
missing Sconstruct file
Original issue reported on code.google.com by [email protected]
on 2 Mar 2014 at 4:35
The following code will cause an assert to fail on python exit:
"""
namespace a {
class Blah {
};
}
"""
Python input/output:
"""
>>> import robin
>>> robin.loadLibrary("blah", "libblah.dylib")
>>> exit()
Assertion failed: (gc->gc.gc_refs != 0), function visit_decref, file
Modules/gcmodule.c, line 276.
Abort trap
"""
This problem also happens in the current tests, and it doesn't happen on Linux.
Valgrind run (on linux, no valgrind for mac yet :( ), gave the following output
(on exit). No such
error was given on run without namespaces present:
"""
>>> import robin
>>> robin.loadLibrary("blah", "./libblah.so")
>>>
==26374== Invalid read of size 8
==26374== at 0x441F17: ??? in /usr/bin/python2.5
==26374== by 0x44398D: PyDict_SetItem in /usr/bin/python2.5
==26374== by 0x44573D: _PyModule_Clear in /usr/bin/python2.5
==26374== by 0x49F573: PyImport_Cleanup in /usr/bin/python2.5
==26374== by 0x4ABA71: Py_Finalize in /usr/bin/python2.5
==26374== by 0x4140B7: Py_Main in /usr/bin/python2.5
==26374== by 0x56ED1C3: (below main) in /lib/libc-2.7.so
==26374== Address 0x5f3dd60 is 32 bytes inside a block of size 56 free'd
==26374== at 0x4C24B0F: PyObject_Free
/tmp/vg/coregrind/m_replacemalloc/vg_replace_malloc.c:325
==26374== by 0x441F6C: ??? in /usr/bin/python2.5
==26374== by 0x44398D: PyDict_SetItem in /usr/bin/python2.5
==26374== by 0x49F323: PyImport_Cleanup in /usr/bin/python2.5
==26374== by 0x4ABA71: Py_Finalize in /usr/bin/python2.5
==26374== by 0x4140B7: Py_Main in /usr/bin/python2.5
==26374== by 0x56ED1C3: (below main) in /lib/libc-2.7.so
==26374==
==26374== Invalid write of size 8
==26374== at 0x441F21: ??? in /usr/bin/python2.5
==26374== by 0x44398D: PyDict_SetItem in /usr/bin/python2.5
==26374== by 0x44573D: _PyModule_Clear in /usr/bin/python2.5
==26374== by 0x49F573: PyImport_Cleanup in /usr/bin/python2.5
==26374== by 0x4ABA71: Py_Finalize in /usr/bin/python2.5
==26374== by 0x4140B7: Py_Main in /usr/bin/python2.5
==26374== by 0x56ED1C3: (below main) in /lib/libc-2.7.so
==26374== Address 0x5f3dd60 is 32 bytes inside a block of size 56 free'd
==26374== at 0x4C24B0F: PyObject_Free
/tmp/vg/coregrind/m_replacemalloc/vg_replace_malloc.c:325
==26374== by 0x441F6C: ??? in /usr/bin/python2.5
==26374== by 0x44398D: PyDict_SetItem in /usr/bin/python2.5
==26374== by 0x49F323: PyImport_Cleanup in /usr/bin/python2.5
==26374== by 0x4ABA71: Py_Finalize in /usr/bin/python2.5
==26374== by 0x4140B7: Py_Main in /usr/bin/python2.5
==26374== by 0x56ED1C3: (below main) in /lib/libc-2.7.so
==26374==
==26374== malloc/free: in use at exit: 583,573 bytes in 2,593 blocks.
==26374== malloc/free: 28,238 allocs, 25,645 frees, 3,934,645 bytes allocated.
==26374== For counts of detected errors, rerun with: -v
==26374== searching for pointers to 2,593 not-freed blocks.
==26374== checked 1,359,600 bytes.
"""
Original issue reported on code.google.com by misha.seltzer
on 6 Jun 2009 at 5:03
We have some documentation on the old Robin site here:
http://corwin.amber.googlepages.com/
Documentation includes:
* Getting started instructions
* Demo
* Some documentation on C++ Templates and Memory management
* Short FAQ
This documentation should be moved to this code@google site.
Original issue reported on code.google.com by misha.seltzer
on 5 Jun 2009 at 10:15
Griffin-ing the next code produces error in 4robin.cc:
"""
#include <vector>
::std::vector<int> getVec() {
::std::vector<int> v;
return v;
}
"""
The error is:
"""
// ::std::vector< int >: location specification may be missing?
"""
It does work for if I don't use the tag_vector.h created tag, or if I use the
content of tag_vector.h
to the file I'm working with.
Original issue reported on code.google.com by misha.seltzer
on 4 Jun 2009 at 8:06
Need to fix our code to comply with Java 6.0:
* Move to using Generics
* Move to using for-each style loops (instead of iterator-whiles)
* Add annotations where needed (For example @Override)
Anything else?
Original issue reported on code.google.com by misha.seltzer
on 8 Jun 2009 at 11:41
The following code generates a bad 4robin.cc:
"""
namespace ns {
template <typename T>
class Blah {};
}
typedef ns::Blah<int> Blah;
Blah getBlah() {
Blah b;
return b;
}
"""
Griffin works all fine, but the generated code does not compile, with the
following error:
"""
./4robin.cc:99: error: expected constructor, destructor, or type conversion
before ‘*’ token
./4robin.cc:123: error: ‘routine_2s0’ was not declared in this scope
"""
The problem is, that instead of substitute "Blah" with "::ns::Blah<int>", it
substitutes with
"::ns::Blah" (forgets the template). It does work fine, if the name of the
typedef is different from
the real class name.
Original issue reported on code.google.com by misha.seltzer
on 4 Jun 2009 at 8:22
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.