On Tue, 2012-05-01 at 12:22 +0200, Benoît Minisini wrote: > A lot of answers to a lot of stuff, so I'm going to break it up into several > posts.
> Le 29/04/2012 06:45, Bruce Bruen a écrit : > > > > SUGGESTION: Libraries should not need to have a startup class. At > > the moment I "must" include a dummy module to prevent any > > test-harness code leaking into the user environment (which could > > cause damage if the library were to be run as a normal gambas > > executable.) At the moment the IDE will not let a library be made > > into an executable or packaged unless it has a startup class. It > > would be preferable that projects defined as libraries would not > > execute via the runtime, that way test harness code could be left in > > place. Currently I have to check that the coders have left the > > startup class pointing to the following:- > > > > ' Gambas module file > > > > ' Null module to provide a fake startup point > > > > Public Sub Main() > > > > Error "Please do not run this as a program. It is a gambas library." > > > > End > > > > Mmm. You are right, for libraries the IDE should let you not defined a > startup class. I will see what I can do. > I think that ("the IDE should let you not defined a startup class") is an overkill. What I need is a way to use a startup class in a library when I'm developing it but when it is packaged the startup class should be "removeable". To explain, during development/debug/support for a library, we need to be able to run it as a normal project through the IDE. This is what I meant about "test harnesses". In general, we have a MMain module in the library that may, or in fact usually, contains code that lets us enter method parameter values manually. This type of code if used by an ill-advised user could cause great havoc on an underlying database or the like. What I would like is a way to manually disable or "turn off" the startup class when the library project is made as an executable or is packaged. I suppose that the alternative is to not allow startup classes in libraries or components and keep changing the project type to "Normal" when we are debugging/supporting but I can foresee a lot of mistakes if that route is chosen. The way I see it is this. (Hypothetically) I've just spent some time on the phone to Mr Jones and it appears that there is, amazingly, a problem in the xyzzzy library. I open the xyzzy project and using the test harness code therein I find that we did in fact code a logic error when some date parameter to a dual timezone function is exactly the date and time that daylight savings changed in one of the timezones. ( I kid you not, this happened recently!) So I give the problem to the wizkids, er sorry, my brilliant development team, and they come up with a nicely tested solution. So now all I want to do is turn off the startup class, compile and make the distributable version and send it out. With a bit of thought... maybe what libraries/components need is a startup class that only works within the IDE... hmm! Bruce ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user