Subject: Re: publishing
From: Craig Chambers (chambers@cs.washington.edu)
Date: Sun Nov 12 2000 - 20:01:49 PST
I don't know why my publish isn't setting the other read permission on ,v files,
while you all are. Maybe I have a umask set that shouldn't be. But in any
case, I've made all the ,v files world-readable.
I don't know what the segfault problem is. Are you trying to reuse an old
snapshot (.db file)? If so, are you getting any warnings that it might be out
of date (missing fields, etc.)? If so, then you can get a segfault by trying to
use an out-of-date checkpoint. Just recompile from scratch to build a new
checkpoint.
If that's not the problem, then I don't know what's up. My version works. It's
possible that some change you made is incompatible with my changes, and they're
clashing.
BTW, segfault either means you're trying to reuse a checkpoint after you were
warned it might not work, or you got an infinite recursion leading to stack
overflow. For the latter, I try to see where things are hanging, and hit ^C
just before where I would get the segfault to enter the Vortex debugger, and
dump the stack to see where the infinite recursion is.
I've been thinking recently that some Vortex debugger support to check if the
stack is getting deep, and take a breakpoint whenever the stack is e.g. more
than 1000 frames deep, or some number of KB deep.
-- Craig
Sorin Lerner wrote:
>
> I updated my copy of the repository, and I'm now getting a segfault when
> compiling even the smallest wil file. Todd seems to have hit the same
> problem. I tried looking at the stack trace of the core dump with gdb,
> but I didn't see any symbols.
>
> Sorin
>
> Craig Chambers wrote:
>
> > I'm publishing a bunch of useful improvements to Whirlwind.
> >
> > *) I reorganized some of the graph visit code to allow multiple kinds
> > of visits, each of which can be run in parallel with other visit kinds
> > (but not with other instances of the same kind on the same IR), as
> > well as a general visit kind that can be run in parallel arbitrarily.
> > I've changed the printing visits to be a different kind than the
> > others, so that you can print the graph while you're in the middle of
> > some other visit, e.g. during an analysis.
> >
> > *) I implemented dot-based graph visualization. There are three new
> > options, show_dot_cfgs, show_dot_dfgs, and show_dot_cdfgs, which if
> > turned on will ask you whether you want to display the graph. Try it
> > out. It has already revealed that my dataflow graph building
> > algorithm breaks for references to global variables.... (Perhaps just
> > those defined textually in a different file. I think the fix to this
> > and other known DFG problems is to leave in variable references as
> > root DFG nodes whenever there's no definition computed for the
> > variable. (This may still not work in the face of conditional local
> > assignments to a variable, but it should work a lot better.)) I
> > haven't tested this exhaustively, but it at least works to some
> > extent. Let me know if you find problems.
> >
> > *) I reorganized how nested IR nodes are compiled. Now, each IR is
> > compiled to completion, running all the various passes, before
> > proceeding on to any nested IRs. This makes each pass easier to
> > handle, since it doesn't recursively perform that pass on all nested
> > IRs. It also makes the resulting graph visualizations easier to deal
> > with. It also made it easier to support processing the global IRs
> > separately from all the nested IRs.
> >
> > *) IRs now explicitly store their nested IRs, and some existing code
> > has been rewritten to explicitly use these lists.
> >
> > *) I factored out the scope-building code from the name-resolution
> > code.
> >
> > *) I spent a lot of time rationalizing the compress & invalidate code.
> >
> > *) I wrote some code to automatically indent phase time reporting
> > within their enclosing phases, but it's not well tested.
> >
> > *) I fixed what I think is a bug with analysis of replacement graphs
> > that have dangling outgoing edges. The framework now sets their edge
> > info explicitly to the analysis's top info.
> >
> > *) I explicitly insert Enter and ExitScopeNodes around the top-level
> > statements, so they don't need to be special-cased in the codegen
> > analysis. (Todd, you should copy my simplifications into your code.)
> >
> > *) I did some reformatting of the WIL parser code, just so it conforms
> > more to "standard" (i.e. "my") Cecil style.
> >
> > *) I defined standard print[_recursively] and verify[_recursively]
> > operations on slices, which just forward to the preexisting
> > slice-specific functions.
> >
> > *) I added some more comments. :)
> >
> > There's a known bug in this publish (and probably in previous systems
> > too): if you modify/touch a file and then try to recompile, the
> > incremental reconstruction of the global scope info crashes with
> > duplicate declaration errors. I have to do some work to handle
> > incremental rebuilds after programming changes. For now, Just Say No
> > (to input program changes). Or do "invalidate" before doing any
> > graphs/typecheck/make operation where the program has changed.
> >
> > -- Craig
This archive was generated by hypermail 2b25 : Sun Nov 12 2000 - 20:01:50 PST