Articles of rbuy

Quel est le “format défini par POSIX” pour les messages d’erreur de ligne de commande? Quel standard?

Sur la page ruby-doc.org, j’ai trouvé ce qui suit concernant l’parsing des options / arguments en ligne de commande (bibliothèque getopt): Renvoie le message d’erreur approprié au format défini par POSIX. Si aucune erreur ne s’est produite, renvoie nil. Quel est le format défini par POSIX pour les messages d’erreur de ligne de commande? De […]

dyld: échec de la liaison du symbole paresseux: symbole introuvable – le symbole des rapports nm a été trouvé

Question assez abstraite ici, car je ne sais pas trop par où commencer mes propres enquêtes. J’ai un paquet C construit avec CMake qui produit librpdb.so; J’ai une Ruby Gem configurée pour la même bibliothèque, qui produit rpdb.bundle. Lorsqu’il est utilisé dans Ruby, je reçois ceci: dyld: lazy symbol binding failed: Symbol not found: _RPDB_RuntimeStorageController_sharedInstance […]

Id2sym & symbol.object_id

En utilisant le site ruby-hacking-guide , j’ai trouvé que fixnum << 8 | 1 fixnum << 8 | 1 est object_id de n’importe quel fixnum. J’ai essayé d’utiliser une approche similaire avec le symbole. #define ID2SYM(x) ((VALUE)(((long)(x))<<8|SYMBOL_FLAG)) Lorsque l’on décale 8 bits à gauche, x devient un multiple de 256, cela signifie un multiple de […]

Séparateurs de menu en ncurses

Je voudrais construire un menu dans ncurses qui a des séparateurs de section. Mon exemple de liste ressemble à ceci: Aardvark Apple Bee Cat Kitten Kalashnikov Waffle Ce que je veux, ce sont des diviseurs non sélectionnables. Quelque chose comme ça: (A) —- Aardvark Apple (B) —- Bee (C) —- Cat (K) —- Kitten Kalashnikov […]

Comment append un indicateur de compilateur C ++ à extconf.rb

J’écris une extension Ruby, pour laquelle j’ai un script de configuration standard mkmf, mais je dois append un indicateur d’inclusion spécial ( –std=c++0x ) à toutes les étapes de compilation C ++. Je ne le veux pas dans les étapes de la compilation C, parce que ça lance des avertissements. Comment dois-je faire cela? require […]

Comment comstackr / créer une extension ruby ​​utilisant c?

Je veux créer une extension ruby ​​qui utilise c. Mais quand je le comstack avec gcc, j’obtiens cette erreur: gcc rubyext.c -orubyext -I /usr/local/include/ruby-1.9.1/ In file included from rubyext.c:1: /usr/local/include/ruby-1.9.1/ruby/ruby.h:25:25: error: ruby/config.h: No such file or directory In file included from rubyext.c:1: /usr/local/include/ruby-1.9.1/ruby/ruby.h:107: error: ‘SIZEOF_INT’ undeclared here (not in a function) /usr/local/include/ruby-1.9.1/ruby/ruby.h:108: error: ‘SIZEOF_LONG’ undeclared […]

Comment accéder à un tableau ruby ​​à partir de mon extension c?

Je reçois cette erreur ev.c:11: error: subscripted value is neither array nor pointer pour cette ligne printf(“%d\n”, pairs[0][0]); Dans ce code static VALUE EV; static VALUE PairCounter; static VALUE sort_pairs_2(VALUE self) { VALUE pairs; pairs = rb_ivar_get(self, rb_intern(“pairs”)); printf(“%d\n”, pairs[0][0]); return Qnil; } void Init_ev() { rb_eval_ssortingng(“require ‘./lib/ev/pair_counter'”); VALUE PairCounter = rb_path2class(“EV::PairCounter”); rb_define_method(PairCounter, “sort_pairs_2”, sort_pairs_2, […]

Comment convertir un tableau ruby ​​en tableau C avec RubyInline?

J’ai une fonction qui compare 2 chaînes char par char. J’avais besoin de courir beaucoup plus vite que dans Ruby, donc j’ai utilisé RubyInline pour réécrire la fonction en C. Cela a augmenté la vitesse d’environ 100 fois. La fonction ressemble à ceci: require ‘inline’ inline do |builder| builder.c ” static int distance(char *s, char […]

Questions sur l’API des extensions Ruby C

Ainsi, récemment, j’ai eu le malheureux besoin de faire une extension C pour Ruby (à cause des performances). Comme j’avais des problèmes pour comprendre la VALUE (et le comprends toujours), j’ai donc cherché dans la source Ruby et j’ai trouvé: typedef unsigned long VALUE; ( Lien vers la source , mais vous remarquerez qu’il existe […]

Quel est le type de variable?

Je travaille sur Ruby c extension, j’ai le code suivant du programme c, VALUE var = myFunction(arg1, arg2); int varType = TYPE(var); printf(“Type of the var is :: %d”, varType); Au-dessus, printf donne les résultats suivants: Type of the var is :: 34 Comme myFunction est une fonction inbuild, je ne connais pas le type […]