
Number of Logic ID
Started by Vol Yip, Apr 17 2002 04:37 AM
25 replies to this topic
#1
Posted 17 April 2002 - 04:37 AM
In PRO-IV version 4.6, do we still have an limitation that the number of PRO-IV logic cannot exceed 255?
My customer has a function which it has PRO-IV logic up to 227 and when the function is regened, there is an PRO-IV regen error saying the the number of logic is exceed. Does anyone know why it stops at 227?
Thanks
My customer has a function which it has PRO-IV logic up to 227 and when the function is regened, there is an PRO-IV regen error saying the the number of logic is exceed. Does anyone know why it stops at 227?
Thanks
#2
Posted 17 April 2002 - 06:19 AM
The limitation is 255 logics per function at the native PRO-IV level.
This includes Global Logics. So you need to count the total number of logics.
To make things more difficult Superlayer generates additional logics and global logics at the PRO-IV level, so you would need to analyse the Function at the PRO-IV level to discover how many additional logics are actually used.
This includes Global Logics. So you need to count the total number of logics.
To make things more difficult Superlayer generates additional logics and global logics at the PRO-IV level, so you would need to analyse the Function at the PRO-IV level to discover how many additional logics are actually used.
#3
Posted 17 April 2002 - 07:07 AM
Yes, I knew this. It just that when the SuperLayer Regen abort with the error logic exceed, my customer goes to the Native PRO-IV and found that there are only 227 logic....
Will this be possible that during SL regen, system tries to generate a number of logic (maybe from global function) and found that there is not enough logic id (for example global function needs 30 logic and the current logic id is 227), so it stops and we see 227 in PROIV?
Thanks.
Will this be possible that during SL regen, system tries to generate a number of logic (maybe from global function) and found that there is not enough logic id (for example global function needs 30 logic and the current logic id is 227), so it stops and we see 227 in PROIV?
Thanks.
#5
Posted 17 April 2002 - 11:40 AM
Both the number of global logics and the number of global_lscalls count toward the maximum of 255.
One option to reduce the number of logics is to change any lookup windows that use logics to global windows,
ie a window on a currency field etc.
to reduce logics used.
One option to reduce the number of logics is to change any lookup windows that use logics to global windows,
ie a window on a currency field etc.
to reduce logics used.
#6
Posted 17 April 2002 - 08:13 PM
Just a thought.
Are you sure you are allowing for ALL the global logics you may be calling - ie. glogic called by other glogic (to arbitrary depth)...
That can take quite a bit to follow through to the bitter end so your customer probably only counts local logic.
Are you sure you are allowing for ALL the global logics you may be calling - ie. glogic called by other glogic (to arbitrary depth)...
That can take quite a bit to follow through to the bitter end so your customer probably only counts local logic.
Nothing's as simple as you think
#7
Posted 18 April 2002 - 12:06 AM
I thought in PRO-IV specification, all global logic / global function which has been called will be embedded into the calling function. So, if my customer counts the PRO-IV spec, I believe he is counting all.
Just my thought, there is a superlayer global logic with number of logic > 30 and when regen, since the current logic for the calling function is 227, the system is not going to embed this global logic at all (as 227 + 30 will be greater than 255), therefore he got regen error but PRO-IV spec of the calling function just has 227 logic. Will this be possible?
Just my thought, there is a superlayer global logic with number of logic > 30 and when regen, since the current logic for the calling function is 227, the system is not going to embed this global logic at all (as 227 + 30 will be greater than 255), therefore he got regen error but PRO-IV spec of the calling function just has 227 logic. Will this be possible?
#8
Posted 18 April 2002 - 08:36 AM
Global logic is indeed genned into every function which uses it. Global (callable) functions certainly aren't - that would defeat their purpose.
I don't know what you mean when you say 'my customer counts the Pro-IV spec', you need to be a bit more precise.
To emphasise: actual logic IDs (the 3-digit numbers you see on the screen) are irrelevant, what matters is the number of distinct logic routines. As far as I know, Pro-IV has only 255 'slots' internally, each of which can be occupied by a local logic (with a 3-digit ID) or a global logic.
I don't know what you mean when you say 'my customer counts the Pro-IV spec', you need to be a bit more precise.
To emphasise: actual logic IDs (the 3-digit numbers you see on the screen) are irrelevant, what matters is the number of distinct logic routines. As far as I know, Pro-IV has only 255 'slots' internally, each of which can be occupied by a local logic (with a 3-digit ID) or a global logic.
Nothing's as simple as you think
#9
Posted 18 April 2002 - 09:01 AM
Yes, what I mean is that my customer looks into the PRO-IV function and found that there are only 227 logic. However, when he regen the SuperLayer, he encountered 'Logic exceed' error. Definitely he has less than 227 logic in SL, so he goes to PRO-IV to see if the number of Logic in PRO-IV exceeds and he got the number 227 there.
Any clue?
Any clue?
#12
Posted 18 April 2002 - 06:48 PM
No, AFAIAA Pro-IV gen doesn't create anything human-readable (although I'm a bit out of date and not P4GUI-literate).
Gen writes binary code into genfile.pro which is read and interpreted by the Pro-IV kernel when you execute a function. It's a very similar idea to a Java compiler creating bytecode which is interpreted by the Java virtual machine.
Historically Pro-IV used to call this arrangement 'table-driven' but I see they've started using the term virtual machine in some cases as people presumably understand that more readily now. For some reason people are reluctant to call an interpreter an interpreter!
In fact some would say Pro-IV missed an opportunity to BE Java
HTH.
Gen writes binary code into genfile.pro which is read and interpreted by the Pro-IV kernel when you execute a function. It's a very similar idea to a Java compiler creating bytecode which is interpreted by the Java virtual machine.
Historically Pro-IV used to call this arrangement 'table-driven' but I see they've started using the term virtual machine in some cases as people presumably understand that more readily now. For some reason people are reluctant to call an interpreter an interpreter!
In fact some would say Pro-IV missed an opportunity to BE Java

HTH.
Nothing's as simple as you think
#13
Posted 23 April 2002 - 01:15 PM
Actually, you are correct. SuperLayer generates PRO-IV code. The PRO-IV code is then 'compiled' to be run (as per Richard Bassett's reply).
From the errors I have seen, I am not completely sure if the SL regen completely rewrites the PRO-IV code or if it modifies the required pieces. Does anyone know the answer to this?
From the errors I have seen, I am not completely sure if the SL regen completely rewrites the PRO-IV code or if it modifies the required pieces. Does anyone know the answer to this?
#14
Posted 23 April 2002 - 09:03 PM
In SuperLayer, the regen process generates Native PRO-IV source code which is then genned (or at least it used to when I last used SL). You can get at the generated source by simply removing the production flag from the function at the native level, then edit the code.
SL does add in a load of its own internal code, including a number of global logics. This may well account for the 227/255 difference that Vol Yip is wondering about.
Dan Shannon
SL does add in a load of its own internal code, including a number of global logics. This may well account for the 227/255 difference that Vol Yip is wondering about.
Dan Shannon
Reply to this topic

0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users