theraven
e0d80861b5
Added some documentation.
15 years ago
theraven
8db63b976f
Initial work on developer mode (allows classes to be replaced at run time with new versions, by cooperating IDEs). This support is part of ongoing work to provide fix-and-continue functionality with Clang / Cling and LanguageKit.
15 years ago
theraven
bde6bf0e14
Fix truncated comment in header and 'worse than useless' macro.
...
Both issues pointed out by Jens Ayton.
15 years ago
ericwa
a7ea477400
libobjc2: put libobjc compatibility functions in runtime.h marked __attribute__((deprecated))
15 years ago
theraven
e70d00a76d
Restore accidentally deleted toydispatch.h.
15 years ago
theraven
7be9f34619
Fixed @synchronize() with a class that has had an instance used for @synchronize().
15 years ago
theraven
ee32f78b0a
Tweaked the GNUmakefile to (more or less) work with gcc.
...
Fixed block introspection for the new (Apple-compatible) ABI.
16 years ago
theraven
025688a2d5
Added property_getName(). Added non-portable API documentation.
16 years ago
theraven
d70523947b
Implement some missing runtime functions.
16 years ago
theraven
9c077368a8
Make sel_copyTypes_np() return the number of types in all cases.
16 years ago
theraven
a029fb2af3
Expose sel_copyTypes_np().
16 years ago
ericwa
7ce5a0ab11
libobjc2: make Object.h include runtime.h
16 years ago
ericwa
c604289023
libobjc2: define SEL as const for GCC
16 years ago
theraven
b1aa77e450
Commit some missing files.
16 years ago
theraven
eb48fda62b
Expose a function needed by GNUstep.
16 years ago
theraven
e2d848467c
Another try...
16 years ago
theraven
00004fe5f3
More tweaks to the GNU-compatibility encoding stuff. This API is too broken to use, but GNUstep seems to want it.
16 years ago
theraven
0177ef56e1
Tweak the type encoding stuff a bit.
16 years ago
theraven
5885fd196a
Add defines for ObjC types (GNUstep apparently uses them, even though they are not part of the language spec, but the things that they define are, so they only serve to obfuscate code where they are used).
16 years ago
theraven
bd58a33b84
Prevent accidental mixing of GNU runtime headers with GNUstep runtime.h.
16 years ago
theraven
f43e7f6845
Fix typo.
16 years ago
theraven
ab59ce1d33
Add feature test APIs to libobjc2.
16 years ago
theraven
77d02d075b
Add some missing protocol introspection functions.
16 years ago
ericwa
52bdf1484f
libobjc2: add dummy objc.h and objc-api.h headers which simply include runtime.h
16 years ago
theraven
0284155f2d
Added a hook that defines the behaviour when you call a method with the wrong signature.
16 years ago
theraven
e9b129d878
Added low memory profile to libobjc2. This uses a more NeXT-style dtable design, which gives better memory usage at the cost of (significantly) worse worst-case performance. The memory savings seem to be only about 10% in the apps I've tested (Gorm, edlc), so it's probably not worthwhile, but it might be useful for someone finding stuff is just starting to swap...
16 years ago
theraven
2cc96a6f7e
Fix message forwarding by, for example, actually calling the public forwarding hook, instead of one that isn't exposed to GNUstep...
16 years ago
theraven
fb474dd7f9
Removed hooks from runtime.h that are in hooks.h
16 years ago
theraven
f375d20d7a
Add support for catching C++ (and Java / Ada) exceptions in Objective-C.
16 years ago
theraven
07758fe521
Removed last bits of legacy code from libobjc2. Added new exception handling implementation.
16 years ago
theraven
b1b9baf382
Finished rewrite of message sending. Deleted lots of legacy stuff.
16 years ago
theraven
bb8cafaa15
Finished rewriting the loader. It's now cleanly separated into logically-separate components, so there's a chance it might actually be maintainable...
16 years ago
theraven
de71ebb6b1
Rewritten class loading.
16 years ago
theraven
7f6f798074
Rewrote some of the class table code to be slightly cleaner.
16 years ago
theraven
a9bdab1f44
Reverted last commit - breaks the build with clang.
...
Fixed the definition of objc_msgSendSuper().
Tweaked the -dealloc implementation for hidden classes used for locking so that @synchronize(self) will work in a -dealloc method.
16 years ago
theraven
ded142ebff
Add empty sarray.h - for some reason GNUstep is trying to #include this file (no idea why, as nothing in GNUstep actually uses anything from it). Adding an empty version should prevent breakage for now.
16 years ago
theraven
b04cccf46b
Fixed some issues in runtime.c when looking up methods. This fixes some issues with DO.
...
Removed GNU dtable and sparse array implementations, replaced entirely now with versions based on the Étoilé runtime. Performance is roughly equivalent in microbenchmarks, memory usage is significantly lower (Gorm goes from 95MB to 50MB on my machine - this will be even more pronounced on 64-bit systems), which should improve cache usage considerably. Still room for some performance tuning, however.
16 years ago
theraven
2d84b96a72
Tidied up some bits by creating private headers for private data structures.
...
Imported selector table code frm the Étoilé runtime. We can now make dispatch type dependent with a -D switch. Not enabled yet, but it will be enabled in a warning mode soon - I consider preferable to the existing GNU and Apple solution of corrupting the stack.
16 years ago
theraven
289d412dac
Fixed lookup of superclass when superclass is nil.
16 years ago
rfm
bc0ad88a82
complete backport
16 years ago
rfm
e2f4f38e45
backport bugfixes from ObjectiveC2 code
16 years ago
rfm
607bc433c9
Fix instance variable lookup to match OSX
16 years ago
theraven
ae11414b4d
Handle case where @synchronized is used with a class.
16 years ago
theraven
d3c4703b46
Removed bits of Object that depended on the horrible stuff in archive.c.
16 years ago
theraven
da9aafd3ed
More fixes for bugs found by Mizuki.
16 years ago
theraven
2a5ba9f18a
Fixed class_get_super_class() so that it actually works and simplified class_getSuperclass() to call it directly. This fixes numerous other corner cases, for example you can now throw a constant string as an exception and have it work correctly even if no constant string objects have been sent messages.
...
Hopefully this will fix a few other Heisenbugs and reduce the strength of the Mottola Effect.
16 years ago
theraven
16c3ec8f46
Correctly declare the runtime hooks as extern. Was causing copies of them to show up in the uninitialised data section of libraries that included runtime.h, clobbering the default version and causing a crash when the runtime tried to call them.
16 years ago
qmathe
8b9c723905
Added object_setClass
16 years ago
theraven
4771cd4e43
Added selector lookup functions. Implementations by Eric Wasylishen.
16 years ago
theraven
baed61c3e6
Added property support functions, NSBlock base classes and uncaught exception handler.
16 years ago