--- Log opened Mon Jun 15 00:00:06 2009 07:18 < penberg> vegard: oh? lots of conflicts, I assume? 08:08 < penberg> tgrabiec: ping 08:09 < penberg> tgrabiec: what's with the clear_exception() + signal_exception() magic going in in throw_exception_from()? 08:09 < penberg> tgrabiec: why do we need to clear it in the first place? 10:10 < tgrabiec> penberg: because when we lookup exception handler, class resolvation might occurre. Class resolvation can throw exception and some part of that process checks for it. If exception is not cleared then class resolvation will always fail. 10:15 < tgrabiec> penberg: i think that exception inside lookup should be handled so that it's cause is set to exception that caused the lookup and the new exception is thrown instead of the original one. 10:16 < tgrabiec> i was going to do it when i return from exam, which is about to start in 4 hours 10:21 < tgrabiec> i'm going also to fix the problem of throwing exception from unlockObject in exit block which currently will surely cause an infinite loop. 10:33 < penberg> aha 10:33 < penberg> tgrabiec: good luck with the exam, btw! 12:46 -!- tgrabiec [n=tomekg@rev-189-107.ramtel.pl] has quit ["Leaving"] 16:38 -!- tgrabiec [n=tomekg@rev-189-107.ramtel.pl] has joined #jato 17:59 -!- tgrabiec [n=tomekg@rev-189-107.ramtel.pl] has quit [Remote closed the connection] 20:01 -!- penberg_home [n=penberg@cs149038.pp.htv.fi] has joined #jato 20:23 -!- tgrabiec [n=tomekg@rev-189-107.ramtel.pl] has joined #jato 20:24 < penberg_home> tgrabiec: so how did it go?-) 20:24 < tgrabiec> penberg_home: not that bad, I possibly passed, but you never know 20:32 <@ahuillet> :) 20:38 < penberg_home> :) 20:41 < penberg_home> tgrabiec: so about the clearing thing 20:41 < penberg_home> tgrabiec: I am still not sure we need it 20:42 < penberg_home> tgrabiec: can't we just overwrite the exception if a new exception happens while we're unwinding? 20:42 < penberg_home> and oh 20:43 < penberg_home> I am going to be totally off-line from Thursday to Sunday 20:43 < penberg_home> midsummer celebration here in Finland. 20:43 < penberg_home> so don't panic if I don't answer your emails until Monday or so ;) 20:43 < tgrabiec> penberg_home: ok, happy celebration :) 20:44 < penberg_home> thanks 20:44 < tgrabiec> penberg_home: about the clearing, i don't get what you mean, what has unwinding to do with that ? 20:44 < penberg_home> well, with "unwinding" I mean the throw_exception_from() function, really. 20:45 < penberg_home> or whatever it's called ;) 20:45 < penberg_home> where we do the exception clear + set 20:45 < tgrabiec> aha. 20:45 < penberg_home> of which I asked about in the morning 20:45 < penberg_home> I think it's conceptually unwinding even though we might have a local exception handler. 20:45 <@ahuillet> oh, celebrations. I guess I should celebrate end of school soon too 20:46 < penberg_home> ahuillet: and the upcoming midterm evaluations ;) 20:46 <@ahuillet> "midterm" 20:46 <@ahuillet> google really places it badly in my opinion :) 20:46 < tgrabiec> penberg_home: well, we surely need to owerwrite exception if it happens in eh lookup, but we need to clear it before 20:46 < penberg_home> ahuillet: ;) 20:47 < penberg_home> tgrabiec: yes, but why do we need to do the clearing part?-) 20:47 < tgrabiec> penberg_home: because somewhere deep inside resolveClass() it is checked whether exceptionOccurred() and if it is true, then ClassNotFoundException is thrown 20:48 < tgrabiec> so if we don't clear, jamVM thinks something bad happend and does not finish resolvation 20:48 < penberg_home> aah 20:48 < penberg_home> ok, lets wait for cafebabe then 20:48 < penberg_home> i think we can do that in a cleaner way 20:48 < penberg_home> but lets not touch jamvm at this point 20:48 < vegard> yes, good idea. 20:48 < vegard> thanks. 20:49 < penberg_home> vegard: you mean touching jamvm?-) 20:49 < vegard> otoh 20:49 < vegard> I don't really care about jamvm. it's all gone in my tree anyway :) 20:49 < vegard> changing vm/ and jit/ is the problematic part. 20:49 < penberg_home> I am sure you care about broken regression tests after you merge ;) 20:51 < tgrabiec> penberg_home: there is another way of getting rid of those clear/set inside throw_exception_from() - we can use a separate thread-local storage for exception that is beeing thrown (unwinding). In that scheme exception is cleared _before_ it's delivery begins 20:53 < tgrabiec> So exception is "unsignalled" before throw_exception_from() is called 20:57 < penberg_home> right 20:57 < penberg_home> lets not worry about it for now 20:58 < penberg_home> we probably don't need a "exception_occured()" check in resolve_class() 20:58 < penberg_home> in cafebabe 20:58 < penberg_home> but rather, signal the error condition in some other way 20:58 < penberg_home> so we don't need to do clearing at all 20:58 < penberg_home> and can simply overwrite the exception nicely. 20:59 < tgrabiec> penberg_home: ok 21:31 -!- penberg_home [n=penberg@cs149038.pp.htv.fi] has quit [] --- Log closed Tue Jun 16 00:00:12 2009