Re: [Mono-list] detecting mono or microsoft compiler with preprocessor

2004-12-03 Thread Peter Williams
On Fri, 2004-12-03 at 17:44 +0100, Fabien Meghazi wrote:
> Hi all,
> 
> Is there a #define preprocessor definition that would allow to use
> "if" "else" preprocessor statements for conditionnal compiling for
> mono and microsoft compiler ?

As Peter Bartok said, there is, but you should probably try to avoid
using that fact. You can compile an assembly with MCS and run it on the
Microsoft runtime, or vice versa, so which compiler is being used
doesn't really tell you about the runtime. And even if it did, it's
preferable to have your assembly be runtime-agnostic. (Although of
course sometimes this isn't possible.)

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Problem with make dist

2004-09-13 Thread Peter Williams
Hi Neale,

On Mon, 2004-09-13 at 12:20, [EMAIL PROTECTED] wrote:
> make[2]: Entering directory `/home/usanefe/Mono/mono/runtime/net_1_1'
> make[2]: *** No rule to make target `Accessibility.dll.mdb', needed by `distdir'.  
> Stop.
> make[2]: Leaving directory `/home/usanefe/Mono/mono/runtime/net_1_1'
> make[1]: *** [distdir] Error 1
> make[1]: Leaving directory `/home/usanefe/Mono/mono/runtime'
> make: *** [distdir] Error 1

Make wants the file Accessibility.dll.mdb to exist, but it doesn't know
how to generate it. It looks like you need to expand the rule on line 85
to apply to more targets. Try changing it to

$(EXTRA_DIST):
test -f $(top_srcdir)/../mcs/class/lib/default/$@


Then you'll get the .mdb files symlinked into the tree as well as the
DLL's.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] runtime/Makefile.am

2004-09-13 Thread Peter Williams
No big deal, but you have two entries for wsdl2.exe.mdb.

Peter

On Mon, 2004-09-13 at 11:06, [EMAIL PROTECTED] wrote:
> Hi, 
>  I had problems building mono cleanly owing to missing items in runtime/Makefile.am. 
> The following patch fixes things. Before I commit I wanted to run it by the group...
> 
> --- Makefile.am 9 Sep 2004 20:29:55 -   1.83
> +++ Makefile.am 13 Sep 2004 13:53:23 -
> @@ -97,10 +97,17 @@
> cilc.exe.mdb)d=tools/cilc   ;; \
> xsd.exe) d=tools/mono-xsd   ;; \
> xsd.exe.mdb) d=tools/mono-xsd   ;; \
> wsdl.exe)d=tools/wsdl   ;; \
> wsdl.exe.mdb)d=tools/wsdl   ;; \
> +   wsdl2.exe)   d=tools/wsdl   ;; \
> +   wsdl2.exe.mdb)   d=tools/wsdl   ;; \
> +   mono-find-provides.exe)  d=tools/mono-rpm-helpers/mono-find-provides ;; \
> +   mono-find-provides.exe.mdb)  d=tools/mono-rpm-helpers/mono-find-provides ;; \
> +   mono-find-requires.exe)  d=tools/mono-rpm-helpers/mono-find-requires ;; \
> +   mono-find-requires.exe.mdb)  d=tools/mono-rpm-helpers/mono-find-requires ;; \
> +   wsdl2.exe.mdb)d=tools/wsdl   ;; \
> genxs.exe)   d=tools/genxs  ;; \
> genxs.exe.mdb)   d=tools/genxs  ;; \
> al.exe)  d=tools/al ;; \
> al.exe.mdb)  d=tools/al ;; \
> disco.exe)   d=tools/disco  ;; \
> ___
> Mono-list maillist  -  [EMAIL PROTECTED]
> http://lists.ximian.com/mailman/listinfo/mono-list
-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] glade signal connections

2004-08-30 Thread Peter Williams
On Mon, 2004-08-30 at 23:23, Rob Brown-Bayliss wrote:
> how would I do this in C#?  eg, of a user clicks on a line in a list
> view have a class that handles the list view events...

Do you just mean that you want to manually connect to a signal? Gtk#
wraps signals as events and you can treat them pretty much as you would
any other event:

Gtk.Window window = whatever ();
window.DestroyEvent += new DestroyEventHandler (myfunction);

Or am I not understanding your question?

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] monodoc bails, says can't find browser.exe

2004-08-30 Thread Peter Williams
On Mon, 2004-08-30 at 16:41, billg wrote:
> You're right.  I added it with gacutil.  Monodoc launches, but
> immediately crashes with an unhandled exception error.  Sigh... It seems
> to be upset at gtkhtml.  I'm using libgtkhtml-3.1 I built from source
> at ftp.gnome.org. Is that the appropriate version?

My gtkhtml-sharp.dll wants libgtkhtml-3.0 instead. (I found this out by
looking at the  entry in
/usr/lib/mono/gac/gtkhtml-sharp/[mess]gtkhtml-sharp.dll.config).

I don't know if 3.0 is binary-compatible with 3.1 -- I guess you can try
editing the file and seeing if it breaks or not.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Detecting the calling assembly

2004-08-30 Thread Peter Williams
On Mon, 2004-08-30 at 16:17, Matthew Metnetsky wrote:
> Is there a way to find out what assembly is calling a type's method?

System.Reflection.Assembly.GetCallingAssembly () 

:-)

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] popt

2004-08-26 Thread Peter Williams
On Thu, 2004-08-26 at 23:36, Marcus wrote:
> I'm not sure if Mono.GetOptions is compiled by default. If you're building 
> from source, you can do a "make" in Mono.GetOptions directory. The resulting 
> assembly to be installed is Mono.GetOptions.dll.

