Re: gnustep-make experiment

2007-01-24 Thread Helge Hess

On Jan 24, 2007, at 15:10, Matt Rice wrote:
I've come across at least 2 instances of needing the environment  
variables
GDL2 needs to attempt to link to the Gorm libraries to see if it  
should enable building of the GDL2 Gorm palette
and in porting aquaterm, and the gnuplot adaptor for aquaterm, it  
needs to also look for a lib in the GNUstep heirarchy

to enable that.


Maybe I'm entirely off-track, but I suppose whats being talked about  
is resource or bundle lookup :-) Which of course should also work in  
FHS settings. (ie Gorm should ideally work in plain FHS, no?)


In OGo/SOPE we explicitly support both variants. If the GNUstep  
environment is sourced, we look in "GNUstep style pathes". If such a  
lookup fails (or if no environment is sourced), we continue searching  
in FHS locations (currently we hardcode /usr/local/ and /usr/, which  
obviously should be configurable using configure ...).


Eg, a bundle "ABC.bundle" with resources a.gif/b.gif in GNUstep setup:
  (pathprefixlist) + Library
/Bundles/ABC.bundle
  ABC
  /Resources
/a.gif
/b.gif
In FHS:
  (pathprefixlist: /usr, /usr/local):
/lib
  /abc-1.2.so
/share
  /abc-1.2
/a.gif
/b.gif

Something like that ;-) Frameworks/bundles need to be "debundled" for  
FHS. Of course this can be done transparently in the NSBundle class.  
(though a separate class has the advantage that you can do FHS in  
combination with Cocoa).


Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep-make experiment

2007-01-24 Thread Helge Hess

On Jan 25, 2007, at 01:35, Matt Rice wrote:

Anyhow i'll read this more thoroughly tomorrow,
but my main problem with GNUstep.sh isn't actually technical at all,
its the very first thing potential developers are going to see, so  
will be the first impression, and imho gives the impression of  
being strange because it is uncommon for a build system to depend  
on environment variables to function.


Yes. The thing we do (... ;-) is to have a very small (hand written)  
'configure' script which locates gnustep-make and writes a small  
'config.make' files containing the relevant GS variables. Then all  
makefiles include that config.make file like this:


-include config.make
include $(GNUSTEP_MAKEFILES)/common.make

If configure was run, it works w/o an environment. If it wasn't, it  
still works when GNUstep.sh is sourced. Which is quite nice IMHO ;-)
[actually SOPE even embeds gstep-make and builds that as part of the  
'configure' process if it can't find an installed gstep-make. Which  
makes the package completely self-contained, IMHO rather nice and  
similiar to autoconf]


Possibly a 'make dist' should automatically generate such a configure  
script for a given project?

Don't know. Probably there is a smart solution to the issue ;-)

BTW: personally I'm not quite sure whether I understand that /etc/ 
GNUstep.conf thing :-) Is it necessary or optional?


Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep-make experiment

2007-01-25 Thread Helge Hess

On Jan 26, 2007, at 24:04, David Ayers wrote:

Personally I'd prefer to suspend the release until we have an
environment that has a chance of remaining stable.  It seems that we
already require -make users to adapt thier projects for this  
release (I
remeber you cleaning up many projects in SVN) and it seems they may  
need

to adapt again for the subsequent release.


Thats a good point. The last gstep-make release already gave us a  
major headache. Well, if the next one is explicitly marked as  
unstable it would be probably OK ;-)


Thanks,
  Helge
--
Helge Hess
http://www.helgehess.eu/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep-make experiment

2007-02-07 Thread Helge Hess

On Jan 25, 2007, at 07:15, Nicola Pero wrote:
So we could have a small makefile fragment, let's call it find- 
gnustep.make,
that searches for gnustep-make on disk and sets GNUSTEP_MAKEFILES  
to the best
match.  I'll write that makefile fragment, and it will be  
maintained inside

gnustep-make.


I don't get this one, you want to let the fragment search for gnustep- 
make? Where will it search? Isn't it expensive to search all  
locations everytime? I'm not convinced that this can happen  
automagically.


My configure scripts has options to specify the gnustep-make  
installation you want to use (though of course it tests a few  
hardcoded locations as a fallback, but only once, at configure time).


I think the 'configure' script should be maintained inside gnustep- 
make (the script which generates the config.make, usually not a real  
autoconf configure).

You probably don't want to run configure everytime you call make ;-)


BTW: personally I'm not quite sure whether I understand that /etc/
GNUstep.conf thing :-) Is it necessary or optional?
It is necessary.  The reason is that it allows gnustep-make and  
gnustep-base to have a common understanding of where the various  
directories are.
The GNUstep.conf file describes the GNUstep filesystem and both  
gnustep-make and gnustep-base read it to know where to find things.


Well, I'm talking about FHS, why would they need to know?

In an FHS the gstep-base just needs a (fallback) prefix like other  
libraries to know where to look for associated files. Eg


  ./configure --prefix=/opt/gnustep-base-15

it would then know where to look for resources etc (because thats  
fixed in FHS).


Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep-make experiment

2007-02-07 Thread Helge Hess

On Jan 26, 2007, at 02:58, Nicola Pero wrote:
The other main change is that using GNUSTEP_SYSTEM_ROOT,  
GNUSTEP_LOCAL_ROOT, etc. in makefiles is now discouraged (because  
it won't work with Linux FHS).


I wonder whether those are still useful in an FHS setup (eg let  
GNUSTEP_SYSTEM_ROOT point to /usr, GNUSTEP_LOCAL_ROOT to /usr/local,  
etc).


Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep-make experiment

2007-02-10 Thread Helge Hess

On Feb 8, 2007, at 14:13, Nicola Pero wrote:
Here is an example -- put this at the top of your GNUmakefile, just  
before include $(GNUSTEP_MAKEFILES)/common.make --


GNUSTEP_MAKEFILES = $(word 1, \
 $(wildcard /usr/GNUstep/System/Library/Makefiles) \
 $(wildcard /var/lib/GNUstep/System/Library/Makefiles) \
 $(wildcard /usr/local/GNUstep/System/Library/Makefiles) \
 $(wildcard /opt/GNUstep/System/Library/Makefiles) \
 $(wildcard /System/Library/Makefiles))

the result is that:

 * if you source GNUstep.sh or have your GNUstep environment  
properly setup, it gets used


I suppose this hack would work for me, but I don't think that this is  
what admins expect from a GNU software package. Regular thing to do  
is ./configure --prefix, then make.


Though of course the real fragment could also check for  
'config.make', giving us both things, the automatic attempt and the  
configurability ;-)



Well, I'm talking about FHS, why would they need to know?

They would need to know because you can have different FHSes.


Last time I checked there is only one file hierarchy standard! ;-)

Well, really, this is something which belongs into the resource- 
lookup class (NSBundle and friends), not into an environment  
configuration (why would you ever want to switch that for a compiled  
binary!).

I think Unixes only really differ in the PREFIX?

Then we have Windows, completely different approach.

MacOS is more like GNUstep and should not be treated as FHS (in  
contrary, on MacOS you probably also want to have some stuff in FHS,  
and some in MacOS layout).


Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


tagged SOPE 4.6beta, JOPE 1.2

2007-02-10 Thread Helge Hess

Hi,

I've tagged SOPE 4.6beta and bumped SOPE trunk to 4.7. Same goes for  
JOPE 1.2/1.3.


Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Crash with new-style exceptions on FreeBSD amd64

2007-03-14 Thread Helge Hess

On Mar 14, 2007, at 21:46, Michael Gardner wrote:

I'm having problems using "new-style" exceptions with GNUstep on
FreeBSD 6.2 (amd64).


Does GNUstep support @throw, @catch??

Thanks,
  Helge
--
Helge Hess
http://www.helgehess.eu/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Use of libobjc from gcc 4.1 with MinGW

2007-03-21 Thread Helge Hess

On Mar 21, 2007, at 17:52, Xavier Glattard wrote:

Why the hell should libobjc be build as a dll  ;-)


Don't know whether this was really a joke ;-)

Anyways, its *very* important that libobjc is built as a DLL if you  
build any other ObjC library/framework/bundle as a shared object.  
Otherwise you end up with multiple ObjC runtimes in a single  
application! This has cost me a LOT of time in the past because its  
an easy to make mistake.


DLLs do not work like a shared library on Unix, they are much more  
separated (which is why you need the DLL *and* the static stub  
library to access the actual contents of a DLL). A DLL gets its own  
memory in Windows, its almost like a separate process.


Notably thats actually a very cool feature for using Objective-C for  
Windows development. Because ObjC stuff is bound dynamically using  
the ObjC runtime, you don't need to fiddle as much with Windows  
linking as with plain C or C++.


Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Use of libobjc from gcc 4.1 with MinGW

2007-03-22 Thread Helge Hess

On Mar 22, 2007, at 14:47, Xavier Glattard wrote:

An other stupid question :
why dont link _only_ gnustep-base to a static libobjc ?


Because your Objective-C code needs to access functions contained in  
libobjc?




So you would not had multiple objc runtime !


In theory the gnustep-base.dll could contain the libobjc, but then it  
would need to expose the libobjc API in its DLL wrapper AND you would  
need to tell all your makefiles that they don't need to link libobjc.


And you would need to tell gcc/ld *not* to link libobjc  
automatically. This could be the hardest part since internal  
libraries of GCC have weird lookup hacks in the compiler (-L has  
different semantics).


I don't think its a good idea to embed libobjc into gnustep-base.  
Though I'm not 100% sure ;-)


Helge
--
Helge Hess
http://www.helgehess.eu/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Problems with a custom constant string class

2007-08-05 Thread Helge Hess

On 06.08.2007, at 00:37, Vincent Geddes wrote:
I am experimenting with Objective-C, and I am trying to create some  
custom string classes.


The problem is that the gcc '-fconstant-string-class' option only  
seems to allow custom classes which subclass `Object' (in the GNU  
runtime).


Thats definitely wrong, the class doesn't matter (in both, gstep-base  
and libFoundation NSConstantString inherits from NSObject, not Object).


The thing which _is_ required (for rather obvious reasons?) is the  
constant ivar layout, which is

  - Class isa;
  - uchar *; // string
  - uint;// length

gcc keeps on giving me the error `interface 'GooConstantString'  
does not have valid constant string layout' if I subclass anything  
other than `Object'.


Well, its because the ivar layout doesn't match the required constant  
one?!



Interfaces:
@interface GooObject
...
@end
@interface GooString : GooObject
...
@end
@interface GooConstantString : GooString
{
  Class isa;
  char *c_string;
  unsigned int len;
}
@end


Well, you don't give the ivar layout of your hierarchy (...?). Eg  
that GooConstantString has an 'isa' ivar looks utterly wrong given  
that any object needs to have an isa pointer (=> it has to be in your  
root class). Maybe removing the 'isa' does the trick?


Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: KeyValueCoding compatibility issues

2007-11-29 Thread Helge Hess

On 29.11.2007, at 22:23, David Ayers wrote:
I understand that -base intends to track Cocoa while GDL2 and GSWeb  
aim

at an ancient static API.



I didn't look at Marcus' patch but on MacOS *both* KVC styles work at  
the same time, w/o any #define's or such. I assume it does so by  
checking whether the -setValue:forKey: method being invoked is the  
NSObject one (new style was not overridden), and if so, checking for - 
takeValue:forKey:. etc


Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gprof and GNUstep?

2007-12-03 Thread Helge Hess

On 04.12.2007, at 00:51, David Wetzel wrote:

I tried to use gprof



(hm, doesn't gprof require static binaries?)

Don't know what you want to do, but for profiling I would suggest  
Valgrind/KCachegrind. Those are awesome.


Well, and of course the Apple tools which are much faster than  
Valgrind. Though obviously applications will have different profiles  
depending on the foundation, depends on your specific bottleneck.


Helge
--
Helge Hess
http://www.helgehess.eu/


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: GNUstep-make and C++ projects...

2008-03-01 Thread Helge Hess

On 01.03.2008, at 12:16, Nicola Pero wrote:

make CC=g++


Hm, is there a special CC variable for CPP files? I think I wondered  
about that.


It would be nice if gnustep-make was to automatically do all of  
this.  Not that sure how to decide when to use C++ linking (is it  
when only CC_FILES are non-empty and all the other xxx_FILES are  
empty ?) and how to best automate it.  Suggestions from C++ users  
are welcome.



I qualify, unfortunately ;-) I also tried using gstep-make (on MacOSX)  
to compile a C++ project, but failed for reasons I don't remember  
anymore :-)


I think activating C++ linking on non-empty CC_FILES should be OK.  
However, then CC_FILES should support compilation of .c files using g+ 
+. Eg:

  CC_FILES = \
a.cpp \
b.c

If all that would work as-is on Windows to produce DLLs and such, it  
would be awesome! :-)
Further it would be very nice if one could use the VS C++ compiler  
instead of g++. But that probably works already (CC=vcc++ or whatever)


Hm, sweet. I think I give it another try today and see what was wrong  
with using gsmake for me.


Thanks,
  Helge
--
Helge Hess
http://www.helgehess.eu/


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: GNUstep-make and C++ projects...

2008-03-01 Thread Helge Hess

On 01.03.2008, at 14:19, Helge Hess wrote:
Hm, sweet. I think I give it another try today and see what was  
wrong with using gsmake for me.



I just tried again with gsmake2 and everything works like a charm. The  
only thing I had to do was setting LD:


---snip---
LD=g++

-include GNUmakefile.preamble
include $(GNUSTEP_MAKEFILES)/tool.make
-include GNUmakefile.postamble
---snap---

I'm building the tool against two static (C++) libraries and it just  
works (on MacOSX 10.5 that is).



Next thing would be to move the whole compilation on Windows to gsmake  
(currently its all VS projects). Maybe next weekend ;-)


Thanks a lot!
  Helge

PS: or should I move to SCons instead? ;->
--
Helge Hess
http://www.helgehess.eu/


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: GNUstep-make and C++ projects...

2008-03-01 Thread Helge Hess

On 02.03.2008, at 00:47, Jiva DeVoe wrote:

Y'know... I looked at scons a year or so back..



This comment was an exclusive for Nicola ;-)

Thanks,
  Helge
--
Helge Hess
http://www.helgehess.eu/


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Next release

2008-03-07 Thread Helge Hess

On 08.03.2008, at 00:33, Gregory John Casamento wrote:
Currently there is a lot of space which is marked as "reserved" in  
Apple's header files.   This allows for future additions without  
changing the memory layout of the class which is what leads to ABI  
issues and subsequently the need for recompilation.


Didn't that change in Objective-C 2.0 / the 64bit ABI? I thought the  
fragile base class problem is no more? (due to ivar indirection).


The trick is to reserve just the right amount of space so that you  
don't make your classes needlessly big


Well, the instances would be big, not the classes :-)

Another potential solution to this problem, a bit different from the  
one above and probably a little risky is to simply have a void  
pointer in each class' ivar section and have it point to the  
appropriate structure when initialized during runtime.


I *guess* thats how its implemented in ObjC 2.0. The class probably  
doesn't contain the ivars directly, but just a pointer to the ivar  
block of the specific class.

But I didn't check. Maybe someone else knows more.

The third option is to get gui to a point where it's ABI is actually  
stable.  Consider that base hasn't changed much for a long time.


The ABI unfortunately *did* change a lot, I outlined that in detail  
several times, please check the archives.
Stable ABI is not just ivar layout, but also stable method behaviour  
and constant public API (no public methods added!/changed, no classes  
added/changed, no methods moved to categories etc etc). Having a  
stable ABI might even imply preserving certain kinds of bugs :-)


I can't say how stable the GUI ABI is, but the base ABI definitely is  
NOT stable at all (just say KVC ;-).
And *please* remember that I don't refer to the stability of the code,  
but to the stability of the ABI only. The stability of the code is  
very nice, so if you don't have a problem with staying at trunk / last  
branch, everything is awesome-O :-) We do.


Thanks,
  Helge
--
Helge Hess
http://www.helgehess.eu/


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Next release

2008-03-07 Thread Helge Hess
BTW: sometimes people don't know what ABI compatibility implies in the  
real world. The basic idea is that if I have a library and a tool, I  
can replace 'library' with any ABI compatible library and the tool  
still works. Stuff like crasher bugs being fixed.


Say, I have installed
gnustep-base 0.13.0
SOGo 0.7.3

If gnustep-base 0.17.0 would be ABI compatible to 0.13.0, I could just  
replace it and SOGo 0.7.3 would still work. This is much harder than  
API (not ABI) compat with 0.7.3. The latter only requires that I can  
recompile 0.7.3 against the new API version (fragile baseclass is just  
a small part in this scenario).


A simple (admittedly constructed) example: lets say gnustep-base  
0.13.0 had:

  @interface NSObject
  ...
  - (BOOL)isNotEmpty;
  @end

Well, and SOGo might have choosen to *override* that method using a  
category. Which is perfectly valid in ObjC:

  @interface NSObject(SOGo)
  - (BOOL)isNotEmpty;
  @end

Now gnustep-base 0.17.0 might have said: well, isNotEmpty really does  
not belong to NSObject!, lets refactor it! and move it to a category:

  @interface NSObject(GSAdditions)
  - (BOOL)isNotEmpty;
  @end

Hey! We just b0rked ABI compat :-) SOGo's implementation of - 
isNotEmpty won't get used anymore, even though it worked just fine  
before.



Apple's frameworks are in fact ABI compatible this way (well they  
sometimes have bugs in that, but overall they have great ABI  
compatibility).



ABI compat bascially means you are not allowed to touch the code  
except in *very* well defined ways. (eg Apple reserves the NS*  
namespace, so they are 'allowed' to add classes and still have ABI  
downwards compat).


Greets,
  Helge



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: EOFault / NSAutoreleasePool

2008-03-11 Thread Helge Hess

On 11.03.2008, at 19:37, David Ayers wrote:

if you are using ogo with gdl2... is that the case?



No, OGo/SOPE uses its own variant of GDL1. But I assume that EOFault  
handling is more or less the same.


Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: EOFault / NSAutoreleasePool

2008-03-15 Thread Helge Hess

On 13.03.2008, at 16:35, Fred Kiefer wrote:

It seems wrong to me to return a
different selector from +instanceMethodForSelector: than from
-methodForSelector:.



Really? To me this is one of the most important core features of  
Objective-C.
+instanceMethodForSelector: returns the method the class object  
provides, while -methodForSelector: returns the method the object  
actually uses. Which will usually be the class method, but in all  
kinds of dynamic language bridges, faults, etc, something else.


Thats why I call ObjC an _object_ oriented programming language (in  
contrast to _class_ oriented languages like C++).


Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: GNUstep-make and C++ projects...

2008-03-17 Thread Helge Hess

On 02.03.2008, at 00:42, Helge Hess wrote:
I just tried again with gsmake2 and everything works like a charm.  
The only thing I had to do was setting LD:


---snip---
LD=g++

-include GNUmakefile.preamble
include $(GNUSTEP_MAKEFILES)/tool.make
-include GNUmakefile.postamble
---snap---

I'm building the tool against two static (C++) libraries and it just  
works (on MacOSX 10.5 that is).



BTW: just added two subprojects and noticed a warning by libtool on  
MacOS 10.5. Doesn't seem to be critical though:


---snip---
/usr/bin/libtool  -static -o obj/libZ1Core.a obj/z1ne_groupdav.o  
[...cut...] obj/Z1BootstrapNamedProps.o Z1Versit/obj/subproject.o  
Z1VersitMap/obj/subproject.o
/usr/bin/libtool: warning same member name (subproject.o) in output  
file used for input files: Z1VersitMap/obj/subproject.o and: Z1Versit/ 
obj/subproject.o (due to use of basename, truncation, blank padding or  
duplicate input files)

---snap---

Don't know what/why it is, but I thought you might be interested ;-)

Thanks,
  Helge
--
Helge Hess
http://www.helgehess.eu/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [FOSDEM] Accepted: GNUstep+Etoilé+O penGroupware.org devroom

2008-12-05 Thread Helge Hess

BTW: I think someone asked about hotels to avoid? :-)

IMHO it would be a good thing if we would all stay in the same hotel,  
and maybe we could get an offer if we book as a group?


I think the one selected by Nicola last year was quite good:

  http://www.hotel-argus.be/

Lars, can you organize that?

Thanks,
  Helge
--
Helge Hess
http://helgehess.eu/


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: GSIMap

2011-06-25 Thread Helge Hess
On Jun 10, 2011, at 6:14 AM, Richard Frith-Macdonald wrote:
> is pretty much unique to you I think

I was also assuming that -retain can return a different object. Otherwise it 
should be void (aka AddRef()) ...

hh
___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: More Windows stuff ... Gorm works ... sort of

2005-03-22 Thread Helge Hess
On Mar 22, 2005, at 23:39, Gregory John Casamento wrote:
Basically, the problem is that the palettes include symbols which are 
defined
in the app.
Just to grasp what the discussion is about - what kind of symbols are 
shared here?

As long as you stick to the OO features of ObjC, all the linking is 
done by ObjC itself anyway (either class or method lookup) and you 
won't need weak symbols. I always considered that a major strength 
because it works around all that weaky-magic (which only really works 
well with ELF).

Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org

___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Glib runloop

2005-04-17 Thread Helge Hess
On 16. Apr 2005, at 14:31 Uhr, Banlu Kemiyatorn wrote:
Has anyone tried to unify Glib runloop and NSRunLoop?
Well, yes, I did for GTKKit:
  http://mail.gnome.org/archives/gtk-devel-list/1999-March/msg00158.html
but 1999 is quite a while ago ;-)
Does this mean to reimplement NSRunLoop entirely?
I think not necessarily, but it might be the easiest approach. I 
suppose a lot of things have changed in glib since 1999, so it might be 
rather easy to wrap the glib runloop as an NSRunLoop object.

Personally I would be quite interested in such a work.
Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org

___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Apple changed documentation for -[NSString stringByExpandingTildeInPath]

2005-05-08 Thread Helge Hess
On 8. Mai 2005, at 04:00 Uhr, Sheldon Gill wrote:
P.S.: All the methods handling C strings are in the depreceated   
section now.
How disappointing! :-|
I suppose it was dropped because people did not understand what it is  
doing / good for and misused the methods (pretty similiar to - 
fileSystemRepresentationWithPath: which is seldom used).

That is not quite true, actually many of them are replaced by  
methods  taking an encoding parameter in addition. E.g. cString  
becomes  cStringUsingEncoding: and so on.
Thats not the same. The -initWithCString: per definition takes  
strings in the system encoding, so if you are getting a value from a  
standard C-API (say readlink()) you now need to do:

  s = [NSString stringWithCString:buf
encoding:[NSString defaultCStringEncoding]];
which obviously is a major inconvenience (and slowdown!) when  
interfacing with C.

That is right. As I see it, they are rightly trying to move things  
forward for better internationalisation.
I wonder how this is supposed to improve internationalization. A  
pretty good optimization which had _no_ drawback wrt  
internationalization was dropped in favor to a method which will  
hardly get used in practice.

Instead they could have used their energy to add Cocoa API for  
supporting arbitary encodings without resorting to CoreFoundation.  
_That_ would have been an improvement for internationalization.

Relying on a "default" encoding and using a C string isn't a good  
idea.
Why not? This way its guaranteed to match. The "default" encoding is  
the encoding configured in your Unix environment. You know, modern  
Unix _has_ proper support for localization (see LANG, LC_xxx etc)?

In the modern unix world you are much better off using UTF8 strings.
In the modern windows world it should all be UTF16
Hm, yes? This is why UTF-8 or UTF-16 might be the default C-String  
encoding if this is the case. This is what -initWithCString: aka  
defaultCStringEncoding is made for! If your Unix does UTF-8, you just  
switch the default encoding and everything works instantly.

Also your point doesn't apply since we already have - 
initWithUTF8String: (every C API which doesn't use the system  
encoding most likely uses UTF-8 on Unix) and -initWithCharacters:.
So dropping -initWithCString: gains you nothing here.

Oh well,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org

___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Considering Gorm 1.0.0

2005-06-23 Thread Helge Hess

On 22. Jun 2005, at 07:58 Uhr, Gregory John Casamento wrote:

Does anyone have any comments?


I would still love to see a viable OpenSource replacement for IB on  
MacOSX. Are there any plans to port Gorm to Cocoa?


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: STS Template Engine

2005-07-24 Thread Helge Hess

On 21. Jul 2005, at 16:53 Uhr, Markus Hitter wrote:

Am 21.07.2005 um 16:03 schrieb Sunrise Ltd:
we've just released the STS TemplateEngine, a library for  
expanding templates using tagged placeholders and it features its  
own macro lanuguage for conditional template

expansion.

This is was I thought first:


Well, my first thought was: why another templating engine? We already  
have WO (either in SOPE or in gstep-web).


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: STS Template Engine

2005-07-25 Thread Helge Hess

On 25. Jul 2005, at 02:35 Uhr, Lars Sonchocky-Helldorf wrote:
Well, my first thought was: why another templating engine? We  
already have WO (either in SOPE or in gstep-web).
maybe because WO would be overkill for some simple tasks (or do you  
use a semitrailer truck to carry a crate of beer to your home)?


Hear hear! ;-)

The WO framework just has ~20 public classes and is hardely a truck,  
its rather a beautifully modular bike:
  http://developer.apple.com/documentation/LegacyTechnologies/ 
WebObjects/WebObjects_4.5/System/Library/Frameworks/ 
WebObjects.framework/ObjC_classic/WebObjectsTOC.html


Stripping down to the classes required for templating you may end up  
with something like 5-10 classes for text rendering.


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: STS Template Engine

2005-07-26 Thread Helge Hess

On 25. Jul 2005, at 23:10 Uhr, Lars Sonchocky-Helldorf wrote:
I wasn't aware that WO was such a lithe and lissom animal once. it  
has put on a lot weight since then (Java disease?). This: http:// 
developer.apple.com/documentation/WebObjects/Reference/API/ 
index.html is definitely a truck. (and yeah, you omitted EOF, could  
you install WO without it those days?)


Of course I omitted EOF since its not required for templating (nor  
for any other basic WO operation). AFAIK the only class which refers  
EOF is WODisplayGroup and this can easily be omitted.


The Java reference contains all the other WO related frameworks like  
D2W etc, those however are not part of the WebObjects _framework_  
(not the whole product). (addition it contains additional classes  
necessary due to the Java language, but actually not that much).


The full WO product consists of a lot of different frameworks (aka  
packages in Java WO), but those are rather cleanly designed and stack  
up pretty nicely.


On 26. Jul 2005, at 08:37 Uhr, Stefan Urbanek wrote:

What about WO dependencies? ...


The WO framework classes required here have no dependencies but  
Foundation (since KVC is now in Foundation).



"stripping down ..." does not seem like out-of-the-box solution...


Hu? Just build a library which contains only the classes you require.  
Of course you may need one or the other additional class for WO  
framework purposes (like WOContext), but this probably makes more  
sense than rewriting the templating from scratch!



Nothing against WO - each tool has its purpose...


WO is a nice framework which can be applied to many different  
purposes, not a monolithic "tool". Its actually quite beautiful for  
templating all kinds of files.


Presenting WO as a bloated tool is simply incorrect.

Now I wouldn't recommend it for stuff like [str replaceString:...  
withString:...] but as soon as you start with conditions, repetitions  
and stuff, you are very likely reinventing the wheel. And indeed the  
existing wheel is kick-ass ;-)


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Headerfile-bug in framework.make

2005-08-09 Thread Helge Hess

Hi,

I think I've found a bug in framework.make of gstep-make 1.10.0. It  
doesn't honor the HEADER_FILES_DIR variable which results in missing  
dependencies.


I've added the "addprefix" call to the right side:

---snip: Instance/framework.make:299---
# Need to share this code with the headers code ... but how.
$(FRAMEWORK_HEADER_FILES):: $(addprefix $(HEADER_FILES_DIR)/,$ 
(HEADER_FILES))

ifneq ($(HEADER_FILES),)
---snap

Could someone please confirm, apply the change and maybe release a  
new gstep-make?


Thanks,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Headerfile-bug in framework.make

2005-08-11 Thread Helge Hess

On Aug 10, 2005, at 3:50, Nicola Pero wrote:
Ehm ... thanks ... we have just released a new gnustep-make (1.11.0), 
which includes the fix ... :-)


Excellent :-) Any incompatibilities between 1.10 and 1.11 which I need 
to be aware of?


Another annoying issue is that gstep-make doesn't seem to notice when 
the linking of a framework fails on OSX. It just continues building:

---snip---
 Compiling file WEExtensionsBundle.m ...
 Linking framework WEExtensions ...
ld: can't locate framework for: -framework NGObjWeb
/usr/bin/libtool: internal link edit command failed
 Copying resources from subprojects into the framework wrapper...
 Creating WEExtensions.framework/Versions/A/Resources/Info.plist...

Compilation finished at Thu Aug 11 16:47:06
---snap---
Also fixed in 1.11? ;-)

Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Headerfile-bug in framework.make

2005-08-11 Thread Helge Hess

On 11. Aug 2005, at 17:48 Uhr, Adam Fedor wrote:
   * Psuedo-framwork support was implemented on MingW. This  
essentially
 involves copying the framework to several places so it can be  
used

 without links, which Windows does not really support.  There's no
 other clean way to do it.


BTW: is this really the case? I had the impression that its pretty  
similiar to OSX, expose only Aliases (aka symbolic links) to the  
user, but support "real" links internally.

In the case of Windows creation of such via the Posix APIs.

Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


PCH Support

2005-08-26 Thread Helge Hess

Hi,

I've added some PCH support to gstep-make 1.11.0 and I'm almost ready 
to send it for inclusion. At least on OSX it gives a major performance 
boost (compilation of libSaxObjC in 13s instead of 23s on a G4/800MHz).


Problem is, it only works completely on OSX (only checked 10.4 so far). 
On Linux, gcc 4.0.2 seems to be able to compile the header but I get 
errors when trying to use it with a source file.


OSX, works fine:
---snip---
[EMAIL PROTECTED] make messages=yes all
Making all for library libSaxObjC...
cd .; \
/Users/helge/dev/SOPE-4.5-gs/.gsmake/Library/Makefiles/mkinstalldirs 
./shared_debug_obj; \

rm -f obj; \
ln -s ./shared_debug_obj obj
if ! test -d ./derived_src; then \
  /Users/helge/dev/SOPE-4.5-gs/.gsmake/Library/Makefiles/mkinstalldirs 
./derived_src; \

fi
gcc -x objective-c-header common.h -c \
  -MMD -MP -pipe -Wall -Wno-protocol -Wall 
-DCOMPILE_FOR_GSTEP_MAKE=1 -DSOPE_MAJOR_VERSION=4 
-DSOPE_MINOR_VERSION=5 -DSOPE_SUBMINOR_VERSION=52 -Wno-protocol 
-DNeXT_Foundation_LIBRARY=1 -DNeXT_RUNTIME=1 -dynamic -fno-common -g 
-Wall -DDEBUG -fno-omit-frame-pointer -DGSWARN -DGSDIAGNOSE 
-fno-strict-aliasing -fnext-runtime -I.. -I. \

   -o derived_src/common.h.gch
gcc SaxAttributeList.m -c \
  -MMD -MP -pipe -Wall -Wno-protocol -Wall 
-DCOMPILE_FOR_GSTEP_MAKE=1 -DSOPE_MAJOR_VERSION=4 
-DSOPE_MINOR_VERSION=5 -DSOPE_SUBMINOR_VERSION=52 -Wno-protocol 
-DNeXT_Foundation_LIBRARY=1 -DNeXT_RUNTIME=1 -dynamic -fno-common -g 
-Wall -DDEBUG -fno-omit-frame-pointer -DGSWARN -DGSDIAGNOSE 
-fno-strict-aliasing -fnext-runtime -I.. -I. \

  -include ./derived_src/common.h \
   -o shared_debug_obj/SaxAttributeList.o
...
---snap---

Linux:
---snip---
[EMAIL PROTECTED]:~/dev/SOPE-4.5/sope-xml/SaxObjC$ make messages=yes
Making all for library libSaxObjC...
cd .; \
/home/helge/GNUstep/Library/Makefiles/mkinstalldirs ./shared_debug_obj; 
\

rm -f obj; \
ln -s ./shared_debug_obj obj
if ! test -d ./derived_src; then \
  /home/helge/GNUstep/Library/Makefiles/mkinstalldirs ./derived_src; \
fi
gcc -x objective-c-header common.h -c \
  -pipe -Wall -Wno-protocol -Wall -DCOMPILE_FOR_GSTEP_MAKE=1 
-DSOPE_MAJOR_VERSION=4 -DSOPE_MINOR_VERSION=5 
-DSOPE_SUBMINOR_VERSION=52 -Wno-protocol 
-I/home/helge/GNUstep/Library/Headers/libFoundation/ix86/linux-gnu/GNU 
-DGNUSTEP=1 -DWITH_GSTEP_MAKE=1 -DLIB_FOUNDATION_LIBRARY=1 
-DFD_WITH_GSMAKE=1 -DGNUSTEP=1 -DGNU_RUNTIME=1 -D_REENTRANT -fPIC -g 
-Wall -DDEBUG -fno-omit-frame-pointer -DGSWARN -DGSDIAGNOSE 
-fno-strict-aliasing -fgnu-runtime -I.. -I. 
-I/home/helge/GNUstep/Library/Headers 
-I/home/helge/GNUstep//Library/Headers 
-I/home/helge/GNUstep/Library/Headers/libFoundation 
-I/home/helge/GNUstep//Library/Headers/libFoundation 
-I/home/helge/GNUstep//Library/Headers/libFoundation 
-I/home/helge/GNUstep/Library/Headers/libFoundation 
-I/home/helge/GNUstep/Library/Headers/libFoundation/./GNU 
-I/home/helge/GNUstep//Library/Headers/libFoundation/./GNU 
-I/home/helge/GNUstep//Library/Headers/libFoundation/./GNU 
-I/home/helge/GNUstep/Library/Headers/libFoundation/./GNU \

   -o derived_src/common.h.gch
gcc SaxAttributeList.m -c \
  -pipe -Wall -Wno-protocol -Wall -DCOMPILE_FOR_GSTEP_MAKE=1 
-DSOPE_MAJOR_VERSION=4 -DSOPE_MINOR_VERSION=5 
-DSOPE_SUBMINOR_VERSION=52 -Wno-protocol 
-I/home/helge/GNUstep/Library/Headers/libFoundation/ix86/linux-gnu/GNU 
-DGNUSTEP=1 -DWITH_GSTEP_MAKE=1 -DLIB_FOUNDATION_LIBRARY=1 
-DFD_WITH_GSMAKE=1 -DGNUSTEP=1 -DGNU_RUNTIME=1 -D_REENTRANT -fPIC -g 
-Wall -DDEBUG -fno-omit-frame-pointer -DGSWARN -DGSDIAGNOSE 
-fno-strict-aliasing -fgnu-runtime -I.. -I. 
-I/home/helge/GNUstep/Library/Headers 
-I/home/helge/GNUstep//Library/Headers 
-I/home/helge/GNUstep/Library/Headers/libFoundation 
-I/home/helge/GNUstep//Library/Headers/libFoundation 
-I/home/helge/GNUstep//Library/Headers/libFoundation 
-I/home/helge/GNUstep/Library/Headers/libFoundation 
-I/home/helge/GNUstep/Library/Headers/libFoundation/./GNU 
-I/home/helge/GNUstep//Library/Headers/libFoundation/./GNU 
-I/home/helge/GNUstep//Library/Headers/libFoundation/./GNU 
-I/home/helge/GNUstep/Library/Headers/libFoundation/./GNU \

  -include ./derived_src/common.h \
   -o shared_debug_obj/SaxAttributeList.o
SaxAttributeList.m:188: error: redefinition of 'struct _objc_symtab'
SaxAttributeList.m:188: error: redefinition of 'struct _objc_module'
SaxAttributeList.m:188: error: redefinition of '__objc_gnu_init'
common.h:26: error: previous definition of '__objc_gnu_init' was here
{standard input}: Assembler messages:
{standard input}:2136: Error: symbol `_OBJC_SYMBOLS' is already defined
{standard input}:2302: Error: symbol `_OBJC_MODULES' is already defined
{standard input}:2351: Error: symbol `_OBJC_CLASS_NAME_0' is already 
defined

...
[EMAIL PROTECTED]:~/dev/SOPE-4.5/sope-xml/SaxObjC$ file derived_src/common.h.gch
derived_src/common.h.gch: GCC precompiled header (version 012) for 
Objective C

---snap---


Does someone know whether PCH is fully implemented in the GNU 

Re: PCH Support

2005-08-27 Thread Helge Hess

On 26. Aug 2005, at 16:46 Uhr, Nicola Pero wrote:
... just wanted to encourage you and say that this would be a  
fantastic

addition to gnustep-make! :-)


OK, the Linux/gcc4 issue isn't solved yet, but at least on OSX it  
works (almost) like a charm.


I've added PCH to SOPE 4.5 and it now compiles in ~8mins instead of  
~16mins on a PM G5, so it indeed gives a huge speed boost.



How to use
==

First you need to reconfigure/reinstall gstep-make with --enable-pch:

  ./configure --enable-pch 

In your projects you create a header file which contains all the  
files you usually want to include, in SOPE we already had such files  
called "common.h", eg:


  common.h:
  #import 
  #import 

After that you need to tell gstep-make about that file by adding a  
new variable:


  MyProject_PCH_FILE = common.h

Thats it. 'make clean all' and it should compile much faster.


Notes
=

- The common.h will be included in _every_ source file of the project  
at the very top (automagically using -include). This is sometimes  
confusing and can lead to bugs with non-PCH setups, but necessary to  
ensure that the PCH actually gets used.


