Post Reply 
Easy as { 1 2 3 }? (when { 1 2 3 } ≠ { 1 2 3 })
07-15-2018, 04:52 AM
Post: #5
RE: Easy as { 1 2 3 }?
(07-15-2018 04:12 AM)Joe Horn Wrote:  Uh oh... I just took a peek, and I wish you luck. None of those commands have a dispatch for the integer type, and for reals they do a NOP. So the "normalization" must be done by the dispatch code (not in the S Series but added in the G Series), specifically the code which handles integers when no integer dispatch exists. I've never delved that deeply into the ROM.

I've already started looking at SIMPLIFY. In that particular case, there's a dispatch for BINT10 (hex A), which is "Symbolic class". This is where the long-form ZINT ends up branching. Unfortunately, it looks like the way this ends up getting handled is to pass the zint to CASEVAL, which in turn passes it to CASCOMPEVAL, and from there I'm starting to get a headache trying to trace what happens. This is nothing new, it seems to happen every time I start trying to trace something that branches into a CAS handler. Smile

I did some experiments with a short SysRPL routine that simply passed all zints to CASEVAL, and ended up with run times similar to the →STR STR→ methods. So at the moment it's looking like my choices are:

1) Drive myself crazy trying to trace through the various CAS handlers until I find something that will be highly-specific to a rev. 2.15 ROM (and perhaps still not be directly applicable to a separate routine like I need).

2) Use →STR STR→ and put up with the wait.

3) Spend a bit more time optimizing the existing code I already have and grudgingly accept the memory footprint in return for the performance.

I'm leaning toward #3 at present.

While I was at it, I looked a bit more closely at the handlers for reals and noticed why everything I've tried already does the substitutions for those: it conveniently occurs in the PUSH% code, which is ultimately what most everything calls when placing a real on the stack (either directly or indirectly). That's why this issue seems to be isolated to exact integers.
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Easy as { 1 2 3 }? - Joe Horn - 07-15-2018, 12:52 AM
RE: Easy as { 1 2 3 }? - DavidM - 07-15-2018, 01:41 AM
RE: Easy as { 1 2 3 }? - Joe Horn - 07-15-2018, 04:12 AM
RE: Easy as { 1 2 3 }? - DavidM - 07-15-2018 04:52 AM
RE: Easy as { 1 2 3 }? - Claudio L. - 07-15-2018, 05:54 PM
RE: Easy as { 1 2 3 }? - DavidM - 07-15-2018, 06:07 PM
RE: Easy as { 1 2 3 }? - Claudio L. - 07-16-2018, 04:25 AM
RE: Easy as { 1 2 3 }? - DavidM - 07-17-2018, 03:05 AM
RE: Easy as { 1 2 3 }? - rprosperi - 07-17-2018, 03:26 AM
RE: Easy as { 1 2 3 }? - DavidM - 07-17-2018, 03:31 AM
RE: Easy as { 1 2 3 }? - Massimo Gnerucci - 07-17-2018, 06:33 AM
RE: Easy as { 1 2 3 }? - John Keith - 07-17-2018, 12:32 PM
RE: Easy as { 1 2 3 }? - Massimo Gnerucci - 07-17-2018, 02:11 PM
RE: Easy as { 1 2 3 }? - John Keith - 07-17-2018, 08:49 PM
RE: Easy as { 1 2 3 }? - John Keith - 07-15-2018, 01:01 PM
RE: Easy as { 1 2 3 }? - Dave Britten - 07-15-2018, 02:38 PM
RE: Easy as { 1 2 3 }? - DavidM - 07-15-2018, 05:21 PM
RE: Easy as { 1 2 3 }? - Eddie W. Shore - 07-17-2018, 12:43 PM
RE: Easy as { 1 2 3 }? - rprosperi - 07-17-2018, 01:06 PM
RE: Easy as { 1 2 3 }? - DavidM - 07-17-2018, 01:41 PM
RE: Easy as { 1 2 3 }? - John Keith - 07-17-2018, 08:42 PM
RE: Easy as { 1 2 3 }? - ttw - 07-17-2018, 04:00 PM
RE: Easy as { 1 2 3 }? - BartDB - 07-17-2018, 04:51 PM
RE: Easy as { 1 2 3 }? - pier4r - 08-07-2018, 04:07 PM



User(s) browsing this thread: 1 Guest(s)