Re: [m-users.] [Beginner] Using a functions from 'libs'

Razetime <[email protected]>
Newsgroups gmane.comp.lang.mercury.general
Message-ID <CAMtxHUvUSEnfL0a8bF1ur_Mf__FvYmPTaVpAeNYEivAP6H4=Zg@mail.gmail.com>
My bad. What is the problem here? Is it a problem with
https://github.com/Mercury-Language/mercury/blob/master/compiler/md5.m
?

Making Mercury/int3s/a05.int3
Making Mercury/ints/a05.int
Making Mercury/cs/a05.c
Making Mercury/cs/md5.c
Making Mercury/os/a05.o
Making Mercury/os/md5.o
Making a05
Making md5
** Error making `md5'.
Mercury/os/md5_init.o:md5_init.c:function mercury_init: error:
undefined reference to '<predicate 'main'/2 mode 0>'
collect2: error: ld returned 1 exit status

On 10/16/22, Volker Wysk <[email protected]> wrote:
> You've mixed up the input and output arguments in the declaration of
> main/2.
>
> Volker
>
>
> Am Sonntag, dem 16.10.2022 um 16:06 +0530 schrieb Razetime:
>> For this program I tried using mmc --make and i got the following error.
>>
>> :- module a05.
>>
>> :- interface.
>> :- import_module io.
>> :- pred main(io::uo,io::di) is det.
>>
>> :- implementation.
>> :- import_module list.
>> :- import_module md5.
>>
>> main(!IO):-
>>   S0=md5sum("abc3231929"),
>>   print_line(S0,!IO)
>>   .
>>
>>
>> $ mmc --make a05 md5
>> Making Mercury/int3s/a05.int3
>> Making Mercury/ints/a05.int
>> Making Mercury/cs/a05.c
>> a05.m:013: In clause for `main(uo, di)':
>> a05.m:013:   in argument 2 of call to predicate `io.print_line'/3:
>> a05.m:013:   unique-mode error: the called procedure would clobber its
>> a05.m:013:   argument, but variable `STATE_VARIABLE_IO_0' is still live.
>> ** Error making `Mercury/cs/a05.c'.
>>
>> How do i make sure the variable is not live?
>>
>> On 10/16/22, Razetime <[email protected]> wrote:
>> > Oh, makes sense. The md5.m file is not part of the distribution so i
>> > have to compile it along with my program. Thanks.
>> >
>> > On 10/16/22, Julien Fischer <[email protected]> wrote:
>> > >
>> > >
>> > > On Sun, 16 Oct 2022, Razetime wrote:
>> > >
>> > > > using the name md5 like follows:
>> > > > :- module a05.
>> > > >
>> > > > :- interface.
>> > > > :- import_module io.
>> > > > :- pred main(io::uo,io::di) is det.
>> > > >
>> > > > :- implementation.
>> > > > :- import_module list.
>> > > > :- import_module md5.
>> > > >
>> > > > main(!IO):-
>> > > >  S0=md5sum("abc3231929"),
>> > > >  print_line(S0,!IO)
>> > > >  .
>> > > >
>> > > > gives me this error:
>> > > > $ mmcb a05.m
>> > > > ~
>> > > >                                                 │mercury_compile:
>> > > > cannot find `Mercury/ints/md5.int' in directories .,
>> > > > ~
>> > > >                                                 │
>> > > > /usr/lib/mercury/ints
>> > >
>> > > Using mmc directly like that is only for building single module
>> > > programs.  To build a program consisting of multiple modules, use
>> > > the --make option, e.g.
>> > >
>> > >      $ mmc --make a05
>> > >
>> > > (See the "Using the Mercury compile" section of the Mercury users's
>> > > guide for details.)
>> > >
>> > > Julien.
>> >
>> _______________________________________________
>> users mailing list
>> [email protected]
>> https://lists.mercurylang.org/listinfo/users
>
>
_______________________________________________
users mailing list
[email protected]
https://lists.mercurylang.org/listinfo/users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.