Rewritten from scratch class lookup internals - getting a good performance
[platform/upstream/gcc.git] / libobjc / ChangeLog
1 Mon Oct 29 21:29:21 2001  Nicola Pero  <n.pero@mi.flashnet.it>
2
3         * class.c: Rewritten the class table to use optimized, lock-free
4         lookup.  This more than doubles the speed of class method
5         invocations.  (class_table_setup), (class_table_insert),
6         (class_table_replace), (class_table_get_safe),
7         (class_table_next), (class_table_print),
8         (class_table_print_histogram): New functions.
9         (__objc_init_class_tables): Use class_table_setup.
10         (__objc_add_class_to_hash): Use class_table_get_safe and
11         class_table_insert.  (objc_lookup_class), (objc_get_class): Do not
12         assert the existence of the table; do not lock the runtime; use
13         class_table_get_safe.  (objc_next_class): Use class_table_next.
14         (__objc_resolve_class_links): Use class_table_next.
15         (class_pose_as): Use class_table_replace.
16
17 2001-09-10  Ovidiu Predescu  <ovidiu@cup.hp.com>
18
19         * gc.c: Removed the DEBUG declaration.
20
21 Wed Jul 18 12:48:56 2001  Nicola Pero  <n.pero@mi.flashnet.it>
22
23         * thr.c (objc_mutex_lock): Invoke __objc_thread_id directly,
24         rather than through objc_thread_id, to save a function call.
25         (objc_mutex_trylock, objc_mutex_unlock, objc_condition_wait):
26         Ditto.
27
28 Mon Jul 16 12:15:00 2001  Nicola Pero  <n.pero@mi.flashnet.it>
29
30         * objc/objc-api.h (object_is_class): Fixed - buggy code was trying
31         to cast an id to a Class, which can not be done.  Make the check
32         by using CLS_ISMETA on the class pointer instead.
33         (object_is_meta_class): Similar fix.
34
35 2001-06-09  Alexandre Oliva  <aoliva@redhat.com>, Stephen L Moshier  <moshier@mediaone.net>
36
37         * configure.in (AC_EXEEXT): Work around in case it expands to
38         nothing, as in autoconf 2.50.
39         * acinclude.m4: Likewise.
40         * configure: Rebuilt.
41
42 2001-06-08  Nicola Pero  <n.pero@mi.flashnet.it>
43
44         * THREADS: Explain that when we compile libobjc inside GCC, we
45         always use thr-objc.c as a backend, which uses GCC's thread code.
46
47 2001-06-06  Richard Frith-Macdonald  <rrfm@gnu.org>
48
49         * init.c (__objc_send_message_in_list): When setting a new entry
50         in __objc_load_methods use the method IMP as key, but check to see
51         if the method is in the hashtable by looking at the IMP also.
52         Also ... call the method after adding it to the hashtable rather
53         than before ... thus preventing an obscure possibility of infinite
54         recursion if a +load method itself loads a subclass.
55
56 2001-05-25  Ovidiu Predescu  <ovidiu@cup.hp.com>
57
58         * init.c (__objc_send_message_in_list): When setting a new entry
59         in __objc_load_methods use the method name as key, not the method
60         IMP (reported by Richard Frith-Macdonald <richard@brainstorm.co.uk>).
61
62 2001-05-09  Joseph S. Myers  <jsm28@cam.ac.uk>
63
64         * objc-features.texi: Move to ../gcc/objc.texi.
65         * fdl.texi: Remove.
66         * Makefile.in: Don't generate documentation from
67         objc-features.texi.
68
69 2001-05-01  Mark Mitchell  <mark@codesourcery.com>
70
71         * fdl.texi: New file.
72         * objc-features.texi: Simplify.
73         * Makefile.in: Adjust accordingly.
74
75 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
76
77         * objc-features.texi: Use the GFDL.
78
79 Wed Mar 21 04:44:58 EST 2001  John Wehle  (john@feith.com)
80
81         * encoding.c (REAL_TYPE): Define.
82
83 2001-03-19  David Edelsohn  <edelsohn@gnu.org>
84
85         * encoding.c (TYPE_MODE): Define.
86
87 2001-03-14  Nicola Pero  <n.pero@mi.flashnet.it>
88
89         * thr.c (objc_thread_add): New function.
90         (objc_thread_remove): Ditto.
91         * objc/thr.h: Declare them.
92         * libobjc.def: Mention them.
93
94 2001-02-28  Ovidiu Predescu  <ovidiu@cup.hp.com>
95
96         * objc-features.texi: Document the @compatibility_alias compiler
97         directive (description from Nicola Pero <n.pero@mi.flashnet.it>).
98
99 Fri Feb 23 18:12:00 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
100
101         * sendmsg.c (__objc_forward): Delete strlen() declaration.
102
103 2001-02-08  Geoffrey Keating  <geoffk@redhat.com>
104
105         * configure.in: Don't run AC_PROG_CC_WORKS or AC_EXEEXT, because
106         we're not interested in the result and they might fail.
107         * configure: Regenerated.
108
109 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
110
111         * objc-features.texi: Use @email.
112
113 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
114
115         * sendmsg.c (__objc_print_dtable_stats): Don't use #ifdef inside
116         printf.
117
118 2000-01-11  Richard Earnshaw  <rearnsha@arm.com>
119
120         * encoding.c (STRUCTURE_SIZE_BOUNDARY): Redefine in a way that
121         determines the value dynamically.
122
123 Wed Jan  3 00:49:10 2001  Ovidiu Predescu  <ovidiu@cup.hp.com>
124
125         * sendmsg.c: Added __objc_msg_forward, a hook that allows external
126         libraries to provide a function that returns the real forwarding
127         function. This can alleviate problems __builtin_apply() and
128         friends have on various platforms. (Solution suggested by Helge
129         Hess.)
130         
131         * objc/objc-api.h: Define __objc_msg_forward.
132
133         * sendmsg.c: Define gen_rtx_REG.
134
135 2000-12-06      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
136
137         * thr-rtems.c: New file. Stub to compile. 
138
139 2000-09-06  Alexandre Oliva  <aoliva@redhat.com>
140
141         * configure: Rebuilt with new libtool.m4.
142
143 Tue Aug 15 00:38:56 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
144
145         * configure.in: Create a config.h file. Check for <sched.h>.
146         * configure: Regenerate.
147
148         * config.h.in: Check for <sched.h>.
149
150 2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
151
152         * configure: Regenerate after change to ../libtool.m4.
153
154 2000-08-14  Andreas Schwab  <schwab@suse.de>
155
156         * objc-features.texi (Top): Move @menu at end of node.
157
158 2000-08-11  Manfred Hollstein  <manfredh@redhat.com>
159
160         * objc-features.texi: Move @node Top before @menu.
161
162 Sun Aug  6 23:27:49 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
163
164         * objc-features.texi: Documented the new -fconstant-string-class
165         option.
166
167 Sun Aug  6 22:51:16 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
168
169         * thr-posix.c: Integrated Chris Ball's <cball@fmco.com> changes to
170         improve the Posix thread support for Objective-C.
171
172 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
173
174         * aclocal.m4: Replace copy of ../libtool.m4 with
175         sinclude(../libtool.m4).
176
177 Fri Jul 28 08:58:02 2000  Nicola Pero  <nicola@brainstorm.co.uk>
178
179         * configure.in: Added libtool support; build shared libraries 
180         if --enable-shared was passed on command line.
181         * Makefile.in: Modified most compilation commands to use libtool.
182         * aclocal.m4: New symbolic link to the ../libtool.m4, from the
183         libtool distribution.
184
185 Sat Jul 29 00:10:21 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
186
187         * sarray.c, Object.m: Removed the explicit prototypes for strlen
188         and memcpy on 64-bit platforms (Suggested by Rodney Brown
189         <rdb@cup.hp.com>).
190
191 2000-05-12  H.J. Lu  (hjl@gnu.org)
192
193         * Makefile.in (GTHREAD_FLAGS): New.
194         (ALL_CFLAGS): Add $(GTHREAD_FLAGS).
195         (OBJC_THREAD_FILE): Changed to thr-objc.
196
197         * configure.in (GTHREAD_FLAGS): New, check and replace it for
198         Makefile.
199         (OBJC_THREAD_FILE): Removed.
200
201         * thr-objc.c: New.
202
203 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
204
205         * objc/hash.h: Include string.h.
206
207 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
208
209         * Object.m (strlen): 64-bit PowerPC is a 64bit platform as well.
210
211 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
212
213         * Object.m (strlen): Provide prototype on all 64bit platforms,
214         not only alpha.
215         * sarray.c (memcpy): Likewise.
216         * encoding.c (objc_layout_finish_structure): Don't use
217         ROUND_TYPE_ALIGN on sparc.
218
219         * encoding.c (objc_layout_structure_next_member): Do the whole
220         procedure even for the first member, so that we get correct
221         alignment.
222
223 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
224
225         * objc/Protocol.h, objc/objc-list.h: Change #endif labels to
226         comments.
227
228 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
229
230         * Makefile.in: Add -DIN_TARGET_LIBS to ALL_CFLAGS.
231
232 Thu Sep 23 07:19:12 1999   Chris Ball <cball@fmco.com>
233
234         * thr-posix.c (__objc_mutex_deallocate): made deallocate work.
235
236 Tue Sep 21 07:47:10 1999  Jeffrey A Law  (law@cygnus.com)
237
238         * Makefile.in (gc.o, gc_gc.o): Do not pass -fgnu-runtime to
239         the compiler when building C code.
240         
241 Fri Aug  6 23:32:29 1999  Daniel Jacobowitz <drow@drow.them.org>
242
243         * Makefile.in (FLAGS_TO_PASS): Include prefix, exec_prefix,
244         libdir, libsubdir and tooldir.
245
246 Mon Jun 21 05:40:15 1999  John David Anglin <dave@hiauly1>
247
248         * init.c (__objc_force_linking): Make global.
249
250 Thu May 20 03:20:59 1999  Jeffrey A Law  (law@cygnus.com)
251
252         * configure.in (AC_EXEEXT): Remove call.
253         (compiler_name): Explicitly check with no extension and .exe
254         extension.
255         * configure: Regenerate.
256
257 Sun Apr 25 01:15:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
258
259         * Makefile.in (CC1OBJ): Define in terms of CC.
260         (runtime-info.h): Use.
261
262 Fri April 8 08:21:07 1999 Ovidiu Predescu <ovidiu@cup.hp.com>
263
264         * objc-features.texi: Updated the URL to Boehm's GC page.
265
266 Fri Mar 26 23:41:07 1999 Ovidiu Predescu <ovidiu@cup.hp.com>
267
268         * archive.c (__objc_code_char, __objc_write_char): Explicitly specify
269         the char as being signed (patch from Daniel Jacobowitz
270         <drow@false.org>).
271
272 Wed Mar 24 22:41:28 1999  Mumit Khan  <khan@xraylith.wisc.edu>
273
274         * configure.in (AC_PREREQ): Update to 2.13.
275         (AC_EXEEXT): Call to find possible file extension.
276         (compiler_name): Use.
277         * configure: Regenerate.
278
279 Wed Jan 27 02:31:01 1999  Jeffrey A Law  (law@cygnus.com)
280
281         * Makefile.in (ALL_CFLAGS): Add -DIN_GCC.
282
283 Tue Jan  5 01:38:53 1999  Jeffrey A Law  (law@cygnus.com)
284
285         * configure.in (thread_file): Correct and simplify code to find
286         the thread file.
287         * configure: Rebuilt.
288
289 1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>
290
291         * configure.in (compiler_name): Add check to detect if this
292         language's compiler has been built.
293         * configure: Regenerate.
294
295 Mon Nov 23 16:50:28 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
296
297         *  configure.in: Use AC_PREREQ(2.12.1).
298
299 Thu Nov 19 20:33:37 1998  Jeffrey A Law  (law@cygnus.com)
300
301         * Makefile.in (runtime-info.h): Avoid GNU make extensions.
302
303 Sun Nov  8 17:46:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
304
305         * Makefile.in (INCLUDES): Add -I$(srcdir)/$(MULTISRCTOP)../include.
306
307 Thu Oct 22 14:34:06 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
308
309         * configure.in: Use AC_CONFIG_AUX_DIR($topsrcdir).
310
311 Sat Oct 17 05:21:31 1998  Ovidiu Predescu  <ovidiu@slip.net>
312
313         * objc-features.texi (Top): Changed the email address.
314         * objc-features.texi (Garbage Collection): Use @uref instead of @url.
315
316 Mon Oct 11 21:25:27 1998  Ovidiu Predescu  <ovidiu@slip.net>
317
318         * encoding.c: Redefine get_inner_array_type to get the first entry
319         in the structure.
320
321 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald <richard@brainstorm.co.uk>
322
323         * encoding.c (objc_skip_type_qualifiers): Handle _C_BYREF.
324         (objc_get_type_qualifiers): Similarly.
325         * objc/encoding.h (_C_BYREF): Define.
326         (_F_BYREF): Define.
327
328 1998-10-07  David S. Miller  <davem@pierdol.cobaltmicro.com>
329
330         * objc/sarray.h: Make boffset be an unsigned long when sparc so it
331         works out on 64-bit systems.
332
333 Tue Oct  6 20:32:06 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
334
335         * Makefile.in (INCLUDES): Make it multilib-friendly.
336
337 Fri Oct  2 07:12:14 1998  H.J. Lu  (hjl@gnu.org)
338
339         * Makefile.in (INCLUDES): Add -I$(srcdir)/../gcc.
340
341 Thu Oct  1 22:33:03 1998 Robert Lipe  <robertl@dgii.com>
342                          Jeffrey A Law  (law@cygnus.com)
343
344         * Makefile.in (INCLUDES): Reference gcc via $MULTIBUILDTOP.
345         (FLAGS_TO_PASS): Added.
346         (runtime-info.h): Reference cc1ibj via $MULTIBUILDTOP.
347
348         * archive.c: Change config.h to tconfig.h.
349
350         * configure.in: Find gcc's object directory even for multilibs.
351
352 Wed Sep 30 18:17:17 1998  Robert Lipe  <robertl@dgii.com>
353
354         * configure.in: Escape ^ in grep string.
355         * configure: Rebuilt.
356
357 Wed Sep 30 09:14:52 1998  Jeffrey A Law  (law@cygnus.com)
358
359         * All .h files pushed down into the objc/ subdirectory.
360         * Makefile.in (copy_headers): Corresponding changes.
361         * configure.in (AC_INIT): Corresponding changes.
362         * configure: Rebuilt.
363
364 1998-09-30  Ben Elliston  <bje@cygnus.com>
365             Jeff Law      <law@cygnus.com>
366
367         * Makefile.in: Rewrite.
368
369         * configure.in: Likewise.
370
371         * configure: Regenerate.
372
373         * All .c files.  Remove "objc" prefix when including objc header
374         files.  Include tconfig.h, not ../tconfig.h.
375
376 Mon Sep 21 23:27:10 1998  Ovidiu Predescu <ovidiu@slip.net>
377
378         * encoding.c (TREE_TYPE, ARRAY_TYPE): Define.
379         (get_inner_array_type): Define.
380
381 1998-09-21  Ben Elliston  <bje@cygnus.com>
382
383         * New directory.  Moved files from ../gcc/objc.
384