Re: [eclipse-users] Predicate declarations in Eclipse

From: Siddharth Angrish <sidangrish_at_gmail.com>
Date: Mon, 30 Apr 2007 15:02:12 -0400
Hi
        I am facing the following error while compilation
-------------------------------------------
*** trying to redefine a built-in predicate: (:) / 2
        before line 49 in the file
/users/angrish/fsa/eclps/bin/i386_linux/libfsa/fsa_array.pl
----------------------------------------------
           There is no (:) / 2 predicate defined before it!!!! In
fact, no where in all the
files I am compiling.

Some story:
   I am compiling an Eclipse source file (firstFile) declared as a module.
The "firstFile", through the following statement:
               :- use_module([ anotherFile]).

uses declarations of "anotherFile". The error comes as a result of this file's
compilation. I am compiling the original file as:-   lib(firstFile).
I am NOT using any compatibility package

Thanks
Siddharth



On 4/30/07, Kish Shen <kisshen_at_cisco.com> wrote:
> Hi,
>
> I believe you are trying to not use the compatibility libraries to do
> this now, but it may still be useful to look at how the compatibility
> module does things, and to look at the manual chapters on modules for
> both SICStus and ECLiPSe, and understand how the two are different, and
> so how you can change things from one to the other...
>
> Siddharth Angrish wrote:
> > Hi
> >
> >         I am trying to port a big prolog code (FSA6) to ECLiPse. The
> > code is compatible
> > with swi/sicstus/yap(SSY) prologs. I have a few queries regarding
> > predicate delarations:
> >
> > 1) SSY support the keyword, multifile. Does EClipSe use "dynamic" for
> > the purpose?
> >
> >
> dynamic does give you what multifile does, i.e. you can define clauses
> for the same predicate in different files...
> > 2) Does "dynamic" also serve the purpose of the keyword
> > "discontiguous" which is there
> > in all SSY
> >
> > 3)  SSY support the following declaration:
> >       multifile user:help_info/4.
> >    which I think says that-> To the predicate help_info/4,  "defined"
> > in module "user",
> >   new clauses can be added in the current file.
> >
> > I modified it to: (only in the first file)
> >     dynamic user:help_info/4
> >
> >             However, this module does not exist anywhere in the code I
> > am porting.
> > I suppose it is created on the fly in SSY, a feature which ECLIPSE
> > does NOT support.
> >
> >
> This is not quite correct -- you can create modules `on the fly' (i.e.
> during execution of code at runtime) with ECLiPSe, but you must do it
> explicitly. The difference is that on Prologs such as SWI Prolog, when
> you refer to an a new module, it is created implicitly.
> > To circumvent the "non-availability" of this feature I created the user module
> > myself as  following:
> > -----------user.ecl------------------
> > :- module(user).
> > help_info(A,B,C,D).
> > ----------------------------
> >       Then in the module I am working on, I included the delcaration
> > :- lib(user).
> >
> > Upon compilation I am getting the error: ( I am using->
> > lib(myLibraryName). to compile)
> > [[type error in dynamic user : help_info / 4 in module fsa_array]]
> >
> > what can be the problem?
> >
> > 4) How can one see all the "loaded modules " in the current instance of eclipse
> >
> > 5) Is there any way/need of getting a "public declaration" for a
> > predicate in ECLIPSE
> >
> >
> > Many thanks in advance ;)
> > Siddharth
> >
> > _______________________________________________
> > ECLiPSe-Users mailing list
> > ECLiPSe-Users_at_crosscoreop.com
> > http://www.crosscoreop.com/mailman/listinfo/eclipse-users
> >
>
> Cheers,
>
> Kish
>
Received on Mon Apr 30 2007 - 20:02:20 CEST

This archive was generated by hypermail 2.2.0 : Thu Feb 02 2012 - 02:31:58 CET