Yes, it is, there's probably just a problem with a /r: flag or a using
declaration or something. Look at /mcs/mbas/driver.cs for an example of
how to use GetOptions, and make sure there's a /r:Mono.GetOptions.dll.
Also see /mcs/mbas/AssemblyInfo.cs; there are assembly-level custom
attributes that GetOptions uses to generate your help text.

I find GetOptions to be very convenient, so I'd encourage using it.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Using qt#

2004-07-07 Thread Peter Williams
Fooling with MONO_PATH is one way to get this to work, but I think the
preferred solution is to give the /r: option a full path name. That is,

mcs /r:/usr/local/lib/Qt.dll

or whatever. This is, for example, what the gtk-sharp pkgconfig files
do. This method means path problems don't come up and multiple versions
of the same library are handled sanely.

Peter

On Wed, 2004-07-07 at 21:28, Marcus wrote:
> By the way, you might get more help on the Qt# mailing list, although obvious 
> I read both.
> 
> Does Qt.dll exist in /usr/local/lib? Is your version of Mono configured to 
> look in /usr/local/lib or just /usr/lib? If Mono is installed in the /usr 
> prefix, I'm not sure whether it will look in /usr/local/lib by default. You 
> can use the MONO_PATH to set where the runtime looks for libs. See the mono 
> manpage.
> 
> Marcus
> 
> 
> On Wednesday 07 July 2004 5:59 pm, Paul wrote:
> > Hi,
> >
> > I've compiled qt# from sourceforge and installed it into /usr/local/lib.
> > How do I link it to source code?
> >
> > mcs -r: Qt just gives that Qt can't be found.
> ___
> Mono-list maillist  -  [EMAIL PROTECTED]
> http://lists.ximian.com/mailman/listinfo/mono-list
-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] dash in file name - won't compile

2004-05-19 Thread Peter Williams
On Wed, 2004-05-19 at 22:20, Fred Blaise wrote:
> If I however rename the class and file to not have the '-', it works:

The class name is the issue. You'll note that the MCS error is pointing
you at line 6 of your file -- this is probably something like:

class gget-sharp {

Anyway, dashes are not legal in identifiers in C# (same rules as in C
apply, more or less.)

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] GNU Readline style input for mono

2004-05-18 Thread Peter Williams
On Tue, 2004-05-18 at 21:24, David Mitchell wrote:
> Is there currently any easy way to have readline style input in a .Net 
> console application under mono? So things like being able to press the 
> up key to recall history and inline editing.
> 
> Thanks

I believe the mono debugger (CVS module debugger) has a binding to
readline. Note that the debugger itself is basically experimental, but
the readline binding should be ok.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


RE: [Mono-list] Re: [Mono-docs-list] Mono 1.0 quickly approaching.

2004-04-27 Thread Peter Williams
On Tue, 2004-04-27 at 18:12, Dan wrote:
> Miguel,
> 
> My mistake, I saw this on the bottom of the
> http://www.go-mono.com/classlib-doc.html page:

The terminology is a little confusing: the documentation viewing
program, monodoc, is called the "browser" for short. That's what the
statement is referring to, not a web browser.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] SIGILL in I18N on OSX

2004-03-24 Thread Peter Williams
On Wed, 2004-03-24 at 14:57, Robert Shade wrote:
> No
> 
> rob

Ok, have you tried changing the definition of RUNTIME in
build/config-default.make? Strange that the config.make change doesn't
cut it; maybe that needs RUNTIME := mint to get it to stick.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] SIGILL in I18N on OSX

2004-03-24 Thread Peter Williams
On Wed, 2004-03-24 at 11:29, Robert Shade wrote:
> I have not been able to figure out how to change $(RUNTIME) to resolve 
> to mint, thus the change.

Putting

RUNTIME = mint 

in build/config.make doesn't work?

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] MacOS packages.

2004-03-02 Thread Peter Williams
On Tue, 2004-03-02 at 16:58, Andy Satori wrote:
> The problem with the second is that as far as I can tell, it would 
> require XCode projects to build the framework, and all the associated 
> dylibs.  creating that project is going to be time consuming, and it 
> will require updating to be kept in sync with the ./configure & make 
> process.

Can you explain why this is? I'm not at all familiar with OS X
development, but you can accomplish a lot with makefile mojo ...

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Docs as plain HTML

2004-02-12 Thread Peter Williams
On Thu, 2004-02-12 at 16:51, John Luke wrote:
> Assuming you were asking this because you can't/don't want to use
> monodoc. It would be insanely easy for someone to write a small SWF (or
> any other toolkit) frontend for monodoc using monodoc.dll.  Perhaps when
> the mono SWF implementation begins working again someone could do that
> as a test.  Also, you could use the XSL files (ex.
> monodoc/browser/mono-ecma.xsl) to transform all the XML files to HTML
> with a script.

Well, *if* monodoc.exe is an option, there's some way to get it to spit
out HTML -- see the 'mod' shell script that it installs (which is sort
of like 'man' for monodoc pages.)

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] A Build Profiles Issue

2004-01-07 Thread Peter Williams
Hi Pablo,

On Wed, 2004-01-07 at 00:44, Pablo Fischer wrote:
> And then I build it with
> 
> $ make PROFILE=debian
> 
> And obvious, it stops, why? don't know..  but I found that if I export
> every variable it start compiling some libs but then it stops again
> giving me an error that It can not find corlib.dll (and corlib is in the
> mono path!).
> 
> Also, I was looking the other profiles and any of them export their
> variables.

Have you tried adding 'export' statements to your profile?

export MONO_PATH
export PATH
export BOOTSTRAP_MCS


That causes make to set the variable for sub-makes and set it in the
environment, which is what you need for the PATH variables.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Mono Enviroment Variables

2004-01-05 Thread Peter Williams
Hi,

On Mon, 2004-01-05 at 17:06, Pablo Fischer wrote:
> Hi!
> 
> A few days ago I asked how to compile mcs-0.28 with a different mcs.exe
> version, and hopefully I got answers :).
> 
> Now, I have another problem, one thing is to tell the mcs.exe and the
> other is to tell where the libmono lib (version .28) is.
> 
> So, somebody knows all the enviroment variables that use MCS?.

(Sorry for not responding earlier, my email was down.) Maybe
LD_LIBRARY_PATH is all you need? Or MONO_PATH ... I don't have a good
sense of of what you're trying to achieve, but those are places to
start.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Mono Debugger Problem

2004-01-03 Thread Peter Williams
On Sat, 2004-01-03 at 16:27, Nathanael Obermayer wrote:
> Hello,
> 
> i'm trying to install the mono-debugger.
> Unfortunately the new version (0.5) doesn't include the gui-version (why?),
> so i tried to install the 0.4 version.
> 
> On "make" i get this error:

I'm pretty sure that the gui version of the debugger was disabled
because it is not up-to-date with the newest Gtk# releases. The debugger
is very unstable and still not finished; I would not plan on being able
to use the GUI any time soon. (Of course, the more help Martin gets, the
faster it goes ... :-)

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Compiling mcs with other C# Compiler

2004-01-03 Thread Peter Williams
On Sat, 2004-01-03 at 02:37, Pablo Fischer wrote:
> Hi!
> 
> I have a problem. I have officially mono and mcs compiled with the
> lastest CVS version (Friday 2nd), however, I'd like to compile other mcs
> and mono versions (.28), so, how can I compile mcs (.28) with another
> mcs.exe?.

The MCS build system uses two variables that will be of interest to you:
BOOTSTRAP_MCS, which is used to compile the new mcs and corlib, and MCS,
which is used to compile the rest of the libraries. MCS is in turn
defined in terms of INTERNAL_MCS, which is the mcs.exe compiled while
building the class libraries.

Anyway, all you should need to do is set those variables and you should
be good to go. You may also need to set the RUNTIME variable if you want
to use a specific version of the mono runtime.

$ make MCS=/path/to/my/mcs.exe BOOTSTRAP_MCS=/path/to/my/mcs.exe

You might make a build profile out of that setup by creating a make
fragment in mcs/build/profiles/myprofile.make that sets the variables
that you need; then you can just do 

$ make PROFILE=myprofile

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] ModMono.dll error

2003-12-04 Thread Peter Williams
Hi,

On Thu, 2003-12-04 at 20:21, Augusto Silva wrote:
> Unhandled Exception: System.NullReferenceException: A
> null value was found where an object instance was
> required
> in (unmanaged) /usr/local/lib/libmono.so.0
> [0x40077e75]
> in (unmanaged) /usr/local/lib/libmono.so.0
> [0x40077fe9]
> in (unmanaged) /usr/local/lib/libmono.so.0
> [0x40078d03]
> in (unmanaged)
> /usr/local/lib/libmono.so.0(mono_reflection_create_runtime_class+0x165)
> [0x4007949d]
> in <0x003de>

Your mono installation is messed up: your corlib.dll and runtime are out
of sync. You make sure that you are using the latest runtime and then
download and install a recent monolite or monocharge from
www.go-mono.com/daily/

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Delegate compilation error

2003-11-25 Thread Peter Williams
On Tue, 2003-11-25 at 15:05, Alejandro Sánchez wrote:
> With daily binary package mono-0.28.99.20031125.tar.gz
...
>   delegate void ButtonClickedEventHandler (object o,
> ButtonClickedEventArgs);

I think you need to give the parameter a name here. Eg

delegate void ButtonClickedEventHandler (object o,
ButtonClickedEventArgs args);

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


[Mono-list] Announce: mID3 0.7.1 (Goes to Eleven)

2003-11-16 Thread Peter Williams
Hi everyone,

