RIPE-NCC / whois

RIPE Database whois code repository
Other
386 stars 96 forks source link

can yacc.linux & yacc.macosx be replaced? #104

Closed job closed 10 years ago

job commented 10 years ago

I'm trying to get the whois server running through travis-ci.org but it fails because yacc.linux somehow is not able to run on 64-bit machines.

Where did yacc.linux and yacc.macosx come from? Isnt there a way to rely on a yacc that can easily be installed on macosx and linux instead of shipping a binary in the git repository?

kakooch commented 10 years ago

AFAIK, it is the code from http://invisible-island.net/byacc/, I am sure it is possible to change that, but for now changing whois-client/src/main/resources/bin/generateByaccs to care for 64 bit and to use right binary should solve the issue. The 64 bit binary is also available as RPM.

job commented 10 years ago

I don't think it's that byacc code:

binary that ships through git:

Eleanor:bin job$ pwd
/Users/job/source/ripe-whois/whois-client/src/main/resources/bin
Eleanor:bin job$ ./yacc.macosx --help
usage:
 ./yacc.macosx [-dlrtvj] [-b file_prefix] [-Joption] filename
  where -Joption is one or more of:
   -J
   -Jclass=className
   -Jvalue=valueClassName (avoids automatic value class creation)
   -Jpackage=packageName
   -Jextends=extendName
   -Jimplements=implementsName
   -Jsemantic=semanticType
   -Jnorun
   -Jnoconstruct
   -Jstack=SIZE   (default 500)
   -Jnodebug (omits debugging code for better performance)
   -Jfinal (makes generated class final)
   -Jthrows (declares thrown exceptions for yyparse() method)

invisible-island:

Eleanor:byacc-20130925 job$ ./yacc --help
Usage: ./yacc [options] filename

Options:
  -b file_prefix        set filename prefix (default "y.")
  -d                    write definitions (y.tab.h)
  -i                    write interface (y.tab.i)
  -g                    write a graphical description
  -l                    suppress #line directives
  -o output_file        (default "y.tab.c")
  -p symbol_prefix      set symbol prefix (default "yy")
  -P                    create a reentrant parser, e.g., "%pure-parser"
  -r                    produce separate code and table files (y.code.c)
  -s                    suppress #define's for quoted names in %token lines
  -t                    add debugging support
  -v                    write description (y.output)
  -V                    show version information and exit
job commented 10 years ago

OK, seems what is included is the byacc/java edition, from somewhere in 1999 :-)

https://web.archive.org/web/19991005044227/http://www.lincom-asg.com/~rjamison/byacc/

Maybe we can depend on a more recent or easier to install yacc compiler which can be installed through either homebrew or apt-get or rpm/yum ?

job commented 10 years ago

I'm working on something that will be useful. Please stand by ;-)

job commented 10 years ago

We can continue conversation in Pull request #105