All of lore.kernel.org
 help / color / mirror / Atom feed
* lxr.xensource.com-lxr
@ 2005-04-01 16:07 ted
  2005-04-01 21:14 ` lxr.xensource.com-lxr James Bulpin
  0 siblings, 1 reply; 4+ messages in thread
From: ted @ 2005-04-01 16:07 UTC (permalink / raw)
  To: xen-devel

Re: http://lxr.xensource.com/lxr/

This index to Xen source code was apparently loaded into a general 
hypertext cross-referencing tool. This tool was apparently written in perl..

" The Linux Cross-Reference project is the testbed application of a 
general hypertext cross-referencing tool. (Or the other way around.)

The main goal of the project is to create a versatile cross-referencing 
tool for relatively large code repositories. The project is based on 
stock web technology, so the codeview client may be chosen from the full 
range of available web browsers. On the server side, any Unix-based web 
server with cgi-script capability should do nicely.'

Some "reservations" were expressed by the authors regarding the display 
of "source code".  

I notice the entire source code is numbered and one can reference that 
code by number and module being extensively cross-referenced.  What 
exactly are the "reservations" expressed -- something to do with "sloppy 
labelling" being less than a "full code parser".

Do the Xen developers make frequent use of this cross reference tool?
Where would I obtain the perl code for this general hypertext 
cross-referencing tool?
Would it not be possible to create a hierarchical tree structure of Xen 
by parsing this display presented by the general hypertext 
cross-referencing tool???

Thanks -- Ted

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: lxr.xensource.com-lxr
  2005-04-01 16:07 lxr.xensource.com-lxr ted
@ 2005-04-01 21:14 ` James Bulpin
  2005-04-01 22:07   ` lxr.xensource.com-lxr Ted Hilts
  0 siblings, 1 reply; 4+ messages in thread
From: James Bulpin @ 2005-04-01 21:14 UTC (permalink / raw)
  To: ted; +Cc: xen-devel

On Fri, 1 Apr 2005, ted wrote:

:>Where would I obtain the perl code for this general hypertext
:>cross-referencing tool?

We use LXR version 0.3. This can still be found at http://lxr.linux.no/
(which is where your quote came from). There is a newer version available
that uses a database backend for the xref database. I think the "general
hypertext cross-referencing tool" refers to libraries within the LXR
package rather than a separate tool.

:>Would it not be possible to create a hierarchical tree structure of Xen
:>by parsing this display presented by the general hypertext
:>cross-referencing tool???

Isn't that what LXR does - or have I missed the point?

Regards,

James

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: lxr.xensource.com-lxr
  2005-04-01 21:14 ` lxr.xensource.com-lxr James Bulpin
@ 2005-04-01 22:07   ` Ted Hilts
  2005-04-01 22:52     ` lxr.xensource.com-lxr James Bulpin
  0 siblings, 1 reply; 4+ messages in thread
From: Ted Hilts @ 2005-04-01 22:07 UTC (permalink / raw)
  To: James Bulpin; +Cc: xen-devel

James:

Kind of you to reply James.

Several months ago I queried the list for a hierarchical tree of 
functions associated with the execution of Xen and was told there was no 
such thing.  

Cross Referencing is nice but is not a hierarchical tree like display of 
 the dependent order of execution of all functions.  Essentially there 
is the "main" module which calls subordinate modules which in turn call 
their subordinante modules and the entire scenario can be graphically 
displayed  in connecting lines to box like structures that identify the 
function called and it's purpose and data passed back and forth if any. 
 The graphic is most often layered with the top layer being the main 
routine, the next layer being the routines called by the main routine, 
the next layer down  has the routines called by the second layer and so 
on.  This graphic gives a good idea of the software architecturee and is 
invaluable if there are parallel streams of execution.  Often, software 
development builds stubs for unwritten code and works from the top down 
according to a design plan in the graphical form I have explained.

There are many brilliant code hackers that only need a starting point in 
the code and they are away.  They build (compile and link) the code with 
a debugger, make notes, and change (add, delete, modify) on that basis 
until they get the required results from their testing.  There is no 
question they are good at this as they generally live and breath every 
day doing this. But these sort in general may never have a comprehensive 
or top level down appreciation for the code or it's design. And that is 
the exact reason why such a graphic as explained above is needed.  A 
"data dictionary" defining words and processes is also of great benefit. 
As soon as those brilliant hackers disappear into the land of 
opportunity and advancement no one understands the code or the overall 
integration of functionality because there is no such graphic.  The Open 
and sometimes Free Software development would really benefit from this 
kind of documentation.  Then , just maybe, people like me could jump in 
and really help.  My experience in IT for many years (now retired) has 
taught me that there is nothing worse than jumping into a development 
group of these kind of hackers that know "their" way around the code 
"blind-folded" but cannot or will not pass that knowledge on to the 
"newbie" in the group in a documented way that facilitates rapid catchup 
to the other members in the group.