I've written a little application based on Gtk# / Mono that edits ID3
tags in MP3 files [1]. The TODO list is quite long, but the basic
functionality is there, and I find it quite useful (seeing as Rhythmbox
doesn't yet support tag editing). You can download it from:

http://www.newton.cx/~peter/software/mid3-0.7.1.tar.gz

Note that by default, mID3 strips all kinds of tags except for ID3v2
tags. If for some reason you want to keep other kinds of tags
(presumably ID3v1, but there are other formats), DO NOT USE mID3.

mID3 requires version 3.8 of id3lib, an id3 editing library available
at:

http://id3lib.sourceforge.net

I recommend getting as recent a version as possible, as I know at least
some older versions have a bug that generates corrupt ID3v2 tags.

You will also need to edit your Mono configuration file to get the
runtime to find the id3lib library. See the file INSTALL in the tarball
for instructions.

Feel free to send me mail if you have any questions.

Share and enjoy,
Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Mono Tools and Utilities

2003-10-13 Thread Peter Williams
On Mon, 2003-10-13 at 13:39, A Rafael D Teixeira wrote:
> Just to be complete (I don't like it myself), there is the Microsoft way: 
> build each target to different directories (the dreaded /bin/debug and 
> /bin/release couple)

Well, this is similar to the automake idea of building with $(srcdir)
and $(builddir) ... I think it's a nice system, except it's such a
hassle to get working.

Anyway, the real problem is that program.exe depends on the
configuration variable ${debug} but NAnt doesn't have a convenient
mechanism for expressing that.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Mono Tools and Utilities

2003-10-13 Thread Peter Williams
ou can 
> see at a glance what files you're getting and from where.

Yeah, dist is always tricky, but if you have a program that uses source
files a.cs and b.cs, you almost surely want to dist them, and you
probably don't want to have to remember to modify your dist list every
time you add a new file. Here Jaroslaw's named filesets might be pretty
useful, but then if you have built source files you need to remember to
exclude those files, and so on... I think the ideal system would be to
automatically distribute all the leaf nodes on the dependency graph.

> hmm - I've used other build tools - cons ( http://www.dsmit.com/cons/) 
> which do use MD5 sums. With large source trees there was a significant 
> time taken to calculate which files need re-building. This could just 
> have been a feature of cons and not of using MD5 sums - I'm not 
> necessarily defending NAnt on this point.

I haven't really tried this myself but I could see MD5 sums being
time-consuming. I guess what really makes this useful is that it opens
up the possibility of having a target that isn't a file -- which then
lets you solve the issue of "not rebuilding when you change the debug
flag". The problem is that your program has a dependency on the debug
flag, but since it's not a file you can't really express it. As Jaroslaw
mentioned, you can make a stamp file and go from there, but if you had
25 boolean build options the amount of boilerplate code would get
obnoxious. 

> as Jaraslaw metioned - config info is stored in a config file. However 
> elements of the configuration can be overridden on a per build file basis.

What I was getting at was the above: the results of the build really do
depend on the configuration variables, but they're not quite first-class
, so you get something like the debug rebuild problem.

> I'd like to hear more of your thoughts in this regard. Be sure to post 
> here when you get your project off the ground.

I'll forward an email with a summary of what I've done.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Mono Tools and Utilities

2003-10-12 Thread Peter Williams
On Mon, 2003-10-13 at 00:54, Ian MacLean wrote:
> I'd like to hear a more detailed breakdown of you're issues with NAnt. 
> We always trying to improve the codebase and doing that requires 
> listening to peoples issues. However
> 'I don't like the xml syntax'  and 'it doesn't seem to have been 
> *designed*' don't really give us too much to go on.

There's two reasons for my vagueness: as I said, I have only briefly
looked at some NAnt build files and the documentation on the website, so
my practical understanding of nant is definitely poor. Second, I get the
feeling that my objections to it are more philosophical than on specific
choices. I've never heard that nant is buggy or anything, I just feel
that it doesn't really go as far as it could. I'll try to explain what I
mean:

* Using XML to express the build rules is, IMO, too heavyweight.
  I can see how it's easy to parse and gives an easy mechanism
  for interfacing with tasks, but writing a build file is like
  programming in any other language; it's better to have the
  common bits easy and the rare bits hard than everything
  somewhere in an awkward medium.

* The replacement of shell commands with tasks is important,  of
course, but the commands still seem on the low-level side 
  of things: copy file, delete file, compile to this file; what 
  happens if I'm compiling foo.so on Linux and foo.dll on 
  Windows?

* I haven't seen indications that it's particularly aware of 
  recursion.

* It looks like you can implement tasks in user assemblies but I
  don't see a framework for distributing them sanely (which
  I believe to be very important: aclocal, anyone?)

* Similarly, it doesn't look like you can define tasks in the
  XML itself.

* You still have to write your own clean rules and dist rules.
  Surely the tool, knowing the targets and all the rules used
  to build them, could figure this out by itself?

* Still using file modtimes, not MD5 sums, as criteria for
  rebuilding. Not the end of the world, but if you change a
  comment in a C file and have to relink your executable
  as a result, it can be a drag.

* Judging from idea of build properties, configuration state
  is still kept outside of the build tool.

NAnt seems to improve on the implementation of make while still working
within the same basic framework. My opinion is that there's a lot to be
gained from really rethinking what it means to "build" something and
structuring the process a lot more.

To try to articulate that idea a bit more, here's a quote from the NAnt
webpage that struck me:

Important: Some tasks like the compiler tasks will only execute
if the date stamp of the generated file is older than the source
files.  If you compile HelloWorld project in debug mode and then
try to compile it again in non-debug mode without first cleaning
nothing will happen because NAnt will think the project does not
need rebuilding.

Why isn't NAnt able to figure that out? It's a build tool, it should
specialize in being smart in situations like this. Problems like this
are why make sucks, but it doesn't seem that NAnt improves the
situation.

Peter
  
-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


RE: [Mono-list] Mono Tools and Utilities

2003-10-12 Thread Peter Williams
On Sun, 2003-10-12 at 17:10, Todd Berman wrote:
> For long term development use it seems like it would make sense to
> attempt to move Peter's vision from his head, to our hard drives. That
> or fix NAnt up for mono use.
> 
> 1, 4 and 5 all are quick fixes, not long term solutions.

Eh, I think I have a good idea and there's some code, but there's a lot
of work to be done. I guess just using the same make magic would be the
thing to do for the time being.

If anyone gets to writing a really compelling build tool, switching to
it should be easy. So if the current build system is ugly but works,
there's not much reason to switch from it.

I'd really discourage using NAnt though -- I'm not too familiar with it,
but I find the XML syntax awful and, well, it doesn't seem to have been
*designed*. I don't want to rag on nant too much because of my limited
understanding of it, but I think if we're going to switch to a "next
generation" build system we'd want to explore our options.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Mono Tools and Utilities

2003-10-12 Thread Peter Williams
Hi Jon,

On Sun, 2003-10-12 at 10:59, Jonathan Pryor wrote:
> So I would also propose the following:
> 
>   1.  Move mcs/build into a new CVS repository, "build"
>   2.  Use the CVS aliasing functionality [1] to insert the "build"
>   CVS repository into the "mcs" and "mono-tools" repositories.
>   This would allow the build system to be located in one
>   location, and all users would receive updates
>   simultaneously.

As the guy who wrote most of the build system, I'm not sure if this is
the best idea, although the build system is so low-maintenance that I
don't think moving it would be a huge problem. My reasons are:

* A lot of the build system is about supporting *complex* 
  cross-platform compilations: of corlib, with large source
  trees, with interdependent libraries, etc. I suspect 
  mono-tools' needs would be simpler, and could probably be
  met with a much smaller set of Makefile code

* Trying to implement a nontrivial build with make is just so
  much more of a hassle than it should be. On the other hand,
  I think nant has many bad design decisions, and although I
  have an (IMHO) awesome idea and basic framework for a C# 
  build tool, I (of course) have ~0 free time to work on it.

* This is relatively minor, but if more projects start using
  the build/ files, then they *will* become high maintenance,
  and if people are going to spend time on a build system, I'd
  much rather it be on implementing a better one, rather than
  working within the confines of pure make.

Anyway, if you want to alias the build/ stuff, I'm not against it, I'm
just not totally encouraging it. My feeling is it might be easiest and
sanest just to bolt into autoconf/automake as best you can.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Mono LDAP Status

2003-09-18 Thread Peter Williams
Hi Ben,

On Fri, 2003-09-19 at 00:12, Ben Maurer wrote:
> We use CVS (Cuncurent Versioning System), a common Open Source
> versioning program, to allow multiple people to work on something at the
> same time. It is just like inside Novell, except your coworker might
> live on the other side of the world ;-).

