Coder Social home page Coder Social logo

robin's People

robin's Issues

Support stating variable names in --classes flag of ./griffin

--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

Add binaries of Robin to site's Downloads section

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

Better name for the --classes flag

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

Cannot distinguish vector<char> from vector<string>

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

Print function names and global variables in Griffin's registration output table.

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

can not compile

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

Assertion fails on exit if namespace is present

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

Move all the documentation from the old Robin site

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

Can't use STL classes with ::std prefix (in difference from just std)

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

Move to Java6.0.

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

Bad code generation for typedefs of namespace-d template classes to their own names

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.