2008-07-30 Basile Starynkevitch * Makefile.in: using realpath for run-basilys-deps ie to fill the melt_build_include_dir * run-basilys.h: include "gimple.h" * basilys.h: added OBMAG_GIMPLE, OBMAG_MAPGIMPLES, BPAR_GIMPLE, BPARSTR_GIMPLE; added BGLOB_CTYPE_GIMPLE, BGLOB_DISCR_TREE, BGLOB_DISCR_GIMPLE, BGLOB_DISCR_EDGE, BGLOB_DISCR_MAPTREES, BGLOB_DISCR_MAPGIMPLES, BGLOB_DISCR_MAPEDGES. (basilysgc_new_mapgimples, basilysgc_put_mapgimples) (basilys_get_mapgimples, basilysgc_remove_mapgimples) new functions. * basilys.c: include "gimple.h" (check_pointer_at, forwarded_copy, basilys_debug_out) handle OBMAG_GIMPLE & OBMAG_MAPGIMPLES. (dump_cgraph_basilys) removed function. * melt/warmelt-first.bysl: added ctype_gimple, discr_edge, discr_gimple, discr_tree, discr_mapedges, discr_mapgimples, discr_maptrees. * warmelt-first-0.c: regenerated. * warmelt-macro-0.c: regenerated. * warmelt-normal-0.c: regenerated. * warmelt-genobj-0.c: regenerated. * warmelt-outobj-0.c: regenerated. 2008-07-29 Basile Starynkevitch [merging with trunk after the tuple merge] MERGED WITH TRUNK rev138226 * compiler-probe.h: more gimple, less tree * compiler-probe.c: incomplete merge. 2008-07-28 Basile Starynkevitch [added successfully location_t in MELT parsing & error reports] * basilys.h: basilys_dynobjstruct_fieldoffset_at & basilys_dynobjstruct_classlength_at are always declared. * basilys.c: (basilys_error_str, basilys_warning_str) (basilys_inform_str) added casts. (basilysgc_read_file) calling linemap_add on the complete MELT source path. 2008-07-27 Basile Starynkevitch [adding location_t in MELT parsing & error reports] * basilys.h: declare basilys_error_str, basilys_warning_str, basilys_inform_str. OBMAG_MIXLOC & BGLOB_DISCR_MIXEDLOC is new. * basilys.c: (check_pointer_at, forwarded_copy) handing OBMAG_MIXLOC. (basilysgc_new_mixloc) new function. (struct reading_st) new field rsrcloc. (skipspace_getc) handle rsrcloc. (makesexpr) new argument loc. handling it. (readsexpr) handle location_t [temporarily disabled] (basilys_error_str, basilys_warning_str, basilys_inform_str) new functions. * melt/warmelt-first.bysl: adding discr_mixedloc & mixloc_* primitives. diagnostic primitives call the new basilys_error_str, basilys_warning_str, basilys_inform_str. * melt/warmelt-normal.bysl: added DISCR_MIXEDLOC predef. * melt/warmelt-outobj.bysl: handled better nil arguments, and handle both old fashioned & new fashioned locations. * warmelt-first-0.c: regenerated. * warmelt-macro-0.c: regenerated. * warmelt-normal-0.c: regenerated. * warmelt-genobj-0.c: regenerated. * warmelt-outobj-0.c: regenerated. 2008-07-24 Basile Starynkevitch [adding a field inside the compiler works, thanks to dynamic objstruct; citerators seems to be compiled ok] * melt/warmelt-normal.bysl: normexp_citeration has better newenv. * melt/warmelt-genobj.bysl: compilobj_nrep_citeration seems to work. * melt/warmelt-outobj.bysl: added outpucod_objciterblock. 2008-07-24 Basile Starynkevitch * basilys.h: added basilys_dlsym_all because ltdl.h has no RTLD_GLOBAL equivalent. * basilys.c: (basilys_dlsym_all) new function. (load_checked_dylib) fill the vector of dlhandle-s. (basilys_dynobjstruct_fieldoffset_at, basilys_dynobjstruct_classlength_at) use basilys_dlsym_all. * Makefile.in: added support for warm-*-d.so 2008-07-24 Basile Starynkevitch [adding dynamic fields offsets & class length] * basilys.c: (basilys_dynobjstruct_fieldoffset_at, basilys_dynobjstruct_classlength_at): new functions. (basilys_initialize) call lt_dlopen(NULL). * basilys.h: added basilys_raw_object_create & basilys_object_get_field macros. adding MELTGCC_DYNAMIC_OBJSTRUCT specific code. * melt/warmelt-outobj.bysl: outputting calls to macros above. * melt/warmelt-genobj.bysl: changed comment for oslot_field. * melt-cc-script.proto: added -d option for MELTGCC_DYNAMIC_OBJSTRUCT. * warmelt-first-0.c: regenerated. * warmelt-macro-0.c: regenerated. * warmelt-normal-0.c: regenerated. * warmelt-genobj-0.c: regenerated. * warmelt-outobj-0.c: regenerated. 2008-07-23 Basile Starynkevitch [preparing ability to compute dynamically & generate field offsets & class length for warm*0.so to permit extension of internal classes in the compiler; regenerated warmelt*0.c with constant for fields offsets & class lengths] * basilys.h: (basilys_make_raw_object) new function. * melt/warmelt-first.bysl: add mocx_expfieldict & mocx_expclassdict in class_modulcontext * melt/warmelt-macro.bysl: better check of formals in lambda. * melt/warmelt-normal.bysl: exported classes & fields are added into modulcontext * melt/warmelt-genobj.bysl: added obrallobj_classname field. * melt/warmelt-outobj.bysl: added output_exported_offsets * warmelt-first-0.c: regenerated. * warmelt-macro-0.c: regenerated. * warmelt-normal-0.c: regenerated. * warmelt-genobj-0.c: regenerated. * warmelt-outobj-0.c: regenerated. 2008-07-22 Basile Starynkevitch [the stage1 melt is built using previous modules of itself] * Makefile.in: warmelt-macro-1 built using warmelt-first-1.so [not -0.so] warmelt-normal-1 build using warmelt-first-1.so & warmelt-macro-1.so ... * melt/warmelt-genobj.bysl: will add obrout_cntciter field at end of class_routineobj 2008-07-22 Basile Starynkevitch MERGED WITH TRUNK rev138050 * compiler-probe.c: more C++ friendly. * passes.c: merged with trunk. 2008-07-22 Basile Starynkevitch * melt/warmelt-normal.bysl: added nciter_statocc field. * melt/warmelt-genobj.bysl: adding compilation of citerations. * warmelt-first-0.c: regenerated twice. * warmelt-macro-0.c: regenerated twice. * warmelt-normal-0.c: regenerated twice. * warmelt-genobj-0.c: regenerated twice. * warmelt-outobj-0.c: regenerated twice. 008-07-21 Basile Starynkevitch * melt/warmelt-normal.bysl: added normexp_citeration. * melt/warmelt-genobj.bysl: adding compilation of citerations. 2008-07-18 Basile Starynkevitch * melt/warmelt-normal.bysl: added normexp_citeration - not tested yet. * melt/warmelt-genobj.bysl: should compile normexp_citeration. * warmelt-first-0.c: regenerated. * warmelt-macro-0.c: regenerated. * warmelt-normal-0.c: regenerated. * warmelt-genobj-0.c: regenerated. * warmelt-outobj-0.c: regenerated. 2008-07-17 Basile Starynkevitch * melt/warmelt-normal.bysl: still adding normexp_citeration. 2008-07-17 Basile Starynkevitch MELT branch merged with trunk r137918 2008-07-17 Basile Starynkevitch * melt/warmelt-normal.bysl: still adding normexp_citeration. 2008-07-15 Basile Starynkevitch * melt/warmelt-normal.bysl: adding normexp_citeration. 2008-07-15 Basile Starynkevitch * melt/warmelt-first.bysl: added multiple_every_both. * melt/warmelt-normal.bysl: adding normexp_citeration. * warmelt-first-0.c: regenerated. * warmelt-macro-0.c: regenerated. * warmelt-normal-0.c: regenerated. * warmelt-genobj-0.c: regenerated. * warmelt-outobj-0.c: regenerated. 2008-07-15 Basile Starynkevitch MELT branch merged with trunk r137813 2008-07-09 Basile Starynkevitch * melt/warmelt-macro.bysl: C expansion not macroexpanded inside defprimitive or defciterator. Added common parse_pairlist_c_code_expansion for defprimitive & defciterator expansions. * melt/warmelt-normal.bysl: added defciterator normalization & common utilities fill_normal_expansion & fill_normal_formals for defprimitive & defciterator. 2008-07-08 Basile Starynkevitch MELT branch merged with trunk r137620 2008-07-08 Basile Starynkevitch * melt/warmelt-macro.bysl: added mexpand_defciterator expand_citeration and extended macroexpand_1 2008-07-07 Basile Starynkevitch [adding CITERATORs] * basilys.h: added BGLOB_CLASS_CITERATOR * melt/warmelt-first.bysl: added class_citerator & class_citerator_binding * melt/warmelt-macro.bysl: adding defciterator & better error messsages for defprimitive * melt/warmelt-normal.bysl: added CLASS_CITERATOR predef name * melt/ana-base.bysl: adding basilys_earlyopt_gccpass & basilys_lateopt_gccpass * warmelt-first-0.c: regenerated. * warmelt-macro-0.c: regenerated. * warmelt-normal-0.c: regenerated. * warmelt-genobj-0.c: regenerated. * warmelt-outobj-0.c: regenerated. 2008-07-03 Basile Starynkevitch * basilys.h: added FSYSDAT_EXIT_FINALIZER * basilys.c: (do_finalize_basilys) new function. (basilys_finalize) call it. * melt/warmelt_first.bysl: added class_finalization, system_finalization, at_exit_first, at_exit_last, init_exitfinalizer * melt/warmelt-outobj.bysl: removed the BASILYS_HAS_OBJ_TAB_FIELDS thing. * melt/ana-matcher.bysl: new empty file. * melt/ana-base.bysl: added install_gcc_pass & the passes. 2008-07-03 Basile Starynkevitch * common.opt: added -fbasilys-gdbmstate * doc/melt.texi: document -fbasilys-gdbmstate. * basilys.h: declare basilys_has_gdbmstate, basilysgc_fetch_gdbmstate_constr, basilysgc_fetch_gdbmstate, basilysgc_put_gdbmstate_constr, basilysgc_put_gdbmstate * basilys.c: (basilys_has_gdbmstate, basilysgc_fetch_gdbmstate_constr) (basilysgc_fetch_gdbmstate, basilysgc_put_gdbmstate_constr) (basilysgc_put_gdbmstate) new functions. * melt/ana-base.bysl: new file. 2008-07-03 Basile Starynkevitch * Makefile.in: -fbasilys-tempdir are seperate sudirectories * basilys.c: (basilys_tempdir_path) sets the made_tempdir_basilys flag. (basilys_finalize) rmdir when made_tempdir_basilys. * doc/melt.texi: more about -fbasilys-tempdir. * warmelt-first-0.c: regenerated. * warmelt-macro-0.c: regenerated. * warmelt-normal-0.c: regenerated. * warmelt-genobj-0.c: regenerated. * warmelt-outobj-0.c: regenerated. 2008-07-02 Basile Starynkevitch MELT branch merged with trunk r137357 * c-common.c: correctly added handle_melt_attribute - still empty. 2008-07-02 Basile Starynkevitch * basilys.h: added basilysgc_load_modulelist * basilys.c: (basilysgc_load_modulelist) new function. (do_initial_command) uses it. (basilys_finalize) clear the temporary directory. (dispatch_gate_basilys) added cast. * doc/melt.texi: document the -fbasilys-init=@ trick to load a module list. * Makefile.in: use module lists. warmelt*.modlis are removed on clean. * configure.ac: corrected GDBM stuff. * configure: regenerated. * c-common.c: (handle_melt_attribute) new empty function. 2008-07-01 Basile Starynkevitch * basilys.c: added pass_basilys_ipa, pass_basilys_lowering, pass_basilys_earlyopt, pass_basilys_lateopt. (basilysgc_set_routine_data, dispatch_gate_basilys) (dispatch_execute_basilys) (gate_basilys_lowering, execute_basilys_lowering) (gate_basilys_earlyopt, execute_basilys_earlyopt) (gate_basilys_lateopt, execute_basilys_lateopt, gate_basilys_ipa) (execute_basilys_ipa): new functions. * basilys.h: added FGCCPASS_* enum for fields in CLASS_GCC_PASS. (basilys_routine_data) new function. added routdata inside routines. routaddr made a little bigger for future use. * tree-passes.h: added pass_basilys_lowering, pass_basilys_earlyopt, pass_basilys_ipa, pass_basilys_lateopt. removed pass_basilys. * passes.c: likewise. * melt/warmelt-first.bysl: added class_gcc_pass & sysdata_pass_dict. 2008-07-01 Basile Starynkevitch MELT branch merged with trunk r137318 2008-07-01 Basile Starynkevitch [added GDBM support in configure & configure.ac, BASILYS_HAS_OBJ_TAB_FIELDS is now prohibited] * basilys.h: prohibit BASILYS_HAS_OBJ_TAB_FIELDS because of gengtype. * basilys.c: idem. * configure.ac: added GDBM support. * configure: regenerated. * Makefile.in: added GDBM. 2008-07-01 Basile Starynkevitch [MELT objects are by default fixed length unless BASILYS_HAS_OBJ_TAB_FIELDS is set in basilys.h] * basilys.h: added BASILYS_HAS_OBJ_TAB_FIELDS to support fixed length objects to gain one word & indirection in each MELT object. * basilys.c: (forwarded_copy,scanning,basilysgc_new_raw_object) using BASILYS_HAS_OBJ_TAB_FIELDS for fixed length objects. * warmelt-first-0.c: regenerated twice. * warmelt-macro-0.c: regenerated twice. * warmelt-normal-0.c: regenerated twice. * warmelt-genobj-0.c: regenerated twice. * warmelt-outobj-0.c: regenerated twice. * melt/warmelt-outobj.bysl: added support of BASILYS_HAS_OBJ_TAB_FIELDS. 2008-07-01 Basile Starynkevitch [removed warm-basilys, which is replaced by warmelt-*] * warm-basilys-0.c: removed this generated file. * warmelt-first-0.c: new file generated with upgrade-warmelt target. * warmelt-macro-0.c: new file generated with upgrade-warmelt target. * warmelt-normal-0.c: new file generated with upgrade-warmelt target. * warmelt-genobj-0.c: new file generated with upgrade-warmelt target. * warmelt-outobj-0.c: new file generated with upgrade-warmelt target. * Makefile.in: removed mention of warm-basilys* files. Working upgrade-warmelt target. * melt/warmelt-first.bysl: removed mention of warm-basilys* files * melt/warmelt-macro.bysl: removed mention of warm-basilys* files * melt/warmelt-normal.bysl: removed mention of warm-basilys* files * melt/warmelt-genobj.bysl: removed mention of warm-basilys* files * melt/warmelt-outobj.bysl: removed mention of warm-basilys* files * melt/README-MELT: updated. 2008-07-01 Basile Starynkevitch * doc/melt.texi: describes MELT -fbasilys* flags. * doc/invoke.texi: mentions briefly -fbasilys* flags. 2008-07-01 Basile Starynkevitch [MELT doc builds correctly but is empty.] * Makefile.in: added melt.texi to TEXI_GCCINT_FILES * doc/melt.texi: formatted ok but nearly empty. 2008-07-01 Basile Starynkevitch MELT branch merged with trunk r137307 2008-06-30 Basile Starynkevitch [apparently warmelt-*-3.c generated ok!] * basilys.c: added basilys_countserial. (basilys_object_set_serial) updated to use it. * melt/warmelt-first.bysl: added debug_msg in find_env_debug. * melt/warmelt-outobj.bysl: outcinitfill_objinitobject only sets the locvar if it was nil, hence if it was an already gotten symbol it is not overwritten. outpucod_objgetnamedsymbol only sets the locvar if it was nil. * Makefile.in; also generates the warmelt-*-1-n.so 2008-06-30 Basile Starynkevitch [still buggy - duplicate homonymous symbols!] * basilys.h: added obj_serial when ENABLE_CHECKING & basilys_obj_serial routine. * basilys.c: added basilys_object_set_serial. Added & commented code to detect in mapobjects entries with the same hash & key class as the attribute. * Makefile.in: the frandom-seed is made from the md5 of *bysl sources. * melt/warmelt-first.bysl: added class_described_environment obj_serial. Less verbose dbgoutput for mapobjects. dbgout print the serial if nonzero. debug_msg prints !!!!****#### . initfresh_contenvmaker takes the unboxed module string as 2nd argument. * melt/warmelt-macro.bysl: mexpand_assert_msg check that assert_failed is appropriately bound with more debug messages. * melt/warmelt-normal.bysl: the sysdata_cont_fresh_env in the initial_system_data is called with the name of the module as second argment. * melt/warmelt-outobj.bysl: output call to basilys_object_set_serial 2008-06-29 Basile Starynkevitch [still buggy - the initial routine has a prolog before allocation of cdata and a body after the allocation & filling of cdata] * basilys.h: added basilys_checkmsg & declared basilys_check_failed * basilys.c: (basilys_check_failed) new function. * Makefile.in: using .SECONDARY for the generated warm*.c files. * melt/warmelt-first.bysl: less verbose export & import functions. * melt/warmelt-genobj.bysl: added class_objcommentinstr & oirout_prolog in class_initialroutineobj and generate the prolog in compile2obj_initproc * melt/warmelt-outobj.bysl: outputting better the class_objcommentinstr & class_initialroutineobj 2008-06-27 Basile Starynkevitch [still buggy; I believe the constants in routines or closed values in closures are messed up when something is redefined] * Makefile.in: removing -frandom-seed in our cc1 melt invocations. * melt/warmelt-first.bysl: added closure_every routine_every * melt/warmelt-macro.bysl: added debugging messages to find out why install_initial_macro gets corrupted. * melt/warmelt-normal.bysl: likewise. * melt/warmelt-genobj.bysl: likewise. Added objputroutconstnotnull & objputclosednotnullv which also check that teh constant or closed value is not null. This check cannot be done everytime, notably because of first occurrence of update_current_module_environment_container in warmelt-first.bysl * melt/warmelt-outobj.bysl: likewise. 2008-06-26 Basile Starynkevitch * Makefile.in: using MELTBASILYSCCFILE1 not MELTBASILYSCCINIT1 for most warmelt*.c stuff except the warmelt-first.bysl 2008-06-25 Basile Starynkevitch [continue splitting stuff into several modules] * Makefile.in: added rules for warmelt-*-3 stuff & upgrade-warmelt * melt/warmelt-first.bysl: more exports. initvalue_exporter check if overriding. initvalue_importer less verbose. !!! some classes should never be redefined so a redefinition_handling is needed !!! * melt/warmelt-macro.bysl: preparing for redefinition_handling macro - to be implemented. * melt/warmelt-normal.bysl: missing exports. * melt/warmelt-genobj.bysl: compile2obj_initproc & compile2obj_procedure defined & exported here. compile_list_sexpr moved below. * melt/warmelt-outobj.bysl: added the moved compile_list_sexpr * warm-basilys-0.c: regenerated from above warmelt*.bysl 2008-06-25 Basile Starynkevitch [splitting warm-basilys.bysl into several files] * warm-basilys-0.c: regenerated. * Makefile.in: added rules for monolithical build of warm-basilys-*.c from catenation of warmelt*.bysl * melt/warm-basilys.bysl: deleted file, because split into following * melt/warmelt-first.bysl: new file. * melt/warmelt-macro.bysl: new file. * melt/warmelt-normal.bysl: new file. * melt/warmelt-genobj.bysl: new file. * melt/warmelt-outobj.bysl: new file. 2008-06-25 Basile Starynkevitch MELT branch merged with trunk r137105 2008-06-25 Basile Starynkevitch * common.opt: added -fbasilys-arglist= & basilys_arglist_string * basilys.c: (do_initial_command) handle basilys_arglist_string. * melt/warm-basilys.bysl: added errormsg_plain & errormsg_strv. compileinit_command & compilefile_command handle arglist. * warm-basilys-0.c: regenerated. 2008-06-25 Basile Starynkevitch [still buggy for warmelt-genobj.so] * basilys.c: more casts for C++ compatibility. (basilys_assert_failed) more robust when msg or filnam or fun is incorrectly NULL. * Makefile.in: removed warmelt-macro.bysl -merged into warmelt-first.bysl * melt/warm-basilys.bysl: reordered somehow. Added missing exports. 2008-06-24 Basile Starynkevitch * melt/warm-basilys.bysl: import of values coded but buggy. crashes for warmelt-macro. 2008-06-23 Basile Starynkevitch [start adding import of values] * melt/warm-basilys.bysl: strangely needed to add a normal_exp method to discr_string. begin adding stuff for import of values: class_nrep_startval & :nctx_valuelist & inivalue argument to compile2obj_initproc. exporting inform_plain & inform_strv 2008-06-23 Basile Starynkevitch [avoid warning about C++ incompatibility] * basilys.h: added casts. * basilys.c: (FORWARDED, forwarded_copy, scanning) (basilysgc_new_int, basilysgc_new_mixint, basilysgc_new_routine) (basilysgc_new_closure, basilysgc_new_strbuf, ...) added many casts. * melt/warm-basilys.bysl: added many casts. * warm-basilys-0.c: regenerated. 2008-06-23 Basile Starynkevitch MELT branch merged with trunk r137030 * melt/warm-basilys.bysl: some primitives got explicit casts. * basilys.h: added casts to avoid implicit conversion from void* disallowed with C++ * basilys.c: (delete_special, forwarded, scanning) likewise. 2008-06-22 Basile Starynkevitch * Makefile.in: splitting warm-basilys.bysl gives comment with line in resulting warmelt*.bysl * melt/warm-basilys.bysl: expand_msend takes an opnam argument. class_src_msend has msend_selsymb instead of msend_selbind. warning & error messages report location in @file:line: format. macroexpand_1 deals with selector values. * warm-basilys-0.c: regenerated. 2008-06-21 Basile Starynkevitch * Makefile.in: added warmelt-normal.c & warmelt-genobj.c targets. splitting warm-basilys.bysl using simpler stuff. * melt/warm-basilys.bysl: defprimitive does fill the type in the data. reorganized order of definitions to facilitate splitting. 2008-06-20 Basile Starynkevitch * melt/warm-basilys.bysl: update of module environment box should change the local in the toplevel containing it! export apparently works!! 2008-06-20 Basile Starynkevitch * melt/warm-basilys.bysl: added comments fields in various module_environment stuff to help debugging. * doc/melt.texi: more stuff [unchecked]. 2008-06-18 Basile Starynkevitch * melt/warm-basilys.bysl: renamed current_module_environment_box as current_module_environment_container * warm-basilys-0.c: regenerated several times. 2008-06-18 Basile Starynkevitch * melt/warm-basilys.bysl: adding more into compilobj_nrep_update_current_module_environment_box which seems to work somehow... 2008-06-18 Basile Starynkevitch * doc/gccint.texi: added MELT. * doc/melt.texi: new file nearly empty. * melt/warm-basilys.bysl: initvalue_exporter dont show the contenv anymore. still buggy for compilobj_nrep_update_current_module_environment_box 2008-06-18 Basile Starynkevitch * melt/warm-basilys.bysl: almost done compilobj_nrep_update_current_module_environment_box 2008-06-17 Basile Starynkevitch * melt/warm-basilys.bysl: adding compilobj_nrep_update_current_module_environment_box 2008-06-15 Basile Starynkevitch * melt/warm-basilys.bysl: adding nctx_procurmodenvlist & igncx_procurmodenvlist fields. added an explicit call to update_current_module_environment_box which should probably be called update_current_module_environment_container. Its compilation method is not complete. * warm-basilys-0.c: regenerated several times. 2008-06-15 Basile Starynkevitch [start adding update_current_module_environment_box] * basilys.h: added BGLOB_CLASS_CONTAINER & FCONTAINER_VALUE and declare basilys_container_value. * basilys.c: (basilys_container_value) new function. * melt/warm-basilys.bysl: class_container is predefined. field sysdata_box_fresh_env renamed as sysdata_cont_fresh_env. field igncx_boxenvloc renmed as igncx_contenvloc. initfresh_boxenvmaker renamed as initfresh_contenvmaker so updated initial_system_data. initvalue_exporter & initmacro_exporter take a contenv as argument. Added some stuff for update_current_module_environment_box, which is not implemented. * warm-basilys-0.c: regenerated. 2008-06-15 Basile Starynkevitch * basilys.h: renamed FSYSDAT_FRESH_ENV as FSYSDAT_BOX_FRESH_ENV * melt/warm-basilys.bysl: sysdata_box_fresh_env instead of sysdata_fresh_env nctx_qdatcurmodenvbox instead of nctx_qdatcurmodenv igncx_boxenvloc added warningmsg_plain & warningmsg_strv; initfresh_boxenvmaker inside initial_system_data. removed unsafe_replace_module_environment -- just put the content of the current_module_environment_box. normal_exported_value & normal_exported_macro are simpler. post_initialization works badly so issue a warning. * warm-basilys-0.c: regenerated twide. * Makefile.in: warm-basilys-0.c made from warm-basilys-3 not 2 [current_module_environment should become current_module_environment_box; this will make everything easier] * basilys.c: (basilys_dbgshortbacktrace) shows the basilys_dbgcounter * melt/warm-basilys.bysl: pair_make renamed as make_pair. added make_mixint. all warnings & inform messages display basilys_dbgcounter; added list4 list5 list6. Added a post_initialization function which is called magically with compileinit commmand. * Makefile.in: warmelt-first compiled with compfile! 2008-06-15 Basile Starynkevitch * melt/warm-basilys.bysl: added warning for redefinitions (warn_if_redefined) 2008-06-15 Basile Starynkevitch [unsafe_replace_module_environment construct returns the new module environment] * basilys.c: (basilys_output_cfile_decl_impl) emit in a comment at start the date of generation. * melt/warm-basilys.bysl: removed classes class_nrep_export* (normal_exported_value) construct a sourcexpr to compute the freshenv if it was nil & normalize it. (normexp_unsafe_replace_module_environment) less buggy. (compilobj_unsafe_replace_module_environment) less buggy. * Makefile.in: added diff-warm-3-4 target. 2008-06-14 Basile Starynkevitch * basilys.h: added BGLOB_CLASS_CTYPE & BGLOB_CLASS_ENVIRONMENT * melt/warm-basilys.bysl: moved exports. install_ctype becomes install_ctype_descr. class_ctype & class_environment are predefined. call to initfresh_envmaker generated too late! 2008-06-14 Basile Starynkevitch * basilys.h: added BGLOB___SPARE1 to 4 for future safety... added BASILYSGIX macro to be used in predefinited below. * melt/warm-basilys.bysl: use a predefinited array of bytes to avoid filling already existing predefined. 2008-06-13 Basile Starynkevitch * melt/warm-basilys.bysl: all the normexp_export* should return a nrep_nil! output of predefs carefully avoid to overwrite an existing predef. All the export_* should be moved after the filling of initial_system_data. * basilys.c: (readstring) forgot to handle \\ escape! (basilysgc_compile_dyn) sets dynamically the flocs before calling the module. * Makefile.in: warmelt-macro.c uses warm-basilys-3.so for generation. 2008-06-13 Basile Starynkevitch MELT branch merged with trunk r136757 2008-06-13 Basile Starynkevitch {moved TOKENIZER stuff into INITIAL_SYSTEM_DATA] * common.opt: variable count_basilys_debugskip_string instead of count_basilys_debugskip * basilys.h: removed BGLOB_CLASS_TOKENIZER, BGLOB_TOKENIZER, the FTOK_* enum. enhanced FSYSDAT. Added basilys_debugskipcount. * basilys.c: declared basilys_debugskipcount. (basilysgc_named_symbol, basilysgc_intern_symbol) (basilysgc_named_keyword, basilysgc_intern_keyword): use the INITIAL_SYSTEM_DATA instead of TOKENIZER. (basilys_initialize) set basilys_debugskipcount using count_basilys_debugskip_string. * melt/warm-basilys.bysl: removed all tokenizer stuff, using system_data instead. fetch_predefined works on small example. * warm-basilys-0.c: regenerated several times. 2008-06-13 Basile Starynkevitch * melt/warm-basilys.bysl: added fetch_predefined & store_predefined. exported nrep classes. 2008-06-13 Basile Starynkevitch * Makefile.in: added compileinit command to generate warm-basilys-*.c * basilys.c: (load_basilys_modules_and_do_command) removed gcc_assert dumpfile. * melt/warm-basilys.bysl: added compileinit command and unsafe_replace_module_environment feature. reordered the file. * warm-basilys-0.c: regenerated several times. 2008-06-12 Basile Starynkevitch [beginning to split warm-basilys.bysl into several files using export...; not yet working!] * basilys.h: added BASILYS_LOCATION_HERE macro. * basilys.c: (basilysgc_compile_dyn) using BASILYS_LOCATION_HERE (load_basilys_modules_and_do_command) sets dump_file to stderr earlier and uses BASILYS_LOCATION_HERE, so now debug_msg works in warm-basilys.bysl even at initialization! * melt/warm-basilys.bysl: moved some stuff. better debug_msg_fun. * Makefile.in: added awk script to split warm-basilys.bysl into several files warmelt-first.bysl warmelt-macro.bysl warmelt-normal.bysl warmelt-genobj.bysl. Added commented target warmelt-macro.so * warm-basilys-0.c: regenerated. 2008-06-12 Basile Starynkevitch * common.opt: added fbasilys-debugskip= option. * basilys.c: (load_basilys_modules_and_do_command) on non MsDos systems like Linux & unixes, a colon ':' can be used as separator in the init string, in addition of the semi-colon ';'. * melt/warm-basilys.bysl: adding ;;<< and ;;>> comments to split into several files. Initial predefs are set only if previously null. Added export_class of main classes. need_dbg uses the count_basilys_debugskip and the basilys_dbgcounter, which is always incremented in debug_msg_fun and displayed in error_* messages. 2008-06-11 Basile Starynkevitch * melt/warm-basilys.bysl: export_macro normalisation done better. Removed ninit_expmacro field in class_nrep_initproc 2008-06-11 Basile Starynkevitch * melt/warm-basilys.bysl: export_values & export_class normalisation done better. Removed ninit_expval field in class_nrep_initproc 2008-06-11 Basile Starynkevitch * melt/warm-basilys.bysl: adding normal_exported_value & normal_value_exporter to ease normalization of values 2008-06-11 Basile Starynkevitch * melt/warm-basilys.bysl: export_value renamed as export_values. compilefile uses the current module environment if the previous was non nil or else the initial_environment * warm-basilys-0.c: regenerated twice. 2008-06-11 Basile Starynkevitch [macro (current_module_environment) works on a tiny example] * melt/warm-basilys.bysl: added quasidata & quasiconstant for supporting current_module_environment & parent_module_environment macros. added class_nrep_quasiconstant class_nrep_quasidata class_nrep_quasiconst_current_module_environment class_nrep_quasidata_current_module_environment class_nrep_quasiconst_parent_module_environment class_nrep_quasidata_parent_module_environment class_initgenercontext. Comments about making normexp_export_value much simpler. Less emitted comments for routine initialization. added methods for compiling our new quasidata classes. 2008-06-10 Basile Starynkevitch MELT branch merged with trunk r136620 2008-06-10 Basile Starynkevitch [all exports tested on testrun1.bysl] * melt/warm-basilys.bysl: the macro export emission calls omacroexporter! corrected normexp_export_class. * melt/testrun1.bysl: updated to test all exports. * warm-basilys-0.c: regenerated twice. 2008-06-10 Basile Starynkevitch * melt/warm-basilys.bysl: emitting export macro [untested] 2008-06-10 Basile Starynkevitch * melt/warm-basilys.bysl: coded normexp_export_macro [untested] 2008-06-10 Basile Starynkevitch * melt/warm-basilys.bysl: coded normexp_export_class [untested] 2008-06-10 Basile Starynkevitch [export machinery might work] * melt/warm-basilys.bysl: the value exporter should be called on the resulting environment. 2008-06-09 Basile Starynkevitch [export machinery probably buggy ....] * melt/warm-basilys.bysl: added class_objcommentedblock. the initvalue_exporter seems called without a freshenv! added list1 list2 list3 utilities. 2008-06-09 Basile Starynkevitch * melt/warm-basilys.bysl: removed sysdata_class_exporter field. normexp_export_value complete, but not tested. normexp_export_class to be written... added initvalue_exporter, and unimplemented initmacro_exporter. simpler initial_system_data. * warm-basilys-0.c: regenerated twice. * basilys.h: added commented FSYSDAT_VALUEEXPORTER & FSYSDAT_MACROEXPORTER 2008-06-09 Basile Starynkevitch * melt/warm-basilys.bysl: removed output_code_getsymkw output_code_internsymkw compile2obj_initproc now explicitly build the getting & interning of symbols. 2008-06-09 Basile Starynkevitch MELT branch merged with trunk r136577 2008-06-09 Basile Starynkevitch * melt/warm-basilys.bysl: new [still unused] classes: class_objinternsymbol class_objinternkeyword class_objgetnamedsymbol class_objgetnamedkeyword with their outpucod* routines. output_code_getsymkw output_code_internsymkw are obsolete. 2008-06-07 Basile Starynkevitch * melt/warm-basilys.bysl: export_value are generated. added nexpv_symdata & nexpv_valdata into class_nrep_exportval begin introduction of current_module_environment & parent_module_environment macros. Less emitted comments for putslot & putclosurout. 2008-06-07 Basile Starynkevitch * melt/warm-basilys.bysl: added normexp_export_value. but generation of export still missing. 2008-06-06 Basile Starynkevitch MERGED WITH TRUNK rev.136492 2008-06-06 Basile Starynkevitch * melt/warm-basilys.bysl: added compile_warning macro. still unimplemented normexp_export_value. * warm-basilys-0.c: regenerated twice [before & afeter edition] 2008-06-06 Basile Starynkevitch * basilys.c: (load_initial_basilys_modules) debug messages to show module data. * melt-cc-script.proto: added -n flag to avoid line numbering. * melt/warm-basilys.bysl: adding unimplemented export_value, export_class, export_macro. less verbose comment in code generation for out*objinit* . added make_tuple6 & make_tuple7. Better unknown fieldname detection. More fields in system data. compile2obj_initproc generate getting them. * melt/testrun1.bysl: updated system data. 2008-06-06 Basile Starynkevitch * melt-cc-script.proto: corrected argument parsing with getopts. * melt/warm-basilys.bysl: partly adding export macros. 2008-06-05 Basile Starynkevitch [preparing for adding export by having start_module_basilys returns some environment; using the INITIAL_SYSTEM_DATA to wrap all system data, including command dispatching, environment management, etc...] * basilys.h: renaming *COMMAND_DISPATCHER as *SYSTEM_DATA added fields offset for them * basilys.c: (do_initial_command) uses the SYSTEM_DATA ... * melt/warm-basilys.bysl: using SYSTEM_DATA and generating a fresh environment in the start_module_basilys * warm-basilys-0.c: regenerated twice [after editing warm-basilys.bysl] * melt-cc-script.proto: redirecting which to /dev/null * Makefile.in: remove more carefully the #line-s when upgrading warm-basilys-0.c and regenerating warm-basilys-5 afterwards. 2008-06-05 Basile Starynkevitch * melt-cc-script.proto: improved a little bit the tempfile ... 2008-06-05 Basile Starynkevitch [should work on x86/32 bits] * basilys.h: increased BASILYS_ROUTDESCR_LEN * basilys.c: (forwarded_copy) because of FLEXIBLE_DIM mess, varysized structures copies are made memberwise. * melt-cc-script.proto: enhanced to accept some flags like -I -D -U and to use mktemp if tempfile does not exist. * Makefile.in: upgrade-warm-basilys used correctly unifdef. added rule for +warm%-n.so * warm-basilys-0.c: regenerated using new Makefile.in. 2008-06-05 Basile Starynkevitch * melt/warm-basilys.bysl: started adding module compilation context. 2008-06-05 Basile Starynkevitch * basilys.c: preparing for several MELT modules! (load_basilys_modules_and_do_command) new function. (basilys_initialize) calls load_basilys_modules_and_do_command. (do_initial_command) gives the module data as third argument. * common.opt: updated description of -fbasilys-init * melt/warm-basilys.bysl: added unused moduldata argument to commands function. 2008-06-04 Basile Starynkevitch MELT branch merged with trunk r136369 2008-06-04 Basile Starynkevitch * melt/warm-basilys.bysl: generating a separate static initialize_module_cdata routine to make the start_module_basilys routine less huge. * warm-basilys-0.c: regenerated by the edited warm-basilys.bysl 2008-06-04 Basile Starynkevitch * Makefile.in: added warm-basilys-5.c & diff-warm-1-2 ... targets * melt/warm-basilys.bysl: using memset to clear the current frame. splitted some output routines, to later separate the cdata fill in initial routine as another routine. 2008-06-04 Basile Starynkevitch * melt/warm-basilys.bysl: using assert_msg macro instead of assertmsg primitive. * warm-basilys-0.c: regenerated twice (before and after edition of warm-basilys.bysl) 2008-06-04 Basile Starynkevitch * melt/warm-basilys.bysl: macroexpansion of cppid twisted. 2008-06-04 Basile Starynkevitch * melt/warm-basilys.bysl: normalize cppif only checks for non void type equality. 2008-06-04 Basile Starynkevitch * basilys.h: (basilys_is_young) takes a const pointer to const. (basilys_nthattrraw_mapstrings, basilys_nthval_mapstrings) also const. * basilys.c: (add_localptr, scanning, basilysgc_add_strbuf_raw) (basilysgc_add_strbuf_cident, mulsort_cmp) (basilysgc_put_mapstrings, basilysgc_remove_mapstrings) (basilysgc_new_string_nakedbasename, compile_to_dyl) cosmetic constness issues/typos. 2008-06-04 Basile Starynkevitch * basilys.c: (add_localptr, basilys_garbcoll, scanning, debug_out) replaced gcc_unreachable by more explicit fatal_error. 2008-06-04 Basile Starynkevitch * melt/warm-basilys.bysl: adding assert_msg macro - instead of primitive. * basilys.h: basilys_assert_failed always defined. * basilys.c: (basilys_output_cfile_decl_impl) writes more atomically the file into 'foo.c.' renamed as 'foo.c' at end. 2008-06-03 Basile Starynkevitch * melt-cc-script.proto: added MELT_EXTRACFLAGS. the untested libtool command has been corrected to use $melt_cflags 2008-06-03 Basile Starynkevitch MELT branch merged with trunk r136317 2008-06-03 Basile Starynkevitch * melt/warm-basilys.bysl: using debug_msg macro everywhere instead of debugmsg. * warm-basilys-0.c: regenerated. * melt-cc-script.proto: do not compile anymore the *-n.so without line numbering. 2008-06-03 Basile Starynkevitch * melt/warm-basilys.bysl: added debug_msg macro, and error messages for unresolved forward references. 2008-06-03 Basile Starynkevitch * melt/warm-basilys.bysl: removed some debugmsg. * warm-basilys-0.c: regenerated. 2008-06-03 Basile Starynkevitch * Makefile.in: added MELTBASILYSCC1 variable & warm-basilys-4.c target * melt/warm-basilys.bysl: added handling of cppif * melt/test0.bysl: added test of cppif 2008-06-02 Basile Starynkevitch * basilys.c: (mulsort_cmp) removed debugprintf...s (skipspace_getc) added comment handling argument. (readsimplelong) removed many +% magic escapes. (makesexpr, readstring) correct handling of spaces. (basilys_output_cfile_decl_impl) avoid appending .c to a unitname already ending by it. * warm-basilys-0.c: regenerated. * melt/warm-basilys.bysl: added handling of comment. added copyright comment in generated file. added (void*) to many primitives to avoid warnings. (compile_list_sexpr) handle specially toplevel (comment)s. * Makefile.in: better upgrade-warm-basilys target. the warm-basilys-?.c (in build dir) are removed before regeneration. 2008-06-02 Basile Starynkevitch MELT bootstrapped, ie the generated warm-basilys-0.c is selfgenerated from warm-basilys.bysl & viceversa. * warm-basilys-0.c: new file, bootstrapped from melt/warm-basilys.bysl * Makefile.in: removed all the crap with cold-basilys.lisp and added warm-basilys-[0123] handling added new phony target upgrade-warm-basilys 2008-06-02 Basile Starynkevitch MELT branch merged with trunk r136272 2008-06-02 Basile Starynkevitch [bootstrapped: warm-basilys-2,3,4,5 are same, but strangely warm-basilys-1&2 differ] * melt/warm-basilys.bysl: (normexp_ifelse) does not set the type to void when only one of then or else is void! * Makefile.in: continue when diff of warmbasilys is nonempty 2008-06-02 Basile Starynkevitch [metabuggy: test0c & test0w differ] * melt/warm-basilys.bysl: added several return-s. 2008-06-01 Basile Starynkevitch [still metabuggy warmbasilys1 fails on test0] * melt/warm-basilys.bysl: added several (void) to avoid conditional type mismatch. (replace_last_by_return) more robust because of added (void) calls. 2008-05-29 Basile Starynkevitch [still metabuggy; warm-basilys-1 fails on test0] * melt/warm-basilys.bysl: added more explicit return & some more debugmsg. 2008-05-29 Basile Starynkevitch [still metabuggy; warm-basilys-1 miscompile test0 -its testandsetq function] * melt/warm-basilys.bysl: added putobjdest catchall for anydiscr, and putobjdest methhods for null and discr_integer. 2008-05-28 Basile Starynkevitch [still metabuggy; the function pairlist_to_multiple is incorrectly compiled in warm-basilys-1.c by coldbuild-warm-basilys.c] * melt/warm-basilys.bysl: added debugmsg 2008-05-28 Basile Starynkevitch [still metabuggy] * basilys.h: added better location flocs in BASILYS_INITFRAME_AT by doing a snprintf. * melt/warm-basilys.bysl: more debug messages... * melt/testrun1.bysl: added nested test... 2008-05-28 Basile Starynkevitch [still metabuggy; debug output is now sorted] * basilys.c: (mulsort_cmp, basilysgc_sort_multiple) added debugeprintf... * basilys.h: (basilys_string_less) new function. * melt/warm-basilys.bysl: dbgout for mapstring & mapobjects are giving sorted output [which is more canonical and should be easier to compare with other runs] 2008-05-28 Basile Starynkevitch [still a metabug; adding sort of multiple to ease debug messages] * basilys.h: (basilysgc_sort_multiple) new function declared. (basilys_multiple_put_nth) corrected test on magic of discr. * basilys.c: (basilysgc_sort_multiple) added. * melt/warm-basilys.bysl: mexpand_if seems badly compiled by warm-basilys.bysl when xthen not debugmsg-ed. (multiple_sort) new primitive. 2008-05-27 Basile Starynkevitch MELT branch merged with trunk r136046 2008-05-27 Basile Starynkevitch [**** before putting the generated warm-basilys.c into SVN *** the bootstrap is buggy. warm-basilys-1 probably fails to compile the testandsetq function of test0.bysl perhaps a meta-bug related to if or and...] * Makefile.in: all indent-ations removed. the test0c.c & test0w.c file should be identical (but are not yet!). * run-basilys.h: added declaration of basilys_compiled_timestamp & basilys_md5 which are generated by *melt-cc-script * melt/warm-basilys.bysl: added class_src_ifelse and its normalization. Avoid using (return) or (return ()) - prefer (return (the_null)) which is better handled by cold-basilys.lisp. * melt/test0.bysl: (testandsetq) enhanced. * melt/testrun1.bysl: added tests on lists. 2008-05-27 Basile Starynkevitch [**** before putting the generated warm-basilys.c into SVN ***] * melt/warm-basilys.bysl: reverted changes, back to rev.135845 * Makefile.in: reverted changes, back to rev.135845 * basilys.c: (basilys_dbgbacktrace, basilys_dbgshortbacktrace) show the flocs field of frame [runtime line information]. * basilys.h: removed unused struct framloc_basilys_st. 2008-05-26 Basile Starynkevitch [**** before putting the generated warm-basilys.c into SVN - DID NOT basilysbootstrap ***] * melt/warm-basilys.bysl: compileseq command renamed as compilefile * Makefile.in: using compilefile command before putting the generated warm-basilys.c 2008-05-24 Basile Starynkevitch [**** warm-basilys bootstrapped successfully: warm-basilys-2 & warm-basilys-3 are identical!!! ****] * melt/warm-basilys.bysl: (scan_defclass) replaced and by if, because probably cold-basilys.lisp mishandle it... * Makefile.in: added generation of warm-basilys-3 2008-05-23 Basile Starynkevitch [warm-basilys-1 works for test0, test1, not testrun1] * melt/warm-basilys.bysl: (normexp_return) forgot to put the normalized return expr in its bindings. * melt/warm-basilys.bysl: every instance of class_nrep_locsymocc should have its :nocc_bind set 2008-05-23 Basile Starynkevitch [warm-basilys-1 still buggy for test0] * melt/warm-basilys.bysl: every instance of class_nrep_locsymocc should have its :nocc_bind set 2008-05-23 Basile Starynkevitch MERGED with trunk rev135793 2008-05-23 Basile Starynkevitch [the skipped unsafe_put_fields bug was because normexp_unsafe_put_fields should, like every other side-effecting expression, returns a simple local occurrence of ctype_void;; warm-basilys-1 still buggy for test0!] * melt/warm-basilys.bysl: (add2sbuf_indent) lowered column threshold. (dbgout_fields) less wide output. (dbgout_anybinding_method) nicer output. (normal_exp) selector - better comment. (normexp_return) always return a locsymocc. (normexp_unsafe_get_field) returns a locsymocc. (outpucod_objlocv) shorter comments in generated code. (compilobj_nrep_forever) added useless *99bis stuff & extra asserts. * melt/test0.bysl: added more tests. * melt/README-MELT: added explanation about bug. * melt-cc-script.proto: minor typos & outputs. 2008-05-22 Basile Starynkevitch [some unsafe_put_fields but not all are skipped .. we have to find a pattern for them to find the bug] * basilys.h: (basilys_dbgtracefile) new variable. (basilys_trace_start, basilys_trace_end) new macros [useful only when ENABLE_CHECKING] * basilys.c: (basilys_initialize) deal with basilys_dbgtracefile using BASILYSTRACE environment variable [ugly!] * melt/warm-basilys.bysl: generate calls to basilys_trace_start, basilys_trace_end./ Closures are better dbgout-ed. * melt/test0.bysl: added more unsafe_put_fields tests. * melt-cc-script.proto: more verbose [using ls] 2008-05-21 Basile Starynkevitch [perhaps a metabug: the (unsafe_put_fields nbind :labind_res oresv) in compilobj_nrep_forever is not compiled in warm-basilys-1 which fails on compiling test0; some OR are perhaps badly cold-compiled!] * melt/warm-basilys.bysl: (mexpand_defun) uses a COND not an OR to parse formal arguments. (scan_defclass) uses COND not OR; also better error messages. (normexp_definstance) likewise. (compilobj_nrep_forever) added debugmsg.... 2008-05-21 Basile Starynkevitch [still buggy, but less for OR] * melt/warm-basilys.bysl: (normexp_or) works correctly [at least for simple cases]. corrected various OR occurrences [detected by warm-basilys-1!] 2008-05-21 Basile Starynkevitch merged with trunk rev135714 * basilys.h: explicit [re-]declaration of fatal_error. 2008-05-21 Basile Starynkevitch [handling of OR might be incorrect in cold and improved in warm] * melt/warm-basilys.bysl: (normexp_or) rewritten. [many occurrences of OR replaced by IF because contrib/cold-basilys.lisp might be wrong] 2008-05-20 Basile Starynkevitch [added pregetting & interning of symbols & keywords - still buggy warmbasilys2] * basilys.h: (basilys_is_string_const) new function. * melt/warm-basilys.bysl: (macroexpand_1) check for not DEFUN when unbound. (output_code_getsymkw, output_code_internsymkw) new functions called in ... (outpucod_initialroutine) added pregetting & interning of symbols & keywords... 2008-05-20 Basile Starynkevitch [still buggy warmbasilys2] * melt/warm-basilys.bysl: (normexp_keyword) handling correctly keyword at toplevel. This affects initialization of our ctype_value etc... 2008-05-20 Basile Starynkevitch [****important issue about GGC & basilys full collection when creating new GGC data e.g. tree-s***] * basilys.h: added an important TODO comment for explanation. 2008-05-20 Basile Starynkevitch [cond was buggy because of progn; testrun1 running ok; warmbasilys2 still bad] * melt/warm-basilys.bysl: (normexp_progn) recoded function, using normalize_tuple... 2008-05-19 Basile Starynkevitch [stillbuggy cond & testrun1 bad; perhaps progn sometimes badly handled, 'or' badly normalized?] * melt/testrun1.bysl: added better testcommand & install_method. * melt/warm-basilys.bysl: betteer handling of multiple return. (outpucod_objputxtraresult) new function. better normalization & compilation of return. (mexpand_cond) rewritten expansion of cond using sometimes or. 2008-05-17 Basile Starynkevitch [stillbuggy multiapply incorrectly compiled see testrun1] * melt/testrun1.bysl: added test command. * Makefile.in: added testrun1x production by cold-basilys.lisp to compare with warmcompiled testrun1c 2008-05-17 Basile Starynkevitch [warmcompilation of test0 better for multisend but warm-basilys-1 runs badly on test0] * melt/warm-basilys.bysl: better normalization & compilation of multisend & multiapply. The body is actually compiled and the localvars are bound and allocated. * Makefile.in: added MELTINDENT variable for coldtest-warm-basilys target 2008-05-17 Basile Starynkevitch [warmcompilation of test0 better for multisend but warm-basilys-1 fails should add a predicate obj_without_sideeffects better than testing if in class_objpurevalue] * melt/warm-basilys.bysl: better output of objmultimsend & objmultiapply 2008-05-16 Basile Starynkevitch [warmcompilation of test0 still buggy for multisend] * melt/warm-basilys.bysl: (normexp_multicall) generates a local & bindings. 2008-05-16 Basile Starynkevitch [still buggy elsewhere, find_env seems to be warmcompiled ok.] * basilys.h: added flocs field instead of [removed] floc in frames. (BASILYS_LOCATION) new macro to set the flocs. (BASILYS_INITFRAME, BASILYS_INITFRAME_AT) sets the flocs. * basilys.c: (basilysgc_add_strbuf_cidentprefix) avoid adding many _ * run-basilys.h: added ENABLE_BASILYSMELT check. (curfptr, curfnum, curfclos, curfrout) new macros to shorten generated code when accessing current frame curfram__. * Makefile.in: reordered various melt tests. Added calls to indent on generated C files. * melt/warm-basilys.bysl: replaced field floc by flocs in generated frames. (output_raw_location): new function. (output_location) calls output_raw_location and also emits BASILYS_LOCATION (class_objnil): new class. (putobjdest_objvalue): verbose message when type mismatch. (normexp_exit) returns a localoccv. (normexp_let) likewise. (normexp_forever) likewise. (minor_garbcoll,full_garbcoll,is_not_object,is_not_a): new primitives. * melt/testrun1.bysl: added is_not_a is_not_object primitives & more message_dbg in find_env 2008-05-15 Basile Starynkevitch [still buggy: find_env in testrun1.bysl or warm-basilys.bysl is not correctly compiled. The output instructions are in wrong order!] * melt/warm-basilys.bysl: (is_not_a) new primitive. (find_env) use is_not_a. (get_free_objlocptr) added useless... variables to circumvent a cold-basilys.lisp bug. * melt/testrun1.bysl: added is_not_a 2008-05-15 Basile Starynkevitch [still buggy but return better handled in exit or forever] * melt/warm-basilys.bysl: (putobjdest_objdestinstr) check that last destination is not the new one to avoid duplicates. (get_free_objlocptr, get_free_objloclong, get_free_objloctyped) reuses the offset but not the objlocv of freed variables. (putobjdest_objloop) bug corrected: the destlist should be a list! 2008-05-14 Basile Starynkevitch [still buggy - exit is better, but return is not well handled when propagated into an exit or a forever...] * melt/warm-basilys.bysl: class_objexit is simpler (no more :obexit_prolog) nrep_exit is compiled into a block. all tests for not is_a class_objpurevalue also test for non-null. * melt/test0.bysl: (testforeverif) added but not compiled correctly. 2008-05-14 Basile Starynkevitch [still buggy] * basilys.h: (basilys_getfield_object_at) new function, called by macro basilys_getfield_object when ENABLE_CHECKING * melt/warm-basilys.bysl: find_env indented better. added more empty lines in generated output for procedures. (outpucod_objputclosurout) added check of routine. (compilobj_dataclosure) buggy putclosrout generation... 2008-05-14 Basile Starynkevitch [still buggy - first generation of warm-basilys-1.c which does not behave correctly] * melt/warm-basilys.bysl: all (return ()) replaced by (return (the_null)) because of a cold-basilys.lisp possible bug (compilobj_nrep_let) don't test for objcomp objectness. It could be a non object when source is nil, an integer, a verbatim string, .. * Makefile.in: fixed typos for warmcompilation. added generation of warm-basilys-2.c and compare to warm-basilys-1.c 2008-05-14 Basile Starynkevitch [still buggy] * melt/warm-basilys.bysl: (putobjdest_objvalue) handles specially a void reciever by making an objblock with an objclear. (compilobj_nrep_unsafe_put_fields) adds the touched locvar to the generated block. (compil_data_and_slots_fill) adds the initialized data to the generated block. 2008-05-13 Basile Starynkevitch [hurt another bug: check typcomp in PUTOBJDEST_OBJVALUE] * melt/warm-basilys.bysl: corrected normalization of progn 2008-05-13 Basile Starynkevitch [still buggy - incorrectly calling output_code on discr_list from outpucod_objblock so some objblock is incorrectly built] * basilys.c: (do_initial_command) added check for closure to invoke for command & moved "exit" builtin command handling. * Makefile.in: added testrun1c run to say hello. * melt/warm-basilys.bysl: added class_objpurevalue superclass to avoid outputting it. Other values such as class_objexpv should always be output - otherwise some primitive invocations are disappearing. All tests in outpucod* are testing unless is_a class_objpurevalue to avoid outputting. * melt/testrun1.bysl: added say command... 2008-05-12 Basile Starynkevitch [still buggy] * melt/warm-basilys.bysl: generated code has a named frame structure. generation of initial routine without clos field in curfram to catch bad access to closures. added compilobj_*_binding methods for compile_obj of class*binding-s. compilobj_dataroutine handle constant occurrences. 2008-05-07 Basile Starynkevitch [another bug; the previous one is probably related to too early disposal of locals] * common.opt: all basilys options are only when ENABLE_BASILYSMELT. * basilys.c: (basilys_initialize) force exit_after_options for builtin command exit and detect command without dispatcher. * melt/warm-basilys.bysl: compil_data_and_slots_fill is disposing local bindings too early. [TODO:] It should return a tuple of bindings to be disposed by the caller. outcinitfill_objinitobject does not set the predef anymore. This is done in outcinitpredef_objinitobject. * Makefile.in: the empty runs have -fbasilys-command=exit 2008-05-07 Basile Starynkevitch [still buggy] * basilys.c: (basilysgc_add_strbuf_cident) always clear current bytedest. * Makefile.in: added testrun1 runs * melt/testrun1.bysl: new file. * melt/warm-basilys.bysl: added generations of checks in putupl & putclosv * melt-cc-script.prot: added more echo-s. 2008-05-06 Basile Starynkevitch * basilys.h: renamed FDISCR_SENDCLOSURE as FDISCR_SENDER. * basilys.c: renamed FDISCR_SENDCLOSURE as FDISCR_SENDER. (basilysgc_put_mapobjects, basilysgc_put_mapstrings) (basilysgc_raw_put_mappointers) threshold to grow softened. * melt/warm-basilys.bysl: *****shameful hack******** [bug not found!] to call outpucod_verbatimstring from outpucod_string 2008-05-06 Basile Starynkevitch * melt/warm-basilys.bysl: still buggy. Maybe should avoid circularity on discr_namestring name discr. added ninst_objnum initialization to propagate objnum from src to normexp. added inipredef. 2008-05-06 Basile Starynkevitch * tree-passes.h: MERGED WITH TRUNK r134973 * passes.c: MERGED WITH TRUNK r134973 2008-05-05 Basile Starynkevitch * melt/warm-basilys.bysl: (create_normcontext) fill the initial predefmap with symbols using (fill_initial_predefmap). Added the output_c_initpredef selector to set the predefined values very early. Added generation of obj_num in initial objects. Added generation of asserts in putslots. Still buggy, perhaps because of late setting of predefined values. * Makefile.in: added empty run of warmbasilys1 2008-04-22 Basile Starynkevitch * basilys.c: (basilysgc_add_strbuf_cident) avoid adding several consecutive '_' underscores. * basilys.h: added comment about updating warm-basilys.bysl when adding new predefs * Makefile.in: generates test0c.c etc... * melt-cc-script.proto: removed -x flag. * melt/warm-basilys.bysl: still buggy. Start adding some global_DISCR* etc primitives to register predef by names. Corrected wrong argument order to error_plain. More locations in output of getarg. Should add more global_* stuff, or generate it by some script (& also in basilys.h) 2008-04-21 Basile Starynkevitch * Makefile.in: added compilation of test0 by warm-basilys1.c itself 2008-04-21 Basile Starynkevitch [warm-basilys1 still fail by crashing to compile test1, but is syntactically correct C code] * Makefile.in: added compilation of test1 by warm-basilys1.c itself produced by coldbuild-warm-basilys.c on warm-basilys.bysl * melt-cc-script.proto: added [temporarily?] the build of foo-n.so from foo.c * melt/warm-basilys.bysl: quoted string constants are with make_stringconst. in normalization of progn unsafe_get_field setq generate a variable for the result. various output_c_code routines avoid outputing non objinstr code hence less generation of useless code. 2008-04-21 Basile Starynkevitch * Makefile.in: added warm-basilys1 & warm-basilys2 & cleaning * melt/warm-basilys.bysl: normalization of lambda should introduce a binding. still buggy : test1.bysl hits new assert compilobj_nrep_apply check ocomp not objinstr * melt-cc-script.proto: added quick -fsyntax-only run without linenumbering 2008-04-21 Basile Starynkevitch [first sucessful compilation of warm-basilys.bysl by a cold-compiled version of itself; but the generated C code is syntactically incorrect] * params.def: increased PARAM_BASILYS_MINOR_ZONE * basilys.c: (basilysgc_new_raw_object) uses sizeof(struct basilysobject_st) for readability * Makefile.in: added time to ./cc1-melt runs * melt/warm-basilys.bysl: various debugmsg commented. (compilobj_nrep_constant) should compile the data for initrout. 2008-04-20 Basile Starynkevitch * 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 * basilys.h: (basilys_checked_assignmsg_at) better message. * melt/warm-basilys.bysl: better handling of if/then/else typing. got a runtime bug on warm bootstrap. 2008-04-19 Basile Starynkevitch * melt/warm-basilys.bysl: Added handling of arbitrary other ctypes such as cstring tree etc... But bootstrap still buggy in putobjdest_objvalue 2008-04-19 Basile Starynkevitch * basilys.h: (basilys_discr) return BASILYSGOB(DISCR_NULLRECV) for null pointer. * melt/warm-basilys.bysl: normalization of binding constructs like let or multiapply or multisend should remove the locally bound symbols from the symbol cachemap in the normalization context. This fix the bug for several homonymous let inside same function. dbgout_ routines are better for bindings. nil is dbgoutput-ed a la Lisp. several dbgout_ routines do not bother testing for need_dbg. arbitrary ctypes are still not handled correctly. 2008-04-18 Basile Starynkevitch * basilys.c: (bailys_apply) print a short backtrace when too deep recursion with ENABLE_CHECKING * melt/warm-basilys.bysl: (pairlist_to_progn, mexpand_progn...) correct progn expansion & compilobj... Added class_objdestinstr superclass so removed many putobjdest* methods. warm-basilys does not bootstrap itself yet [assertfailure compilocsy null ovar with ctype_void] 2008-04-18 Basile Starynkevitch * melt/warm-basilys.bysl: implemented put fields generation & output. Still missing progn generation. 2008-04-18 Basile Starynkevitch * basilys.h: (basilys_getfield_object) new function (when ENABLE_CHECKING) or macro * melt/warm-basilys.bysl: (parse_field_assignment) displays an error when non keyword fieldname. (class_objgetslot) new class. (outpucod_root) better error output. implemented get field generation & output. Still missing put field generation & output. 2008-04-18 Basile Starynkevitch * Makefile.in: uses | for both install & build of melt gcc script 2008-04-17 Basile Starynkevitch * melt/warm-basilys.bysl: (displaydebugmsg) new function - not working yet. added output to stderr. (compilobj_nrep_nil) installed as method. * Makefile.in: using cc1-melt to make more readable the output of the top command * basilys.c: (basilysgc_send) correctly handled null reciever. 2008-04-17 Basile Starynkevitch * melt/warm-basilys.bysl: (output_location) new string argument, better #line output. added class_nrep_nil & some methods for it. added debugmsg for unbound symbol in primitive expansion which still incorrectly happens. (normexp_quote) both initrout and normalrout cases. still buggy on self compilation 2008-04-17 Basile Starynkevitch MELT branch merged with trunk r134362 2008-04-16 Basile Starynkevitch * basilys.c: (basilys_caught_assign_at) added msg 4th argument * basilys.h: ditto. added basilys_checked_assignmsg macro. * melt/warm-basilys.bysl: added debugmg in wrap_normal_let1 to catch a bug still there [assert_msg check cbind wrapnormlet1] 2008-04-16 Basile Starynkevitch * Makefile.in: target install-melt-cc-script uses | in sed per suggestion of Nicolas Vigier 2008-04-16 Basile Starynkevitch * melt/warm-basilys.bysl: (create_normcontext) set both :nctx_initproc and :nctx_curproc to the shared inipro to handle keywords [e.g. inside ctype* def_instance-s.] this exposes a basilys runtime bug in forwarded_copy 2008-04-15 Basile Starynkevitch * Makefile.in: added $(BASILYSDEBUG) for -fdebug-basilys and added compilation of warm-basilys by itself (still buggy) * melt/warm-basilys.bysl: debug_msg changed to debugmsg which has a cstring second argument. 2008-04-15 Basile Starynkevitch * gengtype.c: (open_base_files) handles basilys.c only when ENABLE_BASILYSMELT * tree-pass.h: declare basilys_pass only when ENABLE_BASILYSMELT * toplev.c: (toplev_main) do basilys* init & final only when ENABLE_BASILYSMELT * passes.c: (init_optimization_passes) do basilys_pass only when ENABLE_BASILYSMELT 2008-04-15 Basile Starynkevitch * configure.ac: added --enable-basilysmelt flag * basilys.h: check ENABLE_BASILYSMELT * Makefile.in: added conditionals on BASILSMELT_OBJ and COMPILER_PROBE_OBJ * configure, config.in: regenerated 2008-04-14 Basile Starynkevitch corrected below bug; * tree-pass.h: pass_basilys is a simple IPA pass. * basilys.c: likewise. 2008-04-14 Basile Starynkevitch MELT branch merged with trunk r134275 stilly buggy for libgcc muldi3: internal compiler error: in execute_ipa_pass_list, at passes.c:1235 2008-04-14 Basile Starynkevitch * melt/warm-basilys.bysl: adding pamater passing capacity to constant cstrings in ctype_cstring. This requires a change in contrib/cold-basilys.lisp which is not yet implemented. 2008-04-14 Basile Starynkevitch * basilys.h: (basilys_allocatereserved) removed the call fatal_error and wrapped it into basilys_reserved_allocation_failure. * basilys.c: (basilys_reserved_allocation_failure) new function which should never be called. 2008-04-05 Basile Starynkevitch MELT branch merged with trunk r133937 2008-04-05 Basile Starynkevitch MELT branch merged with trunk r133930 * Makefile.in: merged with trunk. 2008-04-04 Basile Starynkevitch [tried warm bootstrap which is still buggy] * melt/warm-basilys.bysl: various tiny bugfixes. (scan_defclass) handles correctly :obj_num or :predef. (parse_field_assignment) cla can be null. (wrap_normal_let1, compilobj_dataroutine) removed debugging backtraces. * basilys.h: basilys_list_length (nil) is 0. * basilys.c: (basilys_list_length) likewise. 2008-04-02 Basile Starynkevitch * melt/warm-basilys.bysl: multiresult apply & send outpucod not tested. 2008-04-01 Basile Starynkevitch * melt/warm-basilys.bysl: multiresult apply & send support nearly completed but untested. 2008-04-01 Basile Starynkevitch * melt/warm-basilys.bysl: simple message send support ok. 2008-03-31 Basile Starynkevitch * melt/warm-basilys.bysl: adding message send support (stilly buggy). 2008-03-29 Basile Starynkevitch * melt/warm-basilys.bysl: all defselector-s without explicit :named_name. implemented defselector macro & normalization. argument pointer passing ok for null argument. 2008-03-28 Basile Starynkevitch * melt/warm-basilys.bysl: all *_iterate functions duplicated into a *_every function (iterating fully) and a _iterate_test (iterating while...). (normexp_msend) new stub function [incomplete]. (check_ctype_nargs) new function used in normexp_apply... * melt-cc-script.proto: remove all temporary files. 2008-03-28 Basile Starynkevitch * melt/warm-basilys.bysl: (lambda_arg_bindings) check valid argument type. (getctype_objvalue) returns the correct :obv_type field. (compilobj_nrep_makeinst) compiles the class data. 2008-03-27 Basile Starynkevitch merged with trunk r133654 * Makefile.in: reverted auto dependencies (as did the trunk) 2008-03-27 Basile Starynkevitch * basilys.c: (unsafe_index_mapobject, unsafe_index_mapstring) (unsafe_index_mappointer) returns a free index for tables which have mostly deleted entries. (basilysgc_send) Added naughty dirty trick to avoid eating a callframe on every send. (basilys_apply) new name of basilysgc_apply since it has no frame and do not perform any allocation. (basilysgc_new_mult6, basilysgc_new_mult7) new functions. * basilys.h: (basilys_curframdepth) new function. (basilysgc_new_mult6, basilysgc_new_mult7) new functions. * melt/warm-basilys.bysl: (the_framedepth) new primitive. (debug_msg) displays the call depth. Added output of semicolon before goto-s. (compilobj_nrep_multacc, compilobj_nrep_fieldacc) working. (compil_data_and_slots_fill) Handles correctly the ndata_locbind field. Uses basilys_apply in generated code. * melt-cc-script.proto: added output of generated timestamp file for debugging. * melt/test0.bysl: more tests. * melt/test1.bysl: more tests. 2008-03-27 Basile Starynkevitch * Makefile.in: the newer [from trunk] Makefile.in did not work. Added use of LTDL_LDFLAGS, PPLLIBS, ... 2008-03-26 Basile Starynkevitch MELT branch merged with trunk r133612. In particular better Makefile.in with auto dependencies... 2008-03-26 Basile Starynkevitch * melt/warm-basilys.bysl: adding compilation of multiapply and of (compile-time) field access... 2008-03-24 Basile Starynkevitch * melt/warm-basilys.bysl: Start adding message sending & multicall. 2008-03-24 Basile Starynkevitch * basilys.c: (basilysgc_add_strbuf_raw) assigned the argument into framevar. * melt/warm-basilys.bysl: (dbgout_list_method) better typed if. (normexp_symbol) handling correctly constant (function, class, primitive, field...) symbol at toplevel. * melt/test0.bysl: added test of toplevel function & primitive bindings. 2008-03-22 Basile Starynkevitch * basilys.c: (basilysgc_add_strbuf_raw) when growing young strbuf, call basilysgc_reserve and basilys_allocatereserved to avoid growing a buffer which has just been promoted to old by the zone reallocation. (basilysgc_add_strbuf_raw) use a basilys frame. (basilysgc_put_mapobjects, basilysgc_remove_mapobjects) (basilysgc_put_mapstrings, basilysgc_remove_mapstrings) (basilysgc_raw_put_mappointers, basilysgc_raw_remove_mappointers) call basilysgc_reserve and basilys_allocatereserved likewise. * basilys.h: (basilysgc_reserve, basilys_allocatereserved) new functions. added frameloc when ENABLE_CHECKING in basilys frames. * melt/warm-basilys.bysl: added (empty) support for framloe when ENABLE_CHECKING in generated basilys frames. * Makefile.in: remove T_CFLAGS from MELT_CFLAGS. 2008-03-21 Basile Starynkevitch * basilys.c: (basilysgc_read_file) added second argument locnam. (do_initial_command) uses basilys_secondargument_string. !!!!! A BUG REMAINS AND CRASHES our cc1 for test0 !!!!!!! * basilys.h: (basilysgc_read_file) added second argument locnam. * melt/test0.bysl: added file. * melt/test1.bysl: added file. * melt/warm-basilys.bysl: replaced some call to or .. with if (not ..) to avoid some warnings from cold-basilys.lisp nctx_symbcachemap filled even in create_normcontext to handle MELT variables at toplevel. compileseq_command takes an optional second string. * common.opt: added fbasilys-secondarg for basilys_secondargument_string. * melt-cc-script.proto: corrected dynstuff computation. added echo messages and set -x. * Makefile.in: added coldtest-warm-basilys HORRIBLE KLUDGE which still crashes because of a basilys.c? bug 2008-03-20 Basile Starynkevitch * Makefile.in: added @DEFS@ to MELT_CFLAGS. Better run-basilys.d target (still specific to some systems like linux; depcomp should be used...). Added ugly temporary kludge to build coldbuilt-warm-basilys.c & coldbuilt-warm-basilys.so on Linux thru clisp & contrib/coldbasilys.lisp. built-melt-cc-script better built. * melt-cc-script.proto: corrected typos. * run-basilys.h: working at last. 2008-03-20 Basile Starynkevitch MELT branch merged with trunk r133366. * basilys.c: pass_basilys is now a gimple_opt_pass. * tree-pass.h: pass_basilys is now a gimple_opt_pass. pass_compiler_probe now declared here. * passes.c: using new struct-s for passes. * compiler-probe.h: moved pass_compiler_probe from here to tree-pass.h * compiler-probe.c: pass_compiler_probe is a gimple_opt_pass. 2008-03-18 Basile Starynkevitch * melt-cc-script.prot: added generation of date & md5sum. 2008-03-18 Basile Starynkevitch * melt-cc-script.prot: new file. * Makefile.in: added install-melt-cc-script and built-melt-cc-script targets 2008-03-17 Basile Starynkevitch * basilys.h (basilys_finalize, basilys_tempdir_path): added declarations. * basilys.c : added inclusion of md5.h & filenames.h. (basilys_tempdir_path, load_checked_dylib) new functions. (basilysgc_compile_dyn) scan various directories for generated C source file and dynamically loaded stuff. * toplevel.c (toplev_main): added declaration and call to basilys_finalize. * common.opt: added -fbasilys-arg= -fbasilys-command= -fbasilys-compile-script= -fbasilys-dynlibdir= -fbasilys-tempdir= options 2008-03-16 Basile Starynkevitch new changelog for the Melt Branch * Makefile.in: added melt_source_dir melt_generated_dir melt_dynlib_dir melt_compile_script & corrected typos. (basilys.o) transmit them as C constants. * common.opt: added -fbasilys-compile-script= option. * basilys.c (compile_to_dyl): uses melt_compile_script. added melt_source_dir melt_generated_dir melt_dynlib_dir melt_compile_script as constants. Better comments. still incomplete. 2008-03-11 Basile Starynkevitch merged with trunk r133107 2008-03-11 Basile Starynkevitch * Makefile.in: removed compile-basilys-defs completely. Corrected typ in comment for run-basilys-deps. 2008-03-05 Basile Starynkevitch * Makefile.in: added targets for installation of melt includes. 2008-03-02 Basile Starynkevitch merged with trunk 132817 2008-02-26 Basile Starynkevitch * Makefile.in: adding melt-private-include/ thing * melt/ : subdirectory moved here (was in ..) 2008-02-26 Basile Starynkevitch MELT branch merged with trunk r132671 Merged revisions 132452-132671 via svnmerge from svn+ssh://bstarynk@gcc.gnu.org/svn/gcc/trunk * toplev.c (toplev_main): comprobe_finish() called before the print_ignored_options() 2008-02-19 Basile Starynkevitch MELT branch merged with trunk. removed debug hack in basilys.c; added code to be able to init with a *.so in basilys.c. added our (forgotten) Makefile.in and most of my (Basile Starynkevitch's) files Created MELT branch. This gcc/ChangeLog.melt added afterwards.