[Nice-commit] Nice/stdlib/nice/lang Native.java,1.13,1.14 BooleanAlgebra.nice,1.1,1.2 booleans.nice,
Brought to you by:
bonniot
|
From: <ar...@us...> - 2003-03-23 00:05:51
|
Update of /cvsroot/nice/Nice/stdlib/nice/lang
In directory sc8-pr-cvs1:/tmp/cvs-serv6467/F:/nice/stdlib/nice/lang
Modified Files:
Native.java BooleanAlgebra.nice booleans.nice prelude.nice
Log Message:
The last operators(== and != on booleans, objects and chars) that weren't inlined are inlined now.
Added ReferenceOp.java for == and != on objects.
Fixed also a minor bug in ShortCircuitOp caused by my previous change.
Index: Native.java
===================================================================
RCS file: /cvsroot/nice/Nice/stdlib/nice/lang/Native.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** Native.java 14 Jan 2003 20:33:03 -0000 1.13
--- Native.java 23 Mar 2003 00:05:48 -0000 1.14
***************
*** 19,32 ****
{
public static Object object(Object o) { return o; }
-
- public static boolean eq (Object o1, Object o2) { return o1 == o2; }
- public static boolean neq(Object o1, Object o2) { return o1 != o2; }
-
- public static boolean eq (boolean b1, boolean b2) { return b1 == b2; }
- public static boolean neq(boolean b1, boolean b2) { return b1 != b2; }
- public static boolean eq (char c1, char c2) { return c1 == c2; }
- public static boolean neq(char c1, char c2) { return c1 != c2; }
-
// Operations on "polymorphic" arrays
// Arrays of unknown component type are of type Object
--- 19,23 ----
Index: BooleanAlgebra.nice
===================================================================
RCS file: /cvsroot/nice/Nice/stdlib/nice/lang/BooleanAlgebra.nice,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** BooleanAlgebra.nice 6 Oct 2000 12:28:11 -0000 1.1
--- BooleanAlgebra.nice 23 Mar 2003 00:05:48 -0000 1.2
***************
*** 11,15 ****
}
- `^`(x, y) = (x & !y) | (!x & y);
`->`(x, y, z) = (x & y) | (!x & z);
--- 11,14 ----
Index: booleans.nice
===================================================================
RCS file: /cvsroot/nice/Nice/stdlib/nice/lang/booleans.nice,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** booleans.nice 18 Feb 2003 12:49:02 -0000 1.7
--- booleans.nice 23 Mar 2003 00:05:48 -0000 1.8
***************
*** 9,14 ****
= native;
! boolean `==`(boolean, boolean) = native boolean Native.eq(boolean,boolean);
! boolean `!=`(boolean, boolean) = native boolean Native.neq(boolean,boolean);
boolean TRUE() = native Boolean.TRUE;
--- 9,15 ----
= native;
! boolean `==`(boolean, boolean) = inline nice.lang.inline.BoolOp("==");
! boolean `!=`(boolean, boolean) = inline nice.lang.inline.BoolOp("^");
!
boolean TRUE() = native Boolean.TRUE;
***************
*** 24,27 ****
--- 25,29 ----
`&`(b1@boolean,b2@boolean) = b1 ? b2 : false;
`|`(b1@boolean,b2@boolean) = b1 ? true : b2;
+ `^`(b1@boolean,b2@boolean) = b1 ? !b2 : b2;
// same methods, but overloaded for better efficiency (no dispatch and no boxing).
***************
*** 29,32 ****
--- 31,35 ----
boolean `&`(boolean, boolean) = inline nice.lang.inline.BoolOp("&");
boolean `|`(boolean, boolean) = inline nice.lang.inline.BoolOp("|");
+ boolean `^`(boolean, boolean) = inline nice.lang.inline.BoolOp("^");
boolean `&&`(boolean, boolean) = inline nice.lang.inline.ShortCircuitOp("&&");
Index: prelude.nice
===================================================================
RCS file: /cvsroot/nice/Nice/stdlib/nice/lang/prelude.nice,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** prelude.nice 2 Jan 2003 22:18:34 -0000 1.25
--- prelude.nice 23 Mar 2003 00:05:48 -0000 1.26
***************
*** 87,95 ****
****************************************************************/
! <Any T> boolean `==`(T,T) = native boolean Native.eq(Object,Object);
! <Any T> boolean `!=`(T,T) = native boolean Native.neq(Object, Object);
! boolean `==`(char, char) = native boolean Native.eq (char,char);
! boolean `!=`(char, char) = native boolean Native.neq(char,char);
--- 87,95 ----
****************************************************************/
! <Any T> boolean `==`(T,T) = inline nice.lang.inline.ReferenceOp("==");
! <Any T> boolean `!=`(T,T) = inline nice.lang.inline.ReferenceOp("!=");
! boolean `==`(char, char) = inline nice.lang.inline.CompOp("iEq");
! boolean `!=`(char, char) = inline nice.lang.inline.CompOp("iNe");
|