Well, I think Brady's point is that if you're not coordinating very
closely, it's hard for even two people to work on the same module of
code at the same time. I think the usual open source approach could be
described as "both people work on it and use whatever works first"...
either that or be prepared to spend a lot of time on IRC.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] assemblies path

2003-09-13 Thread Peter Williams
On Sat, 2003-09-13 at 07:23, Kris Luyten wrote:
> Hi,
> 
> how can I replace:
> ===
> public const string GTK_ASSEMBLY= "/usr/local/lib/gtk-sharp.dll";
> public const string SYSTEM_ASSEMBLY = "/usr/local/lib/System.dll"; 
> ...
> m_gtkAssembly = Assembly.LoadFrom(GTK_ASSEMBLY); 
> m_systemAssembly = Assembly.LoadFrom(SYSTEM_ASSEMBLY);
> ===

I believe Assembly.LoadFrom always expects a filename, so gtk-sharp.dll
is treated as ./gtk-sharp.dll and nothing else. Use Assembly.Load ().

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Mono 0.26 has been released

2003-08-15 Thread Peter Williams
On Fri, 2003-08-15 at 04:33, Ole Hyldahl Hansen wrote:
> cd mono-0.24
> ./configure --prefix=/usr/local/dikunix
> make
> make install prefix=/usr/local/dikunix/work/mono/linux

This shouldn't have ever worked, but there is a way to do this. Use:

make install DESTDIR=/usr/local/dikunix/work/mono/linux

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Newbie help?

2003-08-14 Thread Peter Williams
On Sun, 2003-08-10 at 23:16, Thomas Leavitt wrote:
> ... hey, if this isn't the appropriate place for an experienced sysadmin who
> has RTFM to ask probably ignorant questions, where do I do that?

Are you running Windows and Cygwin? If so, you need to set up your PATH
environment so that csc.exe (the MS C# compiler) can be found... I think
it's somewhere in C:\WINNT\Microsoft.NET.

If you're on a unixy machine ... well, the build system thinks you're on
Windows. It checks for the make variable $(OS) = Windows_NT so that
should only happen for a really messed up configuration.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Daily Mono snapshots now available

2003-07-25 Thread Peter Williams
On Sat, 2003-07-26 at 01:41, Jaroslaw Kowalski wrote:
> As far as I remember, you also need:
> 
> Mono.CSharp.Debugger.dll
> 
> so that mcs can generate debug symbols.
> 
> Jarek

All of the above should be included, if Duncan is using the 'make
monocharge-lite' target, at least.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Building mono/mcs

2003-07-22 Thread Peter Williams
Hi John,

On Mon, 2003-07-21 at 18:55, John BouAntoun wrote:
> ..
> a) Does the new build system make the old README files invalid now (or
> at least change some of them)?

We have been trying to keep them accurate. mcs/INSTALL.txt and
mcs/build/README.* are good, I know; I think mcs/README.building needs
updating.

> 
> b) Would it be possible to make 1 penultimate building instructions
> file that is constantly kept up to date. (I would be quite happy to
> organise this into a fluently read English document if someone could
> provide me with all the relevant instructions and caveats in the right
> order).

Yeah, things are pretty disorganized right now. My personal inclination
would be to work with INSTALL.txt and just change README.building to be
"See INSTALL.txt"

The main problem is that the documentation addresses two different major
problems:

1) How to build MCS -- this has now gotten fairly simple
2) How to keep the runtime and MCS in sync -- this is still hard.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


RE: [Mono-list] Trouble building from CVS

2003-07-17 Thread Peter Williams
On Thu, 2003-07-17 at 17:27, Krautbauer, Bruce wrote:
> Sorry... somehow the message was truncated.  The error I'm getting when
> installing on the new 'clean' system is:
> 
> make[2]: Entering directory `/root/mono/mcs/class/I18N'
> make[3]: Entering directory `/root/mono/mcs/class/I18N/Common'
> MONO_PATH="../../../class/lib:$MONO_PATH" mono  ../../../mcs/mcs.exe
> /r:corlib.dll   -g /nowarn:1595 /nowarn:0169 /nowarn:0109 /nowarn:0067
> /nowarn:0649 /nowarn:0679 /noconfig  /target:library
> /out:../../../class/lib/I18N.dll @I18N.dll.sources
>  
> ** (../../../mcs/mcs.exe:7725): WARNING **: Could not find assembly
> System
> cannot open assembly ../../../mcs/mcs.exe

Hm, assuming you could compile mcs/mcs.exe, you should be able to
compile the next libraries. Maybe try "make PROFILE=atomic" and see if
that builds sucessfully.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Extra characters in Console.Write output

2003-07-12 Thread Peter Williams
On Sat, 2003-07-12 at 12:02, Richard Thombs wrote:
> I'm seeing extra characters at the beginning of Console.Write output in
> RedHat 9. A simple Console.WriteLine("Hello, World!\n") gives three
> extra byes at the beginning of the output: ef, bb, bf before printing
> the 'H' of Hello.
> 
> Any ideas? The monodis has the correct string in it.
> 
> Thanks,
> 
> Stony.

This is Red Hat 9 (probably) using UTF8 on its console; the bytes are
some kind of UTF8 endianness markers I think. I don't think it's
possible to get rid of them in a nice way, but if you do

LC_ALL=C mono myexe.exe

they shouldn't show up.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] emacs modes

2003-06-21 Thread Peter Williams
On Sat, 2003-06-21 at 20:39, Havoc Pennington wrote:
> Hi,
> 
> Neither Emacs mode linked in the tutorial works for me, they both 
> puke with lisp errors.
> 
> I have emacs-21.2-33 from Red Hat Linux 9, which doesn't seem all that
> obscure. Do the modes work for anyone else with this version of Emacs?
> 

I use csharp-mode.el from http://davh.dk/script/. It's much simpler than
the other ones I tried and Just Worked on RH9 for me.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Re: monodocs problem

2003-06-14 Thread Peter Williams
Hi Stuart,

On Sat, 2003-06-14 at 10:06, Stuart Jansen wrote:
> Shortly after responding, I tried firing up monodoc and it failed to
> start. I'd recently installed the XD2 rpms for Evolution 1.4 and that
> proved to be the culprit. After
> 
> ln -s /usr/lib/libgtkhtml-3.0.so.2 /usr/lib/libgtkhtml-3.0.so

Just a call to /sbin/ldconfig should make that link; I had a problem
because mono's config file was mapping gtkhtml-3-0 to
libgtkhtml-3.0.so.1, not .so.2. I'm not sure why the .so version is
included; I changed it manually and things work fine.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] monodoc.xml entry patch

2003-06-13 Thread Peter Williams
Hi,

On Thu, 2003-06-12 at 13:05, Johannes Roith wrote:
> add new entry in monodoc.xml for handbook
>
> Index: monodoc.xml
> ===
> RCS file: /cvs/public/monodoc/browser/monodoc.xml,v
> retrieving revision 1.4
> diff -u -r1.4 monodoc.xml
> --- monodoc.xml 17 Apr 2003 19:48:28 -  1.4
> +++ monodoc.xml 12 Jun 2003 17:14:02 -
> @@ -2,5 +2,6 @@
>  
>
>
> +  
>
>  

I guess I'm a little bit late in commenting, but shouldn't there be a
way to achieve this so that the Handbook node doesn't show up if you
don't have the handbook installed? I'm not quite clear on the
distinction between monodoc.xml and the sources/ stuff, but I'd think
the latter way of installing documentation would be preferable, because
you can easily add and remove stuff on a per-package level. (Like the
way that distros moved from inetd.conf to xinetd.d/)

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Mentoring new developers with Mono

2003-06-04 Thread Peter Williams
Hi Robert,

On Tue, 2003-06-03 at 17:41, Robert Scott Horning wrote:
> What I'm proposing is possibly the formation of a mentoring 
> group/mailing list where no question is asked too often and seemingly 
> stupid questions can be asked.  I also think that some baby steps need 
> to made before wading in and doing some significant development.  If you 
> can think of some other ways this can be done (including working on the 
> Wiki), I'd like to step in.  I also know that with open source projects 
> sometimes some leadership needs to be had, and I'm willing to take on 
> this task if necessary.  Of course, this will be the blind leading the 
> blind, but I'm willing to do that.
> 

GNOME, where a lot of Mono programmers come from, has a similar list
called [EMAIL PROTECTED] I've never been involved with it, so I
can't say how successful it is, but that would be a place to look for
ideas or experience.

That being said, I think one of the pluses of working in C# is that it's
pretty easy to just start writing code and make something that works,
especially with the current state of the class libraries. Still, from
the number of people that post 'I want to help out' messages, it looks
like we can do better.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Re: [Mono-list] Preview: xine-sharp, c# bindings for the xinemedia player library.

2003-05-29 Thread Peter Williams
On Tue, 2003-05-27 at 11:22, Rich Wareham wrote:
> And finally, finally, here is a URL:
> http://charon.ucam.org/~rjw57/pub_files/xine-sharp-0.1.tar.bz2

That's pretty neat; it took me maybe 30 seconds to build and I can play
the DOOM III trailer :-) And we saw ESD# a few days ago... looks like C#
wrappers are just too darn easy to write. Probably not a bad thing.

Peter

