PR# 17119 Compiling mixed-case file name generates invalid ECF
Problem Report Summary
Submitter: peter_gummer
Category: Compiler
Priority: Medium
Date: 2010/09/19
Class: Bug
Severity: Serious
Number: 17119
Release: 6.6.83873
Confidential: No
Status: Open
Responsible:
Environment: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-au) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5
Synopsis: Compiling mixed-case file name generates invalid ECF
Description
If I create a class HELLOWORLD inside a file called helloWorld.e (note the upper-case W), and then compile twice, the second compilation fails, as shown below. It adds the "helloworld" target to the ECF twice. Note that it has changed the target name to lower case. This is probably the cause of the problem. Presumably it is doing a case-sensitive search of the existing ECF for "helloWorld", and of course it does not find it, so it adds the target to the ECF again.
To Reproduce
$ ec helloWorld.e Eiffel Compilation Manager Version 6.6.8.3873 GPL Edition - macosx-x86 Degree 6: Examining System Degree 5: Parsing Classes Degree 4: Analyzing Inheritance Degree 3: Checking Types Degree 2: Generating Byte Code Freezing System Changes Degree -1: Generating Code System Recompiled. Eiffel C/C++ Compilation Tool - Version 6.5 Copyright Eiffel Software 1985-2009. All Rights Reserved Preparing C compilation Compiling C code in E1 Compiling C code in C1 C compilation completed $ ec helloWorld.e ------------------------------------------------------------------------------- Error code: VD00 General configuration parsing error. What to do: fix the configuration file. Parse error in ./helloWorld.ecf (line 10, column 27): Multiple targets with name helloworld. ------------------------------------------------------------------------------- Press <Return> to resume compilation or <Q> to quit q $ cat helloWorld.ecf <?xml version="1.0" encoding="ISO-8859-1"?> <system xmlns="http://www.eiffel.com/developers/xml/configuration-1-6-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-6-0 http://www.eiffel.com/developers/xml/configuration-1-6-0.xsd" name="helloworld" uuid="4D76B88D-1442-4942-B339-B74FA2A17721"> <target name="helloworld"> <root class="HELLOWORLD" feature="make"/> <setting name="console_application" value="true"/> <precompile name="base_pre" location="$ISE_PRECOMP\base.ecf"/> <library name="base" location="$ISE_LIBRARY\library\base\base.ecf"/> <cluster name="helloworld" location=".\"/> </target> <target name="helloworld"> <root class="HELLOWORLD" feature="make"/> <setting name="console_application" value="true"/> <precompile name="base_pre" location="$ISE_PRECOMP\base.ecf"/> <library name="base" location="$ISE_LIBRARY\library\base\base.ecf"/> <cluster name="helloworld" location=".\"/> </target> </system> $
Problem Report Interactions