cvsuser 03/06/16 19:51:54
Modified: languages/BASIC/compiler compile.pl
Log:
Further bugs fixed in debugger. Mysterious heisenbug of IMCC segfault remains.
No small test cases.
Revision Changes Path
1.10 +11 -7 parrot/languages/BASIC/compiler/compile.pl
Index: compile.pl
===================================================================
RCS file: /cvs/public/parrot/languages/BASIC/compiler/compile.pl,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -w -r1.9 -r1.10
--- compile.pl 17 Jun 2003 02:24:48 -0000 1.9
+++ compile.pl 17 Jun 2003 02:51:54 -0000 1.10
@@ -6,16 +6,17 @@
# Then compile.
use strict;
use Getopt::Std;
-our @basic=();
-use vars qw(%code %options @basic);
use vars qw( @tokens @tokdsc);
+use vars qw(%code %options @basic);
use vars qw( @syms @type );
use vars qw( %labels $runtime_jump $debug $sourceline);
+use COMP_toker;
+use COMP_parser;
+use COMP_assignments;
+use COMP_expressions;
+
+our @basic=();
-require "COMP_toker.pm";
-require "COMP_parser.pm";
-require "COMP_assignments.pm";
-require "COMP_expressions.pm";
$SIG{__DIE__}=sub {
print "At BASIC source line $main::sourceline:\n";
@@ -29,7 +30,6 @@
$debug=1 if $options{d};
if (@ARGV) {
- print "File: $ARGV[0]\n";
open(D, $ARGV[0]) || die;
@basic=<D>;
chomp(@basic);
@@ -84,6 +84,7 @@
}
print CODE<<EOD;
.sub ${seg}_debug
+ saveall
.param int debline
find_global \$P0, "DEBUGGER"
set \$I0, \$P0["step"]
@@ -100,6 +101,7 @@
.arg debline
call _DEBUGGER_STOP_FOR_REAL
DEBUGGER_DONE:
+ restoreall
ret
.end # End debug segment
@@ -109,6 +111,7 @@
if ($debug) {
print CODE<<FOO;
.sub _DEBUG_INIT
+ saveall
\$P0=new PerlArray
find_global \$P1, "DEBUGGER"
FOO
@@ -125,6 +128,7 @@
\$P0=new PerlArray
set \$P1["watch"], \$P0 # Watch
store_global "DEBUGGER", \$P1
+ restoreall
ret
.end
FOO