New test.
[mono.git] / eglib / TODO
index 47487814c7e8db94f630b07fa46537ddae94b09e..e569e8aba46b8570ae53d8055d1a853119192ee3 100644 (file)
 
 * 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