'Compliation failed in require'

Help
Anonymous
2010-01-14
2013-05-20

  • Anonymous
    2010-01-14

    Hey,

    Using Eclipse Ganymede (3.5.1) with EPIC (0.6.35), running on Windows XP with ActivePerl (5.10.1), I'm getting "Compilation failed in require" on the system-level Perl modules.  The error starts on my own modules and upon inspection down to the deepest level, the supposedly erroneous module passes the syntax check just fine.  Note that this doesn't seem to occur for every module.  Using my own code as an example:

    use DBI;
    use CGI::Session::ID::md5;
    use CGI::Session::Serialize::freezethaw; # <-- "Compilation failed in require"
    use CGI::Session;
    use strict;
    

    But when I "open declaration" for  "CGI::Session::Serialize::freezethaw", the internal syntax checker comes up clean (except for 2 expected warnings in this particular case).

    The main irritation here is that EPIC (perl) only provides syntax errors for the first error it finds, so it's preventing more useful errors from being picked up.

    I hope someone can help me clear this up!!

     
  • Jan Ploski
    Jan Ploski
    2010-01-14

    It is often easier to diagnose those annoying compilation problems using the command line: run perl -c -I <include path> filename.pl for each of the files in your project manually. It is likely that the compilation problems only occur when checking some particular (script?) file. EPIC would then propagate those errors and stick them to innocent modules.

     
  • I have this in test.pl file:

    use DBI;

    and the tooltip saying "Compilation failed in require". The interesting thing is that autocompletion and F3 works.

    How can solve this?

    Alan

     
  • Jan Ploski
    Jan Ploski
    2010-10-12

    Does the warning become more specific or go away when you do perl -c test.pl on the command line?

     
  • Nope, it simply says: /Volumes/EBI/uniprot/production/cvs/awilter/sptrembl/src/perl% perl -c -I ./reference_proteomes reference_proteomes/test.pl
    reference_proteomes/test.pl syntax OK

    To help you to help me.
    I am running /usr/bin/perl ver. 5.10.0 with Eclipse 3.6 on Mac SL 10.6.4 with some perl libs (like the DBI in question) installed via Fink, so I have on my system:

    echo $PERL5LIB
    /sw/lib/perl5:/sw/lib/perl5/darwin

    Which I reproduce on Eclipse EPIC 'Perl Include Path':
    ${project_loc}
    /Volumes/EBI/uniprot/production/shared/lib/perl    # Bio::EnsEMBL perl libs
    /Volumes/EBI/uniprot/production/cvs/awilter/sptrembl/src/perl/reference_proteomes  # = ${project_loc}. I have my *.pm files there and EPIC can't F3 them, another issue to see later
    /sw/lib/perl5
    /sw/lib/perl5/darwin

    What seems to happen here is what you mentioned in "EPIC would then propagate those errors and stick them to innocent modules".

    But in my test.pl, which have only one line: 'use DBI', when I do F3, it loads a file in Eclipse with this path:

    epic_links/1286898281531/DBI.pm

    which is /sw/lib/perl5/5.10.0/darwin-thread-multi-2level/DBI.pm on my filesystem. Though the syntax analysis shows nothing wrong in the DBI.pm, at Eclipse Navigator window, DBI.pm is shown with a  error mark.

    How can I be sure that 'epci_links' is updated?

    Thanks,

    Alan

     
  • A possible solution:

    make epic_links project a Perl project and add its perl path source the the paths the contain your *.pm files