- On the first 'make all' the PCH will be generated. Subsequent  
"touch *.m; make all" are marginally faster (for SOPE 4.5 with ~20  
PCH's this is no measurable difference)


- The PCH will NOT pick up changes automagically. So you should not  
add 'volatile' headers to the PCH or you might experience weird  
effects (old headers getting used). Don't know whether auto- 
dependencies help here, at least a .d file is generated.


- Do not use PCH if your project/subproject has just one or two  
files. Will gain you nothin' but wasted diskspace.


- Precompiled headers are quite big! For SOPE common.h around ~13MB  
each (~250MB for SOPE).


- I have the impression that PCH also increases Dual-CPU saturation  
on the G5 (w/o using -j), don't know why. Maybe because cpp=>cc1obj  
pipeline is multitasked and somehow better used.


- The newer Xcode's do something called shared PCH. Don't know how  
this works, I suppose they hash the header-file and only regenerate  
when they differ. Should save disk-space and some PCH generation time.



How to get it
=

My gstep-make branch is available at:

  http://svn.opengroupware.org/SOPE/trunk/gnustep-make

You can retrieve it as a patch to 1.11.0 using:

  svn diff http://svn.opengroupware.org/SOPE/vendor/gnustep-make/ 
1.11.0 \

   http://svn.opengroupware.org/SOPE/trunk/gnustep-make

Issues
==

I have one issue with subprojects, apparently they are run w/o a  
submake invocation and somehow pick up wrong PCH_FILEs. Nicola, maybe  
you can look into the changes and tell me what I did wrong? ;-)


Another minor issue the patch has is that the PCH must live in the  
same directory like the makefile - when I use $(notdir), the PCH  
compilation rule somehow doesn't get picked up (see comments in  
makefile). I failed to see why (Nicola again ;-)
Note: to see this behaviour your main project and your subproject  
need to use different PCH_FILE names (otherwise the subproject picks  
the one of the parent).


PCH in Sarge gcc4 doesn't work. I won't have the time to run through  
the full gcc bug-reporting procedure as outlined in:

  http://gcc.gnu.org/bugs.html
If someone would find the time to build/submit a testcase it would be  
excellent.



Greets,
  Helge

PS: ratmice: I think you saw no speed gain because you didn't use - 
include which you should to ensure that the PCH is actually used (the  
PCH MUST be the first included header).

--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: PCH Support

2005-08-27 Thread Helge Hess

On Aug 27, 2005, at 20:22, Matt Rice wrote:

PS: ratmice: I think you saw no speed gain because
you didn't use -
include which you should to ensure that the PCH is
actually used (the
PCH MUST be the first included header).

of course i did..
line 20 and 29 of pch.diff


OK, was just a wild guess ;-) Then, I don't know why you didn't see a 
speedup. Its fairly huge over here.


Of course tests on Linux/ix86 are pending and it will be interesting to 
see whether it gives measurable speedup given that Linux/ix86 is 
already thrice as fast as my G5 over here.


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


HEADER_FILES_INSTALL_DIR

2005-08-29 Thread Helge Hess

Hi,

I think HEADER_FILES_INSTALL_DIR is b0rked in gstep-make 1.11. First my 
assumption:
a) HEADER_FILES_DIR is where header files are located in the source 
code,

   has nothing to do with the install location
b) HEADER_FILES_INSTALL_DIR is where files live in the installation

headers.make in 1.11 does this:
  HEADER_FILES_INSTALL_DIR = \
$(HEADER_FILES_DIR)/$($(GNUSTEP_INSTANCE)_HEADER_FILES_INSTALL_DIR)

I think it should be just:
  HEADER_FILES_INSTALL_DIR = \
$($(GNUSTEP_INSTANCE)_HEADER_FILES_INSTALL_DIR)

why is it prefixed by $(HEADER_FILES_DIR)/?

This currently breaks libFoundation compilation.

Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: HEADER_FILES_INSTALL_DIR

2005-08-31 Thread Helge Hess

On 31. Aug 2005, at 17:59 Uhr, Nicola Pero wrote:

Ehm ... thanks for your bug report, :-)

... I'm a bit puzzled though because I couldn't find this line in
gnustep-make's CVS or 1.11 ... Can you point me to the .tgz or CVS  
version

you used that contained those lines ?  Maybe the 1.11 .tgz is broken ?


Hm, this is most weird ;-)

I can't find it in my vendor branch either:
  http://svn.opengroupware.org/SOPE/vendor/gnustep-make/1.11.0/ 
Instance/Shared


Probably Subversion somehow "break merged" this, though I have no  
idea how this could happen.


Sorry for false accusations, I have no idea how that got into my  
copy, we just use vendor branches w/o modifications (prior PCH). Need  
to be more careful in subsequent merges.


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: STS Template Engine

2005-09-05 Thread Helge Hess

On 2. Sep 2005, at 17:01 Uhr, Sunrise Ltd wrote:

Well, my first thought was: why another templating engine? We
already  have WO (either in SOPE or in gstep-web).
It would seem that your idea of "templating engine" is a little  
narrow.


How to you come to this conclusion?


WO is great for webservers and templating of webcontent.


Indeed.


But there are far more templating requirements than webcontent.


Obviously.

As mentioned, the STS Template Engine was specifically designed to  
generate configuration files for faceless server apps, such as in  
our case

Asterisk.


And you can't do this with WO? Interesting, we can and its rather  
cool for this kind of things.

It would seem that your idea of "WO" is a little narrow.

It could be used for webcontent templating, but it is specifically  
designed for system configuration tasks. And for this purpose it  
beats WO hands down.


If you say so.


You might want to add actual reasons on why your NIH templating is  
better than WO for the task instead of accusing someone of having a  
"narrow idea". Your mail has no interesting content on that actual  
point.


regards,
  Helge

PS: your email address doesn't work.
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: xcode files in GNUstep cvs

2005-09-22 Thread Helge Hess

On 21. Sep 2005, at 16:59 Uhr, [EMAIL PROTECTED] wrote:

So I'd recommend we only do it for projects where we will actively
maintain the xcode port. ;-)


You can also add a "legacy" target to the Xcode project which builds  
the files using the gstep-make files to avoid the need for two build  
environments.


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: xcode files in GNUstep cvs

2005-09-23 Thread Helge Hess

On Sep 22, 2005, at 14:00, Nicola Pero wrote:

Thanks ... that's quite an interesting idea :-)

... you still need to install gnustep-make before you build though.


You could make a .pkg package which installs gstep-make in the system. 
In SOPE we embed a snapshot of gstep-make which is setup at configure 
time (yes, of course you can also call external processes from Xcode 
... ;-)


But I suppose some OSX guys would still prefer to build inside Xcode 
rather than

from a terminal's command line. ;-)


I don't understand the point, maybe you are not aware thats trivial to 
call an external program as part of an Xcode build?


