diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-04-20 17:13:55 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-04-20 17:13:55 +0000 |
commit | 97059bf851de0ead7847206d508dab4cf3794191 (patch) | |
tree | 38ef3565fffeba8b238c118ef0356549307edf0d /gcc | |
parent | 871252994ea0ebb90208782f7ca526cfcb6f5196 (diff) | |
download | gcc-97059bf851de0ead7847206d508dab4cf3794191.tar.gz |
2008-04-20 Basile Starynkevitch <basile@starynkevitch.net>
* contrib/cold-basilys.lisp: the generated code is still sometimes
buggy. We deliberately leave the bug and added COLD_EXTRAGAP in
the generated code (& frames) to circumvent it.
* gcc/melt/warm-basilys.bysl: The runtime bug below is a bug in
cold-basilys.lisp generator. Still having an "output_c_code of
CLASS_NREP_DATAKEYWORD" bug in warm bootstrap.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@134486 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog.melt | 7 | ||||
-rw-r--r-- | gcc/melt/warm-basilys.bysl | 32 |
2 files changed, 33 insertions, 6 deletions
diff --git a/gcc/ChangeLog.melt b/gcc/ChangeLog.melt index d95fd0646aa..d4bb9103bb8 100644 --- a/gcc/ChangeLog.melt +++ b/gcc/ChangeLog.melt @@ -1,8 +1,13 @@ 2008-04-20 Basile Starynkevitch <basile@starynkevitch.net> + * melt/warm-basilys.bysl: The runtime bug below is a bug in + cold-basilys.lisp generator. Still having an "output_c_code of + CLASS_NREP_DATAKEYWORD" bug in warm bootstrap. + +2008-04-20 Basile Starynkevitch <basile@starynkevitch.net> * basilys.h: (basilys_checked_assignmsg_at) better message. * melt/warm-basilys.bysl: better handling of if/then/else typing. - got a runtime bug. + got a runtime bug on warm bootstrap. 2008-04-19 Basile Starynkevitch <basile@starynkevitch.net> * melt/warm-basilys.bysl: Added handling of arbitrary other ctypes diff --git a/gcc/melt/warm-basilys.bysl b/gcc/melt/warm-basilys.bysl index b21a355f12b..c35883b6a34 100644 --- a/gcc/melt/warm-basilys.bysl +++ b/gcc/melt/warm-basilys.bysl @@ -6998,23 +6998,32 @@ (add2sbuf_indentnl implbuf 0) (if (>i nbval 0) (progn + (add2sbuf_strconst implbuf "#define CURFRAM_NBVARPTR ") + (add2sbuf_longdec implbuf nbval) + (add2sbuf_indentnl implbuf 0) (add2sbuf_strconst implbuf " void* varptr[") (add2sbuf_longdec implbuf nbval) (add2sbuf_strconst implbuf "];") (add2sbuf_indentnl implbuf 0)) (progn (add2sbuf_strconst implbuf "/*no varptr*/") + (add2sbuf_indentnl implbuf 0) + (add2sbuf_strconst implbuf "#define CURFRAM_NBVARPTR /*none*/0") (add2sbuf_indentnl implbuf 0))) (if (>i nblong 0) (progn + (add2sbuf_strconst implbuf "#define CURFRAM_NBVARNUM ") + (add2sbuf_longdec implbuf nblong) + (add2sbuf_indentnl implbuf 0) (add2sbuf_strconst implbuf " long varnum[") (add2sbuf_longdec implbuf nblong) (add2sbuf_strconst implbuf "];") (add2sbuf_indentnl implbuf 0)) (progn (add2sbuf_strconst implbuf "/*no varnum*/") - (add2sbuf_indentnl implbuf 0)) - ) + (add2sbuf_indentnl implbuf 0) + (add2sbuf_strconst implbuf "#define CURFRAM_NBVARNUM /*none*/0") + (add2sbuf_indentnl implbuf 0))) (if others (progn (debugmsg others "output_curframe_init others" (the_callcount)) @@ -7186,6 +7195,10 @@ (add2sbuf_indentnl implbuf 0) (add2sbuf_strconst implbuf "#undef callcount") (add2sbuf_indentnl implbuf 0) + (add2sbuf_strconst implbuf "#undef CURFRAM_NBVARNUM") + (add2sbuf_indentnl implbuf 0) + (add2sbuf_strconst implbuf "#undef CURFRAM_NBVARPTR") + (add2sbuf_indentnl implbuf 0) (add2sbuf_strconst implbuf "} /*end ") (add2sbuf_string implbuf onam) (add2sbuf_strconst implbuf "*/") @@ -7275,6 +7288,11 @@ (add2sbuf_indentnl implbuf 0) (add2sbuf_strconst implbuf "#undef callcount") (add2sbuf_indentnl implbuf 0) + (add2sbuf_strconst implbuf "#undef CURFRAM_NBVARNUM") + (add2sbuf_indentnl implbuf 0) + (add2sbuf_strconst implbuf "#undef CURFRAM_NBVARPTR") + (add2sbuf_indentnl implbuf 0) + (add2sbuf_indentnl implbuf 0) (add2sbuf_strconst implbuf "} /* end start_module_basilys */") (add2sbuf_indentnl implbuf 0)) @@ -9271,10 +9289,11 @@ (nobj (unsafe_get_field :nuget_obj nugf)) (nfield (unsafe_get_field :nuget_field nugf)) (dlist (make_list discr_list)) + (oobj (compile_obj nobj gcx)) (ogetslot (make_instance class_objgetslot :obi_loc loc :obdi_destlist dlist - :ogetsl_obj (compile_obj nobj gcx) + :ogetsl_obj oobj :ogetsl_field nfield)) ) (return ogetslot) @@ -9551,11 +9570,14 @@ ;; dont fill :obi_loc :obdi_destlist destlis :obcpt_expr explis - )) ) + )) + ;; we have a bug in the cold-basilys.lisp that we circumvent thru a useless variable + (unused_recvtype (unsafe_get_field :obv_type recv)) + ) (list_append destlis desto) (list_append explis recv) ; (debugmsg obc "putobjdest objval obc" (the_callcount)) - obc + (return obc) )) (install_method class_objvalue put_objdest putobjdest_objvalue) |