[Monetdb-developers] [Monetdb-pf-checkins] pathfinder/compiler/mil mil_dce.c, , 1.19, 1.20 milgen.brg, , 1.142, 1.143

Jan Rittinger rittinge at in.tum.de
Thu Apr 17 09:49:02 CEST 2008


The answer is simple:

kind=165 is your new tape operator and its printing is missing in 
print_statement().

Your tape is no expression with a return value but a statement with side 
effects. Thus the  MIL grammar in milprint.c expects the handling of 
your tape in print_statement() instead of print_expression() -- see also 
the grammar at the top of milprint.c (as the error message suggests :)).

Jan

On 04/17/2008 09:27 AM, Jan Flokstra wrote with possible deletions:
> Hi Jan,
> 
> When I remove the if_() around my tj_docmgmt_tape() function in milgen.brg I 
> get the following error message. [...]
> 
> Jan.
> 
> # End rule: "Rel: std_sort(Rel)"
> a0001 := a0006;
> a0004 := a0001.project (str(nil));
> a0002 := a0007;
> a0003 := a0001.project (str(nil));
> DocmgmTape (ws, a0004, a0002, a0003, a0001);
> fatal error: I encountered problems while generating MIL output.
> fatal error: This is possibly due to an illegal MIL tree, not conforming to 
> the grammar in milprint.c
> fatal error: This is how far I was able to generate the script:
> notice: node: ALG_tj_docmgmt_tape
> fatal error: Illegal MIL tree. MIL printer screwed up (kind: 165).
> # halted in milprint.c (print_statement), line 596

-- 
Jan Rittinger
Database Systems
Technische Universität München (Germany)
http://www-db.in.tum.de/~rittinge/




More information about the developers-list mailing list