The main advantages of using the Xcode build system are:
- ZeroLink
- distributed builds
- predictive compilation
- better multi-CPU support
- direct IDE support
But those are more relevant for applications, less for "premade" 
frameworks. Well, but then why the need to build a premade framework 
from source, just provide a .pkg ;-)


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Proposal: Subversion Migration

2005-10-23 Thread Helge Hess

On 23. Okt 2005, at 13:25 Uhr, Markus Hitter wrote:
Unlike CVS, Subversion numbers versions throughout the whole  
repository. A bunch of files checked out have always the same  
version; files get higher version numbers even without being  
changed. As a result, one should tend to make small repositories,  
i.e. one for each app, one for each tool, one for each lib.


Exactly. But notable repositories can refer each other so that other  
repositories are checked out automagically as subtrees. So the user  
doesn't usually need to be concerned about the actual repository a  
source comes from.


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Gorm 1.0 on GNUstep site

2005-11-02 Thread Helge Hess

On 2. Nov 2005, at 21:22 Uhr, Scott Stevenson wrote:

http://treehouseideas.com/downloads/gnustep.page


Very nice!

Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Repository change to SVN, Jan 28th

2006-01-22 Thread Helge Hess

On Jan 22, 2006, at 16:42, Sheldon Gill wrote:
Actually, I think Fred has raised a good point here. We do, I think, 
need some clarification about branches and merging back to trunk.


While I agree that the point is good in general and some rules need to 
be set up, its not the most important point _right now_.


For now, why not just apply the same conventions used as in CVS?

 A few additional rules and guidelines may be useful. I've some 
questions:
  - are we going to stick with the SVN recommended 'trunk', 'branch' 
and 'tag'


This seems like a rather obvious yes?


  - how are branches to be named? What about sub-branches?


Same like CVS?

  - how are developers going to communicate about branches and what's 
going on in them?


Same like CVS?


  - what goes into tag? When?


Same like CVS?

  - Are we going to import more vendor trees? (like ffcall, portaudio 
etc)


What would be the rational and why would that be different to CVS?


Things to think about.


Yes, but not relevant to the migration itself?

Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Planning Fosdem

2006-02-12 Thread Helge Hess

On 12. Feb 2006, at 15:26 Uhr, Nicolas Roard wrote:
I didn't hear any complaint about the planning, so well I guess it  
is fine ? :-)


Note: AFAIK the FOSDEM flyers are already _in print_, so you can't  
change the schedule as it was on the Wiki page anymore.


best regards,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Planning Fosdem

2006-02-12 Thread Helge Hess

On Feb 12, 2006, at 17:15, Nicolas Roard wrote:

Well, yes, but the schedule is not uploaded on the fosdem site, so I
would guess they don't have any schedule for us anyway...


They know the reference to the Wiki site, I told them they'll find the 
line-up over there ... Well, we'll see, if you want to know for sure, 
ask the devroom list ;-)


The FOSDEM site schedule is not used (internally), they asked for the 
schedule in a separate mail.


Greets,
  Helge

PS: why did you cross-post?
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: libgnustep-base split proposal

2006-02-19 Thread Helge Hess

On 19. Feb 2006, at 08:35 Uhr, Richard Frith-Macdonald wrote:
For me, distributed objects are one of the 'killer' features of the  
base

library and the desire to use DO is perhaps the main reason I started
GNUstep development!
There do seem to be some people who just hate daemons, but even
if you hate daemons that's no reason to get rid of DO since you can
use it without them.


Well, we (SOPE/OGo) don't need DO but I don't care to have an NSPort  
class linked into my binary either. Of course the binary should not  
attempt to connect the daemons or setup the DO system unless I  
actually use it.

I suppose this is already true for gstep-base.


However ... either configure-time or run-time options makes more
sense to me than a splitup.


Configure-time makes red lights go on, but otherwise I agree :-)


3. NSUserDefaults

As I already mentioned, this already copes with read-only database,  
so it would
be easy to continue using it without any external files.  Major  
restucturing to

avoid using it therefore seems very counterproductive.


The only thing we have here in SOPE is that NSUserDefaults looks for  
its database in $HOME instead of $GNUSTEP_USER_DIR if the latter is  
not set.



5. NSBundle

I'm not sure what the perceived problem is here.


One feature I would like to see in NSBundle is the ability to load  
a .so module w/o any resources since otherwise one needs to rebuild a  
lot of API to load plain modules. But thats an additional feature,  
not a bug :-)


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: libgnustep-base split proposal

2006-02-19 Thread Helge Hess

On 19. Feb 2006, at 06:27 Uhr, Andrew Ruder wrote:

Objective-C is an incredible programming language, but right now the
most crippling factor for its widespread use is the lack of a  
"standard

library."


Where did you get that conclusion I never heard about that one  
before! :-)



GNUstep, however, brings along a whole
lot of other problems: crazy GNUstep/ directory structure, daemons,
config files, etc.. etc..


I wouldn't call the GNUstep directory structure crazy at all, its  
actually a rather cool thing.


Whats problematic is that it isn't possible to go w/o it and run  
GNUstep binaries/libraries like a regular Unix tool. Thats one of the  
reasons why its currently not possible for OGo to switch to gstep-base.


Instead they waste their time (no offense intended) on  
libFoundation and other such OpenStep-like API implementations,  
because GNUstep is not flexible

enough for their needs.


I don't understand the brackets, obviously this is offending. But no  
need to discuss it :-)



We can easily fill the role that libFoundation
and derivatives are made to fill.


Quite honestly I can't follow you, libFoundation was not made to fill  
missing flexibility in gstep-base, it was started a looong time ago  
by Ovidiu and others as a "pure" Foundation API implementation.
When they did that gstep-base was still quite an ugly mix of  
libobjects and Foundation. I think this was fixed reasonably well in  
the last years so the initial reasoning for libFoundation is gone  
(though I have the impression that gstep-base still contains too much  
GS* stuff).



Why is there any more than a single
free Foundation implementation being developed right now?


AFAIK there are three worth mentioning:
a) gstep-base
b) libFoundation
c) mgstep?

So now a bit about the "why".

a) well, thats the GNUstep community which doesn't want to drop gstep- 
base for

   unknown reasons ;-)

b) libFoundation is not really "developed", its more or less in  
"maintenance"
   mode. It does what it does and it does it well. The OGo project  
is more or
   less the only user of libFoundation (though lF very likely has  
multitudes

   more deployments than gstep-base).
   As mentioned before we would rather like to move OGo to gstep- 
base. If its
   possible w/o loosing features/speed/on-bugs which are important  
to us.


c) if I remember right the motivation behind mgstep is providing full
   binary compatibility with Cocoa. I think few people care about  
that and

   the huge additional maintenance overhead. Though I might be wrong.

Finally I think that there is nothing particulary bad with having  
multiple Foundation implementations which have different goals.
In contrary, its a demonstration of how well the Foundation API  
actually works and actually _the_ feature of GNUstep - since exactly  
this is what you do for Cocoa.


In essence, I'd like to propose that the -base library be split to  
fill this role.


Can't see how splitting will help since the main issue is not bloat  
but different goals or history or missing functionality.



If you want to know all the issues I have with using gstep-base  
instead of libFoundation, I could try to write that up. A major  
problem is that we don't have the time to fix/implement those issues  
in gstep-base (or bugs in gstep-base which might come up when using  
it with OGo!).



Any thoughts?


I think you very much misinterpret the reasons why there are multiple  
Foundation libraries and your motivation to do changes might be a bit  
"inappropriate" (no offense ;-)


IMHO one should rather come up with a list of the features missing in  
gstep-base (like FHS support) and implement them step-by-step.


We would definitely like to move to gstep-base if certain things do  
work.


Also note that you will need to have MUCH better API/ABI stability if  
you want to become the "standard" library. This is also something  
which is lacking in GNUstep (not a core feature for us though, we  
would probably maintain our own _stable_ branch).


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: libgnustep-base split proposal ... alternative ideas

2006-02-19 Thread Helge Hess

On 19. Feb 2006, at 10:21 Uhr, Richard Frith-Macdonald wrote:
I don't think libFoundation is more flexible than GNUstep-base ...  
rather
it's different, and I don't really see why gnustep needs to try to  
'beat' it.


I agree.

For me lF is a bit more flexibile since I can change anything I want  
while I must deal with GNUstep people for gstep-base changes ;-) But  
this should be much better now because people (like me?) can get own  
branches in Svn. No?


However, if that's what you want, it might be good to identify  
*exactly*

why some people prefer it.


As written in the other mail, "some" is actually just OGo and I can  
summarize some reasons if there is interest (but I've already  
explained most of them in the past).



I've heard its string handling is fast but non-unicode (haven't looked
for ages), perhaps it's the memory footprint and speed of strings?


I don't expect that libFoundation is particulary faster or slower on  
strings than GNUstep. Why should Unicode matter for that? (don't you  
have 8-bit NSString cluster subclasses?)


What I found when I tried a SOPE app with gnustep-base a while ago  
that lF was quite a bit faster. But I _never_ investigated the  
reason, so it might be something trivial to fix (it was actually you  
who suggested that it might be due to 8-bit strings, but I don't  
think thats very likely).


Thats part of the problem moving to gstep-base, I honestly don't have  
the time to investigate such issues, even if they might be trivial  
changes inside gstep-base.


I'm not sure about flexibility ... I often think we may be too  
flexible.
I don't really mean that we should reduce that flexibility, but I  
do think
we need to look into how we can make it really, really simple to  
manage.


Agreed.

Linux FHS installation (really just needs implementing in gnustep- 
make)


If that would be in FHS it would be AWESOME for us :-) We currently  
use rather wicked hacks to accomplish that.



Resource-free library usage


I don't think that resource-free is the most important thing. The  
important thing is that gstep-base looks up the resources in the  
appropriate place, which would be [prefix]/share/gstep-base-1.12/...


This is already implemented? Along with proper versioning?

Also note that FHS and NeXT-style directory names are most likely  
different, eg

  [gs-prefix]/Library/WebServerResources
vs
  [prefix]/share/www

Same for application names. Expecially because NeXT naming never  
includes versions while FHS tools need to. Eg:

  [gs-prefix]/WOApps/OpenGroupware.woa
vs
  [prefix]/sbin/ogo-webui-1.1

Summary: doing FHS properly is quite tricky and "automatic"  
approaches are most likely going to suck ;-)



We also aim is to cut down on use
of environment variables  (we have already done that somewhat)
by putting them in the config file ... though where MacOS-X uses
environment variables we need to retain compatibility.


Actually we have three modes here:
a) env variables are set => search GNUstep environment
b) not set => use just FHS
c) on MacOSX => use MacOSX ;-)

Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: libgnustep-base split proposal

2006-02-24 Thread Helge Hess

On 22. Feb 2006, at 19:29 Uhr, Richard Frith-Macdonald wrote:
I boggled when I read that ... then realised that my initial  
incomprehension was due to 20+ years experience programming on unix  
style systems ... it simply didn't occur to me that copying the  
library from one directory to another would be an issue for a  
developer (for a user, yes).  GNUstep is by no means alone in  
putting its libraries in its own directories ... many packages  
(ssh, postgres etc) use their own subdirectories.


Well, there is a reason that FHS was invented and that Debian is so  
popular. The OGo installation targets system adminstrators and they  
expect to find stuff in known/consistent places (they even wonder why  
there is nothing in /var/php/ ;-).


And really, there is no good reason not to do it the standard way (on  
the Linux platform).


