sablevm-developer Mailing List for SableVM (Page 29)
Brought to you by:
egagnon
You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(27) |
Aug
(22) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(32) |
Oct
|
Nov
|
Dec
|
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(69) |
Sep
(10) |
Oct
(31) |
Nov
(15) |
Dec
(58) |
2003 |
Jan
(33) |
Feb
(81) |
Mar
(85) |
Apr
(24) |
May
(15) |
Jun
(14) |
Jul
(6) |
Aug
(9) |
Sep
(101) |
Oct
(59) |
Nov
(142) |
Dec
(34) |
2004 |
Jan
(107) |
Feb
(164) |
Mar
(181) |
Apr
(96) |
May
(81) |
Jun
(71) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Chris P. <chr...@ma...> - 2003-12-27 00:18:38
|
Hi, I have some problem with my SpMT stuff, and I would like to know if I'm observing the correct behaviour. In trying to get the Jack benchmark to run, I turned off many features of my SpMT code. My code still does some state saving and restoring though, which involves: to save: 1) saving the current pc 2) saving the current stack_size 3) copying the entire stack from stack.start to stack.end 4) saving the current *locals (adjusted) 5) saving the current *stack (adjusted) 6) saving stack.current_frame (adjusted) to restore: 1) pc = saved pc 2) stack_size = saved stack_size 3) *locals = saved *locals 4) *stack = saved *stack 3) stack.current_frame = saved stack.current_frame 4) stack.end = saved stack.end 5) stack.start = saved stack.start Here's the problem: At every invokevirtual that returns void, I first save the state ("non-speculative"). Then I skip forward over the invokevirtual, adjust the stack_size to account for method parameters being popped, and immediately save the state ("speculative"). Then I restore the non-speculative state and execute the method. When I return from the method, as determined by the height of env->stack.current_frame returning to the height of the frame before the invokevirtual, I should (according to what I originally thought, at least) have an execution state that's identical to the saved speculative state (remember that the method is void). Normally I can restore this state and keep executing without any problem, but in Jack I get errors if I try to do so. If I instead restore the state by copying the entire saved stack over the execution stack (and freeing the saved copy instead of freeing the original), I still get problems -- so I know it's not because of external pointers into the stack. Furthermore, if I decide not to restore the "speculative" state after execution but keep going with the previously restored "non-speculative" state, I don't get any errors at all -- which indicates that there's not problems with the state-saving code in itself. My question is ... is it possible for the caller frame to be modified before returning from the callee, if the callee returns void? I did some experiments, comparing (_svmt_stack_value *)->jint by (_svmt_stack_value *)->jint, and it turns out that the saved speculative stack is not identical to the stack after returning from the call, at a couple of positions. I'm really at a loss to explain this, any pointers would be greatly appreciated ... Cheers, Chris P.S. Merry Christmas and Happy New Year everyone! :) |
From: Patrick C. <er...@ps...> - 2003-12-22 10:46:25
|
Also sprach Etienne Gagnon zu "19.12.2003 22:31" Anno Domini: > Hi Patrick. > > Thanks for the patch. Before committing it, I need your confirmation > about the following, about this contribution and future ones: > > 1- You are in a clean-room status, regarding contribution to a Java > virtual machine. ACK! > 2- You are the copyright holder of your contributions (e.g. not your > employer or school). ACK! > 3- You retain copyright ownership on your contributions, but you license > them > under the terms of the GNU LGPL. ACK! > 4- You grant me the permission to modify or add clarifications to the > license if the > needs for it shows at some point; modifications and clarifications > (if any) will be in the spirit > of the Free Software definition > (http://www.gnu.org/philosophy/free-sw.html) and > the Debian Free Software Guidelines > (http://www.debian.org/social_contract#guidelines). > ACK! > Alternatively to 2, 3, and 4, you can put your contributions in the > public domain, of course. If you prefer, of course, you can take _these_ changes as public domain. I do not invented a great algorithm improving your Makefiles. :-) But I reserve the right for me, to no publish further patches in public domain but under the conditions 1-4. As I am writing my deiploma thesis about a JVM (see my homepage), it might be, that I make some really semantics-changing patches/enhancments! > > Sorry for annoying you with these legal related questions, but I have to > do it > once for every contributor... > I can understand this clearly. I just _have_ a problem with copyright of code I wrote and published under LGPL. > Patrick Cernko wrote: > >> So I digged out my autotools knowledge and made a patch to be able to >> build sablevm in a directory different from the sources (this way my >> checked out sources stay mostly "clean" -- only "poluted" by the files >> generated from the autotools chain. > > > An auto* knowledgeable person: it's so nice to have one around. Great! > Don't count on me. I just wanted to compile sablevm in _my_ _style_. I'm not sure, if I will have time for helping as my diploma thesis is taking all. But ask if you have a problem. At minimum, I will say "No time now". :-) >> I hope the patch can make it into the svn. > > > As soon as I get your reply to the annoying legal question above, I'll > do it. > Well, here it is! :-) CU/all -- Patrick Cernko | mailto:er...@er... | http://www.errror.de Quote of the Week: "A weird imagination is most useful to gain full advantage of all the features." (screen(1) man-page) |
From: Grzegorz B. P. <ga...@de...> - 2003-12-20 15:31:05
|
Hi! Some good news for the weekend: We're gonna have our own "Java room" at FOSDEM! (don't know what's gonna be available in the room but that's to be cleared out). We've got the first base covered though. GBP -- Grzegorz B. Prokopski <ga...@de...> Debian GNU/Linux http://www.debian.org SableVM - LGPLed JVM http://www.sablevm.org |
From: Etienne G. <gag...@uq...> - 2003-12-19 23:01:19
|
Hi Patrick. Thanks for the patch. Before committing it, I need your confirmation about the following, about this contribution and future ones: 1- You are in a clean-room status, regarding contribution to a Java virtual machine. 2- You are the copyright holder of your contributions (e.g. not your employer or school). 3- You retain copyright ownership on your contributions, but you license them under the terms of the GNU LGPL. 4- You grant me the permission to modify or add clarifications to the license if the needs for it shows at some point; modifications and clarifications (if any) will be in the spirit of the Free Software definition (http://www.gnu.org/philosophy/free-sw.html) and the Debian Free Software Guidelines (http://www.debian.org/social_contract#guidelines). Alternatively to 2, 3, and 4, you can put your contributions in the public domain, of course. Sorry for annoying you with these legal related questions, but I have to do it once for every contributor... See comments below. Patrick Cernko wrote: > So I digged out my autotools knowledge and made a patch to be able to > build sablevm in a directory different from the sources (this way my > checked out sources stay mostly "clean" -- only "poluted" by the files > generated from the autotools chain. An auto* knowledgeable person: it's so nice to have one around. Great! > 1. I replaced the include path "-I@srcdir@/inlinability" by >... > 2. I rewrote all commands for m4-based file generation to ones, using >... Effectively, this is much cleaner. > 3. *CHANGE* I added macros.m4 to the dependencies of the headers in >... but I > think, you would like this new feature? :-) Of course! > I also made some small beatification changes (mainly the INCLUDES > assignment in libsablevm), which should not affect any semanticts. > > I hope the patch can make it into the svn. As soon as I get your reply to the annoying legal question above, I'll do it. Thanks a lot! Etienne -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Patrick C. <er...@ps...> - 2003-12-19 10:18:22
|
Hi, while trying to build the sablevm-staging svn checkout, I realized, that it is not possible to configure/build it in a directory different from the checkout (= source) directory. sablevm-classpath before just build fine. So I digged out my autotools knowledge and made a patch to be able to build sablevm in a directory different from the sources (this way my checked out sources stay mostly "clean" -- only "poluted" by the files generated from the autotools chain. The patch does three things in detail: 1. I replaced the include path "-I@srcdir@/inlinability" by "-I./inlinability" as the headers in inlinability are all generated and so can only be found in the "build tree" not the source tree. 2. I rewrote all commands for m4-based file generation to ones, using make(1)'s automatic variables refering to target and prerequisits. That way, they are automatically replaced by files with the apropriate path prefix to the source tree if the file is a "source". This way, the rules are a bit easier to read as you can recognize that all (but one) generate the files in the same manner! (I also tried to make _one_ generic rule, instead of explicit ones for every file but that failed.) 3. *CHANGE* I added macros.m4 to the dependencies of the headers in inlinability to also avoid specifying a path to it in the rule. THIS IS A SEMANTIC CHANGE OF THE SOURCES: The inlinability headers are now updated if macros.m4 is changed, which was _not_ the case before, but I think, you would like this new feature? :-) I also made some small beatification changes (mainly the INCLUDES assignment in libsablevm), which should not affect any semanticts. I hope the patch can make it into the svn. -- Patrick Cernko | mailto:er...@er... | http://www.errror.de Quote of the Week: "A weird imagination is most useful to gain full advantage of all the features." (screen(1) man-page) |
From: Raphael B. <rb...@ra...> - 2003-12-16 12:43:07
|
Hi! Thanks for your enthousiasm! :-) However, there must have been a misunderstanding. All presentation slots are full, and all developers rooms have been allocated. It is true that if an additional developers room becomes available (we'll be looking at that) , java project would have the priority and you could possibly make a presentation there. However, this is not the case for now. Even in the unofficial talks we can't promise you anything for now ..... To get in the embedded track , you should contact emb...@fo... Hoping to see you anyway at FOSDEM! Thanks for understanding. Raph Grzegorz B. Prokopski wrote: > Hello! > >>From what I've gatherered - there will quite a few representants from > various Free Java projects at FOSDEM. I was suggested and gladly picked > up this suggestion - to give a talk/presentation about SableVM JVM [*]. > > I was evaluating such possibilities (in order of my preference): > 1. Give complete SableVM presentation in "Free Java" track > 2. Get into "unofficial talks" section > 3. Narrow the presentation a bit and get into "Embedded" track > > The thing is that I surely wouldn't want to be left w/o possibility of > giving the talk. I understand that the "Embedded" track can be full > already. I'd be satisfied knowing that I can at least give an > "unofficial talk". > > Other than that - I was told that you're going to evaluate possibility > of creating "Free Java" (or whatever the name would be) track. If so > - then please accept this email as another voice _for_ creating it. > > I'd be happy to hear from you what's your opinion and how you see it. > If no. 1 and 2. were not possible - I'd send send you the summary of > a bit narrowed talk that would fit into the "Embedded" track area. > > Let us hear your opinion :) > > Thank you very much for all your effort regarding FOSDEM > and Free/Open Software. > > Best regards > > Grzegorz B. Prokopski > > [*] SableVM is relatively young and not yet too widely known. However > we (SableVM developers) think that SableVM has good potential of > becoming widely known and deployed Free JVM. There are many reasons why > we already can say that SableVM is not "yet another JVM of the month". > > Please have a quick look at http://devel.sablevm.org/wiki/?WhySableVM > > There's much more of a cool technology under the hood that we'd be glad > to present to the others. > |
From: Grzegorz B. P. <ga...@de...> - 2003-12-16 03:38:08
|
Hello! >From what I've gatherered - there will quite a few representants from various Free Java projects at FOSDEM. I was suggested and gladly picked up this suggestion - to give a talk/presentation about SableVM JVM [*]. I was evaluating such possibilities (in order of my preference): 1. Give complete SableVM presentation in "Free Java" track 2. Get into "unofficial talks" section 3. Narrow the presentation a bit and get into "Embedded" track The thing is that I surely wouldn't want to be left w/o possibility of giving the talk. I understand that the "Embedded" track can be full already. I'd be satisfied knowing that I can at least give an "unofficial talk". Other than that - I was told that you're going to evaluate possibility of creating "Free Java" (or whatever the name would be) track. If so - then please accept this email as another voice _for_ creating it. I'd be happy to hear from you what's your opinion and how you see it. If no. 1 and 2. were not possible - I'd send send you the summary of a bit narrowed talk that would fit into the "Embedded" track area. Let us hear your opinion :) Thank you very much for all your effort regarding FOSDEM and Free/Open Software. Best regards Grzegorz B. Prokopski [*] SableVM is relatively young and not yet too widely known. However we (SableVM developers) think that SableVM has good potential of becoming widely known and deployed Free JVM. There are many reasons why we already can say that SableVM is not "yet another JVM of the month". Please have a quick look at http://devel.sablevm.org/wiki/?WhySableVM There's much more of a cool technology under the hood that we'd be glad to present to the others. -- Grzegorz B. Prokopski <ga...@de...> Debian GNU/Linux http://www.debian.org SableVM - LGPLed JVM http://www.sablevm.org |
From: David <db...@CS...> - 2003-12-14 21:46:27
|
On Sat, Dec 13, 2003 at 06:34:14PM -0500, Grzegorz B. Prokopski wrote: > W li?cie z pi?, 12-12-2003, godz. 20:42, David B=E9langer pisze:=20 > > SableJIT > > -------- > > I worked very late last night and was able to find a very hidden bug. > > Then after some one more fix I was able to run successfully > > both the SpecJVM98 javac and jess benchmarks! Size 100. Including > > compilation of library methods and self-compilation of the jit itself= . > > I was never able to get it running on these before even when I was > > limiting the compilation. >=20 > Hah! It means that you're really gettin' there! Yes! > Are you declaring "no known bugs" status of SableJIT already? :) No, it does not work for the Jack benchmark. That's my next goal. >=20 > >From another side - for what architectures is SableJIT available > already or will be available? PPC, x86 and Sparc come to mind... Now it is available (development version) for PowerPC and x86. Sparc is still somewhat behind. In a few weeks I will probably have a ppc and x86 staging version. David >=20 > Anyway - great work, >=20 > Grzegorz B. Prokopski >=20 > PS: While taking a break from coding - you could take a look > at http://devel.sablevm.org/wiki/?SableJIT > and http://en.wikipedia.org/w/wiki.phtml?title=3DSableJIT&action=3Dedit > and write a few words about the work you've done. (A warm-up to > writing the thesis ;-) >=20 > --=20 > Grzegorz B. Prokopski <ga...@de...> > Debian GNU/Linux http://www.debian.org > SableVM - LGPLed JVM http://www.sablevm.org >=20 >=20 --=20 --- David B=E9langer Graduate Student School of Computer Science McGill University Office: MC226 Web page: http://www.cs.mcgill.ca/~dbelan2/ Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt |
From: Grzegorz B. P. <ga...@de...> - 2003-12-13 23:34:18
|
W li=B6cie z pi=B1, 12-12-2003, godz. 20:42, David B=E9langer pisze:=20 > SableJIT > -------- > I worked very late last night and was able to find a very hidden bug. > Then after some one more fix I was able to run successfully > both the SpecJVM98 javac and jess benchmarks! Size 100. Including > compilation of library methods and self-compilation of the jit itself. > I was never able to get it running on these before even when I was > limiting the compilation. Hah! It means that you're really gettin' there! Are you declaring "no known bugs" status of SableJIT already? :) >From another side - for what architectures is SableJIT available already or will be available? PPC, x86 and Sparc come to mind... Anyway - great work, Grzegorz B. Prokopski PS: While taking a break from coding - you could take a look at http://devel.sablevm.org/wiki/?SableJIT and http://en.wikipedia.org/w/wiki.phtml?title=3DSableJIT&action=3Dedit and write a few words about the work you've done. (A warm-up to writing the thesis ;-) --=20 Grzegorz B. Prokopski <ga...@de...> Debian GNU/Linux http://www.debian.org SableVM - LGPLed JVM http://www.sablevm.org |
From: Etienne G. <gag...@uq...> - 2003-12-13 19:11:58
|
Hi Archie, Sorry for the late answers. This was the last teaching week at UQAM, so I lacked time to answer all my emails. See below. Archie Cobbs wrote: > Seems like this "fix" (really workaround) should be merged into > Classpath itself too, no? Theoretically: I really dislike seeing "com.sun" anywhere in classpath or sablevm. This is "non-portability" bug of Ant. :-( Pragmatically: You and Greg are right. :-) Etienne -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Randolph C. <ta...@de...> - 2003-12-13 17:14:16
|
> 6. Try the same on IA64 ! (are you there tausq? ;-) Yes, I am around and can try this, but probably not before Christmas. Sorry. randolph -- Randolph Chung Debian GNU/Linux Developer, hppa/ia64 ports http://www.tausq.org/ |
From: Chris G. <ch...@ki...> - 2003-12-13 17:12:58
|
On Saturday 13 December 2003 12:52, Mark Wielaard wrote: > Make sure that you try to contact the organization about your plans. > http://www.fosdem.org/2004/index/contact/ Peter Vandenabeele is the one to whom I have been talking, and who added Java topics to the Embedded room. He's also a very busy man (as are probably most of the other volunteer organisers). I think the developer room is a great idea, and I expect the organisers will be receptive. Best wishes -- Chris Gray /k/ Embedded Java Solutions Embedded & Mobile Java, OSGi http://www.kiffer.be/k/ chr...@ki... +32 477 599 703 |
From: Mark W. <ma...@kl...> - 2003-12-13 11:53:13
|
Hi, On Sat, 2003-12-13 at 10:37, Grzegorz B. Prokopski wrote: > > I think it's really great opportunity for Free Java folks to meet. > I don't mean that we need to separate ourselves from all the rest of the > meeting ;) but it would certainely be good if we had our place. I went last year and it is certainly nice to hear about all those free software projects out there. It is done by volunteers and the people who come really want to present their projects and attract new hackers that want to be work together. It is great fun and gives you a good overview of the big picture. > Now - I am not sure how I should proceed from here.=20 >=20 > But I am certain that I would want to utilze my time during FOSDEM in > the best ways and, because I view this as one of these ways, > - I'd be rather unhappy if this didn't work out because of some > oversight on my side. >=20 > Opinions? Advices? Make sure that you try to contact the organization about your plans. http://www.fosdem.org/2004/index/contact/ It is good to make sure they know how many people are interested in meeting. And they can advise what is the best for the conference. Having a developer room where we can all meet from time to time between the general talks will be great since then we can discuss some of the things in a smaller setting which can be much more technical then a general talk. But having more general talks will certainly be nice to attract more (future) free software hackers. I am really not sure how much of the program has already been set in stone at this stage. And even if we cannot present all our technical knowledge and wonders to the masses it will be nice to meet each other. I would be very glad even if all we did was shake hands and got a drink somewhere together. Being able to sit down and just talk face-to-face is great for people who normally can only work virtually together. Cheers, Mark |
From: Grzegorz B. P. <ga...@de...> - 2003-12-13 11:19:28
|
Hi! I decided to cognize Intel's compiler. A bit [*]. Spoiler: SableVM works in switch and direct mode. It was very easy. Now details. First I tried switched. This check for GCC: dnl GCC specific options if test "$GCC" = "yes"; then doesn't work as expected. Either icc tries to be recognized as GCC or the check is inherently wrong (I vote for the former). Anyway - I had to disable -std=iso9899:1990 -pedantic to compile switched. I also had to pass dnl THIS IS FOR INTEL COMPILER CFLAGS="$CFLAGS -w1" or else I was constantly flooded with *thousands* of "remarks". I left other options as they were and it compiled with these warnings: icc: Command line warning: ignoring unknown option '-fno-gcse' icc: Command line warning: ignoring option '-W'; no argument required And these (which might be interesting): interpreter.c(347): warning #177: label "inliningexception_handler" was declared but never referenced inliningexception_handler: ^ [My fault - maybe someone could add #ifdef INLINABILITY_TESTING around] java_lang_VMClassLoader.c(36): warning #177: label "end" was declared but never referenced end: ^ java_lang_VMClassLoader.c(807): warning #177: label "end" was declared but never referenced end: ^ I haven't compiled Classpath with ICC but SableVM only. Here's output from direct version tests (of course I used staging not 1.0.9 release or trunk): greg@gadek:/tmp$ ./sablevm-icc/bin/sablevm -V SableVM version 1.0.9 - compile date and time: 2003-12-13 10:56:16 UTC - gcc version: Intel(R) C++ gcc 3.0 mode - copying garbage collection - bidirectional object layout - direct-threaded interpreter greg@gadek:/tmp$ ./sablevm-icc/bin/sablevm -Y SableVMHelloWorld Hello, World! - SableVM worked! greg@gadek:/tmp/btf$ ../sablevm-icc/bin/sablevm -Y BytecodeVerificationTest |grep fail dcmpl failed when given (double_1, Double.NaN) dcmpl failed when given (Double.NaN, double_1) fcmpl failed when given (float_1, Float.NaN) fcmpl failed when given (Float.NaN, float_1) hmm... almost there... (note: haven't checked whether these errors are there for switched too) Anyone cares to carry on? Possible TODO include: 1. Fix configure to make it work out of the box 2. Find out where do the above errors come from 3. Measure performance difference w/ GCC 3.3 (on an Intel machine?) 4. Get inlined working! (maybe icc has some nice options that would help inlining bytecodes like --no-block-reorder in GCC?) 5. Turn on signals for exceptions and the like... 6. Try the same on IA64 ! (are you there tausq? ;-) Cheers, Grzegorz B. Prokopski Other general findings from cognition: * ICC uses much more memory than GCC (which is not strange because it surely applies all kinds of optimizations) * Installation sucks. But don't worry - here's a short guideline: 1. You need to fetch 65MB tarball which you need to unpack to see that 2/3 of it are binaries for ia64 which you can just remove. 2. Then you see that there are only RPMs available. 3. So you alien them into debs and try to install only to find out that - as usually with RPMs - some files in packages overlap (conflict). So you need to use --force-overwrite (ugh!). 4. Then of course icc doesn't work because postinstall scripts in an RPM alienated to DEB are not executed - so you need to fix the scripts in /opt/intel*/bin/ - yourself (by putting installation path in them). 5. Of course first you need to wait a week until they mail you your license file and URL where you can download ICC. (I will give a beer to anyone who find this URL just by surfing Intel's site - I've once spent more than a half of an hour trying to find it) * Once you have it installed - it rather well from this point. Ex. documentation is available as a comprehensive 350 pages long PDF with nice explainations of all options etc. [*] I don't have time to go on with it further right now. But *anyone* interested can freely get a copy of the compiler from Intel site. -- Grzegorz B. Prokopski <ga...@de...> Debian GNU/Linux http://www.debian.org SableVM - LGPLed JVM http://www.sablevm.org |
From: Grzegorz B. P. <ga...@de...> - 2003-12-13 09:37:53
|
W li=B6cie z pi=B1, 12-12-2003, godz. 16:49, Mark Wielaard pisze:=20 > Fosdem people are kind of hard to get hold off. Tried sending email to > several addresses, but only yesterday got a small response. I did tell > them that we are expecting at least 10 people already so that it would > be nice to have a developer room were people can meet/hack/discuss. Will > let you know if I get any reply. They said there would be a meeting next > week to discuss Fosdem planning and requests from the community. So > please try to contact them with ideas soon. I think it's really great opportunity for Free Java folks to meet. I don't mean that we need to separate ourselves from all the rest of the meeting ;) but it would certainely be good if we had our place. In fact - I'd be very happy to be able to give a presentation about SableVM during FOSDEM. There's a whole bunch of technical things that are quite hard to explan and show via email or IRC so I view it as a great opportunity to actually get down to strictly technical matters. I was evaluating 3 possibilities (in order of my preference): 1. Give complete SableVM presentation in "Free Java" track 2. Get into "unofficial talks" section 3. Narrow the presentation a bit and get into "Embedded" track Now - I am not sure how I should proceed from here.=20 But I am certain that I would want to utilze my time during FOSDEM in the best ways and, because I view this as one of these ways, - I'd be rather unhappy if this didn't work out because of some oversight on my side. Opinions? Advices? Grzegorz B. Prokopski --=20 Grzegorz B. Prokopski <ga...@de...> Debian GNU/Linux http://www.debian.org SableVM - LGPLed JVM http://www.sablevm.org |
From: David <db...@cs...> - 2003-12-13 01:42:52
|
Hi, SableVM ------- As promised I merged some changes done in the last 2-3 weeks to staging. These are mostly related to inner class related reflexion methods. I noticed that Java_java_lang_reflect_Constructor_constructNative (invokes a constructor via reflexion) is buggy in that it will not encapsulate exception thrown inside the constructor invoked in an InvocationTargetException. I did not investigate further and simply added a TODO note. SableJIT -------- I worked very late last night and was able to find a very hidden bug. Then after some one more fix I was able to run successfully both the SpecJVM98 javac and jess benchmarks! Size 100. Including compilation of library methods and self-compilation of the jit itself. I was never able to get it running on these before even when I was limiting the compilation. David --- David B=E9langer Graduate Student School of Computer Science McGill University Office: MC226 Web page: http://www.cs.mcgill.ca/~dbelan2/ Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt |
From: David <db...@CS...> - 2003-12-13 01:17:55
|
Hi, The problem below has been fixed and is now in staging. The reason why it got "lost" is that the change was made on the trunk a long time ago but after I switch to Classpath 0.06. I did a simple merge to get it. I did check for recent changes made on the trunk but I guess I just missed it. David On Thu, Dec 11, 2003 at 09:16:53PM -0500, Grzegorz B. Prokopski wrote: > W li?cie z czw, 11-12-2003, godz. 19:04, David B=E9langer pisze:=20 > > Hi, > >=20 > > I just noticed that Java_java_lang_Runtime_getBootstrapClassPath > > is not actually used. It is actually not even declared in the > > Java code. > >=20 > > Etienne, do you think there could be a future use of it or should I > > simply removed it. >=20 > In current trunk it is used to set >=20 > sun.boot.class.path >=20 > property. This has to be done from Classpath in >=20 > private static void insertSystemProperties(Properties p) > { > [...] > // We now set a non-standard property used by software like Ant > // which depend on it. > p.setProperty("sun.boot.class.path", getBootstrapClassPath());=20 > p.setProperty("sun.boot.library.path", getBootstrapLibraryPath()); >=20 > see >=20 > svn://svn.sablevm.org/archives/sablevm-class-library/trunk/src/java/lan= g/Runtime.java >=20 > Of course this is sun.* thing and should not be used. But this *is* use= d > by many programs so ex. Kaffe sets this property. >=20 > Apparently this change somehow got lost during Classpath migration to > 0.07. I think it should be brought back and maybe even incorporated > upstream. >=20 > Flame me now :) >=20 > GBP >=20 > --=20 > Grzegorz B. Prokopski <ga...@de...> > Debian GNU/Linux http://www.debian.org > SableVM - LGPLed JVM http://www.sablevm.org >=20 >=20 --=20 --- David B=E9langer Graduate Student School of Computer Science McGill University Office: MC226 Web page: http://www.cs.mcgill.ca/~dbelan2/ Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt |
From: Archie C. <ar...@de...> - 2003-12-12 14:45:10
|
Grzegorz B. Prokopski wrote: > In current trunk it is used to set > > sun.boot.class.path > > property. This has to be done from Classpath in > > private static void insertSystemProperties(Properties p) > { > [...] > // We now set a non-standard property used by software like Ant > // which depend on it. > p.setProperty("sun.boot.class.path", getBootstrapClassPath()); > p.setProperty("sun.boot.library.path", getBootstrapLibraryPath()); > > see > > svn://svn.sablevm.org/archives/sablevm-class-library/trunk/src/java/lang/Runtime.java > > Of course this is sun.* thing and should not be used. But this *is* used > by many programs so ex. Kaffe sets this property. Seems like this "fix" (really workaround) should be merged into Classpath itself too, no? -Archie __________________________________________________________________________ Archie Cobbs * Halloo Communications * http://www.halloo.com |
From: David <db...@cs...> - 2003-12-12 04:44:32
|
On Thu, Dec 11, 2003 at 09:23:03PM -0500, Etienne Gagnon wrote: > Hi David, >=20 > First: >=20 > r1279 | belanger | 2003-12-11 20:32:12 -0500 (Thu, 11 Dec 2003) | 4 lines > * Fixed "bug": An assertion in gc_copying was not taking account of > object allocated outside the heap. >=20 > Are there objects are allocated outside the heap? This should never happ= en. > At least, this was my initial idea about it. This is why I've put the > assertion in place, as "documentation" of my assumption. >=20 > Can you explain which code allocates objects outside the heap, and why? >=20 Hi, This is SableJIT code only. This will be removed eventually as it is not needed. Basically at some point I want non-movable objects: A long time ago I thought that I could avoid copying the interpreter switch code array to an int[] array before passing it to SableJIT. So I was adding an object header to the switch code and having the jit use directly the interpreter array as input (without copying it to Java array). That array could not be movable. However this was not a good idea: 1) gc must check if outside heap and 2) it turned out that I have to copy it anyway. Because that array may get modified when I compile it which causes problems... When attempting to debug my current bug, I allocated some other data structure array outside just to see something and notice that one assertion was not modified. Anyway, this will be removed sometime soon. > See below. >=20 > David B=E9langer wrote: > >I just noticed that Java_java_lang_Runtime_getBootstrapClassPath > >is not actually used. It is actually not even declared in the > >Java code. >=20 > I thought it could be used for initializing system properties. I think > this information should be retrievable by a Java application, e.g. > getSystemProperty("sablevm.boot.classpath"), or something like it. yes. >=20 > >- Some time ago I regenerated all the java_*.h JNI header files they > > were outdated. > >- I also implemented parsing of InnerClasses to get a few more > > reflection things. > >- I will check these changes in staging some time later. >=20 > Would be nice. Will be done soon. Just didn't want to merge stuff without using it for some time. David >=20 > Have fun! >=20 > Etienne >=20 > --=20 > Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ > SableVM: http://www.sablevm.org/ > SableCC: http://www.sablecc.org/ >=20 >=20 >=20 > ------------------------------------------------------- > This SF.net email is sponsored by: IBM Linux Tutorials. > Become an expert in LINUX or just sharpen your skills. Sign up for IBM's > Free Linux Tutorials. Learn everything from the bash shell to sys admin. > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id371&op=CCk > _______________________________________________ > Sablevm-developer mailing list > Sab...@li... > https://lists.sourceforge.net/lists/listinfo/sablevm-developer >=20 --=20 --- David B=E9langer Graduate Student School of Computer Science McGill University Office: MC226 Web page: http://www.cs.mcgill.ca/~dbelan2/ Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt |
From: David <db...@CS...> - 2003-12-12 04:18:41
|
ok. Then it will need to be re-added to the staging. If someone wants to do it feel free. Otherwise I will add it eventually. David On Thu, Dec 11, 2003 at 09:16:53PM -0500, Grzegorz B. Prokopski wrote: > W li?cie z czw, 11-12-2003, godz. 19:04, David B=E9langer pisze:=20 > > Hi, > >=20 > > I just noticed that Java_java_lang_Runtime_getBootstrapClassPath > > is not actually used. It is actually not even declared in the > > Java code. > >=20 > > Etienne, do you think there could be a future use of it or should I > > simply removed it. >=20 > In current trunk it is used to set >=20 > sun.boot.class.path >=20 > property. This has to be done from Classpath in >=20 > private static void insertSystemProperties(Properties p) > { > [...] > // We now set a non-standard property used by software like Ant > // which depend on it. > p.setProperty("sun.boot.class.path", getBootstrapClassPath());=20 > p.setProperty("sun.boot.library.path", getBootstrapLibraryPath()); >=20 > see >=20 > svn://svn.sablevm.org/archives/sablevm-class-library/trunk/src/java/lan= g/Runtime.java >=20 > Of course this is sun.* thing and should not be used. But this *is* use= d > by many programs so ex. Kaffe sets this property. >=20 > Apparently this change somehow got lost during Classpath migration to > 0.07. I think it should be brought back and maybe even incorporated > upstream. >=20 > Flame me now :) >=20 > GBP >=20 > --=20 > Grzegorz B. Prokopski <ga...@de...> > Debian GNU/Linux http://www.debian.org > SableVM - LGPLed JVM http://www.sablevm.org >=20 >=20 --=20 --- David B=E9langer Graduate Student School of Computer Science McGill University Office: MC226 Web page: http://www.cs.mcgill.ca/~dbelan2/ Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt |
From: Etienne G. <gag...@uq...> - 2003-12-12 02:30:33
|
Hi David, First: r1279 | belanger | 2003-12-11 20:32:12 -0500 (Thu, 11 Dec 2003) | 4 lines= * Fixed "bug": An assertion in gc_copying was not taking account of object allocated outside the heap. Are there objects are allocated outside the heap? This should never happ= en. At least, this was my initial idea about it. This is why I've put the assertion in place, as "documentation" of my assumption. Can you explain which code allocates objects outside the heap, and why? See below. David B=E9langer wrote: > I just noticed that Java_java_lang_Runtime_getBootstrapClassPath > is not actually used. It is actually not even declared in the > Java code. I thought it could be used for initializing system properties. I think this information should be retrievable by a Java application, e.g. getSystemProperty("sablevm.boot.classpath"), or something like it. > - Some time ago I regenerated all the java_*.h JNI header files they > were outdated. > - I also implemented parsing of InnerClasses to get a few more > reflection things. > - I will check these changes in staging some time later. Would be nice. Have fun! Etienne --=20 Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Grzegorz B. P. <ga...@de...> - 2003-12-12 02:17:00
|
W li=B6cie z czw, 11-12-2003, godz. 19:04, David B=E9langer pisze:=20 > Hi, >=20 > I just noticed that Java_java_lang_Runtime_getBootstrapClassPath > is not actually used. It is actually not even declared in the > Java code. >=20 > Etienne, do you think there could be a future use of it or should I > simply removed it. In current trunk it is used to set sun.boot.class.path property. This has to be done from Classpath in private static void insertSystemProperties(Properties p) { [...] // We now set a non-standard property used by software like Ant // which depend on it. p.setProperty("sun.boot.class.path", getBootstrapClassPath());=20 p.setProperty("sun.boot.library.path", getBootstrapLibraryPath()); see svn://svn.sablevm.org/archives/sablevm-class-library/trunk/src/java/lang/Ru= ntime.java Of course this is sun.* thing and should not be used. But this *is* used by many programs so ex. Kaffe sets this property. Apparently this change somehow got lost during Classpath migration to 0.07. I think it should be brought back and maybe even incorporated upstream. Flame me now :) GBP --=20 Grzegorz B. Prokopski <ga...@de...> Debian GNU/Linux http://www.debian.org SableVM - LGPLed JVM http://www.sablevm.org |
From: David <db...@cs...> - 2003-12-12 00:04:59
|
Hi, I just noticed that Java_java_lang_Runtime_getBootstrapClassPath is not actually used. It is actually not even declared in the Java code. Etienne, do you think there could be a future use of it or should I simply removed it. Note: - Some time ago I regenerated all the java_*.h JNI header files they were outdated. - I also implemented parsing of InnerClasses to get a few more reflection things. - I will check these changes in staging some time later. David --- David B=E9langer Graduate Student School of Computer Science McGill University Office: MC226 Web page: http://www.cs.mcgill.ca/~dbelan2/ Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt |
From: David <db...@cs...> - 2003-12-08 05:08:01
|
Actually, not really, I'm getting about the same Mauve results on both my platforms now (x86 and ppc). So ignore my previous comments. BTW, I tested your code on Linux/ppc and it worked. So, it may be sparc specific. David On Sun, Dec 07, 2003 at 04:46:17PM -0500, David B=E9langer wrote: >=20 > Actually, that could explain why I got so many more Mauve test cases > passed on x86. I was getting less this weekend and was puzzled, but > because I changed arch... >=20 > It may be related to small/big endian issues. >=20 > David >=20 >=20 > On Sat, Dec 06, 2003 at 11:59:07PM -0500, Grzegorz B. Prokopski wrote: > > Hi! > >=20 > > It really intrigued me when Mark said that Sockets work for him with > > development [1] version of SableVM (which uses latest GNU Classpath). > >=20 > > After doing some tests and many compilations I figured out that the > > error doesn't show up on my Intel machine but does on Sparc: > >=20 > > sablebot@oops:~/sablebot$ ../usr/bin/sablevm -Y sb > > java.net.SocketException: Invalid argument > > at gnu.java.net.PlainSocketImpl.getOption (PlainSocketImpl.java) > > at gnu.java.net.PlainSocketImpl.connect (PlainSocketImpl.java:216) > > at java.net.Socket.connect (Socket.java:402) > > at java.net.Socket.connect (Socket.java:366) > > at java.net.Socket.Socket (Socket.java:292) > > at java.net.Socket.Socket (Socket.java:149) > > at sb.main (sb.java:9) > > at java.lang.VirtualMachine.invokeMain (VirtualMachine.java) > > at java.lang.VirtualMachine.main (VirtualMachine.java:88) > >=20 > > The code of sb.java is simply this: > >=20 > > import java.net.*; > > public class sb > > { > > public static void main(String[] args) throws Exception > > { > > java.net.Socket socket =3D new java.net.Socket("irc.sablevm.org", > > 6667); > > System.out.println(socket); > > } > > } > >=20 > > I have no time now to track it further. I belive that it's probably > > a problem in Classpath but Cc:ing SableVM-devel just in case. > >=20 > > HTH > >=20 > > Grzegorz B. Prokopski > >=20 > > [1] http://devel.sablevm.org > >=20 > > --=20 > > Grzegorz B. Prokopski <ga...@de...> > > Debian GNU/Linux http://www.debian.org > > SableVM - LGPLed JVM http://www.sablevm.org > >=20 > >=20 > >=20 > > ------------------------------------------------------- > > This SF.net email is sponsored by: IBM Linux Tutorials. > > Become an expert in LINUX or just sharpen your skills. Sign up for IBM= 's > > Free Linux Tutorials. Learn everything from the bash shell to sys admi= n. > > Click now! http://ads.osdn.com/?ad_id=3D1278&alloc_id=3D3371&op=3Dclick > > _______________________________________________ > > Sablevm-developer mailing list > > Sab...@li... > > https://lists.sourceforge.net/lists/listinfo/sablevm-developer >=20 > --=20 >=20 > --- >=20 > David B=E9langer > Graduate Student > School of Computer Science > McGill University > Office: MC226 >=20 > Web page: http://www.cs.mcgill.ca/~dbelan2/ > Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt >=20 >=20 >=20 > ------------------------------------------------------- > This SF.net email is sponsored by: IBM Linux Tutorials. > Become an expert in LINUX or just sharpen your skills. Sign up for IBM's > Free Linux Tutorials. Learn everything from the bash shell to sys admin. > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id371&op=CCk > _______________________________________________ > Sablevm-developer mailing list > Sab...@li... > https://lists.sourceforge.net/lists/listinfo/sablevm-developer >=20 --=20 --- David B=E9langer Graduate Student School of Computer Science McGill University Office: MC226 Web page: http://www.cs.mcgill.ca/~dbelan2/ Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt |
From: David <db...@cs...> - 2003-12-07 21:46:19
|
Actually, that could explain why I got so many more Mauve test cases passed on x86. I was getting less this weekend and was puzzled, but because I changed arch... It may be related to small/big endian issues. David On Sat, Dec 06, 2003 at 11:59:07PM -0500, Grzegorz B. Prokopski wrote: > Hi! >=20 > It really intrigued me when Mark said that Sockets work for him with > development [1] version of SableVM (which uses latest GNU Classpath). >=20 > After doing some tests and many compilations I figured out that the > error doesn't show up on my Intel machine but does on Sparc: >=20 > sablebot@oops:~/sablebot$ ../usr/bin/sablevm -Y sb > java.net.SocketException: Invalid argument > at gnu.java.net.PlainSocketImpl.getOption (PlainSocketImpl.java) > at gnu.java.net.PlainSocketImpl.connect (PlainSocketImpl.java:216) > at java.net.Socket.connect (Socket.java:402) > at java.net.Socket.connect (Socket.java:366) > at java.net.Socket.Socket (Socket.java:292) > at java.net.Socket.Socket (Socket.java:149) > at sb.main (sb.java:9) > at java.lang.VirtualMachine.invokeMain (VirtualMachine.java) > at java.lang.VirtualMachine.main (VirtualMachine.java:88) >=20 > The code of sb.java is simply this: >=20 > import java.net.*; > public class sb > { > public static void main(String[] args) throws Exception > { > java.net.Socket socket =3D new java.net.Socket("irc.sablevm.org", > 6667); > System.out.println(socket); > } > } >=20 > I have no time now to track it further. I belive that it's probably > a problem in Classpath but Cc:ing SableVM-devel just in case. >=20 > HTH >=20 > Grzegorz B. Prokopski >=20 > [1] http://devel.sablevm.org >=20 > --=20 > Grzegorz B. Prokopski <ga...@de...> > Debian GNU/Linux http://www.debian.org > SableVM - LGPLed JVM http://www.sablevm.org >=20 >=20 >=20 > ------------------------------------------------------- > This SF.net email is sponsored by: IBM Linux Tutorials. > Become an expert in LINUX or just sharpen your skills. Sign up for IBM= 's > Free Linux Tutorials. Learn everything from the bash shell to sys admi= n. > Click now! http://ads.osdn.com/?ad_id=3D1278&alloc_id=3D3371&op=3Dclick > _______________________________________________ > Sablevm-developer mailing list > Sab...@li... > https://lists.sourceforge.net/lists/listinfo/sablevm-developer --=20 --- David B=E9langer Graduate Student School of Computer Science McGill University Office: MC226 Web page: http://www.cs.mcgill.ca/~dbelan2/ Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt |