sablevm-developer Mailing List for SableVM (Page 50)
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: Prof. E. M. G. <eti...@uq...> - 2003-02-20 02:18:57
|
On Wed, Feb 19, 2003 at 08:36:58PM -0500, Chris Pickett wrote: > I don't know what JNI_OK is defined to be (I couldn't find it with > grep), but if it's zero then that's: > > if (sched_yield() != JNI_OK) > _svmf_error_InternalError (env); No!!!! JNI_OK is used by _svmf_* functions to indicate success. You should never make any relation between the actual integer value JNI_OK is defined as, and the accidental value it matches in another context! If I decided to change JNI_OK to be defined as 36, the code above would start misbehaving (assuming JNI_OK was originally defined as zero). Also, you should *ALWAYS* check return values of non-void functions. I had not double-checked if sched_yield returned a value. I guess I should never trust submitted code and review thoroughly every line of code and the documentation of every called library function... This means I should probably double-check whether sched_yield is actually a POSIX compliant function? (No GNU specific code allowed; SableVM makes portability claims). Etienne -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Chris P. <chr...@ma...> - 2003-02-20 01:36:52
|
Hi Etienne, For 1.0.6, you might want to replace sched_yield() with if (sched_yield() != 0) _svmf_error_InternalError (env); in java_lang_Thread.c I don't know what JNI_OK is defined to be (I couldn't find it with grep), but if it's zero then that's: if (sched_yield() != JNI_OK) _svmf_error_InternalError (env); Now my multithreaded programs run sometimes (they still segfault randomly). Chris P.S. David and I were wondering if you were going to make a development branch of SableVM that it's safe to hack away on (probably saves you the pain of having to apply all these patches). |
From: Prof. E. M. G. <eti...@uq...> - 2003-02-20 01:24:14
|
On Wed, Feb 19, 2003 at 08:13:33PM -0500, Prof. Etienne M. Gagnon wrote: > Petition your system's administrator to: > $ apt-get exuberant-ctags I meant: $ apt-get install exuberant-ctags of course. Etienne -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Prof. E. M. G. <eti...@uq...> - 2003-02-20 01:18:54
|
On Wed, Feb 19, 2003 at 07:50:59PM -0500, Chris Pickett wrote: > 3) ran etags -R .... this might require some fiddling, I couldn't get it > to work on my Sable account Petition your system's administrator to: $ apt-get exuberant-ctags This will solve your problem. The plain ctags is supported by "make tags", I think, but you get so much more using exuberant-ctags... Also, I'm trying to finish a small 1.0.6 release. We'll put the newer scripts in another release. Etienne -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Bruno D. <bru...@ma...> - 2003-02-20 01:09:16
|
Ok, I'll try to include that. It should be easy enough to do. Thanks for your feedback. BTW, my system clock displays the right time and date! Maybe it's internally set to UTC and my e-mail client does not like that... Thanks for pointing it out. Cheers, Bruno On Thursday 20 February 2003 01:01 am, Chris Pickett wrote: > Bruno, by the way, it would also be nice if all of the configure options > could be specified from your script, e.g. --with_gc, --with_obj_layout, > etc, because there's more than just 6 combinations. > > I think nobody used your script because it isn't useful for developers. > I just got your message about the "oops" email. It had a time of 2:49 > p.m. (which doesn't make sense). > > Bruno Dufour wrote: > >Hi, > > > > I am contributing a new (bash) build script for SableVM which is meant to > >replace both build & build-many. It has a lot of new features, including > >checking the exit status of all executed commands (so it does not go on if > >one of them fails). It is implemented using a lot of functions, so as to > > make it easy to change a particular phase. It is now also easy to add new > > SableVM configurations. > > > >Using the script: > > > >'build' becomes 'build-sablevm' and 'build-many' becomes 'build-sablevm > >--vms=all'. You can also type something like build-sablevm > >--vms=inlined,direct,switch. > > > >Also, there is no longer a dependency on the user not including the > > trailing slash after the installation path. It is stripped off if > > included. Try running the script with --help to learn more about how to > > use it. > > > >Let me know if you have any specific request / suggestion. > > ------------------------------------------------------- > This SF.net email is sponsored by: SlickEdit Inc. Develop an edge. > The most comprehensive and flexible code editor you can use. > Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial. > www.slickedit.com/sourceforge > _______________________________________________ > Sablevm-developer mailing list > Sab...@li... > https://lists.sourceforge.net/lists/listinfo/sablevm-developer -- Bruno Dufour Sable Research Group McGill University, Montreal, Canada bru...@ma... |
From: Chris P. <chr...@ma...> - 2003-02-20 01:01:46
|
Bruno, by the way, it would also be nice if all of the configure options could be specified from your script, e.g. --with_gc, --with_obj_layout, etc, because there's more than just 6 combinations. I think nobody used your script because it isn't useful for developers. I just got your message about the "oops" email. It had a time of 2:49 p.m. (which doesn't make sense). Bruno Dufour wrote: >Hi, > > I am contributing a new (bash) build script for SableVM which is meant to >replace both build & build-many. It has a lot of new features, including >checking the exit status of all executed commands (so it does not go on if >one of them fails). It is implemented using a lot of functions, so as to make >it easy to change a particular phase. It is now also easy to add new SableVM >configurations. > >Using the script: > >'build' becomes 'build-sablevm' and 'build-many' becomes 'build-sablevm >--vms=all'. You can also type something like build-sablevm >--vms=inlined,direct,switch. > >Also, there is no longer a dependency on the user not including the trailing >slash after the installation path. It is stripped off if included. Try >running the script with --help to learn more about how to use it. > >Let me know if you have any specific request / suggestion. > > > |
From: Bruno D. <bru...@ma...> - 2003-02-20 00:57:27
|
Hi, I posted it on this list first to get people's comments, but I did not get any. I guess you're the first one to actually use it. One feature I want to add is to support compiling the CVS version of sablevm from scratch. As soon as I have 5 minutes to work on that, I'll make the necessary changes and commit it to CVS. Cheers, Bruno Dufour Sable Research Group McGill University, Montreal, Canada bru...@ma... On Thursday 20 February 2003 00:23 am, Chris Pickett wrote: > oops. > > okay, i just found bruno's script. david had mentioned it to me but i > forgot. nevermind, sorry about that. it would be good if this script > (bruno's, that is) was committed to the CVS! > > cheers, > chris > > > > ------------------------------------------------------- > This SF.net email is sponsored by: SlickEdit Inc. Develop an edge. > The most comprehensive and flexible code editor you can use. > Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial. > www.slickedit.com/sourceforge > _______________________________________________ > Sablevm-developer mailing list > Sab...@li... > https://lists.sourceforge.net/lists/listinfo/sablevm-developer |
From: Chris P. <chr...@ma...> - 2003-02-20 00:50:48
|
Hi Bruno, As you probably saw, I just wasted a bit of time making a build-dev script for SableVM. However, some things I did aren't done in your script. It would be nice if you made a version of your script for developers, such that it: 1) recognized the directory structure in the CVS (sablevm, sablepath-classes, and sablepath-libs). 2) ran the necessary autoconf stuff 3) ran etags -R .... this might require some fiddling, I couldn't get it to work on my Sable account 4) ran make indent 5) checked for an environment variable specifying where to put the dev. build, and if not found, asked for one, but would not put it in /usr/local ... presumably most people do not want this if developers. 6) deleted the previous installation directory. 7) didn't require a fresh CVS checkout for a new build (problem with my script). I would do this, but you clearly have a much better understanding of how scripts work . . . Cheers, Chris Bruno Dufour wrote: >Hi, > > I am contributing a new (bash) build script for SableVM which is meant to >replace both build & build-many. It has a lot of new features, including >checking the exit status of all executed commands (so it does not go on if >one of them fails). It is implemented using a lot of functions, so as to make >it easy to change a particular phase. It is now also easy to add new SableVM >configurations. > >Using the script: > >'build' becomes 'build-sablevm' and 'build-many' becomes 'build-sablevm >--vms=all'. You can also type something like build-sablevm >--vms=inlined,direct,switch. > >Also, there is no longer a dependency on the user not including the trailing >slash after the installation path. It is stripped off if included. Try >running the script with --help to learn more about how to use it. > >Let me know if you have any specific request / suggestion. > > > |
From: Chris P. <chr...@ma...> - 2003-02-20 00:23:49
|
oops. okay, i just found bruno's script. david had mentioned it to me but i forgot. nevermind, sorry about that. it would be good if this script (bruno's, that is) was committed to the CVS! cheers, chris |
From: Chris P. <chr...@ma...> - 2003-02-19 23:10:58
|
Hi, I'm Chris, a new SableVM developer, and an M.Sc. student at Mcgill in the Sable lab. I'm working on a speculative multithreading project for SableVM. I'm a bit of a Linux newbie so I apologize in advance for whatever transgressions there may be. I made a build script for developers based on what Etienne posted recently, because the build script in the CVS only works for the 1.0.5 release tarballs. I don't understand the following line which appears twice: % /home/egagnon/sablevm/r Also, etags -R doesn't work for me (it asks me for filenames and I can't make it go into directories recursively), and make indent doesn't work either, so I left them out. Maybe etags should go into the Makefile so you can say 'make etags'. I think I need to install indent or something (it doesn't appear to be on the Sable lab machines), and if that's the case, maybe you want to add to the INSTALL file that developers need to install GNU indent if they want 'make indent' to work (at which point it is probably fine to add it to the build-dev script). Feel free to modify this, but it would be handy to have the file in the CVS. It took me a while to get everything working. The Swing stuff still doesn't compile properly. I get errors in the following files: src/gnu/javax/swing/plaf/gtk/GtkBorders.java (1 error) src/gnu/javax/swing/plaf/gtk/GtkRadioButtonUI.java (2 errors) src/gnu/javax/swing/plaf/gtk/GtkSliderUI.java (16 errors) Cheers, Chris P.S. It would be nice to make it possible to specify ./configure options to this script from the command line; for now you still have to edit it to get the features you want. P.P.S. It might be nice to add % rm -rf $LOCATION to the top of the script, but that means that nobody else can write to that directory. Perhaps it would be best if developers had to specify an environment variable for where the development build of sablevm goes -- this prevents accidental install to /usr/local if one forgets to type a location. P.P.P.S. Finally, I have to check out a fresh copy of all the sources from (my local) CVS every time I run this script to make it work, otherwise it complains that sablevm.c is not there. I don't understand why. It appears that only sablevm.c.bak is present. |
From: Grzegorz P. <gr...@se...> - 2003-02-19 18:40:15
|
W liście z śro, 19-02-2003, godz. 19:22, Grzegorz B. Prokopski pisze: > For now - I attached the patch that adds safe support for inlined > threading for alpha and code for cache flush on ia64. change all "alpha-*-gnu" to "alpha*-gnu" On a test alpha system type I can see is: alphapca56-unknown-linux-gnu GBP -- Grzegorz Prokopski <gr...@se...> |
From: Grzegorz B. P. <ga...@de...> - 2003-02-19 18:23:10
|
W liście z śro, 19-02-2003, godz. 05:15, Prof. Etienne M. Gagnon pisze: > I had to add a few "volatile" for signal related stuff, as gcc was > reordering instructions across signal-triggering locations. This can help for alpha problems too. For now - I attached the patch that adds safe support for inlined threading for alpha and code for cache flush on ia64. > > PS: May I ask how many arches that support inlined-threading we have > > now? Does it work on PowerPC yet? > Yes, inlined-threading works on PPC! I finally got it to work just a > few minutes ago. :-)) Great! > I also fixed the libffi related problems so as to get rid of the > LIBFFIBUG conditional. This fix could help on ia64, if it has the > same byte order as PPC. No - ia64, as it's used by Linux, uses the same byte order as i386 and alpha. So if there are any problems with endianness - they will appear on PPC. > OK, I'll check-in the code into CVS in a few minutes. Could you please merge attached bits too? I'd like to ask about possible new release features and timeframe. If you had enough resources, I'd love to see there: - merge of reflection stuff (already done FWICS) - merge of PPC sutff (already done FWICS) - merge of alpha stuff - update to new gnu classpath release As I'd like to get new release with _fixes_ ASAP - I think the last thing could be postponed for later time. Not that I want to push you to do sth, but can you release today? ;-) <reminder mode=whining> It's of course fun to play with portability etc., but I'd like to bring back the fact that for the people it's still hard to use SableVM because... free java packages are getting compiled with newer jikes which makes them unusable with current SableVM. That way - even having the reflection stuff in place - it may be impossible to run prepackaged ANT for example. :-( </reminder> Cheers, Grzegorz B. Prokopski PS: Do you have any suggestions for IA64 problems? (or at least why am I unable to setup brakpoint by name.c:xx?) It's a pity to make no use of a machine which is dedicated to get SableVM working. -- Grzegorz B. Prokopski <ga...@de...> Debian http://www.debian.org/ |
From: Prof. E. M. G. <eti...@uq...> - 2003-02-19 04:24:22
|
Hi there! On Wed, Feb 19, 2003 at 02:23:48AM +0100, Grzegorz B. Prokopski wrote: > Summary: > - we have inlined-threading engine working on alpha (YES!) Super! > - there are some problems with using signal based exceptions > with inlined-threading engine though. I had to add a few "volatile" for signal related stuff, as gcc was reordering instructions across signal-triggering locations. > PS: May I ask how many arches that support inlined-threading we have > now? Does it work on PowerPC yet? Yes, inlined-threading works on PPC! I finally got it to work just a few minutes ago. :-)) I also fixed the libffi related problems so as to get rid of the LIBFFIBUG conditional. This fix could help on ia64, if it has the same byte order as PPC. OK, I'll check-in the code into CVS in a few minutes. 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-02-19 01:24:53
|
Hi! I'll be dead man walking tomorrow... but I have to say it. At #d-d I meet mellum <fa...@de...> which had alpla machine. Compiling simply with --with-threading=3Dinlined was giving segfaults [unfortunatelly build was done with dh_strip, so we gdb was not useful] <mellum> SableVM version 1.0.5 <mellum> - signal based exception detection <mellum> - copying garbage collection <mellum> - bidirectional object layout <mellum> - inline-threaded interpreter [next builds were done w/o symbol stripping] So I added --enable-signals-for-exceptions=3Dno and debugging-features. It worked (!) <mellum> SableVM version 1.0.5 <mellum> - debugging checks enabled <mellum> - copying garbage collection <mellum> - bidirectional object layout <mellum> - inline-threaded interprete So I removed the debugging-features with hope that it'll still workd <mellum> SableVM version 1.0.5 <mellum> - copying garbage collection <mellum> - bidirectional object layout <mellum> - inline-threaded interpreter I must admit that I hoped that it'll crash in the same place as ia64, but it didn't. We didn't have enough time to debug the issue further. I'd like to get back to first, segfaulting version but with symbols and check what's the backtrace of failure. Summary: - we have inlined-threading engine working on alpha (YES!) - there are some problems with using signal based exceptions with inlined-threading engine though. Grzegorz B. Prokopski PS: May I ask how many arches that support inlined-threading we have now? Does it work on PowerPC yet? --=20 Grzegorz B. Prokopski <ga...@de...> Debian http://www.debian.org/ |
From: Grzegorz B. P. <ga...@de...> - 2003-02-18 23:57:33
|
W li=B6cie z wto, 18-02-2003, godz. 17:20, Grzegorz B. Prokopski pisze:=20 > Hi! >=20 > I am trying to get SableVM working on UP IA64 machine with inlined > threading engine. Here's what I have now. An update. I am almost sure that the code for cache flusing I am using for IA64 is right. I looked at=20 http://www.atomised.org/docs/XFree86-4.2.1/compiler_8h-source.html and copied this: __asm__ __volatile__ ("fc %0;;; sync.i;;; mf;;; srlz.i;;;" :: "r"(pword) : "memory"); I don't think that the reason of segfaulting w/ inlined-threading on IA64 is cache coherency problem. I'd rather look for it somewhere else. SableVM crashes in instructions_preparation_inlined_threaded.c, but gdb doesn't recognize this file because it's included in interpreter.c. hmm... strange, but I get this: (gdb) break interpreter.c:419 No source file named interpreter.c. ? how to debug that beast ? Anyway - in the meantime I fixed small bug that was causing sablevm to fail to build on alpha and... added alpha cache flusing __asm__ __volatile__ ("mb; call_pal %0 #imb" :: "i"(134) : "memory"); so that inlined engine could work. I am very curious if it will actually make SableVM work fully on alpha. Unfortunatelly I don't have such great access (w/ root) to an alpha machine as I have to IA64 (thanks to Bdale) so it's a bit hard to tell now. It was uploaded and should build at least ;-) Tomorrow's gonna be a day too. (self->sleep) Grzegorz B. Prokopski --=20 Grzegorz B. Prokopski <ga...@de...> Debian http://www.debian.org/ |
From: Grzegorz B. P. <ga...@de...> - 2003-02-18 16:21:27
|
Hi! I am trying to get SableVM working on UP IA64 machine with inlined threading engine. Here's what I have now. I tried http://www-sor.inria.fr/~piumarta/pldi98/vm.c and it worked well w/o any assembly. The ouput was almost the same as on my i386. I ran it a few times, but nothing bad happened, so it didn't seem too helpful. I rebuilded sablevm and sablevm-native packages with these options: --enable-signals-for-exceptions=no --with-threading=inlined --enable-debugging-features Running it normally simply throwns "Segmentation fault", then I had: gadek@itanic:~$ /usr/bin/sablevm -Y -v -p sablevm.verbose.methods=true -p sablevm.verbose.instructions=true --classpath=./HelloWorld.jar: HelloWorld [verbose jni: JNI_CreateJavaVM] [verbose gc: allocating initial heap (16777216 bytes)] [verbose class: loading "java/lang/Object"] [verbose class: loading "java/io/Serializable"] [verbose class: loading "java/lang/Cloneable"] [verbose class: creating "[B"] [verbose class: loading "java/lang/Class"] [verbose methods: entering method java/lang/Class.<init>([B)V] [verbose instructions: executing @0x6000000000010f70 PREPARE_METHOD] Segmentation fault Tried GDB and my session looked like this: gadek@itanic:~$ gdb /usr/bin/sablevm (gdb) set args -Y -v -p sablevm.verbose.methods=true -p sablevm.verbose.instructions=true --classpath=./HelloWorld.jar: HelloWorld (gdb) run Starting program: /usr/bin/sablevm -Y -v -p sablevm.verbose.methods=true -p sablevm.verbose.instructions=true --classpath=./HelloWorld.jar: HelloWorld [New Thread 1024 (LWP 1197)] [verbose jni: JNI_CreateJavaVM] [verbose gc: allocating initial heap (16777216 bytes)] [verbose class: loading "java/lang/Object"] [verbose class: loading "java/io/Serializable"] [verbose class: loading "java/lang/Cloneable"] [verbose class: creating "[B"] [verbose class: loading "java/lang/Class"] [verbose methods: entering method java/lang/Class.<init>([B)V] [verbose instructions: executing @0x6000000000010f70 PREPARE_METHOD] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1024 (LWP 1197)] 0x6000000000022a70 in ?? () (gdb) bt #0 0x6000000000022a70 in ?? () #1 0x2000000000263070 in _svmf_interpreter (_env=0x600000000000d3e0) at instructions_preparation_inlined_threaded.c:17527 #2 0x20000000000a4760 in _svmf_new_class (env=0x3d73646f6874656d, type=0x65757274) at util2.c:820 The 820th line is this: if (_svmm_invoke_nonvirtual_jlclass_init (env, class_instance, _svmf_cast_jobject (data)) != JNI_OK) { The interesting thing is that it behaves exactly the same no matter if in _svmf_iflush there IS this line: __asm__ __volatile__ ("fc %0;; sync.i;; srlz.i;;" :: "r"(pword)); or it's commented out ! So either this flushing doesn't work OR we have another problem. For example running with --debugging-features enabled gives tons of warnings! I am attaching gzipped log. Maybe there's sth unusual in it that causes the problems? I'd like to hear any suggestions. Grzegorz B. Prokopski PS: In the meantime I am gonna look for instructions that flush entire data and code caches (if there are such instructions for IA64). -- Grzegorz B. Prokopski <ga...@de...> Debian http://www.debian.org/ |
From: Grzegorz B. P. <ga...@de...> - 2003-02-17 14:00:42
|
Package: sablevm Version: 1.0.5-3 Severity: grave Latest sablevm Debian build is broken, it seems because of missing dependency. You need to manually install libffi and libltdl (or not remove them while upgrading to 1.0.5-3 sablevm). The problem apparently comes from these errors I am getting during build: dh_shlibdeps dpkg-shlibdeps: warning: could not find any packages for /usr/lib/./libffi.so.2 (libffi.so.2) dpkg-shlibdeps: warning: unable to find dependency information for shared library libffi (soname 2, path /usr/lib/./libffi.so.2, dependency field Depends) dpkg-shlibdeps: warning: could not find any packages for /usr/lib/./libltdl.so.3 (libltdl.so.3) dpkg-shlibdeps: warning: unable to find dependency information for shared library libltdl (soname 3, path /usr/lib/./libltdl.so.3, dependency field Depends) dpkg-shlibdeps: warning: could not find any packages for /usr/lib/./libffi.so.2 (libffi.so.2) dpkg-shlibdeps: warning: unable to find dependency information for shared library libffi (soname 2, path /usr/lib/./libffi.so.2, dependency field Depends) dpkg-shlibdeps: warning: could not find any packages for /usr/lib/./libltdl.so.3 (libltdl.so.3) dpkg-shlibdeps: warning: unable to find dependency information for shared library libltdl (soname 3, path /usr/lib/./libltdl.so.3, dependency field Depends) Not sure yet what's the reason (dh_shlibs breakage or sth?), but the result is that in place of Depends: ${shlibs:Depends} there SHOULD be put libffi2 and liltdl3 while now they're missing. I'll upgrade my box to latest unstable and try again. If anyone has idea what's the cause of the above - please drop me a note. For now it's a serious bug in sablevm debian package and should be registered as such. Thank's for reporting the problem. Grzegorz B. Prokopski W li=B6cie z pon, 17-02-2003, godz. 14:04, Ben Burns pisze:=20 > Hi Grzegorz, >=20 > Thanks for the fast reply :).... >=20 > Anyway, I've been watching the mailing list, and obviously some others go= t=20 > there way faster than I could have done..... Amazing work all round!!! >=20 > Anyway, I've moved to debian unstable, awaiting the release of KDE 3.1 (C= an't=20 > wait!!!), and I noticed that sablevm was upgraded. I also noticed that t= he=20 > package dependency on libffi2 was removed, as aptitude upgrade marked it = as=20 > no longer used. I checked the sablevm and libsablevm package and noticed= =20 > that the libffi2 dependency is no longer there.... Unfortunately, when I = try=20 > and get the sablevm version, I get the following errors: > bburns@uluru:~$ sablevm --version > sablevm: error while loading shared libraries: libffi.so.2: cannot op= en =20 > shared object file: No such file or directory > bburns@uluru:~$ >=20 > After installing libffi2 everything works fine. So, I think its just a=20 > packaging problem, that you have forgotten to include the dependency on=20 > libffi2. >=20 > bburns@uluru:~$ sablevm --version > SableVM version 1.0.5 > - signal based exception detection > - copying garbage collection > - bidirectional object layout > - inline-threaded interpreter >=20 > Okay, sorry if that was a little long winded, thanks for your help and al= l=20 > those involved. I haven't sent this to the developer mailing list, becau= se I=20 > guess this is a debian package specific problem.... >=20 > Regards, > Ben --=20 Grzegorz B. Prokopski <ga...@de...> Debian http://www.debian.org/ |
From: David P. B. <db...@CS...> - 2003-02-11 21:12:58
|
Hello, A Mac OS X patch as well as instructions for compiling SableVM on Mac OS X is now available here: http://www.sable.mcgill.ca/~dbelan2/sablevm/hacking.html Currently most of the size of the patch is due to the fact that libtool lt_dl* functions didn't seem to work and I had to use the dl* ones. However, I do not have much time to investigate this right now. 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: Etienne M. G. <eti...@uq...> - 2003-02-11 02:02:03
|
On Mon, Feb 10, 2003 at 04:41:23PM -0500, David Paul BELANGER wrote: > > Do you have any idea what might be wrong in my setting? >=20 > Yes, define LIBFFIBUG (a cpp macro) and it will compile with the work > around for the ppc and libffi. Ah! Of course. This was it.=20 So, I got SableVm to run on my new and nice PowerBook machine. Super!!! :-)))) > Note that if it is defined on x86, it will not work and it will produce > the same error so it should be defined only when compiling on ppc. I will investigate the libffi calling convention keeping an eye on the libffi bur reply message. Thanks a lot for your good work. It is great to have SableVM running well on PPC. I'll now start working on getting inline-threading working. Etienne > David >=20 > > I am compiling using the attached script. > >=20 > > Etienne > >=20 > >=20 > >=20 > > David Paul BELANGER wrote: > > >Thanks for the info. > > > > > >I just run "make indent" to produce a new patch (ver 1.2). > > >The only difference between 1.1 and 1.2 is the indentation. > > > > > >David > > > > > > > > >On Mon, Feb 10, 2003 at 01:08:24AM -0500, Etienne M. Gagnon wrote: > > > > > >>Hi David, > > >> > > >>You need to run: > > >> > > >>aclocal ; libtoolize ; autoconf ; autoheader ; automake --foreign -a > > >> > > >>It is also interesting to generate TAGS file using etags: > > >> > > >>... # build commands > > >>make ; make install > > >>etags -R > > >> > > >>To indent your code: > > >> > > >>make indent > > >> > > >>Etienne > > >> > > >> > > >>On Sun, Feb 09, 2003 at 11:16:35PM -0500, David Paul BELANGER wrote: > > >> > > >>>Hello, > > >>> > > >>>I'm trying to build SableVM from CVS but I'm not sure how to generate > > >>>the configure script (last time I cheated and copy it from the > > >>>release...). > > >>> > > >>>I am not at all familiar with the autoconf/automake process. Readin= g on > > >>>the web didn't help. > > >>> > > >>>I tried running autoconf and I got: > > >>>ibou:~/tmp21/sablevm/sablevm> autoconf > > >>>configure.ac:9: error: possibly undefined macro: AM_INIT_AUTOMAKE > > >>> If this token and others are legitimate, please use > > >>> m4_pattern_allow. > > >>> See the Autoconf documentation. > > >>>configure.ac:11: error: possibly undefined macro: > > >>>AM_CONFIG_HEADER > > >>>configure.ac:31: error: possibly undefined macro: > > >>>AC_DISABLE_STATIC > > >>>configure.ac:122: error: possibly undefined macro: > > >>>AC_LIBTOOL_DLOPEN > > >>>configure.ac:123: error: possibly undefined macro: > > >>>AM_PROG_LIBTOOL > > >>>ibou:~/tmp21/sablevm/sablevm>=20 > > >>> =20 > > >>>My version of autoconf is 2.50. > > >>> > > >>>My system is Debian GNU/Linux/PPC. > > >>> > > >>>What commands do I need to run and in what order? > > >>> > > >>>Thanks, > > >>>David > > >>> > > >>>--- > > >>> > > >>>David B?langer > > >>>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 > > >>> > > >>> > > >>> > > >>>------------------------------------------------------- > > >>>This SF.NET email is sponsored by: > > >>>SourceForge Enterprise Edition + IBM + LinuxWorld =3D Something 2 Se= e! > > >>>http://www.vasoftware.com > > >>>_______________________________________________ > > >>>Sablevm-developer mailing list > > >>>Sab...@li... > > >>>https://lists.sourceforge.net/lists/listinfo/sablevm-developer > > >> > > >>--=20 > > >>Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ > > >>SableVM: http://www.sablevm.org/ > > >>SableCC: http://www.sablecc.org/ > > > > > > > >=20 > > --=20 > > Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ > > SableVM: http://www.sablevm.org/ > > SableCC: http://www.sablecc.org/ >=20 > > VERSION=3D1.0.5 > >=20 > > rm -rf /home/egagnon/work > >=20 > > cd /home/egagnon/sablepath-libs > > make distclean > > /home/egagnon/sablevm/r > > aclocal ; libtoolize ; autoconf ; autoheader ; automake --foreign -a > > ./configure \ > > --prefix=3D/home/egagnon/work \ > > --enable-debugging-features > > make ; make install ; etags -R > >=20 > > cd /home/egagnon/sablepath-classes > > rm classes > > mkdir /home/egagnon/work/lib/sablevm/classes-$VERSION > > ln -s /home/egagnon/work/lib/sablevm/classes-$VERSION classes > > find -type f | grep -v CVS | grep \\.java$ | xargs jikes -g -d classes \ > > -bootclasspath src:classes -classpath src:classes -sourcepath src > > find resource -type f | grep -v CVS | cut -d\/ -f2- | \ > > awk '{print "cp resource/" $0 " classes/" $0 }' | sh > > chmod -R a+rX classes/* > >=20 > > cd /home/egagnon/sablevm/ > > make distclean > > /home/egagnon/sablevm/r > > aclocal ; libtoolize ; autoconf ; autoheader ; automake --foreign -a > > ./configure \ > > --prefix=3D/home/egagnon/work \ > > --enable-debugging-features > > make ; make install ; etags -R >=20 >=20 > --=20 >=20 > --- >=20 > David B?langer > 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 Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: David P. B. <db...@CS...> - 2003-02-10 21:41:25
|
On Mon, Feb 10, 2003 at 02:56:26PM -0500, Prof. Etienne M. Gagnon wrote: > Hi David. >=20 > I tried to get SableVM running on my PowerBook (Debian stable(mostly) += =20 > testing(libc6)), using your older non-reflection patch yesterday. It=20 > didn't work. >=20 > I just tried again applying your latest patch ver1.2 to a plain CVS=20 > snapshot of sablevm/sablepath-libs/sablepath-classes and I get the same= =20 > failure: >=20 > $ sablevm -Y HelloWorld > java/lang/ExceptionInInitializerError > $ >=20 > Do you have any idea what might be wrong in my setting? >=20 Yes, define LIBFFIBUG (a cpp macro) and it will compile with the work around for the ppc and libffi. It will work if you set CPPFLAGS before calling configure. CPPFLAGS=3D'-DLIBFFIBUG' export CPPFLAGS then ./configure etc. Note that if it is defined on x86, it will not work and it will produce the same error so it should be defined only when compiling on ppc. David > I am compiling using the attached script. >=20 > Etienne >=20 >=20 >=20 > David Paul BELANGER wrote: > >Thanks for the info. > > > >I just run "make indent" to produce a new patch (ver 1.2). > >The only difference between 1.1 and 1.2 is the indentation. > > > >David > > > > > >On Mon, Feb 10, 2003 at 01:08:24AM -0500, Etienne M. Gagnon wrote: > > > >>Hi David, > >> > >>You need to run: > >> > >>aclocal ; libtoolize ; autoconf ; autoheader ; automake --foreign -a > >> > >>It is also interesting to generate TAGS file using etags: > >> > >>... # build commands > >>make ; make install > >>etags -R > >> > >>To indent your code: > >> > >>make indent > >> > >>Etienne > >> > >> > >>On Sun, Feb 09, 2003 at 11:16:35PM -0500, David Paul BELANGER wrote: > >> > >>>Hello, > >>> > >>>I'm trying to build SableVM from CVS but I'm not sure how to generat= e > >>>the configure script (last time I cheated and copy it from the > >>>release...). > >>> > >>>I am not at all familiar with the autoconf/automake process. Readin= g on > >>>the web didn't help. > >>> > >>>I tried running autoconf and I got: > >>>ibou:~/tmp21/sablevm/sablevm> autoconf > >>>configure.ac:9: error: possibly undefined macro: AM_INIT_AUTOMAKE > >>> If this token and others are legitimate, please use > >>> m4_pattern_allow. > >>> See the Autoconf documentation. > >>>configure.ac:11: error: possibly undefined macro: > >>>AM_CONFIG_HEADER > >>>configure.ac:31: error: possibly undefined macro: > >>>AC_DISABLE_STATIC > >>>configure.ac:122: error: possibly undefined macro: > >>>AC_LIBTOOL_DLOPEN > >>>configure.ac:123: error: possibly undefined macro: > >>>AM_PROG_LIBTOOL > >>>ibou:~/tmp21/sablevm/sablevm>=20 > >>> =20 > >>>My version of autoconf is 2.50. > >>> > >>>My system is Debian GNU/Linux/PPC. > >>> > >>>What commands do I need to run and in what order? > >>> > >>>Thanks, > >>>David > >>> > >>>--- > >>> > >>>David B?langer > >>>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 > >>> > >>> > >>> > >>>------------------------------------------------------- > >>>This SF.NET email is sponsored by: > >>>SourceForge Enterprise Edition + IBM + LinuxWorld =3D Something 2 Se= e! > >>>http://www.vasoftware.com > >>>_______________________________________________ > >>>Sablevm-developer mailing list > >>>Sab...@li... > >>>https://lists.sourceforge.net/lists/listinfo/sablevm-developer > >> > >>--=20 > >>Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon= / > >>SableVM: http://www.sablevm.org= / > >>SableCC: http://www.sablecc.org= / > > > > >=20 > --=20 > Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ > SableVM: http://www.sablevm.org/ > SableCC: http://www.sablecc.org/ > VERSION=3D1.0.5 >=20 > rm -rf /home/egagnon/work >=20 > cd /home/egagnon/sablepath-libs > make distclean > /home/egagnon/sablevm/r > aclocal ; libtoolize ; autoconf ; autoheader ; automake --foreign -a > ./configure \ > --prefix=3D/home/egagnon/work \ > --enable-debugging-features > make ; make install ; etags -R >=20 > cd /home/egagnon/sablepath-classes > rm classes > mkdir /home/egagnon/work/lib/sablevm/classes-$VERSION > ln -s /home/egagnon/work/lib/sablevm/classes-$VERSION classes > find -type f | grep -v CVS | grep \\.java$ | xargs jikes -g -d classes = \ > -bootclasspath src:classes -classpath src:classes -sourcepath src > find resource -type f | grep -v CVS | cut -d\/ -f2- | \ > awk '{print "cp resource/" $0 " classes/" $0 }' | sh > chmod -R a+rX classes/* >=20 > cd /home/egagnon/sablevm/ > make distclean > /home/egagnon/sablevm/r > aclocal ; libtoolize ; autoconf ; autoheader ; automake --foreign -a > ./configure \ > --prefix=3D/home/egagnon/work \ > --enable-debugging-features > make ; make install ; etags -R --=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: Prof. E. M. G. <eti...@uq...> - 2003-02-10 20:09:19
|
Hi David. I tried to get SableVM running on my PowerBook (Debian stable(mostly) + testing(libc6)), using your older non-reflection patch yesterday. It didn't work. I just tried again applying your latest patch ver1.2 to a plain CVS snapshot of sablevm/sablepath-libs/sablepath-classes and I get the same failure: $ sablevm -Y HelloWorld java/lang/ExceptionInInitializerError $ Do you have any idea what might be wrong in my setting? I am compiling using the attached script. Etienne David Paul BELANGER wrote: > Thanks for the info. > > I just run "make indent" to produce a new patch (ver 1.2). > The only difference between 1.1 and 1.2 is the indentation. > > David > > > On Mon, Feb 10, 2003 at 01:08:24AM -0500, Etienne M. Gagnon wrote: > >>Hi David, >> >>You need to run: >> >>aclocal ; libtoolize ; autoconf ; autoheader ; automake --foreign -a >> >>It is also interesting to generate TAGS file using etags: >> >>... # build commands >>make ; make install >>etags -R >> >>To indent your code: >> >>make indent >> >>Etienne >> >> >>On Sun, Feb 09, 2003 at 11:16:35PM -0500, David Paul BELANGER wrote: >> >>>Hello, >>> >>>I'm trying to build SableVM from CVS but I'm not sure how to generate >>>the configure script (last time I cheated and copy it from the >>>release...). >>> >>>I am not at all familiar with the autoconf/automake process. Reading on >>>the web didn't help. >>> >>>I tried running autoconf and I got: >>>ibou:~/tmp21/sablevm/sablevm> autoconf >>>configure.ac:9: error: possibly undefined macro: AM_INIT_AUTOMAKE >>> If this token and others are legitimate, please use >>> m4_pattern_allow. >>> See the Autoconf documentation. >>>configure.ac:11: error: possibly undefined macro: >>>AM_CONFIG_HEADER >>>configure.ac:31: error: possibly undefined macro: >>>AC_DISABLE_STATIC >>>configure.ac:122: error: possibly undefined macro: >>>AC_LIBTOOL_DLOPEN >>>configure.ac:123: error: possibly undefined macro: >>>AM_PROG_LIBTOOL >>>ibou:~/tmp21/sablevm/sablevm> >>> >>>My version of autoconf is 2.50. >>> >>>My system is Debian GNU/Linux/PPC. >>> >>>What commands do I need to run and in what order? >>> >>>Thanks, >>>David >>> >>>--- >>> >>>David B?langer >>>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 >>> >>> >>> >>>------------------------------------------------------- >>>This SF.NET email is sponsored by: >>>SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! >>>http://www.vasoftware.com >>>_______________________________________________ >>>Sablevm-developer mailing list >>>Sab...@li... >>>https://lists.sourceforge.net/lists/listinfo/sablevm-developer >> >>-- >>Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ >>SableVM: http://www.sablevm.org/ >>SableCC: http://www.sablecc.org/ > > -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: David P. B. <db...@CS...> - 2003-02-10 18:59:05
|
Thanks for the info. I just run "make indent" to produce a new patch (ver 1.2). The only difference between 1.1 and 1.2 is the indentation. David On Mon, Feb 10, 2003 at 01:08:24AM -0500, Etienne M. Gagnon wrote: > Hi David, >=20 > You need to run: >=20 > aclocal ; libtoolize ; autoconf ; autoheader ; automake --foreign -a >=20 > It is also interesting to generate TAGS file using etags: >=20 > ... # build commands > make ; make install > etags -R >=20 > To indent your code: >=20 > make indent >=20 > Etienne >=20 >=20 > On Sun, Feb 09, 2003 at 11:16:35PM -0500, David Paul BELANGER wrote: > >=20 > > Hello, > >=20 > > I'm trying to build SableVM from CVS but I'm not sure how to generate > > the configure script (last time I cheated and copy it from the > > release...). > >=20 > > I am not at all familiar with the autoconf/automake process. Reading= on > > the web didn't help. > >=20 > > I tried running autoconf and I got: > > ibou:~/tmp21/sablevm/sablevm> autoconf > > configure.ac:9: error: possibly undefined macro: AM_INIT_AUTOMAKE > > If this token and others are legitimate, please use > > m4_pattern_allow. > > See the Autoconf documentation. > > configure.ac:11: error: possibly undefined macro: > > AM_CONFIG_HEADER > > configure.ac:31: error: possibly undefined macro: > > AC_DISABLE_STATIC > > configure.ac:122: error: possibly undefined macro: > > AC_LIBTOOL_DLOPEN > > configure.ac:123: error: possibly undefined macro: > > AM_PROG_LIBTOOL > > ibou:~/tmp21/sablevm/sablevm>=20 > > =20 > > My version of autoconf is 2.50. > >=20 > > My system is Debian GNU/Linux/PPC. > >=20 > > What commands do I need to run and in what order? > >=20 > > Thanks, > > David > >=20 > > --- > >=20 > > David B?langer > > 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: > > SourceForge Enterprise Edition + IBM + LinuxWorld =3D Something 2 See= ! > > http://www.vasoftware.com > > _______________________________________________ > > Sablevm-developer mailing list > > Sab...@li... > > https://lists.sourceforge.net/lists/listinfo/sablevm-developer >=20 > --=20 > Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ > SableVM: http://www.sablevm.org/ > SableCC: http://www.sablecc.org/ --=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 P. B. <db...@CS...> - 2003-02-10 18:26:49
|
Ok it has been fixed. I tested the patch on Debian GNU/Linux (both x86 and ppc) against a clean CVS checkout. (Note that the patch also includes my ppc patch since I didn't unpatch it. It shouldn't affect other architecture.) David On Mon, Feb 10, 2003 at 11:37:58AM -0500, David Paul BELANGER wrote: >=20 > Sorry, the patch will not work as it does not include the new files. I > will try it again, test it on CVS and post an updated version ASAP on > the web site. >=20 > David >=20 > On Sun, Feb 09, 2003 at 10:57:43PM -0500, David Paul BELANGER wrote: > > On Sun, Feb 09, 2003 at 12:50:15PM +0100, Grzegorz B. Prokopski wrote= : > > > W li?cie z nie, 09-02-2003, godz. 08:36, David Paul BELANGER pisze:= =20 > > > > Hello, > > > >=20 > > > > I have implemented: > > > > - several reflection methods > > > > - a basic Runtime.exec() > > > > - ProcessImpl that implements Process's abstract methods. > > > >=20 > > > > I have fixed some bugs in some reflection functions that were alr= eady > > > > implemented. > > > >=20 > > > > I was able to run: > > > > - jUnit that uses getMethods() > > > > - ant that uses getMethods() and that fork/exec to run Jikes > > > Terrific! > > > I was about to ask for the status. > > >=20 > > > > I am currently checking/cleaning up code. Patches could be made > > > > available tomorrow or the day after. The code is still *very* > > > > experimental. > > > I don't know how being experimental affects normal usage in this > > > case (stability, bugs etc.) but if it makes it possible to run > > > ANT with SableVM - I think we need it. > >=20 > > My goal was to get a quick working system that runs jUnit and ant. I= t > > is experimental in the sense that some new functionality is partially > > implemented, not fully tested. There may still be debugging code etc= . > > However, it should not affect the other parts of SableVM. > >=20 > > >=20 > > > > Etienne, > > > > I would like to know what would be the best way to make these cha= nges > > > > available. Send a big patch to this list, put it on the web, wai= t for a > > > > development branch,... Note that the new code is still under > > > > development and may change frequently. > > > We don't have sablevm-patches (and I am not sure that such list is > > > really needed now) so I'd propose: > > > 1. If the diff isn't too big (say 20-40kb max) - you can attach it > > > to a mail to devel list > > > 2. You can always put it somewhere on the web and give URL to it. > > > If the diff is subject to frequent changes - it can be good idea to > > > have date in the filename and (in the future) against what official > > > release it was created (or CVS date if you work on CVS version). > >=20 > > The patch is posted on this web page, right at the end: > > http://www.sable.mcgill.ca/~dbelan2/sablevm/hacking.html > > (the patch is over 70k) > >=20 > > There is also a status file that says which functions have been > > implemented. > >=20 > > Also, some functionality has been implemented in java instead of C. > >=20 > >=20 > > > If the code is usable (it really runs ANT) - I'd like to see new > > > official release, maybe even this week, even if ANT support would b= e > > > marked "experimental". > >=20 > > I tested it with ant only on a small build file. Ant users, let me k= now > > if you run into problems. > >=20 > > I have been using it for some time with jUnit (that uses getMethods()= ) > > without problems. > >=20 > >=20 > >=20 > > Have fun! > >=20 > >=20 > > David > >=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 > --- >=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 --- 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 P. B. <db...@CS...> - 2003-02-10 16:38:04
|
Sorry, the patch will not work as it does not include the new files. I will try it again, test it on CVS and post an updated version ASAP on the web site. David On Sun, Feb 09, 2003 at 10:57:43PM -0500, David Paul BELANGER wrote: > On Sun, Feb 09, 2003 at 12:50:15PM +0100, Grzegorz B. Prokopski wrote: > > W li?cie z nie, 09-02-2003, godz. 08:36, David Paul BELANGER pisze:=20 > > > Hello, > > >=20 > > > I have implemented: > > > - several reflection methods > > > - a basic Runtime.exec() > > > - ProcessImpl that implements Process's abstract methods. > > >=20 > > > I have fixed some bugs in some reflection functions that were alrea= dy > > > implemented. > > >=20 > > > I was able to run: > > > - jUnit that uses getMethods() > > > - ant that uses getMethods() and that fork/exec to run Jikes > > Terrific! > > I was about to ask for the status. > >=20 > > > I am currently checking/cleaning up code. Patches could be made > > > available tomorrow or the day after. The code is still *very* > > > experimental. > > I don't know how being experimental affects normal usage in this > > case (stability, bugs etc.) but if it makes it possible to run > > ANT with SableVM - I think we need it. >=20 > My goal was to get a quick working system that runs jUnit and ant. It > is experimental in the sense that some new functionality is partially > implemented, not fully tested. There may still be debugging code etc. > However, it should not affect the other parts of SableVM. >=20 > >=20 > > > Etienne, > > > I would like to know what would be the best way to make these chang= es > > > available. Send a big patch to this list, put it on the web, wait = for a > > > development branch,... Note that the new code is still under > > > development and may change frequently. > > We don't have sablevm-patches (and I am not sure that such list is > > really needed now) so I'd propose: > > 1. If the diff isn't too big (say 20-40kb max) - you can attach it > > to a mail to devel list > > 2. You can always put it somewhere on the web and give URL to it. > > If the diff is subject to frequent changes - it can be good idea to > > have date in the filename and (in the future) against what official > > release it was created (or CVS date if you work on CVS version). >=20 > The patch is posted on this web page, right at the end: > http://www.sable.mcgill.ca/~dbelan2/sablevm/hacking.html > (the patch is over 70k) >=20 > There is also a status file that says which functions have been > implemented. >=20 > Also, some functionality has been implemented in java instead of C. >=20 >=20 > > If the code is usable (it really runs ANT) - I'd like to see new > > official release, maybe even this week, even if ANT support would be > > marked "experimental". >=20 > I tested it with ant only on a small build file. Ant users, let me kno= w > if you run into problems. >=20 > I have been using it for some time with jUnit (that uses getMethods()) > without problems. >=20 >=20 >=20 > Have fun! >=20 >=20 > David >=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 --- 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 M. G. <eti...@uq...> - 2003-02-10 06:36:35
|
Hi David, Archie is right; synchronization is needed to avoid creating more than one Method instance. In fact, all class-loader related code that either reads or writes class-loader data structures has to be synchronized using the monitor of the VirtualMachine class instance. In particular, calling _svmf_resolve_incomplete_method() without synchronization would yield undefined results. Furthermore, as Archie pointer, we definitely do not want another thread to create an instance between the: if (method_info->reflection_instance != NULL) ... and the ... *(method_info->reflection_instance) = *method; Doing otherwise would (among other things) leak memory. Have fun! Etienne On Sun, Feb 09, 2003 at 09:05:22PM -0800, Archie Cobbs wrote: > David Paul BELANGER wrote: > > > In the case of Class.getMethod() (and therefore Class.nativeGetMethod()) > > > the spec says that accessing the Method object associated with a > > > class is an "active use" and so the class must be linked if it hasn't > > > already been linked. And linking the class's type of course requires > > > acquiring the monitor. > > > > Yes, I do understand that part but the link functions do acquire it. > > I am wondering why we have this structure: > > > > acquire monitor > > . > > . > > . > > link_class() > > (inside link_class) > > acquire monitor > > . > > . > > . > > release monitor > > . > > initialize_class > > acquire monitor > > . > > . > > release monitor > > . > > . > > release monitor > > > > What functions are we protecting with the external acquire monitor? > > Maybe it's for the creation of the new Method reflection instance? > The JVM must ensure that it only gets created once. > > -Archie > > __________________________________________________________________________ > Archie Cobbs * Packet Design * http://www.packetdesign.com > > > ------------------------------------------------------- > This SF.NET email is sponsored by: > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! > http://www.vasoftware.com > _______________________________________________ > Sablevm-developer mailing list > Sab...@li... > https://lists.sourceforge.net/lists/listinfo/sablevm-developer -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |