* Code that we will drop from Mono, because we do not really need this:
- Directory, File manipulation:
+ Locking:
+
+ 5 G_LOCK
+ 5 G_UNLOCK
+
+ These are currently only used for the GC-safe hash table, and
+ we will be replacing that with a copy of our own hashtable.
+
+Important Groups:
+
+ * Process launching
+ 3 g_shell_quote
+ 1 g_shell_unquote
+
+ * Thread enabling, these might be just no-ops, check with Paolo/Zoltan
+ 3 g_thread_supported
+ 3 g_thread_init
+
+ * Information retrieval
+ 1 g_get_charset
+ 1 g_win32_getlocale
+
+ * String manipulation
+ 1 g_filename_from_utf8 [LIMITATION: UTF8 only today]
+ 1 g_ascii_strdown
+ 4 g_strdown
+ 10 g_strlcpy
+ 2 g_strdelimit
+ 1 g_strescape
+
+ * Character encoding
+ 3 g_utf8_validate
+ 3 g_locale_to_utf8
+ 1 g_locale_from_utf8
+
+ * Miscelaneous
+ 3 g_spaced_primes_closest
+ 2 g_printerr
+ 1 g_mem_set_vtable
+ 1 g_log_set_handler
+
+Remove code from Mono:
- g_dir_open, g_dir_close, g_dir_read_name,
- G_FILE_ERROR_*
-
- These will be replaced in io-layer with direct Unix calls.
-
- These will be replaced in metadata with two code paths, native
- Unix and native Windows.
-
- g_unichar_
-
- We probably do not need these anymore, we should kill the unmanaged
- string collation and just leave the unmanaged string collation in
- place.
-
-Routines missing from eglib, by count number:
-
- 82 g_list_prepend
- 59 g_list_free
- 36 g_ptr_array_index
- 29 g_getenv
- 28 g_list_append
- 27 g_build_filename
- 24 g_utf16_to_utf8
- 22 g_list_length
- 21 g_snprintf
- 21 g_ptr_array_free
- 21 g_ptr_array_add
- 20 g_utf8_to_utf16
- 17 g_ptr_array_new
- 16 g_list_delete_link
- 15 g_list_remove
- 14 g_list_find
- 13 g_error_free
- 12 g_build_path
- 11 g_file_test
- 10 g_strlcpy
- 10 g_path_get_dirname
- 10 g_ascii_xdigit_value
- 10 g_ascii_isspace
- 10 g_array_index
- 9 g_path_get_basename
- 8 g_get_home_dir
- 7 g_list_reverse
- 6 g_io_channel_unix_get_fd
- 5 g_timer_elapsed
- 5 g_ptr_array_sort
- 5 g_path_is_absolute
- 5 g_newa
- 5 g_list_first
- 5 g_get_current_dir
- 5 g_file_get_contents
- 5 g_ascii_strcasecmp
- 4 g_unsetenv
- 4 g_strdown
- 4 g_get_tmp_dir
- 3 g_utf8_validate
- 3 g_thread_supported
- 3 g_thread_init
- 3 g_spaced_primes_closest
- 3 g_shell_quote
- 3 g_setenv
- 3 g_locale_to_utf8
- 3 g_list_prepend_mempool
- 3 g_list_next
- 3 g_list_insert_sorted
- 3 g_list_insert_before
- 3 g_list_foreach
- 3 g_file_open_tmp
- 3 g_convert
- 3 g_array_new
- 3 g_array_free
- 2 g_timer_stop
- 2 g_timer_start
- 2 g_timer_new
- 2 g_string_append_len
- 2 g_strdelimit
- 2 g_slist_append_mempool
- 2 g_shell_parse_argv
- 2 g_set_prgname
- 2 g_queue_pop_head
- 2 g_queue_is_empty
- 2 g_ptr_array_set_size
- 2 g_ptr_array_remove
- 2 g_printerr
- 2 g_pattern_spec_new
- 2 g_pattern_spec_free
- 2 g_pattern_match_string
- 2 g_markup_parse_context_parse
- 2 g_markup_parse_context_new
- 2 g_markup_parse_context_free
- 2 g_markup_parse_context_end_parse
- 2 g_list_sort
- 2 g_list_index
- 2 g_get_current_time
- 2 g_find_program_in_path
- 2 g_filename_to_uri
- 2 g_filename_from_uri
- 2 g_concat_dir_and_file
- 2 g_ascii_isalpha
- 2 g_array_insert_val
- 2 g_array_append_val
- 1 g_win32_getlocale
- 1 g_timer_destroy
- 1 g_string_truncate
- 1 g_string_prepend
- 1 g_strescape
- 1 g_spawn_command_line_sync
- 1 g_spawn_async_with_pipes
- 1 g_source_unref
- 1 g_source_set_callback
- 1 g_source_remove
- 1 g_source_attach
- 1 g_shell_unquote
- 1 g_queue_push_head
- 1 g_queue_new
- 1 g_queue_free
- 1 g_mem_set_vtable
- 1 g_main_loop_run
- 1 g_main_context_new
- 1 g_main_context_iteration
- 1 g_log_set_handler
- 1 g_locale_from_utf8
- 1 g_list_remove_link
- 1 g_list_nth
- 1 g_list_copy
- 1 g_io_create_watch
- 1 g_io_channel_unref
- 1 g_io_channel_unix_new
- 1 g_io_channel_shutdown
- 1 g_io_channel_set_encoding
- 1 g_io_channel_set_buffered
- 1 g_io_channel_get_buffer_condition
- 1 g_io_add_watch
- 1 g_get_user_name
- 1 g_get_prgname
- 1 g_get_charset
- 1 g_filename_from_utf8
- 1 g_ascii_strdown
- 1 g_ascii_isprint
- 1 g_array_remove_index
+ Multi-threaded aware GHashTable.
+ utils/mono-uri.c
Macros:
- 40 G_GSIZE_FORMAT
- 9 G_GUINT64_FORMAT
- 7 G_FILE_TEST_IS_DIR
6 G_UNLIKELY
- 6 G_HASH_TABLE_RESIZE
- 5 G_UNLOCK
- 5 G_LOCK
4 G_LIKELY
- 4 G_FILE_TEST_IS_REGULAR
2 G_USEC_PER_SEC
2 G_STRLOC
- 2 G_IO_NVAL
1 G_SPAWN_SEARCH_PATH
- 1 G_IO_PRI
1 G_ALLOC_ONLY
-Unlikely that we will implement:
+* Unimplemented, not supported currently:
+
+ 3 g_convert (used for MONO_EXTERNAL_ENCODINGS)
+ g_unichar_tolower Used for deprecated unmanaged string collation
+ g_unichar_type Used for deprecated unmanaged string collation
+
+* Dead Code
+
+ The GMainLoop code was no longer in use in Mono.
+
+* Windows implementations needed
+
+ Directory, File manipulation:
+
+ g_dir_open, g_dir_close, g_dir_read_name
+
+ We're missing a native windows implementation. The unix one is in place.
- 2 g_unichar_type
- 2 g_unichar_tolower