cucumber-attic / bool Goto Github PK
View Code? Open in Web Editor NEWCross-platform boolean expression parser and interpreter
License: MIT License
Cross-platform boolean expression parser and interpreter
License: MIT License
If Gherkin3 is going to use this project as a template, we have to make sure we can scan UTF-8 encoded input since many Gherkin translations rely on the unicode character set.
A simple way to do this is to create a utf8
branch where we change &&
(AND) to øø
everywhere, both in lexer definitions and in tests. If everything passes we're fine, if not we have a problem....
We should be able to make a cross-platform release with a single command. That means publishing:
The prerequisites for how to make a release (various accounts, GPG keys etc) should be clearly described in RELEASE.md
D:\Users\joris_000\Desktop>node --version
v0.10.31
D:\Users\joris_000\Desktop>npm --version
1.4.23
D:\Users\joris_000\Desktop>npm install bool
bool@1.0.20 node_modules\bool
D:\Users\joris_000\Desktop>echo require('bool'); | node -p
module.js:340
throw err;
^
Error: Cannot find module './parser'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (D:\Users\joris_000\Desktop\node_modules\bool\lib\index.js:1:76)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
The file lib/parser.js file is missing...
If I cd
into node_modules/bool and execute make
, the file "lib/parser.js" gets generated and this solves the issue.
There is currently one warning with clang
on travis:
Running make winruby
fails with this:
bundle exec rake-compiler cross-ruby VERSION=2.0.0-p0
cd /Users/ahellesoy/.rake-compiler/builds/ruby-2.0.0-p0
make
CC = i686-w64-mingw32-gcc
LD = i686-w64-mingw32-ld
LDSHARED = i686-w64-mingw32-gcc -shared
CFLAGS = -O3 -fno-omit-frame-pointer -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=implicit-function-declaration
XCFLAGS = -include ruby/config.h -include ruby/missing.h -D_FORTIFY_SOURCE=2 -fno-strict-overflow -DRUBY_EXPORT
CPPFLAGS = -D_WIN32_WINNT=0x0501 -I. -I.ext/include/i386-mingw32 -I/Users/ahellesoy/.rake-compiler/sources/ruby-2.0.0-p0/include -I/Users/ahellesoy/.rake-compiler/sources/ruby-2.0.0-p0
DLDFLAGS = -Wl,--enable-auto-image-base,--enable-auto-import -Wl,--out-implib=libmsvcrt-ruby200.dll.a msvcrt-ruby200.def -Wl,--stack,0x00200000,--enable-auto-import
SOLIBS = msvcrt-ruby200.res.o -lshell32 -lws2_32 -limagehlp -lshlwapi
compiling /Users/ahellesoy/.rake-compiler/sources/ruby-2.0.0-p0/dln.c
In file included from /Users/ahellesoy/.rake-compiler/sources/ruby-2.0.0-p0/include/ruby/defines.h:153:0,
from /Users/ahellesoy/.rake-compiler/sources/ruby-2.0.0-p0/include/ruby/ruby.h:70,
from /Users/ahellesoy/.rake-compiler/sources/ruby-2.0.0-p0/dln.c:13:
/Users/ahellesoy/.rake-compiler/sources/ruby-2.0.0-p0/include/ruby/win32.h: In function ‘rb_w32_pow’:
/Users/ahellesoy/.rake-compiler/sources/ruby-2.0.0-p0/include/ruby/win32.h:787:5: error: implicit declaration of function ‘_controlfp’
/Users/ahellesoy/.rake-compiler/sources/ruby-2.0.0-p0/include/ruby/win32.h:788:16: error: ‘_PC_64’ undeclared (first use in this function)
/Users/ahellesoy/.rake-compiler/sources/ruby-2.0.0-p0/include/ruby/win32.h:788:16: note: each undeclared identifier is reported only once for each function it appears in
/Users/ahellesoy/.rake-compiler/sources/ruby-2.0.0-p0/include/ruby/win32.h:788:24: error: ‘_MCW_PC’ undeclared (first use in this function)
make[1]: *** [dln.o] Error 1
/Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/file_utils.rb:53:in `block in create_shell_runner': Command failed with status (2): [make...] (RuntimeError)
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/file_utils.rb:45:in `call'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/file_utils.rb:45:in `sh'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/file_utils_ext.rb:40:in `sh'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0/gems/rake-compiler-0.8.3/tasks/bin/cross-ruby.rake:155:in `block (2 levels) in <top (required)>'
from /Users/ahellesoy/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/fileutils.rb:206:in `chdir'
from /Users/ahellesoy/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/fileutils.rb:206:in `cd'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/file_utils_ext.rb:40:in `chdir'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0/gems/rake-compiler-0.8.3/tasks/bin/cross-ruby.rake:154:in `block in <top (required)>'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:226:in `call'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:226:in `block in execute'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:223:in `each'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:223:in `execute'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:166:in `block in invoke_with_call_chain'
from /Users/ahellesoy/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:187:in `block in invoke_prerequisites'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:185:in `each'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:185:in `invoke_prerequisites'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:165:in `block in invoke_with_call_chain'
from /Users/ahellesoy/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:187:in `block in invoke_prerequisites'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:185:in `each'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:185:in `invoke_prerequisites'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:165:in `block in invoke_with_call_chain'
from /Users/ahellesoy/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:187:in `block in invoke_prerequisites'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:185:in `each'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:185:in `invoke_prerequisites'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:165:in `block in invoke_with_call_chain'
from /Users/ahellesoy/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:159:in `invoke_with_call_chain'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/task.rb:152:in `invoke'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/application.rb:143:in `invoke_task'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/application.rb:101:in `block (2 levels) in top_level'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/application.rb:101:in `each'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/application.rb:101:in `block in top_level'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/application.rb:110:in `run_with_threads'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0@global/gems/rake-10.0.3/lib/rake/application.rb:95:in `top_level'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0/gems/rake-compiler-0.8.3/bin/rake-compiler:24:in `<top (required)>'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0/bin/rake-compiler:23:in `load'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0/bin/rake-compiler:23:in `<main>'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `eval'
from /Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `<main>'
rake aborted!
Command failed with status (1): [bundle exec rake-compiler cross-ruby VERSI...]
/Users/ahellesoy/github/bool/ruby/Rakefile:74:in `<top (required)>'
/Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `eval'
/Users/ahellesoy/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `<main>'
(See full trace by running task with --trace)
I don't believe Sonatype has authorized me for anything, their instructions are also a bit confusing, I think I'm supposed to comment on the ticket used to create your repo... but I'm not completely sure.
So this issue might be a bit premature, just waiting on Sonatype.
User on Sonatype, RubyGems and NpmJs: paoloambrosio
Commented on Sonatype OSSRH-2050 (hope it's the right one)
c/Makefile uses the following flags:
-fPIC -O2 -Werror -Wall -Wunused-parameter
The makefile generated during the Ruby build also includes -Wextra and then explicitly turns off many of the unused options (implied by -Wextra), which we then turn on again using a further -Wall
We should:
This reduces unnecessary noise in the makefiles and makes the build consistent for C and Ruby
But it's not! It evaluates to false.
Add the location of the error to the reporting mechanism to make it easier for the user to identify where the problem is.
If I try to run rake cross compile
my build fails:
rake cross compile
cd tmp/x86-mingw32/bool_ext/1.9.3
/Users/ahellesoy/.rvm/rubies/ruby-1.9.3-p194/bin/ruby -I. -rfake ../../../../ext/bool_ext/extconf.rb
rm -f lexer.h lexer.c parser.h parser.c *.o *.a
flex lexer.l
bison parser.y
cc -c -o parser.o parser.c
cc -c -o lexer.o lexer.c
cc -c -o bool_ast.o bool_ast.c
cc -shared -o libbool.o lexer.o parser.o bool_ast.o -lfl
ar rcs libbool.a lexer.o parser.o bool_ast.o
checking for bool_ast.h... yes
checking for parse_bool_ast() in -lbool... no
libbool is missing.
*** ../../../../ext/bool_ext/extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=../../../../ext/bool_ext
--curdir
--ruby=/Users/ahellesoy/.rake-compiler/ruby/ruby-1.9.3-p362/bin/ruby
--with-bool_ext-dir
--without-bool_ext-dir
--with-bool_ext-include
--without-bool_ext-include=${bool_ext-dir}/include
--with-bool_ext-lib
--without-bool_ext-lib=${bool_ext-dir}/lib
--with-boollib
--without-boollib
rake aborted!
Command failed with status (1): [/Users/ahellesoy/.rvm/rubies/ruby-1.9.3-p1...]
/Users/ahellesoy/.rvm/gems/ruby-1.9.3-p194@bool/gems/rake-compiler-0.8.2/lib/rake/extensiontask.rb:153:in `block (2 levels) in define_compile_tasks'
/Users/ahellesoy/.rvm/gems/ruby-1.9.3-p194@bool/gems/rake-compiler-0.8.2/lib/rake/extensiontask.rb:150:in `block in define_compile_tasks'
Tasks: TOP => compile => compile:x86-mingw32 => compile:bool_ext:x86-mingw32 => copy:bool_ext:x86-mingw32:1.9.3 => tmp/x86-mingw32/bool_ext/1.9.3/bool_ext.so => tmp/x86-mingw32/bool_ext/1.9.3/Makefile
(See full trace by running task with --trace)
I don't have a Windows box handy, but I suspect there is something wrong with the /c/Makefile
.
@luislavena - it would be fantastic if you could take a look at this. I'm considering building a new Gherkin 3.0 based on this project if I can make it build for Windows.
See /ruby/spec/parser_spec.rb
and /javascript/test/parser_test.js
.
Line numbers seem to be consistent, which is probably sufficient for decent error reporting (maybe not for boolean expressions, but at least for gherkin).
I have created accounts on the 3 sites. All have the same username: sebrose
Still waiting for publish rights at Sonatype
Can I have release karma?
This is on a fresh pull, it went ahead and built a bison 2.7 for me.
cd c && make
make[1]: Entering directory `/home/dkowis/gitwork/cucumber/bool/c'
flex --version
flex 2.5.36
flex lexer.l
# Remove warnings from lexer.c by injecting a few UNUSED macros with surgical precision.
sed -i'' -e 's/exit( YY_EXIT_FAILURE );/UNUSED(yyscanner);exit( YY_EXIT_FAILURE );/g' lexer.c
sed -i'' -e 's/return (void \*) malloc( size );/UNUSED(yyscanner);return (void *) malloc( size );/g' lexer.c
sed -i'' -e 's/return (void \*) realloc( (char \*) ptr, size );/UNUSED(yyscanner);return (void *) realloc( (char *) ptr, size );/g' lexer.c
sed -i'' -e 's/free( (char \*) ptr );/UNUSED(yyscanner);free( (char *) ptr );/g' lexer.c
# Inject missing initializations into lexer.c with surgical precision.
sed -i'' -e 's/b->yy_fill_buffer = 0;/b->yy_fill_buffer = 0; b->yy_bs_lineno = 1; b->yy_bs_column = 1;/g' lexer.c
bison --version
bison (GNU Bison) 2.7
Written by Robert Corbett and Richard Stallman.
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
bison parser.y
cc -fPIC -O2 -Werror -Wall -Wextra -c -o parser.o parser.c
cc -fPIC -O2 -Werror -Wall -Wextra -c -o lexer.o lexer.c
lexer.c: In function ‘yylex’:
lexer.c:788:23: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
lexer.c: In function ‘yy_scan_bytes’:
lexer.c:1616:17: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
cc1: all warnings being treated as errors
make[1]: *** [lexer.o] Error 1
make[1]: Leaving directory `/home/dkowis/gitwork/cucumber/bool/c'
make: *** [c] Error 2
IT could use GPPG which is a Lex/Yacc clone, and would therefore be very similar to the other ones.
@gasparnagy is this something you'd be interested in helping out with as well as native .NET support for Gherkin3?
Example: When we create a new And
node, we should not only store the left
and right
nodes, but also the semantic value of the token (&&
).
This is not strictly needed for bool (although it could be used in the renderer), but it is going to be necessary for gherkin3 when we render features in reports.
I tried, and it didn't work
Travis isn't failing so there must be something I'm failing to build or whatever, but I'm not sure what it could be, wasn't happening in 1.9.3 :(
cd tmp/x86-mingw32/bool_ext/2.0.0
/home/dkowis/.rvm/rubies/ruby-2.0.0-p0/bin/ruby -I. -rfake ../../../../ext/bool_ext/extconf.rb
/home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- win32/resolv (LoadError)
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/resolv.rb:169:in `<class:Hosts>'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/resolv.rb:167:in `<class:Resolv>'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/resolv.rb:37:in `<top (required)>'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/remote_fetcher.rb:4:in `<top (required)>'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/spec_fetcher.rb:1:in `<top (required)>'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/dkowis/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.0.pre.7/lib/bundler/source/rubygems.rb:3:in `<top (required)>'
from /home/dkowis/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.0.pre.7/lib/bundler/dsl.rb:18:in `initialize'
from /home/dkowis/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.0.pre.7/lib/bundler/dsl.rb:8:in `new'
from /home/dkowis/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.0.pre.7/lib/bundler/dsl.rb:8:in `evaluate'
from /home/dkowis/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.0.pre.7/lib/bundler/definition.rb:19:in `build'
from /home/dkowis/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.0.pre.7/lib/bundler.rb:145:in `definition'
from /home/dkowis/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.0.pre.7/lib/bundler.rb:113:in `setup'
from /home/dkowis/.rvm/gems/ruby-2.0.0-p0/gems/bundler-1.3.0.pre.7/lib/bundler/setup.rb:7:in `<top (required)>'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /home/dkowis/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
rake aborted!
Command failed with status (1): [/home/dkowis/.rvm/rubies/ruby-2.0.0-p0/bin...]
/home/dkowis/.rvm/gems/ruby-2.0.0-p0/gems/rake-compiler-0.8.3/lib/rake/extensiontask.rb:153:in `block (2 levels) in define_compile_tasks'
/home/dkowis/.rvm/gems/ruby-2.0.0-p0/gems/rake-compiler-0.8.3/lib/rake/extensiontask.rb:150:in `block in define_compile_tasks'
/home/dkowis/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `eval'
/home/dkowis/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => compile => compile:x86-mingw32 => compile:bool_ext:x86-mingw32 => copy:bool_ext:x86-mingw32:2.0.0 => tmp/x86-mingw32/bool_ext/2.0.0/bool_ext.so => tmp/x86-mingw32/bool_ext/2.0.0/Makefile
(See full trace by running task with --trace)
make: *** [winruby] Error 1
gem install bool -v 1.0.20
fails with ruby version 2.1.5 on Mac OS 10.10
Install output
======= compiling with clang
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling ast.c
compiling ext.c
compiling lexer.c
lexer.c:74:18: error: unused variable 'lexer_first_final' [-Werror,-Wunused-const-variable]
static const int lexer_first_final = 3;
^
lexer.c:76:18: error: unused variable 'lexer_en_main' [-Werror,-Wunused-const-variable]
static const int lexer_en_main = 3;
^
2 errors generated.
make: *** [lexer.o] Error 1
make failed, exit code 2
This happens when using either clang or gcc-4.8.
This can be overcome simply by appending the install command with -- -with-cflags=-w
to ignore unused constants when compiling the gem.
I am not sure how to fix this myself without just removing the flag from ruby/ext/bool_ext/extconf.rb
.
The Exceptions spec in ruby/spec/bool_spec.rb doesn't make an assertion about the error messages, but it should. (It's commented out).
This is needed in order to make it easier for users to fix their typos.
I haven't quite figured out how to do this in C/Ruby, but I have a hunch that we need to use strerror and store the error whenever yyerror
is called.
@mattwynne and @sebrose what do you think about this as a warm-up challenge for gherkin3?
rubygems.org : ilanpillemer
npmjs.org : ilanpillemer
oss.sonatype.org : ilanpillemer
All three have the same username (same as in github too) : ilanpillemer
email: [email protected]
I have submitted the following issue to Sonatype: https://issues.sonatype.org/browse/OSSRH-5382
Can someone confirm this was correctly filled in?
Reproduce:
rvm jruby
gem install bool && ruby -e "require 'bool'"
Output:
Successfully installed bool-1.0.10-java
1 gem installed
LoadError: no such file to load -- libbool
require at org/jruby/RubyKernel.java:1027
require at /home/aslak/.rvm/rubies/jruby-1.7.2/lib/ruby/shared/rubygems/custom_require.rb:36
Evaluator at /home/aslak/.rvm/gems/jruby-1.7.2/gems/bool-1.0.10-java/lib/bool/evaluator.rb:4
Bool at /home/aslak/.rvm/gems/jruby-1.7.2/gems/bool-1.0.10-java/lib/bool/evaluator.rb:2
(root) at /home/aslak/.rvm/gems/jruby-1.7.2/gems/bool-1.0.10-java/lib/bool/evaluator.rb:1
require at org/jruby/RubyKernel.java:1027
(root) at /home/aslak/.rvm/rubies/jruby-1.7.2/lib/ruby/shared/rubygems/custom_require.rb:1
require at /home/aslak/.rvm/rubies/jruby-1.7.2/lib/ruby/shared/rubygems/custom_require.rb:36
require at org/jruby/RubyKernel.java:1027
(root) at /home/aslak/.rvm/gems/jruby-1.7.2/gems/bool-1.0.10-java/lib/bool.rb:5
(root) at -e:1
Any takers? If someone fixes it, please do it on a branch so it can be reviewed.
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.