This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
On Tue, Apr 21, 1998 at 12:42:04PM -0400, chrislee@lavash.ius.cs.cmu.edu wrote: > >>>>> "T" == Telford Tendys <telford@eng.uts.edu.au> writes: > > T> I'm a bit of a guile newbie, I'm writing a matrix handling > T> library and I'd like to be able to use the scheme interpreter > T> to exaluate expressions, some of which may involve matricies. > > I've just released a matrix library for Guile, based on BLAS/LAPACK > (similar to the foundations of Matlab/Octave). I put it at > > http://www.cs.cmu.edu/~chrislee/chrlib/ OK, I got LAPACK (in fortran) from netlib and grabbed the rest of the stuff from your site. It took a bit of fiddling to get it compiled and linked but I made it OK. Now I have an `mguile' executable. I'll admit that I have a lot more reading of scheme to do before I get that really under control (I'll try to finish this book on the weekend). I know I'll sound pretty dumb here, but I couldn't actually get access to ANY of the matrix functions from mguile. Now I know that it has something to do with modules, and I know that the modules are *.lo and *.la files and I know there's some scheme command that must be executed to make the module link itself dynamically -- but I couldn't get it to work <aaargh>. Can I switch off dynamic modules completely and just have the whole lot statically linked to mguile? I understand that there are a lot of reasons why dynamic modules might be helpful but in my particular application they probably won't be and I'd like to start as simple as possible. Another question bugs me. When running on Linux systems, dynamic linking is usually done with `shared object' libraries (*.so.* files) so why is the guile dynamic linking done differently? Seems like it would make sense to use the existing system rather than start something new. (So for example, if it ever gets running on Win95 then it should use .DLL files). Also, using the existing system would mean that whatever command (the one I can't figure out) that does the dynamic link, could also be used to gain access to any existing system library (well, to the symbols at least, actually using the functions sensibly may be more tricky). That represents the addition of a lot of possible libraries for little effort. It also means that someone (like me) who wants to build a guile library just has to follow the fairly well established methods of generating a shared object. Is this totally unrealistic? Since I got a message about documentation being under review and got no documentation at all with the 1.2 release of guile, you must understand that I'm going mostly on comments in the source code here. If anyone has SIMPLE examples of some working code (like inverting a matrix say) then that would be a big help. I really want to start with something bare bones and build up a minimal system that does what I need rather than playing with something that is big enough to be beyond the grasp of my comprehension (like common lisp for example). I suspect that I'll be treading water for some time to come. ...still rambling with more questions... One more issue, when both guile and mguile start there is about a 2 second delay on my system. Is this supposed to be there? Is it checking for files that it can't find? Am I supposed to run through some sort of initialise sequence the first time I run it and then save a binary image (like you have to with emacs)? How much init stuff really is required for a bare command interpreter when the modules are loaded dynamically (I would expect a small init delay for each module that you load, as it gets loaded)? Well there's all my questions for this week. Am I the only one on this list who is working on Finite Elements and electromagnetics (that isn't a question, just a vaguely social sounding comment)? - Tel