From: Marko K. <mar...@gm...> - 2007-06-05 16:30:11
|
Hi all, I'm trying to fix trivial-gray-streams (http://common-lisp.net/project/cl-plus-ssl/#trivial-gray-streams) to support ABCL. I see that ABCL has its own implementation of gray-streams in sb-gray. trivial-gray-streams require implementation to implement these two methods: (defgeneric stream-read-sequence (stream sequence start end &key &allow-other-keys)) (defgeneric stream-write-sequence (stream sequence start end &key &allow-other-keys)) I tried the following (in "mixins.lisp"), but am getting errors: #+abcl (progn (defmethod gray-streams:stream-read-sequence ((s trivial-gray-stream-mixin) seq start end) (stream-read-sequence s seq (or start 0) (or end (length seq)))) (defmethod gray-streams:stream-write-sequence ((s trivial-gray-stream-mixin) seq start end) (stream-write-sequence s seq (or start 0) (or end (length seq))))) After doing this (asdf:oos 'asdf:load-op :trivial-gray-streams) is ok, but when i try to asdf-load some other lib which require trivial-gray-streams (eg, flexi-streams) I start getting errors. Am I doing something wrong (since I am new to CLOS), or is this known issue (method redefinition mentioned in ABCL home page)? The ultimate goal would be make hunchentoot work with ABCL... Thanks, Marko |
From: Peter G. <pe...@ar...> - 2007-06-06 00:09:40
|
On Tue, 5 Jun 2007 at 16:28:22 +0000, Marko Kocic wrote: > Hi all, > I'm trying to fix trivial-gray-streams > (http://common-lisp.net/project/cl-plus-ssl/#trivial-gray-streams) to > support ABCL. I see that ABCL has its own implementation of > gray-streams in sb-gray. Well... I wouldn't want to hang my hat on that particular implementation. I think it was done at some point in an effort to get slime-for-emacs running, although it no longer seems to be used for that purpose. I've never used it myself, so I really can't vouch for it. > trivial-gray-streams require implementation to implement these two methods: > (defgeneric stream-read-sequence > (stream sequence start end &key &allow-other-keys)) > (defgeneric stream-write-sequence > (stream sequence start end &key &allow-other-keys)) > > I tried the following (in "mixins.lisp"), but am getting errors: > #+abcl > (progn > (defmethod gray-streams:stream-read-sequence ((s trivial-gray-stream-mixin) > seq start end) > (stream-read-sequence s seq (or start 0) (or end (length seq)))) > (defmethod gray-streams:stream-write-sequence ((s trivial-gray-stream-mixin) > seq start end) > (stream-write-sequence s seq (or start 0) (or end (length seq))))) > > After doing this (asdf:oos 'asdf:load-op :trivial-gray-streams) is > ok, but when i try to asdf-load some other lib which require > trivial-gray-streams (eg, flexi-streams) I start getting errors. Am I > doing something wrong (since I am new to CLOS), or is this known > issue (method redefinition mentioned in ABCL home page)? Simple method redefinition should work in ABCL; what might not work is more subtle stuff like automatic refinalization of subclasses when a superclass is changed. What kind of errors do you get? -Peter |
From: <mar...@gm...> - 2007-06-06 08:42:56
|
I got the following error: <quote> CL-USER(2): (asdf :flexi-streams) Debugger invoked on condition of type SIMPLE-ERROR: There is no applicable method for the generic function #<STANDARD-GENERIC-FUNCTION GRAY-STREAMS:STREAM-WRITE-STRING {F 7F725}> when called with arguments (#<XP::XP-STRUCTURE {E1B0DB}> "loading " 0 NIL). Restarts: </quote> Thanks, Marko |
From: Peter G. <pe...@ar...> - 2007-06-06 10:23:56
|
On Wed, 6 Jun 2007 at 10:42:54 +0200, Marko_Koci? wrote: > I got the following error: > <quote> > CL-USER(2): (asdf :flexi-streams) > Debugger invoked on condition of type SIMPLE-ERROR: > There is no applicable method for the generic function > #<STANDARD-GENERIC-FUNCTION GRAY-STREAMS:STREAM-WRITE-STRING {F > 7F725}> when called with arguments (#<XP::XP-STRUCTURE {E1B0DB}> > "loading " 0 NIL). #<XP::XP-STRUCTURE {E1B0DB}> is an instance of the kind of stream (really it's a structure and therefore not STREAMP) that's used by the pretty printer. You might be able to get a bit further with something like this (completely untested): (defmethod gray-streams:stream-write-string ((stream xp::xp-structure) string &optional (start 0) (end (length string))) xp::write-string+ string stream start end) See pprint.lisp, around line 304. But sadly, that probably won't be the end of your troubles. This stuff as currently implemented is really a mess. -Peter |
From: <mar...@gm...> - 2007-06-06 11:38:54
|
OK thanks, trivial-gray-streams, flexi-streams and chunga now compiles (with small-patches). What I'm trying now is to implement port-abcl.lisp for hunchentoot. However, when loading hunchentoot I'm getting the following error, for which I can't figure out where exactly it comes from. Error loading C:\lisp\cache\.fasls\armedbear-windows-x86-0.0.10.5\lisp\tmp\hunchentoot\port-abcl.abcl at line 7 (offset 387) Debugger invoked on condition of type TYPE-ERROR: The value NIL is not of type NUMBER. Restarts: 0: ABORT Return to debug level 9. 1: ABORT Return to debug level 8. 2: ABORT Return to debug level 7. 3: ABORT Return to debug level 6. 4: ABORT Return to debug level 5. 5: ABORT Return to debug level 4. 6: ABORT Return to debug level 3. 7: ABORT Return to debug level 2. 8: ABORT Return to debug level 1. 9: RETRY Maximum error depth exceeded (11 nested errors). [10] TBNL(4): On 6/6/07, Peter Graves <pe...@ar...> wrote: > On Wed, 6 Jun 2007 at 10:42:54 +0200, Marko_Koci? wrote: > > I got the following error: > > <quote> > > CL-USER(2): (asdf :flexi-streams) > > Debugger invoked on condition of type SIMPLE-ERROR: > > There is no applicable method for the generic function > > #<STANDARD-GENERIC-FUNCTION GRAY-STREAMS:STREAM-WRITE-STRING {F > > 7F725}> when called with arguments (#<XP::XP-STRUCTURE {E1B0DB}> > > "loading " 0 NIL). > > #<XP::XP-STRUCTURE {E1B0DB}> is an instance of the kind of stream > (really it's a structure and therefore not STREAMP) that's used by the > pretty printer. > > You might be able to get a bit further with something like this > (completely untested): > > (defmethod gray-streams:stream-write-string ((stream xp::xp-structure) > string > &optional > (start 0) > (end (length string))) > xp::write-string+ string stream start end) > > See pprint.lisp, around line 304. > > But sadly, that probably won't be the end of your troubles. This stuff > as currently implemented is really a mess. > > -Peter > > |
From: Peter G. <pe...@ar...> - 2007-06-06 15:57:05
|
On Wed, 6 Jun 2007 at 13:38:56 +0200, Marko_Koci? wrote: > Error loading > C:\lisp\cache\.fasls\armedbear-windows-x86-0.0.10.5\lisp\tmp\hunchentoo= > t\port-abcl.abcl at line 7 (offset 387) Debugger invoked on condition > of type TYPE-ERROR: > The value NIL is not of type NUMBER. You can look at port-abcl.abcl to see what's going on. A .abcl file is really a .zip file; the first thing in it should be a file named "_", which is the loader. The loader should be a reasonably ordinary CL source file. Character offset 387 in the file "_" is probably just past the offending form. -Peter |
From: Alex M. <kil...@ne...> - 2007-06-07 08:51:48
|
(message (Hello 'Marko) (you :wrote :on '(Wed, 6 Jun 2007 13:38:56 +0200)) ( MK> OK thanks, MK> trivial-gray-streams, flexi-streams and chunga now compiles (with MK> small-patches). MK> What I'm trying now is to implement port-abcl.lisp for hunchentoot. can you try to load source without compiling first? compiler is actually an advanced thing, there are more chances that it will break something, and compiled files are much harder to debug. so you can first try loading source and checking if it works (it should work unless there are broken eval-when's), and then you can try to compile. ) (With-best-regards '(Alex Mizrahi) :aka 'killer_storm) "I am everything you want and I am everything you need") |
From: <mar...@gm...> - 2007-06-07 11:15:43
|
This one is strange... If I put (defmethod gray-streams:stream-write-string ...) in same file as other defmethods ( which starts with (in-package :trivial-gray-streams)) the file doesn't load. However, if I define it from the repl, and then asdf :trivial-gray-streams, then it compiles and loads ok. On 6/6/07, Peter Graves <pe...@ar...> wrote: > On Wed, 6 Jun 2007 at 10:42:54 +0200, Marko_Koci? wrote: > > I got the following error: > > <quote> > > CL-USER(2): (asdf :flexi-streams) > > Debugger invoked on condition of type SIMPLE-ERROR: > > There is no applicable method for the generic function > > #<STANDARD-GENERIC-FUNCTION GRAY-STREAMS:STREAM-WRITE-STRING {F > > 7F725}> when called with arguments (#<XP::XP-STRUCTURE {E1B0DB}> > > "loading " 0 NIL). > > #<XP::XP-STRUCTURE {E1B0DB}> is an instance of the kind of stream > (really it's a structure and therefore not STREAMP) that's used by the > pretty printer. > > You might be able to get a bit further with something like this > (completely untested): > > (defmethod gray-streams:stream-write-string ((stream xp::xp-structure) > string > &optional > (start 0) > (end (length string))) > xp::write-string+ string stream start end) > > See pprint.lisp, around line 304. > > But sadly, that probably won't be the end of your troubles. This stuff > as currently implemented is really a mess. > > -Peter > > |
From: <mar...@gm...> - 2007-06-07 12:39:51
|
U29ycnksIHRoaXMgd2FzIG15IGZhdWx0LCBpdCB3b3JrcyBub3cuCgpJIHdhcyBmaW5hbHkgYWJs ZSB0byBhc2RmIGxvYWQgYWxsIGRlcGVuZGVuY2llcyBvZiBodW5jaGVudG9vdCwgYW5kIGFtCnRy eWluZyB0byBwb3J0IChzdGFydC11cC1zZXJ2ZXIpIGZ1bmN0aW9uIG9mIGh1bmNoZW50b290LiBU aGlzIGlzCmdvaW5nIHRvIHRha2UgYSB3aGlsZSBzaW5jZSBJIGRvbid0IGhhdmUgbXVjaCBhYmNs IGtub3dsZWRnZS4KSWYgc29tZW9uZSBpcyBpbnRlcmVzdGVkIHRvIGhlbHAsIGp1c3Qgc2VuZCBt ZSBhbiBlbWFpbCBhbmQgSSBjYW4gc2VuZApwYXRjaGVzIHRoYXQgbGVkIG5lIHRvIGhlcmUuCgpS ZWdhcmRzLApNYXJrbwoKT24gNi83LzA3LCBNYXJrbyBLb2NpxIcgPG1hcmtvLmtvY2ljQGdtYWls LmNvbT4gd3JvdGU6Cj4gVGhpcyBvbmUgaXMgc3RyYW5nZS4uLgo+IElmIEkgcHV0IChkZWZtZXRo b2QgZ3JheS1zdHJlYW1zOnN0cmVhbS13cml0ZS1zdHJpbmcgLi4uKSBpbiBzYW1lIGZpbGUKPiBh cyBvdGhlciBkZWZtZXRob2RzICggd2hpY2ggc3RhcnRzIHdpdGggKGluLXBhY2thZ2UKPiA6dHJp dmlhbC1ncmF5LXN0cmVhbXMpKSB0aGUgZmlsZSBkb2Vzbid0IGxvYWQuIEhvd2V2ZXIsIGlmIEkg ZGVmaW5lIGl0Cj4gZnJvbSB0aGUgcmVwbCwgYW5kIHRoZW4gYXNkZiA6dHJpdmlhbC1ncmF5LXN0 cmVhbXMsIHRoZW4gaXQgY29tcGlsZXMKPiBhbmQgbG9hZHMgb2suCj4KPiBPbiA2LzYvMDcsIFBl dGVyIEdyYXZlcyA8cGV0ZXJAYXJtZWRiZWFyLm9yZz4gd3JvdGU6Cj4gPiBPbiBXZWQsIDYgSnVu IDIwMDcgYXQgMTA6NDI6NTQgKzAyMDAsIE1hcmtvX0tvY2k/IHdyb3RlOgo+ID4gPiBJIGdvdCB0 aGUgZm9sbG93aW5nIGVycm9yOgo+ID4gPiA8cXVvdGU+Cj4gPiA+IENMLVVTRVIoMik6IChhc2Rm IDpmbGV4aS1zdHJlYW1zKQo+ID4gPiBEZWJ1Z2dlciBpbnZva2VkIG9uIGNvbmRpdGlvbiBvZiB0 eXBlIFNJTVBMRS1FUlJPUjoKPiA+ID4gICBUaGVyZSBpcyBubyBhcHBsaWNhYmxlIG1ldGhvZCBm b3IgdGhlIGdlbmVyaWMgZnVuY3Rpb24KPiA+ID4gIzxTVEFOREFSRC1HRU5FUklDLUZVTkNUSU9O IEdSQVktU1RSRUFNUzpTVFJFQU0tV1JJVEUtU1RSSU5HIHtGCj4gPiA+IDdGNzI1fT4gd2hlbiBj YWxsZWQgd2l0aCBhcmd1bWVudHMgKCM8WFA6OlhQLVNUUlVDVFVSRSB7RTFCMERCfT4KPiA+ID4g ImxvYWRpbmcgIiAwIE5JTCkuCj4gPgo+ID4gIzxYUDo6WFAtU1RSVUNUVVJFIHtFMUIwREJ9PiBp cyBhbiBpbnN0YW5jZSBvZiB0aGUga2luZCBvZiBzdHJlYW0KPiA+IChyZWFsbHkgaXQncyBhIHN0 cnVjdHVyZSBhbmQgdGhlcmVmb3JlIG5vdCBTVFJFQU1QKSB0aGF0J3MgdXNlZCBieSB0aGUKPiA+ IHByZXR0eSBwcmludGVyLgo+ID4KPiA+IFlvdSBtaWdodCBiZSBhYmxlIHRvIGdldCBhIGJpdCBm dXJ0aGVyIHdpdGggc29tZXRoaW5nIGxpa2UgdGhpcwo+ID4gKGNvbXBsZXRlbHkgdW50ZXN0ZWQp Ogo+ID4KPiA+IChkZWZtZXRob2QgZ3JheS1zdHJlYW1zOnN0cmVhbS13cml0ZS1zdHJpbmcgKChz dHJlYW0geHA6OnhwLXN0cnVjdHVyZSkKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cmluZwo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJm9wdGlvbmFsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3RhcnQgMCkKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChlbmQgKGxlbmd0aCBzdHJpbmcpKSkKPiA+ICAgeHA6OndyaXRl LXN0cmluZysgc3RyaW5nIHN0cmVhbSBzdGFydCBlbmQpCj4gPgo+ID4gU2VlIHBwcmludC5saXNw LCBhcm91bmQgbGluZSAzMDQuCj4gPgo+ID4gQnV0IHNhZGx5LCB0aGF0IHByb2JhYmx5IHdvbid0 IGJlIHRoZSBlbmQgb2YgeW91ciB0cm91Ymxlcy4gVGhpcyBzdHVmZgo+ID4gYXMgY3VycmVudGx5 IGltcGxlbWVudGVkIGlzIHJlYWxseSBhIG1lc3MuCj4gPgo+ID4gLVBldGVyCj4gPgo+ID4KPgo= |
From: Andras S. <as...@ma...> - 2007-06-06 01:46:01
|
On Tue, 5 Jun 2007, Marko Kocic wrote: > Hi all, > I'm trying to fix trivial-gray-streams > (http://common-lisp.net/project/cl-plus-ssl/#trivial-gray-streams) to support ABCL. > I see that ABCL has its own implementation of gray-streams in sb-gray. >From Peter's reply I realized that by sb-gray you probably meant src/org/armedbear/lisp/gray-streams.lisp. The bad news is that it's probably unusuable even as a basis for a future Gray streams implementation for ABCL. (It was my pathetic attempt to port Corman Lisp's Gray streams implementation to ABCL, which I happily abandoned and forgot about when I realized that Slime didn't really need Gray Streams.) However, if what you realy want is a web server in ABCL, I think araneida has been ported to ABCL by Brian Mastenbrook, and, for a more Javaesque experience, there's also ABCL-web, written by Alex Mizrahi, here: http://abcl-web.sourceforge.net/ Andras |