Re: Problem with select/5 on AF_INET sockets with Windows 7
Fx <[email protected]> Fri, 20 Feb 2015 19:59:29 +0100
| Newsgroups | gmane.comp.gnu.prolog.bugs |
|---|---|
| Message-ID | <[email protected]> |
--===============4037303040436949499== Content-Type: multipart/alternative; boundary="Apple-Mail=_610C711D-2742-4505-AB55-76412429BE36" --Apple-Mail=_610C711D-2742-4505-AB55-76412429BE36 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 Ok, this is a very little step, but after some adventures with = installation i have some news: Getting source from git reveal two bugs (and something curious maybe): - impossible to use anonymous git clone , so i fall back with = getting the snapshot. - the source didn=92t contain the =91configure=92 script (i = picked it up from the 1.4.4 tar to go on) - the version is still 1.4.4 (ok it=92s not the end of the = world). I installed the MinGW on Windows 7 32 bit, in th standard manner. = Fortunately my antivirus didn=92t says nothing with the default a.out = a.exe. As si said previously, i took the =AB configure" file from prolog 1.4.4 = source tarball And last, but not least, the select/5 bug seems to belong to the past on = windows (MinGW). I run again the tests wrote in this mailing list, and = the previous error didn=92t appear anymore.=20 It=92s weak for a beta test, but it=92s quite a good news. It would be = nice if i had time to write some client/server tests, things like that. Fx Le 19 f=E9vr. 2015 =E0 20:40, Paulo Moura <[email protected]> a =E9crit = : >>=20 >> On 19/02/2015, at 19:11, Fx <[email protected]> wrote: >>=20 >> :)) Paulo, you are right, if it can help. I won=92t promise anything, = but i can at least take a look, sure. >>=20 >> Can you help, and tell me where cans i found some infos: >> - What are actually the tools (or info link )to compile under Windows = (7,32b my office copmuter) >> - What are actually the tools (or info link )to compile under Os X = (this one is really rather a computer, my personnal(s) one(s)). >=20 > I cannot help you with building GNU Prolog on Windows but, on Mac OS = X, just follow the steps in the INTALL file. >=20 >> Dont=92 they exists some kinda unit tests ? Prolog coded scenario ? = Or a Jenkins like for massive testing ? >=20 > Logtalk includes a Prolog conformance test suite but it only tests, as = it names indicates, standards related stuff. The small number of = conformance issues are known (and some of them are really limitations in = the standard). I cannot speak for Daniel, of course, but testing of = other (non-standard) features would like be more useful. Specially stuff = this might behave differently across different operating-systems (like = sockets :-). >=20 > Cheers, >=20 > Paulo >=20 >> Le 19 f=E9vr. 2015 =E0 20:00, Paulo Moura <[email protected]> a = =E9crit : >>=20 >>>=20 >>>> On 19/02/2015, at 18:58, Fx <[email protected]> wrote: >>>>=20 >>>> Daniel, >>>>=20 >>>> Thank you very much for your answer, and this is a great news for = 1.4.5 !!! >>>>=20 >>>> I=92ll be patient and wait for the official distribution. >>>=20 >>> Don't be patient. Help instead beta-testing 1.4.5. >>>=20 >>> Cheers, >>>=20 >>> Paulo >>>=20 >>>=20 >>>> Le 17 f=E9vr. 2015 =E0 13:32, Daniel Diaz = <[email protected]> a =E9crit : >>>>=20 >>>>> Hi, >>>>>=20 >>>>> sorry for the late reply. Thank you for this bug report. >>>>>=20 >>>>> The bug is fixed in the last git version. Will be fixed in next = 1.4.5 >>>>>=20 >>>>> Daniel >>>>>=20 >>>>>=20 >>>>>=20 >>>>> Le 27/01/2015 12:44, [email protected] a =E9crit : >>>>>> Dear Daniel, >>>>>>=20 >>>>>> I am working on a specific http server for gnu prolog (1.4.4), = and i discovered >>>>>> a strange comportment under windows 7 (32) with the select/5 = predicate. >>>>>>=20 >>>>>> The simple test below works fine on a OSX (maybe all unix) system = but will >>>>>> return a system error under Windos 7 (32) , "Bad File = Descriptor": >>>>>>=20 >>>>>> ERROR : Failed to start server : error(system_error(Bad file >>>>>> descriptor),select/5) >>>>>>=20 >>>>>> To test, launch one of the two test cases and open an internet = browser to >>>>>> http://127.0.0.1:8080/ for example, or change the 127.0.0.1 by = your IP. >>>>>>=20 >>>>>> %- Program Test with Select ----------------------------------- >>>>>>=20 >>>>>> worker_run(Socket, Client, StreamIn, StreamOut):- write('i am a = working worker >>>>>> ...'), nl. >>>>>>=20 >>>>>> server_test_with_select:- >>>>>> socket('AF_INET', Socket), >>>>>> socket_bind(Socket, 'AF_INET'(Host, 8080)), >>>>>> socket_listen(Socket,10), >>>>>> catch( server_loop_with_select(Socket),E, >>>>>> ( socket_close(Socket), >>>>>> format( "ERROR : Failed to start server : ~w~n", = [E] ) >>>>>> )). >>>>>>=20 >>>>>> server_loop_with_select(Socket):- >>>>>> repeat, >>>>>> select([Socket],ReadyReads,[Socket],[],0), >>>>>> worker_run(Socket, Client, StreamIn, StreamOut), >>>>>> fail. >>>>>>=20 >>>>>> %- End of Program Test with Select = ----------------------------------- >>>>>>=20 >>>>>> When not using usefull select/5 and directly use the = socket_accept/4 predicate >>>>>> the server works well. >>>>>>=20 >>>>>>=20 >>>>>> %- Program Test without Select = ----------------------------------- >>>>>>=20 >>>>>> worker_run(Socket, Client, StreamIn, StreamOut):- write('i am a = working worker >>>>>> ...'), nl. >>>>>>=20 >>>>>> server_test_without_select:- >>>>>> socket('AF_INET', Socket), >>>>>> socket_bind(Socket, 'AF_INET'(Host, 8080)), >>>>>> socket_listen(Socket,10), >>>>>> catch( server_loop_without_select(Socket),E, >>>>>> ( socket_close(Socket), >>>>>> format( "ERROR : Failed to start server : ~w~n", = [E] ) >>>>>> )). >>>>>>=20 >>>>>> server_loop_without_select(Socket):- >>>>>> repeat, >>>>>> socket_accept(Socket, Client, StreamIn, StreamOut), >>>>>> worker_run(Socket, Client, StreamIn, StreamOut), >>>>>> fail. >>>>>>=20 >>>>>> %- End of Program Test without Select = ----------------------------------- >>>>>>=20 >>>>>>=20 >>>>>> Is it a known bug and did you plan to fix it in a future version = ? >>>>>>=20 >>>>>>=20 >>>>>> Best Regards, >>>>>>=20 >>>>>> Fx NION. >>>>>>=20 >>>>>>=20 >>>>>> _______________________________________________ >>>>>> Bug-prolog mailing list >>>>>> [email protected] >>>>>> https://lists.gnu.org/mailman/listinfo/bug-prolog >>>>>>=20 >>>>>=20 >>>>>=20 >>>>> --=20 >>>>> Ce message a ete verifie par MailScanner >>>>> pour des virus ou des polluriels et rien de >>>>> suspect n'a ete trouve. >>>>>=20 >>>>=20 >>>>=20 >>>> _______________________________________________ >>>> Bug-prolog mailing list >>>> [email protected] >>>> https://lists.gnu.org/mailman/listinfo/bug-prolog >>>=20 >>> ----------------------------------------------------------------- >>> Paulo Moura >>> Logtalk developer >>>=20 >>> Email: <mailto:[email protected]> >>> Web: <http://logtalk.org/> >>> ----------------------------------------------------------------- >>>=20 >>>=20 >>>=20 >>>=20 >>=20 >=20 > ----------------------------------------------------------------- > Paulo Moura > Logtalk developer >=20 > Email: <mailto:[email protected]> > Web: <http://logtalk.org/> > ----------------------------------------------------------------- --Apple-Mail=_610C711D-2742-4505-AB55-76412429BE36 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=windows-1252 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html = charset=3Dwindows-1252"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: = after-white-space;"><div>Ok, this is a very little step, but after some = adventures with installation i have some = news:</div><div><br></div><div>Getting source from git reveal two bugs = (and something curious maybe):</div><div><span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>- impossible to use anonymous git = clone , so i fall back with getting the snapshot.</div><div><span = class=3D"Apple-tab-span" style=3D"white-space:pre"> </span>- the = source didn=92t contain the =91configure=92 script (i picked it up = from the 1.4.4 tar to go on)</div><div><span class=3D"Apple-tab-span" = style=3D"white-space:pre"> </span>- the version is still 1.4.4 (ok = it=92s not the end of the world).</div><div><br></div><div>I installed = the MinGW on Windows 7 32 bit, in th standard manner. Fortunately my = antivirus didn=92t says nothing with the default a.out = a.exe.</div><div>As si said previously, i took the =AB configure" = file from prolog 1.4.4 source tarball</div><div><br></div><div>And last, = but not least, the select/5 bug seems to belong to the past on windows = (MinGW). I run again the tests wrote in this mailing list, and = the</div><div>previous error didn=92t appear = anymore. </div><div><br></div><div>It=92s weak for a beta test, but = it=92s quite a good news. It would be nice if i had time to write some = client/server tests, things like = that.</div><div><br></div><div>Fx</div><div><br></div><br><div><div>Le = 19 f=E9vr. 2015 =E0 20:40, Paulo Moura <<a = href=3D"mailto:[email protected]">[email protected]</a>> a =E9crit = :</div><br class=3D"Apple-interchange-newline"><blockquote = type=3D"cite"><blockquote type=3D"cite" style=3D"font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: = 0px;"><br class=3D"Apple-interchange-newline">On 19/02/2015, at 19:11, = Fx <<a href=3D"mailto:[email protected]">[email protected]</a>> = wrote:<br><br>:)) Paulo, you are right, if it can help. I won=92t = promise anything, but i can at least take a look, sure.<br><br>Can you = help, and tell me where cans i found some infos:<br>- What are actually = the tools (or info link )to compile under Windows (7,32b my office = copmuter)<br>- What are actually the tools (or info link )to compile = under Os X (this one is really rather a computer, my personnal(s) = one(s)).<br></blockquote><br style=3D"font-family: Helvetica; font-size: = 12px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px; float: none; display: inline = !important;">I cannot help you with building GNU Prolog on Windows but, = on Mac OS X, just follow the steps in the INTALL file.</span><br = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;"><br style=3D"font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;"><blockquote type=3D"cite" = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;">Dont=92 they exists some kinda = unit tests ? Prolog coded scenario ? Or a Jenkins like for massive = testing ?<br></blockquote><br style=3D"font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: = 0px;"><span style=3D"font-family: Helvetica; font-size: 12px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;">Logtalk includes a Prolog conformance = test suite but it only tests, as it names indicates, standards related = stuff. The small number of conformance issues are known (and some of = them are really limitations in the standard). I cannot speak for Daniel, = of course, but testing of other (non-standard) features would like be = more useful. Specially stuff this might behave differently across = different operating-systems (like sockets :-).</span><br = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;"><br style=3D"font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;"><span style=3D"font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; = float: none; display: inline !important;">Cheers,</span><br = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;"><br style=3D"font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;"><span style=3D"font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; = float: none; display: inline !important;">Paulo</span><br = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;"><br style=3D"font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;"><blockquote type=3D"cite" = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;">Le 19 f=E9vr. 2015 =E0 20:00, = Paulo Moura <<a = href=3D"mailto:[email protected]">[email protected]</a>> a =E9crit = :<br><br><blockquote type=3D"cite"><br><blockquote type=3D"cite">On = 19/02/2015, at 18:58, Fx <<a = href=3D"mailto:[email protected]">[email protected]</a>> = wrote:<br><br>Daniel,<br><br>Thank you very much for your answer, and = this is a great news for 1.4.5 !!!<br><br>I=92ll be patient and wait for = the official distribution.<br></blockquote><br>Don't be patient. Help = instead beta-testing = 1.4.5.<br><br>Cheers,<br><br>Paulo<br><br><br><blockquote type=3D"cite">Le= 17 f=E9vr. 2015 =E0 13:32, Daniel Diaz <<a = href=3D"mailto:[email protected]">[email protected]</a>&= gt; a =E9crit :<br><br><blockquote type=3D"cite">Hi,<br><br>sorry for = the late reply. Thank you for this bug report.<br><br>The bug is fixed = in the last git version. Will be fixed in next = 1.4.5<br><br>Daniel<br><br><br><br>Le 27/01/2015 12:44, <a = href=3D"mailto:[email protected]">[email protected]</a> a =E9crit = :<br><blockquote type=3D"cite">Dear Daniel,<br><br>I am working on a = specific http server for gnu prolog (1.4.4), and i discovered<br>a = strange comportment under windows 7 (32) with the select/5 = predicate.<br><br>The simple test below works fine on a OSX (maybe all = unix) system but will<br>return a system error under Windos 7 (32) , = "Bad File Descriptor":<br><br>ERROR : Failed to start server : = error(system_error(Bad file<br>descriptor),select/5)<br><br>To test, = launch one of the two test cases and open an internet browser to<br><a = href=3D"http://127.0.0.1:8080/">http://127.0.0.1:8080/</a> for example, = or change the 127.0.0.1 by your IP.<br><br>%- Program Test with Select = -----------------------------------<br><br>worker_run(Socket, Client, = StreamIn, StreamOut):- write('i am a working worker<br>...'), = nl.<br><br>server_test_with_select:-<br><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>socket('AF_INET', = Socket),<br><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>socket_bind(Socket, 'AF_INET'(Host, 8080)),<br><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>socket_listen(Socket,10),<br><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>catch(<span = class=3D"Apple-converted-space"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>server_loop_with_select(Socket),E,<br><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span>(<span = class=3D"Apple-converted-space"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>socket_close(Socket),<br><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>format( "ERROR : Failed to start = server : ~w~n", [E] )<br><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> = </span>)).<br><br>server_loop_with_select(Socket):-<br><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>repeat,<br><span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span><span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span>select([Socket],ReadyReads,[Socket],[],0),<br><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>worker_run(Socket, Client, StreamIn, StreamOut),<br><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>fail.<br><br>%- End of Program Test with Select = -----------------------------------<br><br>When not using usefull = select/5 and directly use the socket_accept/4 predicate<br>the server = works well.<br><br><br>%- Program Test without Select = -----------------------------------<br><br>worker_run(Socket, Client, = StreamIn, StreamOut):- write('i am a working worker<br>...'), = nl.<br><br>server_test_without_select:-<br><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>socket('AF_INET', = Socket),<br><span class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>socket_bind(Socket, 'AF_INET'(Host, 8080)),<br><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>socket_listen(Socket,10),<br><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>catch(<span = class=3D"Apple-converted-space"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>server_loop_without_select(Socket),E,<br><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> </span><span = class=3D"Apple-converted-space"> </span>(<span = class=3D"Apple-converted-space"> </span><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>socket_close(Socket),<br><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> </span>format( "ERROR : Failed to start = server : ~w~n", [E] )<br><span class=3D"Apple-tab-span" = style=3D"white-space: pre;"> = </span>)).<br><br>server_loop_without_select(Socket):-<br><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>repeat,<br><span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span><span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span>socket_accept(Socket, Client, StreamIn, = StreamOut),<br><span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span><span class=3D"Apple-tab-span" style=3D"white-space: = pre;"> </span>worker_run(Socket, Client, StreamIn, StreamOut),<br><span = class=3D"Apple-tab-span" style=3D"white-space: pre;"> = </span>fail.<br><br>%- End of Program Test without Select = -----------------------------------<br><br><br>Is it a known bug and did = you plan to fix it in a future version ?<br><br><br>Best = Regards,<br><br>Fx = NION.<br><br><br>_______________________________________________<br>Bug-pr= olog mailing list<br><a = href=3D"mailto:[email protected]">[email protected]</a><br>https://lists= .gnu.org/mailman/listinfo/bug-prolog<br><br></blockquote><br><br>--<span = class=3D"Apple-converted-space"> </span><br>Ce message a ete = verifie par MailScanner<br>pour des virus ou des polluriels et rien = de<br>suspect n'a ete = trouve.<br><br></blockquote><br><br>______________________________________= _________<br>Bug-prolog mailing list<br><a = href=3D"mailto:[email protected]">[email protected]</a><br>https://lists= .gnu.org/mailman/listinfo/bug-prolog<br></blockquote><br>-----------------= ------------------------------------------------<br>Paulo = Moura<br>Logtalk developer<br><br>Email: <<a = href=3D"mailto:[email protected]">mailto:[email protected]</a>><br>We= b: <<a = href=3D"http://logtalk.org/">http://logtalk.org/</a>><br>--------------= ---------------------------------------------------<br><br><br><br><br></b= lockquote><br></blockquote><br style=3D"font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: = 0px;"><span style=3D"font-family: Helvetica; font-size: 12px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline = !important;">-------------------------------------------------------------= ----</span><br style=3D"font-family: Helvetica; font-size: 12px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px; float: none; display: inline = !important;">Paulo Moura</span><br style=3D"font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: = 0px;"><span style=3D"font-family: Helvetica; font-size: 12px; = font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: = none; display: inline !important;">Logtalk developer</span><br = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;"><br style=3D"font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px;"><span style=3D"font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; = float: none; display: inline !important;">Email: <</span><a = href=3D"mailto:[email protected]" style=3D"font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: = 0px;">mailto:[email protected]</a><span style=3D"font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = font-weight: normal; letter-spacing: normal; line-height: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-stroke-width: 0px; float: none; display: inline = !important;">></span><br style=3D"font-family: Helvetica; font-size: = 12px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px; float: none; display: inline = !important;">Web: <</span><a href=3D"http://logtalk.org/" = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px;">http://logtalk.org/</a><span = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px; float: none; display: inline = !important;">></span><br style=3D"font-family: Helvetica; font-size: = 12px; font-style: normal; font-variant: normal; font-weight: normal; = letter-spacing: normal; line-height: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span = style=3D"font-family: Helvetica; font-size: 12px; font-style: normal; = font-variant: normal; font-weight: normal; letter-spacing: normal; = line-height: normal; orphans: auto; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; widows: auto; word-spacing: = 0px; -webkit-text-stroke-width: 0px; float: none; display: inline = !important;">-------------------------------------------------------------= ----</span></blockquote></div><br></body></html>= --Apple-Mail=_610C711D-2742-4505-AB55-76412429BE36-- --===============4037303040436949499== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Bug-prolog mailing list [email protected] https://lists.gnu.org/mailman/listinfo/bug-prolog --===============4037303040436949499==--