To add just a bit of technical background: the 256 character restriction is not
imposed by NTFS , CIFS, SMB, nor any remote or network file system. It is
imposed by the Windows API itself, and persists to this day, unless you use UNC
"\\system\path" naming. It is commonly called a 260 character limit because the
full path must be 256 or less after the leading "C:\" and trailing null byte
are stripped off.
When the Windows API is called, even with a relative path, at some point it
will be resolved into a full absolute path, even if your code doesn't do that.
Therefore we should not allow file names or relative paths in IBIS files to
even approach 256 characters, to leave some overhead for the base directory
path to combine with the relative path to form a full absolute path that does
not exceed the limit. My observation is that users seem to like burying
projects under many levels of nested directories, and headaches can ensue.
Mike
From: "Walter Katz" <wkatz@xxxxxxxxxx>
To: "Bob Ross" <bob@xxxxxxxxxxxxxxxxx>, "IBIS-ATM" <ibis-macro@xxxxxxxxxxxxx>
Sent: Wednesday, April 19, 2017 8:10:06 AM
Subject: [ibis-macro] Re: Bird 186.3_Draft_1 (character length restrictions on
file naming rules.
Bob,
Not so simple. Here is a specific example:
xyz..ibis is in “C:/…../library/ibis/”.
“C:/…../library/ibis/” is 128 characters long.
The “system path name” of xyz.ibs is 128+7=135 characters long.
In xyz.ibs is a file “<pkg folder/>xyz.ims”.
<pkg folder/> is 100 characters long.
“<pkg folder/>xyz.ims” is 100+7=107 characters long
In xyz.ims is a file “<subckt folder/>xyz.s256p”
< subckt folder /> is 100 characters long.
“<pkg folder/>< subckt folder /> xyz. xyz.s256p” is 100+100+9=209 characters
long relative to directory containing the .ibs file (“full path name”)
“C:/…../library/ibis/”<pkg folder/>< subckt folder /> xyz.s256p” is 128+209=337
characters long (“system path name”)
Translating the following statement
If there are “file names” specified in files referenced by the IBIS file, then
the full path name relative to the directory containing the IBIS file shall not
exceed one hundred and twenty eight (128) characters.
For this example:
If there are “file names” ( xyz.s256p ) specified in files referenced by the
IBIS file ( “<pkg folder/>xyz.ims”. ) , then the full path name relative to the
directory containing the IBIS file ( “<pkg folder/>< subckt folder /> xyz.
xyz.s256p” = 209) shall not exceed one hundred and twenty eight (128)
characters.
I think the wording is precise and correct. To Arpads point I think we should
define:
“full path name” is the name of a file in the IBIS file and in any file
referenced in the IBIS file including all of the folders in the file name
between the directory containing the IBIS file.
“system path name” is the name of the file in the IBIS file and in any file
referenced in the IBIS file including all of the folders in the file name
between the file system root directory and the file.
Walter
Walter Katz
[ mailto:wkatz@xxxxxxxxxx ;| wkatz@xxxxxxxxxx ]
Phone 303.449-2308
Mobile 303.335-6156
From: Bob Ross [mailto:bob@xxxxxxxxxxxxxxxxx] ;
Sent: Wednesday, April 19, 2017 12:34 AM
To: wkatz@xxxxxxxxxx; 'IBIS-ATM' <ibis-macro@xxxxxxxxxxxxx>
Subject: RE: [ibis-macro] Bird 186.3_Draft_1 (character length restrictions on
file naming rules.
Walter,
“File name” is optional path plus base name plus optional extension.
The base name plus (optional) extension is limited to 64 characters,
Optional path is limited to 64 characters
Why do we need the additional statement below, which is always satisifed?
If there are “file names” specified in files referenced by the IBIS file, then
the full path name relative to the directory containing the IBIS file shall not
exceed one hundred and twenty eight (128) characters.
Bob
From: [ mailto:ibis-macro-bounce@xxxxxxxxxxxxx ;|
ibis-macro-bounce@xxxxxxxxxxxxx ] [ [ mailto:ibis-macro-bounce@xxxxxxxxxxxxx ;|
mailto:ibis-macro-bounce@xxxxxxxxxxxxx ] ] On Behalf Of Walter Katz ;
Sent: Tuesday, April 18, 2017 1:17 PM
To: IBIS-ATM
Subject: [ibis-macro] Bird 186.3_Draft_1 (character length restrictions on file
naming rules.
All,
The new paragraph below in red was added to 186.3. Two other lines were deleted
as a result.
3. “file name” shall mean the name of the file, including the path relative to
the directory containing the file that references the “file name”. A “file
name” may not be a directory. The “file name” has three sections, “path name”
(optional), “base name” and “extension name” (characters following the last “.”
In “file name”). The number of character in the combined “base name” and
“extension name” shall not exceed sixty-four (64) characters. The number of
characters in “path name” shall not exceed sixty-four (64) characters. If there
are “file names” specified in files referenced by the IBIS file, then the full
path name relative to the directory containing the IBIS file shall not exceed
one hundred and twenty eight (128) characters.
The file name must use characters from the following set (space, “ ”, 0x20 is
not included):
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 _ ^ $ ~ ! # % & - { } ) ( @ ‘ ` . /
Note that files names in the Windows operating system are case insensitive and
case preserving, while file names in Linux operating systems are case
sensitive. When a [ https://en.wikipedia.org/wiki/Computer ;| computer ] [
https://en.wikipedia.org/wiki/File_system ;| file system ] stores file names,
the computer may keep or discard [ https://en.wikipedia.org/wiki/Letter_case ;|
case ] information. When the case is stored, it is called case preservation .
File names in IBIS files should be case sensitive so that the IBIS file and the
files it references will work properly on both Windows and Linux operating
systems. The “/” character is used to delineate directories in a file name. The
character sequence “../” is not permitted, except that it is permitted if
generated by the EDA tool. Absolute or relative paths can be generated by the
EDA tool in applications as needed. The EDA tool is responsible for making any
operating system-specific adjustments (for example, replacing forward slashes
"/" with backslashes "\") if necessary.
The characters after the last “.” are considered the file name extension, where
the extension shall not contain a “/”. There are places in this document that
specify the file name extension for specific files types (e.g. .ibs, .pkg, and
.ami). These extensions are case sensitive.
A “file name” may not be a directory.
Directory (path) names follow the same rules as file names, except that they
shall be the name of a directory.
Walter Katz
[ mailto:wkatz@xxxxxxxxxx ;| wkatz@xxxxxxxxxx ]
Phone 303.449-2308
Mobile 303.335-6156