Karim Belabas on Sun, 05 Aug 2012 12:51:53 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Patch: default(sopath), default(outputsp[aces])


* Bill Allombert [2012-08-05 12:20]:
> On Sun, Aug 05, 2012 at 02:15:10AM +0200, Karim Belabas wrote:
>> I finally found time to go back to this patch proposed by Gonzalo Tornaria
>> more than 8 years ago:
>> 
>>   <http://pari.math.u-bordeaux1.fr/archives/pari-dev-0401/msg00028.html>
>> 
>> ( Sorry it took so looong: so much to do, so little time :-( )
>> 
>> This one is not implemented as a defaut, but via the new function printsep(),
>> suggested by Don Zagier:
>> 
>> (01:14) gp > ??printsep
>> printsep(sep,{str}*):
>> 
>>    Outputs  its   (string)   arguments  in  raw format,  ending with a newline.
> 
> Currently it does not end by a newline.
> 
> ? printsep(":", 1,2,3,4);print("e")
> 1:2:3:4e

Ah, right. We had this discussion in private and the matter was left
unresolved (and I forgot both to push the discussion to pari-dev, and
to update the documentation, my bad):

Currently printsep does not end with \n, you may add 'print()' just after 
printsep() to insert the newline [ there would be no way to *remove* a newline
if printsep did include it, when you don't want it ].

There were a number of options:

0) let things as they currently stand: printsep() does not end by a newline,

1) have two functions printsep() [ with \n ] and printsep1() [ without ],

2) hack printsep to Îmit the separating pattern between the penultimate
and the last element *if* the latter is (or evaluates to) "\n":

  ? printsep(" : ", 1,2, "\n"); printsep(" : ", 3,4, "\n");
  1 : 2          \\ instead of 1 : 2 : 
  3 : 4

3) allow user functions with a variable number of arguments and let the user
define his own variant.

Allowing "varargs" user functions is obviously very desirable independently of
the printsep() feature, but it's currently not available, so not an immediate
option.

What do people think ?

> > > 2) default(sopath):
[...]
> > > I've only done it for dlopen(), but a similar wrapper should work for
> > > win32 LoadLibrary().
> > 
> > I have implemented such a wrapper, but have no way to test it. (My last
> > Windows system died 2 or 3 years ago.) Hopefully it works...
> 
> It does not seems to build with mingw:
[...]
> highlvl.o:highlvl.c:(.text+0x51): undefined reference to `_try_LoadLibrary'

This should have been fixed by this morning's commit:

commit 6fae115dcb3e89d7bc55f8644ee99571290d0b59
Author: Karim Belabas <Karim.Belabas@math.u-bordeaux1.fr>
Date:   Sun Aug 5 10:46:06 2012 +0200

    missing LoadLibrary wrapper: fix compilation


Cheers,

    K.B.
-- 
Karim Belabas, IMB (UMR 5251)  Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1          Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation    http://www.math.u-bordeaux1.fr/~belabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux1.fr/  [PARI/GP]
`