<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def toolchain_spec_compile_entries( toolchain, spec, entries, process_name, overwrite_log=None):
 """ The standardized Toolchain Spec Entries compile function This function accepts a toolchain instance, the spec to be operated with and the entries provided for the process name. The standard flow is to deferr the actual processing to the toolchain method `compile_{process_name}_entry` for each entry in the entries list. The generic compile entries method for the compile process. Arguments: toolchain The toolchain to be used for the operation. spec The spec to be operated with. entries The entries for the source. process_name The name of the specific compile process of the provided toolchain. overwrite_log A callable that will accept a 4-tuple of suffix, key, original and new value, if monitoring of overwritten values are required. suffix is derived from the modpath_suffix or targetpath_suffix of the toolchain instance, key is the key on any of the keys on either of those mappings, original and new are the original and the replacement value. """


    processor = getattr(toolchain, 'compile_%s_entry' % process_name)
    modpath_logger = (
        partial(overwrite_log, toolchain.modpath_suffix)
        if callable(overwrite_log) else None)
    targetpath_logger = (
        partial(overwrite_log, toolchain.targetpath_suffix)
        if callable(overwrite_log) else None)
    return process_compile_entries(
        processor, spec, entries, modpath_logger, targetpath_logger)