|
[Ecls-list] REGEXP fixed, ECL as well
From: Juan Jose Garcia Ripoll <worm@ar...> - 2002-12-04 18:02
|
On Wednesday 04 December 2002 16:50, Rolf Wester wrote: > Hi, > > I tried to compile the regexp package that can be found at > http://www2.worldpbx.com/regexp/ but faced some problems. > > 1. defpackage doesn't compile unless I comment out the > (:documentation ... part. Fixed. Thanks! > 2. The characters #\Bell and #\Escape result in an > "NIL is an illegal character name" error These are non standard. You can replace them with #.(schar "\a" 0) and #.(schar "\e" 0). > 3. After fixing this the c-file is written by ECL but with a > syntax error. > "gcc -g -O2 .... > regexcp.c:51: parse error before ';' > line 51 is: > CLV1=3D&CAR(env0=3DCONS(cl_va_arg(args);,env0));/* STREAM */ This error was fixed long ago in CVS. I am still trying to finish the por= t of CLX before releasing ECL 0.8. You should give the copy in CVS a try. > I'm looking for a CL-implementation that makes it possible to create fa= st > running code (for heavy numerical simulations) either by compiling the = lisp > code or by easy integration of external C-code. ECL can integrate C code, but the interface for automatic generation of functions is limited -- it is restricted to char, int, double and char * types, IIRC. There is, therefore, a chance that you will have to fix this= , or either write the wrapper to your functions yourself (using defCinline, defCbody, and so on.) > [...] Another > point is that it took some time to find the problems because ECL doesn'= t > tell much about the line or function where the problem accures. Is ther= e a > means to tell ECL to be more verbose? When compiling, information about line number is lost. Nevertheless, the compiler lists all functions as they are being compiled, and therefore it= is rather easy to spot the offending function. For instance, the following e= rror takes place in TEST-REGEXP. ;;; Compiling (DEFUN REPLACE-REGEXP ...). ;;; Compiling (DEFUN TEST-REGEXP ...). ;;; The variable *REGEXP-TEST-DATA* is undefined. ;;; The compiler will assume this variable is a global. "Vt" is an illegal character name. Broken at COMPILE-FILE. REGEXP>> :v I have attached the patches to compile the REGEXP library. It now passes = its own test suite > (load "regexp.lisp") ;;; Loading "regexp.lisp" #P"regexp.lisp" > (regexp::test-regexp) 70 tests performed with 70 passing and 0 failing. NIL > (load "regexp") ;;; Loading "regexp.so" #P"regexp.so" > (regexp::test-regexp) 70 tests performed with 70 passing and 0 failing. NIL > I would be very appreciative for help because I would like to use ECL a= s a > Matlab like environment. I have tried Lush but didn't like that it beca= use > it's not CL. All the other alternatives have some very restrictive and/= or > slow (Python etc.) languages. Did you have a look at Yorick? ftp://ftp-icf.llnl.gov/pub/Yorick/ It is nice, but it does not have closures, and it may take you some time = to get used to the language. I have written a library for Yorick, called SpYorick (see web address below), which includes sparse matrices, FFTW, ARPACK, and so on and so forth. Best regards Juanjo |
| Thread | Author | Date |
|---|---|---|
| [Ecls-list] REGEXP fixed, ECL as well | Juan Jose Garcia Ripoll <worm@ar...> |