-- 
Peter Williams  [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


[Mono-list] Re: More help needed with XSLT.

2003-02-17 Thread Peter Williams
Hi Miguel,

On Mon, 2003-02-17 at 20:29, Miguel de Icaza wrote:
> Hello!
> 
> I am using the first attached XSLT in the Mono documentation
> browser, but it is not handling a couple of entries:...

This should do the trick, I think.

Peter

-- 
Peter Williams [EMAIL PROTECTED] / [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power


http://www.w3.org/1999/XSL/Transform";>


  
  
  
  
  
  
  
  


  
  
  
  


  

  
 


  
  
  
(

  
 




Prueba de mono




























.


  







 








Re: [Mono-list] About "Page is loading."

2003-02-11 Thread Peter Williams
On Wed, 2003-02-12 at 00:35, [EMAIL PROTECTED] wrote:
> Hello,
> 
> Can anybody tell me what is the mail with the subject "Page is loading"?
> I received that and I saw that it is a "¿virus?" (really it is an exe
> file encapsulated inside an audio file)...

It's an Outlook virus of some kind. There are many possible places it
could have come from (forged return address...) so I don't think Miguel
is secretly using a compromised Windows machine or anything. Just delete
it.

    Cheers,
Peter

-- 
Peter Williams [EMAIL PROTECTED] / [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list



RE: [Mono-list] Re: OS/X build error for glib-2.0

2003-02-10 Thread Peter Williams
On Sun, 2003-02-09 at 22:49, Nick Drochak wrote:
> Right now that is crashing on linux, but it did work about a week+ ago.
> 

I just had an inspiration as to how to track this down and fix it. The
attached patch makes NUnit 2 work for me. Yay.

Peter

-- 
Peter Williams [EMAIL PROTECTED] / [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

Index: nunit20/framework/ChangeLog
===
RCS file: /cvs/public/mcs/nunit20/framework/ChangeLog,v
retrieving revision 1.2
diff -u -r1.2 ChangeLog
--- nunit20/framework/ChangeLog	10 Jan 2003 02:12:25 -	1.2
+++ nunit20/framework/ChangeLog	10 Feb 2003 06:16:14 -
@@ -1,3 +1,7 @@
+2003-02-10  Peter Williams  <[EMAIL PROTECTED]>
+
+	* TestCaseBuilder.cs: The array cast didn't seem to work, so save it until
+	a little later.
 
 2003-01-10  Gonzalo Paniagua Javier <[EMAIL PROTECTED]>
 
Index: nunit20/framework/TestCaseBuilder.cs
===
RCS file: /cvs/public/mcs/nunit20/framework/TestCaseBuilder.cs,v
retrieving revision 1.1
diff -u -r1.1 TestCaseBuilder.cs
--- nunit20/framework/TestCaseBuilder.cs	9 Dec 2002 14:39:22 -	1.1
+++ nunit20/framework/TestCaseBuilder.cs	10 Feb 2003 06:16:14 -
@@ -157,10 +157,11 @@
 		private static string GetIgnoreReason(MethodInfo methodToCheck)
 		{
 			Type ignoreMethodAttribute = typeof(NUnit.Framework.IgnoreAttribute);
-			NUnit.Framework.IgnoreAttribute[] attributes = (NUnit.Framework.IgnoreAttribute[])methodToCheck.GetCustomAttributes(ignoreMethodAttribute, false);
+			object[] attributes = methodToCheck.GetCustomAttributes(ignoreMethodAttribute, false);
 			string result = "no reason";
+
 			if(attributes.Length > 0)
-result = attributes[0].Reason;
+result = ((NUnit.Framework.IgnoreAttribute) attributes[0]).Reason;
 
 			return result;
 		}



RE: [Mono-list] type-reflector

2003-02-02 Thread Peter Williams
On Sun, 2003-02-02 at 12:31, Jonathan Pryor wrote:
> I took a look into this, and it doesn't quite do what I want.
> 
> What I want is a combination between normal CVS modules and CVS
> ampersand modules.  What I want to be able to do is something like this:
> 
>   $ cvs co mono-tools
>   $ ls
>   debuggertype-reflector
>   $ touch Makefile
>   $ cvs add Makefile
> 
> In other words, I want to have a CVS module which contains other CVS
> modules, much like ampersand modules, but with the ability to add
> additional files to the module, such as a top-level Makefile and
> configure script.

This sounds a lot like how the macros/ directory used to be included in
GNOME CVS directories... you could checkout GNOME's CVSROOT/modules and
see how it was done there, but if I recall correctly it would be:

mono-tools mono-tools &debugger &type-reflector

HTH,
Peter

-- 
Peter Williams [EMAIL PROTECTED] / [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list



Re: [Mono-list] A documentation coverage tool

2003-01-30 Thread Peter Williams
On Wed, 2003-01-29 at 20:29, Peter Williams wrote:
> Hi Duncan et al,

Ok, I sort of ran with this and wrote a tool to compare the ECMA
documentation file for a class and compare it against the master.xml
file. Again, it almost surely has some issues, but I thought it was
really nifty.

Peter

-- 
Peter Williams [EMAIL PROTECTED] / [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

// Author: Peter Williams <[EMAIL PROTECTED]>

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;
using System.IO;
using System.Xml;

//
// Known bugs:
//
// * Implementations of interface functions might
//   be handled wrong. The doc file records
//   the name as something like 
//
//   
//
//   but the master XML file only has 
//
//   
//
//   So there isn't enough info to tie the two together. Well, maybe we could chop
//   off everything before the last period? Seems risky.
//
// * Probably there are more bugs when the XML isn't in the expected format.
//   I must admit that XmlTextReader is not winning my heart.
//

namespace MonoDoc {

public enum MemberType {
Class,
Interface,
Struct,
Delegate,
Enum,
Constructor,
Field,
Prop,
Method,
Operator,
Event
};

public enum DocType {
Unknown,
Docs,
NoDocs
};

public class Member {
public MemberType type;
public DocTypedocs;
public string name;
public string return_type; // or type of self if property
public string[]   param_names;
public string[]   param_types;

private int param_size;

private void AddParam (string name, string type)
{
if (param_size == 0) {
param_names = new string[2];
param_types = new string[2];
} else if (param_size == param_names.Length) {
string[] new_names = new string [param_size * 2];
string[] new_types = new string [param_size * 2];

param_names.CopyTo (new_names, 0);
param_types.CopyTo (new_types, 0);

param_names = new_names;
param_types = new_types;
}

param_names[param_size] = name;
param_types[param_size] = type;
param_size++;
}

private void EnumFromMaster (XmlTextReader r)
{
int depth = r.Depth;

while (r.Read () && r.Depth > depth) {
if (r.Name == "field" && r["name"] != "")
AddParam (r["name"], null);
}
}

private void ParamsFromMaster (XmlTextReader r)
{
string name = r["name"];
string args = r["argnames"];

if (args == "")
return;

string[] namelist = Regex.Split (args, ", ");
string types = Regex.Match (name, 
"[^(]*\\(([^)]*)\\)").Groups[1].Value;
string[] typelist = Regex.Split (types, ", ");

for (int i = 0; i < namelist.Length; i++)
AddParam (namelist[i], typelist[i]);
}

private void TypeFromDoc (XmlTextReader r)
{
// this probably needs robustification

r.Read();
string t = r.Value;

switch (t) {
case "Class":
case "Interface":
case "Structure":
throw new Exception (String.Format ("Can't handle a nested {0} 
yet", t));
case "Delegate":
type = MemberType.Delegate;
break;
case "Enumeration":
type = MemberType.Enum;
break;
case "Constructor":
type = MemberType.Constructor;
break;
case "Field":
type = MemberType.Field;
break;
case "Property":
type = MemberType.Prop;
break;
case "Method":
type = MemberType.Method;
break;
// This doesn't happen
// case "Operator":
//  type = MemberType.Operator;
//  break;
 

[Mono-list] A documentation coverage tool

2003-01-29 Thread Peter Williams
Hi Duncan et al,

In the hopes of getting a better understanding of how monodoc works, I
wrote a little tool that generates a report of how well an assembly is
documented, based on comparing its master XML file to the XML
documentation files on disk. It's not too bright and definitely could
use some love, but it seems to be doing the trick at the moment.

Thanks,
Peter


-- 
Peter Williams [EMAIL PROTECTED] / [EMAIL PROTECTED]

"[Ninjas] are cool; and by cool, I mean totally sweet."
  -- REAL Ultimate Power

using System;
using System.Text;
using System.Collections;
using System.IO;
using System.Xml;

namespace MonoDoc {

class CoverageReport {

string topdir;
string[] args;
int classes;
Hashtable trans;
Hashtable sizes;

// this gets called once for each class listed in the
// master XML file for the assembly

void DoReport (XmlTextReader r, string ns, string name)
{
// otherwise the enumerator gets messed up as we
// are manipulating the table while iterating over it.
object[] keys_copy = new object[trans.Keys.Count];
trans.Keys.CopyTo (keys_copy, 0);

foreach (string lang in keys_copy) {
string lpath = Path.Combine (topdir, lang);
string nspath = Path.Combine (lpath, ns);
string namepath = Path.Combine (nspath, name + ".xml");

FileInfo fi = new FileInfo (namepath);
if (!fi.Exists)
Append (lang, namepath);
}

classes++;
}

// I feel like there has to be a better way to do this...

void Append (string key, string val)
{
int sz = (int) sizes[key];
string[] old = (string[]) trans[key];
int len = old.Length;

if (len == sz) {
string[] new_data = new string[len * 2];
Array.Copy (old, new_data, len);
trans[key] = new_data;
}

((string[]) trans[key])[sz] = val;
sizes[key] = sz + 1;
}

void Go ()
{
if (args.Length != 1) {
Usage ();
Environment.Exit (1);
}

string file = args[0];

// list the languages we're going to be looking for

Console.Write ("Looking for translations to: ");

topdir = Path.GetDirectoryName (file);
DirectoryInfo di = new DirectoryInfo (topdir);
foreach (DirectoryInfo a in di.GetDirectories()) {
if (a.Name != "CVS") {
Console.Write ("{0} ", a.Name);

// This feels really lame. Is there
// no better way? 
trans[a.Name] = new string[1];
sizes[a.Name] = 0;
}
}
Console.WriteLine();
Console.WriteLine();

// Now parse the master file to find out what classes
// are actually there.

Console.Write ("Parsing {0} ... ", file);   
try {
MasterParser mp = new MasterParser (file);
mp.Process (new MasterParser.ClassCallback (DoReport));
} catch (Exception e) {
Console.WriteLine ("Error trying to process {0}: {1}",
file, e.Message);
}
Console.WriteLine ("ok");

// now print what's missing

foreach (string lang in trans.Keys) {
Console.WriteLine();

string[] missing = (string[]) trans[lang];

Console.WriteLine ("{0}: coverage is {1} / {2} = {3:F2}%", 
lang, classes - missing.Length, classes,
(float) (classes - missing.Length) * 100.0 / classes );

Console.WriteLine ("{0}: missing files are:", lang);

for (int i = 0; i < (int) sizes[lang]; i++)
Console.WriteLine ("   {0}", missing[i]);
}
}

///
// Housekeeping

void Usage ()
{
Console.WriteLine ("CoverageReport.exe [path to master xml file]");
}

CoverageReport (string