[ nice-Bugs-1196571 ] weird infinite loop in Satisfier
"SourceForge.net" <[email protected]> Sat, 21 May 2005 09:37:31 -0700
| Newsgroups | gmane.comp.lang.nice.devel |
|---|---|
| Message-ID | <[email protected]> |
Bugs item #1196571, was opened at 2005-05-06 17:28
Message generated for change (Comment added) made by artemgr
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=112788&aid=1196571&group_id=12788
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Artem Gr Kozarezov (artemgr)
Assigned to: Nobody/Anonymous (nobody)
Summary: weird infinite loop in Satisfier
Initial Comment:
main:
[1] mlsub.typing.lowlevel.Domain.isEmpty (Domain.java:54)
[2] mlsub.typing.lowlevel.DomainVector.gfpSweep
(DomainVector.java:128)
[3] mlsub.typing.lowlevel.DomainVector.gfp
(DomainVector.java:175)
[4] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:79)
[5] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[6] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[7] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[8] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[9] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[10] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[11] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[12] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[13] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[14] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[15] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[16] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[17] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[18] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[19] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[20] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[21] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[22] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[23] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[24] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[25] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[26] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[27] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[28] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[29] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[30] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[31] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[32] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[33] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[34] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[35] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[36] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[37] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[38] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[39] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[40] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[41] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[42] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[43] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[44] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[45] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[46] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[47] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[48] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[49] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[50] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[51] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[52] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[53] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[54] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[55] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[56] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[57] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[58] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[59] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[60] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[61] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[62] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[63] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[64] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[65] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[66] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[67] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[68] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[69] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[70] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[71] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[72] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[73] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[74] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[75] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[76] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[77] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[78] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[79] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[80] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[81] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[82] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[83] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[84] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[85] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[86] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[87] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[88] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[89] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[90] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[91] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[92] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[93] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[94] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[95] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[96] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[97] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[98] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[99] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[100] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[101] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[102] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[103] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[104] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[105] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[106] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[107] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[108] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[109] mlsub.typing.lowlevel.Satisfier.enumerate
(Satisfier.java:99)
[110] mlsub.typing.lowlevel.Satisfier.satisfy
(Satisfier.java:155)
[111] mlsub.typing.lowlevel.K0.rawSatisfy (K0.java:1а234)
[112] mlsub.typing.lowlevel.K0.satisfy (K0.java:1а220)
[113] mlsub.typing.lowlevel.Engine$Constraint.satisfy
(Engine.java:1а028)
[114] mlsub.typing.lowlevel.Engine.leave
(Engine.java:127)
[115] mlsub.typing.Typing.leave (Typing.java:128)
[116] mlsub.typing.Typing.leave (Typing.java:112)
[117] mlsub.typing.Enumeration.enumerate
(Enumeration.java:102)
[118] bossa.syntax.fun.enumerateTags
(dispatchTest.nice:433)
[119] bossa.syntax.dispatch.enumerateTags (null)
[120] bossa.syntax.fun.testMethod (dispatchTest.nice:203)
[121] bossa.syntax.MethodDeclaration.testMethod (null)
[122] bossa.syntax.fun.testJavaMethod
(dispatchTest.nice:83)
[123] bossa.syntax.JavaMethod.testJavaMethod (null)
[124] bossa.syntax.fun.testCoverage
(dispatchTest.nice:57)
[125] bossa.syntax.dispatch.testCoverage (null)
[126] bossa.modules.Package.link (Package.java:386)
[127] mlsub.compilation.fun.lambda27 (null)
[128] mlsub.compilation.fun.apply1 (null)
[129] gnu.expr.ModuleMethod.apply1 (ModuleMethod.java:89)
[130] nice.lang.fun.foreach (collections.nice:141)
[131] nice.lang.dispatch.foreach (null)
[132] mlsub.compilation.fun.compileComponent
(make.nice:33)
[133] mlsub.compilation.dispatch.compileComponent (null)
[134] mlsub.compilation.fun$make.lambda24 (null)
[135] mlsub.compilation.fun$make.apply1 (null)
[136] gnu.expr.ModuleMethod.apply1 (ModuleMethod.java:89)
[137] nice.lang.fun.foreach (collections.nice:141)
[138] nice.lang.dispatch.foreach (null)
[139] mlsub.compilation.fun.make (make.nice:44)
[140] mlsub.compilation.dispatch.make (null)
[141] nice.tools.compiler.fun.compile (interface.nice:40)
[142] nice.tools.compiler.dispatch.compile (null)
[143] nice.tools.compiler.console.fun.compile
(main.nice:165)
[144] nice.tools.compiler.console.dispatch.compile (null)
[145] nice.tools.compiler.console.fun.main
(main.nice:199)
[146] nice.tools.compiler.console.dispatch.main (null)
----------------------------------------------------------------------
>Comment By: Artem Gr Kozarezov (artemgr)
Date: 2005-05-21 20:37
Message:
Logged In: YES
user_id=289741
Had another OutOfMemory recently.
As it seems it becomes pretty common for a relatively big
project.
(And big not with Nice sources, but with open-source Java
libraries).
Test case is very easy to fix, but in reality i have no
workaround, the only way to solve the issue is to stop doing
what i have been doing in Nice and do it in Java instead.
----------------------------------------------------------------------
Comment By: Artem Gr Kozarezov (artemgr)
Date: 2005-05-06 17:30
Message:
Logged In: YES
user_id=289741
Testcase:
8<--------------------------------------------------------->8
package a;
import nice.tools.compiler;
public class Compiler {
private java.io.File temporary;
public ?String classpath = null;
}
public String getClasspath( ?ClassLoader loader = null ) = "";
void _testClasspath(){
getClasspath( loader: new java.net.URLClassLoader( [ new
java.io.File( "-test-lib-" ).toURL() ] ) );
}
public interface ObjectContainer {}
public interface ObjectTranslator {
public void onActivate( ObjectContainer container, Object
applicationObject, Object storedObject );
}
public class CidTranslator implements ObjectTranslator {}
onActivate( CidTranslator tl, container, applicationObject,
storedObject ){}
8<--------------------------------------------------------->8
Invoke with "nicec a".
I've tried to put this testcase into the Nice testsuite, but
it won't fail there.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=112788&aid=1196571&group_id=12788
-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7412&alloc_id=16344&op=click