[lisaac-Bugs][312425] Dynamic inheritance
lisaac-bugs at alioth.debian.org
lisaac-bugs at alioth.debian.org
Thu Apr 1 01:30:31 UTC 2010
Bugs item #312425, was opened at 2010-04-01 03:30 by Mildred Ki'Lya
You can respond by visiting:
https://alioth.debian.org/tracker/?func=detail&atid=413092&aid=312425&group_id=100200
Status: Open
Priority: 3
Submitted By: Mildred Ki'Lya (mildred-guest)
Assigned to: Nobody (None)
Summary: Dynamic inheritance
Target Milestone: None
Category: None
Initial Comment:
Not to repeat myself:
// Lisaac BUG: with dynamic inheritance. Say we have a prototype SELF
// inheriting from ROOT. Now, we dynamically change the parent to use P that
// is a child of ROOT.
//
// When code in P tries to call a slot specific to P (the slot is not defined
// in ROOT). Instead of looking at the slot in P, it tries to look at the slot
// in SELF, then in ROOT.
//
// If the slot is found in SELF, then it is called. That is wrong, it should
// call the slot in P instead. The fact is that SELF never redefined the slot
// that P tries to call, and it might well do something completely different
// than the slot in P does.
//
// And if the slot is not found at all, the compiler throws an error.
The testcase is in features/dynamic-inheritance.feature
When I run the testcase, I get:
Feature: Dynamic Inheritance
Background: # features/dynamic-inheritance.feature:3
Given lisaac/bin is in the PATH # features/step_definitions/steps.rb:3
And make.lip is installed # features/step_definitions/steps.rb:8
Scenario: # features/dynamic-inheritance.feature:7
Given I am in an empty directory # ures/step_definitions/steps.rb:14
And a file "hello.li": # ures/step_definitions/steps.rb:34
"""
Section Header
+ name := HELLO;
Section Inherit
+ parent_root :ROOT := ROOT;
Section Public
- main <-
(
hello;
parent_root := TOTO;
hello;
);
"""
And a file "root.li": # ures/step_definitions/steps.rb:34
"""
Section Header
+ name := ROOT;
Section Public
- hello <-
(
"Hello ROOT".println;
);
"""
And a file "toto.li": # ures/step_definitions/steps.rb:34
"""
Section Header
+ name := TOTO;
Section Inherit
+ parent_root :Expanded ROOT;
Section Public
- toto <-
(
"Hello back from TOTO".println;
);
- hello <-
(
"Hello TOTO".println;
toto;
);
"""
When I run lisaac hello # ures/step_definitions/steps.rb:67
Then it should pass # ures/step_definitions/steps.rb:79
Failed with exit status 256
Output:
Depending pass: ..--SEMANTIC---------
Slot `toto' not found in `HELLO'.
Line 19 column 8 in TOTO(.../tmp/toto.li):
toto;
^
Load lip file: ./../make.lip
(RuntimeError)
/home/mildred/Projects/Lisaac/compiler-stable/features/step_definitions/steps.rb:84:in `/^it should (fail|pass)$/'
features/dynamic-inheritance.feature:66:in `Then it should pass'
When I run ./hello # ures/step_definitions/steps.rb:67
Then it should pass with # ures/step_definitions/steps.rb:89
"""
Hello ROOT
Hello TOTO
Hello back from TOTO
"""
Failing Scenarios:
cucumber features/dynamic-inheritance.feature:7 # Scenario:
1 scenario (1 failed)
10 steps (1 failed, 2 skipped, 7 passed)
0m0.098s
----------------------------------------------------------------------
You can respond by visiting:
https://alioth.debian.org/tracker/?func=detail&atid=413092&aid=312425&group_id=100200
More information about the Lisaac-devel
mailing list