Strange lock-ups with simple E program
Thomas Leonard <tal-v5nx5w6akNyLE8xUarVfuPLx9OUvmyODWmv/[email protected]>
| Newsgroups | gmane.comp.lang.e.general |
|---|---|
| Organization | IT Innovation |
| Message-ID | <[email protected]> |
Hi,
I was trying to find out why my E program failed from time to time, and eventually simplified it to this:
pragma.syntax("0.9")
def seedVatAuthor := <elang:interp.seedVatAuthor>
def seedVat := seedVatAuthor(<unsafe>)
def obj := seedVat.run("def test() { return null }")[0]
var i := 0
def stress() {
i += 1
if (i < 10 || (i % 100) == 0) { println(`i: $i`) }
when (obj<-()) -> { stress() }
}
stress()
interp.blockAtTop()
It runs for a while, but then it hangs (after printing "i: 11800", "i:
2300" and "i: 36900" on my last few runs).
While simplifying it, I quite often also got these:
java.lang.RuntimeException: Failed: OldFarRef may only be smashed: <Far
ref>
(I see from the svn logs that an "OldFarRef" is just a normal far ref)
Any hints on how to debug this? I was using e.version=0.9.2a (according
to the eprops file), but I also tried with svn. That also hangs, but
sometimes prints:
error: problem: <ViciousCycleException: Caught in a forwarding loop>
Other times, it doesn't print anything.
Thanks,
--
Dr Thomas Leonard
IT Innovation Centre
2 Venture Road
Southampton
Hampshire SO16 7NP
Tel: +44 0 23 8076 0834
Fax: +44 0 23 8076 0833
mailto:tal-v5nx5w6akNyLE8xUarVfuPLx9OUvmyODWmv/[email protected]
http://www.it-innovation.soton.ac.uk