[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Shrinking the C core
|
From: |
Eric S. Raymond |
|
Subject: |
Shrinking the C core |
|
Date: |
Wed, 9 Aug 2023 05:46:55 -0400 (EDT) |
Recently I have been refamiliarizing myself with the Emacs C core.
Some days ago, as a test that I understand the C core API and the
current build recipe, I made and pushed a small commit that moved
the policy code in delete-file out to Lisp, basing it on a smaller
and simpler new entry point named delete-file-internal (this is
parallel to the way delete-directory is already partitioned).
I've since been poking around the C core code and am now wondering why
there is so much C-core code that seems like it could be pushed out to
Lisp. For example, in src/fileio.c:
DEFUN ("unhandled-file-name-directory", Funhandled_file_name_directory,
Sunhandled_file_name_directory, 1, 1, 0,
doc: /* Return a directly usable directory name somehow associated with
FILENAME.
A `directly usable' directory name is one that may be used without the
intervention of any file name handler.
If FILENAME is a directly usable file itself, return
\(file-name-as-directory FILENAME).
If FILENAME refers to a file which is not accessible from a local process,
then this should return nil.
The `call-process' and `start-process' functions use this function to
get a current directory to run processes in. */)
(Lisp_Object filename)
{
Lisp_Object handler;
/* If the file name has special constructs in it,
call the corresponding file name handler. */
handler = Ffind_file_name_handler (filename, Qunhandled_file_name_directory);
if (!NILP (handler))
{
Lisp_Object handled_name = call2 (handler, Qunhandled_file_name_directory,
filename);
return STRINGP (handled_name) ? handled_name : Qnil;
}
return Ffile_name_as_directory (filename);
}
Why is this in C? Is there any reason not to push it out to Lisp and
reduce the core complexity? More generally, if I do this kind of
refactor, will I be stepping on anyone's toes?
--
>>esr>>
- Shrinking the C core,
Eric S. Raymond <=
- Re: Shrinking the C core, Andreas Schwab, 2023/08/09
- Re: Shrinking the C core, Po Lu, 2023/08/09
- Re: Shrinking the C core, Eric S. Raymond, 2023/08/09
- Re: Shrinking the C core, Po Lu, 2023/08/09
- Re: Shrinking the C core, Eric S. Raymond, 2023/08/09
- Re: Shrinking the C core, Christopher Dimech, 2023/08/09
- Re: Shrinking the C core, Eric Frederickson, 2023/08/09
- Re: Shrinking the C core, Sam James, 2023/08/09