PreviousUpNext

15.3.104  src/lib/compiler/back/low/heapcleaner-safety/codetemps-with-heapcleaner-info.api

## codetemps-with-heapcleaner-info.api
#
# Annotating codetemps with heapcleaner type information. 
#
# This appears to be another project started but never finished;
# activation is controlled by the always-FALSE
#
#     lowhalf_track_heapcleaner_type_info
#
# flag in
#
#     src/lib/compiler/back/low/main/main/translate-nextcode-to-treecode-g.pkg
#
# The other relevant files are:
#
#     src/lib/compiler/back/low/heapcleaner-safety/per-codetemp-heapcleaner-info-template.api
#     src/lib/compiler/back/low/main/nextcode/per-codetemp-heapcleaner-info.api
#     src/lib/compiler/back/low/main/nextcode/per-codetemp-heapcleaner-info.pkg
#     src/lib/compiler/back/low/heapcleaner-safety/codetemps-with-heapcleaner-info-g.pkg

# Compiled by:
#     src/lib/compiler/back/low/lib/lowhalf.lib



stipulate
    package nt  =  note;                                                # note                                          is from   src/lib/src/note.pkg
    package rkj =  registerkinds_junk;                                  # registerkinds_junk                            is from   src/lib/compiler/back/low/code/registerkinds-junk.pkg
herein

    # This api is implemented in:
    #
    #     src/lib/compiler/back/low/heapcleaner-safety/codetemps-with-heapcleaner-info-g.pkg
    #
    api Codetemps_With_Heapcleaner_Info {
        #
        package rgk:    Registerkinds;                                  # Registerkinds                                 is from   src/lib/compiler/back/low/code/registerkinds.api
        package chi:    Per_Codetemp_Heapcleaner_Info_Template;         # Per_Codetemp_Heapcleaner_Info_Template        is from   src/lib/compiler/back/low/heapcleaner-safety/per-codetemp-heapcleaner-info-template.api

        # Generate a codetemp and update the
        # heapcleanerinfo at the same time:
        #
        make_codetemp_info_of_kind:      rkj::Registerkind -> chi::Heapcleaner_Info -> rkj::Codetemp_Info;                      # rkj::Registerkind is typically rgk::INT_REGISTER or rkj::FLOAT_REGISTER

        set_heapcleaner_info_on_codetemp_info:          (rkj::Codetemp_Info, chi::Heapcleaner_Info) -> Void;
        get_heapcleaner_info_from_codetemp_info:         rkj::Codetemp_Info -> chi::Heapcleaner_Info;

        codetemp_info_to_string:  rkj::Codetemp_Info -> String;

        heapcleaner_liveout:  nt::Notekind( List( (rkj::Codetemp_Info, chi::Heapcleaner_Info) ) );
    };
end;


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext