nice-commit Mailing List for The Nice Programming Language (Page 76)
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-11-19 01:20:04
|
Update of /cvsroot/nice/Nice/stdlib/nice/lang In directory sc8-pr-cvs1:/tmp/cvs-serv22413/stdlib/nice/lang Modified Files: java.nice Log Message: Added retyping for java.util.Arrays.asList(). Index: java.nice =================================================================== RCS file: /cvsroot/nice/Nice/stdlib/nice/lang/java.nice,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** java.nice 18 Nov 2003 16:04:17 -0000 1.41 --- java.nice 19 Nov 2003 01:19:50 -0000 1.42 *************** *** 347,350 **** --- 347,352 ---- native boolean Arrays.equals(Object[],Object[]); + <T> List<T> asList(T[]) = native List Arrays.asList(Object[]); + /* StringTokenizer inherits from Enumeration, which makes it wrongly parameterized. We ignore that inheritance. |
From: <bo...@us...> - 2003-11-19 01:18:29
|
Update of /cvsroot/nice/Nice/debian In directory sc8-pr-cvs1:/tmp/cvs-serv22158/debian Modified Files: rules Log Message: Correctly set the jvm and java compiler. Index: rules =================================================================== RCS file: /cvsroot/nice/Nice/debian/rules,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** rules 12 Nov 2003 21:27:29 -0000 1.6 --- rules 19 Nov 2003 01:18:26 -0000 1.7 *************** *** 24,28 **** # Ask javac to produce optimized code, but no debugging info # so that the package is smaller. ! $(MAKE) complete JAVAC_FLAGS="-O" JAVA="kaffe" JAVAC="jikes-classpath" #/usr/bin/docbook-to-man debian/nice.sgml > nice.1 --- 24,28 ---- # Ask javac to produce optimized code, but no debugging info # so that the package is smaller. ! $(MAKE) complete JAVAC_FLAGS="-O" java="kaffe" javac="jikes-classpath" #/usr/bin/docbook-to-man debian/nice.sgml > nice.1 |
From: <bo...@us...> - 2003-11-19 01:17:16
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv21887/src/bossa/syntax Modified Files: InlinedMethod.java Log Message: Support JVMs in which ClassLoader.getParent() returns null when the parent is the system classloader. Index: InlinedMethod.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/InlinedMethod.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** InlinedMethod.java 18 Oct 2003 17:20:05 -0000 1.14 --- InlinedMethod.java 19 Nov 2003 01:17:09 -0000 1.15 *************** *** 148,152 **** if (res == null) ! res = getParent().loadClass(name); if (resolve && res != null) --- 148,158 ---- if (res == null) ! { ! ClassLoader parent = getParent(); ! // A JVM may represent the system classloader by null. ! if (parent == null) ! parent = ClassLoader.getSystemClassLoader(); ! res = parent.loadClass(name); ! } if (resolve && res != null) |
From: <ar...@us...> - 2003-11-18 16:04:20
|
Update of /cvsroot/nice/Nice/stdlib/nice/lang In directory sc8-pr-cvs1:/tmp/cvs-serv1303/F:/nice/stdlib/nice/lang Modified Files: java.nice Log Message: Uncommented some 1.4 specific retyprings. Index: java.nice =================================================================== RCS file: /cvsroot/nice/Nice/stdlib/nice/lang/java.nice,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** java.nice 8 Oct 2003 11:05:12 -0000 1.40 --- java.nice 18 Nov 2003 16:04:17 -0000 1.41 *************** *** 197,206 **** <T> HashSet<T> HashSet(int,float) = native new HashSet(int,float); <T,U | U <: T> HashSet<T> HashSet(Collection<U>) = native new HashSet(Collection); - /* JDK1.4 <T> LinkedHashSet<T> LinkedHashSet() = native new LinkedHashSet(); <T> LinkedHashSet<T> LinkedHashSet(int) = native new LinkedHashSet(int); <T> LinkedHashSet<T> LinkedHashSet(int,float) = native new LinkedHashSet(int,float); <T,U | U <: T> LinkedHashSet<T> LinkedHashSet(Collection<U>) = native new LinkedHashSet(Collection); - JDK1.4 */ <K,V> HashMap<K,V> HashMap() = native new HashMap(); <K,V> HashMap<K,V> HashMap(int) = native new HashMap(int); --- 197,204 ---- |
From: <bo...@us...> - 2003-11-17 20:26:48
|
Update of /cvsroot/nice/Nice/debian In directory sc8-pr-cvs1:/tmp/cvs-serv27253/debian Modified Files: changelog Log Message: Make sure that when overloaded methods need to have different names in the bytecode because they have the same bytecode types, the renaming is consistent accross recompilations, so that existing code that is not recompiled does not end up calling the wrong method. Index: changelog =================================================================== RCS file: /cvsroot/nice/Nice/debian/changelog,v retrieving revision 1.222 retrieving revision 1.223 diff -C2 -d -r1.222 -r1.223 *** changelog 12 Nov 2003 21:26:24 -0000 1.222 --- changelog 17 Nov 2003 20:26:25 -0000 1.223 *************** *** 8,12 **** * Generate more efficient code for anonymous functions that do not capture the environment. This also avoids a memory leak. ! * Bug fixes (error reporting for certain overloading by expected type). -- --- 8,13 ---- * Generate more efficient code for anonymous functions that do not capture the environment. This also avoids a memory leak. ! * Bug fixes (error reporting for certain overloading by expected type, ! recompilation of overloaded methods with the same bytecode types). -- |
From: <bo...@us...> - 2003-11-17 20:26:48
|
Update of /cvsroot/nice/Nice/src/bossa/modules In directory sc8-pr-cvs1:/tmp/cvs-serv27253/src/bossa/modules Modified Files: Package.java Log Message: Make sure that when overloaded methods need to have different names in the bytecode because they have the same bytecode types, the renaming is consistent accross recompilations, so that existing code that is not recompiled does not end up calling the wrong method. Index: Package.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/modules/Package.java,v retrieving revision 1.101 retrieving revision 1.102 diff -C2 -d -r1.101 -r1.102 *** Package.java 7 Nov 2003 12:34:37 -0000 1.101 --- Package.java 17 Nov 2003 20:26:25 -0000 1.102 *************** *** 793,796 **** --- 793,799 ---- argTypes = meth.arg_types; retType = meth.return_type; + // Make sure we use the same bytecode name, since compiled code + // can rely on it. + name = meth.getName(); } else // Get type information from the nice declaration |
From: <bo...@us...> - 2003-11-17 20:26:48
|
Update of /cvsroot/nice/Nice/testsuite/compiler/overloading In directory sc8-pr-cvs1:/tmp/cvs-serv27253/testsuite/compiler/overloading Added Files: compilation.testsuite Log Message: Make sure that when overloaded methods need to have different names in the bytecode because they have the same bytecode types, the renaming is consistent accross recompilations, so that existing code that is not recompiled does not end up calling the wrong method. --- NEW FILE: compilation.testsuite --- /// PASS /// package a /// Toplevel // Two methods that have the same bytecode type int foo(int, int->int) = 1; int foo(int, String->int) = 2; // Calling from the same package void test() { assert foo(0, int x => 0) == 1; assert foo(0, String x => 0) == 2; } /// package b import a test(); // Now calling from a different package assert foo(0, int x => 0) == 1; assert foo(0, String x => 0) == 2; /// PASS /// package a /// Toplevel // Two methods that have the same bytecode type int foo(int, int->int) = 1; int foo(int, String->int) = 2; // Calling from the same package void test() { assert foo(0, int x => 0) == 1; assert foo(0, String x => 0) == 2; } /// package b import a test(); // Now calling from a different package, in the opposite order assert foo(0, String x => 0) == 2; assert foo(0, int x => 0) == 1; |
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv860/src/bossa/syntax Modified Files: NiceMethod.java NiceClass.java MethodContainer.java Constraint.java ClassDefinition.java Log Message: Make the class constraint be a subtype of bossa.syntax.Constraint, which allows to reuse existing code for printing the constraint and get rid of the custom printing code in MethodContainer. Index: NiceMethod.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/NiceMethod.java,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** NiceMethod.java 15 Nov 2003 13:02:15 -0000 1.25 --- NiceMethod.java 15 Nov 2003 17:25:47 -0000 1.26 *************** *** 79,88 **** constraint = new Constraint (new ArrayList(thisBindersLen + (hasAlike ? 1 : 0)), ! new ArrayList((hasAlike ? 1 : 0) + (thisConstraint == null ? 0 ! : thisConstraint.atoms.size()))); ! constraint.addBinders(thisBinders); if (thisConstraint != null) ! constraint.addAtoms(thisConstraint.atoms); mlsub.typing.Monotype thisType; --- 79,89 ---- constraint = new Constraint (new ArrayList(thisBindersLen + (hasAlike ? 1 : 0)), ! new ArrayList((hasAlike ? 1 : 0) + ! (thisConstraint == null ? 0 : ! thisConstraint.getAtoms().size()))); ! constraint.addBinders(thisBinders); if (thisConstraint != null) ! constraint.addAtoms(thisConstraint.getAtoms()); mlsub.typing.Monotype thisType; Index: NiceClass.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/NiceClass.java,v retrieving revision 1.64 retrieving revision 1.65 diff -C2 -d -r1.64 -r1.65 *** NiceClass.java 15 Nov 2003 13:02:15 -0000 1.64 --- NiceClass.java 15 Nov 2003 17:25:47 -0000 1.65 *************** *** 595,598 **** --- 595,599 ---- { mlsub.typing.TypeSymbol[] binders = other.definition.getBinders(); + mlsub.typing.TypeSymbol[] ourBinders = definition.getBinders(); TypeScope scope = Node.getGlobalTypeScope(); Map map = null; *************** *** 602,606 **** for (int i = 0; i < binders.length; i++) try { ! scope.addMapping(definition.classConstraint.binders[i].toString(), binders[i]); } catch(TypeScope.DuplicateName e) {} } --- 603,607 ---- for (int i = 0; i < binders.length; i++) try { ! scope.addMapping(ourBinders[i].toString(), binders[i]); } catch(TypeScope.DuplicateName e) {} } *************** *** 628,635 **** scope = new TypeScope(scope); map = new HashMap(); for (int i = 0; i < binders.length; i++) try { ! scope.addMapping(definition.classConstraint.binders[i].toString(), binders[i]); ! map.put(definition.classConstraint.binders[i], binders[i]); } catch(TypeScope.DuplicateName e) {} } --- 629,637 ---- scope = new TypeScope(scope); map = new HashMap(); + TypeSymbol[] ourBinders = definition.getBinders(); for (int i = 0; i < binders.length; i++) try { ! scope.addMapping(ourBinders[i].toString(), binders[i]); ! map.put(ourBinders[i], binders[i]); } catch(TypeScope.DuplicateName e) {} } Index: MethodContainer.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/MethodContainer.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** MethodContainer.java 15 Nov 2003 13:02:15 -0000 1.12 --- MethodContainer.java 15 Nov 2003 17:25:47 -0000 1.13 *************** *** 72,76 **** ****************************************************************/ ! public static class Constraint { /** --- 72,76 ---- ****************************************************************/ ! public static class Constraint extends bossa.syntax.Constraint { /** *************** *** 78,97 **** of this class. */ ! public Constraint(bossa.syntax.Constraint cst, MonotypeVar[] typeParameters, List atoms) { if (cst == bossa.syntax.Constraint.True || cst == null) { ! this.binders = typeParameters; ! this.typeParameters = typeParameters; ! this.atoms = atoms; } else { ! this.syntacticConstraint = cst.toString(); ! this.atoms = cst.getAtoms(); ! this.binders = (TypeSymbol[]) cst.getBinders(). ! toArray(new TypeSymbol[cst.getBinders().size()]); ! findBinders(typeParameters); } } --- 78,112 ---- of this class. */ ! public static Constraint make(bossa.syntax.Constraint cst, ! MonotypeVar[] typeParameters, List atoms) { + TypeSymbol[] binders; + List constraints; + boolean resolve; + if (cst == bossa.syntax.Constraint.True || cst == null) { ! binders = typeParameters; ! constraints = atoms; ! resolve = false; } else { ! constraints = cst.getAtoms(); ! binders = cst.getBinderArray(); ! resolve = true; } + + return new Constraint(binders, constraints, typeParameters, resolve); + } + + private Constraint (TypeSymbol[] binders, List atoms, + MonotypeVar[] typeParameters, boolean resolve) + { + super(binders, atoms); + if (resolve) + findBinders(typeParameters); + else + this.typeParameters = typeParameters; } *************** *** 111,125 **** private mlsub.typing.Monotype findBinder(MonotypeVar binder) { ! for (int i = 0; i < binders.length; i++) ! if (binders[i].toString().equals(binder.getName())) ! { ! if (binders[i] instanceof MonotypeVar) ! return (MonotypeVar) binders[i]; ! else ! // The type parameter must be in fact a type constructor ! // of variance zero. ! return new mlsub.typing.MonotypeConstructor ! ((TypeConstructor) binders[i], null); ! } // Not found. It was not introduced earlier, use it as the binder. --- 126,143 ---- private mlsub.typing.Monotype findBinder(MonotypeVar binder) { ! for (java.util.Iterator i = this.getBinders().iterator(); i.hasNext(); ) ! { ! TypeSymbol s = (TypeSymbol) i.next(); ! if (s.toString().equals(binder.getName())) ! { ! if (s instanceof MonotypeVar) ! return (MonotypeVar) s; ! else ! // The type parameter must be in fact a type constructor ! // of variance zero. ! return new mlsub.typing.MonotypeConstructor ! ((TypeConstructor) s, null); ! } ! } // Not found. It was not introduced earlier, use it as the binder. *************** *** 127,139 **** } - /** The binders of the constraint. */ - TypeSymbol[] binders; - /** The type parameters of the class. */ mlsub.typing.Monotype[] typeParameters; - - List atoms; - - String syntacticConstraint; } --- 145,150 ---- *************** *** 146,153 **** { TypeScope scope = new TypeScope(this.typeScope); ! try { scope.addSymbols(classConstraint.binders); } catch(TypeScope.DuplicateName ex) {} resolvedConstraints = ! AtomicConstraint.resolve(scope, classConstraint.atoms); } } --- 157,164 ---- { TypeScope scope = new TypeScope(this.typeScope); ! try { scope.addSymbols(classConstraint.getBinders()); } catch(TypeScope.DuplicateName ex) {} resolvedConstraints = ! AtomicConstraint.resolve(scope, classConstraint.getAtoms()); } } *************** *** 159,163 **** return null; else ! return classConstraint.binders; } --- 170,174 ---- return null; else ! return classConstraint.getBinderArray(); } *************** *** 177,181 **** else return new mlsub.typing.Constraint ! (classConstraint.binders, resolvedConstraints); } --- 188,192 ---- else return new mlsub.typing.Constraint ! (classConstraint.getBinderArray(), resolvedConstraints); } *************** *** 190,198 **** public void printInterface(java.io.PrintWriter s) { ! // print the constraint as a prefix constraint ! if (classConstraint == null || classConstraint.syntacticConstraint == null) return; ! s.print(classConstraint.syntacticConstraint); } --- 201,210 ---- public void printInterface(java.io.PrintWriter s) { ! // Always print the constraint as a prefix constraint. ! ! if (classConstraint == null) return; ! s.print(classConstraint); } *************** *** 216,250 **** } - if (resolvedConstraints != null) - for (int i = 0; i < resolvedConstraints.length; i++) - if (resolvedConstraints[i] instanceof mlsub.typing.MonotypeLeqTcCst) - { - mlsub.typing.MonotypeLeqTcCst cst = (mlsub.typing.MonotypeLeqTcCst) resolvedConstraints[i]; - if (cst.m == typeParameters[n]) { - res.append('!'); - break; - } - } - res.append(typeParameters[n].toString()); if (n + 1 < typeParameters.length) res.append(", "); } - - if (resolvedConstraints != null) { - boolean first = true; - for (int n = 0; n < resolvedConstraints.length; n++) - { - if (resolvedConstraints[n] instanceof mlsub.typing.MonotypeLeqTcCst) - break; - if (first) { - res.append(" | "); - first = false; - } - res.append(resolvedConstraints[n]); - if (n + 1 < resolvedConstraints.length) - res.append(", "); - } - } return res.append(">").toString(); --- 228,235 ---- Index: Constraint.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/Constraint.java,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** Constraint.java 15 Nov 2003 13:02:15 -0000 1.36 --- Constraint.java 15 Nov 2003 17:25:47 -0000 1.37 *************** *** 264,267 **** --- 264,272 ---- List getAtoms() { return atomics; } + TypeSymbol[] getBinderArray() + { + return (TypeSymbol[]) binders.toArray(new TypeSymbol[binders.size()]); + } + private List /* of TypeSymbol */ binders; private List /* of AtomicConstraint */ atomics; Index: ClassDefinition.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/ClassDefinition.java,v retrieving revision 1.98 retrieving revision 1.99 diff -C2 -d -r1.98 -r1.99 *** ClassDefinition.java 15 Nov 2003 13:02:15 -0000 1.98 --- ClassDefinition.java 15 Nov 2003 17:25:47 -0000 1.99 *************** *** 445,449 **** try{ localScope = new TypeScope(localScope); ! mlsub.typing.TypeSymbol[] binders = classConstraint.binders; //add only nonvariant type parameter so no possibly unsafe co/contra-variant fields can exist. for (int i = 0; i < binders.length; i++) --- 445,449 ---- try{ localScope = new TypeScope(localScope); ! mlsub.typing.TypeSymbol[] binders = getBinders(); //add only nonvariant type parameter so no possibly unsafe co/contra-variant fields can exist. for (int i = 0; i < binders.length; i++) |
From: <bo...@us...> - 2003-11-15 17:25:50
|
Update of /cvsroot/nice/Nice/src/bossa/parser In directory sc8-pr-cvs1:/tmp/cvs-serv860/src/bossa/parser Modified Files: Parser.jj Log Message: Make the class constraint be a subtype of bossa.syntax.Constraint, which allows to reuse existing code for printing the constraint and get rid of the custom printing code in MethodContainer. Index: Parser.jj =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/parser/Parser.jj,v retrieving revision 1.212 retrieving revision 1.213 diff -C2 -d -r1.212 -r1.213 *** Parser.jj 15 Nov 2003 13:02:16 -0000 1.212 --- Parser.jj 15 Nov 2003 17:25:47 -0000 1.213 *************** *** 1116,1120 **** MonotypeVar[] b = (MonotypeVar[]) binders.toArray(new MonotypeVar[binders.size()]); ! return new MethodContainer.Constraint(prefix, b, atoms); } } --- 1116,1120 ---- MonotypeVar[] b = (MonotypeVar[]) binders.toArray(new MonotypeVar[binders.size()]); ! return MethodContainer.Constraint.make(prefix, b, atoms); } } *************** *** 1446,1452 **** { ( - LOOKAHEAD ( "abstract" "interface" ) - res=interfaceDefinition(Constraint.True) - | LOOKAHEAD( ("class" | "interface") fullyQualifiedName() ) res=abstractInterfaceImplementation() --- 1446,1449 ---- *************** *** 1459,1463 **** | res=enumDefinition() | { Constraint cst; } cst = constraint() ! ( res=classDefinition(cst, definitions) | res=methodDeclaration(cst) ) --- 1456,1463 ---- | res=enumDefinition() | { Constraint cst; } cst = constraint() ! ( ! LOOKAHEAD ( "abstract" "interface" ) ! res=interfaceDefinition(cst) ! | res=classDefinition(cst, definitions) | res=methodDeclaration(cst) ) |
From: <bo...@us...> - 2003-11-15 15:48:33
|
Update of /cvsroot/nice/Nice/testsuite/compiler/abstractInterfaces In directory sc8-pr-cvs1:/tmp/cvs-serv17434/testsuite/compiler/abstractInterfaces Removed Files: classTypeParameter.testsuite Log Message: Implemented, with a slightly different syntax. This test is removed, as the same functionality is in compiler/classes/typeParameters.testsuite --- classTypeParameter.testsuite DELETED --- |
From: <bo...@us...> - 2003-11-15 13:02:20
|
Update of /cvsroot/nice/Nice/src/bossa/parser In directory sc8-pr-cvs1:/tmp/cvs-serv23249/src/bossa/parser Modified Files: Parser.jj Log Message: Initial support for constraints prefixing a class definition. Index: Parser.jj =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/parser/Parser.jj,v retrieving revision 1.211 retrieving revision 1.212 diff -C2 -d -r1.211 -r1.212 *** Parser.jj 8 Oct 2003 21:51:42 -0000 1.211 --- Parser.jj 15 Nov 2003 13:02:16 -0000 1.212 *************** *** 949,953 **** } ! ClassDefinition classDefinition(List definitions): { ClassDefinition res; --- 949,955 ---- } ! // The constraint prefixing the class keyword is optional ! // It is useful for complex constraints ! ClassDefinition classDefinition(Constraint cst, List definitions): { ClassDefinition res; *************** *** 959,966 **** } { ( "interface" name=ident() ! [ parameters=classTypeParameters(typeParametersVariances) ] { List ext = null; } [ "extends" ext = interfaces() ] --- 961,969 ---- } { + ( "interface" name=ident() ! [ parameters=classTypeParameters(cst, typeParametersVariances) ] { List ext = null; } [ "extends" ext = interfaces() ] *************** *** 976,980 **** "class" name=ident() ! [ parameters=classTypeParameters(typeParametersVariances) ] { TypeIdent sup = null; } --- 979,983 ---- "class" name=ident() ! [ parameters=classTypeParameters(cst, typeParametersVariances) ] { TypeIdent sup = null; } *************** *** 1049,1053 **** } ! AbstractInterface interfaceDefinition(): { LocatedString name; --- 1052,1056 ---- } ! AbstractInterface interfaceDefinition(Constraint prefix): { LocatedString name; *************** *** 1060,1064 **** "abstract" "interface" name=ident() ! [ parameters=classTypeParameters(typeParametersVariances) ] [ "extends" extensions=interfaces() ] "{" --- 1063,1067 ---- "abstract" "interface" name=ident() ! [ parameters=classTypeParameters(prefix, typeParametersVariances) ] [ "extends" extensions=interfaces() ] "{" *************** *** 1092,1110 **** ! MethodContainer.Constraint classTypeParameters(List tags): { List binders = new ArrayList(3); List atoms = new ArrayList(3); MonotypeVar var; } { ! "<" var=taggedMonotypeVar(tags, atoms) { binders.add(var); } ( "," var=taggedMonotypeVar(tags, atoms) { binders.add(var); } )* [ "|" atomics(atoms) ] ">" ! { MonotypeVar[] b = (MonotypeVar[]) binders.toArray(new MonotypeVar[binders.size()]); ! return new MethodContainer.Constraint(b, atoms); } } --- 1095,1120 ---- ! MethodContainer.Constraint classTypeParameters(Constraint prefix, List tags): { List binders = new ArrayList(3); List atoms = new ArrayList(3); MonotypeVar var; + Token start; } { ! start="<" var=taggedMonotypeVar(tags, atoms) { binders.add(var); } ( "," var=taggedMonotypeVar(tags, atoms) { binders.add(var); } )* [ "|" atomics(atoms) ] ">" ! { ! // For the moment, disallow constraints to come from both the prefix ! // and the type parameters. ! if (prefix != Constraint.True && atoms.size() > 0) ! throw bossa.util.User.error ! (Location.make(start), "Constraints on type parameters should all be specified in the prefix constraint"); ! MonotypeVar[] b = (MonotypeVar[]) binders.toArray(new MonotypeVar[binders.size()]); ! return new MethodContainer.Constraint(prefix, b, atoms); } } *************** *** 1263,1277 **** } ! Definition methodDeclaration(): { LocatedString name; Monotype returnType; FormalParameters parameters; - Constraint cst; Definition res; List statements = new LinkedList(); } { - cst=constraint() returnType=monotype() name=identOrBackquoted() --- 1273,1285 ---- } ! Definition methodDeclaration(Constraint cst): { LocatedString name; Monotype returnType; FormalParameters parameters; Definition res; List statements = new LinkedList(); } { returnType=monotype() name=identOrBackquoted() *************** *** 1439,1443 **** ( LOOKAHEAD ( "abstract" "interface" ) ! res=interfaceDefinition() | LOOKAHEAD( ("class" | "interface") fullyQualifiedName() ) --- 1447,1451 ---- ( LOOKAHEAD ( "abstract" "interface" ) ! res=interfaceDefinition(Constraint.True) | LOOKAHEAD( ("class" | "interface") fullyQualifiedName() ) *************** *** 1450,1455 **** ( res=globalVariable() | res=enumDefinition() ! | res=classDefinition(definitions) ! | res=methodDeclaration() ) ) --- 1458,1465 ---- ( res=globalVariable() | res=enumDefinition() ! | { Constraint cst; } cst = constraint() ! ( res=classDefinition(cst, definitions) ! | res=methodDeclaration(cst) ! ) ) ) |
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv23249/src/bossa/syntax Modified Files: NiceMethod.java NiceFieldAccess.java NiceClass.java MethodContainer.java Constraint.java ClassDefinition.java AbstractInterface.java Log Message: Initial support for constraints prefixing a class definition. Index: NiceMethod.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/NiceMethod.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** NiceMethod.java 11 Sep 2003 20:50:27 -0000 1.24 --- NiceMethod.java 15 Nov 2003 13:02:15 -0000 1.25 *************** *** 55,62 **** MethodContainer.Constraint thisConstraint = c.classConstraint; ! mlsub.typing.MonotypeVar[] thisTypeParams = c.getTypeParameters(); ! int thisTypeParamsLen = (thisTypeParams == null ? 0 ! : thisTypeParams.length); TypeSymbol container = c.getTypeSymbol(); --- 55,62 ---- MethodContainer.Constraint thisConstraint = c.classConstraint; ! mlsub.typing.TypeSymbol[] thisBinders = c.getBinders(); ! int thisBindersLen = (thisBinders == null ? 0 ! : thisBinders.length); TypeSymbol container = c.getTypeSymbol(); *************** *** 78,86 **** if(constraint == Constraint.True) constraint = new Constraint ! (new ArrayList(thisTypeParamsLen + (hasAlike ? 1 : 0)), new ArrayList((hasAlike ? 1 : 0) + (thisConstraint == null ? 0 : thisConstraint.atoms.size()))); ! constraint.addBinders(thisTypeParams); if (thisConstraint != null) constraint.addAtoms(thisConstraint.atoms); --- 78,86 ---- if(constraint == Constraint.True) constraint = new Constraint ! (new ArrayList(thisBindersLen + (hasAlike ? 1 : 0)), new ArrayList((hasAlike ? 1 : 0) + (thisConstraint == null ? 0 : thisConstraint.atoms.size()))); ! constraint.addBinders(thisBinders); if (thisConstraint != null) constraint.addAtoms(thisConstraint.atoms); *************** *** 107,111 **** constraint.addAtom(AtomicConstraint.create(atom)); ! thisType = new mlsub.typing.MonotypeConstructor(alikeTC, thisTypeParams); if (hasAlike) --- 107,111 ---- constraint.addAtom(AtomicConstraint.create(atom)); ! thisType = new mlsub.typing.MonotypeConstructor(alikeTC, c.getTypeParameters()); if (hasAlike) *************** *** 119,123 **** else thisType = ! new mlsub.typing.MonotypeConstructor(tc, thisTypeParams); params.addThis(Monotype.create(Monotype.sure(thisType))); --- 119,123 ---- else thisType = ! new mlsub.typing.MonotypeConstructor(tc, c.getTypeParameters()); params.addThis(Monotype.create(Monotype.sure(thisType))); Index: NiceFieldAccess.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/NiceFieldAccess.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** NiceFieldAccess.java 31 Jul 2003 18:45:35 -0000 1.17 --- NiceFieldAccess.java 15 Nov 2003 13:02:15 -0000 1.18 *************** *** 36,40 **** { super(field.sym.name, ! Constraint.create(classDef.definition.getTypeParameters()), makeList(Monotype.sure(classDef.definition.lowlevelMonotype())), field.sym.syntacticType); --- 36,40 ---- { super(field.sym.name, ! Constraint.create(classDef.definition.getBinders()), makeList(Monotype.sure(classDef.definition.lowlevelMonotype())), field.sym.syntacticType); Index: NiceClass.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/NiceClass.java,v retrieving revision 1.63 retrieving revision 1.64 diff -C2 -d -r1.63 -r1.64 *** NiceClass.java 25 Oct 2003 20:34:37 -0000 1.63 --- NiceClass.java 15 Nov 2003 13:02:15 -0000 1.64 *************** *** 562,571 **** private static FormalParameters.Parameter[][] getFieldsAsParameters (TypeConstructor tc, int nbFields, List constraints, ! MonotypeVar[] typeParams) { ClassDefinition sup = ClassDefinition.get(tc); if (sup != null && sup.implementation instanceof NiceClass) return ((NiceClass) sup.implementation). ! getFieldsAsParameters(nbFields, constraints, typeParams); List constructors = TypeConstructors.getConstructors(tc); --- 562,571 ---- private static FormalParameters.Parameter[][] getFieldsAsParameters (TypeConstructor tc, int nbFields, List constraints, ! TypeSymbol[] binders) { ClassDefinition sup = ClassDefinition.get(tc); if (sup != null && sup.implementation instanceof NiceClass) return ((NiceClass) sup.implementation). ! getFieldsAsParameters(nbFields, constraints, binders); List constructors = TypeConstructors.getConstructors(tc); *************** *** 594,606 **** private TypeScope translationScope(NiceClass other) { ! mlsub.typing.MonotypeVar[] typeParams = other.definition.getTypeParameters(); TypeScope scope = Node.getGlobalTypeScope(); Map map = null; ! if (typeParams != null) { scope = new TypeScope(scope); ! for (int i = 0; i < typeParams.length; i++) try { ! scope.addMapping(definition.classConstraint.typeParameters[i].getName(), typeParams[i]); } catch(TypeScope.DuplicateName e) {} } --- 594,606 ---- private TypeScope translationScope(NiceClass other) { ! mlsub.typing.TypeSymbol[] binders = other.definition.getBinders(); TypeScope scope = Node.getGlobalTypeScope(); Map map = null; ! if (binders != null) { scope = new TypeScope(scope); ! for (int i = 0; i < binders.length; i++) try { ! scope.addMapping(definition.classConstraint.binders[i].toString(), binders[i]); } catch(TypeScope.DuplicateName e) {} } *************** *** 610,618 **** private FormalParameters.Parameter[][] getFieldsAsParameters ! (int nbFields, List constraints, MonotypeVar[] typeParams) { nbFields += this.fields.length; FormalParameters.Parameter[][] res = getFieldsAsParameters ! (definition.getSuperClass(), nbFields, constraints, typeParams); if (fields.length == 0 && overrides.length == 0 && --- 610,618 ---- private FormalParameters.Parameter[][] getFieldsAsParameters ! (int nbFields, List constraints, TypeSymbol[] binders) { nbFields += this.fields.length; FormalParameters.Parameter[][] res = getFieldsAsParameters ! (definition.getSuperClass(), nbFields, constraints, binders); if (fields.length == 0 && overrides.length == 0 && *************** *** 622,626 **** TypeScope scope = Node.getGlobalTypeScope(); Map map = null; ! if (typeParams != null) { // Constructs a type scope that maps the type parameters of this --- 622,626 ---- TypeScope scope = Node.getGlobalTypeScope(); Map map = null; ! if (binders != null) { // Constructs a type scope that maps the type parameters of this *************** *** 628,635 **** scope = new TypeScope(scope); map = new HashMap(); ! for (int i = 0; i < typeParams.length; i++) try { ! scope.addMapping(definition.classConstraint.typeParameters[i].getName(), typeParams[i]); ! map.put(definition.classConstraint.typeParameters[i], typeParams[i]); } catch(TypeScope.DuplicateName e) {} } --- 628,635 ---- scope = new TypeScope(scope); map = new HashMap(); ! for (int i = 0; i < binders.length; i++) try { ! scope.addMapping(definition.classConstraint.binders[i].toString(), binders[i]); ! map.put(definition.classConstraint.binders[i], binders[i]); } catch(TypeScope.DuplicateName e) {} } *************** *** 690,695 **** List constraints; ! mlsub.typing.MonotypeVar[] typeParams = definition.getTypeParameters(); ! if (typeParams == null) constraints = null; else --- 690,695 ---- List constraints; ! mlsub.typing.TypeSymbol[] binders = definition.getBinders(); ! if (binders == null) constraints = null; else *************** *** 697,708 **** FormalParameters.Parameter[][] params = ! getFieldsAsParameters(0, constraints, typeParams); checkFields(params[0]); Constraint cst; ! if (typeParams != null) cst = new Constraint ! (typeParams, (AtomicConstraint[]) constraints.toArray(new AtomicConstraint[constraints.size()])); else --- 697,708 ---- FormalParameters.Parameter[][] params = ! getFieldsAsParameters(0, constraints, binders); checkFields(params[0]); Constraint cst; ! if (binders != null) cst = new Constraint ! (binders, (AtomicConstraint[]) constraints.toArray(new AtomicConstraint[constraints.size()])); else *************** *** 719,723 **** cst, Monotype.resolve(definition.typeScope, values.types()), ! Monotype.sure(new MonotypeConstructor(definition.tc, typeParams))); TypeConstructors.addConstructor(definition.tc, constructorMethod[i]); --- 719,723 ---- cst, Monotype.resolve(definition.typeScope, values.types()), ! Monotype.sure(new MonotypeConstructor(definition.tc, definition.getTypeParameters()))); TypeConstructors.addConstructor(definition.tc, constructorMethod[i]); Index: MethodContainer.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/MethodContainer.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** MethodContainer.java 29 Apr 2003 16:00:59 -0000 1.11 --- MethodContainer.java 15 Nov 2003 13:02:15 -0000 1.12 *************** *** 15,18 **** --- 15,21 ---- import mlsub.typing.Variance; import mlsub.typing.MonotypeVar; + import mlsub.typing.TypeSymbol; + import mlsub.typing.TypeConstructor; + import bossa.util.User; import java.util.List; *************** *** 71,82 **** public static class Constraint { ! public Constraint(MonotypeVar[] typeParameters, List atoms) { ! this.typeParameters = typeParameters; ! this.atoms = atoms; } ! MonotypeVar[] typeParameters; List atoms; } --- 74,139 ---- public static class Constraint { ! /** ! @param cst an additional constraint for the type parameters ! of this class. ! */ ! public Constraint(bossa.syntax.Constraint cst, MonotypeVar[] typeParameters, List atoms) { ! if (cst == bossa.syntax.Constraint.True || cst == null) ! { ! this.binders = typeParameters; ! this.typeParameters = typeParameters; ! this.atoms = atoms; ! } ! else ! { ! this.syntacticConstraint = cst.toString(); ! this.atoms = cst.getAtoms(); ! this.binders = (TypeSymbol[]) cst.getBinders(). ! toArray(new TypeSymbol[cst.getBinders().size()]); ! findBinders(typeParameters); ! } } ! /** ! Replace those type parameters that have been introduced in the ! constraint by their definition. ! */ ! private void findBinders(MonotypeVar[] typeParameters) ! { ! this.typeParameters = new mlsub.typing.Monotype[typeParameters.length]; ! for (int i = 0; i < typeParameters.length; i++) ! { ! this.typeParameters[i] = findBinder(typeParameters[i]); ! } ! } ! ! private mlsub.typing.Monotype findBinder(MonotypeVar binder) ! { ! for (int i = 0; i < binders.length; i++) ! if (binders[i].toString().equals(binder.getName())) ! { ! if (binders[i] instanceof MonotypeVar) ! return (MonotypeVar) binders[i]; ! else ! // The type parameter must be in fact a type constructor ! // of variance zero. ! return new mlsub.typing.MonotypeConstructor ! ((TypeConstructor) binders[i], null); ! } ! ! // Not found. It was not introduced earlier, use it as the binder. ! return binder; ! } ! ! /** The binders of the constraint. */ ! TypeSymbol[] binders; ! ! /** The type parameters of the class. */ ! mlsub.typing.Monotype[] typeParameters; ! List atoms; + + String syntacticConstraint; } *************** *** 89,93 **** { TypeScope scope = new TypeScope(this.typeScope); ! try { scope.addSymbols(classConstraint.typeParameters); } catch(TypeScope.DuplicateName ex) {} resolvedConstraints = --- 146,150 ---- { TypeScope scope = new TypeScope(this.typeScope); ! try { scope.addSymbols(classConstraint.binders); } catch(TypeScope.DuplicateName ex) {} resolvedConstraints = *************** *** 96,100 **** } ! public mlsub.typing.MonotypeVar[] getTypeParameters () { if (classConstraint == null) --- 153,167 ---- } ! /** The binders of the constraint. */ ! public mlsub.typing.TypeSymbol[] getBinders () ! { ! if (classConstraint == null) ! return null; ! else ! return classConstraint.binders; ! } ! ! /** The type parameters of the class. */ ! public mlsub.typing.Monotype[] getTypeParameters () { if (classConstraint == null) *************** *** 110,114 **** else return new mlsub.typing.Constraint ! (classConstraint.typeParameters, resolvedConstraints); } --- 177,181 ---- else return new mlsub.typing.Constraint ! (classConstraint.binders, resolvedConstraints); } *************** *** 117,120 **** --- 184,200 ---- ****************************************************************/ + /** + Children should call this implementation (super) then print + their specific information. + */ + public void printInterface(java.io.PrintWriter s) + { + // print the constraint as a prefix constraint + if (classConstraint == null || classConstraint.syntacticConstraint == null) + return; + + s.print(classConstraint.syntacticConstraint); + } + String printTypeParameters() { *************** *** 122,126 **** return ""; ! MonotypeVar[] typeParameters = classConstraint.typeParameters; StringBuffer res = new StringBuffer("<"); for (int n = 0; n < typeParameters.length; n++) --- 202,206 ---- return ""; ! mlsub.typing.Monotype[] typeParameters = classConstraint.typeParameters; StringBuffer res = new StringBuffer("<"); for (int n = 0; n < typeParameters.length; n++) Index: Constraint.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/Constraint.java,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** Constraint.java 15 Jul 2003 10:36:18 -0000 1.35 --- Constraint.java 15 Nov 2003 13:02:15 -0000 1.36 *************** *** 261,264 **** --- 261,267 ---- } + List getBinders() { return binders; } + List getAtoms() { return atomics; } + private List /* of TypeSymbol */ binders; private List /* of AtomicConstraint */ atomics; Index: ClassDefinition.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/ClassDefinition.java,v retrieving revision 1.97 retrieving revision 1.98 diff -C2 -d -r1.97 -r1.98 *** ClassDefinition.java 28 Oct 2003 10:36:43 -0000 1.97 --- ClassDefinition.java 15 Nov 2003 13:02:15 -0000 1.98 *************** *** 128,131 **** --- 128,132 ---- public void printInterface(java.io.PrintWriter s) { + super.printInterface(s); s.print("interface "); s.print(getSimpleName()); *************** *** 328,331 **** --- 329,333 ---- public void printInterface(java.io.PrintWriter s) { + super.printInterface(s); if (isFinal) s.print("final "); if (isAbstract) s.print("abstract "); *************** *** 443,451 **** try{ localScope = new TypeScope(localScope); ! mlsub.typing.MonotypeVar[] typeParams = classConstraint.typeParameters; //add only nonvariant type parameter so no possibly unsafe co/contra-variant fields can exist. ! for (int i = 0; i < typeParams.length; i++) if (variance.getVariance(i) == mlsub.typing.Variance.INVARIANT) ! localScope.addSymbol(typeParams[i]); } catch(TypeScope.DuplicateName e){ --- 445,453 ---- try{ localScope = new TypeScope(localScope); ! mlsub.typing.TypeSymbol[] binders = classConstraint.binders; //add only nonvariant type parameter so no possibly unsafe co/contra-variant fields can exist. ! for (int i = 0; i < binders.length; i++) if (variance.getVariance(i) == mlsub.typing.Variance.INVARIANT) ! localScope.addSymbol(binders[i]); } catch(TypeScope.DuplicateName e){ Index: AbstractInterface.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/AbstractInterface.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** AbstractInterface.java 11 Sep 2003 20:50:27 -0000 1.16 --- AbstractInterface.java 15 Nov 2003 13:02:16 -0000 1.17 *************** *** 104,107 **** --- 104,108 ---- public void printInterface(java.io.PrintWriter w) { + super.printInterface(w); w.print("abstract interface " + getSimpleName() |
From: <bo...@us...> - 2003-11-15 13:02:18
|
Update of /cvsroot/nice/Nice/testsuite/compiler/classes In directory sc8-pr-cvs1:/tmp/cvs-serv23249/testsuite/compiler/classes Modified Files: typeParameters.testsuite Log Message: Initial support for constraints prefixing a class definition. Index: typeParameters.testsuite =================================================================== RCS file: /cvsroot/nice/Nice/testsuite/compiler/classes/typeParameters.testsuite,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** typeParameters.testsuite 26 Jul 2003 22:29:47 -0000 1.13 --- typeParameters.testsuite 15 Nov 2003 13:02:14 -0000 1.14 *************** *** 264,265 **** --- 264,284 ---- { t = t; this.t = t; t = this.t; this.t = this.t; } } + + /// PASS + /// Toplevel + abstract interface A { + void aOp(); + } + + <A SomeA> class AWrapper<SomeA> { + SomeA a; + // Check that we can use a as an A. + void op() = a.aOp(); + } + + /// FAIL bug + new AWrapper(); + /// Toplevel + class A<T> {} + <A SomeA> class AWrapper<SomeA> { + } |
From: <bo...@us...> - 2003-11-15 12:26:35
|
Update of /cvsroot/nice/Nice/src/bossa/syntax In directory sc8-pr-cvs1:/tmp/cvs-serv17918/src/bossa/syntax Modified Files: AtomicConstraint.java Log Message: Minor (hum!). Index: AtomicConstraint.java =================================================================== RCS file: /cvsroot/nice/Nice/src/bossa/syntax/AtomicConstraint.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** AtomicConstraint.java 10 Dec 2002 01:52:21 -0000 1.11 --- AtomicConstraint.java 15 Nov 2003 12:26:32 -0000 1.12 *************** *** 17,21 **** /** ! A constraint atom. See childs @see Constraint --- 17,21 ---- /** ! An abstract constraint atom. See children. @see Constraint |
From: <bo...@us...> - 2003-11-13 16:57:59
|
Update of /cvsroot/nice/tester In directory sc8-pr-cvs1:/tmp/cvs-serv25051 Modified Files: Project cvs cvs-master Added Files: cvs-pserver Log Message: Use make universe instead of make world to make sure the development compiler can bootstrap itself from scratch. Split cvs into cvs-master and cvs-pserver. --- NEW FILE: cvs-pserver --- #! /bin/sh # Wrapper for cvs, that retries several times in case of failure # Usage: # cvs <module name> # Try at most 20 times times, in case the cvs server is busy tries=0 while ! cvs -d:pserver:anonymous@$CVS_SOURCEFORGE:/cvsroot/nice export \ -rHEAD "$@"; do tries=`expr $tries + 1` if [ $tries -ge 20 ]; then # Signal that we failed because of a network problem exit 1 fi echo "$tries failures" sleep 30 done Index: Project =================================================================== RCS file: /cvsroot/nice/tester/Project,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Project 25 Jul 2003 14:01:49 -0000 1.7 --- Project 13 Nov 2003 16:57:55 -0000 1.8 *************** *** 5,13 **** if [ ! -r Nice ]; then ! ../cvs${NICE_MASTER:+-master} Nice || exit 3 wget -O Nice/external/nice-bootstrap.jar http://nice.sf.net/nice.jar || exit 3 fi ! cd Nice && make world # If we got here, the whole bootstrap process succeeded. --- 5,13 ---- if [ ! -r Nice ]; then ! ../cvs Nice || exit 3 wget -O Nice/external/nice-bootstrap.jar http://nice.sf.net/nice.jar || exit 3 fi ! cd Nice && make universe # If we got here, the whole bootstrap process succeeded. Index: cvs =================================================================== RCS file: /cvsroot/nice/tester/cvs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** cvs 22 Jun 2003 10:10:52 -0000 1.2 --- cvs 13 Nov 2003 16:57:55 -0000 1.3 *************** *** 1,23 **** #! /bin/sh ! # Wrapper for cvs, that retries seevral times in case of failure ! ! # Usage: ! # cvs <module name> ! ! # Try at most 20 times times, in case the cvs server is busy ! tries=0 ! ! while ! cvs -d:pserver:anonymous@$CVS_SOURCEFORGE:/cvsroot/nice export \ ! -rHEAD "$@"; do ! ! tries=`expr $tries + 1` ! if [ $tries -ge 20 ]; then ! # Signal that we failed because of a network problem ! exit 1 ! fi ! echo "$tries failures" ! sleep 30 ! done --- 1,11 ---- #! /bin/sh ! # Wrapper for cvs, that retries several times in case of failure ! dir="`dirname $0`" ! if [ -n "$NICE_MASTER" ]; then ! $dir/cvs-master "$@" ! else ! $dir/cvs-pserver "$@" ! fi Index: cvs-master =================================================================== RCS file: /cvsroot/nice/tester/cvs-master,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** cvs-master 25 Jul 2003 14:01:49 -0000 1.1 --- cvs-master 13 Nov 2003 16:57:55 -0000 1.2 *************** *** 6,9 **** # cvs <module name> ! CVS_RSH=ssh cvs -d:ext:bonniot@$CVS_SOURCEFORGE:/cvsroot/nice export \ ! -rHEAD "$@" --- 6,9 ---- # cvs <module name> ! CVS_RSH=ssh cvs -d:ext:bonniot@$CVS_SOURCEFORGE:/cvsroot/nice ${2:-export} \ ! "${CVS_DATE:--rHEAD}" "$1" |
From: <bo...@us...> - 2003-11-12 21:39:08
|
Update of /cvsroot/nice/Nice/distrib In directory sc8-pr-cvs1:/tmp/cvs-serv13806/distrib Modified Files: Makefile Log Message: Create a tar file with a nice-x.y.z/ prefix to all files. Index: Makefile =================================================================== RCS file: /cvsroot/nice/Nice/distrib/Makefile,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Makefile 18 Jun 2003 22:52:47 -0000 1.7 --- Makefile 12 Nov 2003 21:39:04 -0000 1.8 *************** *** 42,48 **** .PHONY: tar tar ${TARFILE}: $(DEB) ! ${clean-tmp} ! cd $(BUILDROOT) && $(MAKE) install PREFIX=${CURDIR}/tmp ! cd tmp && tar -czf ../${TARFILE} . --owner=0 --group=0 .PHONY: rpm --- 42,48 ---- .PHONY: tar tar ${TARFILE}: $(DEB) ! ${clean-tmp} && mkdir tmp/$(BUILDROOT) ! cd $(BUILDROOT) && $(MAKE) install PREFIX=${CURDIR}/tmp/$(BUILDROOT) ! cd tmp && tar -czf ../${TARFILE} $(BUILDROOT) --owner=0 --group=0 .PHONY: rpm |
From: <bo...@us...> - 2003-11-12 21:33:10
|
Update of /cvsroot/nice/Nice/distrib In directory sc8-pr-cvs1:/tmp/cvs-serv12850/distrib Modified Files: .cvsignore Log Message: Ignore new Debian build files. Index: .cvsignore =================================================================== RCS file: /cvsroot/nice/Nice/distrib/.cvsignore,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** .cvsignore 6 May 2003 13:27:41 -0000 1.2 --- .cvsignore 12 Nov 2003 21:33:07 -0000 1.3 *************** *** 8,11 **** --- 8,13 ---- *.diff.gz *.changes + *.build + *.dsc.asc # Temp directories |
From: <bo...@us...> - 2003-11-12 21:27:32
|
Update of /cvsroot/nice/Nice/debian In directory sc8-pr-cvs1:/tmp/cvs-serv11724/debian Modified Files: rules Log Message: Make sure kaffe and jikes are just, and not a arbitrary programs chosen by the alternatives system. Index: rules =================================================================== RCS file: /cvsroot/nice/Nice/debian/rules,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** rules 19 Apr 2003 13:39:11 -0000 1.5 --- rules 12 Nov 2003 21:27:29 -0000 1.6 *************** *** 24,28 **** # Ask javac to produce optimized code, but no debugging info # so that the package is smaller. ! $(MAKE) complete JAVAC_FLAGS="-O" #/usr/bin/docbook-to-man debian/nice.sgml > nice.1 --- 24,28 ---- # Ask javac to produce optimized code, but no debugging info # so that the package is smaller. ! $(MAKE) complete JAVAC_FLAGS="-O" JAVA="kaffe" JAVAC="jikes-classpath" #/usr/bin/docbook-to-man debian/nice.sgml > nice.1 |
From: <bo...@us...> - 2003-11-12 21:26:27
|
Update of /cvsroot/nice/Nice/debian In directory sc8-pr-cvs1:/tmp/cvs-serv11459/debian Modified Files: changelog Log Message: Bug fixes (error reporting for certain overloading by expected type). Index: changelog =================================================================== RCS file: /cvsroot/nice/Nice/debian/changelog,v retrieving revision 1.221 retrieving revision 1.222 diff -C2 -d -r1.221 -r1.222 *** changelog 6 Nov 2003 14:30:32 -0000 1.221 --- changelog 12 Nov 2003 21:26:24 -0000 1.222 *************** *** 8,11 **** --- 8,12 ---- * Generate more efficient code for anonymous functions that do not capture the environment. This also avoids a memory leak. + * Bug fixes (error reporting for certain overloading by expected type). -- |
From: <bo...@us...> - 2003-11-12 21:20:14
|
Update of /cvsroot/nice/Nice/debian In directory sc8-pr-cvs1:/tmp/cvs-serv9984/debian Added Files: nice.links Log Message: Make the nicec task available to ant. --- NEW FILE: nice.links --- usr/share/java/nice.jar usr/share/ant/lib/nice.jar |
From: <bo...@us...> - 2003-11-12 21:16:15
|
Update of /cvsroot/nice/Nice/web In directory sc8-pr-cvs1:/tmp/cvs-serv9167/web Modified Files: compilation.xml Log Message: Mentioned Ant, with a link to the doc of the Ant task definition in the Wiki. Index: compilation.xml =================================================================== RCS file: /cvsroot/nice/Nice/web/compilation.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** compilation.xml 21 Oct 2002 17:50:59 -0000 1.3 --- compilation.xml 12 Nov 2003 21:16:12 -0000 1.4 *************** *** 73,75 **** --- 73,88 ---- </para> + <para> + Instead of starting the compiler in a terminal, you can of course automate + this by using a build system. If you are familiar with make, you can + just invoke the compiler as above in a Makefile. There is also a + <literal>nicec</literal> task for the + <ulink + url="http://ant.apache.org">Ant build system</ulink>. + The use of Nice with Ant is + <ulink + url="http://nice.sourceforge.net/cgi-bin/twiki/view/Doc/NicecAntTaskdef"> + documented</ulink> in the Wiki. + </para> + </page> |
From: <bo...@us...> - 2003-11-12 18:01:59
|
Update of /cvsroot/nice/Nice In directory sc8-pr-cvs1:/tmp/cvs-serv32449 Modified Files: Makefile Log Message: Added target 'make universe', which uses a produced compiler to restart the bootstrap from the start. If that second one succeeds, we can be pretty confident about the ability of the compiler to bootstrap itself. Index: Makefile =================================================================== RCS file: /cvsroot/nice/Nice/Makefile,v retrieving revision 1.130 retrieving revision 1.131 diff -C2 -d -r1.130 -r1.131 *** Makefile 12 Sep 2003 18:04:43 -0000 1.130 --- Makefile 12 Nov 2003 18:01:54 -0000 1.131 *************** *** 48,51 **** --- 48,57 ---- world: fixpoint check test + # The bootstrap at the end of the universe ;-) + universe: + $(MAKE) complete + cp share/java/nice.jar external/nice-bootstrap.jar + $(MAKE) world + src/nice/tools/compiler/console.jar: $(MAKE) complete |
From: <bo...@us...> - 2003-11-12 17:52:03
|
Update of /cvsroot/nice/Nice/web In directory sc8-pr-cvs1:/tmp/cvs-serv30444/web Modified Files: new.xsl irc.xml Log Message: Display the number of people currently online on #nice. Index: new.xsl =================================================================== RCS file: /cvsroot/nice/Nice/web/new.xsl,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** new.xsl 27 Aug 2003 09:35:39 -0000 1.13 --- new.xsl 12 Nov 2003 17:52:00 -0000 1.14 *************** *** 293,295 **** --- 293,300 ---- </xsl:template> + <xsl:template match="irc-users"> + <script language="JavaScript" src="http://searchirc.com/searchirc_chan_stats.php?n=59&c=I25pY2U=&o=1"></script> + </xsl:template> + + </xsl:stylesheet> Index: irc.xml =================================================================== RCS file: /cvsroot/nice/Nice/web/irc.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** irc.xml 6 Nov 2003 14:50:30 -0000 1.3 --- irc.xml 12 Nov 2003 17:52:00 -0000 1.4 *************** *** 19,22 **** --- 19,26 ---- <para> + The channel <irc-users/> (two of these are probably robots). + </para> + + <para> To participate, you will need an IRC client. Set it up to connect to the server <literal>irc.freenode.net</literal>. Then |
From: <bo...@us...> - 2003-11-11 15:30:35
|
Update of /cvsroot/nice/Nice/web In directory sc8-pr-cvs1:/tmp/cvs-serv21817/web Modified Files: safety.xml Log Message: Dynamic type inference on instanceof is now implemented (since 0.9.2). Index: safety.xml =================================================================== RCS file: /cvsroot/nice/Nice/web/safety.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** safety.xml 24 Aug 2003 12:59:20 -0000 1.5 --- safety.xml 11 Nov 2003 15:30:31 -0000 1.6 *************** *** 351,355 **** </listitem> <listitem> ! <para>safe version of <literal>instanceof</literal> (work in progress)</para> <para> --- 351,355 ---- </listitem> <listitem> ! <para>safe version of <literal>instanceof</literal></para> <para> *************** *** 378,385 **** </para> - <para> - This feature is being worked on. It is not present in the last - released version of the compiler. - </para> </listitem> </orderedlist> --- 378,381 ---- |
From: <gr...@us...> - 2003-11-11 15:07:33
|
Update of /cvsroot/nice/eclipse In directory sc8-pr-cvs1:/tmp/cvs-serv7024/eclipse Modified Files: build.xml nice_plugin_build.properties Log Message: adjusted the ant build script to other eclipse versions on other platforms Index: build.xml =================================================================== RCS file: /cvsroot/nice/eclipse/build.xml,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** build.xml 31 Aug 2003 13:48:22 -0000 1.11 --- build.xml 11 Nov 2003 14:17:06 -0000 1.12 *************** *** 134,145 **** <fileset dir="${eclipse.home}/plugins"> <include name="org.eclipse.swt*/**/*.jar"/> </fileset> - <pathelement location="${eclipse.home}/plugins/org.eclipse.text_${eclipse.version}/text.jar"/> <pathelement location="${eclipse.home}/plugins/org.eclipse.jface_${eclipse.version}/jface.jar"/> - <pathelement location="${eclipse.home}/plugins/org.eclipse.jface.text_${eclipse.version}/jfacetext.jar"/> - <pathelement location="${eclipse.home}/plugins/org.eclipse.ui.views_${eclipse.version}/views.jar"/> <pathelement location="${eclipse.home}/plugins/org.eclipse.ui.workbench_${eclipse.version}/workbench.jar"/> - <pathelement location="${eclipse.home}/plugins/org.eclipse.ui.workbench.texteditor_${eclipse.version}/texteditor.jar"/> - <pathelement location="${eclipse.home}/plugins/org.eclipse.ui.editors_${eclipse.version}/editors.jar"/> <pathelement location="${eclipse.home}/plugins/org.eclipse.debug.ui_${eclipse.version}/dtui.jar"/> <pathelement location="${eclipse.home}/plugins/org.eclipse.core.runtime_${eclipse.version}/runtime.jar"/> --- 134,145 ---- <fileset dir="${eclipse.home}/plugins"> <include name="org.eclipse.swt*/**/*.jar"/> + <include name="org.eclipse.text*/**/text.jar"/> + <include name="org.eclipse.jface.text*/**/jfacetext.jar"/> + <include name="org.eclipse.ui.views*/**/views.jar"/> + <include name="org.eclipse.ui.workbench.texteditor*/**/texteditor.jar"/> + <include name="org.eclipse.ui.editors*/**/editors.jar"/> </fileset> <pathelement location="${eclipse.home}/plugins/org.eclipse.jface_${eclipse.version}/jface.jar"/> <pathelement location="${eclipse.home}/plugins/org.eclipse.ui.workbench_${eclipse.version}/workbench.jar"/> <pathelement location="${eclipse.home}/plugins/org.eclipse.debug.ui_${eclipse.version}/dtui.jar"/> <pathelement location="${eclipse.home}/plugins/org.eclipse.core.runtime_${eclipse.version}/runtime.jar"/> Index: nice_plugin_build.properties =================================================================== RCS file: /cvsroot/nice/eclipse/nice_plugin_build.properties,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** nice_plugin_build.properties 6 Aug 2003 19:59:37 -0000 1.2 --- nice_plugin_build.properties 11 Nov 2003 14:17:06 -0000 1.3 *************** *** 1,3 **** ! nice.runtime = /Users/agreif/share/java/nice.jar ! eclipse.home = /Volumes/data/app/eclipse --- 1,3 ---- ! nice.runtime = /home/alex/project/nice/nice.jar ! eclipse.home = /opt/eclipse |