-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Aaron and Jonathan,
In message <200105292151.WAA01721@soapbox.cs.bham.ac.uk>, Aaron Sloman
See text for reply address <Aaron.Sloman.XX@cs.bham.ac.uk> writes
>[To reply replace "Aaron.Sloman.XX" with "A.Sloman"]
>
>Jonathan.Cunningham@tesco.net (Jonathan L Cunningham) writes:
>
>(among other things)
>
>> Date: Tue, 29 May 2001 19:50:51 GMT
>> ...
>> >cglur@onwe.co.za wrote:
>> >
>> >"Graham Higgins" <gjh@bel-epa.com> wrote:
>> >> ...
>> >> GSL -- The GNU Scientific Library. ... gsl is free software. It is
>distributed
>> (snip)
>>
>> Having the GNU library available can only be a Good Thing, but ...
>>
>> >Presumably 'senior member(s)' have judged that the cost/benefit says
>> >do-it.
>>
>> Do what?
>
>Nobody has *decided* anything.
>
>Some time ago I noticed that the GSL had become available. I then
>remembered interacting with people doing various kinds of AI
>research who had extolled the benefits of interactive mathematical
>systems (e.g. matlab) that had lots of mathematical capabilities
>pre-packaged so that users did not have to look up algorithms or
>reinvent them and then implement them.
>
>However (a) these packages cost real money, even for academics and
>(b) the languages often don't have the flexibility and power of pop-11.
>
>So I thought it might be very nice for such people to be able to
>get all they wanted and more free of charge from pop11+gsl instead
>of having to pay money for something less powerful.
>
>And it might attract more users to pop11 and hence lead to more
>willing developers, etc.
>
>By the way if pop-11 interfaces to a package exist they can also
>conveniently be accessed from Prolog, Common Lisp, and ML, in poplog.
>
>I enquired whether anyone was interested in doing anything about
>GSL. Both Steve Leach and Jeff Best said they were very interested,
>though they had slightly different reasons.
>
At the moment, I'm not sure if any progress is being made. Steve and I
have been looking at the problem, but we haven't produced anything
concrete, although we have shared some ideas and information about tools
that may be relevant.
>> >What skill set do we need ?
>>
>> For what?
>>
>> I can't spare any time to help, so I ask only out of curiosity. If it
>> was explained what was intended, I'm sorry I missed it - could someone
>> point me at the post which explained it (the news server I use seems
>> to have comp.lang.pop back at least as far as January).
>
>You may by now have seen my earlier message to Chris explaining that
>providing an interface to gsl (of the sort I had in mind) would be
>analogous to the work done by poplog developers in providing an
>interface to X, or the work done by David Young in providing pop-11
>interfaces to his C programs in the popvision library
> http://www.cs.bham.ac.uk/research/poplog/popvision/
>
>However, if the GSL documentation is sufficiently formal some of the
>process could be automated.
>
I have some experience of developing interfaces and migrating software
from one environment to another. If you want to see a CV, I can send you
a copy.
Having said this, my Poplog is fairly rusty, and I'm currently
struggling to get OpenMotif installed under CygWin, so that I can
rebuild Poplog to work with X-Windows under Windows 2000. (I don't have
a Linux box with me at the moment - it's a long story).
I'm also polishing up a new release of some Windows-only database
interface designer/generator prototypes.
>> But what, exactly, is required? This is a genuine question; it is not
>> obvious what is *required*[1] beyond copying documentation, and
>> including it and the library with the Poplog distribution.
>
>I don't think that would achieve anything useful: people would probably
>prefer to get the up to date version of the library from its home and
>adding bulk to poplog would not be welcomed by people who did not want
>the mathematical extensions.
>
>I was thinking more of providing convenient pre-packaged interfaces
>with some limited documentation, which would point to the full GSL
>documentation.
>
>I think it would be far more convenient to many users if they did
>not have to learn how to externally load C libraries in order to use
>the mathematical utilities provided, just as I am grateful that all
>the X stuff I use has been packaged in pop-11. But for that I would
>have found building RCLIB FAR more difficult. (It was difficult enough!)
>
We have looked a little at SWIG, used by the developers of TCL, Python
and a few other languages to generate a variety of interfaces. If we
write a Poplog.cxx module to work with SWIG, then with some insertion of
SWIG directives into the GSL code, we can generate interfaces and some
crude documentation for a Pop-11 to GSL interface. I would suggest that
some of those directives hard-wire hypertext links into the
documentation to be generated, such that the crude documentation
contains links to the original.
This approach looks like being quite a lot of work.
I have an alternative approach, built around tools that address a
superset of the problem space addressed by SWIG. These tools are still a
work in progress, and require the creation of some language grammars to
be expressed in XML. This is also a lot of work.
>> The next level up would be to prepare a set of pop11 lib
>> files which included the necessary declarations for run-time
>> loading of the GSL functions, and possibly linking them into a
>> poplog image. Or would it?
>
>I would say a collection of autoloadable or explicitly loadable
>libraries would suffice, based on the sort of model I have been using
>for the "extras" at the poplog site. There's too much in gsl to compile
>into the standard image, though saved images could be used for
>frequently used subsets. (However as disks, and CPUs get faster the need
>for saved images reduces: things that used to take minutes to compile
>now compile in seconds. E.g. I started pop-11 and did
> lib prolog
>
>It compiled the prolog compiler and then reported (on a shared 450 Mhz
>ultrasparc)
>
>;;; PROLOG COMPILED, TIME = 1.01 seconds
>
>Remember how long that took in the mid 80s? Compiling the whole of
>Poplog Common Lisp takes about 6.5 seconds on a Dell 400 mhz celeron
>laptop running linux.
>
[Some details of Aaron's model for library integration skipped]
>For an example of a file that extends the search lists, see the one used
>for poprulebase:
>
> http://www.cs.bham.ac.uk/research/poplog/prb/prblib.p
>
>To prevent name clashes between libraries that users may wish to combine
>I use systematic prefixes for file names and global identifiers. E.g.
>Poprulebase uses prb_, RCLIB uses rc_, sim_agent uses sim_, etc.
>
I assume we will use a "gsl_" prefix, where necessary, but this may
produce strange identifiers, e.g. gsl_gsl_XXXX.
>People who define useful extensions with nice short readable, mnemonic
>names are asking for trouble: such names are very likely to be used by
>someone else for a different purpose. (E.g. the syntax word "instance"
>in Objectclass made it impossible to compile Common Lisp, until I
>removed the clash by changing some Common lisp internal identifiers.)
>
So gsl_gsl_XXXX it is...
>[JLC continued]
>> And after that, then what?
>>
>> I may be being naive here, particularly since I know nothing about
>> the problems the poplog development team had in interfacing to
>> the X Window System. But X is an Abomination, and is Not Nice (as
>> a collection of code). I defy anyone to claim otherwise.
>
>That's why I am so glad I was not left to produce my own low level
>interfaces to it in order to produce graphical tools that work on
>solaris, linux, digital unix, etc.
>
There are an increasing number of windowing systems out there which are
all open source and cross-platform. These include the Tk library and
wxWindows. Together with OpenMotif under XFree86 or others, they provide
a lot of scope for writing run-anywhere Pop-11 programs.
I'd like to address the interface generator problem, so that we can make
the addition of these other libraries simpler and cheaper.
>> Presumably GSL is not an Abomination. (If it is, why would we want
>> to use it?)
>
>(Lots of abominations are very widely used, as you know well.)
>
>> Oh, and does GSL include code for solving LP problems (Linear
>> Programming - a class of optimisation problems)? If so,
>> then I WANT it! :-).
>
>Well, since not everyone has easy and fast access to remote web sites, I
>thought I'd circulate the table of contents from the online GSL manual
>at
>
> http://sources.redhat.com/gsl/ref/gsl-ref_toc.html
>
>Here it is, all subject to the terms of the GNU General Public License.
>
If we solve the interface generation problem, then you can focus on
finding your preferred library, and generate the necessary interface.
>There's a lot of it, and possibly still growing. That's why I hope some
>of the interfacing can be automated. (A pop11 program reads the
>GSL documentation, and then genrates all the interface files ?????)
>
I think that reading the code is probably easier. We may be able to
process the documentation to find descriptions of C prototypes and embed
an appropriate SWIG documentation directive in the matching code to
embed a cross reference to the original documentation in the formulaic
documentation generated by SWIG. (Assuming we choose to follow the SWIG
route).
>Aaron
[Omitted the GSL table of contents].
Regards,
- --
Jeff
-----BEGIN PGP SIGNATURE-----
Version: PGPsdk version 1.7.1
iQA/AwUBO0r5ofHj+enJbeYqEQI6xgCg9xmTXeWsdx7qhyKaQjKOMAiDiUkAn0LX
KVkR3p/2690oUidH5WEI90H6
=Boh9
-----END PGP SIGNATURE-----
|