bugLiberty Eiffel - Bugs: bug #43631, program, used to compile under...

 
 

bug #43631: program, used to compile under SmallEiffel, crashes compile_to_c

Submitted by:  Laurie Moye <lauriemoye>
Submitted on:  Tue 18 Nov 2014 05:40:36 PM UTC  
 
Category: SmartEiffelSeverity: 4 - Important
Priority: 5 - NormalStatus: Fixed
Assigned to: Cyril Adrian <cadrian>Open/Closed: Closed
Release: adlerFixed Release: bell
Planned Release: bell

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Tue 18 Nov 2014 10:05:44 PM UTC, comment #3:

fixed by http://git.savannah.gnu.org/cgit/liberty-eiffel.git/commit/?id=59993186aa267e675c5553d8bf16ccc9c68ea052

Cyril Adrian <cadrian>
Project AdministratorIn charge of this item.
Tue 18 Nov 2014 09:26:25 PM UTC, comment #2:

`like Current` creation does work indeed; the core library itself uses it (e.g. MUTABLE_BIG_INTEGER line 2721, LINKED_LIST line 380, UNUSED_EXPRESSION line 55…)

The only constraint is on the heirs of Current to have a `make` creation feature.

--

Now, about this bug: the problem is in EFFECTIVE_ARG_LIST_N.collect (line 643): `cf.item(j)` is Void.

What's left now is to understand why :-)

Cyril Adrian <cadrian>
Project AdministratorIn charge of this item.
Tue 18 Nov 2014 06:28:41 PM UTC, comment #1:

For me it looks like the construct
local
next_item : like Current
do
create next_item.make(successors.lower, successors.upper)
end

I. e. a create instruction with an anchored "like Current" type. I'm not yet convinced, that I like this construct and am not sure whether we should allow it. (what does ECMA say here?)

Raphael Mack <ramack>
Project Administrator
Tue 18 Nov 2014 05:40:36 PM UTC, original submission:

I have a little program that I wrote some years ago and compiled with SmallEiffel (probably 0.75 as I never bothered to follow the later syntax changes). When I try to compile this program with Adler, it crashes compile_to_c. I've packaged up various tarballs which I hope will help you work out what's going wrong. Each tarball expands into a directory with the same name as the tarball.

Original.tgz is the original code, but with all the syntax changes I think are necessary to make it compile under Adler. It includes the traceback from the crash of adler compile_to_c conpiled -no_check-no_gc -no_strip (I've also included the command file that compiles compile_to_c).

Compiles.tgz is the same code slightly modified, which Adler compile_to_c compiles correctly. It has been changed in the following way.

The program computes anagrams from a lexicon and a string of letters. It compiles the lexicon internally into a word-tree composed of LEXICAL_TREE_ITEMs, but in the original program I wrote all the nescessary code for LEXICAL_TREE_ITEM as a generalised MULTI_WAY_TREE_ITEM. LEXICAL_TREE_ITEM inherits this and redefines the make feature to have fixed limits of 'a' to 'z'. All I've done in compiles.tgz is eliminate MULTI_WAY_TREE_ITEM and put its code into LEXICAL_TREE_ITEM.

These two examples are only really interesting because they show that it is the inheritance of MULTI_WAY_TREE_ITEM that causes the problem. So, I have reduced the code to the minimum number of lines that I can get which crashes compile_to_c in the same way (with the same end to the traceback). This is in minimum-crash.tgz.

On the way to deriving minimum-crash.tgz I was suprised to find that it was the climb feature, not just the make feature that has to be called to make compile_to_c crash, so I've also included minimum-compiles.tgz as an example of stripped down code which I expected to crash compile_to_c, but which doesn't.

Laurie Moye <lauriemoye>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #32460:  original.tgz added by lauriemoye (8KiB - application/x-gzip)
file #32461:  minimum-crash.tgz added by lauriemoye (4KiB - application/x-gzip)
file #32462:  compiles.tgz added by lauriemoye (122KiB - application/x-gzip)
file #32463:  minimum-compiles.tgz added by lauriemoye (30KiB - application/x-gzip)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by ramack (Updated the item)
  • -unavailable- added by lauriemoye (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 13 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 02 Dec 2014 08:01:37 PM UTCcadrianOpen/ClosedOpen=>Closed
    Tue 18 Nov 2014 10:05:44 PM UTCcadrianFixed ReleaseNone=>bell
    Tue 18 Nov 2014 10:05:43 PM UTCcadrianStatusConfirmed=>Fixed
    Tue 18 Nov 2014 09:53:44 PM UTCcadrianAssigned toNone=>cadrian
    Tue 18 Nov 2014 09:26:25 PM UTCcadrianCategoryNone=>SmartEiffel
      StatusNone=>Confirmed
    Tue 18 Nov 2014 06:13:26 PM UTCramackSeverity3 - Normal=>4 - Important
      ReleaseNone=>adler
      Planned ReleaseNone=>bell
    Tue 18 Nov 2014 05:40:36 PM UTClauriemoyeAttached File-=>Added original.tgz, #32460
      Attached File-=>Added minimum-crash.tgz, #32461
      Attached File-=>Added compiles.tgz, #32462
      Attached File-=>Added minimum-compiles.tgz, #32463

    Back to the top


    Powered by Savane 3.1-cleanup1