You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(14) |
Jul
(21) |
Aug
(27) |
Sep
(35) |
Oct
(10) |
Nov
(26) |
Dec
(18) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(23) |
Feb
(4) |
Mar
(9) |
Apr
(9) |
May
(61) |
Jun
(51) |
Jul
(35) |
Aug
(33) |
Sep
(11) |
Oct
(70) |
Nov
(66) |
Dec
(109) |
2004 |
Jan
(21) |
Feb
(1) |
Mar
(10) |
Apr
(12) |
May
(14) |
Jun
(46) |
Jul
(31) |
Aug
(164) |
Sep
(51) |
Oct
(36) |
Nov
(36) |
Dec
(16) |
2005 |
Jan
(41) |
Feb
(31) |
Mar
(11) |
Apr
(15) |
May
(24) |
Jun
(42) |
Jul
(16) |
Aug
(13) |
Sep
(24) |
Oct
(64) |
Nov
(20) |
Dec
(6) |
2006 |
Jan
(39) |
Feb
(13) |
Mar
(19) |
Apr
(10) |
May
(12) |
Jun
(16) |
Jul
(2) |
Aug
(13) |
Sep
(13) |
Oct
(18) |
Nov
(6) |
Dec
(6) |
2007 |
Jan
(8) |
Feb
(51) |
Mar
(28) |
Apr
(5) |
May
(37) |
Jun
(20) |
Jul
(12) |
Aug
(22) |
Sep
(8) |
Oct
(24) |
Nov
(11) |
Dec
(7) |
2008 |
Jan
(33) |
Feb
(16) |
Mar
|
Apr
|
May
(2) |
Jun
(7) |
Jul
(4) |
Aug
(89) |
Sep
(141) |
Oct
(136) |
Nov
(81) |
Dec
(143) |
2009 |
Jan
(182) |
Feb
(100) |
Mar
(119) |
Apr
(91) |
May
(112) |
Jun
(32) |
Jul
(7) |
Aug
|
Sep
(4) |
Oct
(11) |
Nov
(5) |
Dec
(3) |
2010 |
Jan
(25) |
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Kevin K. <kk...@us...> - 2013-04-08 18:06:32
|
The sourceforge project has been upgraded and the svn URLs have changed as a result. - Read-only: svn checkout svn://svn.code.sf.net/p/armedbear-j/code/trunk j - Read-write: svn checkout --username=<login> svn+ssh://<login>@ svn.code.sf.net/p/armedbear-j/code/trunk j FWIW, I've been familiarizing myself with git and github and have continued to make some changes here: https://github.com/kevinkrouse/j If the experiment goes well, I may move development to github and use SF to host the downloads. Thanks, Kevin ---------- Forwarded message ---------- From: SourceForge.net <nor...@in...> Date: Fri, Apr 5, 2013 at 1:21 PM Subject: SourceForge Project Upgrade - Code Repo Complete To: no...@in... Your code repository in upgraded project armedbear-j is now ready for use. Old repository url: http://armedbear-j.svn.sourceforge.net/svnroot/armedbear-j New repository checkout command: svn checkout --username=kkrouse svn+ssh:// kk...@sv.../p/armedbear-j/code/trunk armedbear-j-code You should do a checkout using the new repository location. The old repository is read-only now. For more detailed instructions on migrating to your new repo, please see https://sourceforge.net/p/forge/community-docs/Repository%20Upgrade%20FAQ/ -- SourceForge.net has sent this mailing to you as a registered user of the SourceForge.net site to convey important information regarding your SourceForge.net account or your use of SourceForge.net services. If you have concerns about this mailing please contact our Support team per: http://sourceforge.net/support |
From: Marco A. <ma...@cs...> - 2012-02-01 13:07:14
|
Apologies for the multiple postings. PAPER SUBMISSION DEADLINE EXTENDED European Lisp Symposium 2012, Zadar, Croatia, April 30th - May 1st, 2012 http://european-lisp-symposium.org The purpose of the European Lisp Symposium is to provide a forum for the discussion and dissemination of all aspects of design, implementation and application of any of the Lisp and Lisp-inspired dialects, including Common Lisp, Scheme, Emacs Lisp, AutoLisp, ISLISP, Dylan, Clojure, ACL2, ECMAScript, Racket, SKILL, and so on. We encourage everyone interested in Lisp to participate. The main theme of the 2012 European Lisp Conference is "Interoperability: Systems, Libraries, Workflows". Lisp based and functional-languages based systems have grown a variety of solutions to become more and more integrated with the wider world of Information and Communication Technologies in current use. There are several dimensions to the scope of the solutions proposed, ranging from "embedding" of interpreters in C-based systems, to the development of abstractions levels that facilitate the expression of complex context dependent tasks, to the construction of exchange formats handling libraries, to the construction of theorem-provers for the "Semantic Web". The European Lisp Symposium 2012 solicits the submission of papers with this specific theme in mind, alongside the more traditional tracks which have appeared in the past editions. We invite submissions in the following forms: Papers: Technical papers of up to 15 pages that describe original results or explain known ideas in new and elegant ways. Demonstrations: Abstracts of up to 4 pages for demonstrations of tools, libraries, and applications. Tutorials: Abstracts of up to 4 pages for in-depth presentations about topics of special interest for at least 90 minutes and up to 180 minutes. Lightning talks: Abstracts of up to one page for talks to last for no more than 5 minutes. All submissions should be formatted following the ACM SIGS guidelines and include ACM classification categories and terms. For more information on the submission guidelines and the ACM keywords, see: http://www.acm.org/sigs/publications/proceedings-templates and http://www.acm.org/about/class/1998. Important dates: February 15th 2012: submission deadline (extended deadline) March 7th 2012: acceptance results April 30th 2012: Conference opens Program Commitee. Chair: Marco Antoniotti, Università degli Studi di Milano Bicocca, Milan, ITALY Local organizers: Damir Cavar, Eastern Michigan University Franjo Pehar, University of Zadar Damir Kero, University of Zadar Members: Giuseppe Attardi, Università degli Studi di Pisa, Pisa, ITALY Pascal Costanza, Intel, Bruxelles, BELGIUM Marc Feeley, Université de Montreal, Montreal, CANADA Scott McKay, Google, U.S.A. Kent Pitman, U.S.A. Christophe Rhodes, Department of Computing, Goldsmiths, University of London, London, UNITED KINGDOM Robert Strandh, LABRI, Université de Bordeaux, Bordaux, FRANCE Didier Verna, EPITA / LRDE, FRANCE Taiichi Yuasa, Kyoto University, JAPAN -- Marco Antoniotti |
From: Kevin K. <kk...@us...> - 2011-06-28 18:15:15
|
I wanted to try the mail feature in J but I only had access to imap servers that required both SSL and TLS to connect. So instead of using a different imap server, I ended up adding support for SSL and TLS mailbox URLs in J. ;) I've tested sending and receiving emails with my gmail account but I haven't tried much more than that. I don't have intentions of working on J's email client to bring it up to something that would replace your current email client. For example, POP3 doesn't support SSL or TLS yet and the SMTP session doesn't remember your password so you need to type it in each time you send an email. To enable SSL and TLS for your imap account, add the '/ssl' and '/tls' flags to your mailbox URL. For example, imap = {ke...@ex.../ssl/tls}inbox Enjoy! Kevin |
From: Kevin K. <kk...@us...> - 2010-05-25 16:05:07
|
Hi Frank, Thanks for the patch. I verified the build failure and just committed your fix to svn! Thanks for your help! Kevin On Mon, May 24, 2010 at 1:54 AM, Erik Huelsmann <eh...@gm...> wrote: > Hi Kevin, > > We received the mail below on the ABCL list. I think the diff is > relevant to J. The remarks regarding building ABCL with the Lisp > variant is definitely relevant to the ABCL project. > > > Bye, > > > Erik. > > > ---------- Forwarded message ---------- > From: Frank Pursel <pu...@ya...> > Date: Mon, May 24, 2010 at 4:14 AM > Subject: [armedbear-devel] Fixes to LispShell.java for 0.23.0 > To: arm...@co... > > > All, > > I downloaded the latest version of J a couple of days ago (J version > 0.23.0) and had some difficulties getting it to compile using > java-6-sun's compiler version 1.6 update 20. Here are the modifications > I made to LispShell.java to get it to compile cleanly against a fresh build > of > the newest abcl (ver 0.19.1, though I don't think it matters): > > diff -c /home/fpp/src/tmp/j-0.23.0/src/org/armedbear/j/LispShell.java > /home/fpp/src/j-0.23.0/src/org/armedbear/j/LispShell.java > *** /home/fpp/src/tmp/j-0.23.0/src/org/armedbear/j/LispShell.java > 2010-04-03 > 15:04:08.000000000 -0400 > --- /home/fpp/src/j-0.23.0/src/org/armedbear/j/LispShell.java 2010-05-22 > 18:42:29.963613502 -0400 > *************** > *** 110,120 **** > } > else > { > ! File lispHome = File.getInstance(Site.getLispHome()); > if (lispHome == null) > return null; // FIXME Error message? > ! File swankLoader = File.getInstance(lispHome, > ! "swank-loader.lisp"); > if (swankLoader == null) > return null; // FIXME Error message? > if (shellCommand.indexOf("sbcl") >= 0 > --- 110,121 ---- > } > else > { > ! Pathname lispHome = (Pathname)Site.getLispHome(); > if (lispHome == null) > return null; // FIXME Error message? > ! File swankLoader = File.getInstance( > ! > Pathname.mergePathnames(lispHome, > ! > new Pathname("swank-loader.lisp"))); > if (swankLoader == null) > return null; // FIXME Error message? > if (shellCommand.indexOf("sbcl") >= 0 > *************** > *** 902,908 **** > sb.append(" -Xmx256M"); > if (Platform.isPlatformUnix()) > { > ! Pathname lispHome = > org.armedbear.lisp.Site.getLispHome(); > if (lispHome != null) > { > sb.append(" -Xrs -Djava.library.path="); > --- 903,909 ---- > sb.append(" -Xmx256M"); > if (Platform.isPlatformUnix()) > { > ! Pathname lispHome = > (Pathname)org.armedbear.lisp.Site.getLispHome(); > if (lispHome != null) > { > sb.append(" -Xrs -Djava.library.path="); > > Diff finished. Sun May 23 19:30:24 2010 > > I hope it's helpful. I was unable to get abcl to compile cleanly > using the lisp build method. It failed with messages telling me that > it, variously, could not autoload load or that it could not load > 'system'. When I used ant I had no problems. > > Best wishes on an excellent project. > > Sincerely, > Frank Pursel > > > > > _______________________________________________ > armedbear-devel mailing list > arm...@co... > http://common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel > > > ------------------------------------------------------------------------------ > > _______________________________________________ > armedbear-j-devel mailing list > arm...@li... > https://lists.sourceforge.net/lists/listinfo/armedbear-j-devel > |
From: Erik H. <eh...@gm...> - 2010-05-24 08:54:50
|
Hi Kevin, We received the mail below on the ABCL list. I think the diff is relevant to J. The remarks regarding building ABCL with the Lisp variant is definitely relevant to the ABCL project. Bye, Erik. ---------- Forwarded message ---------- From: Frank Pursel <pu...@ya...> Date: Mon, May 24, 2010 at 4:14 AM Subject: [armedbear-devel] Fixes to LispShell.java for 0.23.0 To: arm...@co... All, I downloaded the latest version of J a couple of days ago (J version 0.23.0) and had some difficulties getting it to compile using java-6-sun's compiler version 1.6 update 20. Here are the modifications I made to LispShell.java to get it to compile cleanly against a fresh build of the newest abcl (ver 0.19.1, though I don't think it matters): diff -c /home/fpp/src/tmp/j-0.23.0/src/org/armedbear/j/LispShell.java /home/fpp/src/j-0.23.0/src/org/armedbear/j/LispShell.java *** /home/fpp/src/tmp/j-0.23.0/src/org/armedbear/j/LispShell.java 2010-04-03 15:04:08.000000000 -0400 --- /home/fpp/src/j-0.23.0/src/org/armedbear/j/LispShell.java 2010-05-22 18:42:29.963613502 -0400 *************** *** 110,120 **** } else { ! File lispHome = File.getInstance(Site.getLispHome()); if (lispHome == null) return null; // FIXME Error message? ! File swankLoader = File.getInstance(lispHome, ! "swank-loader.lisp"); if (swankLoader == null) return null; // FIXME Error message? if (shellCommand.indexOf("sbcl") >= 0 --- 110,121 ---- } else { ! Pathname lispHome = (Pathname)Site.getLispHome(); if (lispHome == null) return null; // FIXME Error message? ! File swankLoader = File.getInstance( ! Pathname.mergePathnames(lispHome, ! new Pathname("swank-loader.lisp"))); if (swankLoader == null) return null; // FIXME Error message? if (shellCommand.indexOf("sbcl") >= 0 *************** *** 902,908 **** sb.append(" -Xmx256M"); if (Platform.isPlatformUnix()) { ! Pathname lispHome = org.armedbear.lisp.Site.getLispHome(); if (lispHome != null) { sb.append(" -Xrs -Djava.library.path="); --- 903,909 ---- sb.append(" -Xmx256M"); if (Platform.isPlatformUnix()) { ! Pathname lispHome = (Pathname)org.armedbear.lisp.Site.getLispHome(); if (lispHome != null) { sb.append(" -Xrs -Djava.library.path="); Diff finished. Sun May 23 19:30:24 2010 I hope it's helpful. I was unable to get abcl to compile cleanly using the lisp build method. It failed with messages telling me that it, variously, could not autoload load or that it could not load 'system'. When I used ant I had no problems. Best wishes on an excellent project. Sincerely, Frank Pursel _______________________________________________ armedbear-devel mailing list arm...@co... http://common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel |
From: Mark E. <ev...@pa...> - 2010-01-28 09:57:06
|
On 1/15/10 8:46 AM, Mark Evenson wrote: > On 1/14/10 3:33 PM, Alan Ruttenberg wrote: >> The Jena toolkit has antisocially defined the toString method of an >> important object to be computationally expensive - it triggers a >> description logical classification process in some cases, something >> which can blow out memory or take a very very long time. > > […] > > Ouch! I had hoped that the the toString() "contract" in Java entailed a > non-computationally expensive result, and that this was widely adopted. > > Then a HEADS UP is in order: I committed (~20100112) to SLIME HEAD a > patch that invokes the "toString()" method on all JAVA-OBJECTs as a > convenience. […] I have (finally) committed the necessary changes to SLIME HEAD (20100128) to make the inspection of toString() results a user interactive action. -- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now." |
From: Alessio S. <ale...@gm...> - 2010-01-18 19:09:32
|
On Mon, Jan 18, 2010 at 6:51 PM, Alan Ruttenberg <ala...@gm...> wrote: > On Fri, Jan 15, 2010 at 4:09 PM, Alessio Stalla <ale...@gm...> > wrote: >> >> Apparently changing output-ugly-object wasn't >> necessary, but if you find out it is, let me know. > > It is. Transcript below, run against current trunk. Duh! Sorry for missing the obvious. Your fix is now on trunk. Alessio |
From: Alan R. <ala...@gm...> - 2010-01-18 17:52:03
|
On Fri, Jan 15, 2010 at 4:09 PM, Alessio Stalla <ale...@gm...>wrote: > Apparently changing output-ugly-object wasn't > necessary, but if you find out it is, let me know. > It is. Transcript below, run against current trunk. ./abcl Armed Bear Common Lisp 0.18.0-dev Java 1.5.0_22 Apple Inc. Java HotSpot(TM) Client VM Low-level initialization completed in 1.093 seconds. Startup completed in 2.608 seconds. ; Loading file:/Users/alanr/repos/abcl1/dist/abcl.jar!/org/armedbear/lisp/asdf.abcl ... ; Loading file:/Users/alanr/repos/abcl1/dist/abcl.jar!/org/armedbear/lisp/delete.abcl ... ; Loaded file:/Users/alanr/repos/abcl1/dist/abcl.jar!/org/armedbear/lisp/delete.abcl (0.031 seconds) ; Loading file:/Users/alanr/repos/abcl1/dist/abcl.jar!/org/armedbear/lisp/java.abcl ... ; Loaded file:/Users/alanr/repos/abcl1/dist/abcl.jar!/org/armedbear/lisp/java.abcl (0.065 seconds) ; Loaded file:/Users/alanr/repos/abcl1/dist/abcl.jar!/org/armedbear/lisp/asdf.abcl (1.93 seconds) ; Loading /Users/alanr/repos/obi/trunk/src/tools/build/obi.asd ... ; Loaded /Users/alanr/repos/obi/trunk/src/tools/build/obi.asd (1.44 seconds) ; Loading /Users/alanr/repos/infectious-disease-ontology/trunk/src/tools/ido.asd ... ; Loaded /Users/alanr/repos/infectious-disease-ontology/trunk/src/tools/ido.asd (0.019 seconds) ; Loading /Users/alanr/repos/ogms/trunk/src/tools/ogms.asd ... ; Loaded /Users/alanr/repos/ogms/trunk/src/tools/ogms.asd (0.029 seconds) ; Loading /Users/alanr/repos/neurocommons/trunk/convert/fma/fma.asd ... ; Loaded /Users/alanr/repos/neurocommons/trunk/convert/fma/fma.asd (0.022 seconds) Type ":help" for a list of available commands. CL-USER(1): (defmethod print-object ((u (jclass "java.net.URI")) s) (print "ho!")) #<STANDARD-METHOD PRINT-OBJECT (#:|java.net.URI| T) {1AC096}> CL-USER(2): (jnew "java.net.URI" "http://foo.com/") #<java.net.URI http://foo.com/ {3F4CA6}> CL-USER(3): (in-package :system) #<PACKAGE "SYSTEM"> SYS(4): (defun output-ugly-object (object stream) (cond ((consp object) (output-list object stream)) ((and (vectorp object) (not (stringp object)) (not (bit-vector-p object))) (output-vector object stream)) ((structure-object-p object) (cond ((and (null *print-readably*) *print-level* (>= *current-print-level* *print-level*)) (write-char #\# stream)) (t (print-object object stream)))) ((standard-object-p object) (print-object object stream)) ((java::java-object-p object) (print-object object stream)) ((xp::xp-structure-p stream) (let ((s (sys::%write-to-string object))) (xp::write-string++ s stream 0 (length s)))) (t (%output-object object stream)))) STYLE-WARNING: redefining OUTPUT-UGLY-OBJECT at top level OUTPUT-UGLY-OBJECT SYS(5): (in-package :cl-user) #<PACKAGE "COMMON-LISP-USER"> CL-USER(6): (jnew "java.net.URI" "http://foo.com/") "ho!" CL-USER(7): |
From: Erik H. <eh...@gm...> - 2010-01-18 11:37:57
|
Actually: I uploaded the tars and signatures already, updated the website too, just didn't get around to announcing it. Bye, Erik. On Mon, Jan 18, 2010 at 11:25 AM, Ville Voutilainen <vil...@gm...> wrote: > 2010/1/18 Reinhard Oldenburg <old...@ma...>: >> I tried to compile Maxima 5.20.1 from source with the lisp based build >> process. In the past this worked very well, but now with ABCL 0.18 even >> (load "maxima-build.lisp") needs too much memory. Has anybody suceeded >> in compileing Maxim with 0.18? > > I think the soon forthcoming 0.18.1 will fix this issue. > > ------------------------------------------------------------------------------ > Throughout its 18-year history, RSA Conference consistently attracts the > world's best and brightest in the field, creating opportunities for Conference > attendees to learn about information security's most important issues through > interactions with peers, luminaries and emerging and established companies. > http://p.sf.net/sfu/rsaconf-dev2dev > _______________________________________________ > armedbear-j-devel mailing list > arm...@li... > https://lists.sourceforge.net/lists/listinfo/armedbear-j-devel > |
From: Ville V. <vil...@gm...> - 2010-01-18 10:25:54
|
2010/1/18 Reinhard Oldenburg <old...@ma...>: > I tried to compile Maxima 5.20.1 from source with the lisp based build > process. In the past this worked very well, but now with ABCL 0.18 even > (load "maxima-build.lisp") needs too much memory. Has anybody suceeded > in compileing Maxim with 0.18? I think the soon forthcoming 0.18.1 will fix this issue. |
From: Reinhard O. <old...@ma...> - 2010-01-18 08:50:43
|
I tried to compile Maxima 5.20.1 from source with the lisp based build process. In the past this worked very well, but now with ABCL 0.18 even (load "maxima-build.lisp") needs too much memory. Has anybody suceeded in compileing Maxim with 0.18? Reinhard Oldenburg |
From: Alessio S. <ale...@gm...> - 2010-01-15 21:09:51
|
On Fri, Jan 15, 2010 at 9:05 PM, Alan Ruttenberg <ala...@gm...> wrote: > Thanks Alessio. > > How about the other patches? > > http://sourceforge.net/mailarchive/message.php?msg_name=29af5e2d1001141029ved6e76ay532cd0f120614e2f%40mail.gmail.com > > Fixes the print-object method for close methods specialized on java classes > > http://sourceforge.net/mailarchive/message.php?msg_name=29af5e2d1001141243s5ff7264fg8538d4054448879%40mail.gmail.com > > Defines a base method for printing java objects, replicating the > behavior of what is currently defined in the java code, and modifies > output-ugly-object so that it gets called. > > Would it be possible to integrate these as well? [R12377] and [R12379] should do it; let me know if they work for you. A couple of notes: for method specialized on Java classes, I made what I believe to be the right thing: have the symbol slot of JavaClass initialized with an uninterned symbol named like the class, so that it's printed correctly by the existing code. Examples: CL-USER(1): (defmethod foo ((obj (jclass "java.lang.Object"))) obj) #<STANDARD-METHOD FOO (#:|java.lang.Object|) {C95DAA}> CL-USER(2): (mop::%class-name (class-of (jnew "java.lang.String"))) #:|java.lang.String| for print-object on java objects, I just made it call %write-to-string on the object, which calls the Java writeToString(), so it's only implemented once. Apparently changing output-ugly-object wasn't necessary, but if you find out it is, let me know. Additionally, I have a local patch to make jclass work with custom classloaders, if you're interested. I prefer to be cautious with this one and not to commit it immediately; I need to properly test it. Bye, Ale [R12377] http://trac.common-lisp.net/armedbear/changeset/12377 [R12379] http://trac.common-lisp.net/armedbear/changeset/12379 > Thanks, > Alan > > On Thu, Jan 14, 2010 at 5:11 PM, Alessio Stalla <ale...@gm...> wrote: >> On Thu, Jan 14, 2010 at 10:29 PM, Alan Ruttenberg >> <ala...@gm...> wrote: >>> Well, not quite. >>> >>> Also, slime calls sys::frame-to-string, which doesn't respect java >>> object's print-object method. >>> This is inside java code and I don't know how to properly fix that. >>> I'm patching as: >>> >>> (advise sys::frame-to-string >>> (if (typep (car arglist) 'system::lisp-stack-frame) >>> (prin1-to-string >>> (sys::frame-to-list (car arglist))) >>> (:do-it) >>> ) >>> :when :around >>> :name :freedom) >>> >>> but would appreciate if someone could do the right thing. >> >> You should find that on trunk: I actually called prin1-to-string from >> Java; I don't think that should cause any problems, but if someone has >> objections, let me know. >> >> Alessio >> >>> -Alan >>> >>> >>> On Thu, Jan 14, 2010 at 3:43 PM, Alan Ruttenberg >>> <ala...@gm...> wrote: >>>> On Thu, Jan 14, 2010 at 1:29 PM, Alan Ruttenberg >>>> <ala...@gm...> wrote: >>>>> Now to find out why slime isn't using #'print-object ... >>>>> >>>>> -Alan >>>>> >>>> >>>> That would be because print isn't calling print-object for java objects. >>>> >>>> (in-package #:system) >>>> >>>> ;; define the default method for java objects >>>> (defmethod print-object ((obj java::java-object) stream) >>>> (print-unreadable-object (obj stream :identity t) >>>> (let ((tostring (jcall "toString" obj))) >>>> (if (> (length tostring) 32) >>>> (format stream "~a ~a..." (java::jclass-name (java::jobject-class >>>> obj)) (subseq tostring 0 32) stream) >>>> (format stream "~a ~a" (java::jclass-name (java::jobject-class obj)) >>>> tostring stream))))) >>>> >>>> >>>> ;; modify so that print-object is called on java objects too. >>>> >>>> (defun output-ugly-object (object stream) >>>> (cond ((consp object) >>>> (output-list object stream)) >>>> ((and (vectorp object) >>>> (not (stringp object)) >>>> (not (bit-vector-p object))) >>>> (output-vector object stream)) >>>> ((structure-object-p object) >>>> (cond >>>> ((and (null *print-readably*) >>>> *print-level* >>>> (>= *current-print-level* *print-level*)) >>>> (write-char #\# stream)) >>>> (t >>>> (print-object object stream)))) >>>> ((standard-object-p object) >>>> (print-object object stream)) >>>> ((java::java-object-p object) >>>> (print-object object stream)) >>>> ((xp::xp-structure-p stream) >>>> (let ((s (sys::%write-to-string object))) >>>> (xp::write-string++ s stream 0 (length s)))) >>>> (t >>>> (%output-object object stream)))) >>>> >>> >> > |
From: Alan R. <ala...@gm...> - 2010-01-15 20:05:51
|
Thanks Alessio. How about the other patches? http://sourceforge.net/mailarchive/message.php?msg_name=29af5e2d1001141029ved6e76ay532cd0f120614e2f%40mail.gmail.com Fixes the print-object method for close methods specialized on java classes http://sourceforge.net/mailarchive/message.php?msg_name=29af5e2d1001141243s5ff7264fg8538d4054448879%40mail.gmail.com Defines a base method for printing java objects, replicating the behavior of what is currently defined in the java code, and modifies output-ugly-object so that it gets called. Would it be possible to integrate these as well? Thanks, Alan On Thu, Jan 14, 2010 at 5:11 PM, Alessio Stalla <ale...@gm...> wrote: > On Thu, Jan 14, 2010 at 10:29 PM, Alan Ruttenberg > <ala...@gm...> wrote: >> Well, not quite. >> >> Also, slime calls sys::frame-to-string, which doesn't respect java >> object's print-object method. >> This is inside java code and I don't know how to properly fix that. >> I'm patching as: >> >> (advise sys::frame-to-string >> (if (typep (car arglist) 'system::lisp-stack-frame) >> (prin1-to-string >> (sys::frame-to-list (car arglist))) >> (:do-it) >> ) >> :when :around >> :name :freedom) >> >> but would appreciate if someone could do the right thing. > > You should find that on trunk: I actually called prin1-to-string from > Java; I don't think that should cause any problems, but if someone has > objections, let me know. > > Alessio > >> -Alan >> >> >> On Thu, Jan 14, 2010 at 3:43 PM, Alan Ruttenberg >> <ala...@gm...> wrote: >>> On Thu, Jan 14, 2010 at 1:29 PM, Alan Ruttenberg >>> <ala...@gm...> wrote: >>>> Now to find out why slime isn't using #'print-object ... >>>> >>>> -Alan >>>> >>> >>> That would be because print isn't calling print-object for java objects. >>> >>> (in-package #:system) >>> >>> ;; define the default method for java objects >>> (defmethod print-object ((obj java::java-object) stream) >>> (print-unreadable-object (obj stream :identity t) >>> (let ((tostring (jcall "toString" obj))) >>> (if (> (length tostring) 32) >>> (format stream "~a ~a..." (java::jclass-name (java::jobject-class >>> obj)) (subseq tostring 0 32) stream) >>> (format stream "~a ~a" (java::jclass-name (java::jobject-class obj)) >>> tostring stream))))) >>> >>> >>> ;; modify so that print-object is called on java objects too. >>> >>> (defun output-ugly-object (object stream) >>> (cond ((consp object) >>> (output-list object stream)) >>> ((and (vectorp object) >>> (not (stringp object)) >>> (not (bit-vector-p object))) >>> (output-vector object stream)) >>> ((structure-object-p object) >>> (cond >>> ((and (null *print-readably*) >>> *print-level* >>> (>= *current-print-level* *print-level*)) >>> (write-char #\# stream)) >>> (t >>> (print-object object stream)))) >>> ((standard-object-p object) >>> (print-object object stream)) >>> ((java::java-object-p object) >>> (print-object object stream)) >>> ((xp::xp-structure-p stream) >>> (let ((s (sys::%write-to-string object))) >>> (xp::write-string++ s stream 0 (length s)))) >>> (t >>> (%output-object object stream)))) >>> >> > |
From: Mark E. <ev...@pa...> - 2010-01-15 07:46:22
|
On 1/14/10 3:33 PM, Alan Ruttenberg wrote: > The Jena toolkit has antisocially defined the toString method of an > important object to be computationally expensive - it triggers a > description logical classification process in some cases, something > which can blow out memory or take a very very long time. […] Ouch! I had hoped that the the toString() "contract" in Java entailed a non-computationally expensive result, and that this was widely adopted. Then a HEADS UP is in order: I committed (~20100112) to SLIME HEAD a patch that invokes the "toString()" method on all JAVA-OBJECTs as a convenience. When I get the chance, I will revise the SLIME patch, and revisit the SYS::FRAME-TO-STRING code, but I don't think I will find time for this until much later today or tomorrow. -- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now." |
From: Alessio S. <ale...@gm...> - 2010-01-14 22:18:29
|
On Thu, Jan 14, 2010 at 10:29 PM, Alan Ruttenberg <ala...@gm...> wrote: > Well, not quite. > > Also, slime calls sys::frame-to-string, which doesn't respect java > object's print-object method. > This is inside java code and I don't know how to properly fix that. > I'm patching as: > > (advise sys::frame-to-string > (if (typep (car arglist) 'system::lisp-stack-frame) > (prin1-to-string > (sys::frame-to-list (car arglist))) > (:do-it) > ) > :when :around > :name :freedom) > > but would appreciate if someone could do the right thing. You should find that on trunk: I actually called prin1-to-string from Java; I don't think that should cause any problems, but if someone has objections, let me know. Alessio > -Alan > > > On Thu, Jan 14, 2010 at 3:43 PM, Alan Ruttenberg > <ala...@gm...> wrote: >> On Thu, Jan 14, 2010 at 1:29 PM, Alan Ruttenberg >> <ala...@gm...> wrote: >>> Now to find out why slime isn't using #'print-object ... >>> >>> -Alan >>> >> >> That would be because print isn't calling print-object for java objects. >> >> (in-package #:system) >> >> ;; define the default method for java objects >> (defmethod print-object ((obj java::java-object) stream) >> (print-unreadable-object (obj stream :identity t) >> (let ((tostring (jcall "toString" obj))) >> (if (> (length tostring) 32) >> (format stream "~a ~a..." (java::jclass-name (java::jobject-class >> obj)) (subseq tostring 0 32) stream) >> (format stream "~a ~a" (java::jclass-name (java::jobject-class obj)) >> tostring stream))))) >> >> >> ;; modify so that print-object is called on java objects too. >> >> (defun output-ugly-object (object stream) >> (cond ((consp object) >> (output-list object stream)) >> ((and (vectorp object) >> (not (stringp object)) >> (not (bit-vector-p object))) >> (output-vector object stream)) >> ((structure-object-p object) >> (cond >> ((and (null *print-readably*) >> *print-level* >> (>= *current-print-level* *print-level*)) >> (write-char #\# stream)) >> (t >> (print-object object stream)))) >> ((standard-object-p object) >> (print-object object stream)) >> ((java::java-object-p object) >> (print-object object stream)) >> ((xp::xp-structure-p stream) >> (let ((s (sys::%write-to-string object))) >> (xp::write-string++ s stream 0 (length s)))) >> (t >> (%output-object object stream)))) >> > |
From: Alan R. <ala...@gm...> - 2010-01-14 21:29:12
|
Well, not quite. Also, slime calls sys::frame-to-string, which doesn't respect java object's print-object method. This is inside java code and I don't know how to properly fix that. I'm patching as: (advise sys::frame-to-string (if (typep (car arglist) 'system::lisp-stack-frame) (prin1-to-string (sys::frame-to-list (car arglist))) (:do-it) ) :when :around :name :freedom) but would appreciate if someone could do the right thing. -Alan On Thu, Jan 14, 2010 at 3:43 PM, Alan Ruttenberg <ala...@gm...> wrote: > On Thu, Jan 14, 2010 at 1:29 PM, Alan Ruttenberg > <ala...@gm...> wrote: >> Now to find out why slime isn't using #'print-object ... >> >> -Alan >> > > That would be because print isn't calling print-object for java objects. > > (in-package #:system) > > ;; define the default method for java objects > (defmethod print-object ((obj java::java-object) stream) > (print-unreadable-object (obj stream :identity t) > (let ((tostring (jcall "toString" obj))) > (if (> (length tostring) 32) > (format stream "~a ~a..." (java::jclass-name (java::jobject-class > obj)) (subseq tostring 0 32) stream) > (format stream "~a ~a" (java::jclass-name (java::jobject-class obj)) > tostring stream))))) > > > ;; modify so that print-object is called on java objects too. > > (defun output-ugly-object (object stream) > (cond ((consp object) > (output-list object stream)) > ((and (vectorp object) > (not (stringp object)) > (not (bit-vector-p object))) > (output-vector object stream)) > ((structure-object-p object) > (cond > ((and (null *print-readably*) > *print-level* > (>= *current-print-level* *print-level*)) > (write-char #\# stream)) > (t > (print-object object stream)))) > ((standard-object-p object) > (print-object object stream)) > ((java::java-object-p object) > (print-object object stream)) > ((xp::xp-structure-p stream) > (let ((s (sys::%write-to-string object))) > (xp::write-string++ s stream 0 (length s)))) > (t > (%output-object object stream)))) > |
From: Alan R. <ala...@gm...> - 2010-01-14 20:43:16
|
On Thu, Jan 14, 2010 at 1:29 PM, Alan Ruttenberg <ala...@gm...> wrote: > Now to find out why slime isn't using #'print-object ... > > -Alan > That would be because print isn't calling print-object for java objects. (in-package #:system) ;; define the default method for java objects (defmethod print-object ((obj java::java-object) stream) (print-unreadable-object (obj stream :identity t) (let ((tostring (jcall "toString" obj))) (if (> (length tostring) 32) (format stream "~a ~a..." (java::jclass-name (java::jobject-class obj)) (subseq tostring 0 32) stream) (format stream "~a ~a" (java::jclass-name (java::jobject-class obj)) tostring stream))))) ;; modify so that print-object is called on java objects too. (defun output-ugly-object (object stream) (cond ((consp object) (output-list object stream)) ((and (vectorp object) (not (stringp object)) (not (bit-vector-p object))) (output-vector object stream)) ((structure-object-p object) (cond ((and (null *print-readably*) *print-level* (>= *current-print-level* *print-level*)) (write-char #\# stream)) (t (print-object object stream)))) ((standard-object-p object) (print-object object stream)) ((java::java-object-p object) (print-object object stream)) ((xp::xp-structure-p stream) (let ((s (sys::%write-to-string object))) (xp::write-string++ s stream 0 (length s)))) (t (%output-object object stream)))) |
From: Alan R. <ala...@gm...> - 2010-01-14 18:29:14
|
Here's my patch to make this work in my environment: (defmethod print-object ((method standard-method) stream) (print-unreadable-object (method stream :identity t) (format stream "~S ~S~{ ~S~} ~S" (class-name (class-of method)) (%generic-function-name (%method-generic-function method)) (method-qualifiers method) (mapcar #'(lambda (c) (if (typep c 'mop::eql-specializer) `(eql ,(mop::eql-specializer-object c)) (if (typep c 'java::java-class) `(java::jclass ,(#"getName" (cl-user::get-java-field c "javaClass" t))) (class-name c)))) (%method-specializers method)))) method) (advise java::%find-java-class (if (cl-user::find-java-class (car arglist)) (#"findJavaClass" 'org.armedbear.lisp.JavaClass (cl-user::find-java-class (car arglist))) (:do-it)) :when :around :name :dynamic-classpath)) Now to find out why slime isn't using #'print-object ... -Alan 2010/1/14 Alan Ruttenberg <ala...@gm...>: > > > On Thu, Jan 14, 2010 at 9:59 AM, Alessio Stalla <ale...@gm...> wrote: >>> (defmethod print-object ((obj (jclass "java.net.URI")) stream) >>> (print-unreadable-object (obj stream :identity t :type t))) >>> -> ; Evaluation aborted. >> >> Oh. I get this too, but it seems related to some failure in printing code; >> > > The problem is that the name slot of JAVA-CLASSes is not initialized, and so class-name fails. > > -Alan > |
From: Alan R. <ala...@gm...> - 2010-01-14 18:20:01
|
On Thu, Jan 14, 2010 at 9:59 AM, Alessio Stalla <ale...@gm...> wrote: >> (defmethod print-object ((obj (jclass "java.net.URI")) stream) >> (print-unreadable-object (obj stream :identity t :type t))) >> -> ; Evaluation aborted. > > Oh. I get this too, but it seems related to some failure in printing code; > The problem is that the name slot of JAVA-CLASSes is not initialized, and so class-name fails. -Alan |
From: Alessio S. <ale...@gm...> - 2010-01-14 14:59:40
|
On Thu, Jan 14, 2010 at 3:44 PM, Alan Ruttenberg <ala...@gm...> wrote: > Also, I get: > > (defmethod print-object ((obj (jclass "java.net.URI")) stream) > (print-unreadable-object (obj stream :identity t :type t))) > -> ; Evaluation aborted. Oh. I get this too, but it seems related to some failure in printing code; (progn (defmethod print-object ((obj (jclass "java.net.URI")) stream) (print-unreadable-object (obj stream :identity t :type t))) nil) works. > -Alan > > > 2010/1/14 Alan Ruttenberg <ala...@gm...>: >> Where's this implemented? It doesn't work for me because jclass doesn't find classes on the dynamically extended classpath I use. It should be implemented in JavaClass.java and clos.lisp, iirc. Wrt. the dynamic classpath, jclass should be extended to handle an optional "classloader" parameter. >> Would this method be called when a backtrace used in slime is constructed? I completely ignore that. Bye, Ale |
From: Alan R. <ala...@gm...> - 2010-01-14 14:44:32
|
Also, I get: (defmethod print-object ((obj (jclass "java.net.URI")) stream) (print-unreadable-object (obj stream :identity t :type t))) -> ; Evaluation aborted. -Alan 2010/1/14 Alan Ruttenberg <ala...@gm...>: > Where's this implemented? It doesn't work for me because jclass doesn't find classes on the dynamically extended classpath I use. > > Would this method be called when a backtrace used in slime is constructed? > > Thanks, > Alan > > On Thu, Jan 14, 2010 at 9:38 AM, Alessio Stalla <ale...@gm...> wrote: >> On Thu, Jan 14, 2010 at 3:33 PM, Alan Ruttenberg >> <ala...@gm...> wrote: >>> The Jena toolkit has antisocially defined the toString method of an >>> important object to be computationally expensive - it triggers a >>> description logical classification process in some cases, something >>> which can blow out memory or take a very very long time. >>> >>> Therefore I need to be able to override that behavior so that if I >>> happen to get a stack trace or other wise cause one to be printed >>> toString is not called. >>> >>> As far as I can tell, it seems that the case of printing a java object >>> is handled by >>> >>> public String writeToString() in JavaObject.java >>> >>> An approach that makes sense to me would be to have this method look >>> for an eql method with the class of the object as specializer. >>> >>> (defmethod java-object-to-string ((class (eql (load-time-value >>> (find-java-class "com.hp.hpl.jena.ontology.impl.OntModelImpl")))))) >>> ..) >>> >>> and if such a method exists, call it instead of using the default >>> implementation. >>> >>> Other ideas welcome. >> >> I believe >> >> (defmethod print-object ((obj (jclass "com.foo.whatever")) stream) ...) >> >> should do, at least when the printing is done in Lisp through the >> standard CL printing functions. >> >> hth, >> Ale >> > > |
From: Alan R. <ala...@gm...> - 2010-01-14 14:43:10
|
Where's this implemented? It doesn't work for me because jclass doesn't find classes on the dynamically extended classpath I use. Would this method be called when a backtrace used in slime is constructed? Thanks, Alan On Thu, Jan 14, 2010 at 9:38 AM, Alessio Stalla <ale...@gm...> wrote: > On Thu, Jan 14, 2010 at 3:33 PM, Alan Ruttenberg > <ala...@gm...> wrote: >> The Jena toolkit has antisocially defined the toString method of an >> important object to be computationally expensive - it triggers a >> description logical classification process in some cases, something >> which can blow out memory or take a very very long time. >> >> Therefore I need to be able to override that behavior so that if I >> happen to get a stack trace or other wise cause one to be printed >> toString is not called. >> >> As far as I can tell, it seems that the case of printing a java object >> is handled by >> >> public String writeToString() in JavaObject.java >> >> An approach that makes sense to me would be to have this method look >> for an eql method with the class of the object as specializer. >> >> (defmethod java-object-to-string ((class (eql (load-time-value >> (find-java-class "com.hp.hpl.jena.ontology.impl.OntModelImpl")))))) >> ..) >> >> and if such a method exists, call it instead of using the default >> implementation. >> >> Other ideas welcome. > > I believe > > (defmethod print-object ((obj (jclass "com.foo.whatever")) stream) ...) > > should do, at least when the printing is done in Lisp through the > standard CL printing functions. > > hth, > Ale > |
From: Alessio S. <ale...@gm...> - 2010-01-14 14:38:35
|
On Thu, Jan 14, 2010 at 3:33 PM, Alan Ruttenberg <ala...@gm...> wrote: > The Jena toolkit has antisocially defined the toString method of an > important object to be computationally expensive - it triggers a > description logical classification process in some cases, something > which can blow out memory or take a very very long time. > > Therefore I need to be able to override that behavior so that if I > happen to get a stack trace or other wise cause one to be printed > toString is not called. > > As far as I can tell, it seems that the case of printing a java object > is handled by > > public String writeToString() in JavaObject.java > > An approach that makes sense to me would be to have this method look > for an eql method with the class of the object as specializer. > > (defmethod java-object-to-string ((class (eql (load-time-value > (find-java-class "com.hp.hpl.jena.ontology.impl.OntModelImpl")))))) > ..) > > and if such a method exists, call it instead of using the default > implementation. > > Other ideas welcome. I believe (defmethod print-object ((obj (jclass "com.foo.whatever")) stream) ...) should do, at least when the printing is done in Lisp through the standard CL printing functions. hth, Ale |
From: Alan R. <ala...@gm...> - 2010-01-14 14:34:06
|
The Jena toolkit has antisocially defined the toString method of an important object to be computationally expensive - it triggers a description logical classification process in some cases, something which can blow out memory or take a very very long time. Therefore I need to be able to override that behavior so that if I happen to get a stack trace or other wise cause one to be printed toString is not called. As far as I can tell, it seems that the case of printing a java object is handled by public String writeToString() in JavaObject.java An approach that makes sense to me would be to have this method look for an eql method with the class of the object as specializer. (defmethod java-object-to-string ((class (eql (load-time-value (find-java-class "com.hp.hpl.jena.ontology.impl.OntModelImpl")))))) ..) and if such a method exists, call it instead of using the default implementation. Other ideas welcome. -Alan |
From: Alan R. <ala...@gm...> - 2010-01-06 14:49:15
|
On Wed, Jan 6, 2010 at 9:39 AM, Mark Evenson <ev...@pa...> wrote: > On 1/6/10 3:38 PM, Alan Ruttenberg wrote: >> >> Hi Mark, >> >> I've debugged the problems, sent email to the list, and worked around >> them for the moment, so no need to investigate this. Thanks for the >> offer, though! >> > > Great! I've been following your mails, and will try to make sure that your > patch makes it into the upcoming abcl-0.18. Thanks! I didn't have a patch for the symbol macrolet bug - someone will have to figure out what's with that, but avoided the issue by changing jss to use gensymed argument lists for its generated functions. Regards, Alan > > > -- > "A screaming comes across the sky. It has happened before, but there > is nothing to compare to it now." > |