Nick Coghlan added the comment:

The suppression flag rings alarm bells for me, as does the fact that all the 
arguments are optional. Do you remember the rationale for allowing the 
marshalling errors to propagate rather than falling back to loading from 
source? It seems weird that a truncated read in the first 12 bytes means to 
fall back to compiling from source, but truncation after that is a user visible 
error. Allowing those exceptions to be suppressed as well would simplify things 
a fair bit.

Regardless, looking at the full patch in context on a real computer (rather 
than through my phone), suggests to me there needs to be *two* private static 
methods on _LoaderBasics._parse_bytecode_file:

    _validate_bytecode_header
    _unmarshal_code

SourcelessLoader.get_code would just call these directly, while 
SourceLoader.parse_cache_contents would suppress exceptions from the first one.

I'll put together a patch illustrating this approach.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue15031>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to