theraven
b76b4be925
Disable selector type mismatch warnings, for the release.
15 years ago
thebeing
901c3b6a1c
Fix linking libobjcxx when libobjc has not yet been installed.
15 years ago
theraven
95ef5a93f9
Always use the first version of a class that's loaded twice until the merging code is a bit better tested.
15 years ago
theraven
23b26820f5
Make it easier to suppress mismatched selector warnings. It's useful for the runtime to tell you when your code is bad. Not so useful for it to tell you when someone else's code is bad...
15 years ago
theraven
600e970dea
Separate ObjC++ support out into libobjcxx. Now code that doesn't need ObjCXX support can safely ignore it again.
15 years ago
theraven
7e71ffe24d
Use correct pthread flag on OpenBSD.
...
Patch by Sebastian Reitenbach!
15 years ago
theraven
06ff4be6a9
More build system tidies.
15 years ago
theraven
496c66bd0b
Fix linker errors.
15 years ago
thebeing
ee7817cf57
Implement a hook that allows the compiler to register the aliases used with the
...
@compatibility_alias directive so that they can be resolved at runtime.
15 years ago
theraven
ed9d0f33c9
Actually install the header that's referenced.
15 years ago
theraven
7e465eb325
Tweak building without ObjC++ support a bit.
15 years ago
theraven
73e1e2934b
It turns out that Apple chose some confusing and non-intuitive semantics for
...
catching Objective-C objects in C++ catch statements (i.e. they follow
Objective-C semantics, not C++ semantics, irrespective of whether you use C++
or ObjC syntax). We now default to Apple-compatible behaviour, but provide a
function that allows users to select the sane semantics if they prefer.
Added a capability bit for the unified exception model, so code can require it.
This is not really required, since any code using it will link against the
ObjC++ personality function and will get a linker failure if it isn't supported.
Also enabled Objective-C++ stuff by default. This adds a dependency on the C++
standard library (actually on libsupc++, but GNUstep Make wants to link against
libstd++ anyway), which is not ideal. It can be disabled with:
$ gmake objectiver-cxx=no
I suggest that this is only done by people who know that they will never want
Objective-C++ support.
15 years ago
theraven
e0719a9c62
Added Objective-C++ exception handling support. Allows throwing Objective-C objects with throw or @throw and catching them with catch() or @catch.
15 years ago
theraven
df4570b90e
Change language dialect to gnu99 from c99 - earlier commit required this, but I
...
forgot to commit the GNUmakefile change. Note: the anonymous structure field
extension that requires this is part of C1X, so we can probably change this to
--std=c11 once C1X is actually finalised.
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
4ab4b4033b
Bumped version to 1.1
15 years ago
theraven
a83428b883
Move toydispatch into libobjc2.
...
Some build system tidies.
Add -retain / release to Protocol.
Initial work on clang-specific makefile.
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
ericwa
39b0655877
libobjc2: another makefile hack to get mingw to declare strdup
16 years ago
ericwa
56341816a5
libobjc2: Makefile hack to get the __sync_* GCC builtins to work on Windows
16 years ago
rmottola
c7673659bb
added package information to the makefile
16 years ago
ericwa
9e64fb7828
undo accidentally commited stuff
16 years ago
ericwa
dbb8ea2090
add deprecated sel_eq function for compatibility
16 years ago
theraven
033676b9e7
Enable type-dependent dispatch by default. Stack corruption is bad, m'kay?
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
ab59ce1d33
Add feature test APIs to libobjc2.
16 years ago
rfm
cd1d274928
Remove usage of -march=native since it doesn't work with most compilers, and
...
also causes problems with builds on server farms where the build machine is
not the machine the code will run on.
16 years ago
ericwa
52bdf1484f
libobjc2: add dummy objc.h and objc-api.h headers which simply include runtime.h
16 years ago
ericwa
7a2c302c5f
libobjc2: tweaks to build on Windows
16 years ago
theraven
06015757a7
Type dependent dispatch now actually works.
16 years ago
theraven
f375d20d7a
Add support for catching C++ (and Java / Ada) exceptions in Objective-C.
16 years ago
theraven
eb84a02e97
Reinstate legacy_malloc in the build, unless you disable legacy nonsense.
16 years ago
theraven
b8543a1e13
Removed files that should have gone in the last commit.
16 years ago
theraven
07758fe521
Removed last bits of legacy code from libobjc2. Added new exception handling implementation.
16 years ago
theraven
779b28abeb
Lots of tidying, removing legacy stuff.
16 years ago
theraven
4ee07676cc
Added rewritten encoding parser. The functions that function pointers as arguments and parse compound types should be exposed via the public interfaces, or possibly moved to a separate library - they are generally useful.
16 years ago
theraven
b1b9baf382
Finished rewrite of message sending. Deleted lots of legacy stuff.
16 years ago
theraven
9dcfe43e69
Removed DLL entry point. The Win32 API docs say that this function is optional, and the implementation was doing exactly the same thing as if it was absent. High quality coding at its finest.
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
7c72069fd9
Rewrote ABI compatibility testing. Makes it easier to define new, incompatible ABIs in future without breaking everything.
16 years ago
theraven
fdc1f1e916
Removed more unused code.
16 years ago
theraven
67741f3f68
Removed hash.c - no longer used.
16 years ago
theraven
a1329e22de
A bit more class table tidying.
16 years ago
theraven
7f6f798074
Rewrote some of the class table code to be slightly cleaner.
16 years ago
theraven
3672f04ea3
Default to installing libobjc2 headers
16 years ago
theraven
e482b6986f
More fixes for the new dtable. Now passing all of the EtoileFoundation tests, which do lots of things involving categories, so make a good stress test.
...
No longer installs headers by default. This is because GNUstep Make notices when the objc headers have changed (because GNUstep includes them) and so reinstalling libobjc2 was requiring a complete recompile of anything that you tried to build, even if you only changed one line. A better fix for this would be for install to use cmp or diff to check if the header has been modified before installing it, but I'm too lazy to do that right now.
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
cc41e05598
Revert accidental changes to make file.
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