Jump to content


Photo
- - - - -

Number of Logic ID


25 replies to this topic

#1 Vol Yip

Vol Yip

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 393 posts
  • Gender:Male
  • Location:Hong Kong

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

#2 Chris Pepper

Chris Pepper

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 369 posts
  • Gender:Male
  • Location:United Kingdom

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.

#3 Vol Yip

Vol Yip

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 393 posts
  • Gender:Male
  • Location:Hong Kong

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.

#4 Vol Yip

Vol Yip

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 393 posts
  • Gender:Male
  • Location:Hong Kong

Posted 17 April 2002 - 07:08 AM

Just one more follow up.... if the logic really exceed, what normally can we do? (one method of course to split the function into two but which is not very applicable in screen function :)

#5 Mike Schoen

Mike Schoen

    Expert

  • Members
  • PipPipPipPip
  • 198 posts
  • Gender:Male
  • Location:Guelph, Canada

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.

#6 Richard Bassett

Richard Bassett

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 696 posts
  • Location:Rural France

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.
Nothing's as simple as you think

#7 Vol Yip

Vol Yip

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 393 posts
  • Gender:Male
  • Location:Hong Kong

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?

#8 Richard Bassett

Richard Bassett

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 696 posts
  • Location:Rural France

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.
Nothing's as simple as you think

#9 Vol Yip

Vol Yip

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 393 posts
  • Gender:Male
  • Location:Hong Kong

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?

#10 Richard Bassett

Richard Bassett

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 696 posts
  • Location:Rural France

Posted 18 April 2002 - 02:39 PM

Clue: Your customer is not counting the global logics.
Nothing's as simple as you think

#11 Fred Marker

Fred Marker

    Advanced

  • Members
  • PipPipPip
  • 82 posts
  • Gender:Male
  • Location:Columbus, Ohio, United States

Posted 18 April 2002 - 03:56 PM

What does the gen process actually do? Does it create any type of source code (like C)? Is this source accessible?

#12 Richard Bassett

Richard Bassett

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 696 posts
  • Location:Rural France

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.
Nothing's as simple as you think

#13 Cheryl Lipsey

Cheryl Lipsey

    Member

  • Members
  • PipPip
  • 33 posts
  • Gender:Female
  • Location:Gainesville, FL

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?

#14 Dan Shannon

Dan Shannon

    ProIV Guru

  • Members
  • PipPipPipPipPip
  • 374 posts
  • Gender:Male
  • Location:Australia

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

#15 Shaun Rudland

Shaun Rudland

    Expert

  • Members
  • PipPipPipPip
  • 165 posts
  • Location:Queensland, Australia

Posted 23 April 2002 - 09:28 PM

SL deletes the PRO-IV function at the start of the SL regen, and re-builds from the ground-up.
PRO-IV free for 385 Days B)



Reply to this topic



  


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users