sablevm-user Mailing List for SableVM (Page 8)
Brought to you by:
egagnon
You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(30) |
Aug
(13) |
Sep
|
Oct
|
Nov
(11) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(5) |
Dec
(2) |
2002 |
Jan
(2) |
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(18) |
Sep
|
Oct
|
Nov
|
Dec
(5) |
2003 |
Jan
(12) |
Feb
(7) |
Mar
(19) |
Apr
(1) |
May
(5) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2004 |
Jan
|
Feb
|
Mar
(12) |
Apr
(16) |
May
(6) |
Jun
(6) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Etienne M. G. <eg...@j-...> - 2000-07-15 13:21:06
|
Brent Fulgham wrote: > Well, and that's really the downside. As a language base, the VM would > be fine I suppose even if it had some non-standard bytecodes defined. > However, the infrastructure required to implement closures might provide > some separate benefit for Java itself (perhaps through providing a more > efficient means of handling certain functions). But this is not based > on anything more than my musings right now. It is worth trying. If there's something I have learned, it is that you don't really know before you have tried something. Sometimes, you get unexpected results (which can be good or bad news:-). > > > Fine. I won't be able to do much for the time being anyway. I'm trying > to make my way through a bunch of reference material I've accumulated > recently and I want to get that done soon. I'm actually looking forward > to reading the VM code you've produced as a learning experience. > > As I said, VM hacking is not my forte (yet), but implementing some sablepath > classes and native glue should be doable. It should make for some nice small > bits that could be implemented piece by piece. Let me know what you are > thinking regarding what sequence things should be done in, etc. In fact, you can simply export CFLAG='-Werror -O0 -ggdb' then try to "make clean; make" sablepath. You will discover that there are many warnings. Many of these seem suspicious, and there is certainly some way of writing the code such that no warning is issued (other than turning off warning options;-). This could be a starting point, if you like. Mainly, you can look at *.c files under sablepath's native/ directory and fix any problem you find. You should probably find the book "The Java Native Interface", ISBN 0-201-32577-2. It is the definitive reference for the JNI. It also contains programming tips and tells you about pitfalls. Interesting reading. > Oh, I have a Sourceforge login, by the way, "bfulgham", in case you > wanted to add me to the project at some point. Done. Have fun! Etienne -- ---------------------------------------------------------------------- Etienne M. Gagnon, M.Sc. e-mail: eg...@j-... Author of SableVM: http://www.sablevm.org/ ---------------------------------------------------------------------- |
From: Brent F. <bfu...@de...> - 2000-07-15 05:25:38
|
On Fri, Jul 14, 2000 at 11:15:08PM -0400, Etienne M. Gagnon wrote: > Brent Fulgham wrote: > > > Mainly, what is missing is the > > > native implementation of VM specific classes required by > > > classpath/sablepath. ... > > Understood. I wonder if any of the comparable classes used in Japhar > > or Kaffe could be used as a starting point... > > Not really. That is the catch. These thigns are really VM dependent. > As SableVM's internal object layout is quite different from these vms, I > must re-implement them. > Well, I suppose that makes sense after all. But of course the bright side is that it provides an opportunity to do things *right* :-) > > At any rate, I learned through my reading that certain functional > > programming features (like closures) are hard to implement > > efficiently on top of Java. So, my question. > > Yep. The Java vm is pretty much tuned to execute Java code. You would > probably need to rethink part of the vm to get native support for > closures. > Well, and that's really the downside. As a language base, the VM would be fine I suppose even if it had some non-standard bytecodes defined. However, the infrastructure required to implement closures might provide some separate benefit for Java itself (perhaps through providing a more efficient means of handling certain functions). But this is not based on anything more than my musings right now. > greatest help areas would be in the sablevm/sablepath integration. The > native code in sablepath seems to be in great need of improvement. But, > if you are interested in vm specific coding instead, I will also need > help (to be defined;-). > Fine. I won't be able to do much for the time being anyway. I'm trying to make my way through a bunch of reference material I've accumulated recently and I want to get that done soon. I'm actually looking forward to reading the VM code you've produced as a learning experience. As I said, VM hacking is not my forte (yet), but implementing some sablepath classes and native glue should be doable. It should make for some nice small bits that could be implemented piece by piece. Let me know what you are thinking regarding what sequence things should be done in, etc. Oh, I have a Sourceforge login, by the way, "bfulgham", in case you wanted to add me to the project at some point. > I use the official vm specification (version 2), as reference for the > implementation. I have the book, but you can find it online at: > http://java.sun.com/docs/books/vmspec/ > Great. Sounds like a lot of fun! -Brent |
From: Etienne M. G. <eg...@j-...> - 2000-07-15 03:15:19
|
Brent Fulgham wrote: > > Mainly, what is missing is the > > native implementation of VM specific classes required by > > classpath/sablepath. ... > Understood. I wonder if any of the comparable classes used in Japhar > or Kaffe could be used as a starting point... Not really. That is the catch. These thigns are really VM dependent. As SableVM's internal object layout is quite different from these vms, I must re-implement them. > ... You may be familiar with Kawa, which is a Scheme > implementation on a JVM (or JPython for that matter). Yeah. I used some Kawa/Scheme class files to test my type inference algorithm (the paper I presented). > My requirements are: > * Open Source > * Efficient > * Embeddable. This VM might be OK for your needs. > At any rate, I learned through my reading that certain functional > programming features (like closures) are hard to implement > efficiently on top of Java. So, my question. Yep. The Java vm is pretty much tuned to execute Java code. You would probably need to rethink part of the vm to get native support for closures. > At any rate, I'm not much of a compiler hacker, but I do happen > to have a copy of the JVM book (O'Reilly's) now, so maybe I > can be of some help? ;-) Of course! It's still a little early, as I need to get a somewhat functional vm before splitting tasks among people, but you can start looking a little around the code, to get a feel of it. One of the greatest help areas would be in the sablevm/sablepath integration. The native code in sablepath seems to be in great need of improvement. But, if you are interested in vm specific coding instead, I will also need help (to be defined;-). I use the official vm specification (version 2), as reference for the implementation. I have the book, but you can find it online at: http://java.sun.com/docs/books/vmspec/ Have fun! Etienne -- ---------------------------------------------------------------------- Etienne M. Gagnon, M.Sc. e-mail: eg...@j-... Author of SableVM: http://www.sablevm.org/ ---------------------------------------------------------------------- |
From: Brent F. <bfu...@de...> - 2000-07-15 02:08:45
|
On Fri, Jul 14, 2000 at 05:48:40PM -0400, Etienne M. Gagnon wrote: > SableVM is not yet able to run programs (as you may have discovered > already), but it is quite close to it. Mainly, what is missing is the > native implementation of VM specific classes required by > classpath/sablepath. (System, Runtime, Thread, etc.) Also, there are a > few missing bytecodes (wide, multianewarray,...). So, you may expect to > be able to run simple benchmarks/toy programs soon. > Understood. I wonder if any of the comparable classes used in Japhar or Kaffe could be used as a starting point... > In the last 3 weeks, I wasn't working on the VM, because I had other > research matters to attend to (like presenting a paper at SAS200, and > doing some related work). I am now working full time on the VM, so > things should progress roundly. > I know just what you're talking about. I fully understand how outside time constraints can minimize the time available for these projects. > Given the structure of the VM, it should be easy to extend the > instruction set, if this is what you are looking for. > Well, I located this project while trying to find information on running Haskell and other functional language interpreters on top of a Java VM. You may be familiar with Kawa, which is a Scheme implementation on a JVM (or JPython for that matter). My requirements are: * Open Source * Efficient * Embeddable. The goal is to eventually (whew) build a sort of generic extensible platform on top of some kind of VM architecture. The "platform" would be capable of running various interpreters for different front-end languages (e.g., Scheme, Haskell, CAML, etc.). This is obviously far in the future, but the idea came up while talking with some people on the Guile list about how hard it might be to do so. (Since Guile is aimed at translating other scripting languages [Tcl, Python, etc.] into Scheme for use in Guile). I thought it might be better (performance-wise) to do things around a virtual machine, rather than try to translate source-code on the fly. We'll see. At any rate, I learned through my reading that certain functional programming features (like closures) are hard to implement efficiently on top of Java. So, my question. At any rate, I'm not much of a compiler hacker, but I do happen to have a copy of the JVM book (O'Reilly's) now, so maybe I can be of some help? ;-) Thanks, -Brent |
From: Etienne M. G. <eg...@j-...> - 2000-07-14 21:48:55
|
Hi Brent. SableVM is not yet able to run programs (as you may have discovered already), but it is quite close to it. Mainly, what is missing is the native implementation of VM specific classes required by classpath/sablepath. (System, Runtime, Thread, etc.) Also, there are a few missing bytecodes (wide, multianewarray,...). So, you may expect to be able to run simple benchmarks/toy programs soon. In the last 3 weeks, I wasn't working on the VM, because I had other research matters to attend to (like presenting a paper at SAS200, and doing some related work). I am now working full time on the VM, so things should progress roundly. Given the structure of the VM, it should be easy to extend the instruction set, if this is what you are looking for. Etienne -- ---------------------------------------------------------------------- Etienne M. Gagnon, M.Sc. e-mail: eg...@j-... Author of SableVM: http://www.sablevm.org/ ---------------------------------------------------------------------- |
From: Brent F. <bre...@xp...> - 2000-07-14 21:31:39
|
Hi, I just found your website today. I was wondering what kind of state SableVM is in? I am particularly interested in features of SableVM that might make implementing functional programming languages on top of the VM easier... Thanks, -Brent |
From: Mark W. <ma...@kl...> - 2000-06-18 20:42:05
|
Hi, On Sun, Jun 18, 2000 at 04:03:27PM -0400, Etienne M. Gagnon wrote: > Mark Wielaard wrote: > > When compiling sablevm it couldn't find ffi.h which is located in > > /usr/local/include so I added a -I/usr/local/include to the libsablevm > > Makefile. ... > > The correct way to solve this problem is to let your machine know that > you have libraries in /usr/local/lib. You do so using the "ldconfig" > program. Yes this helps the linker. But the compiler will still not look for include files in /usr/local/include. So you still have to export C_INCLUDE_PATH=/usr/local/include. But don't worry about it to much since everything compiles fine if use don't use --prefix= with configure. Cheers, Mark |
From: Etienne M. G. <eg...@j-...> - 2000-06-18 20:07:07
|
Hi Mark, Here's a better solution to the library detection problem, which is not dependent on setting environment variables. It is apparently the correct Linux/*nix way of installing libraries. Mark Wielaard wrote: > When compiling sablevm it couldn't find ffi.h which is located in > /usr/local/include so I added a -I/usr/local/include to the libsablevm > Makefile. ... The correct way to solve this problem is to let your machine know that you have libraries in /usr/local/lib. You do so using the "ldconfig" program. Here's how: 1- you login as root. 2- you add the line: /usr/local/lib at the top of /etc/ld.conf 3- you run the command: ldconfig 4- you logout;-) and you are done! You won't need to repeat this when you install new libraries in /usr/local/lib. Have fun! Etienne -- ---------------------------------------------------------------------- Etienne M. Gagnon, M.Sc. e-mail: eg...@j-... Author of SableVM: http://www.sablevm.org/ ---------------------------------------------------------------------- |
From: Etienne M. G. <eg...@j-...> - 2000-06-18 13:12:32
|
Mark Wielaard wrote: > I also fixed the problem with poptGetContext by just removing the cast > to (char **) from argv since it was already expecting a (const char **). OK. I'll upgrade to popt 1.5, then apply your fix. > Note that www.sablevm.org does not work (since the sourceforge webserver is > not expecting to get a request for that hostname). I fixed the DNS, but you might have to wait for the change to propagate... > > P.S. I just remembered that I am using an unstable gcc 3.0 cvs snapshot so > some of my problems might have been caused by that. I should which back to > the latest stable gcc to prevent any more problems. But for now sablevm seems > to work as expected with it. I do not know if this is the cause for problems with libffi. I had much grief with it (and I'm not using unstable gcc). This is why I ended up isolating "#include <ffi.h>" in its own source file, with as little other includes as possible. It seemed to conflict with anything else. Etienne -- ---------------------------------------------------------------------- Etienne M. Gagnon, M.Sc. e-mail: eg...@j-... Author of SableVM: http://www.sablevm.org/ ---------------------------------------------------------------------- |