banister / include_complete

Fixing the limitations in traditional Module#include
19 stars 0 forks source link

gem install include_complete broken #6

Open raisin opened 11 years ago

raisin commented 11 years ago

gem install include_complete appears to be broken. I'm using Ubuntu 12.04LTS and Ruby-1.9.3-p385.

krainboltgreene commented 10 years ago

I'm on a Macbook, but I'm betting they're getting this error:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /Users/krainboltgreene/.rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling include_complete.c
compiling include_complete_one.c
In file included from include_complete_one.c:8:
./compat.h:26:24: error: invalid application of 'sizeof' to an incomplete type 'rb_classext_t' (aka 'struct rb_classext_struct')
  rb_classext_t *ext = ALLOC(rb_classext_t);
                       ^~~~~~~~~~~~~~~~~~~~
/Users/krainboltgreene/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/ruby.h:1334:37: note: expanded from macro 'ALLOC'
#define ALLOC(type) ((type*)xmalloc(sizeof(type)))
                                    ^     ~~~~~~
/Users/krainboltgreene/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/ruby.h:788:16: note: forward declaration of 'struct rb_classext_struct'
typedef struct rb_classext_struct rb_classext_t;
               ^
In file included from include_complete_one.c:8:
./compat.h:28:12: warning: incompatible pointer to integer conversion passing 'struct RClass *' to parameter of type 'VALUE' (aka 'unsigned long') [-Wint-conversion]
  OBJSETUP(obj, klass, flags);
           ^~~
/Users/krainboltgreene/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/ruby.h:695:40: note: expanded from macro 'OBJSETUP'
#define OBJSETUP(obj,c,t) rb_obj_setup(obj, c, t) /* use NEWOBJ_OF instead of NEWOBJ()+OBJSETUP() */
                                       ^
/Users/krainboltgreene/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/ruby.h:692:26: note: passing argument to parameter 'obj' here
VALUE rb_obj_setup(VALUE obj, VALUE klass, VALUE type);
                         ^
In file included from include_complete_one.c:8:
./compat.h:30:3: warning: implicit declaration of function 'RCLASS_IV_TBL' is invalid in C99 [-Wimplicit-function-declaration]
  RCLASS_IV_TBL(obj) = 0;
  ^
./compat.h:30:22: error: expression is not assignable
  RCLASS_IV_TBL(obj) = 0;
  ~~~~~~~~~~~~~~~~~~ ^
./compat.h:31:3: warning: implicit declaration of function 'RCLASS_M_TBL' is invalid in C99 [-Wimplicit-function-declaration]
  RCLASS_M_TBL(obj) = 0;
  ^
./compat.h:31:21: error: expression is not assignable
  RCLASS_M_TBL(obj) = 0;
  ~~~~~~~~~~~~~~~~~ ^
./compat.h:32:16: warning: incompatible pointer to integer conversion passing 'struct RClass *' to parameter of type 'VALUE' (aka 'unsigned long') [-Wint-conversion]
  RCLASS_SUPER(obj) = 0;
               ^~~
/Users/krainboltgreene/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/ruby.h:796:49: note: expanded from macro 'RCLASS_SUPER'
#define RCLASS_SUPER(c) rb_class_get_superclass(c)
                                                ^
/Users/krainboltgreene/.rvm/rubies/ruby-2.1.2/include/ruby-2.1.0/ruby/intern.h:590:36: note: passing argument to parameter here
VALUE rb_class_get_superclass(VALUE);
                                   ^
In file included from include_complete_one.c:8:
./compat.h:32:21: error: expression is not assignable
  RCLASS_SUPER(obj) = 0;
  ~~~~~~~~~~~~~~~~~ ^
./compat.h:33:3: warning: implicit declaration of function 'RCLASS_IV_INDEX_TBL' is invalid in C99 [-Wimplicit-function-declaration]
  RCLASS_IV_INDEX_TBL(obj) = 0;
  ^
./compat.h:33:28: error: expression is not assignable
  RCLASS_IV_INDEX_TBL(obj) = 0;
  ~~~~~~~~~~~~~~~~~~~~~~~~ ^
include_complete_one.c:52:27: error: expression is not assignable
    RCLASS_IV_TBL(module) = st_init_numtable();
    ~~~~~~~~~~~~~~~~~~~~~ ^
include_complete_one.c:55:24: error: expression is not assignable
  RCLASS_IV_TBL(klass) = RCLASS_IV_TBL(module);
  ~~~~~~~~~~~~~~~~~~~~ ^
include_complete_one.c:58:23: error: expression is not assignable
  RCLASS_M_TBL(klass) = RCLASS_M_TBL(module);
  ~~~~~~~~~~~~~~~~~~~ ^
include_complete_one.c:59:23: error: expression is not assignable
  RCLASS_SUPER(klass) = super;
  ~~~~~~~~~~~~~~~~~~~ ^
include_complete_one.c:75:25: error: expression is not assignable
    RCLASS_IV_TBL(meta) = st_init_numtable();
    ~~~~~~~~~~~~~~~~~~~ ^
include_complete_one.c:84:19: error: read-only variable is not assignable
  KLASS_OF(klass) = meta;
  ~~~~~~~~~~~~~~~ ^
include_complete_one.c:140:21: error: expression is not assignable
    RCLASS_SUPER(c) = imod;
    ~~~~~~~~~~~~~~~ ^
include_complete_one.c:143:31: error: expression is not assignable
    RCLASS_SUPER(KLASS_OF(c)) = KLASS_OF(imod);
    ~~~~~~~~~~~~~~~~~~~~~~~~~ ^
include_complete_one.c:146:57: error: member reference type 'int' is not a pointer
    if (RMODULE_M_TBL(module) && RMODULE_M_TBL(module)->num_entries)
                                 ~~~~~~~~~~~~~~~~~~~~~  ^
5 warnings and 14 errors generated.
make: *** [include_complete_one.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/krainboltgreene/.rvm/gems/ruby-2.1.2@nezumi-api/gems/include_complete-0.1.3 for inspection.
Results logged to /Users/krainboltgreene/.rvm/gems/ruby-2.1.2@nezumi-api/extensions/x86_64-darwin-13/2.1.0-static/include_complete-0.1.3/gem_make.out
An error occurred while installing include_complete (0.1.3), and Bundler cannot continue.
Make sure that `gem install include_complete -v '0.1.3'` succeeds before bundling.
jgburet commented 9 years ago

Got the same on Linux Mint. Ruby 2.0

banister commented 9 years ago

It's ruby 1.9.2 only sorry