nice-commit Mailing List for The Nice Programming Language (Page 70)
Brought to you by:
bonniot
You can subscribe to this list here.
2003 |
Jan
|
Feb
(60) |
Mar
(125) |
Apr
(183) |
May
(140) |
Jun
(227) |
Jul
(141) |
Aug
(181) |
Sep
(75) |
Oct
(89) |
Nov
(187) |
Dec
(162) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(69) |
Feb
(197) |
Mar
(98) |
Apr
(26) |
May
(10) |
Jun
(85) |
Jul
(88) |
Aug
(79) |
Sep
(80) |
Oct
(81) |
Nov
(53) |
Dec
(109) |
2005 |
Jan
(68) |
Feb
(77) |
Mar
(232) |
Apr
(79) |
May
(37) |
Jun
(37) |
Jul
(3) |
Aug
(18) |
Sep
|
Oct
|
Nov
|
Dec
|
2006 |
Jan
(10) |
Feb
|
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(1) |
Dec
(9) |
2007 |
Jan
(2) |
Feb
(8) |
Mar
(2) |
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
|
Oct
|
Nov
(17) |
Dec
(6) |
2008 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <bo...@us...> - 2003-12-03 21:50:44
|
Update of /cvsroot/nice/Nice/src/mlsub/typing In directory sc8-pr-cvs1:/tmp/cvs-serv1807/src/mlsub/typing Modified Files: MonotypeVar.java Log Message: Made Object a super-type of every monotype. Index: MonotypeVar.java =================================================================== RCS file: /cvsroot/nice/Nice/src/mlsub/typing/MonotypeVar.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** MonotypeVar.java 1 Mar 2003 01:07:53 -0000 1.14 --- MonotypeVar.java 3 Dec 2003 21:50:41 -0000 1.15 *************** *** 138,141 **** --- 138,148 ---- } + /** Allows modifying the existing kind. Use in special cases only. */ + public void resetKind(Kind value) + { + setKind(null); + setKind(value); + } + public void setPersistentKind(Kind k) { *************** *** 210,214 **** if (equivalent != null) equivalent.tag(variance); ! else mlsub.typing.lowlevel.Engine.tag(this, variance); } --- 217,222 ---- if (equivalent != null) equivalent.tag(variance); ! // A type var with kind TopKind will be equivalent to Top, no need to tag. ! else if (kind != TopMonotype.TopKind.instance) mlsub.typing.lowlevel.Engine.tag(this, variance); } *************** *** 218,221 **** --- 226,232 ---- if (equivalent != null) return equivalent.canonify(); + // A type var with kind TopKind is equivalent to Top. + else if (kind == TopMonotype.TopKind.instance) + return TopMonotype.instance; else return (MonotypeVar) mlsub.typing.lowlevel.Engine.canonify(this); |
From: <bo...@us...> - 2003-12-03 21:50:44
|
Update of /cvsroot/nice/Nice/src/mlsub/typing/lowlevel In directory sc8-pr-cvs1:/tmp/cvs-serv1807/src/mlsub/typing/lowlevel Modified Files: Engine.java Log Message: Made Object a super-type of every monotype. Index: Engine.java =================================================================== RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/Engine.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** Engine.java 2 Jun 2003 17:58:27 -0000 1.26 --- Engine.java 3 Dec 2003 21:50:41 -0000 1.27 *************** *** 204,208 **** Kind k1 = e1.getKind(), k2 = e2.getKind(); ! if(k1!=null) if(k2!=null) --- 204,212 ---- Kind k1 = e1.getKind(), k2 = e2.getKind(); ! ! // If e2 is Top, this is trivial. ! if (k2 == mlsub.typing.TopMonotype.TopKind.instance) ! return; ! if(k1!=null) if(k2!=null) *************** *** 212,215 **** --- 216,233 ---- else { + /* If a non-rigid type variable was previously compared to some + rigid element, it will have its type. + it is still possible for it to be greater than Top + (and therefore equal to Top). For this, we just need to + forget its previous kind. + */ + if (k1 == mlsub.typing.TopMonotype.TopKind.instance && + e2 instanceof mlsub.typing.MonotypeVar && + ! isRigid(e2)) + { + ((mlsub.typing.MonotypeVar) e2).resetKind(k1); + return; + } + if(dbg) Debug.println("Bad kinding discovered by Engine : "+ *************** *** 262,272 **** else { ! e.setId(-2); // for debugging purposes floating.add(e); } } public static boolean isRigid(Element e) { Kind kind = e.getKind(); if(kind==null) --- 280,295 ---- else { ! e.setId(FLOATING); // for debugging purposes floating.add(e); } } + private static final int FLOATING = -3; + public static boolean isRigid(Element e) { + if (e.getId() == FLOATING) + return false; + Kind kind = e.getKind(); if(kind==null) *************** *** 387,390 **** --- 410,415 ---- throws Unsatisfiable { + boolean toTop = k == mlsub.typing.TopMonotype.TopKind.instance; + Stack s = new Stack(); *************** *** 427,431 **** } else if(leq.e2==e) ! if(leq.e1.getKind()==null) s.push(leq.e1); else --- 452,459 ---- } else if(leq.e2==e) ! // If e is Top, e1 <: e is trivial and can be discarded. ! if (toTop) ! i.remove(); ! else if (leq.e1.getKind() == null) s.push(leq.e1); else |
From: <bo...@us...> - 2003-12-03 21:50:44
|
Update of /cvsroot/nice/Nice/testsuite/compiler/abstractInterfaces In directory sc8-pr-cvs1:/tmp/cvs-serv1807/testsuite/compiler/abstractInterfaces Modified Files: existingClass.testsuite Log Message: Made Object a super-type of every monotype. Index: existingClass.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/abstractInterfaces/existingClass.testsuite,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** existingClass.testsuite 15 Sep 2003 22:29:21 -0000 1.4 --- existingClass.testsuite 3 Dec 2003 21:50:41 -0000 1.5 *************** *** 4,8 **** /// Toplevel abstract interface I {} ! class java.lang.Object implements I; /// PASS --- 4,8 ---- /// Toplevel abstract interface I {} ! class java.lang.String implements I; /// PASS *************** *** 10,14 **** /// Toplevel abstract interface I {} ! class java.lang.Object implements I; /// package b import a true; --- 10,14 ---- /// Toplevel abstract interface I {} ! class java.lang.String implements I; /// package b import a true; *************** *** 20,24 **** /// package b /// Toplevel ! class java.lang.Object implements a.I; /// FAIL --- 20,24 ---- /// package b /// Toplevel ! class java.lang.String implements a.I; /// FAIL *************** *** 28,32 **** /// package b import a /// Toplevel ! class java.lang.Object implements I; --- 28,32 ---- /// package b import a /// Toplevel ! class java.lang.String implements I; *************** *** 34,45 **** /// Toplevel abstract interface I { void f(); } ! class java.lang.Object implements I; /// PASS ! f(new Object()); /// Toplevel abstract interface I { void f(); } ! class java.lang.Object implements I; ! f(x@Object) {} /// PASS --- 34,45 ---- /// Toplevel abstract interface I { void f(); } ! class java.lang.String implements I; /// PASS ! f("ABC"); /// Toplevel abstract interface I { void f(); } ! class java.lang.String implements I; ! f(x@String) {} /// PASS *************** *** 69,72 **** --- 69,73 ---- /// Toplevel abstract interface AI {} + // FileFilter is not a class class java.io.FileFilter implements AI; *************** *** 74,76 **** /// Toplevel abstract interface AI {} ! interface java.lang.Object implements AI; --- 75,78 ---- /// Toplevel abstract interface AI {} ! // String is not an interface ! interface java.lang.String implements AI; |
From: <bo...@us...> - 2003-12-03 21:50:44
|
Update of /cvsroot/nice/Nice/src/nice/tools/code In directory sc8-pr-cvs1:/tmp/cvs-serv1807/src/nice/tools/code Modified Files: Types.java Log Message: Made Object a super-type of every monotype. Index: Types.java =================================================================== RCS file: /cvsroot/nice/Nice/src/nice/tools/code/Types.java,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** Types.java 8 Oct 2003 13:34:50 -0000 1.53 --- Types.java 3 Dec 2003 21:50:41 -0000 1.54 *************** *** 201,204 **** --- 201,207 ---- return gnu.expr.Compilation.typeProcedure; + if (m == TopMonotype.instance) + return Type.pointer_type; + if (!(m instanceof MonotypeConstructor)) return null; *************** *** 427,430 **** --- 430,436 ---- throw new NotIntroducedClassException(null); } + + if (javaType == Type.pointer_type) + return TopMonotype.instance; return getMonotype(javaType.getName()); |
From: <bo...@us...> - 2003-12-03 21:50:44
|
Update of /cvsroot/nice/Nice/testsuite/compiler/native In directory sc8-pr-cvs1:/tmp/cvs-serv1807/testsuite/compiler/native Modified Files: constructors.testsuite Log Message: Made Object a super-type of every monotype. Index: constructors.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/native/constructors.testsuite,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** constructors.testsuite 22 Jun 2003 09:51:56 -0000 1.1 --- constructors.testsuite 3 Dec 2003 21:50:40 -0000 1.2 *************** *** 45,49 **** Runnable r = thread(() => ran = true); ! A instance = cast(make.newInstance([object(r)])); instance.start(); try { instance.join(); } --- 45,49 ---- Runnable r = thread(() => ran = true); ! A instance = cast(make.newInstance([r])); instance.start(); try { instance.join(); } |
From: <bo...@us...> - 2003-12-03 21:50:44
|
Update of /cvsroot/nice/Nice/testsuite/compiler/classes In directory sc8-pr-cvs1:/tmp/cvs-serv1807/testsuite/compiler/classes Modified Files: serialization.testsuite Log Message: Made Object a super-type of every monotype. Index: serialization.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/classes/serialization.testsuite,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** serialization.testsuite 24 Nov 2003 23:56:25 -0000 1.4 --- serialization.testsuite 3 Dec 2003 21:50:41 -0000 1.5 *************** *** 98,104 **** { if(x==1) ! return object(new A(x: 10)); else ! return object(this); } --- 98,104 ---- { if(x==1) ! return new A(x: 10); else ! return this; } *************** *** 106,112 **** { if (x == 10) ! return object(new A(x: 5)); else ! return object(this); } } --- 106,112 ---- { if (x == 10) ! return new A(x: 5); else ! return this; } } |
From: <bo...@us...> - 2003-12-03 21:50:44
|
Update of /cvsroot/nice/Nice/testsuite/compiler/expressions/arrays In directory sc8-pr-cvs1:/tmp/cvs-serv1807/testsuite/compiler/expressions/arrays Modified Files: compilation.testsuite Log Message: Made Object a super-type of every monotype. Index: compilation.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/expressions/arrays/compilation.testsuite,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** compilation.testsuite 19 Nov 2003 14:50:25 -0000 1.6 --- compilation.testsuite 3 Dec 2003 21:50:41 -0000 1.7 *************** *** 41,45 **** /// PASS // Check that Object[] is really compiled as an object array, not just Object ! foo([object("1")]); /// Toplevel void foo(Object[] oo) --- 41,59 ---- /// PASS // Check that Object[] is really compiled as an object array, not just Object ! foo([toObj("1")]); ! /// Toplevel ! <!T> Object toObj(T x) = x; ! ! void foo(Object[] oo) ! { ! java.lang.Integer i = cast ! (java.lang.Integer.class.getConstructor([String.class]).newInstance(oo)); ! assert i.intValue() == 1; ! } ! ! /// PASS ! // Check that Object[] is really compiled as an object array, not just Object ! Object o = "1"; ! foo([o]); /// Toplevel void foo(Object[] oo) |
From: <bo...@us...> - 2003-12-03 21:50:44
|
Update of /cvsroot/nice/Nice/testsuite/compiler/typing In directory sc8-pr-cvs1:/tmp/cvs-serv1807/testsuite/compiler/typing Added Files: object.testsuite Log Message: Made Object a super-type of every monotype. --- NEW FILE: object.testsuite --- /// PASS String s = "ABC"; Object o = s; //if (o instanceof String) //s = o; List<Object> l = new LinkedList(); l.add(s); l.add(new java.io.File(".")); boolean b = o == s; b = s == o; /// FAIL /// Toplevel <U,T> T foo(T x, Object o) { /*/// FAIL HERE*/ x = o; return x; } /// PASS /// Toplevel <T> T pick(T x, T y) = x; void foo(Object o, String s) { Object x = pick(o,s); x = pick(s,o); } /// FAIL /// Toplevel <T> T pick(T x, T y) = x; void foo(Object o, String s) { String /*/// FAIL HERE*/ x = pick(o,s); } /// FAIL /// Toplevel <T> T pick(T x, T y) = x; void foo(Object o, String s) { String /*/// FAIL HERE*/ x = pick(s,o); } /// PASS /// Toplevel <T, U | U <: T> U pick(T x, U y) = y; void foo(Object o) { ?int x = pick(o,null); } /// FAIL Object o = null; /// PASS ?Object o = null; /// PASS bug Object[] os = [ "DEF", 1, o ]; |
From: <ar...@us...> - 2003-12-02 20:59:06
|
Update of /cvsroot/nice/Nice In directory sc8-pr-cvs1:/tmp/cvs-serv27825/Nice Modified Files: NEWS Log Message: Make nested multiline comments possible. Index: NEWS =================================================================== RCS file: /cvsroot/nice/Nice/NEWS,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NEWS 30 Nov 2003 15:13:23 -0000 1.2 --- NEWS 1 Dec 2003 23:43:50 -0000 1.3 *************** *** 27,30 **** --- 27,31 ---- * Unused local variables will give a warning. * A ';' is not a valid statement anymore. + * Nested multi-line comments are allowed. * Bug fixes (accessing static fields of an superclass or interface, compilation of polymorphic tuples, captured 'this' in initializer, |
From: <bo...@us...> - 2003-12-02 20:34:47
|
Update of /cvsroot/nice/Nice/regtest/basic In directory sc8-pr-cvs1:/tmp/cvs-serv11732/regtest/basic Modified Files: syntax.nice Log Message: Use {} instead of ;, since empty statements have been removed. Index: syntax.nice =================================================================== RCS file: /cvsroot/nice/Nice/regtest/basic/syntax.nice,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** syntax.nice 9 May 2003 15:01:46 -0000 1.8 --- syntax.nice 2 Dec 2003 20:34:43 -0000 1.9 *************** *** 7,23 **** // While with empty body while(false) ! ; // For with empty body for (;false;) ! ; // If with empty body if (true) ! ; // Anonymous functions with empty body ()->void f = ()=> {}; ! f = ()=> { ; }; // [] is the empty array --- 7,23 ---- // While with empty body while(false) ! {} // For with empty body for (;false;) ! {} // If with empty body if (true) ! {} // Anonymous functions with empty body ()->void f = ()=> {}; ! f = ()=> { {} }; // [] is the empty array |
From: <ar...@us...> - 2003-12-02 20:06:56
|
Update of /cvsroot/nice/Nice/src/bossa/parser In directory sc8-pr-cvs1:/tmp/cvs-serv32206/F:/nice/src/bossa/parser Modified Files: Loader.java Log Message: Make nested multiline comments possible. Index: Loader.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/parser/Loader.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** Loader.java 1 Dec 2003 23:43:50 -0000 1.20 --- Loader.java 2 Dec 2003 00:03:03 -0000 1.21 *************** *** 67,71 **** else parser.ReInit(r); ! try{ parser.module(definitions); --- 67,74 ---- else parser.ReInit(r); ! ! // set to 0 (required when recovered from error) ! ParserTokenManager.nestingLevel = 0; ! try{ parser.module(definitions); |
From: <bo...@us...> - 2003-12-02 03:25:21
|
Update of /cvsroot/nice/Nice In directory sc8-pr-cvs1:/tmp/cvs-serv29971 Modified Files: NEWS Log Message: Lazy loading. Justify removal of empty statements. Index: NEWS =================================================================== RCS file: /cvsroot/nice/Nice/NEWS,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** NEWS 1 Dec 2003 23:43:50 -0000 1.3 --- NEWS 1 Dec 2003 23:51:47 -0000 1.4 *************** *** 14,18 **** * Enums are serializable now and have a family() method that returns a list of all elements in that enum. ! * Reduced memory usage when doing multiple compilations in one jvm. * Added alternative syntax for patterns in method implementations. 'Type param' for 'param@Type' and '#Type param' for 'param#Type --- 14,21 ---- * Enums are serializable now and have a family() method that returns a list of all elements in that enum. ! * Reduced memory usage when doing multiple compilations in one jvm. ! * The compiler is now more clever about loading imported Java classes ! only if they are actually used. This reduces memory usage and improves ! compilation speed. * Added alternative syntax for patterns in method implementations. 'Type param' for 'param@Type' and '#Type param' for 'param#Type *************** *** 26,31 **** plugin, ant, testsuite, ...). * Unused local variables will give a warning. - * A ';' is not a valid statement anymore. * Nested multi-line comments are allowed. * Bug fixes (accessing static fields of an superclass or interface, compilation of polymorphic tuples, captured 'this' in initializer, --- 29,36 ---- plugin, ant, testsuite, ...). * Unused local variables will give a warning. * Nested multi-line comments are allowed. + * Empty statements (made of a single ';') have been removed. This avoids the + risk of an accidental ';' changing the meaning of a statement. Empty + statements are very rarely needed, and can easily be replaced by '{}'. * Bug fixes (accessing static fields of an superclass or interface, compilation of polymorphic tuples, captured 'this' in initializer, |
From: <ar...@us...> - 2003-12-02 03:24:24
|
Update of /cvsroot/nice/Nice/testsuite/compiler/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv7234/F:/nice/testsuite/compiler/syntax Modified Files: comments.testsuite Log Message: Testcase for nested comments. Index: comments.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/syntax/comments.testsuite,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** comments.testsuite 8 Mar 2003 14:27:12 -0000 1.1 --- comments.testsuite 2 Dec 2003 00:45:49 -0000 1.2 *************** *** 1,2 **** --- 1,16 ---- /// FAIL /* Untermintated comment! + + /// PASS + {} + /* + /* + /* + */ + */ + /* + */ + */ + {} + /*/*/*/**/*/*/*/ + {} |
From: <ar...@us...> - 2003-12-02 03:20:25
|
Update of /cvsroot/nice/Nice/src/bossa/parser In directory sc8-pr-cvs1:/tmp/cvs-serv27825/F:/nice/src/bossa/parser Modified Files: Parser.jj Loader.java Log Message: Make nested multiline comments possible. Index: Parser.jj =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/parser/Parser.jj,v retrieving revision 1.219 retrieving revision 1.220 diff -C2 -d -r1.219 -r1.220 *** Parser.jj 30 Nov 2003 14:30:47 -0000 1.219 --- Parser.jj 1 Dec 2003 23:43:50 -0000 1.220 *************** *** 67,70 **** --- 67,71 ---- /* COMMENTS */ + TOKEN_MGR_DECLS : { static int nestingLevel = 0; } MORE : *************** *** 72,76 **** <"/**" ~["/"]> { input_stream.backup(1); } : IN_FORMAL_COMMENT | ! "/*" : IN_MULTI_LINE_COMMENT } --- 73,77 ---- <"/**" ~["/"]> { input_stream.backup(1); } : IN_FORMAL_COMMENT | ! "/*" {nestingLevel++; }: IN_MULTI_LINE_COMMENT } *************** *** 85,91 **** <IN_MULTI_LINE_COMMENT> ! SPECIAL_TOKEN : { ! <MULTI_LINE_COMMENT: "*/" > : DEFAULT } --- 86,98 ---- <IN_MULTI_LINE_COMMENT> ! MORE : { ! "/*" {nestingLevel++; }: IN_MULTI_LINE_COMMENT ! } ! ! <IN_MULTI_LINE_COMMENT> ! SKIP : ! { ! "*/" { if (--nestingLevel == 0) SwitchTo(DEFAULT); } } Index: Loader.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/parser/Loader.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** Loader.java 24 Jun 2003 15:28:19 -0000 1.19 --- Loader.java 1 Dec 2003 23:43:50 -0000 1.20 *************** *** 39,42 **** --- 39,45 ---- parser.ReInit(r); + // set to 0 (required when recovered from error) + ParserTokenManager.nestingLevel = 0; + try{ return parser.readImports(imports, opens); |
From: <ar...@us...> - 2003-11-30 15:23:50
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv31975/F:/nice/src/bossa/syntax Removed Files: EmptyStmt.java Log Message: Removed EmptyStmt.java from bossa.syntax --- EmptyStmt.java DELETED --- |
From: <ar...@us...> - 2003-11-30 15:23:07
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv31917/F:/nice/src/bossa/syntax Modified Files: typecheck.nice Log Message: Removed EmptyStmt.java from bossa.syntax Index: typecheck.nice =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/typecheck.nice,v retrieving revision 1.91 retrieving revision 1.92 diff -C2 -d -r1.91 -r1.92 *** typecheck.nice 30 Nov 2003 13:09:20 -0000 1.91 --- typecheck.nice 30 Nov 2003 15:23:04 -0000 1.92 *************** *** 668,674 **** typecheck(null(Statement)) {} - //XXX: Now that there is an EmptyStmt class, it _might_ be possible - //XXX: (post 0.8) to remove the null case. - typecheck(@EmptyStmt) {} typecheck(b@Block) --- 668,671 ---- |
From: <ar...@us...> - 2003-11-30 15:13:26
|
Update of /cvsroot/nice/Nice In directory sc8-pr-cvs1:/tmp/cvs-serv29919/nice Modified Files: NEWS Log Message: Update of changelog. Index: NEWS =================================================================== RCS file: /cvsroot/nice/Nice/NEWS,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NEWS 30 Nov 2003 11:22:28 -0000 1.1 --- NEWS 30 Nov 2003 15:13:23 -0000 1.2 *************** *** 25,28 **** --- 25,30 ---- * Reduced memory usage when repeatedly compiling in the same JVM (eclipse plugin, ant, testsuite, ...). + * Unused local variables will give a warning. + * A ';' is not a valid statement anymore. * Bug fixes (accessing static fields of an superclass or interface, compilation of polymorphic tuples, captured 'this' in initializer, |
From: <ar...@us...> - 2003-11-30 14:50:07
|
Update of /cvsroot/nice/Nice/stdlib/nice/lang/inline In directory sc8-pr-cvs1:/tmp/cvs-serv26347/F:/nice/stdlib/nice/lang/inline Modified Files: Assert.java Log Message: Optimization for assert statements. Index: Assert.java =================================================================== RCS file: /cvsroot/nice/Nice/stdlib/nice/lang/inline/Assert.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Assert.java 30 Nov 2003 11:39:28 -0000 1.5 --- Assert.java 30 Nov 2003 14:50:04 -0000 1.6 *************** *** 56,61 **** (((ClassExp)comp.topLambda).getAssertionEnabledField(), end); ! args[0].compile(comp, Type.boolean_type); ! code.emitGotoIfIntNeZero(end); // The assertion is true. code.emitNew(errorClass); --- 56,69 ---- (((ClassExp)comp.topLambda).getAssertionEnabledField(), end); ! Branchable branchOp = args[0].getBranchable(); ! if (branchOp != null) ! { ! branchOp.compileJump(comp, ((ApplyExp)args[0]).getArgs(), end); ! } ! else ! { ! args[0].compile(comp, Type.boolean_type); ! code.emitGotoIfIntNeZero(end); // The assertion is true. ! } code.emitNew(errorClass); |
From: <ar...@us...> - 2003-11-30 14:30:51
|
Update of /cvsroot/nice/Nice/src/bossa/parser In directory sc8-pr-cvs1:/tmp/cvs-serv19970/F:/nice/src/bossa/parser Modified Files: Parser.jj Log Message: Removed empty statements from the parser. Index: Parser.jj =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/parser/Parser.jj,v retrieving revision 1.218 retrieving revision 1.219 diff -C2 -d -r1.218 -r1.219 *** Parser.jj 28 Nov 2003 14:39:46 -0000 1.218 --- Parser.jj 30 Nov 2003 14:30:47 -0000 1.219 *************** *** 2218,2222 **** res=LabeledStatement() | res=Block() - | res=EmptyStatement() | res=StatementExpression() ";" | res=IfStatement() --- 2218,2221 ---- *************** *** 2420,2429 **** ) )* - } - - Statement EmptyStatement() : - { Token t; } - { - t=";" { return new EmptyStmt(Location.make(t)); } } --- 2419,2422 ---- |
From: <ar...@us...> - 2003-11-30 14:24:42
|
Update of /cvsroot/nice/Nice/testsuite/compiler/typing In directory sc8-pr-cvs1:/tmp/cvs-serv18600/F:/nice/testsuite/compiler/typing Modified Files: instanceof.testsuite Log Message: Removed empty statements from the testcases. Index: instanceof.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/typing/instanceof.testsuite,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** instanceof.testsuite 25 Nov 2003 10:41:10 -0000 1.18 --- instanceof.testsuite 30 Nov 2003 14:24:35 -0000 1.19 *************** *** 33,37 **** a = new B(); if (a instanceof B) ! ; else throw new Error(); --- 33,37 ---- a = new B(); if (a instanceof B) ! {} else throw new Error(); |
From: <ar...@us...> - 2003-11-30 14:24:39
|
Update of /cvsroot/nice/Nice/testsuite/compiler/packages In directory sc8-pr-cvs1:/tmp/cvs-serv18600/F:/nice/testsuite/compiler/packages Modified Files: nicei.testsuite Log Message: Removed empty statements from the testcases. Index: nicei.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/packages/nicei.testsuite,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** nicei.testsuite 5 Oct 2003 14:21:33 -0000 1.4 --- nicei.testsuite 30 Nov 2003 14:24:35 -0000 1.5 *************** *** 10,14 **** } /// package b import a ! ; /// PASS --- 10,14 ---- } /// package b import a ! {} /// PASS *************** *** 22,26 **** } /// package b import a ! ; /// PASS --- 22,26 ---- } /// package b import a ! {} /// PASS *************** *** 34,38 **** } /// package b import a ! ; /// PASS --- 34,38 ---- } /// package b import a ! {} /// PASS *************** *** 45,49 **** } /// package b import a ! ; /// PASS --- 45,49 ---- } /// package b import a ! {} /// PASS *************** *** 54,58 **** } /// package b import a ! ; /// PASS --- 54,58 ---- } /// package b import a ! {} /// PASS *************** *** 64,68 **** } /// package b import a ! ; /// PASS --- 64,68 ---- } /// package b import a ! {} /// PASS *************** *** 74,78 **** } /// package b import a ! ; /// PASS --- 74,78 ---- } /// package b import a ! {} /// PASS *************** *** 84,88 **** } /// package b import a ! ; /// PASS --- 84,88 ---- } /// package b import a ! {} /// PASS *************** *** 91,93 **** var int[][] arr = new int[10][10]; /// package b import a ! ; --- 91,93 ---- var int[][] arr = new int[10][10]; /// package b import a ! {} |
From: <ar...@us...> - 2003-11-30 14:24:39
|
Update of /cvsroot/nice/Nice/testsuite/compiler/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv18600/F:/nice/testsuite/compiler/syntax Modified Files: loops.testsuite Log Message: Removed empty statements from the testcases. Index: loops.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/syntax/loops.testsuite,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** loops.testsuite 21 May 2003 15:30:42 -0000 1.3 --- loops.testsuite 30 Nov 2003 14:24:35 -0000 1.4 *************** *** 1,12 **** /// PASS List<String> list = new LinkedList(); ! for (let iter = list.iterator(); iter.hasNext;){} /// PASS ! for (int x = 0, boolean ok = false; false;){} /// PASS int i; ! for (i = 0; i < 10; i++){} /// FAIL --- 1,12 ---- /// PASS List<String> list = new LinkedList(); ! for (let iter = list.iterator(); iter.hasNext;) {} /// PASS ! for (int x = 0, boolean ok = false; false;) {} /// PASS int i; ! for (i = 0; i < 10; i++) {} /// FAIL *************** *** 31,36 **** for (int k = 0; k < 3; k++) { let int x; ! for (int i = 0; i < 5; i++) ! ; x = 7; } --- 31,36 ---- for (int k = 0; k < 3; k++) { let int x; ! for (int i = 0; i < 5; i++) {} ! x = 7; } *************** *** 45,49 **** /// PASS ! for (int i = 0, int x = 1; i < 5; i++){} /// PASS --- 45,49 ---- /// PASS ! for (int i = 0, int x = 1; i < 5; i++) {} /// PASS *************** *** 52,55 **** /// PASS boolean update = false; ! for (int i = 0; i < 5; i++,update=true){} assert(update); --- 52,55 ---- /// PASS boolean update = false; ! for (int i = 0; i < 5; i++,update=true) {} assert(update); |
From: <ar...@us...> - 2003-11-30 14:24:39
|
Update of /cvsroot/nice/Nice/testsuite/compiler/statements/flow In directory sc8-pr-cvs1:/tmp/cvs-serv18600/F:/nice/testsuite/compiler/statements/flow Modified Files: reachability.testsuite Log Message: Removed empty statements from the testcases. Index: reachability.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/statements/flow/reachability.testsuite,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** reachability.testsuite 18 Oct 2003 17:26:40 -0000 1.6 --- reachability.testsuite 30 Nov 2003 14:24:35 -0000 1.7 *************** *** 1,27 **** /// FAIL while (false) { ! /*/// FAIL HERE */ ; // Unreachable } /// FAIL ! while (true) ; ! /*/// FAIL HERE */ ; // Unreachable /// PASS while (true) break; ! ; // Reachable /// FAIL for (;false;) { ! /*/// FAIL HERE */ ; // Unreachable } /// FAIL ! for (;;) ; ! /*/// FAIL HERE */ ; // Unreachable /// PASS for (;;) break; ! ; // Reachable /// PASS --- 1,27 ---- /// FAIL while (false) { ! /*/// FAIL HERE */ {} // Unreachable } /// FAIL ! while (true) {} ! /*/// FAIL HERE */ {} // Unreachable /// PASS while (true) break; ! {} // Reachable /// FAIL for (;false;) { ! /*/// FAIL HERE */ {} // Unreachable } /// FAIL ! for (;;) {} ! /*/// FAIL HERE */ {} // Unreachable /// PASS for (;;) break; ! {} // Reachable /// PASS *************** *** 34,38 **** /// FAIL assert false; ! /*/// FAIL HERE */ ; // Unreachable /// FAIL --- 34,38 ---- /// FAIL assert false; ! /*/// FAIL HERE */ {} // Unreachable /// FAIL *************** *** 41,43 **** /// PASS assert true; ! ; // Reachable --- 41,43 ---- /// PASS assert true; ! {} // Reachable |
From: <ar...@us...> - 2003-11-30 14:24:38
|
Update of /cvsroot/nice/Nice/testsuite/compiler/null In directory sc8-pr-cvs1:/tmp/cvs-serv18600/F:/nice/testsuite/compiler/null Modified Files: inference.testsuite Log Message: Removed empty statements from the testcases. Index: inference.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/null/inference.testsuite,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** inference.testsuite 12 Mar 2003 12:07:38 -0000 1.8 --- inference.testsuite 30 Nov 2003 14:24:35 -0000 1.9 *************** *** 8,12 **** ?int x = null; if (x == null) ! ; else x++; --- 8,12 ---- ?int x = null; if (x == null) ! {} else x++; *************** *** 30,34 **** ?int x = null; if (x != null) ! ; else return; --- 30,34 ---- ?int x = null; if (x != null) ! {} else return; *************** *** 87,91 **** if (false) if (x != null) ! ; else return; --- 87,91 ---- if (false) if (x != null) ! {} else return; *************** *** 183,187 **** ?int x1 = null, x2 = null; if (x1 == null || x2 == null) ! ; else { x1++; x2++; } --- 183,187 ---- ?int x1 = null, x2 = null; if (x1 == null || x2 == null) ! {} else { x1++; x2++; } *************** *** 198,202 **** ?int x1 = null, x2 = null; if (x1 != null && x2 != null) ! ; else return; --- 198,202 ---- ?int x1 = null, x2 = null; if (x1 != null && x2 != null) ! {} else return; *************** *** 255,259 **** if (false) if (x1 != null && x2 != null) ! ; else return; --- 255,259 ---- if (false) if (x1 != null && x2 != null) ! {} else return; *************** *** 367,371 **** ?String x = null; if (x == null || x.length() > 3 || x.length() > 4) ! ; else x.length(); --- 367,371 ---- ?String x = null; if (x == null || x.length() > 3 || x.length() > 4) ! {} else x.length(); |
From: <ar...@us...> - 2003-11-30 14:24:38
|
Update of /cvsroot/nice/Nice/testsuite/compiler/classes/constructors In directory sc8-pr-cvs1:/tmp/cvs-serv18600/F:/nice/testsuite/compiler/classes/constructors Modified Files: compilation.testsuite Log Message: Removed empty statements from the testcases. Index: compilation.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/classes/constructors/compilation.testsuite,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** compilation.testsuite 26 Nov 2003 16:25:54 -0000 1.6 --- compilation.testsuite 30 Nov 2003 14:24:35 -0000 1.7 *************** *** 78,82 **** } /// package c import a ! ; /// package d import a,c new AA(x:null); --- 78,82 ---- } /// package c import a ! {} /// package d import a,c new AA(x:null); |