You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
(39) |
May
(41) |
Jun
(20) |
Jul
(8) |
Aug
(15) |
Sep
(18) |
Oct
(15) |
Nov
(6) |
Dec
(48) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(28) |
Feb
(6) |
Mar
(23) |
Apr
(13) |
May
(3) |
Jun
(12) |
Jul
(26) |
Aug
(1) |
Sep
|
Oct
(14) |
Nov
(2) |
Dec
(18) |
2004 |
Jan
(10) |
Feb
(5) |
Mar
(24) |
Apr
(7) |
May
(79) |
Jun
(25) |
Jul
|
Aug
(2) |
Sep
(11) |
Oct
(5) |
Nov
|
Dec
(1) |
2005 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2006 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
(6) |
Oct
|
Nov
|
Dec
|
From: Timothy J. H. <tim...@us...> - 2002-05-01 02:38:50
|
Update of /cvsroot/jscheme/jscheme In directory usw-pr-cvs1:/tmp/cvs-serv29096 Modified Files: mainwebpage.html Log Message: revised webpage/documentation |
From: Timothy J. H. <tim...@us...> - 2002-05-01 02:19:42
|
Update of /cvsroot/jscheme/jscheme/src/jlib In directory usw-pr-cvs1:/tmp/cvs-serv19233 Modified Files: Module.scm Log Message: revised Module macro, still testing |
From: Ken A. <kan...@us...> - 2002-04-29 22:39:52
|
Update of /cvsroot/jscheme/jscheme/src/jsint In directory usw-pr-cvs1:/tmp/cvs-serv10247 Modified Files: Import.java Log Message: Bug from Bill Hale <ha...@tu...>. Import.getClassLoader() can return null in older JVM's. |
From: Ken A. <kan...@us...> - 2002-04-29 17:09:02
|
Update of /cvsroot/jscheme/jscheme/src/jscheme In directory usw-pr-cvs1:/tmp/cvs-serv20698 Modified Files: JS.java Log Message: Use SchemeProcedure and SchemePair where you can. |
From: Timothy J. H. <tim...@us...> - 2002-04-29 13:10:57
|
Update of /cvsroot/jscheme/jscheme/src/jlib In directory usw-pr-cvs1:/tmp/cvs-serv9801 Added Files: Module.scm ModuleTest.scm Log Message: simple macro to implement modules |
From: Timothy J. H. <tim...@us...> - 2002-04-29 03:09:34
|
Update of /cvsroot/jscheme/jscheme/doc In directory usw-pr-cvs1:/tmp/cvs-serv20976a/doc Modified Files: javadot.html Log Message: fixed broken link |
From: Timothy J. H. <tim...@us...> - 2002-04-28 21:32:59
|
Update of /cvsroot/jscheme/jscheme/src/jlib/demo In directory usw-pr-cvs1:/tmp/cvs-serv21433 Added Files: jschemeint.scm Log Message: added an R4RS interpreter with full call/cc |
From: Ken A. <kan...@us...> - 2002-04-28 21:30:30
|
Update of /cvsroot/jscheme/jscheme/src/build In directory usw-pr-cvs1:/tmp/cvs-serv26756/src/build Modified Files: jscheme-bootstrap.scm Log Message: Generate applet.jar and jscheme.jar |
From: Timothy J. H. <tim...@us...> - 2002-04-28 19:45:31
|
Update of /cvsroot/jscheme/jscheme/src/jlib/demo In directory usw-pr-cvs1:/tmp/cvs-serv22284 Modified Files: jschemeint.scm Log Message: doubled full call/cc interpreter speed by specializing the code for apply |
From: Timothy J. H. <tim...@us...> - 2002-04-28 19:44:51
|
Update of /cvsroot/jscheme/jscheme/src/jlib/demo In directory usw-pr-cvs1:/tmp/cvs-serv16643 Modified Files: jschemeint.scm Log Message: used same front end as jsint/compiler/Compiler.scm for the interpreter |
From: Ken A. <kan...@us...> - 2002-04-28 19:39:25
|
Update of /cvsroot/jscheme/jscheme/src/webapp/jscheme/WEB-INF/scheme In directory usw-pr-cvs1:/tmp/cvs-serv26756/src/webapp/jscheme/WEB-INF/scheme Modified Files: snlp.sss Log Message: Generate applet.jar and jscheme.jar |
From: Ken A. <kan...@bb...> - 2002-04-28 19:31:38
|
I've read that JDK 1.4 invoking a method through reflection is much faster than it was. I also had never used Tim's compiler. So, i thought i'd try it by writing a simple performance benchmark. The bottom line is JDK 1.4.0 and jsint.Compile are a win, seperately or together. Here's the benchmark: (package performance) (import "java.lang.Math") (import "java.lang.System") (define (f x) (if (= x 0) 0 (f (- x 1)))) (define (g x) (if (= x 0) 0 (g (abs (- x 1))))) (define (h x) (if (= x 0) 0 (h (Math.abs (- x 1))))) ; (define time ; (macro (exp . rest) `(first (second (time-call (lambda () ,exp) . ,rest))))) (define (minimum xs) (foldL (cdr xs) (lambda (x so-far) (if (< x so-far) x so-far)) (car xs))) (define (times name f n sofar) (if (= n 0) (minimum sofar) (let ((result (first (second (time-call (lambda () (f 1000000)) 1)))) (version (System.getProperty "java.version"))) (display {[version],[name],[result]\n}) (times name f (- n 1) (cons result sofar))))) (define (main args) (let* ((f (times 'f f 5 '())) (g (times 'g g 5 '())) (h (times 'h h 5 '())) (abs (- g f)) (Mabs (- h f))) (display {[(System.getProperty "java.version")],[f],[g],[h],[abs],[Mabs]\n}) )) The output it produced on my machine is (header added): compiled,JVM,f,g,h,abs,Mabs no,1.3.1,6770,8202,19399,1432,12629 yes,1.3.1,4887,6079,6179,1192,1292 no,1.4.0,4206,5468,10876,1262,6670 yes,1.4.0,2474,3275,3364,801,890 THere are 3 functions, f, g, and h. (f) is the simplest loop you can write in Jscheme. (g) adds a call to the primitive (abs) and h adds a generic function call to (Math.abs). I've enclosed a spreadsheet with this information and some additional computations. There is a performance difference in the interpreter between primitive procedures, and generic methods which is 8.8 in JDK 1.3.1, but only 5.2 in JDK 1.4.0. The compiler turns generic functions into Procedures, so the times are similar when compiled. So, going to JDK 1.4 is definitely a good thing, and compiling your jscheme is also a good thing. Also, reasonably fast scheme could be written in Jscheme and then compiled. k |
From: Timothy H. <tim...@ma...> - 2002-04-27 17:36:43
|
I just checked in a Jscheme interpreter, it is available through CVS at jscheme/src/jscheme/demo/jschemeint.scm This interpreter handles full call/cc as well as tryCatch and throw and the javadot notation. This is very new code and has not been thoroughly tested yet. In particular, it does not correctly self-interpret. It is based on Marc Feeley's Scheme interpreter in that it compiles expressions to closures, but each closure has three parameters: F -- the local and global environments, FC - the failure continuation (called on any errors that are thrown) SC - the success continuation The expressions are compiled using CPS. The three key procedures used to implement this are the following: > (define (GENCODEcallcc BODY) > (lambda (F FC SC) > (BODY F FC (lambda(k) (k SC))))) > > (define (GENCODEtryCatch BODY ELSE) > (lambda (F FC SC) > (BODY F (lambda (e) (ELSE F FC (lambda(k) (SC (k e))))) SC))) > > (define (GENCODEthrow BODY) > (lambda (F FC SC) > (BODY F FC (lambda(k) (FC k))))) > It doesn't yet pass the jscheme/SchemeTests.scm test, but it does let you play with full call/cc, e.g. > jscheme>> (+ 10 (call/cc (lambda(k) (set! k1 k) (k 15)))) > --> 25 > jscheme>> (k1 30) > --> 40 and it also has tryCatch and throw > jscheme >> (tryCatch (+ 5 (throw 'whoa)) (lambda(e) (list 'caught e))) > > --> (caught whoa) > jscheme >> (tryCatch (+ 5 (/ 1 0)) (lambda(e) (list 'error-is e))) > > --> (error-is java.lang.ArithmeticException: / by zero) > jscheme >> I haven't yet explored the possible interactions between call/cc, tryCatch, and threads. I also haven't implemented the dynamic-wind stuff or tryCatchFinally. Finally, this interpreter is 50 times slower that the normal Scheme interpreter. I think I can speed this up to about 5-10 times slower, but at least if someone really needs call/cc they can have access to it within Jscheme. I wonder if we can call ourselves a "real" scheme yet.... We're getting closer.... ---Tim--- |
From: Ken A. <kan...@bb...> - 2002-04-25 20:26:47
|
At 03:43 PM 4/25/2002, Clinton Hyde wrote: >got an error trying to list the jar: > >bash-2.02$ //d/jdk1.3/bin/jar.exe tvf ../lib/silk/jscheme.jar > 0 Sat Apr 20 08:17:44 EDT 2002 META-INF/ > 72 Sat Apr 20 08:17:44 EDT 2002 META-INF/MANIFEST.MF > 25 Sat Apr 06 11:02:50 EST 2002 jsint/manifest >java.util.zip.ZipException: incomplete literal/length tree > at > java.util.zip.InflaterInputStream.read(InflaterInputStream.java:139) > > at java.util.zip.ZipInputStream.read(ZipInputStream.java:142) > at java.util.zip.ZipInputStream.closeEntry(ZipInputStream.java:93) > at sun.tools.jar.Main.list(Main.java:744) > at sun.tools.jar.Main.run(Main.java:193) > at sun.tools.jar.Main.main(Main.java:904) > > >the online doc is incomplete in the area I need right now...I've just >d/l'd the >latest jar (obviously), things have changed, I need to find out what is >required to embed JS in java, but this isn't described anywhere. > >I was doing fine until I needed a fourth arg in a call, the online doc >says use >"apply" instead of "call", so that's what I'm trying to do. Actually, the documentation is wrong. You can currently call up to 5 arguments. >but it looks like the package-path has changed? and other things as well... When we moved from silk.sourceforge.net to jscheme.sourceforge.net we reorganized the directory layout and also changed the silk package to jsint - jscheme internal. Do you build jscheme from CVS? k |
From: Ken A. <kan...@us...> - 2002-04-24 02:59:09
|
Update of /cvsroot/jscheme/jscheme/src/build In directory usw-pr-cvs1:/tmp/cvs-serv8424 Removed Files: compiler-bootstrap.scm Log Message: Removed. |
From: Ken A. <kan...@bb...> - 2002-04-23 20:29:19
|
At 02:59 PM 4/23/2002, you wrote: >is there a Scheme equivalent to CL's (return) ? > >I have loops I want to terminate early (i.e., at a certain condition being >met), where I'd prefer for simplicity to use DOLIST rather than DO... > >is that appropriate in scheme? Good question. I keep meaning to write a tutorial for Scheme for Lispers. The general way to return something is with call/cc (call-with-current-continuation) > (define (the-first p xs) (call/cc (lambda (return) (for-each* (lambda (x) (if (p x) (return x))) xs)))) {jsint.Closure the-first[2] (p xs)} > (the-first odd? #(2 3 4 5 6)) 3 > Here's a version of dolist that lets you use return: (define-macro (dolist iters . body) ;; Like Common Lisp's (dolist). (let ((var (car iters)) (items (cadr iters)) (result (or (and (pair? (cddr iters)) (caddr iters)) '()))) `(call/cc (lambda (return) (let <loop> ((.items. ,items)) (if (null? .items.) ,result (let ((,var (car .items.))) ,@body (<loop> (cdr .items.))))))))) > {jsint.Macro ??[1,n] (iters . body)} > (dolist (x '(2 3 4 5 6)) (if (odd? x) (return x))) 3 > |
From: Ken A. <kan...@bb...> - 2002-04-23 17:13:32
|
Yes, some examples of what you find confusing would help. I do find that i get confused occasionally too. While we provide information about each stack frame things can get confusing if your deep in mapping functions or something, largely because closures print like: {jsint.Closure ??[1] (x)} Also, (let* ...) is turned into nested lambeda. I've started work on an unanalyzer which takes the compiled code and turns it back more toward the original scheme. Would that help? At 08:58 AM 4/23/2002, you wrote: >is there some way to make the JScheme error-backtrace a bit more explicit >about >exactly what's wrong? I generally don't get a message which I >understand...sometimes the messages are good, but sometimes the complaint >is so >vague as to be barely useful > >what would be better: well, something like the Allegro CL error output: >exactly >which fn-call had a problem, and maybe the argument that was bad or >something...I'd >have to gather examples to show exactly what I mean. > > -- clint |
From: Ken A. <kan...@us...> - 2002-04-23 17:03:51
|
Update of /cvsroot/jscheme/jscheme/src/jscheme In directory usw-pr-cvs1:/tmp/cvs-serv32342a/src/jscheme Modified Files: REPL.java Log Message: In REPL, mention enough classes so jscheme can build itself with the same two line bootstrap script. |
From: Ken A. <kan...@us...> - 2002-04-23 17:03:51
|
Update of /cvsroot/jscheme/jscheme/src/jsint In directory usw-pr-cvs1:/tmp/cvs-serv32342a/src/jsint Modified Files: Import.java Listener11swing.java listener.scm Log Message: In REPL, mention enough classes so jscheme can build itself with the same two line bootstrap script. |
From: Ken A. <kan...@us...> - 2002-04-23 17:03:50
|
Update of /cvsroot/jscheme/jscheme/src/build In directory usw-pr-cvs1:/tmp/cvs-serv32342a/src/build Modified Files: bootstrap bootstrap.bat jscheme-bootstrap.scm Log Message: In REPL, mention enough classes so jscheme can build itself with the same two line bootstrap script. |
From: Ken A. <kan...@us...> - 2002-04-23 15:01:01
|
Update of /cvsroot/jscheme/jscheme/src/jsint In directory usw-pr-cvs1:/tmp/cvs-serv20980/src/jsint Modified Files: listener.scm primitives.scm Log Message: Move filter crack separate and flatten, which i use all the time, to iterate.scm Redo how jscheme builds itself. |
From: Ken A. <kan...@us...> - 2002-04-23 15:00:59
|
Update of /cvsroot/jscheme/jscheme/src/build In directory usw-pr-cvs1:/tmp/cvs-serv20980/src/build Modified Files: bootstrap bootstrap.bat bootstrap.scm compile.scm compiler-bootstrap.scm jscheme-bootstrap.scm Log Message: Move filter crack separate and flatten, which i use all the time, to iterate.scm Redo how jscheme builds itself. |
From: Ken A. <kan...@us...> - 2002-04-23 15:00:59
|
Update of /cvsroot/jscheme/jscheme/src/jlib/demo In directory usw-pr-cvs1:/tmp/cvs-serv20980/src/jlib/demo Modified Files: ClassBrowser.scm Log Message: Move filter crack separate and flatten, which i use all the time, to iterate.scm Redo how jscheme builds itself. |
From: Ken A. <kan...@us...> - 2002-04-23 15:00:59
|
Update of /cvsroot/jscheme/jscheme/src/elf In directory usw-pr-cvs1:/tmp/cvs-serv20980/src/elf Modified Files: classpath.scm html-gen.scm iterate.scm util.scm Log Message: Move filter crack separate and flatten, which i use all the time, to iterate.scm Redo how jscheme builds itself. |
From: Ken A. <kan...@us...> - 2002-04-22 17:22:13
|
Update of /cvsroot/jscheme/jscheme/lib In directory usw-pr-cvs1:/tmp/cvs-serv17857 Modified Files: servlet.jar Log Message: Add -kb and new servlet.jar from Tomcat. |