marianoguerra / efene

OFICIAL REPO IS AT https://github.com/efene/efene
https://github.com/efene/efene
Other
145 stars 32 forks source link

Efene incompatible with Erlang R14? #39

Closed DavidMikeSimon closed 12 years ago

DavidMikeSimon commented 12 years ago

Trying to compile Efene libs using Erlang R14, I run into problems in efene's parser:

DEBUG: Worker compilation failed: [{error, {'EXIT', {{badarg, {match,4,{atom,4,method},{atom,4,get}}}, [{erl_parse,normalise,1}, {erl_parse,normalise_list,1}, {erl_parse,normalise,1}, {fn_parser,normalise_args,1}, {fn_parser,handle_undef_attribute,4}, {fn_parser,run_attribute,5}, {fn_parser,yeccpars2_404,7}, {fn_parser,yeccpars0,5}]}}}, {source,"lib/rest.ifn"}]

No such issue occurs using R13. Can anyone else reproduce this?

marianoguerra commented 12 years ago

the language is extended by modules implemented in itself, so some modules need to be compiled before so others can be correctly compiled:

    mariano@ganesha:~/src/efene/lib$ fnc rec.ifn                           
    Compiling rec.ifn                                                      
    mariano@ganesha:~/src/efene/lib$ fnc import.ifn                        
    Compiling import.ifn                                                   
    mariano@ganesha:~/src/efene/lib$ fnc spec.ifn                          
    Compiling spec.ifn                                                     
    mariano@ganesha:~/src/efene/lib$ fnc type.ifn                          
    Compiling type.ifn                                                     
    mariano@ganesha:~/src/efene/lib$ fnc mod.ifn                           
    Compiling mod.ifn                                                      
    mariano@ganesha:~/src/efene/lib$ fnc ast.ifn dct.ifn fio.ifn lst.ifn schema.ifn struct.ifn rest.ifn
    Compiling ast.ifn                                                      
    Compiling dct.ifn                                                      
    Compiling fio.ifn                                                      
    Compiling lst.ifn                                                      
    Compiling schema.ifn                                                   
    Compiling struct.ifn                                                   
    Compiling rest.ifn                                                     
    mariano@ganesha:~/src/efene/lib$ fnc *.ifn                             
    Compiling ast.ifn                                                      
    Compiling dct.ifn                                                      
    Compiling fio.ifn                                                      
    Compiling import.ifn                                                   
    Compiling lst.ifn                                                      
    Compiling mod.ifn                                                      
    Compiling rec.ifn                                                      
    Compiling rest.ifn                                                     
    Compiling schema.ifn                                                   
    Compiling spec.ifn                                                     
    Compiling struct.ifn                                                   
    Compiling type.ifn                                                     
    mariano@ganesha:~/src/efene/lib$ ls                                    
    ast.beam  dct.beam  fio.beam  import.beam  lst.beam  mod.beam  rec.beam  rest.beam  schema.beam  spec.beam  struct.beam  type.beam
    ast.ifn   dct.ifn   fio.ifn   import.ifn   lst.ifn   mod.ifn   rec.ifn   rest.ifn   schema.ifn   spec.ifn   struct.ifn   type.ifn
    mariano@ganesha:~/src/efene/lib$ mv *.beam ../ebin/ 
marianoguerra commented 12 years ago

btw, rebar doesn't seem to build lib/*.ifn and move them to ebin can it be done? or should we add that step in build.sh?

DavidMikeSimon commented 12 years ago

Actually, it does do that already; if you don't see it doing that, then something has gone wrong during the build process. Try running rebar in verbose mode.

On Thu, Nov 24, 2011 at 4:28 AM, Mariano Guerra < reply@reply.github.com

wrote:

btw, rebar doesn't seem to build lib/*.ifn and move them to ebin can it be done? or should we add that step in build.sh?


Reply to this email directly or view it on GitHub: https://github.com/marianoguerra/efene/issues/39#issuecomment-2860481

David Simon

DavidMikeSimon commented 12 years ago

Actually, now I'm seeing similar issues with it skipping lib files. I'll check that out.

DavidMikeSimon commented 12 years ago

Okay, I fixed the issue with compile order; see the pull req I'm about to make.

There is however another issue: at the moment, it is necessary to run rebar compile twice when compiling rebar after fetching deps for the first time, because it will only load the efene plugin if it has already been compiled when rebar first starts up. I will see what I can do about that.