I'm not accusing anyone of anything in the Xen development group -- I am 
simply answering your question "Isn't that what LXR does - or have I 
missed the point?"  You tell me as you obviously know more about LXR 
than I currently know.  I have been away from software development now 
for many years and things have radically changed so I am still in the 
catchup mode and have to ask questions which are at times very 
elementary like my question about GRUB.  I used to code my brains out in 
C and worked with other languages, Operating Systems, SQL and databases 
and that sort of thing.  Now there is python matured, java this and java 
that, PHP in wide use, and so on.  For another example, MySQL apparently 
has matured into a professional database technology where before I 
retired it was a laughing matter to use MySQL.  So I have a lot of 
catching up to do and I'm on my way.

Thanks again for your email, posted in [Xen-devel] because it is a 
development issue.

Thanks, Ted


James Bulpin wrote:

>On Fri, 1 Apr 2005, ted wrote:
>
>:>Where would I obtain the perl code for this general hypertext
>:>cross-referencing tool?
>
>We use LXR version 0.3. This can still be found at http://lxr.linux.no/
>(which is where your quote came from). There is a newer version available
>that uses a database backend for the xref database. I think the "general
>hypertext cross-referencing tool" refers to libraries within the LXR
>package rather than a separate tool.
>
>:>Would it not be possible to create a hierarchical tree structure of Xen
>:>by parsing this display presented by the general hypertext
>:>cross-referencing tool???
>
>Isn't that what LXR does - or have I missed the point?
>
>Regards,
>
>James
>
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@lists.xensource.com
>http://lists.xensource.com/xen-devel
>
>  
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: lxr.xensource.com-lxr
  2005-04-01 22:07   ` lxr.xensource.com-lxr Ted Hilts
@ 2005-04-01 22:52     ` James Bulpin
  0 siblings, 0 replies; 4+ messages in thread
From: James Bulpin @ 2005-04-01 22:52 UTC (permalink / raw)
  To: Ted Hilts; +Cc: xen-devel

On Fri, 1 Apr 2005, Ted Hilts wrote:

:>Cross Referencing is nice but is not a hierarchical tree like display of
:> the dependent order of execution of all functions.  Essentially there
:>is the "main" module which calls subordinate modules which in turn call
:>their subordinante modules and the entire scenario can be graphically
:>displayed  in connecting lines to box like structures that identify the
:>function called and it's purpose and data passed back and forth if any.

Ah, a graphical representation of the call graph?

:> The graphic is most often layered with the top layer being the main
:>routine, the next layer being the routines called by the main routine,
:>the next layer down  has the routines called by the second layer and so
:>on.  This graphic gives a good idea of the software architecturee and is
:>invaluable if there are parallel streams of execution.  Often, software
:>development builds stubs for unwritten code and works from the top down
:>according to a design plan in the graphical form I have explained.

I suspect that for such a graphic to be truly useful it would have to be
(at least partially) manually created. The event driven nature of an
system software is such that the call graph is not a nice, clean tree of
multiple separate layers. An additional problem is that static analysis of
the code would not give the full call graph because of things like
dynamically registered handlers, callbacks etc..

So I guess there are two possible documents that fit what you are looking
for:

 - a high level architecture overview - we generally rely on the papers
   written about Xen for this
 - a low level call graph representation, automatically generated, i.e.
   LXR++

I'm happy to take suggestions for tools for the latter which we may be
able to host in a similar way to the existing LXR.

:>I am simply answering your question "Isn't that what LXR does - or have
:>I missed the point?"

Thanks. I hadn't quite unerstood what you meant "tree" - I assumed
directory tree.

James

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-04-01 22:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-04-01 16:07 lxr.xensource.com-lxr ted
2005-04-01 21:14 ` lxr.xensource.com-lxr James Bulpin
2005-04-01 22:07   ` lxr.xensource.com-lxr Ted Hilts
2005-04-01 22:52     ` lxr.xensource.com-lxr James Bulpin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.