Extensibility in GNUstep & Étoilé
GNU Hackers 2011 http://www.etoileos.com http://www.gnustep.org
jeudi 1 septembre 2011
Extensibility in GNUstep & toil GNU Hackers 2011 - - PowerPoint PPT Presentation
Extensibility in GNUstep & toil GNU Hackers 2011 http://www.etoileos.com http://www.gnustep.org jeudi 1 septembre 2011 Objective-C & GNUstep jeudi 1 septembre 2011 Objective-C Created by Brad Cox and Tom Love in 1986 to
GNU Hackers 2011 http://www.etoileos.com http://www.gnustep.org
jeudi 1 septembre 2011
jeudi 1 septembre 2011
to package C libraries in Smalltalk-like classes
jeudi 1 septembre 2011
@interface Person : NSObject
@end @implementation
NSLog(@“Zzzz!”); } @end
jeudi 1 septembre 2011
@interface Person (Talktative)
@end @implementation Person (Talktative)
return @“poumpoumpidoum”; } @end
jeudi 1 septembre 2011
structs, unions, pointer etc.
jeudi 1 septembre 2011
Persistent Java)
Value Observing)
V8, libobjc2)
jeudi 1 septembre 2011
jeudi 1 septembre 2011
language or library level
id obj = [A new]
[[obj class] isEqual: object_getClass(obj)] // A in both cases
jeudi 1 septembre 2011
choose the class of the returned object
NSString etc.
jeudi 1 septembre 2011
GSCString)
jeudi 1 septembre 2011
control how the concrete classes are choosen
jeudi 1 septembre 2011
new abilities e.g.
jeudi 1 septembre 2011
[NSImageRep registerImageRepClass: [MySVGImageRep class]]; NSImage *img = [[NSImage alloc] initWithContentsOfFile: @“~/tiger.svg”]; // [img representations] contains a MySVGImageRep instance
jeudi 1 septembre 2011
model
class
drawing libs e.g. Cairo, Xlib, GDI
jeudi 1 septembre 2011
that is choosen at launch time
xlib.bundle or libgnustep-cairo.bundle
jeudi 1 septembre 2011
jeudi 1 septembre 2011
A desktop environment built around
Versioning
per app)
jeudi 1 septembre 2011
Well, presently more or less a development platform centered around
jeudi 1 septembre 2011
as LLVM, FFmpeg, TagLib etc.
jeudi 1 septembre 2011
jeudi 1 septembre 2011
based on the ObjC object model
jeudi 1 septembre 2011
integer computation)
call sites…
jeudi 1 septembre 2011
jeudi 1 septembre 2011
Fibonacci benchmark ran the same speed as GCC 4.2.1
micro-benchmarks
source Smalltalk such as Squeak
jeudi 1 septembre 2011
such as int, float etc.
compiled to bitcode and inlined by LLVM
FFI, just do C sqrt: 42 for sqrt(42)
jeudi 1 septembre 2011
Composed of several components in separate libraries
bundled with an AST interpreter
static compilation)
currently)
jeudi 1 septembre 2011
around to some Smalltalk or ObjC code
jeudi 1 septembre 2011
jeudi 1 septembre 2011
Drawing Support Widget Backend EtoileUI CoreObject EtoileFoundation GNUstep
jeudi 1 septembre 2011
approx 40k lines of code. Not tiny, by any stretch of the imagination, but way, way smaller than people seem to think it is.
From: http://digg.com/linux_unix/Nautilus_vs_Dolphin_vs_Konqueror
jeudi 1 septembre 2011
jeudi 1 septembre 2011
jeudi 1 septembre 2011
view…
jeudi 1 septembre 2011
An existing application should be easy to retarget
jeudi 1 septembre 2011
jeudi 1 septembre 2011
jeudi 1 septembre 2011
jeudi 1 septembre 2011
Many things are just layout items
jeudi 1 septembre 2011
gnustep.org ◆ etoileos.com
jeudi 1 septembre 2011