You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
(10) |
Jun
(6) |
Jul
(1) |
Aug
(10) |
Sep
(20) |
Oct
(5) |
Nov
(2) |
Dec
(4) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(25) |
Feb
(6) |
Mar
(59) |
Apr
(9) |
May
(3) |
Jun
(13) |
Jul
(6) |
Aug
(16) |
Sep
(14) |
Oct
(12) |
Nov
(4) |
Dec
(10) |
2004 |
Jan
(16) |
Feb
(12) |
Mar
(53) |
Apr
(16) |
May
(43) |
Jun
(40) |
Jul
(48) |
Aug
(20) |
Sep
(23) |
Oct
(27) |
Nov
(33) |
Dec
(8) |
2005 |
Jan
(2) |
Feb
(20) |
Mar
(7) |
Apr
(9) |
May
(2) |
Jun
(6) |
Jul
(5) |
Aug
|
Sep
|
Oct
(3) |
Nov
(3) |
Dec
(6) |
2006 |
Jan
(6) |
Feb
(6) |
Mar
(1) |
Apr
(4) |
May
|
Jun
(1) |
Jul
|
Aug
(2) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2007 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(1) |
Sep
(8) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
|
Dec
(2) |
2009 |
Jan
(2) |
Feb
|
Mar
(1) |
Apr
|
May
(4) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Geoffrey K. <ge...@kn...> - 2003-10-17 16:40:34
|
If there is an orderly way to write code in a CLOS style and use LINJ to generate Java classes and interfaces, and if aspects can be weaved into the Java compilation, this might even convince PHBs. Geoffrey -- Geoffrey S. Knauth | http://knauth.org/gsk On Friday, October 17, 2003, at 11:16 AM, Ken Anderson wrote: > Bottom Secret (Don't tell managment) > > At the International Lisp Conference, > http://www.international-lisp-conference.org/ > there was a nice presentation about Linj a Lisp to Java compiler. The > code is not available yet, but there is a nice tutorial: > http://www.evaluator.pt/downloads/tutorial.html > > One of the goals is to make human readable Java code, so your clients > can't tell that you're not programming in Java (though some suspect > that something strange is going on). So, for example, this Common Lisp > code: > > (defun fact (n) > (if (= n 0) > 1 > (* n (fact (1- n))))) > > (defun main () > (dotimes (i 6) > (let ((n (* i 10))) > (format t "(fact ~A) -> ~A~%" n (fact n))))) > compiles to this Java code: > import linj.Bignum; > public class Factorial extends Object { > public static Bignum fact(Bignum n) { > if (n.compareTo(Bignum.valueOf(0)) == 0) { > return Bignum.valueOf(1); > } else { > return n.multiply(fact(n.subtract(Bignum.valueOf(1)))); > } > } > > public static void main(String[] outsideArgs) { > for (int i = 0; i < 6; ++i) { > int n = i * 10; > System.out.print("(fact "); > System.out.print(n); > System.out.print(") -> "); > System.out.println(fact(Bignum.valueOf(n))); > } > } > } > > Notice the nice type inference! You can add type declarations like > this: > > (defun fact (n/int) > (if (= n 0) 1L > (* n (fact (1- n))))) > > One of the real powers of this is that you can define a minilanguage > in Lisp macros and have Linj generate Java code for you! You can even > put a comment in Java code that Linj will transform into Java code. > > I can even imagine writing the JScheme primitives in Linj and maybe > even a JScheme compiler and ... > > k |
From: Timothy J. H. <ti...@cs...> - 2003-10-17 16:07:56
|
> > > Call for Participation -- NEPLS Symposium > When: Tuesday October 21st, 10-4 > Where: Brandeis University, Hassenfeld Conference Center > Why: Great talks, exciting conversation, free lunch! > > The 10th New England Programming Languages and Systems symposium will > be held from 10am to 4:15pm on Tuesday, October 21 at Brandeis > University in Waltham, MA. > > The program features Erik Meijer from Microsoft, WebData as the > Keynote speaker, > as well as seven regular talks. After the keynote, > Dan Dougherty and Chiyan Chen will speak about typing issues, > then we'll have a (free) buffet lunch. After lunch > Norman Ramsey will provide us with his long awaited talk on Quick C-- > and Manos Renieris will tell us about his recent work on Fault > Localization. > After a long coffee break, we'll conclude the day with three talks. > Narendran Sachindra will present his new GC method, > Darko Marinov will describe his Object Equality profiling/optimization > tool, > and finally John Ridgway will talk about Programming Language tools. > It promises to be an exciting day and we look forward to seeing you > there! > > More details, including the abstracts for the talks, are available at > the NEPLS website: > http://www.nepls.org > (Thanks to Shriram Krishnamurthi for the website!) > > Directions to the NEPLS Symposium at Brandeis are available at > http://www.cs.brandeis.edu/~tim/nepls.html > > We would appreciate a quick RSVP to the email if you are planning to > attend. > > We look forward to seeing you at NEPLS-X. > > Tim Hickey > ti...@cs... > > Harry Mairson > ma...@cs... > > > **************************************************************** > ** Program for the 10th NEPLS Symposium > ** at Brandeis University > **************************************************************** > > 09:00-10:00 Coffee and Muffins for early birds > > 10:00-11:00 Erik Meijer, Technical Lead, Microsoft, WebData > Programming with Rectangles, Triangles, and Circles > > 11:00-11:30 Dan Dougherty, Worcester Polytechic Institute > Controlling Gemini capsules: classical logic, intersection types > and strong normalization > > 11:30-12:00 Chiyan Chen and Hongwei Xi, Boston University > A Typed Approach to Multiple Inheritance > > 12:00- 1:00 Lunch: (Please RSVP so we know if we should order some > extra food!) > > 01:00-01:30 Norman Ramsey, Harvard University, > Engineering Calling Conventions in the Quick C-- Compiler > Infrastructure > > 01:30-02:00 Manos Renieris, Brown University, > Fault Localization > > 02:00-02:30 Coffee and Cookies > > 02:30-03:00 Narendran Sachindran, University of Massachusetts, > Amherst > Title- Mark-Copy: Fast copying GC with less space overhead > > 03:00-03:30 Darko Marinov, MIT > Object Equality Profiling > > 03:30-04:00 John Ridgway, University of Massachussetts, Amherst > The How of Programming Language Research -- Starting Point for a > Discussion > > 04:00-04:10 Brief Business Meeting > > **************************************************************** > |
From: Ken A. <kan...@bb...> - 2003-10-17 15:17:10
|
Bottom Secret (Don't tell managment) At the International Lisp Conference, http://www.international-lisp-conference.org/ there was a nice presentation about Linj a Lisp to Java compiler. The code is not available yet, but there is a nice tutorial: http://www.evaluator.pt/downloads/tutorial.html One of the goals is to make human readable Java code, so your clients can't tell that you're not programming in Java (though some suspect that something strange is going on). So, for example, this Common Lisp code: (defun fact (n) (if (= n 0) 1 (* n (fact (1- n))))) (defun main () (dotimes (i 6) (let ((n (* i 10))) (format t "(fact ~A) -> ~A~%" n (fact n))))) compiles to this Java code: import linj.Bignum; public class Factorial extends Object { public static Bignum fact(Bignum n) { if (n.compareTo(Bignum.valueOf(0)) == 0) { return Bignum.valueOf(1); } else { return n.multiply(fact(n.subtract(Bignum.valueOf(1)))); } } public static void main(String[] outsideArgs) { for (int i = 0; i < 6; ++i) { int n = i * 10; System.out.print("(fact "); System.out.print(n); System.out.print(") -> "); System.out.println(fact(Bignum.valueOf(n))); } } } Notice the nice type inference! You can add type declarations like this: (defun fact (n/int) (if (= n 0) 1L (* n (fact (1- n))))) One of the real powers of this is that you can define a minilanguage in Lisp macros and have Linj generate Java code for you! You can even put a comment in Java code that Linj will transform into Java code. I can even imagine writing the JScheme primitives in Linj and maybe even a JScheme compiler and ... k |
From: Ken A. <kan...@bb...> - 2003-10-10 22:24:05
|
At 05:08 PM 10/10/2003 -0400, Anton van Straaten wrote: >Ken Anderson wrote: >> Yes, this is something we should correct. For example, Dan' >> Friedman's code: >> http://www.cs.indiana.edu/~dfried/ooo.ss for >> http://www.cs.indiana.edu/~dfried/ooo.pdf >> which are about the hariest macros i've seen works fine in >> JScheme. I'll provided it as a JScheme example after Dan >> presents his talk. > >This is good to know. Is the syntax-case & syntax-rules implementation now >integrated into JScheme? you need to load elf/eopl2/jscheme/jscheme-init.scm, so you don't get it by default. Also, because of the way psyntax.scm is written backtraces on errors are not very informative. All variables have been alpha substituded for example and you get a giant stack trace. Perhapse we can do something with Tim's module system to make this better. I welcome people to try it and complain and help make it better. >> >I haven't looked into that, since I've been working on server-side >> >web applications. The kind of things I've been doing have involved >> >interfacing to Java business objects, web framework code, and >> >persistence code. I'll clarify that on c.l.s. >> >> Here's a great SISC paper which sounds similar to what you are doing: >> http://schematics.sourceforge.net/scheme-london/nmk-case-study.pdf >> I'd love to hear more about what you'r up to. > >This paper describes a more comprehensive solution than what I've done so >far, but it is along similar lines. I've used a Java library called >Hibernate ( www.hibernate.org ) instead of the OJB library mentioned in the >paper. Like OJB, Hibernate transparently maps Java business objects to a >SQL database. Those objects are then accessible within Scheme. I'm not >using a web presentation framework - the larger Java application in question >has a homegrown one, but the Scheme pages form a somewhat separate subsystem >at the moment. The Scheme code interacts directly with web pages and forms, >using continuations to support a natural coding style. Tim and i have tried Jetty and Tomcat. JScheme makes it easy to do simple dynamic pages and database accesses, but without the nice continuation support. I'll have to look into hybernate. k |
From: Anton v. S. <an...@ap...> - 2003-10-10 21:01:53
|
Ken Anderson wrote: > Yes, this is something we should correct. For example, Dan' > Friedman's code: > http://www.cs.indiana.edu/~dfried/ooo.ss for > http://www.cs.indiana.edu/~dfried/ooo.pdf > which are about the hariest macros i've seen works fine in > JScheme. I'll provided it as a JScheme example after Dan > presents his talk. This is good to know. Is the syntax-case & syntax-rules implementation now integrated into JScheme? > >I haven't looked into that, since I've been working on server-side > >web applications. The kind of things I've been doing have involved > >interfacing to Java business objects, web framework code, and > >persistence code. I'll clarify that on c.l.s. > > Here's a great SISC paper which sounds similar to what you are doing: > http://schematics.sourceforge.net/scheme-london/nmk-case-study.pdf > I'd love to hear more about what you'r up to. This paper describes a more comprehensive solution than what I've done so far, but it is along similar lines. I've used a Java library called Hibernate ( www.hibernate.org ) instead of the OJB library mentioned in the paper. Like OJB, Hibernate transparently maps Java business objects to a SQL database. Those objects are then accessible within Scheme. I'm not using a web presentation framework - the larger Java application in question has a homegrown one, but the Scheme pages form a somewhat separate subsystem at the moment. The Scheme code interacts directly with web pages and forms, using continuations to support a natural coding style. Anton |
From: Jeremy H. <je...@al...> - 2003-10-10 04:05:30
|
Call for Presentations Lightweight Languages Workshop (LL3) http://ll3.ai.mit.edu/ November 8, 2003 Cambridge, Ma., USA The Lightweight Languages Workshop series focuses on programming languages, tools, and processes that are usable and useful. Lightweight languages have been an effective vehicle for introducing new features to mainstream programmers. We encourage presentations on topics of interest to the community of lightweight language users and designers. We prefer topics that will interest a broad audience. We do not require the presentation of novel research ideas. We are looking for abstracts of talks to be given at the workshop. Send abstracts to ll3...@ai.... See the full call for proposals <http://ll3.ai.mit.edu/cfp.html> for suggested topics. Deadlines --------- Submissions: Oct. 17, 2003 Notification: Oct. 24, 2003 Program Committee ----------------- Ken Anderson, BBN (co-chair) Jeremy Hylton, Python Software Foundation (co-chair) Geoffrey Knauth, BAE Systems Shriram Krishnamurthi, Brown University Erik Meijer, Microsoft WebData Dan Sugalski, Perl Foundation Greg Sullivan, MIT CSAIL For more information, email ll...@ai.... |
From: Ken A. <kan...@bb...> - 2003-10-02 13:31:41
|
This is an interesting approach, however it assumes that each field is fo= llowed by a delimiter. In the CSV format that EXCEL uses, the end of a f= ield is also indicated by the end of line. Also, in EXCEL, a field that = contains a delimiter will be wrapped in double quotes, like "this, and th= at", and a double quote is escaped by doubling it. Here's an approach i use: (define (csv-read port delimiter cell-action row-action) (define (!) (let ((c (read-char port))) c)) (define k1 (lambda () (state (!)))) (define k2 (lambda () (row-action k1))) (define (give-cell b k) (cell-action (list->string (reverse b)) k)) (define (state c) (cond ((eqv? c delimiter) (cell-action "" k1)) ((eqv? c #\") (state-string (!) '())) ((eqv? c #\newline) (row-action k1)) ((eof-object? c) #t) (else (state-any c '())))) (define (state-string c b) (cond ((eqv? c #\") (state-string-quote (!) b)) ((not (eof-object? c)) (state-string (!) (cons c b))))) (define (state-string-quote c b) (cond ((eqv? c #\") (state-string c (cons c b))) ; Escaped double quo= te. ((eqv? c delimiter) (give-cell b k1)) ((eqv? c #\newline) (give-cell b k2)) ((eof-object? c) (give-cell b k2)) (else (error "Single double quote at unexpected place.")))) (define (state-any c b) (cond ((eqv? c delimiter) (give-cell b k1)) ((eqv? c #\newline) (give-cell b k2)) ((eof-object? c) (give-cell b k2)) (else (state-any (!) (cons c b))))) (state (!))) This uses continuation passing style to separate the parsing from what the user does with each cell and row. (cell-action value k) is called with a value of the next cell and a continuation, k to resume the computation. (row-action k) is called at the end of a row, also with a continuation. The state... procedures are a tail recursive finite state machine. Here's an example of converting a csv file to a string of HTML: (define (csv->html port) (let ((result '("<html><table><tr>"))) (csv-read port #\, (lambda (value k) (set! result (cons "</td>" (cons value (cons "<td>" resul= t)))) (k)) (lambda (k) (set! result (cons "</tr><tr>" result)) (k))) (apply string-append (reverse (cons "</html>" result))))) k At 11:23 PM 9/30/2003 +0200, Wolfgang Jaehrling wrote: >Hi there! > >For those of you who want to read some interesting code, here is a >program to parse a file in CSV (Comma Separated Value) format. I >think it shows how one should use Scheme, but some might say it goes a >bit too far... (and I'd like to receive comments on this topic.) > >Note `READ-TABLE' can be called with the source port as argument, or >without an argument to use the current input port. > >;; Reading a table from a port where it resides in CSV format. >;; Copyright (C) 2003 Wolfgang J=E4hrling <wol...@pr...> >;; >;; This program is free software; you can redistribute it and/or modify >;; it under the terms of the GNU General Public License as published by >;; the Free Software Foundation; either version 2 of the License, or >;; (at your option) any later version. >;; >;; This program is distributed in the hope that it will be useful, >;; but WITHOUT ANY WARRANTY; without even the implied warranty of >;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >;; GNU General Public License for more details. > >(define field-delimiter #\,) > >;; Return a procedure that calls CONSUMER with three arguments: The >;; value returned by the PRODUCER applied to the procedures arguments, >;; a list that is initially empty, and a thunk to restart this process >;; with the value given by the PRODUCER added at the beginning of the >;; list given to the CONSUMER. >(define (collectrec producer consumer) > (lambda args > (letrec ((loop (lambda (lst) > (let ((x (apply producer args))) > (consumer x lst (lambda () > (loop (cons x lst)))))))) > (loop '())))) > >;; Read and return a field, that ends with the configured delimiter >;; character, or return false at the end of a line, or the eof-object >;; at end of file. >(define read-field > (collectrec read-char > (lambda (c chars loop) > (cond ((eof-object? c) c) > ((char=3D? c field-delimiter) > (apply string (reverse chars))) > ((char=3D? c #\newline) #f) > (else (loop)))))) > >;; Read a line and split it up into a list of fields which gets >;; returned, or false at the end of the file. >(define read-row > (collectrec read-field > (lambda (f fields loop) > (cond ((not f) (reverse fields)) > ((eof-object? f) #f) > (else (loop)))))) > >;; Read a table and return it as a list of rows, each row being a list >;; of fields, which are strings. >(define read-table > (collectrec read-row > (lambda (r rows loop) > (if (not r) > (reverse rows) > (loop))))) > >;;;; End of code. ;;;; > >Cheers, >GNU/Wolfgang > >--=20 >(define eq? (lambda (x y) #t)) ;; How could it be otherwise? > > >_______________________________________________ >Guile-user mailing list >Gui...@gn... >http://mail.gnu.org/mailman/listinfo/guile-user |
From: Michael R H. <bu...@zc...> - 2003-10-01 12:45:17
|
Saw this on the lambda the ultimate blog this morning and strikes me as interesting to JSchemers: http://www.google.com/groups?selm=7eb8ac3e.0309182239.5a64b3b1%40posting.google.com -- Michael R Head <bu...@zc...> ZClipse -- OpenSource Eclipse plugins |
From: Ken A. <kan...@bb...> - 2003-09-26 21:24:34
|
At 05:10 PM 9/25/2003 -0400, Anton van Straaten wrote: >Ken Anderson wrote: >> Anton, could you say more about what your liked about >> SISC's generics over java dot notation? > >Joe Marshall also asked me about why I preferred SISC's generics. I gave >some more detail in this post on c.l.s.: > >http://groups.google.com/groups?selm=YVkcb.6092%24ai7.2351%40newsread1.news. >atl.earthlink.net > >I think there are pros and cons to both approaches (see the above post for >more detail). The main advantage I found with the SISC approach is very >much one of the "feel" of working with Java objects in Scheme, in terms of >the Schemeliness of procedure names, so it is certainly a subjective matter. Yes, I now see that SISC has a clever way of keeping names Schemey. In my JScheme code, i've adopted to use the Java style camelWords for naming. This makes it easier for people who know Java and are seeing Scheme for the first time, but makes the Scheme look unusual to a Schemer. JavaDot alsom make the Scheme unsual. However, we chose it because it elimiated other problems like name conflicts on primitve procedures like length.... >My comment re Javadot on c.l.s. came from having first felt that I needed >something like Javadot to work with Java objects, but ultimately finding >that (a) I didn't really need it, and (b) that I preferred not having all >those Java-esque names in my code. Conceptually, I take the position that >any Java functionality could in theory be replaced by Scheme functionality, >so I'd rather have a consistent interface to both - a sort of variation on >Bertrand Meyer's principle of uniform access. >However, I should make clear that the reason I began using SISC over JScheme >was more to do with R5RS-compliance. The biggest single issue for me was >that I use syntax-rules macros in code on other Schemes, and wanted to have >as much portability as possible between the implementations I use. At the >time, JScheme didn't support syntax-rules, at least not in the default >distribution. This seemed like an indicator that R5RS-compliance was not a >priority - combined, of course, with the R4RS mention on the web pages. Yes, this is something we should correct. For example, Dan' Friedman's code: http://www.cs.indiana.edu/~dfried/ooo.ss for http://www.cs.indiana.edu/~dfried/ooo.pdf which are about the hariest macros i've seen works fine in JScheme. I'll provided it as a JScheme example after Dan presents his talk. Also Peter and i had lots of experience with the Lisp hurt-yourself macros, and i'm only now getting good enough to write Scheme ones. >> In the first version of JScheme (SILK) you had to >> mention each method you wanted to use from a >> Java class and that became pretty tedious quickly. > >I imagine that this would have a lot to do with the kinds of applications >being written. In most cases, I've ended up implementing a module to wrap >some Java functionality, and declared the needed generic procedures there, >so the main body of code doesn't need to worry about declaring them. I see >the need for these explicit declarations as a tradeoff for the ability to >have Scheme-like names for Java methods, as well as having generic methods >that can work on either Java or Scheme objects. > >> It doesn't look like SISC much with its Java side. For example, >> there isn't a gui library like JLIB, or Tim's collaboration stuff. > >I haven't looked into that, since I've been working on server-side web >applications. The kind of things I've been doing have involved interfacing >to Java business objects, web framework code, and persistence code. I'll >clarify that on c.l.s. Here's a great SISC paper which sounds similar to what you are doing: http://schematics.sourceforge.net/scheme-london/nmk-case-study.pdf I'd love to hear more about what you'r up to. |
From: Ken A. <kan...@bb...> - 2003-09-26 15:05:23
|
Lightweight Languages Workshop 2003 (LL3) ---------------------------------- Saturday, November 8, 2003, MIT, Cambridge, MA http://ll3.ai.mit.edu/ mailto:ll...@ai... CALL FOR PRESENTATIONS LL3 will be an intense, exciting, one-day forum bringing together the best programming language implementors and researchers, from both academia and industry, to exchange ideas and information, to challenge one another, and to learn from one another. The workshop series focuses on programming languages, tools, and processes that are usable and useful. Lightweight languages have been an effective vehicle for introducing new features to mainstream programmers. We encourage presentations on topics of interest to the community of lightweight language users and designers. We prefer topics that will interest a broad audience. We do not require the presentation of novel research ideas. Proposal Abstracts ------------------ Due Friday Oct. 17 We seek two to five page abstracts of talks to be given at the workshop. Talks will be 30 minutes long, including time for questions and answers. Presenters are not expected to submit papers, but slides will be published on the workshop web site. We will also consider proposals for talks of different lengths. Some suggested topics are: * Language design: New language features, type systems and other reasoning tools, critiques of existing languages. * Implementation techniques: Interpreters and virtual machines, optimizations, cross-language interactions. * From scripts to programs: Software engineering with lightweight and/or a mix of languages. How to (or not to!) scale from little scripts to large, complex applications. Application war stories. * From ivory tower to cubicle -- what language implementors need to know from academic programming languages research -- and back. * Lightweight pearls: Elegant and instructive examples of programs in lightweight languages. * Programming tools and development processes. Send submissions to: ll3...@ai... We want presentations that will inspire, motivate, and educate. We want language implementors and researchers to leave the workshop fired up with ideas for future languages, features, and implementation tricks. We want language users to leave the workshop fired up with new ideas and new tools. In addition to submitted presentations, there will be two invited talks. After the workshop, there will be an evening social event and dinner. Dates: Tuesday, Oct. 17 -- submissions due by end of day. Tuesday, Oct. 24 -- notification of acceptance or rejection Saturday, Nov. 8 -- 9am-7pm, LL3! Program Committee: Ken Anderson, BBN (co-chair) Jeremy Hylton, Python Software Foundation (co-chair) Geoffrey Knauth, BAE Systems Shriram Krishnamurthi, Brown University Erik Meijer, Microsoft Research Dan Sugalski, Perl Foundation Greg Sullivan, MIT CSAIL |
From: Anton v. S. <an...@ap...> - 2003-09-25 21:03:52
|
Ken Anderson wrote: > Anton, could you say more about what your liked about > SISC's generics over java dot notation? Joe Marshall also asked me about why I preferred SISC's generics. I gave some more detail in this post on c.l.s.: http://groups.google.com/groups?selm=YVkcb.6092%24ai7.2351%40newsread1.news. atl.earthlink.net I think there are pros and cons to both approaches (see the above post for more detail). The main advantage I found with the SISC approach is very much one of the "feel" of working with Java objects in Scheme, in terms of the Schemeliness of procedure names, so it is certainly a subjective matter. My comment re Javadot on c.l.s. came from having first felt that I needed something like Javadot to work with Java objects, but ultimately finding that (a) I didn't really need it, and (b) that I preferred not having all those Java-esque names in my code. Conceptually, I take the position that any Java functionality could in theory be replaced by Scheme functionality, so I'd rather have a consistent interface to both - a sort of variation on Bertrand Meyer's principle of uniform access. However, I should make clear that the reason I began using SISC over JScheme was more to do with R5RS-compliance. The biggest single issue for me was that I use syntax-rules macros in code on other Schemes, and wanted to have as much portability as possible between the implementations I use. At the time, JScheme didn't support syntax-rules, at least not in the default distribution. This seemed like an indicator that R5RS-compliance was not a priority - combined, of course, with the R4RS mention on the web pages. > In the first version of JScheme (SILK) you had to > mention each method you wanted to use from a > Java class and that became pretty tedious quickly. I imagine that this would have a lot to do with the kinds of applications being written. In most cases, I've ended up implementing a module to wrap some Java functionality, and declared the needed generic procedures there, so the main body of code doesn't need to worry about declaring them. I see the need for these explicit declarations as a tradeoff for the ability to have Scheme-like names for Java methods, as well as having generic methods that can work on either Java or Scheme objects. > It doesn't look like SISC much with its Java side. For example, > there isn't a gui library like JLIB, or Tim's collaboration stuff. I haven't looked into that, since I've been working on server-side web applications. The kind of things I've been doing have involved interfacing to Java business objects, web framework code, and persistence code. I'll clarify that on c.l.s. Anton |
From: Ken A. <kan...@bb...> - 2003-09-25 19:41:30
|
This is an interesting assessment. SISC is a very nice Scheme implementation. Anton, could you say more about what your liked about SISC's generics over java dot notation? In the first version of JScheme (SILK) you had to mention each method you wanted to use from a Java class and that became pretty tedious quickly. I looked at 2 of th SRFI implementation and there looked like there were about 30 lines related to classes and methods and type conversion that wouldn't be needed in JScheme. That might be few enough to live with. It doesn't look like SISC much with its Java side. For example, there isn't a gui library like JLIB, or Tim's collaboration stuff. I think JScheme should stop advertising itself as R4RS, since its mostly R5RS. It was certainly true that JScheme may have looked dead since its downloadable jar hadn't changed for a long time. k At 04:47 AM 9/24/2003 -0400, Geoffrey S. Knauth wrote: >Some JScheme feedback I saw from someone whose >opinions I respect. > >Geoffrey > >------- Begin Forwarded Message ------- > >Subject: Re: Best Java Scheme implementation? >From: Anton van Straaten <an...@ap...> >Newsgroups: comp.lang.scheme >Date: Wed, 24 Sep 2003 04:32:37 GMT > >Russell Wallace wrote: >> I'm looking for a Scheme that targets the Java platform. I might try >> out two or three of the available ones for myself, but looking for >> pointers first as to which are the best ones for a short list? My main >> criteria are reliability, reliability and reliability, with >> reliability coming a close fourth; I'm also looking for arbitrary >> precision rational numbers, low-overhead compiling at run time, and >> ease of integration with Java code (though I imagine the latter can be >> accomplished by writing wrapper functions in any event). > >I've been using SISC when I need to target the Java platform, and have been >very happy with it. > >I previously tried JScheme, initially attracted by its syntax for accessing >Java objects. However, JScheme is mostly R4RS, not R5RS. Neither >syntax-rules nor syntax-case are provided as standard, although it does have >define-macro. Another point which mattered to me is that JScheme's >continuations are restricted to being escape procedures, but I like being >able to use full continuations in web applications. Finally, I have the >impression that JScheme is the least actively developed of the Java Scheme >implementations. > >SISC supports syntax-rules, syntax-case, and full continuations. In >addition, its Java integration turned out to be excellent (which I didn't >fully realize at first glance) - it uses generic functions to allow Java >methods to be called like ordinary functions. In the end, this actually >seemed cleaner to me than JScheme's "Javadot" notation. > >SISC is an interpreter, but it's a sophisticated one which performs very >well. The paper on its implementation is worth a look: >http://sisc.sourceforge.net/sisc.pdf > >Kawa is also a very solid implementation, which I've worked with just a >little. It has a document comparable to the above, at >http://www.gnu.org/software/kawa/internals.html (I find that info about >internals helps me make choices.) Kawa compiles to bytecode, which may be >an advantage, depending on your requirements. However, this also results in >some restrictions related to continuations. > >I have no experience with Bigloo, but I believe it's fairly unique in >compiling to either C, or Java bytecode. Its C-targeting is supposed to be >very good, and I would imagine that the Java is good too. > >Anton > >-------- End Forwarded Message -------- |
From: Ken A. <kan...@bb...> - 2003-09-23 21:20:12
|
I have found that programming languages that are also XML are pretty hard to use. waterlang.org is a possible exception, though its not XML either. The Ruby reflection approach is nice, you could do the same thing in Java, with a bit more work. However, you could also just have a table of tag -> transformer and simply walk the xml object applying the transformations. What Rusty and i do is transform xml into sexpressions, (see dclass/SAXexp.scm) manipulate the sexpression and transform back to xml. We just pass the sexp to a transformer and let it side effect it because we're generally adding structure, though a functional approach should work too. k At 11:15 AM 9/23/2003 -0400, Geoffrey Knauth wrote: >(from Martin Fowler's BLOG) > >http://martinfowler.com/bliki/MovingAwayFromXslt.html > >Geoffrey >-- >Geoffrey S. Knauth | http://knauth.org/gsk |
From: Timothy J. H. <ti...@cs...> - 2003-09-18 19:18:51
|
Hi, I've added a link from the main jscheme web page http://jscheme.sourceforge.net to a tutorial on web programming for novice programmers. The link leads to a page of directions for downloading a Jetty web server http://jscheme.cs.brandeis.edu:8080/tutorial/download.html The Jetty server you download contains two Jscheme webapps: tutorial and practice. One webapp ,tutorial, consists of 8 lessons (in pretty rough form). The other webapp, practice, is for the students to write their own servlets and applets and webpages. These tutorial lessons are essentially the notes that I've been using to teach an "Introduction to Computers" course to about 1000 mostly non-science majors over the past 7 years. I thought it was time to start making this publlic in the hope that eventually everyone will learn how to become at least minimally proficient at web programming. If anyone has time to try out the tutorial briefly, I'm glad to hear about any ideas for improving it... Cheers, ---Tim--- |
From: Ken A. <kan...@bb...> - 2003-09-12 21:58:48
|
Well, i can certainly provide a version of Tiny CLOS, i call LessTiny because, Tiny is really too small to use. No object has a name so debugging is basically impossible. The only thing of SLIB we currently provide is the pretty printer. We should look at it i think most of it could be provided easily, and we could make it a separate jar. Also, Java should provide some of these extensions. Looking at the SRFI's would be good too. At least we'd have a chance of running scheme code that use them. Some may be written using hygenic macros, which we can do, but loading the hygenic macro packages seems to make analyze a lot slower. k At 01:42 PM 9/11/2003 -0400, Timothy John Hickey wrote: >Perhaps we should provide a little better support for CLOS >and sorting. I don't think there is a "sort" in the elf or jlib packages. > >It might be worthwhile providing toplevel links on the Jscheme webpage >to useful Scheme packages ported to Jscheme > (e.g. CLOS, SLIB, SRFI's, user-developed packages...) > >---Tim--- > >Begin forwarded message: > >>From: Rahul Gopinath <rgo...@qu...> >>Date: Thu Sep 11, 2003 12:51:57 PM US/Eastern >>To: Bruce Lewis <br...@al...> >>Cc: li...@re... >>Subject: RE: [Lispweb] mod_lisp and Apache2 >> >>thanks, >> brl and kawa are really good but my personal favorite is >>jscheme(webapp) :) Especially the java dot is very convenient for accessing >>other java thingies.. >> >> >>ps: >>I dont know if every one knows this, but since I couldn't find any reference >>to it any where,.. >> tiny-clos works fine with jscheme with a little help. The only thing >>needed to do was to define the sort function >>(Jscheme provides a sort function implemented in java, but gives problems, >>using another sort worked out to be ok) >> >> >>-----Original Message----- >>From: Bruce Lewis [mailto:br...@AL...] >>Sent: Thursday, September 11, 2003 10:12 PM >>To: Rahul Gopinath >>Cc: li...@re... >>Subject: Re: [Lispweb] mod_lisp and Apache2 >> >> >>Rahul Gopinath <rgo...@qu...> writes: >> >>> This is my first post here,I work with c++ & java for a living , but >>>likes to hack scheme for fun.... >> >>Speaking of Scheme, Java and web development, you should look at BRL if >>you haven't already: >> >>http://brl.codesimply.net/ >>_______________________________________________ >>Lispweb mailing list >>Li...@re... >>http://www.red-bean.com/mailman/listinfo/lispweb > > > >------------------------------------------------------- >This sf.net email is sponsored by:ThinkGeek >Welcome to geek heaven. >http://thinkgeek.com/sf >_______________________________________________ >Jscheme-user mailing list >Jsc...@li... >https://lists.sourceforge.net/lists/listinfo/jscheme-user |
From: Timothy J. H. <ti...@cs...> - 2003-09-11 17:42:46
|
Perhaps we should provide a little better support for CLOS and sorting. I don't think there is a "sort" in the elf or jlib packages. It might be worthwhile providing toplevel links on the Jscheme webpage to useful Scheme packages ported to Jscheme (e.g. CLOS, SLIB, SRFI's, user-developed packages...) ---Tim--- Begin forwarded message: > From: Rahul Gopinath <rgo...@qu...> > Date: Thu Sep 11, 2003 12:51:57 PM US/Eastern > To: Bruce Lewis <br...@al...> > Cc: li...@re... > Subject: RE: [Lispweb] mod_lisp and Apache2 > > thanks, > brl and kawa are really good but my personal favorite is > jscheme(webapp) :) Especially the java dot is very convenient for > accessing > other java thingies.. > > > ps: > I dont know if every one knows this, but since I couldn't find any > reference > to it any where,.. > tiny-clos works fine with jscheme with a little help. The only thing > needed to do was to define the sort function > (Jscheme provides a sort function implemented in java, but gives > problems, > using another sort worked out to be ok) > > > -----Original Message----- > From: Bruce Lewis [mailto:br...@AL...] > Sent: Thursday, September 11, 2003 10:12 PM > To: Rahul Gopinath > Cc: li...@re... > Subject: Re: [Lispweb] mod_lisp and Apache2 > > > Rahul Gopinath <rgo...@qu...> writes: > >> This is my first post here,I work with c++ & java for a living , but >> likes to hack scheme for fun.... > > Speaking of Scheme, Java and web development, you should look at BRL if > you haven't already: > > http://brl.codesimply.net/ > _______________________________________________ > Lispweb mailing list > Li...@re... > http://www.red-bean.com/mailman/listinfo/lispweb |
From: Ken A. <kan...@bb...> - 2003-09-10 21:51:25
|
Some of my friends have been discussing these * considered evil articles: http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox_p.html http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox_p.html I don't think they're worth discussing on this list. However, I decided to analyze Java to get some insights, so i've enclosed the code i used. It's basically stream of conciousness. It's a good example of how you can use JScheme to analyze a lot of data. It uses a macro: (define-macro (_ . body) `(lambda (_) ,@body)) I think i got this idea from Paul Graham's Arc language. It is great for when you're mapping over stuff and it captures things like currying: (_ (> _ 3)) - where predicates come form. composing: (_ (length (friends _)) k |
From: Ken A. <kan...@bb...> - 2003-09-09 00:34:21
|
This is very cool! And a Lisp application! I don't understand their algorithm, but they seem to use Turing Machines! It sounds like moderinzing the rule language would help! k At 09:04 PM 9/6/2003 -0400, you wrote: >Hi Ken, > >If you haven't met Carl yet, I hope you do some day. If you've ever used the Orbitz travel service, you've likely used his software. Now he's made a presentation of how it all works: > >http://www.demarcken.org/carl/papers/ITA-software-travel-complexity/ ITA-software-travel-complexity.pdf > >Geoffrey > >Begin forwarded message: > >>From: Carl de Marcken <ca...@it...> >>Date: Sat Sep 6, 2003 7:33:58 PM US/Eastern >>To: Geoffrey Knauth <ge...@kn...> >>Subject: Re: Travel planning complexity >> >>i have no problems with forwarding; hope life is good. >> >>Geoffrey Knauth wrote: >> >>>Hi Carl, >>>That looks really interesting, thank you very much! I look forward to reading it in more depth. >>>Do you mind if I forward a copy to Ken Anderson at BBN? Or you could send him one yourself at kan...@bb... and mention my name. I'm sure he would love to see this too. Speaking of which, if you haven't given a talk at BBN about your work, maybe one of these days you should. They would eat it up. >>>All the best, >>>Geoffrey >>>-- >>>Geoffrey S. Knauth | http://knauth.org/gsk >>>On Saturday, September 6, 2003, at 05:06 AM, Carl de Marcken wrote: >>>>Hello, >>>> >>>>If you're getting this, it means you either once asked me for slides from my talks on the computational complexity of air travel planning, or for one reason or another I thought you'd be interested. After far too many years of procrastination I've put a set of annotated slides on the web. >>>> >>>>PDF (recommended): >>>> >>>>http://www.demarcken.org/carl/papers/ITA-software-travel-complexity/ ITA-software-travel-complexity.pdf >>>> >>>>HTML: >>>> >>>>http://www.demarcken.org/carl/papers/ITA-software-travel-complexity/ ITA-software-travel-complexity.html >>>> >>>>Carl de Marcken |
From: Michael H. <mw...@cs...> - 2003-09-06 14:37:13
|
On Fri, 2003-09-05 at 22:39, David Chase wrote: > > I don't view clearing of pointers as equivalent to explicit freeing: > > The former is type-safe, while the latter isn't. I don't think you > > can avoid pointer clearing completely if you care about space usage: > > This is not entirely true. You can use typed pools to recycle objects. A disadvantage of typed pools is that they don't prevent dangling pointers. That is, while there is no danger of using an object in a type-incorrect way (e.g. confusing an int for a pointer), you can still prematurely free the object (return it to the pool) and then re-allocate it to another part of the program, leading to two parts of the program treating the same memory as if it were two different objects (albeit of the same type). There is recent work on type-safe approaches to the more traditional free(), which prevent dangling pointers entirely. This work typically builds on a notion of linear (non-aliased) pointers. We have recently integrated support for manual, per-object freeing into Cyclone, and found that it can improve the space usage and throughput of at least two server applications, relative to the BDW GC. The cost is that programmers must use particular, checkable idioms, but our experience has been that this is not too onerous. See http://www.cs.umd.edu/Library/TRs/CS-TR-4514/CS-TR-4514.pdf for more details. Mike |
From: David C. <dr2...@ma...> - 2003-09-06 02:39:29
|
> I don't view clearing of pointers as equivalent to explicit freeing: > The former is type-safe, while the latter isn't. I don't think you > can avoid pointer clearing completely if you care about space usage: This is not entirely true. You can use typed pools to recycle objects. In my experience, if you can recycle at least moderately complex objects, this is faster than garbage collection. It's not fun, but it is typesafe, and the measurements were done carefully and run on realistic examples for a realistic application (caveat -- this was a uniprocessor, and the synchronization on the storage pools would be more expensive on a multiprocessor). Note that this result is not entirely applicable to the JScheme platform. The obvious candidates for recycling in a pool (e.g., cons cells) are not complex enough. David Chase |
From: Boehm, H. <han...@hp...> - 2003-09-05 23:12:59
|
Whether or not it makes sense to clear pointers in objects that are about to be dropped unfortunately depends on the collector. It sometimes makes sense for a conservative collector. (See my POPL 2002 paper for details. You really only want to do this to avoid unbounded backward paths in the data structure, i.e. in very rare cases.) Similarly it may make sense for a generational collector, especially when you are dropping a very old object that refers to young objects. In this case, too, it really only makes sense for pointers that are likely to reference large or growing data structures, i.e. very rarely. I don't view clearing of pointers as equivalent to explicit freeing: The former is type-safe, while the latter isn't. I don't think you can avoid pointer clearing completely if you care about space usage: for (...) {x = make_huge_tree();} requires twice the space of for (...) {x = make_huge_tree(); x = null;} if you assume a naive compiler. But it's clearly something you want to do only rarely. I would recommend against explicit forcing of GCs, at least given the Java interface. Hints are probably useful. But before you insist on a GC, you need to make sure that enough allocation has happened to justify it. Typically it's hard for any one part of the application to know that, though the GC itself does. I think I've heard at least as many anecdotes about the performance dropping through the floor due to overly frequent collections than about really successful applications of this technique. Typically pause time isn't everything. Hans > -----Original Message----- > From: Ken Anderson [mailto:kan...@bb...] > Sent: Friday, September 05, 2003 3:34 PM > To: Pekka P. Pirinen > Cc: gc...@ie...; Jscheme Users > Subject: Re: [gclist] Java Developer's Journal GC advice > > > I agree with you that the advice in this article is suspect. > > I think the nullify() method is misdirected. > If you have an object that you need to keep around that has a > field full of an object you no longer need, you should set > the field to null so the GC can GC the fields value. > > Nulling all the fields of an object you are about to free > can't help the GC, it will find what's free anyway. It's > just needless work. > > k > > At 05:24 PM 9/5/2003 +0100, Pekka P. Pirinen wrote: > >I bought Java Developer's Journal last week (Volume 8 Issue 7) to see > >what's going on in the Java world and because it had a GC > cover story: > >"Avoid Bothersome Garbage Collection Pauses" (by some people at > >Lockheed-Martin: Lillian Andres, Chris Cargado, M. Valerie > Underwood). > >Turns out they dole out some rather simplistic advice: incremental GC > >is dismissed with "timimg [...] may be inopportune", and they > >esssentially recommend manual "freeing" (by setting pointers to null) > >and explicit scheduling (System.gc) by the application. > > > >They summarize their advice in three steps: > > > > 1. Set all objects that are no longer in use to null and make sure > > they're not left within some collection. "Nullify" objects. > > 2. Force garbage collection to occur both: > > * After some major memory-intense operation (e.g., scaling an > > image) > > * At a periodic rate that provides the best performance for your > > application > > 3. Save long-lived data in a persistent data area if > feasible or in a > > pool of data and use the appropriate garbage collector > algorithm. > > > >The last one is good advice. So is forcing GCs after some > >memory-intense operations, but explicitly calling System.gc at > >intervals of X ms doesn't sound like an optimal way of tuning GC. I > >don't have experience on this, but surely JVM GCs have tuning > >parameters that give better behaviour? > > > >Their example for nullifying shows a method that recursively sets all > >the object references. This has bad caching behaviour and > >reintroduces half the problems of manual memory management, but they > >don't even mention that. > >-- > >Pekka P. Pirinen > >A programming language is low level when its programs > require attention to > >the irrelevant. - Alan Perlis > |
From: Ken A. <kan...@bb...> - 2003-09-05 22:34:28
|
I agree with you that the advice in this article is suspect. I think the nullify() method is misdirected. If you have an object that you need to keep around that has a field full of an object you no longer need, you should set the field to null so the GC can GC the fields value. Nulling all the fields of an object you are about to free can't help the GC, it will find what's free anyway. It's just needless work. k At 05:24 PM 9/5/2003 +0100, Pekka P. Pirinen wrote: >I bought Java Developer's Journal last week (Volume 8 Issue 7) to see >what's going on in the Java world and because it had a GC cover story: >"Avoid Bothersome Garbage Collection Pauses" (by some people at >Lockheed-Martin: Lillian Andres, Chris Cargado, M. Valerie Underwood). >Turns out they dole out some rather simplistic advice: incremental GC >is dismissed with "timimg [...] may be inopportune", and they >esssentially recommend manual "freeing" (by setting pointers to null) >and explicit scheduling (System.gc) by the application. > >They summarize their advice in three steps: > > 1. Set all objects that are no longer in use to null and make sure > they're not left within some collection. "Nullify" objects. > 2. Force garbage collection to occur both: > * After some major memory-intense operation (e.g., scaling an > image) > * At a periodic rate that provides the best performance for your > application > 3. Save long-lived data in a persistent data area if feasible or in a > pool of data and use the appropriate garbage collector algorithm. > >The last one is good advice. So is forcing GCs after some >memory-intense operations, but explicitly calling System.gc at >intervals of X ms doesn't sound like an optimal way of tuning GC. I >don't have experience on this, but surely JVM GCs have tuning >parameters that give better behaviour? > >Their example for nullifying shows a method that recursively sets all >the object references. This has bad caching behaviour and >reintroduces half the problems of manual memory management, but they >don't even mention that. >-- >Pekka P. Pirinen >A programming language is low level when its programs require attention to >the irrelevant. - Alan Perlis |
From: Ken A. <kan...@bb...> - 2003-08-27 21:45:10
|
Tim, I agree this looks like an interesting approach, though i have not looked at it in detail yet. I've been thinking along the lines of Logo Turtle Geometry. The turtle could draw each piece given a starting orientation using a sequence of primitives like I - in tab O - outTab R - right turn L - Left turn More details later if they warrent discussion. k At 11:52 AM 8/27/2003 -0400, Geoffrey Knauth wrote: >On Monday, August 25, 2003, at 01:38 PM, Ken Anderson wrote: >>Here's a Lisp programming contest: >>http://www.ravenbrook.com/doc/2003/05/28/contest/ > >On Tuesday, Aug 26, 2003, at 13:20 US/Eastern, Timothy John Hickey wrote: >>For each of the 64 spaces on the board we would keep track of which particular puzzle pieces could go there. >>This task is simplified if we consider each orientation of the 13 pieces as a different piece. (So there are now >>13*4 = 52 different pieces, and a constraint that exactly one piece from each group of 4 must be used). > >That's a really neat idea. It almost makes the problem seem easy. You must be a genius. (My boss 16 years ago said that genius was not about wattage, it was the ability to look at something from a slightly different perspective and see something others could not.) > >Geoffrey >-- >Geoffrey S. Knauth | http://knauth.org/gsk > > > >------------------------------------------------------- >This sf.net email is sponsored by:ThinkGeek >Welcome to geek heaven. >http://thinkgeek.com/sf >_______________________________________________ >Jscheme-user mailing list >Jsc...@li... >https://lists.sourceforge.net/lists/listinfo/jscheme-user |
From: Geoffrey K. <ge...@kn...> - 2003-08-27 15:52:48
|
On Monday, August 25, 2003, at 01:38 PM, Ken Anderson wrote: > Here's a Lisp programming contest: > http://www.ravenbrook.com/doc/2003/05/28/contest/ On Tuesday, Aug 26, 2003, at 13:20 US/Eastern, Timothy John Hickey wrote: > For each of the 64 spaces on the board we would keep track of which > particular puzzle pieces could go there. > This task is simplified if we consider each orientation of the 13 > pieces as a different piece. (So there are now > 13*4 = 52 different pieces, and a constraint that exactly one piece > from each group of 4 must be used). That's a really neat idea. It almost makes the problem seem easy. You must be a genius. (My boss 16 years ago said that genius was not about wattage, it was the ability to look at something from a slightly different perspective and see something others could not.) Geoffrey -- Geoffrey S. Knauth | http://knauth.org/gsk |
From: Michael R H. <bu...@zc...> - 2003-08-27 15:39:35
|
The JScheme plug-in is finally in a state where I think it might actually be of some value to some people, so I'm sending the word out... For those not familiar with Eclipse, it's an integration platform for development tools which comes with a fairly complete set of java development components. http://eclipse.org The JScheme plugin (currently) does two things: it colorizes (imperfectly) JScheme files that end with '.scm', and it allows the user to run JScheme files just like java code. (for those familiar with Eclipse, you click the 'running man' icon then select Run As/JScheme Application). If the jscheme file is in a Java project, it will gain the classpath of that project automatically and configurably. http://zclipse.org/projects/jscheme (sourceforge's web servers have been spotty for the past, so expect timeouts when connecting to zclipse.org) There are some screenshots at http://zclipse.org/projects/jscheme/screenshots.html If I've enticed you to try it out, here's how to get it going: 0) Get Eclipse from http://eclipse.org (version 2.1.1 is the best bet) 1) Run Eclipse (it should 'just work' if you have a java 1.3 runtime setup) 2) Select Help/Software Updates from the menubar 3) in the lower left, a 'Feature Updates' view should appear, right/command click on 'Sites to Visit' and select 'New/Site Bookmark' 4) In the popup, enter Name: ZClipse.org URL: http://zclipse.org/updates/ and click finish 5) ZClipse.org should show up in the 'Feature Updates' view. Expand its subtree (if it times out, just retry) 6) Expand the 'JScheme Plugin 0.1.5' subtree under ZClipse.org, and select 'JScheme Eclipse Plug-in 0.1.5' 7) Once the 'preview' pane populates with the info on the JScheme Eclipse Plug-in, scroll to the bottom and click 'Install Now' 8) Then just follow the dialogs, and allow the unsigned application to install Wow. That seems pretty complicated, but when you're doing it, it's actually pretty easy. As an added benefit of doing it this way, you will now get the updates 'for free', just by selecting 'help/software updates/new updates' from the menubar. There's also a manual install option for those that prefer to unzip their plugins to the plugins directory. Just get the zip linked off of http://sourceforge.net/projects/zclipse mike -- Michael R Head <bu...@zc...> ZClipse -- OpenSource Eclipse plugins |