sablevm-developer Mailing List for SableVM (Page 54)
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: Etienne M. G. <eti...@uq...> - 2002-12-12 04:42:55
|
On Wed, Dec 11, 2002 at 05:10:25PM -0700, Gunda Domlur wrote: > Hi, > > The switched version of vm with debugging disabled fails to run on the > simplest hello program. When I run configure and rebuild with > enable-debugging-features the vm runs correctly (and no other changes). Any > pointers ? It is possible that the side effect of debugging verifications (e.g. assert() statements, etc) have side effects on the state of caches. As inline-threading is not yet working, anything could be expected. > Another thing I found was that with the non-debug versions I can invoke as > following (the whole benchmark is in the .jar file) > > sablevm-direct -c "bm.jar" x.y.a.b.main -x 10 > > and everything is fine. > > But if I do the same for sablevm-debug I get > java.lang.ClassNotFoundException : x.y.a.b.main > > Why ? Any ideas ? This seems to be a bug. You're lucky; it happens in the sablevm-debeug version. Why don't you try to trace the bug using gdb (or ddd if it works on your platform?). You should certainly file a bug report with an appropriate *minimal* ".jar" file causing the error. Thanks! Etienne > > Thanks. > -Gunda > > > _________________________________________________________________ > MSN 8 with e-mail virus protection service: 2 months FREE* > http://join.msn.com/?page=features/virus > > > > ------------------------------------------------------- > This sf.net email is sponsored by: > With Great Power, Comes Great Responsibility > Learn to use your power at OSDN's High Performance Computing Channel > http://hpc.devchannel.org/ > _______________________________________________ > Sablevm-developer mailing list > Sab...@li... > https://lists.sourceforge.net/lists/listinfo/sablevm-developer -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Etienne M. G. <eg...@j-...> - 2002-12-12 04:16:08
|
On Wed, Dec 11, 2002 at 04:28:35PM -0700, Gunda Domlur wrote: > pc=pc->addr is a branch right ? No. In C, it represents the assignment of a value retrieved from a field of a struct pointed-to by the local variable "pc" into the local variable "pc" itself. There is no branch in the machine code generated for this statement by any reasonible C compiler, such as GCC. Of course, one can guess that eventually this will cause the interpreter to execute some branch, but the statement itslef is free from any branch. [You have to read the code as "low-level" C code, not as "higher-level" Java bytecode]. > > Where can I get hold of Chapter 2 of your thesis ? Online, very soon. :-) [I won't be more precise, as the final decision of when is not in "my" hands, it's in McGill's hands.] Etienne -- Etienne M. Gagnon eg...@j-... SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Gunda D. <sab...@ho...> - 2002-12-12 01:42:50
|
Hi, The switched version of vm with debugging disabled fails to run on the simplest hello program. When I run configure and rebuild with enable-debugging-features the vm runs correctly (and no other changes). Any pointers ? Another thing I found was that with the non-debug versions I can invoke as following (the whole benchmark is in the .jar file) sablevm-direct -c "bm.jar" x.y.a.b.main -x 10 and everything is fine. But if I do the same for sablevm-debug I get java.lang.ClassNotFoundException : x.y.a.b.main Why ? Any ideas ? Thanks. -Gunda _________________________________________________________________ MSN 8 with e-mail virus protection service: 2 months FREE* http://join.msn.com/?page=features/virus |
From: Gunda D. <sab...@ho...> - 2002-12-11 23:29:39
|
pc=pc->addr is a branch right ? (an indirect one though). Maybe this is a terminology problem, but I thought if a processor changes execution path it is generally considered a branch (either due to a br instruction or due to moving a value directly into the pc). Where can I get hold of Chapter 2 of your thesis ? Thanks. -Gunda >From: "Etienne M. Gagnon" <eti...@uq...> >To: Gunda Domlur <sab...@ho...> >CC: sab...@li... >Subject: Re: [Sablevm-developer] Flushing strategy .... >Date: Wed, 11 Dec 2002 16:17:43 -0500 > >Gunda Domlur wrote: >> >> m4svm_instruction_head (GOTO, SVM_INTRP_FLAG_INLINEABLE, 2); >> >> pc = pc->addr; >> >> m4svm_instruction_tail (); >> >>Since GOTO changes the flow of control shouldn't that be flagged as >>_CONTAINS_BRANCH_OR_CALL ? There are a few others which looked suspicious. > >Also... Note that the body : > > pc = pc->addr; > >does NOT include any "if/switch/while"..." branch statement, nor any >function call. :-) > >Etienne > >-- >Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ >SableVM: http://www.sablevm.org/ >SableCC: http://www.sablecc.org/ > > > >------------------------------------------------------- >This sf.net email is sponsored by: >With Great Power, Comes Great Responsibility Learn to use your power at >OSDN's High Performance Computing Channel >http://hpc.devchannel.org/ >_______________________________________________ >Sablevm-developer mailing list >Sab...@li... >https://lists.sourceforge.net/lists/listinfo/sablevm-developer _________________________________________________________________ STOP MORE SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail |
From: Etienne M. G. <eti...@uq...> - 2002-12-11 21:25:22
|
Gunda Domlur wrote: > > m4svm_instruction_head (GOTO, SVM_INTRP_FLAG_INLINEABLE, 2); > > pc = pc->addr; > > m4svm_instruction_tail (); > > Since GOTO changes the flow of control shouldn't that be flagged as > _CONTAINS_BRANCH_OR_CALL ? There are a few others which looked suspicious. Also... Note that the body : pc = pc->addr; does NOT include any "if/switch/while"..." branch statement, nor any function call. :-) Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Etienne M. G. <eti...@uq...> - 2002-12-11 21:22:49
|
Gunda Domlur wrote: > The meaning of _UNUSED, _INLINEABLE and _BRANCH_OR_CALL seems obvious. > What is _SPECIAL ? Is it inlinebale or not ? SPECIAL instructions are *special* instructions that do not participate in inline-threading. They are instructions like the special PREPARE_METHOD which is a handler used to lazily prepare a method, etc. This sould become clearer once you have read chapter 2 of my thesis. Among other special instructions are "slow preparation" instructions [e.g. the version of GETSTATIC which does class initialization if necessary]. Etienne > > Thanks. > -Gunda > > > > >> From: "Etienne M. Gagnon" <eti...@uq...> >> To: Gunda Domlur <sab...@ho...> >> CC: sab...@li... >> Subject: Re: [Sablevm-developer] Flushing strategy .... >> Date: Tue, 10 Dec 2002 22:43:35 -0500 >> >> On Tue, Dec 10, 2002 at 03:17:33PM -0700, Gunda Domlur wrote: >> > Bottom-line: I think it is better off to provide iflush with a >> second size >> > parameter and leave the implementation specfic for a particular >> > architecture implementation. >> > >> > What say you ? >> >> Agreed. >> >> >> On another note: If you want to play with inline-threading, please try >> porting the folloowing interpreter to ARM: >> http://www-sor.inria.fr/~piumarta/pldi98/vm.c >> >> In fact, you might want to read the paper: >> http://www-sor.inria.fr/~piumarta/pldi98/ >> http://www-sor.inria.fr/~piumarta/pldi98/paper.ps.gz >> >> If you can get it to work, it should give us the base framework to get >> SableVM's inline-threaded engine to work on ARM. >> >> Have fun! >> >> Etienne >> >> -- >> Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ >> SableVM: http://www.sablevm.org/ >> SableCC: http://www.sablecc.org/ >> >> >> ------------------------------------------------------- >> This sf.net email is sponsored by: >> With Great Power, Comes Great Responsibility >> Learn to use your power at OSDN's High Performance Computing Channel >> http://hpc.devchannel.org/ >> _______________________________________________ >> Sablevm-developer mailing list >> Sab...@li... >> https://lists.sourceforge.net/lists/listinfo/sablevm-developer > > > > _________________________________________________________________ > The new MSN 8: smart spam protection and 2 months FREE* > http://join.msn.com/?page=features/junkmail > > > . > -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Etienne M. G. <eti...@uq...> - 2002-12-11 21:11:46
|
Gunda Domlur wrote: > Thanks for the links. > > In files instructions.m4.c you have > > /* > ---------------------------------------------------------------------- > GOTO > ---------------------------------------------------------------------- > */ > > m4svm_instruction_head (GOTO, SVM_INTRP_FLAG_INLINEABLE, 2); > > pc = pc->addr; > > m4svm_instruction_tail (); > > Since GOTO changes the flow of control shouldn't that be flagged as > _CONTAINS_BRANCH_OR_CALL ? There are a few others which looked suspicious. > > Am I missing something ? Yes (just a little). There's no need to flag GOTO (and other similar end-of-basic-block instructions) specially, as basic blocks are not computed based on this flag; they're computed based on the type of instruction. [Unlike the Piumarta algo/interpreter]. Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Gunda D. <sab...@ho...> - 2002-12-11 18:57:41
|
Sorry, another question. In file constants.h you have /* interpreter flags */ #define SVM_INTRP_FLAG_UNUSED 0 #define SVM_INTRP_FLAG_SPECIAL 1 #define SVM_INTRP_FLAG_INLINEABLE 2 #define SVM_INTRP_FLAG_CONTAINS_BRANCH_OR_CALL 3 The meaning of _UNUSED, _INLINEABLE and _BRANCH_OR_CALL seems obvious. What is _SPECIAL ? Is it inlinebale or not ? Thanks. -Gunda >From: "Etienne M. Gagnon" <eti...@uq...> >To: Gunda Domlur <sab...@ho...> >CC: sab...@li... >Subject: Re: [Sablevm-developer] Flushing strategy .... >Date: Tue, 10 Dec 2002 22:43:35 -0500 > >On Tue, Dec 10, 2002 at 03:17:33PM -0700, Gunda Domlur wrote: > > Bottom-line: I think it is better off to provide iflush with a second >size > > parameter and leave the implementation specfic for a particular > > architecture implementation. > > > > What say you ? > >Agreed. > > >On another note: If you want to play with inline-threading, please try >porting the folloowing interpreter to ARM: >http://www-sor.inria.fr/~piumarta/pldi98/vm.c > >In fact, you might want to read the paper: >http://www-sor.inria.fr/~piumarta/pldi98/ >http://www-sor.inria.fr/~piumarta/pldi98/paper.ps.gz > >If you can get it to work, it should give us the base framework to get >SableVM's inline-threaded engine to work on ARM. > >Have fun! > >Etienne > >-- >Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ >SableVM: http://www.sablevm.org/ >SableCC: http://www.sablecc.org/ > > >------------------------------------------------------- >This sf.net email is sponsored by: >With Great Power, Comes Great Responsibility >Learn to use your power at OSDN's High Performance Computing Channel >http://hpc.devchannel.org/ >_______________________________________________ >Sablevm-developer mailing list >Sab...@li... >https://lists.sourceforge.net/lists/listinfo/sablevm-developer _________________________________________________________________ The new MSN 8: smart spam protection and 2 months FREE* http://join.msn.com/?page=features/junkmail |
From: Gunda D. <sab...@ho...> - 2002-12-11 18:09:59
|
Thanks for the links. In files instructions.m4.c you have /* ---------------------------------------------------------------------- GOTO ---------------------------------------------------------------------- */ m4svm_instruction_head (GOTO, SVM_INTRP_FLAG_INLINEABLE, 2); pc = pc->addr; m4svm_instruction_tail (); Since GOTO changes the flow of control shouldn't that be flagged as _CONTAINS_BRANCH_OR_CALL ? There are a few others which looked suspicious. Am I missing something ? Thanks. -Gunda >On another note: If you want to play with inline-threading, please try >porting the folloowing interpreter to ARM: >http://www-sor.inria.fr/~piumarta/pldi98/vm.c > >In fact, you might want to read the paper: >http://www-sor.inria.fr/~piumarta/pldi98/ >http://www-sor.inria.fr/~piumarta/pldi98/paper.ps.gz > >If you can get it to work, it should give us the base framework to get >SableVM's inline-threaded engine to work on ARM. > >Have fun! > >Etienne > >-- >Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ >SableVM: http://www.sablevm.org/ >SableCC: http://www.sablecc.org/ > > >------------------------------------------------------- >This sf.net email is sponsored by: >With Great Power, Comes Great Responsibility >Learn to use your power at OSDN's High Performance Computing Channel >http://hpc.devchannel.org/ >_______________________________________________ >Sablevm-developer mailing list >Sab...@li... >https://lists.sourceforge.net/lists/listinfo/sablevm-developer _________________________________________________________________ Help STOP SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail |
From: Etienne M. G. <eti...@uq...> - 2002-12-11 15:46:52
|
Gunda Domlur wrote: > You had mentioned about running java programs which exercises all the > byte codes. Is there a benchmark/example java program which has the all > the byte-codes ? I don't know. You should give a look at the Mauve project (search "Mauve Java" on Google); maybe it has something. Etienne > > Thanks. > -Gunda > > > > > > >> From: "Etienne M. Gagnon" <eti...@uq...> >> To: Gunda Domlur <sab...@ho...> >> CC: sab...@li... >> Subject: Re: [Sablevm-developer] Flushing strategy .... >> Date: Tue, 10 Dec 2002 22:43:35 -0500 >> >> On Tue, Dec 10, 2002 at 03:17:33PM -0700, Gunda Domlur wrote: >> > Bottom-line: I think it is better off to provide iflush with a >> second size >> > parameter and leave the implementation specfic for a particular >> > architecture implementation. >> > >> > What say you ? >> >> Agreed. >> >> >> On another note: If you want to play with inline-threading, please try >> porting the folloowing interpreter to ARM: >> http://www-sor.inria.fr/~piumarta/pldi98/vm.c >> >> In fact, you might want to read the paper: >> http://www-sor.inria.fr/~piumarta/pldi98/ >> http://www-sor.inria.fr/~piumarta/pldi98/paper.ps.gz >> >> If you can get it to work, it should give us the base framework to get >> SableVM's inline-threaded engine to work on ARM. >> >> Have fun! >> >> Etienne >> >> -- >> Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ >> SableVM: http://www.sablevm.org/ >> SableCC: http://www.sablecc.org/ >> >> >> ------------------------------------------------------- >> This sf.net email is sponsored by: >> With Great Power, Comes Great Responsibility >> Learn to use your power at OSDN's High Performance Computing Channel >> http://hpc.devchannel.org/ >> _______________________________________________ >> Sablevm-developer mailing list >> Sab...@li... >> https://lists.sourceforge.net/lists/listinfo/sablevm-developer > > > > _________________________________________________________________ > Add photos to your e-mail with MSN 8. Get 2 months FREE*. > http://join.msn.com/?page=features/featuredemail > > > > ------------------------------------------------------- > This sf.net email is sponsored by: > With Great Power, Comes Great Responsibility Learn to use your power at > OSDN's High Performance Computing Channel > http://hpc.devchannel.org/ > _______________________________________________ > Sablevm-developer mailing list > Sab...@li... > https://lists.sourceforge.net/lists/listinfo/sablevm-developer > > -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Etienne M. G. <eti...@uq...> - 2002-12-11 15:46:34
|
Gunda Domlur wrote: > > So how difficult it is to change the iflush to include a second > parameter (for indicating size) in sablevm ? Is it trivial or does it > take lot of effort ? In SableVM: trivial In assembly: ... Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Gunda D. <sab...@ho...> - 2002-12-11 15:21:01
|
>On Tue, Dec 10, 2002 at 03:17:33PM -0700, Gunda Domlur wrote: > > Bottom-line: I think it is better off to provide iflush with a second >size > > parameter and leave the implementation specfic for a particular > > architecture implementation. > > > > What say you ? > >Agreed. > So how difficult it is to change the iflush to include a second parameter (for indicating size) in sablevm ? Is it trivial or does it take lot of effort ? Later, -Gunda _________________________________________________________________ The new MSN 8: smart spam protection and 2 months FREE* http://join.msn.com/?page=features/junkmail |
From: Gunda D. <sab...@ho...> - 2002-12-11 15:14:51
|
Cool. Now for the inline-threading to work on ARM, I did look at the post on the IA-64. I will try it out in the next few days and let you know. You had mentioned about running java programs which exercises all the byte codes. Is there a benchmark/example java program which has the all the byte-codes ? Thanks. -Gunda >From: "Etienne M. Gagnon" <eti...@uq...> >To: Gunda Domlur <sab...@ho...> >CC: sab...@li... >Subject: Re: [Sablevm-developer] Flushing strategy .... >Date: Tue, 10 Dec 2002 22:43:35 -0500 > >On Tue, Dec 10, 2002 at 03:17:33PM -0700, Gunda Domlur wrote: > > Bottom-line: I think it is better off to provide iflush with a second >size > > parameter and leave the implementation specfic for a particular > > architecture implementation. > > > > What say you ? > >Agreed. > > >On another note: If you want to play with inline-threading, please try >porting the folloowing interpreter to ARM: >http://www-sor.inria.fr/~piumarta/pldi98/vm.c > >In fact, you might want to read the paper: >http://www-sor.inria.fr/~piumarta/pldi98/ >http://www-sor.inria.fr/~piumarta/pldi98/paper.ps.gz > >If you can get it to work, it should give us the base framework to get >SableVM's inline-threaded engine to work on ARM. > >Have fun! > >Etienne > >-- >Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ >SableVM: http://www.sablevm.org/ >SableCC: http://www.sablecc.org/ > > >------------------------------------------------------- >This sf.net email is sponsored by: >With Great Power, Comes Great Responsibility >Learn to use your power at OSDN's High Performance Computing Channel >http://hpc.devchannel.org/ >_______________________________________________ >Sablevm-developer mailing list >Sab...@li... >https://lists.sourceforge.net/lists/listinfo/sablevm-developer _________________________________________________________________ Add photos to your e-mail with MSN 8. Get 2 months FREE*. http://join.msn.com/?page=features/featuredemail |
From: Etienne M. G. <eti...@uq...> - 2002-12-11 03:46:58
|
On Tue, Dec 10, 2002 at 03:17:33PM -0700, Gunda Domlur wrote: > Bottom-line: I think it is better off to provide iflush with a second size > parameter and leave the implementation specfic for a particular > architecture implementation. > > What say you ? Agreed. On another note: If you want to play with inline-threading, please try porting the folloowing interpreter to ARM: http://www-sor.inria.fr/~piumarta/pldi98/vm.c In fact, you might want to read the paper: http://www-sor.inria.fr/~piumarta/pldi98/ http://www-sor.inria.fr/~piumarta/pldi98/paper.ps.gz If you can get it to work, it should give us the base framework to get SableVM's inline-threaded engine to work on ARM. Have fun! Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Gunda D. <sab...@ho...> - 2002-12-10 22:17:43
|
Hi Etienne, In a previous posting you had the following to say on flushing strategy. Here are some more ideas. Currently you have _svmf_flush(_svmt_word *pword). This granularity is very inefficient for many present generation architecture implementations. The next best granularity would be the cache line. The best would would to do code generations for a "block" and then just call the iflush with a pointer and the length. The iflush can be tuned to a particular architecture (or more precisely an implementaion of the architecture). With cache sizes increasing (good fractions of a MB to several MB) it will be a bad idea to flush whole caches as this will greatly affect performance. The CPU bandwidth and the Memory bandwidth is increasing with successive generations .... Let's consider the following cases. 1. Implementation with no caches, then obviously iflush will have to do nothing. 2. Implementation with split I and D with no coherency between them. Then in this case one can either do flush on a cache line basis or if the routine figures out that size of code generations is >= cache size then it can just flush the whole caches. 3. Implementation with multi-level caches with unified caches occuring at higher levels. In this case we need only to flush to the first unified level (this will work only for the UP case). 4. MP implications, depending on the coherency of the various cache levels then one will have to invalidate all the other caches and write out the generated code to main memory. 5. For NUMA ?? Bottom-line: I think it is better off to provide iflush with a second size parameter and leave the implementation specfic for a particular architecture implementation. What say you ? Later, -Gunda Hi Grzegorz, You are doing some very interesting work. A simple comment: we will probably need to be ready to fine tune the flushing strategy for specific architectures. Should we act upon the "data" cache or the "instruction" cache, or both, and what is the ideal granularity of this action (single word (or cache line), or general flush), what do we flush (write back buffer only, all entries in the cache, ...). Yep, a lot of fun ahead... The simplest strategy, on the short term, would be a full cache flush ( of both instruction and data caches). As this only happens "once" for each executed method (at the end of method preparation), the simple approach might have no significant impact on the running time, while allowing the inline-threaded engine to work on modern processors. Of course, once we're done with the inline-threaded engine, we will have to attack the multi-processor cache coherency problem... Thanks a lot for this very important work. Etienne _________________________________________________________________ The new MSN 8: smart spam protection and 2 months FREE* http://join.msn.com/?page=features/junkmail |
From: Archie C. <ar...@de...> - 2002-12-10 20:00:04
|
Why not this patch? memset() is often a lot faster than loops, as the compiler may know how to optimize specially for it... if so this patch should speed up every new object allocation. -Archie __________________________________________________________________________ Archie Cobbs * Packet Design * http://www.packetdesign.com --- src/libsablevm/gc_copying.c.orig Tue Dec 10 11:51:13 2002 +++ src/libsablevm/gc_copying.c Tue Dec 10 11:51:34 2002 @@ -1054,14 +1054,7 @@ return JNI_ERR; } - { - size_t i; - - for (i = 0; i < instance_size; i++) - { - ((char *) result)[i] = 0; - } - } + memset(result, 0, instance_size); *pinstance = result; |
From: Archie C. <ar...@de...> - 2002-12-10 03:30:04
|
FYI- [ I've also submitted this to the bug DB ] I was trying to run an app and got an exception that looked like this: java.io.IOException: Pushback buffer is full at java.io.PushbackReader.unread(PushbackReader.java:319) at java.io.LineNumberReader.read(LineNumberReader.java:246) ... This appears to be a bug in LineNumberReader.java, which the patch below seems to fix. Thanks, -Archie __________________________________________________________________________ Archie Cobbs * Packet Design * http://www.packetdesign.com --- work/sablevm-class-library-1.0.5/src/java/io/LineNumberReader.java.orig Mon Dec 9 19:12:35 2002 +++ work/sablevm-class-library-1.0.5/src/java/io/LineNumberReader.java Mon Dec 9 19:12:02 2002 @@ -115,7 +115,7 @@ public LineNumberReader(Reader in, int size) { - super(new PushbackReader(in), size); + super(in, size); } /*************************************************************************/ @@ -243,7 +243,7 @@ int extra_char_read = super.read(); if ((extra_char_read != '\n') && (extra_char_read != -1)) - ((PushbackReader)in).unread(extra_char_read); + pos--; char_read = '\n'; ++line_number; |
From: Etienne M. G. <eg...@j-...> - 2002-12-10 02:37:31
|
On Mon, Dec 09, 2002 at 04:54:50PM -0700, Gunda Domlur wrote: > The inlined version still fails. Why ? Any particular area I should look at > to solve this problem ? I believe I have the _iflush routine implemented > correctly. Any pointers will be appreciated. Getting the inline-threaded engine to work is tricky. I suggest that you live with the switch and threaded engines for a little time. I'll be improving the portability framework for the inline-threaded engine in January 2003. I'll add the following features: 1- *partly* automatic detection of inlinability of instructions (on a specific architecture/compiler-options. 2- Better separation of inlinability specifications for specific platform/compiler-options. Of course, you can read chapter 2 of my thesis, when I put it online, to get a better idea of the problem. I just don't have time just now to explain all the details. Etienne -- Etienne M. Gagnon eg...@j-... SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Gunda D. <sab...@ho...> - 2002-12-10 00:13:18
|
Thanks Mike for the tip, it worked ! I now have the switched and the direct threaded interpreter working for small programs. I will stress test the vm's in a few days with larger programs. The inlined version still fails. Why ? Any particular area I should look at to solve this problem ? I believe I have the _iflush routine implemented correctly. Any pointers will be appreciated. Thanks. -Gunda >From: Mark Wielaard <ma...@kl...> >To: Gunda Domlur <sab...@ho...> >CC: sab...@li... >Subject: Re: [Sablevm-developer] Porting SableVM to ARM: Questions >Date: 07 Dec 2002 01:27:47 +0100 > >Hi, > >On Fri, 2002-12-06 at 20:05, Gunda Domlur wrote: > > The invocation was > > > > sable-debug -v HelloAppworld.class. > >Try specifying the class without the .class extension: > > sable-debug -v HelloAppworld > >Cheers, > >Mark > > > >------------------------------------------------------- >This sf.net email is sponsored by:ThinkGeek >Welcome to geek heaven. >http://thinkgeek.com/sf >_______________________________________________ >Sablevm-developer mailing list >Sab...@li... >https://lists.sourceforge.net/lists/listinfo/sablevm-developer _________________________________________________________________ The new MSN 8: advanced junk mail protection and 2 months FREE* http://join.msn.com/?page=features/junkmail |
From: Mark W. <ma...@kl...> - 2002-12-07 00:29:09
|
Hi, On Fri, 2002-12-06 at 20:05, Gunda Domlur wrote: > The invocation was > > sable-debug -v HelloAppworld.class. Try specifying the class without the .class extension: sable-debug -v HelloAppworld Cheers, Mark |
From: Etienne M. G. <eti...@uq...> - 2002-12-06 20:46:10
|
Gunda Domlur wrote: > java.lang.ClassNotFoundException: hello.class > at gnu.java.lang.SystemClassLoader.findClass(SystemClassLoader.java:73) > at java.lang.ClassLoader.loadClass(ClassLoader.java:308) > at java.lang.ClassLoader.loadClass(ClassLoader.java:259) > at java.lang.VirtualMachine.main(VirtualMachine.java:79) This is Great new! It means SableVM executes quite a lot of code. [Stack traces are computed in Java, so there's quite a lot of things that are running for the VM to be able to throw an exception with a stack trace on loading a class through a Java based class loader.] Now as to why you get an exception, we should investigate. Mainly, you could add a few System.out.println(...) traces in the class: gnu.java.lang.SystemClassLoader in the method "findClass(...)" This is, of course, located in the sablevm-class-library, in the file: src/gnu/java/lang/SystemClassLoader.java You must recompile, and try running SableVM with the modified class library. It's so much fun when bootstrapping is done, as you can start debugging the Java code instead of the C code... ;-) [Usually this is much easier to do, as you have String concatenation, and automatic int->String conversion in Java without worrying about memory]. I hope this helps. Etienne Gunda Domlur wrote: > Etienne, > > A little progress but my Hello world program still fails. > > I recompiled all the class libraries with jikes 1.15. Now sablevm can't > find the application class. > > The invocation was > > sable-debug -v HelloAppworld.class. > > The java source is > > class HelloWorldApp { > public static void main (String args[]) { > System.out.println("Hello World!"); > } > } > > > /* Expected Output: > Hello World! > */ > > I did compile the hello.java with jikes 1.15. > > Why are we not finding the application class ? Any ideas ? > > Thanks. > -Gunda > > The output from sablevm is as follows. > > > SableVM version 1.0.5 > Copyright (C) 2000-2002 Etienne M. Gagnon <eti...@uq...> and > others. All rights reserved. > > This software comes with ABSOLUTELY NO WARRANTY. This is free > software, and you are welcome to redistribute it under certain > conditions. > > To get the name of all copyright holders and detailed license > information, type "sablevm --license" or look in the directory > "/usr/local/share/sablevm". > > The SableVM web site is located at http://www.sablevm.org/ . > > [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 class: loading "java/lang/StackTraceElement"] > [verbose class: loading "java/lang/reflect/Constructor"] > [verbose class: loading "java/lang/reflect/AccessibleObject"] > [verbose class: loading "java/lang/reflect/Member"] > [verbose class: loading "java/lang/reflect/Field"] > [verbose class: loading "java/lang/reflect/Method"] > [verbose class: loading "java/lang/StringCreator"] > [verbose class: loading "java/lang/VirtualMachine"] > [verbose class: creating "[Z"] > [verbose class: creating "[S"] > [verbose class: creating "[C"] > [verbose class: creating "[I"] > [verbose class: creating "[J"] > [verbose class: creating "[F"] > [verbose class: creating "[D"] > [verbose class: loading "java/lang/ArithmeticException"] > [verbose class: loading "java/lang/RuntimeException"] > [verbose class: loading "java/lang/Exception"] > [verbose class: loading "java/lang/Throwable"] > [verbose class: loading "java/lang/ArrayIndexOutOfBoundsException"] > [verbose class: loading "java/lang/IndexOutOfBoundsException"] > [verbose class: loading "java/lang/ArrayStoreException"] > [verbose class: loading "java/lang/ClassCastException"] > [verbose class: loading "java/lang/IllegalMonitorStateException"] > [verbose class: loading "java/lang/NegativeArraySizeException"] > [verbose class: loading "java/lang/NoSuchFieldException"] > [verbose class: loading "java/lang/NoSuchMethodException"] > [verbose class: loading "java/lang/NullPointerException"] > [verbose class: loading "java/lang/AbstractMethodError"] > [verbose class: loading "java/lang/IncompatibleClassChangeError"] > [verbose class: loading "java/lang/LinkageError"] > [verbose class: loading "java/lang/Error"] > [verbose class: loading "java/lang/ClassCircularityError"] > [verbose class: loading "java/lang/ClassFormatError"] > [verbose class: loading "java/lang/ExceptionInInitializerError"] > [verbose class: loading "java/lang/InternalError"] > [verbose class: loading "java/lang/VirtualMachineError"] > [verbose class: loading "java/lang/NoClassDefFoundError"] > [verbose class: loading "java/lang/NoSuchFieldError"] > [verbose class: loading "java/lang/NoSuchMethodError"] > [verbose class: loading "java/lang/OutOfMemoryError"] > [verbose class: loading "java/lang/UnsatisfiedLinkError"] > [verbose class: loading "java/lang/UnsupportedClassVersionError"] > [verbose class: loading "java/lang/VerifyError"] > [verbose class: loading "java/lang/String"] > [verbose class: loading "java/lang/Comparable"] > [verbose class: loading "java/lang/CharSequence"] > [verbose class: loading "java/util/WeakHashMap"] > [verbose class: loading "java/util/AbstractMap"] > [verbose class: loading "java/util/Map"] > [verbose class: loading "java/lang/VMObject"] > [verbose class: loading "java/util/WeakHashMap$1"] > [verbose class: loading "java/util/WeakHashMap$WeakEntrySet"] > [verbose class: loading "java/util/AbstractSet"] > [verbose class: loading "java/util/AbstractCollection"] > [verbose class: loading "java/util/Collection"] > [verbose class: loading "java/util/Set"] > [verbose class: loading "java/lang/ref/ReferenceQueue"] > [verbose class: loading "java/util/WeakHashMap$WeakBucket"] > [verbose class: loading "java/lang/ref/WeakReference"] > [verbose class: loading "java/lang/ref/Reference"] > [verbose class: creating "[Ljava/util/WeakHashMap$WeakBucket;"] > [verbose class: loading "java/lang/System"] > [verbose class: loading "java/lang/VMSystem"] > [verbosjava.lang.ClassNotFoundException: hello.class > at gnu.java.lang.SystemClassLoader.findClass(SystemClassLoader.java:73) > at java.lang.ClassLoader.loadClass(ClassLoader.java:308) > at java.lang.ClassLoader.loadClass(ClassLoader.java:259) > at java.lang.VirtualMachine.main(VirtualMachine.java:79) > e class: loading "java/lang/Math"] > [verbose class: loading "java/lang/Runtime"] > [verbose class: loading "java/util/Properties"] > [verbose class: loading "java/util/Hashtable"] > [verbose class: loading "java/util/Dictionary"] > [verbose class: loading "java/util/Hashtable$HashEntry"] > [verbose class: loading "java/util/AbstractMap$BasicMapEntry"] > [verbose class: loading "java/util/Map$Entry"] > [verbose class: creating "[Ljava/util/Hashtable$HashEntry;"] > [verbose class: loading "java/util/StringTokenizer"] > [verbose class: loading "java/util/Enumeration"] > [verbose class: creating "[Ljava/lang/String;"] > [verbose class: loading "java/lang/StringBuffer"] > [verbose class: loading "java/lang/VMSecurityManager"] > [verbose class: loading "java/util/WeakHashMap$WeakBucket$WeakEntry"] > [verbose class: loading "java/io/BufferedInputStream"] > [verbose class: loading "java/io/FilterInputStream"] > [verbose class: loading "java/io/InputStream"] > [verbose class: loading "java/io/FileInputStream"] > [verbose class: loading "java/io/FileDescriptor"] > [verbose class: loading "java/io/PrintStream"] > [verbose class: loading "java/io/FilterOutputStream"] > [verbose class: loading "java/io/OutputStream"] > [verbose class: loading "java/io/BufferedOutputStream"] > [verbose class: loading "java/io/FileOutputStream"] > [verbose class: loading "java/io/PrintWriter"] > [verbose class: loading "java/io/Writer"] > [verbose class: loading "java/io/OutputStreamWriter"] > [verbose class: loading "gnu/java/io/EncodingManager"] > [verbose class: loading "java/lang/VMClassLoader"] > [verbose class: loading "gnu/java/io/decode/Decoder8859_1"] > [verbose class: loading "gnu/java/io/decode/DecoderEightBitLookup"] > [verbose class: loading "gnu/java/io/decode/Decoder"] > [verbose class: loading "java/io/Reader"] > [verbose class: creating "[Ljava/lang/Class;"] > [verbose class: creating "[Ljava/lang/Object;"] > [verbose class: loading "gnu/java/io/encode/Encoder8859_1"] > [verbose class: loading "gnu/java/io/encode/EncoderEightBitLookup"] > [verbose class: loading "gnu/java/io/encode/Encoder"] > [verbose class: loading "java/lang/String$CaseInsensitiveComparator"] > [verbose class: loading "java/util/Comparator"] > [verbose class: loading "java/lang/ClassLoader"] > [verbose class: loading "gnu/java/lang/SystemClassLoader"] > [verbose class: loading "java/util/HashMap"] > [verbose class: loading "java/util/HashMap$HashEntry"] > [verbose class: creating "[Ljava/util/HashMap$HashEntry;"] > [verbose class: loading "java/util/HashSet"] > [verbose class: loading "java/security/CodeSource"] > [verbose class: loading "java/security/Policy"] > [verbose class: loading "gnu/java/security/provider/DefaultPolicy"] > [verbose class: loading "java/security/AllPermission"] > [verbose class: loading "java/security/Permission"] > [verbose class: loading "java/security/Guard"] > [verbose class: loading "java/security/Permissions"] > [verbose class: loading "java/security/PermissionCollection"] > [verbose class: loading "java/security/AllPermissionCollection"] > [verbose class: loading "java/security/ProtectionDomain"] > [verbose class: loading "hello/class"] > [verbose class: loading "java/lang/ClassNotFoundException"] > [verbose class: loading "java/io/File"] > [verbose class: loading "java/util/Locale"] > [verbose class: loading "java/lang/Character"] > [verbose class: creating "[Ljava/lang/StackTraceElement;"] > [verbose class: loading "java/lang/Integer"] > [verbose class: loading "java/lang/Number"] > [verbose gc: total gc time = 0 sec 0 usec] > > > > > > > > > _________________________________________________________________ > STOP MORE SPAM with the new MSN 8 and get 2 months FREE* > http://join.msn.com/?page=features/junkmail > > > -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Gunda D. <sab...@ho...> - 2002-12-06 19:05:13
|
Etienne, A little progress but my Hello world program still fails. I recompiled all the class libraries with jikes 1.15. Now sablevm can't find the application class. The invocation was sable-debug -v HelloAppworld.class. The java source is class HelloWorldApp { public static void main (String args[]) { System.out.println("Hello World!"); } } /* Expected Output: Hello World! */ I did compile the hello.java with jikes 1.15. Why are we not finding the application class ? Any ideas ? Thanks. -Gunda The output from sablevm is as follows. SableVM version 1.0.5 Copyright (C) 2000-2002 Etienne M. Gagnon <eti...@uq...> and others. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. To get the name of all copyright holders and detailed license information, type "sablevm --license" or look in the directory "/usr/local/share/sablevm". The SableVM web site is located at http://www.sablevm.org/ . [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 class: loading "java/lang/StackTraceElement"] [verbose class: loading "java/lang/reflect/Constructor"] [verbose class: loading "java/lang/reflect/AccessibleObject"] [verbose class: loading "java/lang/reflect/Member"] [verbose class: loading "java/lang/reflect/Field"] [verbose class: loading "java/lang/reflect/Method"] [verbose class: loading "java/lang/StringCreator"] [verbose class: loading "java/lang/VirtualMachine"] [verbose class: creating "[Z"] [verbose class: creating "[S"] [verbose class: creating "[C"] [verbose class: creating "[I"] [verbose class: creating "[J"] [verbose class: creating "[F"] [verbose class: creating "[D"] [verbose class: loading "java/lang/ArithmeticException"] [verbose class: loading "java/lang/RuntimeException"] [verbose class: loading "java/lang/Exception"] [verbose class: loading "java/lang/Throwable"] [verbose class: loading "java/lang/ArrayIndexOutOfBoundsException"] [verbose class: loading "java/lang/IndexOutOfBoundsException"] [verbose class: loading "java/lang/ArrayStoreException"] [verbose class: loading "java/lang/ClassCastException"] [verbose class: loading "java/lang/IllegalMonitorStateException"] [verbose class: loading "java/lang/NegativeArraySizeException"] [verbose class: loading "java/lang/NoSuchFieldException"] [verbose class: loading "java/lang/NoSuchMethodException"] [verbose class: loading "java/lang/NullPointerException"] [verbose class: loading "java/lang/AbstractMethodError"] [verbose class: loading "java/lang/IncompatibleClassChangeError"] [verbose class: loading "java/lang/LinkageError"] [verbose class: loading "java/lang/Error"] [verbose class: loading "java/lang/ClassCircularityError"] [verbose class: loading "java/lang/ClassFormatError"] [verbose class: loading "java/lang/ExceptionInInitializerError"] [verbose class: loading "java/lang/InternalError"] [verbose class: loading "java/lang/VirtualMachineError"] [verbose class: loading "java/lang/NoClassDefFoundError"] [verbose class: loading "java/lang/NoSuchFieldError"] [verbose class: loading "java/lang/NoSuchMethodError"] [verbose class: loading "java/lang/OutOfMemoryError"] [verbose class: loading "java/lang/UnsatisfiedLinkError"] [verbose class: loading "java/lang/UnsupportedClassVersionError"] [verbose class: loading "java/lang/VerifyError"] [verbose class: loading "java/lang/String"] [verbose class: loading "java/lang/Comparable"] [verbose class: loading "java/lang/CharSequence"] [verbose class: loading "java/util/WeakHashMap"] [verbose class: loading "java/util/AbstractMap"] [verbose class: loading "java/util/Map"] [verbose class: loading "java/lang/VMObject"] [verbose class: loading "java/util/WeakHashMap$1"] [verbose class: loading "java/util/WeakHashMap$WeakEntrySet"] [verbose class: loading "java/util/AbstractSet"] [verbose class: loading "java/util/AbstractCollection"] [verbose class: loading "java/util/Collection"] [verbose class: loading "java/util/Set"] [verbose class: loading "java/lang/ref/ReferenceQueue"] [verbose class: loading "java/util/WeakHashMap$WeakBucket"] [verbose class: loading "java/lang/ref/WeakReference"] [verbose class: loading "java/lang/ref/Reference"] [verbose class: creating "[Ljava/util/WeakHashMap$WeakBucket;"] [verbose class: loading "java/lang/System"] [verbose class: loading "java/lang/VMSystem"] [verbosjava.lang.ClassNotFoundException: hello.class at gnu.java.lang.SystemClassLoader.findClass(SystemClassLoader.java:73) at java.lang.ClassLoader.loadClass(ClassLoader.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:259) at java.lang.VirtualMachine.main(VirtualMachine.java:79) e class: loading "java/lang/Math"] [verbose class: loading "java/lang/Runtime"] [verbose class: loading "java/util/Properties"] [verbose class: loading "java/util/Hashtable"] [verbose class: loading "java/util/Dictionary"] [verbose class: loading "java/util/Hashtable$HashEntry"] [verbose class: loading "java/util/AbstractMap$BasicMapEntry"] [verbose class: loading "java/util/Map$Entry"] [verbose class: creating "[Ljava/util/Hashtable$HashEntry;"] [verbose class: loading "java/util/StringTokenizer"] [verbose class: loading "java/util/Enumeration"] [verbose class: creating "[Ljava/lang/String;"] [verbose class: loading "java/lang/StringBuffer"] [verbose class: loading "java/lang/VMSecurityManager"] [verbose class: loading "java/util/WeakHashMap$WeakBucket$WeakEntry"] [verbose class: loading "java/io/BufferedInputStream"] [verbose class: loading "java/io/FilterInputStream"] [verbose class: loading "java/io/InputStream"] [verbose class: loading "java/io/FileInputStream"] [verbose class: loading "java/io/FileDescriptor"] [verbose class: loading "java/io/PrintStream"] [verbose class: loading "java/io/FilterOutputStream"] [verbose class: loading "java/io/OutputStream"] [verbose class: loading "java/io/BufferedOutputStream"] [verbose class: loading "java/io/FileOutputStream"] [verbose class: loading "java/io/PrintWriter"] [verbose class: loading "java/io/Writer"] [verbose class: loading "java/io/OutputStreamWriter"] [verbose class: loading "gnu/java/io/EncodingManager"] [verbose class: loading "java/lang/VMClassLoader"] [verbose class: loading "gnu/java/io/decode/Decoder8859_1"] [verbose class: loading "gnu/java/io/decode/DecoderEightBitLookup"] [verbose class: loading "gnu/java/io/decode/Decoder"] [verbose class: loading "java/io/Reader"] [verbose class: creating "[Ljava/lang/Class;"] [verbose class: creating "[Ljava/lang/Object;"] [verbose class: loading "gnu/java/io/encode/Encoder8859_1"] [verbose class: loading "gnu/java/io/encode/EncoderEightBitLookup"] [verbose class: loading "gnu/java/io/encode/Encoder"] [verbose class: loading "java/lang/String$CaseInsensitiveComparator"] [verbose class: loading "java/util/Comparator"] [verbose class: loading "java/lang/ClassLoader"] [verbose class: loading "gnu/java/lang/SystemClassLoader"] [verbose class: loading "java/util/HashMap"] [verbose class: loading "java/util/HashMap$HashEntry"] [verbose class: creating "[Ljava/util/HashMap$HashEntry;"] [verbose class: loading "java/util/HashSet"] [verbose class: loading "java/security/CodeSource"] [verbose class: loading "java/security/Policy"] [verbose class: loading "gnu/java/security/provider/DefaultPolicy"] [verbose class: loading "java/security/AllPermission"] [verbose class: loading "java/security/Permission"] [verbose class: loading "java/security/Guard"] [verbose class: loading "java/security/Permissions"] [verbose class: loading "java/security/PermissionCollection"] [verbose class: loading "java/security/AllPermissionCollection"] [verbose class: loading "java/security/ProtectionDomain"] [verbose class: loading "hello/class"] [verbose class: loading "java/lang/ClassNotFoundException"] [verbose class: loading "java/io/File"] [verbose class: loading "java/util/Locale"] [verbose class: loading "java/lang/Character"] [verbose class: creating "[Ljava/lang/StackTraceElement;"] [verbose class: loading "java/lang/Integer"] [verbose class: loading "java/lang/Number"] [verbose gc: total gc time = 0 sec 0 usec] _________________________________________________________________ STOP MORE SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail |
From: Etienne M. G. <eti...@uq...> - 2002-12-06 01:19:59
|
On Thu, Dec 05, 2002 at 05:04:19PM -0700, Gunda Domlur wrote: > I think I found the problem. In files class_loader.c at line 305 you are > checking for version number of the class file. The Object.class file under > ...../java/lang on my machine has a major_version of 47 and a minor_version > of 0. With these values the check in the code fails. > > Don't know the details of this version number. I built the class libraries > using jikes 1.18 on a P4/Linux box. > > What can I do step around this problem ? Please compile classes using jikes-1.15. Newer versions of Jikes are not yet supported (there are known problems with Jikes 1.17 them that need further investigation). As for the class version number, it means that Jikes 1.18 generates bytecode which is not supported by the currently published JVM specification (i.e. second edition)... Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Gunda D. <sab...@ho...> - 2002-12-06 00:05:15
|
Etienne, I think I found the problem. In files class_loader.c at line 305 you are checking for version number of the class file. The Object.class file under ...../java/lang on my machine has a major_version of 47 and a minor_version of 0. With these values the check in the code fails. Don't know the details of this version number. I built the class libraries using jikes 1.18 on a P4/Linux box. What can I do step around this problem ? Thanks. -Gunda >From: "Etienne M. Gagnon" <eti...@uq...> >To: Gunda Domlur <sab...@ho...> >CC: sab...@li... >Subject: Re: [Sablevm-developer] Porting SableVM to ARM: Questions >Date: Thu, 5 Dec 2002 12:17:39 -0500 > >On Thu, Dec 05, 2002 at 12:14:03PM -0500, Etienne M. Gagnon wrote: > > ./configure --enable-debuggin-features > >This should be: --enable_debugging_features > >Etienne >-- >Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ >SableVM: http://www.sablevm.org/ >SableCC: http://www.sablecc.org/ > > >------------------------------------------------------- >This sf.net email is sponsored by:ThinkGeek >Welcome to geek heaven. >http://thinkgeek.com/sf >_______________________________________________ >Sablevm-developer mailing list >Sab...@li... >https://lists.sourceforge.net/lists/listinfo/sablevm-developer _________________________________________________________________ STOP MORE SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail |
From: Etienne M. G. <eti...@uq...> - 2002-12-05 17:27:42
|
On Thu, Dec 05, 2002 at 12:14:03PM -0500, Etienne M. Gagnon wrote: > ./configure --enable-debuggin-features This should be: --enable_debugging_features Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |