EEC-Developers / eec

Enhanced E Compiler - AmigaE programming
Other
12 stars 3 forks source link

Constant E-Lists are not working on a PowerPC use case #8

Open SamuraiCrow opened 4 years ago

SamuraiCrow commented 4 years ago

When trying to run the list hash test in framework, it doesn't produce a pointer to an EList constant.

SamuraiCrow commented 2 years ago

Under new version tested under MorphOS, the list still doesn't show up but the WriteF statement may be the culprit. When breaking up the WriteF to accept one parameter at a time, all but the last parameter now shows up.

SamuraiCrow commented 2 years ago

Getter is returning 0 or NIL to both the listHash and the pointerHash. The problem is either with the compiler or hashBase.

SamuraiCrow commented 2 years ago

I rewrote hashBase module to eliminate a pure virtual constructor. (How did I ever expect that to work?) It still returns a bunch of NILs, however my attempt at writing a minimal test case still consistently works. Is there no way to recreate this bug reliably or eliminate it definitively?

SamuraiCrow commented 1 year ago

This may involve stack corruption. @mness1978 had found similar stack corruption in the CreativE builds in Assembly. This may need more serious consideration.

dmcoles commented 1 year ago

Can you explain more accurately where the issue lies and what the symptoms are? I tried compiling the listhashtest using evo and then ecx targeting os3 and os4 and got similar results with all 3

SamuraiCrow commented 1 year ago

When I declare an E-List inline, I'd sometimes get a NIL value. The test code is from the EEC framework in the hash data structures. https://github.com/EEC-Developers/framework/blob/master/Hash/ListHashTest.e is one I've never gotten to work right.

dmcoles commented 1 year ago

I don't think I can recreate this

SamuraiCrow commented 1 year ago

It may be an artifact of another, already-solved bug. I'll see if I can re-create it myself. If not, I'll just close it. Thanks for looking, @dmcoles .

dmcoles commented 1 year ago

I did find an issue and some inconsistency around how ecx works vs original E/E-VO in relation to lists though. I've sent you a pm on Facebook as it may be easier to discuss. I think it would be good to have consistency between these compilers

SamuraiCrow commented 1 year ago

Thanks for looking again! I'm not often on Facebook anymore but I'll look.

SamuraiCrow commented 9 months ago

Line 7656 in eecmain.e is one place to look because that's where elists are parsed.