<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:#000000"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 28, 2017 at 6:53 PM, Colin Putney <span dir="ltr"><<a href="mailto:colin@wiresong.com" target="_blank">colin@wiresong.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Wed, Jun 28, 2017 at 4:15 AM, Bert Freudenberg <span dir="ltr"><<a href="mailto:bert@freudenbergs.de" target="_blank">bert@freudenbergs.de</a>></span> wrote:<br><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><span class="m_-157296892710461214gmail-"><div style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">​Because MC has no concept of "files". Each repository can have a different representation for how it stores a version (e.g. MCDictionaryRepository is literally just a dictionary of MCVersions). That's why an MCVersion is created by an MCReader when loading from a repo, and writing to a repo invokes that repo's MCWriter.</div></span></div></blockquote><div><br></div></span><div>Agreed. How (and whether) MCVersions are serialized is an implementation detail of the repository implementation. Early on we expected more diversity of repository implementations - Magma, Gemstone, peer images etc. There was even a transactional store that got junked shortly before Avi started showing people what we were working on. In practice we seem to have settled on http and file repositories, so there does seem to be an opportunity for optimization. However, even if we make that optimization, extensions like TweakMC shouldn't rely on it to be able to function correctly.</div><span class="HOEnZb"><font color="#888888"><div></div></font></span></div></div></div></blockquote></div><br></div><div class="gmail_extra"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">​Colin,</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">can you imagine how to fit "unknown" definitions into the design? That is, definitions that are not "understood" by this version of MC, but would still be preserved somehow, and stored with a new version. </div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,0)">- Bert -​</div><br></div><div class="gmail_extra"><br></div></div>