[m-dev.] diff: update ml_code_gen.m todo list
Fergus Henderson
fjh at cs.mu.OZ.AU
Mon Oct 23 02:57:04 AEDT 2000
Estimated hours taken: 0.5
compiler/ml_code_gen.m:
Update the TODO list near the top of this module.
Workspace: /home/pgrad/fjh/ws/hg
Index: compiler/ml_code_gen.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/ml_code_gen.m,v
retrieving revision 1.61
diff -u -d -r1.61 ml_code_gen.m
--- compiler/ml_code_gen.m 2000/10/22 13:57:36 1.61
+++ compiler/ml_code_gen.m 2000/10/22 15:33:21
@@ -621,7 +621,7 @@
%-----------------------------------------------------------------------------%
-% XXX This is still not yet complete.
+% XXX This back-end is still not yet complete.
%
% Done:
% - function prototypes
@@ -639,15 +639,39 @@
% - deconstructions
% - switches
% - commits
-% - most cases of `pragma c_code'
+% - `pragma c_code'
% - RTTI
-% TODO:
-% - complicated `pragma c_code'
% - high level data representation
% (i.e. generate MLDS type declarations for user-defined types)
-% ...
%
+% BUGS:
+% - XXX parameter passing problem for abstract equivalence types
+% that are defined as float (or anything which doesn't map to `Word')
+% - XXX setjmp() and volatile: local variables in functions that
+% call setjmp() need to be declared volatile
+% - XXX problem with unboxed float on DEC Alphas.
+%
+% TODO:
+% - XXX define compare & unify preds for array and RTTI types
+% - XXX need to generate correct layout information for closures
+% so that tests/hard_coded/copy_pred works.
+% - XXX fix ANSI/ISO C conformance of the generated code (i.e. port to lcc)
+%
+% UNIMPLEMENTED FEATURES:
+% - test --det-copy-out
+% - fix --gcc-nested-functions (need forward declarations for
+% nested functions)
+% - support debugging (with mdb)
+% - support genuine parallel conjunction
+% - support fact tables
+% - support --split-c-files
+% - support aditi
+% - support trailing
+% - support accurate GC
+%
% POTENTIAL EFFICIENCY IMPROVEMENTS:
+% - generate better code for switches
+% - allow inlining of `pragma c_code' goals (see inlining.m)
% - generate local declarations for the `succeeded' variable;
% this would help in nondet code, because it would avoid
% the need to access the outermost function's `succeeded'
--
Fergus Henderson <fjh at cs.mu.oz.au> | "I have always known that the pursuit
| of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions: mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------
More information about the developers
mailing list