Karim BELABAS on Thu, 5 Jun 2003 16:07:38 +0200 (MEST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: .gprc |
On Sat, 31 May 2003, Ilya Zakharevich wrote: > On Sat, May 31, 2003 at 08:15:37PM +0200, Karim BELABAS wrote: > > > d) It is possible to get an array [2,4,5] for GP/PARI version 2.4.5 > > > from the GP/PARI API? Then one could delegate version-dependent > > > processing to the read() directives... > > > It would clutter the name space, > > As will any other functionality; what is your point here? Nothing crucial. Simply that introducing new common keywords like version() breaks existing scripts [ C++ syndrom... it would break some of mine ], and safer complicated keywords like pariversion() or derivatives are rather unintuitive. As a rule, I'd rather keep the built-in routine set to a minimum unless * there's a definite use for the new functionality * it's inconvenient to replicate it from within gp. Do you have a definite need for this version array which can't be addressed by the gprc (admittedly quite limited) version handling ? =========================================================================== Btw, using default() would solve the keyword porblem, but I don't want to mix user preferences and read-only variables. While I'm at it, I've always thought that the optional flag default(d, val, 1) was a ugly hack (I regret it dearly). Maybe something like default(d), default(d, val): as current [ set / print default value ] defaultget(d) : as current default(d,,1) [ return a GP object ] would be less cryptic. The defaultget() [ or interface(), or whatever ] routine could then be used to query for system variables in addition to defaults, in particular version, etc ? Anybody has a nice suggestion to handle the following 5 actions (possibly across a few different GP routines) ? 1) set user preferences 2) print user preferences 3) get user preferences in GP-usable form (vector, string, number, etc) 4) print (read-only) system settings 5) get (read-only) system settings in GP-usable form 6) forgot something ? I don't think having a single-purpose routine and binary flag would address this adequately... Cheers, Karim. P.S: >> vers() = >> { >> eval( Str("[", >> extern("gp --version-short 2>&1 | >> sed -e 's/\\./,/g' -e 's/^/\"/' -e 's/$/\"/'"), "]") ) >> } > > ??? What use is it if it does not work everywhere? E.g., command.com does > not support 2>&1; sed is not guarantied to be present etc. I'm sure you're more than able to concoct a perl alternative which will work everywhere (provided perl is installed:-). Anyway, it was not a serious suggestion. Just a fun hack ... -- Karim Belabas Tel: (+33) (0)1 69 15 57 48 Dép. de Mathématiques, Bât. 425 Fax: (+33) (0)1 69 15 60 19 Université Paris-Sud http://www.math.u-psud.fr/~belabas/ F-91405 Orsay (France) http://www.parigp-home.de/ [PARI/GP]