[m-rev.] diff: il grade fixes
Peter Ross
pro at missioncriticalit.com
Mon May 19 19:23:37 AEST 2003
Hi,
===================================================================
Estimated hours taken: 0.5
Branches: main
Upgrades to build the compiler in the il grade with v1.1 of the .NET CLR.
compiler/Mmakefile:
Copy the dlls from the analysis and browser directories into the
current directory so that mercury_compile.exe can find them.
library/float.m:
Use // for comments in C# instead of %.
library/table_builtin.m:
Promise that table_simple_get_answer_block is semipure.
Index: compiler/Mmakefile
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/Mmakefile,v
retrieving revision 1.74
diff -u -r1.74 Mmakefile
--- compiler/Mmakefile 7 May 2003 12:53:33 -0000 1.74
+++ compiler/Mmakefile 19 May 2003 09:18:18 -0000
@@ -195,6 +195,7 @@
ifeq ($(findstring il,$(GRADE)),il)
# set the stack size to 100M -- the default of 1M is too low
-editbin /nologo /stack:100000000 mercury_compile$(EXT_FOR_EXE)
+ cp ../analysis/*.dll ../browser/*.dll .
endif
libmercury_compile.a: lib$(MC_PROG).a
Index: library/float.m
===================================================================
RCS file: /home/mercury1/repository/mercury/library/float.m,v
retrieving revision 1.52
diff -u -r1.52 float.m
--- library/float.m 9 May 2003 09:10:35 -0000 1.52
+++ library/float.m 19 May 2003 09:18:21 -0000
@@ -530,12 +530,12 @@
float__min = (Min::out),
[will_not_call_mercury, promise_pure, thread_safe],
"
- % We can't use System.Double.MinValue, because in v1 of the .NET CLR,
- % that means something completely different: the negative number
- % with the greatest absolute value.
- % Instead, we just hard-code the appropriate value (copied from the
- % glibc header files); this is OK, because the ECMA specification
- % nails down the representation of double as 64-bit IEEE.
+ // We can't use System.Double.MinValue, because in v1 of the .NET CLR,
+ // that means something completely different: the negative number
+ // with the greatest absolute value.
+ // Instead, we just hard-code the appropriate value (copied from the
+ // glibc header files); this is OK, because the ECMA specification
+ // nails down the representation of double as 64-bit IEEE.
Min = 2.2250738585072014e-308;
").
@@ -550,14 +550,14 @@
float__epsilon = (Eps::out),
[will_not_call_mercury, promise_pure, thread_safe],
"
- % We can't use System.Double.Epsilon, because in v1 of the .NET CLR,
- % that means something completely different: the smallest (denormal)
- % positive number. I don't know what the people who designed that
- % were smoking; that semantics for 'epsilon' is different from the
- % use of 'epsilon' in C, Lisp, Ada, etc., not to mention Mercury.
- % Instead, we just hard-code the appropriate value (copied from the
- % glibc header files); this is OK, because the ECMA specification
- % nails down the representation of double as 64-bit IEEE.
+ // We can't use System.Double.Epsilon, because in v1 of the .NET CLR,
+ // that means something completely different: the smallest (denormal)
+ // positive number. I don't know what the people who designed that
+ // were smoking; that semantics for 'epsilon' is different from the
+ // use of 'epsilon' in C, Lisp, Ada, etc., not to mention Mercury.
+ // Instead, we just hard-code the appropriate value (copied from the
+ // glibc header files); this is OK, because the ECMA specification
+ // nails down the representation of double as 64-bit IEEE.
Eps = 2.2204460492503131e-16;
").
@@ -572,9 +572,9 @@
float__radix = (Radix::out),
[will_not_call_mercury, promise_pure, thread_safe],
"
- % The ECMA specification requires that double be 64-bit IEEE.
- % I think that implies that it must have Radix = 2.
- % This is definitely right for x86, anyway.
+ // The ECMA specification requires that double be 64-bit IEEE.
+ // I think that implies that it must have Radix = 2.
+ // This is definitely right for x86, anyway.
Radix = 2;
").
@@ -589,7 +589,7 @@
float__mantissa_digits = (MantDig::out),
[will_not_call_mercury, promise_pure, thread_safe],
"
- % ECMA specifies that System.Double is 64-bit IEEE float
+ // ECMA specifies that System.Double is 64-bit IEEE float
MantDig = 53;
").
@@ -606,7 +606,7 @@
float__min_exponent = (MinExp::out),
[will_not_call_mercury, promise_pure, thread_safe],
"
- % ECMA specifies that System.Double is 64-bit IEEE float
+ // ECMA specifies that System.Double is 64-bit IEEE float
MinExp = -1021;
").
@@ -623,7 +623,7 @@
float__max_exponent = (MaxExp::out),
[will_not_call_mercury, promise_pure, thread_safe],
"
- % ECMA specifies that System.Double is 64-bit IEEE float
+ // ECMA specifies that System.Double is 64-bit IEEE float
MaxExp = 1024;
").
Index: library/table_builtin.m
===================================================================
RCS file: /home/mercury1/repository/mercury/library/table_builtin.m,v
retrieving revision 1.30
diff -u -r1.30 table_builtin.m
--- library/table_builtin.m 2 May 2003 21:44:16 -0000 1.30
+++ library/table_builtin.m 19 May 2003 09:18:21 -0000
@@ -373,6 +373,7 @@
impure private_builtin__imp,
private_builtin__sorry("table_simple_mark_as_inactive").
+:- pragma promise_semipure(table_simple_get_answer_block/2).
table_simple_get_answer_block(_, _) :-
% This version is only used for back-ends for which there is no
% matching foreign_proc version.
--------------------------------------------------------------------------
mercury-reviews mailing list
post: mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
More information about the reviews
mailing list