-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGES
executable file
·114 lines (97 loc) · 4.27 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
Macrofort 1.0 : 9 January 1990
Macrofort 1.1 : 20 February 1990
** MATRIXM macro has been rewritten to improve the code
when the option "optimized:=true" is used. Now, common expressions
are shared for the whole matrix and not for each element of the
matrix.
Macrofort 1.2 : 02 May 1990
** Code generation is now made with two passes: first macro
expansion, then code generation.
This permits the existence of COMMONM and DECLAREM macros.
Macrofort 1.2 : 22 May 1990
** The procedure convert(...,string) had a bug and has been fixed.
Indeed, the execution of convert((a+b)*c,string) was a+b*c.
Macrofort 1.2 : 31 May 1990
** Now, it is possible to execute genfor with [<macro-instruction>,...].
Before, it was necessary to have [[<macro-instruction>,...]].
** OPENF has been fixed. There was an inversion between a comma
and a quote: the execution of genfor([openf,11,`toto`,`u`]) was
open(unit=11,file='toto,'status='u') instead of
open(unit=11,file='toto',status='u').
Macrofort 1.2 : 08 June 1990
** The following bug has been fixed:
genfor([dom,i,1,a+b,[]]) => do 1000, i=1,.(a+b)
1000 continue
It was a problem with the use of the cat procedure.
** All the FORTRAN statements are now cut if they are longer
than 72 characters.
Macrofort 1.2 : 13 September 1990
** A bug in the procedure `m_fortran/float` has been fixed.
It was in fact a bug of the MAPLE procedure `fortran/float`:
genfor([equalf,a,toto(0)]); =>
Error, (in m_fortran/float) cannot evaluate boolean
Macrofort 1.2 : 20 September 1990
** Now CONTINUEF and FORMATF work well when their argument is an
integer with less than 5 digits.
** Errors are now caught during genfor execution. We no longer lose
MAPLE prompt.
Macrofort 1.2 : 11 October 1990
** A bug in the procedure `m_fortran/expression` has been fixed.
It was in fact a bug of the MAPLE procedure `fortran/float`:
genfor([equalf,a,g()]); =>
improper op or subscript selector
Macrofort 1.2 : 2 October 1991
** There is now only one file containing Macrofort (Macrofort and
m_fortran and conversion to strings)
** The following bugs have been fixed :
genfor([callf,toto,[n^2]]); =>
call toto(n^2)
genfor([equalf,a[i],10]); =>
a[i] = 10
For that, a new m_fortran procedure "m_fortrans" has been created. It returns
a string instead of printing the result. Now you must write the syntax
array (and not the function syntax) when you want a FORTRAN array. This
is more coherent.
You have to write [declarem,real,[a[10]]] and not [declarem,real,[a(10)]].
** The genfor procedure no longer returns `done` as its result. This was a
problem when using genfor at the top level in a file. Now it returns NULL.
** A comment is now generated when using the subroutinem, functionm and
programm keywords.
Macrofort 1.2 : 14 October 1991
** Macrofort is no longer a package. Use it by read `macrofort.m`.
Macrofort 1.2.1: 5 December 1991
** Help TEXT has been added in Macrofort.
** [matrixm,foo,m] has a bug when the result was not indented. This bug has
been fixed by always indenting the result.
Macrofort 1.2.2: 13 December 1991
** The following bug has been fixed:
x:=array([[1,2],[1,2]]):
genfor([subroutinef,toto,[x,y]]); => subroutine toto(x(2,1) = 1,y)
Macrofort 1.2.3: 18 December 1991
** The following bug has been fixed:
i:=10;
genfor([subroutinef,toto,['i',y]]); => subroutine toto(10,y)
genfor([equalf,toto,'i']); => toto = 10
Macrofort 1.2.4: 15 January 1992
** Integers are translated into integers and floats into floats:
genfor([equalf,a,foo(1)]); => a = foo(1)
** Intrinsic FORTRAN functions transform their numeric argument according to
the standard.
** The max_while last argument of the WHILEM macro instruction is now
optional.
Macrofort 1.2.5: 2 September 1998
** Complicated conditions are now generated with parenthesis:
genfor([if_then_f,AND(a>b,OR(b>0,a>0))]); =>
if ((b.lt.a).and.((0.lt.b).or.(0.lt.a))) then
It was a bug.
** New syntax [EQUALF,[[VARIABLE,EXPRESSION],...]] which allows sharing of
subexpressions when optimized is true:
genfor([equalf,[[a,1+sin(t)],[b,cos(t)+sin(t)],[c,1+cos(t)]]]); =>
t1 = sin(t)
a = 1+t1
t2 = cos(t)
b = t2+t1
c = 1+t2
** New macro-instructions: [NEXTM] and [BREAKM] in loops.
Macrofort 1.2.6: 3 March 2004
** Updated for Maple 6 and above