vermaseren / form

The FORM project for symbolic manipulation of very big expressions
GNU General Public License v3.0
1.14k stars 136 forks source link

Length of expression names #192

Closed jodavies closed 6 years ago

jodavies commented 7 years ago

Hello, I have just noticed that in the manual it says

The length of names is not restricted in FORM. There is one exception to this rule: names of expressions cannot be longer than 16 characters.

I regularly use Local expressions with names longer than this, and have never had any issues.

What, precisely, are the restrictions here, if any?

Thanks, Josh.

tueda commented 7 years ago

I digged the forum and found https://www.nikhef.nl/~form/forum/viewtopic.php?f=4&t=190&p=568.

Expressions with names more than 16 characters can't fit in the normal statistics, which may breaks programs parsing the FORM output or log (like formprof.py).

L F234567890123456 = 1;
L F2345678901234567 = 1;
L F23456789012345678 = 1;
L F23456789012345678901234567890 = 1;
P;
.end
FORM 4.1 (Jun  6 2017, v4.1-20131025-347-g76561be) 64-bits  Run: Wed Jun  7 16:39:17 2017
    L F234567890123456 = 1;
    L F2345678901234567 = 1;
    L F23456789012345678 = 1;
    L F23456789012345678901234567890 = 1;
    P;
    .end

Time =       0.00 sec    Generated terms =          1
F234567890123456         Terms in output =          1
                         Bytes used      =         20

Time =       0.00 sec    Generated terms =          1
2345678901234567         Terms in output =          1
                         Bytes used      =         20

Time =       0.00 sec    Generated terms =          1
3456789012345678         Terms in output =          1
                         Bytes used      =         20

Time =       0.00 sec    Generated terms =          1
5678901234567890         Terms in output =          1
                         Bytes used      =         20

   F234567890123456 =
      1;

   F2345678901234567 =
      1;

   F23456789012345678 =
      1;

   F23456789012345678901234567890 =
      1;

For now I don't see any other issues. The last one in the above example (30 characters) looks OK in the Print output.

vermaseren commented 7 years ago

There is another issue here. In the .sav files there is a fixed size for each entry. There the maximum size has been set to MAXENAME which is 16 (see the struct of type INDEXENTRY. If this is to be changed, .sav files are not backwards compatible. People will complain.

Jos

On 7 jun. 2017, at 16:43, Takahiro Ueda notifications@github.com wrote:

I digged the forum and found https://www.nikhef.nl/~form/forum/viewtopic.php?f=4&t=190&p=568 https://www.nikhef.nl/%7Eform/forum/viewtopic.php?f=4&t=190&p=568.

Expressions with names more than 16 characters can't fit in the normal statistics, which may breaks programs parsing the FORM output or log (like formprof.py).

L F234567890123456 = 1; L F2345678901234567 = 1; L F23456789012345678 = 1; L F23456789012345678901234567890 = 1; P; .end FORM 4.1 (Jun 6 2017, v4.1-20131025-347-g76561be) 64-bits Run: Wed Jun 7 16:39:17 2017 L F234567890123456 = 1; L F2345678901234567 = 1; L F23456789012345678 = 1; L F23456789012345678901234567890 = 1; P; .end

Time = 0.00 sec Generated terms = 1 F234567890123456 Terms in output = 1 Bytes used = 20

Time = 0.00 sec Generated terms = 1 2345678901234567 Terms in output = 1 Bytes used = 20

Time = 0.00 sec Generated terms = 1 3456789012345678 Terms in output = 1 Bytes used = 20

Time = 0.00 sec Generated terms = 1 5678901234567890 Terms in output = 1 Bytes used = 20

F234567890123456 = 1;

F2345678901234567 = 1;

F23456789012345678 = 1;

F23456789012345678901234567890 = 1; For now I don't see any other issues. The last one in the above example (30 characters) looks OK in the Print output.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/vermaseren/form/issues/192#issuecomment-306816913, or mute the thread https://github.com/notifications/unsubscribe-auth/AFLxEucO6u8tP5Y8QpBT5TuLigRD1oGMks5sBrcdgaJpZM4NyyZt.