1 2010-03-25 Mark Probst <mark.probst@gmail.com>
3 * mono-hash.c, mono-ehash.c: Fix rehashing with regard to moving
4 GC. Register root for ehash.
6 2010-03-24 Andrés G. Aragoneses <knocte@gmail.com>
8 * mono-dl.c: (mono_dl_build_path) Take in account the suffix
9 variable assigned wrt the prefix comparison to concat the final
10 path for dlopen. Fixes BNC#588143. r:vargaz
12 2010-03-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
14 * mono-semaphore.h: MONO_SEM_WAIT() return value inverted when using
16 * mono-semaphore.c: handle INFINITE timeout.
18 2010-03-22 Zoltan Varga <vargaz@gmail.com>
20 * mono-sigcontext.h: Define UCONTEXT accessors for openbsd/amd64.
22 2010-03-22 Zoltan Varga <vargaz@gmail.com>
24 * mono-sigcontext.h: Applied patch from Robert Nagy (Robert@openbsd.org).
25 Add OpenBSD definitions.
27 2010-03-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
29 * mono-semaphore.c: _timedwait takes an absolute time.
31 2010-03-04 Zoltan Varga <vargaz@gmail.com>
33 * strtod.c: Get rid of locking so this works with eglib.
35 2010-03-03 Gonzalo Paniagua Javier <gonzalo@novell.com>
37 * mono-mmap.c: apparently kill() can return ENOMEM. Also use signal 0
38 which is the documented way of testing for the existence of a PID.
41 Thu Feb 25 11:59:22 CET 2010 Paolo Molaro <lupus@ximian.com>
43 * mono-logger.h, Makefile.am: expose in the API the ability to
44 set trace mask and level.
45 * mono-logger-internal.h: new header for mono internal use.
46 * mono-logger.c: fixed mono_trace_set_mask_string() to not change
47 the passed string argument.
49 Wed Feb 24 15:50:55 CET 2010 Paolo Molaro <lupus@ximian.com>
51 * mono-publib.h, mono-publib.c: new public header file to allow
52 the removal of gli from the other public headers.
53 * Makefile.am: install only the public header mono-publib.h.
55 2010-02-19 Gonzalo Paniagua Javier <gonzalo@novell.com>
57 * mono-semaphore.h: enable the #defines when io-layer is in use.
58 * Makefile.am: added new file.
59 * mono-semaphore.c: new mono_sem_timedwait() function.
61 2010-02-19 Gonzalo Paniagua Javier <gonzalo@novell.com>
63 * mono-semaphore.h: set maximum count to 0x7fffffff.
65 2010-01-28 Rodrigo Kumpera <rkumpera@novell.com>
67 * mono-error-internals.h: Add mono_error_set_not_verifiable.
69 * mono-error.h: Add MONO_ERROR_NOT_VERIFIABLE.
71 * mono-error.c: Implement mono_error_set_not_verifiable.
73 2010-01-26 U-anarquia\miguel <miguel@anarquia>
75 * mono-dl.c: Removed debugging messages for the embeddable version
78 2010-01-22 Miguel de Icaza (miguel@novell.com)
80 * mono-dl.c: Always strdup the return value, for consistency.
82 2010-01-18 Sebastien Pouliot <sebastien@ximian.com>
84 * mono-error.c: Call va_end/va_start before reusing 'args'.
86 2010-01-15 Gonzalo Paniagua Javier <gonzalo@novell.com>
88 * mono-hash.c: fix the null-gc build.
90 2010-01-11 Miguel de Icaza <miguel@novell.com>
92 * valgrind.h, memcheck.h: Add guards to prevent the gcc features
93 from being included in non-GCC builds like the Windows build.
95 2010-01-03 Zoltan Varga <vargaz@gmail.com>
97 * mono-path.c (mono_path_resolve_symlinks): Use g_strfreev () to free the
100 2009-12-18 Zoltan Varga <vargaz@gmail.com>
102 * valgrind.h memcheck.h: New files containing the BSD licensed valgrind
103 headers so we can use the valgrind user requests even if mono is compiled on
104 a system where they are not installed.
106 2009-12-11 Marek Habersack <mhabersack@novell.com>
108 * mono-io-portability.c: moved all the reporting code to the IOMAP
110 (mono_portability_find_file_internal): calls mono_profiler_iomap
111 whenever an adjustement is made.
113 2009-12-02 Mark Probst <mark.probst@gmail.com>
115 * mono-hash.c: Don't use MONO_ROOT_SETREF for setting keys and
116 values. It's unnecessary - the hash table has a marking function
117 which takes care of all GC-tracked keys and values.
119 2009-11-26 Zoltan Varga <vargaz@gmail.com>
121 * mono-ehash.c (mono_g_hash_table_find): Add this for eglib too.
123 2009-11-25 Rodrigo Kumpera <rkumpera@novell.com>
125 * mono-error-internals.h: Add mono_error_set_bad_image_name and change signature
126 of mono_error_set_bad_image to take a MonoImage instead of a const char *.
128 * mono-error.c: Same.
130 2009-11-25 Zoltan Varga <vargaz@gmail.com>
132 * mono-hash.c (mono_g_hash_table_find): Implement this.
134 2009-11-24 Zoltan Varga <vargaz@gmail.com>
136 * mono-io-portability.c (append_report): g_string_append_vprintf is available
139 2009-11-23 Andreas Färber <andreas.faerber@web.de>
141 * mono-mmap.c (mono_mprotect): Use posix_madvise in absence of madvise.
143 Code contributed under MIT/X11 license.
145 2009-11-23 Marek Habersack <mhabersack@novell.com>
147 * mono-io-portability.c: gather up and report misnamed files
148 accessed by the application if the 'report' option is present in
149 the MONO_IOMAP environment variable.
151 2009-11-13 Jonathan Chambers <joncham@gmail.com>
153 * mono-semaphore.h: Implementation for Windows platform.
155 Code contributed under MIT/X11 license.
157 2009-11-12 Geoff Norton <gnorton@novell.com>
159 * mono-path.c: When resolving symlinks in a path, we need to
160 split on the directory separator and check each level, as
161 readlink only checks the final destination.
163 2009-11-08 Rodrigo Kumpera <rkumpera@novell.com>
165 * mono-sigcontext.h: Add ucontext support for FreeBSD/ppc64.
167 Patch by Justin Hibbits <chmeeedalf@gmail.com>.
169 2009-11-06 Gonzalo Paniagua Javier <gonzalo@novell.com>
171 * mono-error.c: VS does not like this.
173 2009-11-05 Rodrigo Kumpera <rkumpera@novell.com>
175 * mono-error-internals.h: Add mono_error_set_argument and mono_error_raise_exception.
177 * mono-error.h: Add new MONO_ERROR_ARGUMENT constant for
180 * mono-error.c: Implement mono_error_set_argument, mono_error_raise_exception.
182 * mono-error.c (mono_error_prepare_exception) Init error_out at the beginning. Add support
183 for MONO_ERROR_ARGUMENT.
185 2009-10-30 Gonzalo Paniagua Javier <gonzalo@novell.com>
187 * mono-proclib.c: hz is only multiplied by the number of cpus when
190 2009-10-29 Mark Probst <mark.probst@gmail.com>
192 * mono-hash.c (mono_g_hash_mark): Don't use SET_NODE_KEY/VALUE here.
194 2009-10-23 Alp Toker <alp@nuanti.com>
196 Fix embedding API breakage from r144688. mono-compiler.h is an internal
197 header and should not be shipped:
199 * Makefile.am: Include newly added public header mono-error.h in HEADERS so
202 2009-10-23 Rodrigo Kumpera <rkumpera@novell.com>
204 * Makefile.am: Fix make dist.
206 2009-10-22 Rodrigo Kumpera <rkumpera@novell.com>
208 * mono-compiler.h: Add MONO_DEPRECATED.
210 2009-10-22 Rodrigo Kumpera <rkumpera@novell.com>
212 * mono-error.c, mono-error.h, mono-error-internal.h: New error handling
213 structures and functions.
215 * Makefile.am: Add new files.
217 2009-10-12 Joel W. Reed <joelwreed@gmail.com>
219 * mono-networkinterfaces.c, mono-networkinterfaces.h: Read
220 network statistics from "/proc/net/dev" for performance counters.
222 Code is contributed under MIT/X11 license.
224 2009-09-29 Zoltan Varga <vargaz@gmail.com>
226 * mono-compiler.h (MONO_INTERNAL): Disable this on solaris as it produces a
227 millions of warnings during compilation.
229 2009-09-25 Jonathan Chambers <joncham@gmail.com>
231 * mono-logger.c: Include mono-compiler.h for __func__ on MSVC.
233 Code is contributed under MIT/X11 license.
235 2009-09-02 Rodrigo Kumpera <rkumpera@novell.com>
237 * mono-sha1.c: Update documentation.
239 2009-09-02 Rodrigo Kumpera <rkumpera@novell.com>
241 * mono-md5.c: Update documentation.
243 2009-09-02 Sebastien Pouliot <sebastien@ximian.com>
245 * mono-dl.c (mono_dl_open): Don't leak module if name is NULL
246 * mono-md5.c (mono_md5_get_digest_from_file): Close 'fp' even on
247 success (just like we do for sha1)
249 2009-08-21 Mark Probst <mark.probst@gmail.com>
251 * mono-hash.c: When creating a hash table, if the keys are managed
252 objects, assert that we have a hash function. Remove the
253 rehashing after GC marking.
255 2009-08-18 Christian Hergert <chris@dronelabs.com>
257 * strtod.c: Fix warnings for uninitialized variables.
259 2009-08-18 Christian Hergert <chris@dronelabs.com>
262 * mono-counters.c: Fix printf warnings.
264 2009-08-12 Mark Probst <mark.probst@gmail.com>
266 * mono-hash.c (mono_g_hash_mark): If the keys are managed objects,
267 rehash the table after marking.
269 2009-08-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
271 * monobitset.h: add comment.
273 2009-08-01 Zoltan Varga <vargaz@gmail.com>
275 * mono-sigcontext.h (UCONTEXT_GREGS): Fix freebsd definition.
277 2009-07-30 Mark Probst <mark.probst@gmail.com>
279 * mono-sigcontext.h: Include config.h.
281 2009-07-30 Mark Probst <mark.probst@gmail.com>
283 * mono-sigcontext.h, Makefile.am: Arch-dependent sigcontext
284 macros, moved from mini.
286 2009-07-29 Massimiliano Mantione <massi@ximian.com>
288 * mono-codeman.c (free_chunklist and new_codechunk):
289 Call profiler hooks to keep track of code chunks.
291 2009-07-20 Geoff Norton <gnorton@novell.com>
293 * mono-semaphore.h: Refactor from io-layer/thread-private.h so it
294 can be used by the runtime as well.
296 2009-07-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
298 * mono-proclib.c: fix reading processor usage for a process. Patch
299 from Jacob Gladish that fixes bug #523052.
301 2009-07-15 Gonzalo Paniagua Javier <gonzalo@novell.com>
303 * mono-proclib.c: fixed setting the NUL terminator.
304 Thanks to Jacob Gladish.
306 2009-06-15 Zoltan Varga <vargaz@gmail.com>
308 * gc_wrapper.h: Disable thread local alloc on mips.
310 2009-05-26 Zoltan Varga <vargaz@gmail.com>
312 * CMakeLists.txt: New file.
314 2009-05-09 Miguel de Icaza <miguel@novell.com>
316 * mono-value-hash.c (mono_value_hash_table_insert_replace):
317 Initialize variable, to quiet the compiler.
319 * mono-proclib.c: Eliminate two warnings.
321 2009-04-03 Miguel de Icaza <miguel@novell.com>
323 * mono-filemap.c: Move mono_file_unmap for the not-mmap case to
324 the mono-filemap.c file so it can be plugged in platform-specific
327 2009-04-03 Rodrigo Kumpera <rkumpera@novell.com>
330 * strenc.c: Add mono_utf8_validate_and_len_with_bounds.
332 2009-03-23 Zoltan Varga <vargaz@gmail.com>
334 * Makefile.am (libmonoutils_la_SOURCES): Fix make dist.
336 2009-03-22 Zoltan Varga <vargaz@gmail.com>
338 * gc_wrapper.h: Disable thread local allocation for ARM too because of
339 incomplete support in libgc.
341 2009-03-20 Zoltan Varga <vargaz@gmail.com>
343 * gc_wrapper.h: New file, moved from ../os.
345 * Makefile.am: Add gc_wrapper.h
347 2009-03-06 Zoltan Varga <vargaz@gmail.com>
349 * mono-hash.c: Use precise GC allocation for the Boehm GC as well.
351 2009-02-16 Mark Probst <mark.probst@gmail.com>
353 Contributed under the terms of the MIT/X11 license by Steven
354 Munroe <munroesj@us.ibm.com>.
356 * mono-compiler.h: MONO_THREAD_VAR_OFFSET for PPC(64).
358 2009-02-11 Bill Holmes <billholmes54@gmail.com>
360 * mono-filemap.c : Fixing the MSVC build.
362 Contributed under MIT/X11 license.
364 2009-02-03 Miguel de Icaza <miguel@novell.com>
366 * mono-dl.c: Add support for registering in-proc addresses as
367 libraries that can be P/Invoked. Used in operating systems that
368 lack a dynamic linker.
370 * mono-filemap.c: Integrate Paolo's mono-filemap code here, split
371 some code from mono-mmap. into this file to ease porting.
373 * mono-io-portability.c: Use new define to turn off portability
376 2009-01-25 Zoltan Varga <vargaz@gmail.com>
378 * mono-compiler.h (MONO_THREAD_VAR_OFFSET): Add ARM Linux support.
380 2009-01-21 Zoltan Varga <vargaz@gmail.com>
382 * mono-mmap.c: Applied patch from Koushik Dutta
383 (koush@koushikdutta.com). Rework the #ifdefs so Android could use the mmap
386 2009-01-19 Bill Holmes <billholmes54@gmail.com>
388 * mono-path.c (mono_path_canonicalize): Adding support for UNC
391 Contributed under MIT/X11 license.
393 2009-01-18 Zoltan Varga <vargaz@gmail.com>
395 * mono-mmap.c: Applied patch from Koushik Dutta
396 (koush@koushikdutta.com). Add an #ifdef HAVE_SHM_OPEN.
398 2009-01-16 Zoltan Varga <vargaz@gmail.com>
400 * mono-hash.c: Change the roots to use write barriers when running with
401 SGEN, to avoid scanning all the hash nodes at every minor collection.
403 2009-01-15 Zoltan Varga <vargaz@gmail.com>
405 * mono-hash.c: Rewrite the SGEN specific parts to use a user defined
406 marker function instead of registering each GC node as a hash root.
408 2009-01-08 Bill Holmes <billholmes54@gmail.com>
410 * mono-dl.c (mono_dl_open): Fix the MSVC build.
412 Contributed under MIT/X11 license.
414 2008-12-19 Miguel de Icaza <miguel@novell.com>
416 * mono-dl.c (mono_dl_open): Do not crash if the platform does not
419 2008-12-08 Kornél Pál <kornelpal@gmail.com>
421 * mono-time.c (mono_100ns_ticks, PLATFORM_WIN32): Use GetSystemTimeAsFileTime
422 with ULARGE_INTEGER that is more efficient.
424 Contributed under MIT/X11 license.
426 2008-12-02 Rodrigo Kumpera <rkumpera@novell.com>
428 * mono-property-hash.c (mono_property_hash_destroy): Release
429 the root hashtable as well.
431 2008-11-24 Zoltan Varga <vargaz@gmail.com>
433 * freebsd-elf_common.h (struct): Use uint32_t instead of
434 u_int32_t to fix the build on opensolaris.
436 2008-11-18 Zoltan Varga <vargaz@gmail.com>
438 * freebsd-dwarf.h: Add dwarf.h header file from freebsd.
440 2008-11-14 Andreas Färber <andreas.faerber@web.de>
442 * Makefile.am (ENABLE_DTRACE): Re-add dtrace -h flag.
445 Contributed under MIT/X11 license.
447 Mon Nov 10 17:38:41 CET 2008 Paolo Molaro <lupus@ximian.com>
449 * mono-proclib.c: adapt code for FreeBSD and hopefully other BSD
452 Mon Nov 10 17:27:01 CET 2008 Paolo Molaro <lupus@ximian.com>
454 * mono-proclib.c, mono-proclib.h: added elapsed time and parent pid.
456 2008-11-05 Zoltan Varga <vargaz@gmail.com>
458 * Makefile.am (libmonoutils_la_SOURCES): Add the freebsd-elf*.h files to
461 2008-11-04 Zoltan Varga <vargaz@gmail.com>
463 * freebsd-elf32.h freebsd-elf64.h freebsd-elf_common.h: Add elf header
466 Wed Oct 22 17:43:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
468 * mono-proclib.c, mono-proclib.h: added functions to get info
469 about the processors in the system.
471 Wed Oct 22 16:45:20 CEST 2008 Paolo Molaro <lupus@ximian.com>
473 * mono-proclib.c, mono-mmap.c: basic support for OSX and
474 (untested) BSD systems.
476 2008-10-13 Bill Holmes <billholmes54@gmail.com>
478 * mono-proclib.c : Adding a compilation check for HAVE_UNISTD_H.
480 Contributed under MIT/X11 license.
482 Mon Oct 13 14:36:10 CEST 2008 Paolo Molaro <lupus@ximian.com>
484 * mono-proclib.c, mono-proclib.h: added a function to deal with
485 error handling if the caller needs the info.
487 Mon Oct 13 11:11:43 CEST 2008 Paolo Molaro <lupus@ximian.com>
489 * Makefile.am, mono-proclib.c, mono-proclib.h: utility functions to
490 access process-related information.
492 2008-10-08 Zoltan Varga <vargaz@gmail.com>
494 * mono-compiler.h (MONO_THREAD_VAR_OFFSET): Apply a patch from
495 the fedora packagers to the IA64 MONO_THREAD_VAR_OFFSET definition.
497 2008-09-26 Zoltan Varga <vargaz@gmail.com>
499 * mono-mmap.c (mono_shared_area_for_pid): Fix a warning.
501 Thu Sep 18 18:16:45 CEST 2008 Paolo Molaro <lupus@ximian.com>
503 * mono-mmap.c, mono-mmap.h: added mono_shared_area_instances ()
504 too return the list of mono processes with performance counter data.
506 2008-08-27 Bill Holmes <billholmes54@gmail.com>
508 * strenc.c : Fixing some waringings and compiler errors when using
511 Contributed under MIT/X11 license.
513 2008-08-20 Mike Voorhees <vernish13@gmail.com>
515 * strenc.h : Adding declaration for mono_utf8_validate_and_len.
517 * strenc.c : Adding implementation for mono_utf8_validate_and_len.
519 Contributed under MIT/X11 license.
521 2008-08-03 Andreas Färber <andreas.faerber@web.de>
523 * mono-io-portability.c (mono_portability_find_file): Fix ANSI C compliance.
525 Contributed under MIT/X11 license.
527 Fri Aug 1 15:48:53 CEST 2008 Paolo Molaro <lupus@ximian.com>
529 * mono-mmap.h, mono-mmap.c: added support for storing some runtime data
530 in a shared memory page.
532 2008-07-21 Bill Holmes <billholmes54@gmail.com>
534 * mono-membar.h : From previous commit. When including glib.h,
535 <> should be used and not "".
537 Contributed under MIT/X11 license.
539 2008-07-21 Bill Holmes <billholmes54@gmail.com>
541 * mono-membar.h : Including glib.h to get definition of 'inline.' Needed
542 by the MSVC compiler.
544 Contributed under MIT/X11 license.
546 2008-07-09 Zoltan Varga <vargaz@gmail.com>
548 * mono-codeman.c (mono_code_manager_new): Initialize the read-only field.
550 * mono-codeman.c (mono_code_manager_set_read_only): New helper function to
551 set the code manager to read-only status.
552 (mono_code_manager_reserve_align): Assert if the code manager is read only.
554 2008-06-14 Zoltan Varga <vargaz@gmail.com>
556 * mono-codeman.c (new_codechunk): Allocate memory for dynamic code managers
559 * dlmalloc.c: Enable the memalign functions.
561 2008-06-05 Zoltan Varga <vargaz@gmail.com>
563 * Makefile.am (libmonoutils_la_SOURCES): Add dtrace.h.
565 2008-06-05 Andreas Färber <andreas.faerber@web.de>
567 * dtrace.h: New file, defines macros for DTrace probes.
568 * Makefile.am (BUILT_SOURCES): Generate mono-dtrace.h when DTrace enabled.
570 Contributed under MIT/X11 license.
572 2008-05-29 Zoltan Varga <vargaz@gmail.com>
574 * mono-value-hash.c: Remove the unused prime functions. Fixes #395320.
576 2008-05-27 Zoltan Varga <vargaz@gmail.com>
578 * mono-value-hash.c: Fix build on older glib versions.
580 * Makefile.am (libmonoutils_la_SOURCES): Add mono-value-hash.{h,c}.
582 * mono-value-hash.h mono-value-hash.c: New files.
584 2008-05-26 Zoltan Varga <vargaz@gmail.com>
586 * Makefile.am (libmonoutils_la_SOURCES): Add mono-property-hash.{h,c}.
588 * mono-property-hash.h mono-property-hash.c: New files.
590 2008-05-14 Kornél Pál <kornelpal@gmail.com>
592 * mono-path.c (mono_path_canonicalize): Convert '/' to '\' on Windows that
593 fixes path canonicalization for paths containing '/'.
595 Contributed under MIT/X11 license.
597 2008-05-04 Andreas Faerber <andreas.faerber@web.de>
599 * mono-membar.h: Prepare support for OSX/ppc64.
601 Contributed under MIT/X11 license.
603 2008-04-16 Jonathan Chambers <joncham@gmail.com>
604 * monobitset.c (find_first_unset): Use gsize instead of gulong for platform
605 dependent size; fixes Win64.
606 * mono-member.h: Implement mono_memory_barrier, mono_memory_read_barrier, and
607 mono_memory_write_barrier for Win64.
609 Contributed under MIT/X11 license.
611 2008-04-16 Marek Habersack <mhabersack@novell.com>
613 * mono-io-portability.c (mono_portability_find_file): properly
614 process unrooted entries with a trailing slash.
616 2008-04-09 Zoltan Varga <vargaz@gmail.com>
618 * dlmalloc.h dlmalloc.c: New files, a slightly modified version of Doug
619 Lea's malloc package.
621 * mono-codeman.c: Use dlmalloc for managing memory in dynamic code managers,
622 this allows us to set the executable bit on the system memory dlmalloc
623 allocates from, fixing #320036.
625 2008-03-29 Zoltan Varga <vargaz@gmail.com>
627 * mono-logger.h: Move G_END_DECLS outside of an #ifdef. Fixes #375107.
629 2008-03-14 Robert Jordan <robertj@gmx.net>
631 * mono-dl.c (w32_load_module): prevent error dialog by resetting
632 the Win32 error mode during LoadLibrary (). Fixes #360363.
634 * mono-dl.c (w32_dlerror): kill a warning.
636 2007-MM-DD Yoichi NAKAYAMA <nakayama@pixela.co.jp>
638 * mono-membar.h: Memory barrier for mips.
640 Contributed under MIT/X11 license.
642 Tue Feb 26 15:43:26 CET 2008 Paolo Molaro <lupus@ximian.com>
644 * mono-time.c, mono-time.h: new file with the implementation of the
645 time-related routines we need in mono. This includes a hires
646 monotonic clock and a proper monotonic replacement for GetTickCount ().
648 2008-02-13 Zoltan Varga <vargaz@gmail.com>
650 * mono-membar.h (mono_memory_barrier): Applied patch by Sergey Tikhonov
651 <tsv@solvo.ru>. Add alpha support.
653 2008-01-11 Zoltan Varga <vargaz@gmail.com>
655 * mono-io-portability.c: Include errno.h since it is needed by code inside
658 * mono-ehash.c: Don't include os/gc_wrapper.h.
660 2008-01-06 Zoltan Varga <vargaz@gmail.com>
662 * mono-hash.c: Don't include os/gc_wrapper.h.
664 2007-11-06 Geoff Norton <gnorton@novell.com>
666 * strtod.c: Use a G_MUTEX call pattern compatible with eglib. Patch
667 from Jonathan Chambers
669 2007-10-11 Zoltan Varga <vargaz@freemail.hu>
671 * mono-mmap.c (mono_vfree): Fix call to VirtualFree (). Fixes #332165.
673 Mon Oct 8 11:47:44 CEST 2007 Paolo Molaro <lupus@ximian.com>
675 * mono-codeman.c, mono-codeman.h: added a function to be able
676 to specify alignment per-allocation. Changed the code to align
677 the starting position instead of the size, which wouldn't work
678 with variable-alignment.
680 Mon Oct 8 10:51:29 CEST 2007 Paolo Molaro <lupus@ximian.com>
682 * mono-codeman.c, mono-codeman.h: fixed alignment code to not
683 be wasteful, Added documentation. Added mono_code_manager_size ()
684 to gather statistics info about a code manager.
686 Mon Oct 8 10:21:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
688 * mono-counters.h, mono-counters.c: better formatting of the output
689 and added a cleanup function.
691 2007-10-03 Miguel de Icaza <miguel@novell.com>
693 * mono-compiler.h (trunc): Make the definition of trunk for MSC
694 use ceil or floor instead of always using floor which is
697 Issue pointed out by Aras Pranckevicius <aras@unity3d.com>
699 2007-10-02 Jonathan Chambers <joncham@gmail.com>
701 * mono-io-portability.c: Init __mono_io_portability_helpers
702 to PORTABILITY_NONE on windows as mono_portability_helpers_init
703 is not always called before mono_portability_find_file.
705 Code is contributed under MIT/X11 license.
707 2007-10-01 Jonathan Chambers <joncham@gmail.com>
709 * mono-io-portability.c: Only support on non-Windows
712 Code is contributed under MIT/X11 license.
714 Mon Sep 24 17:14:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
716 * strtod.h, strtod.c: made the code threadsafe, fixed gcc warnings,
717 renamed exported call and made it properly internal.
719 2007-09-14 Jonathan Chambers <joncham@gmail.com>
721 * mono-io-portability.c: Add HAVE_UNISTD_H check around include.
723 Code is contributed under MIT/X11 license.
725 Wed Sep 12 15:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
727 * Makefile.am: don't install internal headers.
729 2007-09-12 Marek Habersack <mhabersack@novell.com>
731 * mono-io-portability.c: added. Moved options_init from io-layer.
732 (find_in_dir): moved from io-layer/io-portability.c
733 (mono_portability_find_file): moved find_file from
734 io-layer/io-portability.c, renamed and made MONO_INTERNAL.
736 * mono-io-portability.h: added. Contains declarations utility
737 functions and acros for checking whether MONO_IOMAP is in effect.
738 Added a prototype for mono_portability_find_file.
740 2007-09-09 Zoltan Varga <vargaz@gmail.com>
742 * mono-compiler.h: Applied patch from Jurek Bartuszek (jurek@gentoo.org).
743 Fixes build with -fPIE.
745 2007-08-31 Jonathan Chambers <joncham@gmail.com>
747 * mono-compiler.h: Define MONO_INTERNAL to nothing on Windows.
748 Fixes tons of warnings we get on cygwin build.
750 Code is contributed under MIT/X11 license.
752 2007-08-14 Jonathan Chambers <joncham@gmail.com>
754 * mono-membar.h: Use intrinsic functions in msvc.
756 2007-07-31 Zoltan Varga <vargaz@freemail.hu>
758 * mono-dl.c (w32_dlerror): Fix call to FormatMessage (). Fixes #82260.
760 2007-07-27 Mark Probst <mark.probst@gmail.com>
762 * mono-membar.h: Memory barriers.
764 2007-06-13 Mark Probst <mark.probst@gmail.com>
766 * mono-codeman.c (mono_code_manager_reserve): Gather dynamic code
769 2007-06-06 Mark Probst <mark.probst@gmail.com>
771 * mono-internal-hash.c: Fixed a bug in the remove entry code.
773 2007-06-04 Mark Probst <mark.probst@gmail.com>
776 * mono-internal-hash.c, mono-internal-hash.h: Hash table which
777 uses the value themselves as nodes, hence doesn't have to allocate
780 2007-05-24 Jonathan Chambers <joncham@gmail.com>
782 * mono-path.c: Add configure checks for header files.
783 * mono-codeman.c: Add configure checks for header files.
784 * mono-poll.h: Add configure checks for header files.
785 * mono-stdlib.c: Add configure checks for header files.
787 Code is contributed under MIT/X11 license.
789 2007-03-09 Jonathan Chambers <joncham@gmail.com>
791 * mono-dl.c: Use Unicode characters for Win32 functions.
793 Code is contributed under MIT/X11 license.
795 2007-01-26 Robert Jordan <robertj@gmx.net>
797 * mono-dl.c (w32_find_symbol): Implement in-proc symbol lookup
800 Fri Jan 26 13:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
802 * mono-dl.h, mono-dl.c: make symbols internal and fixes.
804 Wed Jan 24 23:20:17 CET 2007 Paolo Molaro <lupus@ximian.com>
806 * mono-codeman.c: don't call mono_mprotect() on windows.
808 2007-01-20 Zoltan Varga <vargaz@gmail.com>
810 * monobitset.h: monobitset.c: Move MonoBitSet type definition to
811 the header file. Add fast macro based versions of most bitset
812 operations and optimize the rest a bit.
814 Mon Dec 18 18:59:08 CET 2006 Paolo Molaro <lupus@ximian.com>
816 * mono-dl.h, mono-dl.c, Makefile.am: implementation
817 of dynamic loading API.
819 Wed Dec 13 17:21:40 CET 2006 Paolo Molaro <lupus@ximian.com>
821 * mono-mmap.c, mono-mmap.h: use guint64 instead of off_t.
823 2006-12-12 Atsushi Enomoto <atsushi@ximian.com>
825 * mono-mmap.c : win32 build fix.
827 Mon Dec 11 17:24:49 CET 2006 Paolo Molaro <lupus@ximian.com>
829 * mono-codeman.c: changed to use the mono-mmap.h API.
831 Mon Dec 11 15:08:27 CET 2006 Paolo Molaro <lupus@ximian.com>
833 * mono-mmap.c, mono-mmap.h, Makefile.am: introduced mmap-like API.
835 Mon Nov 27 16:03:58 CET 2006 Paolo Molaro <lupus@ximian.com>
837 * strtod.c: fix, again, 64 bit issues.
839 2006-11-25 Miguel de Icaza <miguel@novell.com>
841 * strtod.c: Upgrade this implementation to the one from:
842 http://www.netlib.org/fp/
844 Fixed a few warnings, and added the header thta we had to
845 autodetect the FPU setup to use.
847 This should fix the hang when running the corlib test suite.
849 2006-10-18 Miguel de Icaza <miguel@novell.com>
851 * mono-ehash.c (mono_g_hash_table_destroy): Use mg_free, not
854 2006-10-17 Miguel de Icaza <miguel@novell.com>
856 * mono-ehash.c: Use the new eglib hash implementation; Currently
857 only Boehm is supported.
859 Tue Oct 10 09:53:07 CEST 2006 Paolo Molaro <lupus@ximian.com>
861 * strtod.c: teleport to the new millennium.
863 2006-10-09 Miguel de Icaza <miguel@novell.com>
865 * strtod.c: Replace the BSD implementation which was fairly old
866 and complex with a cleaner version from Tcl/Tk. Fixes the hang
867 that we have in the Double parsing tests in our class libraries.
869 2006-09-12 Zoltan Varga <vargaz@gmail.com>
871 * strtod.c (IEEE_8087): Applied patch from Sergey Tikhonov <tsv@solvo.ru>. Define
872 IEEE_8087 for alpha as well.
874 2006-09-04 Robert Jordan <robertj@gmx.net>
876 * mono-stdlib.c (mono_mkstemp): Fix mkstemp's loop.
878 2006-08-30 Zoltan Varga <vargaz@gmail.com>
880 * mono-codeman.c: Align code to a 16 byte boundary on amd64 too.
882 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
885 * mono-stdlib.[ch]: mkstemp implementation.
887 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
890 * mono-path.[ch]: new files with functions to handle/resolve paths.
892 2006-08-10 Zoltan Varga <vargaz@gmail.com>
894 * mono-compiler.h: Fix TLS definitions so libmono can be loaded dynamically as a
895 module. Fixes #78767.
897 Wed May 17 19:00:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
899 * mono-hash.h, mono-hash.c: changed the code so we're able to
900 specify if the key or value or both are managed objects.
902 2006-04-10 Zoltan Varga <vargaz@gmail.com>
904 * monobitset.c (mono_bitset_sub): Use src->size since the assert
905 guarantees it is less than dest->size.
907 Mon Apr 10 12:28:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
909 * monobitset.c: cap size in mono_bitset_sub () to
910 avoid reading uninit memory.
912 Wed Mar 29 16:39:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
914 * mono-counters.c: initialize the next pointer.
916 Mon Mar 20 14:50:35 CET 2006 Paolo Molaro <lupus@ximian.com>
918 * monobitset.c, monobitset.h: added mono_bitset_find_first_unset ().
920 2006-03-16 Zoltan Varga <vargaz@gmail.com>
922 * monobitset.c: Guard inline asm with #ifdef __GNUC__.
924 * monobitset.c (mono_bitset_find_first): Turn a g_return_val_if_fail
927 * mono-compiler.h (MONO_INTERNAL): Disable this on the VC build.
929 2006-03-10 Zoltan Varga <vargaz@gmail.com>
931 * monobitset.h monobitset.c: Merge lots of optimizations from the linear-il
934 2006-03-01 Zoltan Varga <vargaz@gmail.com>
936 * mono-compiler.h (__func__): Define this as __FUNCTION__ for MSVC.
938 * mono-counters.c: Fix windows build.
940 Wed Mar 1 12:33:26 CET 2006 Paolo Molaro <lupus@ximian.com>
942 * mono-counters.h, mono-counters.c, Makefile.am: added
943 API for flexible stats collection.
945 Tue Feb 28 13:58:50 CET 2006 Paolo Molaro <lupus@ximian.com>
947 * mono-compiler.h: fixed Jakub's patch to actually compile on amd64.
949 Tue Feb 28 11:33:40 CET 2006 Paolo Molaro <lupus@ximian.com>
951 * mono-compiler.h: patch from Jakub Jelinek to retrieve
952 the tls offset without a text writable section (bug #77653).
954 2006-02-01 Sebastien Pouliot <sebastien@ximian.com>
956 * mono-compiler.h: Added a macro for isnormal(x) as it's not available
959 2006-01-20 Zoltan Varga <vargaz@gmail.com>
961 * monobitset.h (mono_bitset_set_fast): Add more fast accessors.
963 2006-01-17 Zoltan Varga <vargaz@gmail.com>
965 * monobitset.h monobitset.c: Move the mono_bitset_test_fast macro here
966 from mini.h. Also fix it after the 64 bit changes.
968 2006-01-15 Zoltan Varga <vargaz@gmail.com>
970 * monobitset.h monobitset.c: Use 64 bit chunks on 64 bit machines.
972 2006-01-04 Zoltan Varga <vargaz@gmail.com>
974 * mono-codeman.c (new_codechunk): Fix warnings.
976 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
978 * strtod.c : un-constified some variables to fix bug #75228.
980 2005-09-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
982 * strenc.c: don't use the UTF16 conversion with g_convert. It returns
983 the FF FE at the beginning, which is not what we expect. Now
984 MONO_EXTERNAL_ENCODINGS can roundtrip and works.
986 2005-09-12 Zoltan Varga <vargaz@freemail.hu>
988 * mono-compiler.h (MONO_THREAD_VAR_OFFSET): Fix compilation on amd64
989 with recent binutils.
991 Wed Sep 7 21:23:18 BST 2005 Paolo Molaro <lupus@ximian.com>
993 * mono-codeman.c: ensure we have enough room for thunks
994 with large allocations.
996 2005-08-27 Zoltan Varga <vargaz@gmail.com>
998 * mono-compiler.h (MONO_THREAD_VAR_OFFSET): Disable this when using
1001 * strtod.c (Storeinc): Modify code which is miscompiled by intel icc.
1003 Thu Aug 4 20:06:28 BST 2005 Paolo Molaro <lupus@ximian.com>
1005 * mono-codeman.c: allow room for far calls for ARM, too.
1007 2005-07-20 Zoltan Varga <vargaz@freemail.hu>
1009 * mono-compiler.h (MONO_THREAD_VAR_OFFSET): Use the nice way of
1010 getting the tls offsets on amd64 too.
1012 2005-07-19 Zoltan Varga <vargaz@freemail.hu>
1014 * mono-compiler.h: Add TLS offset detection for ia64.
1016 2005-06-28 Zoltan Varga <vargaz@freemail.hu>
1018 * mono-compiler.h (trunc): Define this to be floor under win32.
1020 2005-06-13 Geoff Norton <gnorton@customerdna.com>
1022 * mono-compiler.h: Be slightly more conservative on ppc
1023 as this was previously causing crashes building.
1025 2005-06-09 Duncan Mak <duncan@novell.com>
1027 * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
1028 all public headers. Fixes #74919.
1030 2005-05-18 Zoltan Varga <vargaz@freemail.hu>
1032 * mono-codeman.c: Align code on a 16 byte boundary on ia64.
1034 2005-04-20 Zoltan Varga <vargaz@freemail.hu>
1036 * mono-digest.h mono-sha1.c mono-md5.c: Fix some gcc 4.0 warnings.
1038 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1040 * mono-poll.c: windows return code translation.
1041 * mono-poll.h: FD_SETSIZE must be defined when compiling everything.
1042 Moved to configure.in.
1044 2005-04-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1046 * mono-poll.[ch]: mono_poll uses poll() when available, otherwise
1047 implement it in terms of select().
1048 * Makefile.am: added new files.
1050 2005-03-29 Sebastien Pouliot <sebastien@ximian.com>
1052 * mono-compiler.h: Added defines to make it easier to compile mono and
1053 it's unmanaged tools using the Microsoft C compiler (VS.NET 2005).
1055 2005-02-27 Zoltan Varga <vargaz@freemail.hu>
1057 * mono-codeman.c: Pass MAP_32BIT to mmap on amd64 to force generated
1058 code to have 32 bit addresses.
1060 Fri Feb 25 14:54:19 CET 2005 Paolo Molaro <lupus@ximian.com>
1062 * mono-compiler.h: amd64 can't handle local-exec in PIC libs.
1064 Thu Feb 24 15:18:05 CET 2005 Paolo Molaro <lupus@ximian.com>
1066 * Makefile.am, mono-compiler.h: added header to deal with
1067 compiler-specific bugs and features.
1069 2005-01-30 Zoltan Varga <vargaz@freemail.hu>
1071 * mono-logger.c (mono_trace_is_traced): Fix comment.
1073 * mono-logger.h mono-logger.c (mono_trace_is_traced): New helper function.
1075 2005-01-15 Zoltan Varga <vargaz@freemail.hu>
1077 * mono-codeman.c (new_codechunk): Initialize pagesize in the dynamic
1080 2004-12-23 Ben Maurer <bmaurer@ximian.com>
1082 * strtod.c: add `cosnt' to some arrays to get them on shareable pages.
1084 Tue Dec 7 17:53:01 CET 2004 Paolo Molaro <lupus@ximian.com>
1086 * mono-codeman.c: align bsize so the returned pointer
1087 is aligned also for dynamic methods.
1089 2004-10-26 Zoltan Varga <vargaz@freemail.hu>
1091 * mono-codeman.c: Fall back to malloc if MAP_ANON is not defined.
1093 2004-09-25 Zoltan Varga <vargaz@freemail.hu>
1095 * mono-codeman.c (new_codechunk): Set malloc'ed code pages as
1098 2004-09-07 Bernie Solomon <bernard@ugsolutions.com>
1100 * mono-sha1.c: Remove uint32 and int32 types completely
1102 2004-09-02 Zoltan Varga <vargaz@freemail.hu>
1104 * mono-codeman.c (new_codechunk): Remove g_assert_not_reached ().
1106 * mono-codeman.c (new_codechunk): Fix windows build.
1108 * mono-codeman.h mono-codeman.c: Generalize so it can be used to
1109 allocate code for dynamic methods (one method per code manager).
1111 2004-07-30 Zoltan Varga <vargaz@freemail.hu>
1113 * mono-logger.c (mono_trace_set_mask_string): Fix AOT tracing constant.
1115 2004-07-28 Zoltan Varga <vargaz@freemail.hu>
1117 * mono-codeman.c (mono_code_manager_invalidate): Invalidate with
1118 x86 break on AMD64 too.
1120 2004-07-23 zovarga <vargaz@freemail.hu>
1122 * monobitset.c (my_g_bit_nth_msf): Add workaround for glib 2.2 bug on
1125 2004-07-09 Ben Maurer <bmaurer@ximain.com>
1127 * mono-hash.c: register gc roots
1129 2004-07-02 Zoltan Varga <vargaz@freemail.hu>
1131 * mono-logger.h mono-logger.c: Added AOT component.
1133 2004-06-30 Zoltan Varga <vargaz@freemail.hu>
1135 * strtod.c: Use gint32 for 32 bit types.
1137 2004-06-29 Zoltan Varga <vargaz@freemail.hu>
1139 * mono-sha1.c: Use gint32 for 32 types. Fixes random memory corruption
1140 in SHA1Transform on 64 bit systems.
1142 2004-06-24 David Waite <mass@akuma.org>
1144 * monobitset.c: change to C90-style comments from C99/C++-style
1146 2004-06-21 Atsushi Enomoto <atsushi@ximian.com>
1148 * mono-sha1.c : close opened file in case of successful read. This
1149 saves a bunch of System.Reflection Emit failures under windows.
1151 2004-06-18 Jackson Harper <jackson@ximian.com>
1153 * mono-logger.c/h: Add a trace mask option for tracing loading
1154 config files. A little white space love.
1156 2004-06-18 Jackson Harper <jackson@ximian.com>
1158 * mono-logger.c: Change default logging level to ERROR. Make sure
1159 that mono_trace_init is called if mono_tracev is our first trace
1160 statement is mono_tracev. Little indentation fix.
1162 2004-05-25 Zoltan Varga <vargaz@freemail.hu>
1164 * mono-codeman.c (mono_code_manager_invalidate): On x86, fill the
1165 memory with 0xcc (x86 break).
1167 2004-05-02 Miguel de Icaza <miguel@ximian.com>
1169 * mono-sha1.c: MacOS X defines "LITTLE_ENDIAN", you are supposed
1170 to test against BYTE_ORDER, and this caused trouble. We now use
1171 G_BYTE_ORDER and G_LITTLE_ENDIAN. This should fix the MacOS woes.
1173 2004-04-26 David Waite <mass@akuma.org>
1175 * mono-logger.h: remove comma from end of enumeration declaration
1177 Fri Apr 23 11:04:33 EDT 2004 Paolo Molaro <lupus@ximian.com>
1179 * mono-codeman.c: macosx pretends an argument (which is ignored)
1180 to be -1. Make sure the thunks area is zeroed.
1182 2004-03-11 Zoltan Varga <vargaz@freemail.hu>
1184 * monobitset.c (mono_bitset_test_bulk): New function to return multiple
1187 Thu Mar 4 15:46:20 PST 2004 Paolo Molaro <lupus@ximian.com>
1189 * mono-codeman.c: add a define to force the use of malloc
1192 Tue Feb 17 21:45:12 CET 2004 Paolo Molaro <lupus@ximian.com>
1194 * mono-codeman.c, mono-codeman.h: allocate extra room in memory close
1195 to the native code for arch where calls have a limited immediate
1198 Wed Feb 11 15:26:18 CET 2004 Paolo Molaro <lupus@ximian.com>
1200 * Makefile.am, mono-codeman.h, mono-codeman.c: new support code
1201 to deal with buffers of native code (handles exec bits and other
1204 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1207 (mono_unicode_from_external): UTF8 is the default, not the preferred
1208 encoding, ie, try MONO_EXTERNAL_ENCODINGS first. When "default_locale"
1209 was passed in the env. var., it always failed because we were passing
1210 "default_locale" to g_convert. Also fixed the byte count for non-UTF8
1212 (mono_utf8_from_external): UTF8 is the default, not the preferred one.
1216 Thu Jan 8 19:56:08 CET 2004 Paolo Molaro <lupus@ximian.com>
1218 * mono-uri.c: fixed compile problem.
1220 2003-12-02 Bernie Solomon <bernard@ugsolutions.com>
1222 * mono-math.c: fix for older C compilers and big endian machines
1224 2003-11-12 Zoltan Varga <vargaz@freemail.hu>
1226 * mono-math.h mono-math.c: New file which contains implementations of
1227 math functions/macros which are missing on some platforms.
1229 2003-11-10 Dick Porter <dick@ximian.com>
1231 * strenc.c: Use platform-endian UTF16
1233 2003-10-28 Dick Porter <dick@ximian.com>
1236 * strenc.c: New files, convert text to and from unicode or utf8,
1237 and the user's chosen encoding.
1239 2003-08-26 Zoltan Varga <vargaz@freemail.hu>
1241 * mono-hash.h mono-hash.c (mono_g_hash_table_remap): New function used
1242 to remap hashtable values during a copying collection. Not used at the
1244 * mono-hash.c (g_hash_node_new): Restructured to avoid the global lock
1246 * mono-hash.c (mono_g_hash_table_new_full): Enable the optimization of
1247 the key function even if the client supplied g_direct_equal instead of
1250 2003-08-22 Duncan Mak <duncan@ximian.com>
1252 * strtod.c: 64-bit related fixes from Laurent Morichetti
1253 <l_m@pacbell.net>. Patch approval from Miguel.
1255 Fri Jun 6 19:09:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
1257 * mono-logger.h, mono-logger.c, Makefile.am: added
1258 selective logging code by Jerome Laban <jlaban@wanadoo.fr>.
1260 2003-03-05 Dietmar Maurer <dietmar@ximian.com>
1262 * monobitset.c (mono_bitset_set_all): impl.
1264 Fri Sep 13 15:56:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
1266 * mono-digest.h, mono-sha1.c: Added mono_digest_get_public_token()
1267 to get the public key token from a public key.
1269 Thu Jul 25 13:59:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
1271 * mono-digest.h, mono-md5.c, mono-sha1.c: MD5 and SHA1
1274 Mon Jun 3 15:59:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
1276 * strtod.c: make __bsd_dtoa() always return malloc()ed memory.
1278 Mon Jun 3 15:42:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
1280 * monobitset.c, monobitset.h: documentation and fixes from
1283 Sat Jun 1 14:10:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
1285 * monobitset.c: fix my screwup pointed out by Lawrence Pit
1286 (loz@cable.a2000.nl).
1288 Fri May 31 15:34:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
1290 * monobitset.c, monobitset.h: fixes. added mono_bitset_foreach().
1292 Wed May 22 12:42:06 CEST 2002 Paolo Molaro <lupus@ximian.com>
1294 * monobitset.c: use our own bit_nth_lsf since the glib one is buggy.
1295 Add more tests. mono_bitset_find_first (set, -1) will work correctly
1298 2002-05-09 Dietmar Maurer <dietmar@ximian.com>
1300 * monobitset.c: use memcmp instead of memcpy
1302 Thu May 9 17:23:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
1304 * monobitset.c, monibitset.h: bit set data structure.
1305 Not included in the build yet because the jit has some symbol clashes
1308 Mon Mar 25 12:50:53 CET 2002 Paolo Molaro <lupus@ximian.com>
1310 * First checkin: libmonoutils is meant to hold some utility
1311 data structures and bits that are usefult to the rest of the project
1312 and don't require metadata/runtime support.
1313 mono-hash is a GC-safe hash table: i.e. you can store GC-allocated