Archived

This forum has been archived. Please start a new discussion on GitHub.

slice2cs reports: "input files must end with `.ice'" when given a wildcard argument

Platform: Windows
Version: Ice 3.2.1.

To reproduce:
Create any normal ice file.
Type in "slice2cs *.ice" on the command line
Note the error message.
Note that a valid .cs file is still produced.

Everything is fine except for the error message, which leads you to think that the program did not work when in fact it did.

Example:

T:\felix_grid_server\grid_interfaces\src\IceFiles>dir
Volume in drive T is DATA
Volume Serial Number is 4CC3-C718

Directory of T:\felix_grid_server\grid_interfaces\src\IceFiles

16/07/2008 15:50 <DIR> .
16/07/2008 15:50 <DIR> ..
16/07/2008 14:53 111 GridGateway.ice
16/07/2008 14:52 109 GridGateway.ice~
2 File(s) 220 bytes
2 Dir(s) 6,406,430,720 bytes free

T:\felix_grid_server\grid_interfaces\src\IceFiles>t:\thirdparty_libs\zerocIce\Ice-3.2.1\bin\slice2cs *.ice
t:\thirdparty_libs\zerocIce\Ice-3.2.1\bin\slice2cs: input files must end with `.ice'

T:\felix_grid_server\grid_interfaces\src\IceFiles>dir
Volume in drive T is DATA
Volume Serial Number is 4CC3-C718

Directory of T:\felix_grid_server\grid_interfaces\src\IceFiles

16/07/2008 15:52 <DIR> .
16/07/2008 15:52 <DIR> ..
16/07/2008 15:52 18,773 GridGateway.cs
16/07/2008 14:53 111 GridGateway.ice
16/07/2008 14:52 109 GridGateway.ice~
3 File(s) 18,993 bytes
2 Dir(s) 6,406,410,240 bytes free

Comments

  • dwayne
    dwayne St. John's, Newfoundland
    This problem appears to no longer occur with the latest version of Ice, 3.3.0.

    Dwayne
  • I just downloaded Ice 3.3.0 and the behaviour appears to be exactly the same:

    T:\felix_grid_server\grid_interfaces\src\IceFiles>dir
    Volume in drive T is DATA
    Volume Serial Number is 4CC3-C718

    Directory of T:\felix_grid_server\grid_interfaces\src\IceFiles

    16/07/2008 16:46 <DIR> .
    16/07/2008 16:46 <DIR> ..
    16/07/2008 14:53 111 GridGateway.ice
    16/07/2008 14:52 109 GridGateway.ice~
    2 File(s) 220 bytes
    2 Dir(s) 6,366,867,456 bytes free

    T:\felix_grid_server\grid_interfaces\src\IceFiles>c:\Ice-3.3.0\bin\slice2cs *.ice
    c:\Ice-3.3.0\bin\slice2cs: input files must end with `.ice'

    T:\felix_grid_server\grid_interfaces\src\IceFiles>dir
    Volume in drive T is DATA
    Volume Serial Number is 4CC3-C718

    Directory of T:\felix_grid_server\grid_interfaces\src\IceFiles

    16/07/2008 16:46 <DIR> .
    16/07/2008 16:46 <DIR> ..
    16/07/2008 16:46 17,396 GridGateway.cs
    16/07/2008 14:53 111 GridGateway.ice
    16/07/2008 14:52 109 GridGateway.ice~
    3 File(s) 17,616 bytes
    2 Dir(s) 6,366,846,976 bytes free

    What test were you conducting to conclude that this is fixed in Ice 3.3.0?
  • dwayne
    dwayne St. John's, Newfoundland
    The problem appears to be the presence of the GridGateway.ice~ file. If you remove that file then the warning should go away. I also don't see the warning if I run slice2cs from a cygwin window, which is what I originally did to test this. Either way, thanks for the report, we will look into it further.

    Dwayne
  • Ah thanks! That makes some sense. The Gateway.ice~ file is created by VIM. So looks like it's actually an issue with the wildcard matching... At least now I know what it is so I can work around it... It wouldn't happen with cygwin because the cygwin shell expands the asterix ('*') before it is passed to the program, like UNIX. The issue must be with the wildcard expansion inside slice2cs itself.
  • OT question

    I am sorry for hijacking this thread but a question to Mr. Collingsworth. Are you the same Paul Collingsworth that used to frequent the discuss.develop.com mailing lists in the glory days of COM/DCOM/ATL when Don Box was still with Developmentor and Al Major/Michael Nelson were still around?
  • The issue must be with the wildcard expansion inside slice2cs itself.

    There is no wildcard expansion inside slice2cs. It simply processes its arguments and, if it sees something that doesn't end with ".ice", it complains.

    Presumably, the cmd shell incorrectly expands "*.ice" to include the backup ".ice~" file name, which doesn't end in ".ice", hence the complaint. You can easily test this by checking the output produced by "echo *.ice" in the same cmd shell.

    Cheers,

    Michi.
  • Aargh... I forgot, and Marc just reminded me.

    On Windows, you link with setargv.obj to get the wildcard expansion. We do link with setargv.obj for slice2cs. So, I'd say this is a bug in setargv.obj.

    You could drop some trace in the main() and print out what is actually passed to the compiler. That will narrow it at least.

    Cheers,

    Michi.
  • Yeah - more intrinsic to windows than anything else:

    T:\felix_grid_server\grid_interfaces\src\IceFiles>dir *.ice
    Volume in drive T is DATA
    Volume Serial Number is 4CC3-C718

    Directory of T:\felix_grid_server\grid_interfaces\src\IceFiles

    16/07/2008 14:53 111 GridGateway.ice
    16/07/2008 14:52 109 GridGateway.ice~
    2 File(s) 220 bytes
    0 Dir(s) 6,532,702,208 bytes free
  • To clarify what I meant by that last post: because the behaviour is consistent with other windows applications wildcard expansion (i.e. "dir *.ice" returns .ice~ files too), I no longer think that this is a bug in slice2cs.
  • I agree. I mean, if you wanted x.ice~ as well, you would say

    dir *.ice~

    I don't think there is much we could do about this. Who knows what other errors are present in the wildcard expansion...

    Cheers,

    Michi.