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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.