[M3devel] release status [was something else]
Tony Hosking
hosking at cs.purdue.edu
Tue Mar 16 16:21:41 CET 2010
Ah, yes, one issue about bringing over m3front changes is that it also includes the atomics support. I don't think we want to do this in this release.
So, this argues that we hold off on releasing the NT386 64-bit LONGINT support for now.
Thoughts?
On 16 Mar 2010, at 07:21, Jay K wrote:
> Responding to just parts:
>
>
> > > - NT386 has no 64bit longint in release branch. Partly the point of
> > > this question.
> >
> > I thought Randy was going to do some more testing. If the m3back LONGINT
> > changes don't break anything else, I'd be for just merging them to the
>
>
> It is a big change.
> It is dependent on TInt/TWord changes, though that is flexible.
> I could copy and rename them "M3BackInt".
> Or we could take them -- they go with m3front changes.
>
>
> Or we could even do a little experiment: The reason I use TInt/TWord
> is to get 64bit integers portably to 32bit hosts. Previously INTEGER/Word was used.
> I could try using LONGINT/Long instead.
>
>
> However it is still a large change. There are some other unrelated changes, nothing
> too significant on its own (I always say), but it adds up:
> It isn't messed up, but it is maybe "beyond recognition" compared to the previous.
> (as was recently suggested)
>
> some renaming for, I claim, clarity
>
> some small optimizations (e.g. using shorter encodings sometimes, like
> a byte instead of a dword for constants in instructions, or
> equivalent shorter constructs like or reg,-1 instead of mov reg,-1),
>
> atomics support, actually in very good shape now, but could use more testing and optimization
>
> "rewrite" of insert/extract to no longer use the tables, I've always
> been bothered by those tables
>
> "rewrite" of set_singleton/set_member to be *much* smaller/faster
> set_singleton is just the bts instruction, instead of a function call
> set_member is just bt instruction plus carry flag extraction, instead of a function call
>
> cleanup of the way epilogues are sometimes "patched in"
>
> Only save/restore non-volatile registers that are actually used.
>
> Probably other stuff I'm forgetting.
>
> There's also small related changes in m3objfile: support for outputing more than 4
> bytes at a time, support for "backing up".
> Some extra commenting.
> Some formating consistency (then always at end of line, else always on its own line).
> "Namespace flattening" (from foo import a,b,c).
>
> I need to test 64bit subrange checking.
> The code is a little fishy in that it deals with single registers.
> It is an optimization and could probably just be pessimized.
> Or maybe easy to fix.
>
>
> There's also the question as to if the TInt use is all subtely wrong as Tony seems to say.
> I don't understand yet.
> It *seems* to work well and it didn't previously pay much attention to types, it
> just used INTEGER everywhere.
>
>
> The changes are overall large.
> Diff the two trees, just in m3back.
>
>
> I actually think my earlier question might be the way to go to dramatically
> increase testing/coverage/confidence -- cm3 -test64 appends "_TEST64"
> to the build dir name (maybe maybe not the target name) and sets
> WORD_SIZE = "64" and BITSIZE(INTEGER) and ADDRESS to 64.
> I'd even consider something "simpler" where I actually create another complete
> target, I386_NT_TEST64, including the various entries in m3makefiles, Target.i3, etc.
>
>
> Maybe I can just try this locally with a one line change in Target.m3 though.
> I'll try that first.
>
>
> > branch and see if the builds and tests succeed. Of course testing with
> > some other real applications would be great, but we must not delay
> > endlessly for that.
>
>
> I have to accept releasing with 32bit LONGINT on NT386, due to the large
> overall change.
> Hopefully we arrange for more frequent releases somehow.
>
>
>
> > > - Should maybe improve build/packaging to get NT386-VC80.msi,
> >
> > I'd rather not touch the NT386 setup on our virtual machine;
>
>
> I probably won't leave a machine running 24/7.
> Can I just run the automation manually?
> Recall Cygwin sshd didn't work adequately at the time.
> Well, yes, I can always run whatever automation. Somewhat
> it is a matter of principle of going through the more official more automated
> process vs. a less official, more error prone, less trusted manual process.
>
>
> Installing additional toolsets on the VM really should work ok, without breaking
> the existing. Can you try?
>
>
> Maybe this: You create one .msi using the existing process. We'll make
> sure it is stamped "-VC90" or whatnot.
> I'll build a whole bunch of others, and they be available as "alternates",
> and we'll exclude the one corresponding to yours?
> You provide e.g. cm3-5.8-I386_NT-VC80.msi and I'll provide
> cm3-5.8-I386_NT-VC20.msi
> cm3-5.8-I386_NT-VC40.msi
> cm3-5.8-I386_NT-VC41.msi
> cm3-5.8-I386_NT-VC42.msi
> cm3-5.8-I386_NT-VC50.msi
> cm3-5.8-I386_NT-VC60.msi
> cm3-5.8-I386_NT-VC70.msi
> cm3-5.8-I386_NT-VC71.msi
> <deliberate gap here>
> cm3-5.8-I386_NT-VC90.msi
>
>
> I realize some of these are quite old and out of use, but it's pretty simple to produce
> them all.
>
>
> > > - I believe there is "new" divergence in m3front between head and
> > Is this relevant for the release? Or can we just ignore it?
>
> I'd have to look, or Tony should say.
> To some extent it is tied with if we take NT386 64bit longint.
>
>
> > msi
> > We still need to add them to the WWW export/display, don't we?
>
>
> Definitely.
>
>
> Sorry of this isn't edited well..took a while already...
>
>
> - Jay
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20100316/bb4e5e62/attachment-0002.html>
More information about the M3devel
mailing list