I really don't know how to address that as a problem.  Of course we  
could provide a script to copy the library ... but then people  
would need to know about the script.


Honestly I can't see a reason why libgstep-base and associated  
resources should be installed into any other place but /usr/local or / 
usr as per FHS. This should be the default location. Even if  
GNUstep.sh is being used (which would be searched first when its  
sourced).


The GNUstep hierarchy is IMO appropriate for
a) ultra power users wanting the full flexibility of self contained
   environments (we do this occasionally, but less all the time due to
   the invention of Linux VServer)
b) user-level desktop applications (I agree that a GNUmail.app should  
live

   in some /Applications directory, not in ~/bin ...)

Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: libgnustep-base split proposal

2006-02-24 Thread Helge Hess

On 24. Feb 2006, at 08:42 Uhr, Philippe C.D. Robert wrote:
That's good to hear. So you are saying that one can copy solely the  
base .so to e.g. /usr/local/lib/ and it just works (w/o DO of course)?


Well, Richard said that multiple times now - so yes! :-)

I think DO should also work as explained by Richard?!

Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Svn checkout instructions

2006-02-28 Thread Helge Hess

Hi,

the Svn checkout instructions on:

  https://gna.org/svn/?group=gnustep

are incorrect. They say one should checkout:

  svn co http://svn.gna.org/svn/gnustep/trunk gnustep

while its just

  svn co http://svn.gna.org/svn/gnustep/


BTW: why is that? Shouldn't there be a trunk?

Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Proposal: Mandatory periodic releases

2006-03-07 Thread Helge Hess

On 7. Mrz 2006, at 16:41 Uhr, Adam Fedor wrote:
Well, I try to do something like this, only I aim for binary  
compatibility, rather than API stability. That's way too hard for  
me to track - something that all the developers would have to sign  
up to do, not just me. The last binary incompatible release was  
September, last year (7 months).


I'm not entirely sure what you mean by that. Ensuring ABI/API  
stability just implies that every once in a while a new version is  
branched. This branch then is only allowed to add fixes, no new API/ 
ABI stuff.
"Development" of course will continue as usual (with breaking  
things ;-) in the trunk and with alpha releases.


Technically patches (aka bugfixes) to the branch could/should only be  
allowed for a release manager, could be you or someone else. A patch  
would need to ensure that nothing ABI/API is changed, this should be  
reasonably easy.


Since a stable release should happen max every 12 months this should  
be no big burden. And interest to provide fixes when necessary should  
be high because only stable versions (and API/ABI compatible fixes)  
are usually allowed in distributions.


Summary: IMHO this should be easy with Subversion. Just do a copy of  
trunk every 12/18/24 months and mark that the stable release and  
disallow changes.
This might imply that this only makes sense for core components like  
gstep-make and gstep-base since maybe gstep-gui has so many bugs that  
it doesn't make sense to tag a stable. Can't decide that.


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Proposal: Mandatory periodic releases

2006-03-10 Thread Helge Hess

Hi,

On 1. Mrz 2006, at 15:15 Uhr, Gregory John Casamento wrote:
One of the ways I've noticed that other projects act is that they,  
under normal circumstances, try to make regular releases of the  
code at predictable intervals.  This helps to reassure people that  
the project is active and it also helps to focus developers on  
impending releases.


I'm wondering if this might not be a good thing to start in this  
project, since our releases tend to be occasional.  Just a thought. :)


personally I would like to see a split between stable releases and  
development releases. I talked about that with Nicola at FOSDEM and  
the impression is that GNUstep lacks both, more frequent AND less  
frequent releases.


More frequent because it will be easier to try out new features (and  
have a less moving target even for developers) and less frequent  
because the GNUstep API is too instable for distribution inclusion  
and to base binary software packages upon. (and ABI change in the  
core library every 6 months or so is FAR to much, 12 months might be  
OK, 24 considered stable).



In SOPE/OGo we do this by using the Linux version numbering, that is,  
we have stable releases which are even numbered and NEVER change the  
API (no additional methods, no additional classes, only fixes). And  
we have odd numbers which are alpha releases and are allowed to break  
the ABI.
Eg SOPE 4.4.0 is a stable release and 4.4 will never change the ABI  
while 4.5.1, 4.5.2, ... 4.5.6 are unstable releases and have no  
soname ABI guarantee.


How do we do that in Subversion? If we release a stable version, we  
copy the trunk tree to a branch, eg:

  svn cp /trunk /branches/4.4
The trunk then becames the next unstable. Trunk always has an odd  
numbers and you never have an odd number in (release) branches. To  
make a stable release, we copy the branch to a release, eg:

  svn cp /branches/4.4 /releases/4.4.0
To make an unstable release we just copy the trunk, eg
  svn cp /trunk /releases/4.5.7

BTW: beta releases are also supposed to be ABI stable to the final  
release. So the first branch is actually a beta, not a final release.



I would like to suggest something similiar for GNUstep (at least  
base ;-). With Subversion this is reasonably easy to do. Keeping ABI  
stability of course requires A LOT of discipline.


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: libgnustep-base split proposal

2006-03-10 Thread Helge Hess

On 26. Feb 2006, at 15:49 Uhr, Chris Vetter wrote:
Or rather the other way around, Linux is the only system 'using'  
the FHS. So calling the FHS a standard is a bit over the top.


I think it would be more helpful to explain how your favorite system  
differs to FHS than bashing FHS so that the required setup can be  
taken into account.


The point of course is not so much of supporting FHS in special but  
in supporting a hierarchy which follows the conventions of the host  
system. This is FHS on Linux and might be something else on other  
platforms (eg the Apple one would be quite similiar to the GNUstep  
environment)


Thanks,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: GNUSTEP_CONFIG_FILE value ('/etc/GNUstep/GNUstep.conf') is not an absolute path

2006-03-13 Thread Helge Hess

On 10. Mrz 2006, at 20:13 Uhr, Jeremy Bettis wrote:

You can't have every platform tested for every release.


But you need to decide (and declare!) what platforms are actually  
tested prior a release. Otherwise a stable release is pretty useless,  
no?


For GNUstep this means that there needs to be a decision whether it  
supports Windows in releases or not. Which in turn has direct  
consequences on whether this can be a marketing feature or not.  
(don't tell someone that gstep-base works on Windows if a downloaded  
*release* doesn't ...)


Even for GCC, windows is on the non-critical list.  I am a heavy  
Mingw user (the only heavy mingw user of gnustep?)  and I don't  
care if Mingw is tested before every release.  Frankly the idea of  
someone who never normally uses windows dual booting over to  
windows once every 3 months to test under mingw before calling the  
version RELEASE, doesn't really boost my confidence any.


Well, the usual way it works is that you have multiple people  
responsible for reporting on whether a certain state of the source  
(usually the RC, release candidate) works on 'their' platform.
Of course for mingw32 this should not be someone who doesn't use  
Windows ...


More exactly basically every major project doing "stable releases"  
has AT LEAST a beta cycle, usually there is also an RC cycle. GNUstep  
has nothing like that and the 'releases' are nothing more than tagged  
alpha releases.

Not a good base to build upon :-(

BTW: even if you don't want to fix a certain platform support for a  
given release, its much better to know whether a releases does  
support that platform in advance. So that the release announcement  
can be correct ...


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Re[2]: Daily snapshot tarball of the trunk/ hierarchy (on GNA)

2006-03-19 Thread Helge Hess

On 19. Mrz 2006, at 16:08 Uhr, Manuel Guesdon wrote:
About daily snapshots, could you tell me what to snaphost and how  
to do it ? I'm not familiar with SVN :-(


Something like this:

  SUBPROJECT=base
  BRANCH=trunk

  rm -rf checkout-tmp
  svn export \
"http://svn.gna.org/svn/gnustep/libs/$SUBPROJECT/$BRANCH"; \
checkout-tmp \
>checkout-out
  REV=`tail -n 1 checkout-out | sed "s/Exported revision\ //" | sed  
"s/\.//"`

  SNAPNAME="$SUBPROJECT-$BRANCH-$REV"
  mv checkout-tmp "$SNAPNAME"

  tar jcf "$SUBPROJECT-$REV-`date +%Y%m%d`.tar.bz2" "$SNAPNAME"
  rm -rf "$SNAPNAME" checkout-out

Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Change type signature of objectForKey: ?

2006-03-29 Thread Helge Hess

On 29. Mrz 2006, at 10:35 Uhr, Richard Frith-Macdonald wrote:
The -objectForKey: and -setobject:forKey: methods exist in  
NSUserDefaults and NSDictionary with two different type signatures.


For NSDictionary the key is of type 'id' but for NSUserDefaults it  
is of type 'NSString*'


This can cause a lot of irritating compiler warnings when using  
these methods, so I was wondering if we should standardise on the  
'id' type, and just have NSUserDefaults perform a runtime check (or  
even use [key description] to be sure that a key is a string).
That would mean that the formally declared API for NSUserDefaults  
would differ slightly from the MacOS-X version, but it should not  
cause any problems that I can see.

What do people think?


IMHO you should stick to MacOSX API compatibility and require a cast,  
just like on OSX.


BTW: application level code should use KVC, not -objectForKey:  
(unless of course you do not work with string keys). This avoids the  
issue in most situations and is more generic in the same run.


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: FHS compliance/Abstraction of NSBundle

2006-05-09 Thread Helge Hess

On 9. Mai 2006, at 23:06 Uhr, Hubert Chan wrote:

One problem with getting general FHS compliance that I can see is that
the FHS doesn't have anything analogous to the Network or user  
domains.


Well, Network is _roughly_ like /opt and user domains are basically  
in ~ (~/bin, ~/lib if you wish to have that).


I think the bigger issue is that while it has PATH and  
LD_LIBRARY_PATH, standard Unix does not provide a "resource lookup  
path" (in what sequence to scan share directories).
Which is why most GNU-like/autoconf-based tools specify their  
"location" at compile time (--prefix). Which is fine in realworld but  
certainly not perfect.


BTW: I still think that its unnecessary to force .app wrappers into  
FHS. FHS should be for low level libraries and tools/daemons. (just  
like on MacOSX)


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: FHS compliance/Abstraction of NSBundle

2006-05-09 Thread Helge Hess

On 9. Mai 2006, at 06:17 Uhr, Andrew Ruder wrote:
I don't believe that this should be an option; this should be  
*STANDARD*

operation.


Maybe I'm wrong but people seem to consider FHS vs GNUstep hierarchy  
and either/or thing. It certainly isn't. FHS (or other system  
hierarchies) is just an *additional* fallback path hierarchy which  
should be searched after the GNUstep hierarchy (if its setup).
Some additional information is required (like versioning information  
for resource/bundle lookup), but there should be some way to add this  
to NSBundle.


Thats how it works in OGo, if you did source GNUstep.sh, you have all  
the flexibility and features of the GNUstep hierarchy, if you don't  
it still works.

(though real world shows that _no one_ cares about the latter ...)
Its a bit like library combos vs flattened or _d, _dp library  
suffixes. I love the former, but of course its really overkill in 98%  
of the use cases. So is the GNUstep hierarchy. It doesn't provide any  
real-world gain.


Now how the packager decides how to package stuff is his own choice.  
Obviously most will choose to use FHS (well, even refuse GNUstep if  
it doesn't support FHS), but some (eg GNUstep centric) distris may not.


Greets,
  Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: FHS compliance/Abstraction of NSBundle

2006-05-10 Thread Helge Hess

On May 10, 2006, at 6:11 AM, Hubert Chan wrote:

the FHS doesn't define things


BTW: before this starts to go in the wrong direction again, we are  
not talking about "just" FHS but integrating with the underlying  
operating systems conventions. Which may not use FHS but some other  
FS structure.


We are just using the FHS name because we have no better word for it  
and because its the most common layout :-)


What we actually refer to is more like "flat ld.so/Unix lookup  
process", that is, lookup based on the "regular" Unix lookup  
approaches (PATH, LD_LIBRARY_PATH, etc).


Greets,
  Helge

PS: FHS doesn't specify ~bin/~lib etc because FHS is concerned about  
system packages, not on user customizations. And system packages  
never install into ~. Well, at least thats how I understand it :-)




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: FHS compliance/Abstraction of NSBundle

