|
|
```
|
|
|
FreeM Version 0 Revision $Revision: 1.2 $
|
|
|
|
|
|
$Source: /cvsroot-fuse/gump/FreeM/doc/FreeM.bugs,v $
|
|
|
$Revision: 1.2 $ $Date: 2000/02/18 15:13:41 $
|
|
|
|
|
|
|
|
|
***** * * *****
|
|
|
* ** ** * *
|
|
|
* * * * * * *
|
|
|
* * ** **** **** * * * * * * * *** * ****
|
|
|
**** * * * * * * * **** * * * * * *
|
|
|
* * ****** ****** * * * * * * * * **
|
|
|
* * * * * * * * * * *** **
|
|
|
* * * * * * * * * * * ** * * *
|
|
|
* * **** **** * * ***** *** * **** ****
|
|
|
* *
|
|
|
****
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
|
S U M M A R Y
|
|
|
|
|
|
Bug# Date/Reporter/Report Status
|
|
|
----- ---------------------------------------------------------------------
|
|
|
1 1999-Feb-04 Missing QUIT causes process hang CLOSED 0.4.0
|
|
|
2 1999-Feb-09 $QUERY() local quotes numeric subscripts OPEN
|
|
|
3 1999-Feb-10 Need resolution for empty line OPEN
|
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
Bug# Date/Reporter/Report Status
|
|
|
----- ---------------------------------------------------------------------
|
|
|
|
|
|
1 1999-Feb-04 Lloyd Milligan <wlloyd@ix.netcom.com> CLOSED 0.4.0
|
|
|
|
|
|
Missing quit at routine end causes process to hang.
|
|
|
In further tests this only happened when the last routine line was
|
|
|
null. In other words, when using the editor, entering
|
|
|
x<tab>w "x",!<enter>
|
|
|
and then saving causes it.. I didn't notice this connection at first.
|
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
|
Bug# Date/Reporter/Report Status
|
|
|
----- ---------------------------------------------------------------------
|
|
|
|
|
|
2 1999-Feb-09 Lloyd Milligan <wlloyd@ix.netcom.com> OPEN
|
|
|
|
|
|
OK on including the $Q mods. I have not seen any new problems
|
|
|
relating to $Q on global references. However, there is a
|
|
|
problem with $Q on local symbols. This is totally independent
|
|
|
of the global $Q, and the problem is seen in the original
|
|
|
0.3.0 release prior to the modifications.
|
|
|
|
|
|
Once again ^%RCR revealed the problem but in a very disguised
|
|
|
way. It took many hours of digging to uncover the culprit.
|
|
|
It is maddeningly simple to illustrate.
|
|
|
|
|
|
s a(1)=3D"",a(1,2)=3D""
|
|
|
w $q(a(""))
|
|
|
a("1") <--- FreeM
|
|
|
w $q(a(1))
|
|
|
a("1","2") <--- FreeM
|
|
|
|
|
|
MSM and Cache produce a(1) and a(1,2). Analogous global $q code
|
|
|
does not quote the numeric subscripts.
|
|
|
|
|
|
1999-Feb-10 Lloyd Milligan <wlloyd@ix.netcom.com>
|
|
|
|
|
|
This problem is *not* related to FreeM revisions. Turns out
|
|
|
that some Fileman global nodes were missing after the original
|
|
|
init, although the init appeared to complete normally. In
|
|
|
FreeM, $query returning a *local* variable quotes numeric
|
|
|
subscripts. To illustrate,
|
|
|
k x s x(1)="" w $q(x(""))=$na(@$q(x("")))
|
|
|
is 0 in FreeM, because the left part in the comparison is
|
|
|
x("1"). Using a workaround for this problem the new init time
|
|
|
was 138 seconds on my Pentium 75 (linux). This time the
|
|
|
Fileman globals looked more convincing, although one can't be
|
|
|
certain.
|
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
Bug# Date/Reporter/Report Status
|
|
|
----- ---------------------------------------------------------------------
|
|
|
|
|
|
3 1999-Feb-09 Lloyd Milligan <wlloyd@ix.netcom.com> OPEN
|
|
|
|
|
|
This is related to bug report 1. Note that the specific bug
|
|
|
was fixed, but Winfried Gerum brought up some good points that
|
|
|
should be addressed. The fix applied to close bug 1 may not
|
|
|
be precisely the one we want in the long run.
|
|
|
|
|
|
Winfried wrote:
|
|
|
|
|
|
Hello,
|
|
|
|
|
|
The problem "FreeMUMPS hangs on end of routine without QUIT" has the
|
|
|
following background:
|
|
|
|
|
|
IMHO MUMPS still does not allow for a completely empty line.
|
|
|
$TEXT on an existing, otherwise empty line yields a SPACE
|
|
|
character. FreeMUMPS is not prepared to accept an empty
|
|
|
line. An empty line within a routine terminates this
|
|
|
routine. An empty line at the end can indeed produce weird
|
|
|
results.
|
|
|
|
|
|
As a remedy FreeMUMPS has to check for that situation and it
|
|
|
should react in a predictable way.
|
|
|
|
|
|
I propose three options for discussion:
|
|
|
- let an empty line produce an error /* option 1 */
|
|
|
- let it produce a (legal) empty line /* option 2 */
|
|
|
- let it ignore that line /* option 3 */
|
|
|
|
|
|
The changes have to be made to file service.c
|
|
|
|
|
|
function void zload()
|
|
|
change the lines following label again from
|
|
|
/* old code */
|
|
|
*++rouend = ch = getc(infile);
|
|
|
if (ch==LF || ch ==EOF) {
|
|
|
*rouend ++ = EOL; i++;
|
|
|
*savptr=i-linelen-2; savptr=rouend;
|
|
|
/* changed to new code */
|
|
|
ch = getc(infile);
|
|
|
if (ch==LF && i-1 ==linelen) { /* is there an empty line? */
|
|
|
/* option 1: error */
|
|
|
/* goto pgmov */
|
|
|
/* option 2: legal empty line */
|
|
|
i++; *++rouend = SP;
|
|
|
/* option 3: ingnore this */
|
|
|
/* i-- ;
|
|
|
continue; */
|
|
|
}
|
|
|
*++rouend = ch;
|
|
|
if (ch==LF || ch==EOF) {
|
|
|
*rouend++ = EOL; i++;
|
|
|
if ((j=i-linelen-2)>255)
|
|
|
goto pgmov;
|
|
|
*savptr=j; savptr=rouend;
|
|
|
}
|
|
|
/* end changed code */
|
|
|
|
|
|
So far zload() has ignored the line length issue. It did not
|
|
|
expect empty lines nor did it expect lines in excess of 255
|
|
|
chars. As long as these routines are produced from within
|
|
|
FreeMUMPS these types of lines just cannot occur. If MUMPS
|
|
|
routines originating from outside we need the proposed change.
|
|
|
|
|
|
Have a nice day :-)
|
|
|
|
|
|
Winfried Gerum
|
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
End of $Source: /cvsroot-fuse/gump/FreeM/doc/FreeM.bugs,v $
|
|
|
``` |
|
|
\ No newline at end of file |