toretore / semacode Goto Github PK
View Code? Open in Web Editor NEWMirror of semacode (DataMatrix) gem with some 1.9 fixes
Home Page: http://rubyforge.org/projects/semacode/
Mirror of semacode (DataMatrix) gem with some 1.9 fixes
Home Page: http://rubyforge.org/projects/semacode/
The specific error seems to be:
$ rvm list
rvm rubies
=> ruby-2.4.1 [ x86_64 ]
$ gem install semacode -v '0.7.4'
It fails to install, with the error:
semacode.c:243:44: error: no member named 'len' in 'struct RString'
Full stack trace:
gem install semacode -v '0.7.4'
ERROR: Error installing semacode:
ERROR: Failed to build gem native extension.
current directory: /Users/andy/.rvm/gems/ruby-2.4.1/gems/semacode-0.7.4/ext
/Users/andy/.rvm/rubies/ruby-2.4.1/bin/ruby -r ./siteconf20170822-15344-2ocgoi.rb extconf.rb
creating Makefile
current directory: /Users/andy/.rvm/gems/ruby-2.4.1/gems/semacode-0.7.4/ext
make "DESTDIR=" clean
current directory: /Users/andy/.rvm/gems/ruby-2.4.1/gems/semacode-0.7.4/ext
make "DESTDIR="
compiling iec16022ecc200.c
iec16022ecc200.c:45:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
10, 10, 10, 10, 3, 3, 5, //
^~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:46:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
12, 12, 12, 12, 5, 5, 7, //
^~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:47:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
14, 14, 14, 14, 8, 8, 10, //
^~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:48:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
16, 16, 16, 16, 12, 12, 12, //
^~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:49:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
18, 18, 18, 18, 18, 18, 14, //
^~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:50:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
20, 20, 20, 20, 22, 22, 18, //
^~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:51:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
22, 22, 22, 22, 30, 30, 20, //
^~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:52:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
24, 24, 24, 24, 36, 36, 24, //
^~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:53:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
26, 26, 26, 26, 44, 44, 28, //
^~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:54:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
32, 32, 16, 16, 62, 62, 36, //
^~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:55:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
36, 36, 18, 18, 86, 86, 42, //
^~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:56:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
40, 40, 20, 20, 114, 114, 48, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:57:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
44, 44, 22, 22, 144, 144, 56, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:58:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
48, 48, 24, 24, 174, 174, 68, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:59:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
52, 52, 26, 26, 204, 102, 42, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:60:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
64, 64, 16, 16, 280, 140, 56, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:61:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
72, 72, 18, 18, 368, 92, 36, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:62:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
80, 80, 20, 20, 456, 114, 48, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:63:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
88, 88, 22, 22, 576, 144, 56, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:64:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
96, 96, 24, 24, 696, 174, 68, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:65:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
104, 104, 26, 26, 816, 136, 56, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:66:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
120, 120, 20, 20, 1050, 175, 68, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:67:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
132, 132, 22, 22, 1304, 163, 62, //
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:68:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
144, 144, 24, 24, 1558, 156, 62, // 156*4+155*2
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:69:7: warning: suggest braces around initialization of subobject [-Wmissing-braces]
0 // terminate
^
{}
iec16022ecc200.c:284:80: warning: data argument not used by format string [-Wformat-extra-args]
rb_raise(rb_eArgError, "cannot encode character in X12", c);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
iec16022ecc200.c:288:22: warning: array subscript is of type 'char' [-Wchar-subscripts]
out[p++] = 1;
^~~~
iec16022ecc200.c:289:22: warning: array subscript is of type 'char' [-Wchar-subscripts]
out[p++] = 30;
^~~~
iec16022ecc200.c:293:22: warning: array subscript is of type 'char' [-Wchar-subscripts]
out[p++] = ((w - e) + 3) % 40;
^~~~
iec16022ecc200.c:299:80: warning: data argument not used by format string [-Wformat-extra-args]
rb_raise(rb_eArgError, "cannot encode character in X12", c);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
iec16022ecc200.c:304:25: warning: array subscript is of type 'char' [-Wchar-subscripts]
out[p++] = 0;
^~~~
iec16022ecc200.c:305:25: warning: array subscript is of type 'char' [-Wchar-subscripts]
out[p++] = c;
^~~~
iec16022ecc200.c:311:28: warning: array subscript is of type 'char' [-Wchar-subscripts]
out[p++] = 1;
^~~~
iec16022ecc200.c:312:28: warning: array subscript is of type 'char' [-Wchar-subscripts]
out[p++] = (w - s2);
^~~~
iec16022ecc200.c:318:31: warning: array subscript is of type 'char' [-Wchar-subscripts]
out[p++] = 2;
^~~~
iec16022ecc200.c:319:31: warning: array subscript is of type 'char' [-Wchar-subscripts]
out[p++] = (w - s3);
^~~~
iec16022ecc200.c:323:89: warning: data argument not used by format string [-Wformat-extra-args]
rb_raise(rb_eRuntimeError, "this should not be happening!", c);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
iec16022ecc200.c:330:22: warning: array subscript is of type 'char' [-Wchar-subscripts]
out[p++] = 0; // shift 1 pad at end
^~~~
iec16022ecc200.c:239:26: warning: comparison of integers of different signs: 'unsigned long' and 'int' [-Wsign-compare]
if (strlen (encoding) < sl)
~~~~~~~~~~~~~~~~~ ^ ~~
iec16022ecc200.c:478:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
0, 1, 1, 1, 1, 2, // From E_ASCII
^~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:479:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
1, 0, 2, 2, 2, 3, // From E_C40
^~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:480:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
1, 2, 0, 2, 2, 3, // From E_TEXT
^~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:481:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
1, 2, 2, 0, 2, 3, // From E_X12
^~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:482:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
1, 2, 2, 2, 0, 3, // From E_EDIFACT
^~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:483:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
0, 1, 1, 1, 1, 0, // From E_BINARY
^~~~~~~~~~~~~~~~
{ }
iec16022ecc200.c:498:9: warning: incompatible pointer to integer conversion initializing 'VALUE' (aka 'unsigned long') with an expression of type 'void *' [-Wint-conversion]
VALUE rb_str = NULL;
^ ~~~~
iec16022ecc200.c:509:14: warning: returning 'const char [1]' from a function with result type 'char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
return ""; // no length
^~
iec16022ecc200.c:530:28: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_ASCII][e]) < bl || !bl))
^~
iec16022ecc200.c:530:54: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_ASCII][e]) < bl || !bl))
^~
iec16022ecc200.c:530:81: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_ASCII][e]) < bl || !bl))
^~
iec16022ecc200.c:538:16: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + sl][b].s;
^~
iec16022ecc200.c:538:36: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + sl][b].s;
^~
iec16022ecc200.c:568:31: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_C40][e]) < bl || !bl))
^~
iec16022ecc200.c:568:57: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_C40][e]) < bl || !bl))
^~
iec16022ecc200.c:568:82: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_C40][e]) < bl || !bl))
^~
iec16022ecc200.c:581:19: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + sl][b].s;
^~
iec16022ecc200.c:581:39: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + sl][b].s;
^~
iec16022ecc200.c:612:31: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_TEXT][e]) < bl || !bl))
^~
iec16022ecc200.c:612:57: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_TEXT][e]) < bl || !bl))
^~
iec16022ecc200.c:612:83: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_TEXT][e]) < bl || !bl))
^~
iec16022ecc200.c:625:19: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + sl][b].s;
^~
iec16022ecc200.c:625:39: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + sl][b].s;
^~
iec16022ecc200.c:649:31: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_X12][e]) < bl || !bl))
^~
iec16022ecc200.c:649:57: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_X12][e]) < bl || !bl))
^~
iec16022ecc200.c:649:82: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + sl][e].t && ((t = enc[p + sl][e].t + switchcost[E_X12][e]) < bl || !bl))
^~
iec16022ecc200.c:662:19: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + sl][b].s;
^~
iec16022ecc200.c:662:39: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + sl][b].s;
^~
iec16022ecc200.c:675:48: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (e != E_EDIFACT && enc[p + 1][e].t && ((t = 2 + enc[p + 1][e].t + switchcost[E_ASCII][e]) < bl || !bl)) // E_ASCII as allowed for unlatch
^~
iec16022ecc200.c:675:77: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (e != E_EDIFACT && enc[p + 1][e].t && ((t = 2 + enc[p + 1][e].t + switchcost[E_ASCII][e]) < bl || !bl)) // E_ASCII as allowed for unlatch
^~
iec16022ecc200.c:675:104: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (e != E_EDIFACT && enc[p + 1][e].t && ((t = 2 + enc[p + 1][e].t + switchcost[E_ASCII][e]) < bl || !bl)) // E_ASCII as allowed for unlatch
^~
iec16022ecc200.c:689:51: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (e != E_EDIFACT && enc[p + 2][e].t && ((t = 3 + enc[p + 2][e].t + switchcost[E_ASCII][e]) < bl || !bl)) // E_ASCII as allowed for unlatch
^~
iec16022ecc200.c:689:80: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (e != E_EDIFACT && enc[p + 2][e].t && ((t = 3 + enc[p + 2][e].t + switchcost[E_ASCII][e]) < bl || !bl)) // E_ASCII as allowed for unlatch
^~
iec16022ecc200.c:689:107: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (e != E_EDIFACT && enc[p + 2][e].t && ((t = 3 + enc[p + 2][e].t + switchcost[E_ASCII][e]) < bl || !bl)) // E_ASCII as allowed for unlatch
^~
iec16022ecc200.c:703:54: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (e != E_EDIFACT && enc[p + 3][e].t && ((t = 3 + enc[p + 3][e].t + switchcost[E_ASCII][e]) < bl || !bl)) // E_ASCII as allowed for unlatch
^~
iec16022ecc200.c:703:83: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (e != E_EDIFACT && enc[p + 3][e].t && ((t = 3 + enc[p + 3][e].t + switchcost[E_ASCII][e]) < bl || !bl)) // E_ASCII as allowed for unlatch
^~
iec16022ecc200.c:703:110: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (e != E_EDIFACT && enc[p + 3][e].t && ((t = 3 + enc[p + 3][e].t + switchcost[E_ASCII][e]) < bl || !bl)) // E_ASCII as allowed for unlatch
^~
iec16022ecc200.c:718:39: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + 4][e].t && ((t = 3 + enc[p + 4][e].t + switchcost[E_EDIFACT][e]) < bl || !bl))
^~
iec16022ecc200.c:718:68: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + 4][e].t && ((t = 3 + enc[p + 4][e].t + switchcost[E_EDIFACT][e]) < bl || !bl))
^~
iec16022ecc200.c:718:97: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + 4][e].t && ((t = 3 + enc[p + 4][e].t + switchcost[E_EDIFACT][e]) < bl || !bl))
^~
iec16022ecc200.c:737:19: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + bs][b].s;
^~
iec16022ecc200.c:737:39: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + bs][b].s;
^~
iec16022ecc200.c:742:24: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p + 1][e].t
^~
iec16022ecc200.c:743:33: warning: array subscript is of type 'char' [-Wchar-subscripts]
&& ((t = enc[p + 1][e].t + switchcost[E_BINARY][e] + ((e == E_BINARY && enc[p + 1][e].t == 249) ? 1 : 0)) < bl || !bl))
^~
iec16022ecc200.c:743:61: warning: array subscript is of type 'char' [-Wchar-subscripts]
&& ((t = enc[p + 1][e].t + switchcost[E_BINARY][e] + ((e == E_BINARY && enc[p + 1][e].t == 249) ? 1 : 0)) < bl || !bl))
^~
iec16022ecc200.c:743:96: warning: array subscript is of type 'char' [-Wchar-subscripts]
&& ((t = enc[p + 1][e].t + switchcost[E_BINARY][e] + ((e == E_BINARY && enc[p + 1][e].t == 249) ? 1 : 0)) < bl || !bl))
^~
iec16022ecc200.c:751:16: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + 1][b].s;
^~
iec16022ecc200.c:751:35: warning: array subscript is of type 'char' [-Wchar-subscripts]
enc[p][b].s += enc[p + 1][b].s;
^~
iec16022ecc200.c:764:23: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p][e].t && ((t = enc[p][e].t + switchcost[cur][e]) < m || t == m && e == cur || !m))
^~
iec16022ecc200.c:764:44: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p][e].t && ((t = enc[p][e].t + switchcost[cur][e]) < m || t == m && e == cur || !m))
^~
iec16022ecc200.c:764:62: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p][e].t && ((t = enc[p][e].t + switchcost[cur][e]) < m || t == m && e == cur || !m))
^~~~
iec16022ecc200.c:764:67: warning: array subscript is of type 'char' [-Wchar-subscripts]
if (enc[p][e].t && ((t = enc[p][e].t + switchcost[cur][e]) < m || t == m && e == cur || !m))
^~
iec16022ecc200.c:770:20: warning: array subscript is of type 'char' [-Wchar-subscripts]
m = enc[p][b].s;
^~
iec16022ecc200.c:772:27: warning: array subscript is of type 'char' [-Wchar-subscripts]
*lenp = enc[p][b].t;
^~
iec16022ecc200.c:774:35: warning: array subscript is of type 'char' [-Wchar-subscripts]
encoding[p++] = encchr[b];
^~
iec16022ecc200.c:498:9: warning: unused variable 'rb_str' [-Wunused-variable]
VALUE rb_str = NULL;
^
iec16022ecc200.c:785:35: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
int barcodelen = strlen(barcode) + 1;
~~~~~~~~~~ ~~~~~~~~~~~~~~~~^~~
iec16022ecc200.c:908:12: warning: assigning to 'unsigned char *' from 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
grid = ALLOC_N(char, W * H);
^ ~~~~~~~~~~~~~~~~~~~~
97 warnings generated.
compiling reedsol.c
compiling semacode.c
semacode.c:61:3: warning: implicit declaration of function 'iec16022init' is invalid in C99 [-Wimplicit-function-declaration]
iec16022init(&semacode->width, &semacode->height, message);
^
semacode.c:96:28: warning: 'bzero' call operates on objects of type 'semacode_t' (aka 'struct semacode_t') while the size is based on a different type 'semacode_t *' (aka 'struct semacode_t *') [-Wsizeof-pointer-memaccess]
bzero(semacode, sizeof(semacode));
~~~~~~~~ ^~~~~~~~
semacode.c:96:28: note: did you mean to dereference the argument to 'sizeof' (and multiply it by the number of elements)?
bzero(semacode, sizeof(semacode));
^~~~~~~~
semacode.c:129:27: error: no member named 'len' in 'struct RString'
encode_string(semacode, StringValueLen(message), StringValuePtr(message));
^~~~~~~~~~~~~~~~~~~~~~~
./semacode.h:26:56: note: expanded from macro 'StringValueLen'
#define StringValueLen(s) RSTRING(RB_STRING_VALUE(s))->len
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
semacode.c:239:20: warning: equality comparison result unused [-Wunused-comparison]
semacode->data == NULL;
~~~~~~~~~~~~~~~^~~~~~~
semacode.c:239:20: note: use '=' to turn this equality comparison into an assignment
semacode->data == NULL;
^~
=
semacode.c:243:44: error: no member named 'len' in 'struct RString'
DATA_PTR(self) = encode_string(semacode, StringValueLen(message), StringValuePtr(message));
^~~~~~~~~~~~~~~~~~~~~~~
./semacode.h:26:56: note: expanded from macro 'StringValueLen'
#define StringValueLen(s) RSTRING(RB_STRING_VALUE(s))->len
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
3 warnings and 2 errors generated.
make: *** [semacode.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/andy/.rvm/gems/ruby-2.4.1/gems/semacode-0.7.4 for inspection.
Results logged to /Users/andy/.rvm/gems/ruby-2.4.1/extensions/x86_64-darwin-16/2.4.0/semacode-0.7.4/gem_make.out
I can't quite tell if anyone responsible for the underlying implementation is in any way involved with this particular copy of it, but on the off chance that they are...
I'm using this library along with Barby, and am noticing some big differences between the codes they generate and every other encoder I can find out there. As an example, given the magic initialization string for the scanner I happen to be working with #FNC IOS ACCEPTOR 000000000000#
results in the output at the left everywhere, while Barby + Semacode spit out something much, much larger as seen here:
Is there anything I can or should be doing to influence the output here?
Likely related: toretore/barby#83
Open tests/test.rb
Change the last line to be the troublesome data:
require 'json'
semacode = DataMatrix::Encoder.new(JSON.generate({ hello: "TEST TEST TEST TEST" }))
Then
while ruby tests/test.rb; do :; done
Eventually:
ruby(42018,0x7fffe3cd23c0) malloc: *** error for object 0x7fde87a14620: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
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.