2006-05-10 Thread Helge Hess

On May 10, 2006, at 7:25 PM, Hubert Chan wrote:

My main concern, though, is that since the FHS doesn't
define those directories, users might get upset if we start creating
random directories in ~.


OK, I see. Sure, we should not do this. But is anything put into  
GNUSTEP_USER_ROOT except maybe defaults? I guess not unless this is  
specifically requested by the user.


I think creating a ~/.gnustep directory containing per-user  
configuration is reasonable and common practice.


BTW: libFoundation actually uses $GNUSTEP_USER_ROOT/.libFoundation if  
the GNUSTEP_USER_ROOT env var is set, otherwise ~/.libFoundation.


Greets,
  Helge



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: FHS compliance/Abstraction of NSBundle

2006-05-10 Thread Helge Hess

On May 11, 2006, at 12:39 AM, Hubert Chan wrote:

But if we make GNUSTEP_USER_ROOT to be
~/.GNUstep, then user-installed applications, libraries, etc. get
installed in a not-too-nice place, IHMO.


I can't see how this matters for user-installed applications. They  
can (and should be able to) live everywhere the user wants.  
Especially for applications even PATH is irrelevant as they will be  
started by GWorkspace or the dock.
Would be cool to be able to deploy libraries inside .app wrappers, I  
think this isn't supported by GNUstep?


Libraries can live whereever the user wants too. He just needs to set  
the LD_LIBRARY_PATH - plain Unix. He might choose to use ~/lib for  
that. Or not ...

Personally I do have a ~/bin which I add to my PATH for own scripts.

Finally, I wouldn't equal GNUSTEP_USER_ROOT to ~/.GNUstep (or ~).  
~/.GNUstep is for configuration when no GNUstep environment is  
sourced. Its definitely not for binaries or resources, just for  
configuration.


Greets,
  Helge



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: [Gnustep-cvs] GNUstep Testfarm Results

2006-08-11 Thread Helge Hess

On Aug 11, 2006, at 12:27, Fred Kiefer wrote:

and in many cases it is still faster than the later gcc
releases.


I don't think thats true anymore for gcc4 and up. Not to mention PCH ...

libFoundation recently deprecated 2.95 support because those do not  
support -fconstant-string-class.


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Removing all remaining distinction between shared, debug, profile and static libs/executables

2006-09-07 Thread Helge Hess

On Sep 7, 2006, at 19:11, Adrian Robert wrote:
This is probably best for simplification as you say but it will  
impose a cost to switching back and forth between, e.g., profiled  
and non-profiled versions.


Do you actually use profiling with gprof? I've always used  
KCachegrind in the last few years instead. So IMHO its superflous  
anyway.


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Advertisement for gnustep

2006-09-10 Thread Helge Hess

On Sep 10, 2006, at 18:19, Nicola Pero wrote:
Good point ... I'm afraid I was thinking of the "server-side"  
Java. ;-)


I mean, you know all those "enterprise applications" that have no  
GUI --

or that have a web interface as the user interface. :-)


Well, for the advertisement. What would you say, _why_ is GNUstep  
good for that? :-)


Eg Ruby tries to get into that market by allowing the user to  
contruct flashy web 2.0 apps in a few minutes (and they do not seem  
to succeed). Do we have a similiar unique feature which could drive  
enterprise people to try GNUstep?


Thanks,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Advertisement for gnustep

2006-09-10 Thread Helge Hess

On Sep 10, 2006, at 22:00, Philippe C.D. Robert wrote:
Well, for the advertisement. What would you say, _why_ is GNUstep  
good for that? :-)


Eg Ruby tries to get into that market by allowing the user to  
contruct flashy web 2.0 apps in a few minutes (and they do not  
seem to succeed). Do we have a similiar unique feature which could  
drive enterprise people to try GNUstep?


These people are not exactly waiting for yet another cross-platform  
framework. IMO the only chance for GNUstep to get some wider  
adoption is to focus on the desktop paradigm for X11 based Unices.  
But then again, we had this discussion for a very long time...


Hm, the response is slightly out of context, no? :-) Please don't  
turn it into the discussion "we had a for a very long time", we all  
know that :-) The initial point was an agreement that as a desktop we  
have nothing to advertise successfully _right now_ and the question  
what we _could_ advertise w/o disappointing people.


Nicola correctly said that the best thing about GNUstep is the  
Foundation library. Though I have a few issues (eg bad out-of-the-box  
FHS support) it can certainly be considered finished.

Now the question is whether we can somehow advertise this fact?

As we all inofficially know the few places where GNUstep is in fact  
successful are a few large scale GNUstep based enterprise  
applications. The bad thing is that you are not usually allowed to  
talk about them :-)
Well and the other issue is that most usually exist for legacy  
reasons, not because it would be the environment of choice nowadays.


So the question is whether gstep-base could be interesting for people  
and why. Can we put that into an ad which triggers someone?


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Advertisement for gnustep

2006-09-11 Thread Helge Hess

On Sep 11, 2006, at 21:07, Philippe C.D. Robert wrote:
Well, maybe was the phrasing slightly suboptimal, but not the  
message behind it ... ;-) Besides, we don't have a desktop (yet)  
and never will because some project members don't want GNUstep to  
become a desktop in the first place.


I didn't say that your writing was wrong or that the phrasing was  
suboptimal. I just think that you put things out of context.


Why do you think do we have "nothing to advertise successfully"  
after all those years?



I'm not quite sure whether you read my mail. All your points are good  
but thats a different thread, and one which I'm not very motivated to  
discuss again ;-) In fact thats what I liked about Nicola's proposal,  
it suggests to do something with the things we actually do have,  
right now, instead of arguing about what GNUstep could be.



Anyway, what would be your proposal?


I've no proposal which is why I _asked_ for suggestions on how it  
would be possible to turn Nicola's idea into something which can be  
advertised. I'm kinda confused why you reask the same question to me.


Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Advertisement for gnustep

2006-09-12 Thread Helge Hess

On Sep 12, 2006, at 13:38, Gürkan Sengün wrote:

Please pretty please,
don't make new themes, new looks, another "we are gnome, we
are cool", "we are KDE, we are new", "whatever new thing
that is just ugly".


As mentioned by Chris this is indeed a major selling point of GNOME  
and KDE, they look like Windows. Eg GNOME Evolution is an extreme  
example being almost an exact replica of Outlook.


Having a MacOS primary theme would certainly be great instead of a  
Windows like theme. Especially since this has a big potential to  
aquire in Cocoa developers. But then you'll most likely get letters  
from the Apple lawyers making that a no go ;-)


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Advertisement for gnustep

2006-09-12 Thread Helge Hess

On Sep 13, 2006, at 24:19, Yavor Doganov wrote:
And as a  surplus we also would get some more apps for GNUstep  
(even if some of those would be commercial ones).

Free commercial apps are welcome, but not proprietary ones.


Obviously this is non-sense. If proprietary apps wouldn't be welcome,  
GNUstep would be GPL, not LGPL. GNUstep is LGPL to explicitly allow  
for that.


It will be a contribution equal to zero (even a negative number) if  
someone ports a non-free app for GNUstep.


Again utter non-sense. Its quite an excellent contribution for plenty  
of reasons (not only the app itself, but also in the related  
framework improvements) until it gets possibly replaced by a free  
application.


Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Debug as default...

2006-09-20 Thread Helge Hess

On Sep 20, 2006, at 06:19, Nicola Pero wrote:
Anyway, let me know if '-g -O2' causes problems, I presume if the '- 
O2'
seriously confuse the debugger let me know and we can revert that  
change, or maybe use '-g -O' ?


At least the exception handling in libFoundation (which uses nested  
functions) is b0rked with -O2. Not sure about -O. Which is why we  
always disable it ...


(is it possibly to filter out the -O per file?, eg MyStream_OPTIMIZE  
= no or something like this?)


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: GNUstep Makes Fast Scientific Code, Faster Than Cocoa.

2006-10-03 Thread Helge Hess

On Oct 3, 2006, at 18:17, Daniel J Farrell wrote:
Now, not a true test by any means just a tentative suggestion from  
a large command line app. The app is basically a scientific number  
cruncher. I have run the same code, on the same computer, one  
compiled in xcode linking to Cocoa Foundation and the other  
compiled using gcc make, make install, openapp etc. linked to  
GNUstep Base. The GNUstep version is 50% faster (47.8% increase to  
be more precise).


Does GNUstep-base work with the Apple runtime or do you use the GNU  
Objective-C runtime?


If you want to further optimize the issue you should have a look in  
Shark. By comparing the output of the Cocoa with GNUstep binary you  
should also be able to tell why GNUstep performs better in your  
specific case.


Thanks,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


gnustep release numbers

2006-10-04 Thread Helge Hess

Hi,

could we please change the numbering scheme for GNUstep releases?

In my understanding:
Currently when Adam does a release he bumps the soname version (eg  
from 1.12.0 to 1.13.0) in trunk and then tags the release. That means  
after the release, trunk will continue carrying that tag.


I propose a simple modification: Also bump the version after a  
release so that trunk libs can be identified properly. I would also  
suggest to use even numbers for releases and odd numbers for trunk.


That is:
Lets bump the trunk version to 1.15.0 _now_. Next release will be  
1.16.0 and right after its tagged, we bump trunk to 1.17.0. And so on.



Still less than ideal because we have no stable version but an  
improvement over the current situation which makes it hard to  
distinguish dev snapshots from final releases.


Thanks a lot,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep release numbers

2006-10-04 Thread Helge Hess

On Oct 4, 2006, at 13:30, Richard Frith-Macdonald wrote:
Still less than ideal because we have no stable version but an  
improvement over the current situation which makes it hard to  
distinguish dev snapshots from final releases.
I don't think we have a policy of making unstable releases ... so  
all releases are stable.


As far as I'm concerned all GNUstep releases are in fact unstable  
because they always change the ABI. But we discussed / outlined in a  
long thread a while ago.


Note: by 'unstable' I don't mean that the code itself is buggy but  
that the ABI is unstable.


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep release numbers

2006-10-04 Thread Helge Hess

On Oct 4, 2006, at 13:46, David Ayers wrote:

IIRC we have a long
discussion in the archive about not bumping SO numbers unless we know
binary compatibility was broken.


Did we have a single gstep-base release which did NOT break the ABI?  
I don't think so.
As mentioned in that long discussion ;-) I'm in favor of doing an  
occasional ABI stable release and have frequent ABI unstable ones  
properly tagged as such. The latter then do not need to preserve ABI  
stability for sonames.


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep release numbers

2006-10-04 Thread Helge Hess

On Oct 4, 2006, at 18:33, Gregory John Casamento wrote:
Since, you're the one making this assertion, I believe it's up to  
you to prove that we have broken it in every release.


Thats trivial, just check the changelog:
http://www.gnustep.org/resources/documentation/Developer/Base/ 
ReleaseNotes/ReleaseNotes.html


As outlined in the ChangeLog every single release broke the ABI. Well  
there is  one, 1.10.3, which didn't seem too just by looking at the  
changelog (at least this was a subminor release).


Absolutely no offense intended, but its a matter of fact GNUstep is  
highly ABI unstable.


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep release numbers

2006-10-04 Thread Helge Hess

On Oct 4, 2006, at 18:42, Richard Frith-Macdonald wrote:
Note: by 'unstable' I don't mean that the code itself is buggy but  
that the ABI is unstable.
Fair enough ... that's your definition ... but it's rather an  
unusual one.


Really? I think thats the term usually used by OpenSource projects.  
But anyway ;-)


Stability is an inherent requirement for Linux distributions because  
they can't change the ABI constantly. Which makes it a cycle of ~2  
years for all (serious) distributions. But at least 12 months.



In fact not all GNUstep releases change the ABI,


See my other mail. According to the changelog all the late GNUstep  
releases always changed the ABI.


but the ones which you term 'stable' are what are generally called  
bugfix releases.


Yes, 'stable' is the branch. And individual release after the first  
release of the stable branch is a bugfix release.


There are very few of those in GNUstep ... not because there are no  
bugs, but because we generally lack the manpower (volunteers with  
the inclination to do it) to make lots of bugfix releases.


I honestly don't think that this is a major issue. Those people who  
need a stable release and have issues with a certain bug will  
backport fixes (not trunk developers).


Most likely this doesn't need to happen very often because gnustep- 
make and gnustep-base code is in fact largely bug free. The changes  
in those libraries are additions/fixups to the API, code improvements/ 
rewrites, performance updates, etc.


And of course the interest in providing bugfix releases to a stable  
branch increases as the number of stable branches is reduced. Leading  
to solid software :-)



However, it should be easy to tell a bugfix ('stable') release ...  
it has the same major and minor version number as a normal release,  
but an incremented subminor number.


Yes. But prior having bugfix releases we need a stable branch. One  
which doesn't change ABI every 3 months but lasts for at least a  
year, better two. We don't have that.



Anyway, not sure whether we can find a solution here. We didn't found  
one in past discussions :-)
Which I find a bit unfortunate because the code itself of gnustep- 
base/gnustep-make is stable for such a long time.


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep release numbers

2006-10-04 Thread Helge Hess

Richard,

you outline the scenario as an either/or (more frequent vs less  
frequent) while IMHO its quite the contrary. The current situation  
suits neither of the "camps", for most its too slow, for some its (by  
far) too fast. I don't think there is anyone who wants an "almost  
stable" version.
I think my proposal suits _both_ camps much better. It allows for  
more frequent alpha releases while at the same time allowing for a  
stable release.


Why? Currently you have a mixed situation where you even make bugfix  
releases for unstable releases (1.10.1, 1.10.2 etc). In my scenario  
you have one version where you don't need to care at all about  
backwards compatibility and just *one* which you keep ABI stable.


Your suggestion that one can just "stop" updating is really  
incomprehensible. By this you suggest that everyone who wants to use  
GNUstep libraries in broader deployments needs to maintain his own  
stable branch (and pkgs for distris). Well, at least for us thats  
(much) more work than just staying with libFoundation. And it  
wouldn't really be GNUstep anymore anyway but a fork. I think I can  
safely assume thats exactly the same for other people (if there are  
any ;-) who actually want to use GNUstep in a setting with out-of-the- 
house deployments.


We recently upgraded libFoundation from 1.0 to 1.1 which in fact was  
a major migration (and amount of confusion) for users (which 95% use  
binary packages).
Notably we did this in our unstable branch (OGo 1.1). I guess that  
the users which use the ages old but rock solid OGo 1.0 and the ones  
which use OGo 1.1 is about 50/50. Even the latter complain with  
1.0=>1.1 changes ;-)



Anyway, don't mind ;-) IMHO we can stop the thread now, the proposal  
doesn't matter for people who really use GNUstep now. So it won't  
change. As always.


Greets,
  Helge

PS: "So GNUstep releases are now 'stable' because each release starts  
a branch in svn where bugfixes can be applied ... this is a purely  
academic distinction". Of course this is nonsense. A branch itself  
doesn't make a version stable, but a branch can be marked as a stable  
branch (eg by an even version number ;-). Declaring something  
"stable" is a commitment/discipline not to change the ABI of that  
branch in the next n months, nothing technically enforced (well, real  
projects have release managers ;-)
 



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep release numbers

2006-10-04 Thread Helge Hess

On Oct 5, 2006, at 24:30, Hubert Chan wrote:

I would prefer to have more frequent releases, but with a stable
SONAME/ABI.


Thats an obvious contradiction. Its close to impossible to advance  
the functionality w/o changing the ABI. If you have set an ABI its  
set in stone, you can only provide bugfixes.



(you never need to recompile programs for a new release if you keep
the old libraries ... that's what library versioning is for)e
.

[users do NOT compile programs, developers do]
Actually, with the recent GNUstep 0.11.0/1.13.0 release, you are  
unable

to run programs compiled against 0.10.3/1.12.0 because the old library
could not communicate with ... I think it was gdnc (I assume due to a
change in the communication protocol).


...

On the other hand, if you take a program compiled against  
0.10.3/1.12.0

and make libgnustep-base.so.1.12.0 a symlink to
libgnustep-base.so.1.13.0, and libgnustep-gui.so.0.10.3 a symlink to
libgnustep-gui.so.0.11.0, it seems to run perfectly fine.


Thats because the program you check only uses the "old" API. ABI  
compatibility is _exact_. You can't add a (public) class or method  
and you must not "fix"(/change) the behaviour in an incompatible way.
Eg if gnustep-base 1.13.0 adds NSOutputStream and a tool uses that it  
can't be ABI compatible with 1.10.0 for obvious reasons.


So keeping a stable ABI bites with advancing gnustep-base which is  
often work for adding additional Cocoa methods, classes or fixing  
incompatible behaviours etc.
Which is why I _encourage_ having more GNUstep _alpha_ releases to  
move things forward quickly in the release-early-release-often  
spirit. But at the same time its not really hard to keep _one_  
maintained and published "guaranteed" state a "thirdparty" developer  
can rely on.


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep release numbers

2006-10-04 Thread Helge Hess

On Oct 5, 2006, at 01:27, Jeremy Bettis wrote:
I thought that to provide a "stable" ABI, you just can't do these  
things:

...

But these things should not cause instabilitity:

Adding a class
Adding a method


Thats wrong. A soname fixes one API, it can be neither extended nor  
reduced (nor changed in the behaviour). I already gave the example of  
adding a class.


You are mixing up ABIs (or more exactly sonames) with backward  
compatible APIs :-) APIs ensure source code compatibility while ABIs  
ensure binary compatibility. (you can replace the library and an  
arbitary program linked against the specific soname still works)


GNUstep has very good API compatibility but this doesn't help at all  
with binary packages.


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep release numbers

2006-10-05 Thread Helge Hess
 which first need to get into the system w/o being  
exposed to update issues and other sideeffects they do not care about  
when getting it up and running. The stable OGo (1.0) packages are  
very well tested and all install-issues are well known and well  
supported by the community.


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Checking breakage of backward compatibility

2006-10-05 Thread Helge Hess

On Oct 5, 2006, at 12:45, Richard Frith-Macdonald wrote:

On 4 Oct 2006, at 12:46, David Ayers wrote:
I'm almost indifferent on the subject.  But in practice I believe  
people

will unknowingly break binary compatibility and forget to bump the SO
name.  I think this is worse than forcing folks to recompile apps  
just

because the SO name bumped even though it didn't break binary
compatibility but like I said.  I wouldn't mind either way.
That worries me too ... but I think we *must* try to be strict  
about it.


I don't think it will work to enforce being strict about this on all  
developers (same for other non-hack stuff, like documentation). Its  
too much work and slows down development because you can't  
concentrate on the actual thing you want to do.


So in my model we would just bump the soname before/after each alpha  
release. Or possibly even keep it the same because it has little  
practical value for alpha anyways, no special preferences here.


Writing an automated testsuite (which would also need to be  
maintained) is IMHO a waste of efforts.


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: gnustep release numbers

2006-10-05 Thread Helge Hess

On Oct 5, 2006, at 16:01, Dennis Leeuw wrote:
Currently the frequency in which we jump Major release numbers, and  
thus breaking the ABI are not frequent.


Thats incorrect. For GNUstep the soname is Major.Minor, not Major.  
Which is correct because the soname compatibility indeed broke for  
every major.minor release in the past (classes or methods got added/ 
removed/behaviour changed).

---
lrwxrwxrwx   1 root root  23 Oct  4 11:58 libgnustep-base.so ->  
libgnustep-base.so.1.13
lrwxrwxrwx   1 root root  25 Oct  4 11:58 libgnustep-base.so.1.13  
-> libgnustep-base.so.1.13.0

-rwxr-xr-x   1 root root 7721941 Oct  4 11:58 libgnustep-base.so.1.13.0
---

You can't expect an application developed against 1.13.0 to run with  
base 1.10 (despite having the same major version). I think its rather  
trivial to proove that.



Again, you can easily check for (required!) soname increases in the  
ChangeLog:
  http://www.gnustep.org/resources/documentation/Developer/Base/ 
ReleaseNotes/ReleaseNotes.html


eg:
---snip---
Version 1.13.0

Several sets of classes have been added for dealing with urls and  
predicates


Version 1.12.0

NSStream, NSIndexPath
New classes added to the library.

Version 1.10.1
NSXMLParser class added

Version 1.9.2:
NSError
New MacOSX compatibility class
---snap---
etc. just extracted one example. per version and just included 4  
versions.



Base is a highly moving target for any developer. He can't know what  
he will be able to use on a deployed system (eg is NSStream available  
or not).



Am I missing a point here?


Yes, see above ;-)

Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Versioning/release policy proposal

2006-10-06 Thread Helge Hess

On Oct 6, 2006, at 20:16, Fred Kiefer wrote:
I like this proposal very much, there is one area, where I see  
problems,
but we could wait until we actually face them. This is the  
question, who

will be willing to work on the bugfix releases?
Most developers will spend their time and efforts on the new unstable
release, then somebody needs to decide that some change to the  
unstable

release is worthwhile to be ported back to the last stable release,
integrate it there and make a release. The procedure itself sounds  
fine,

but as long as nobody volunteers to actually follow it, it wont help.
Any volunteers?


I've already volunteered to do that if we have a real stable release,  
one which is official, promoted that way and lasts for a long time  
(~12..24 months).


I have not reviewed Richard's proposal yet so I can't say yet whether  
it matches what I would expect from a stable release. (its on my  
[long] todo list ;-)


Greets,
  Helge
--
Helge Hess
http://docs.opengroupware.org/Members/helge/




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev