From: Eli Zaretskii <eliz@gnu.org>
To: Taiju HIGASHI <higashi@taiju.info>
Cc: handa@gnu.org, emacs-devel@gnu.org
Subject: Re: [PATCH] Add an option to not reduce vocabulary of the Japanese
Date: Sat, 04 Jun 2022 11:38:43 +0300 [thread overview]
Message-ID: <83ee04bz70.fsf@gnu.org> (raw)
In-Reply-To: <87sfolwyzj.fsf@taiju.info> (message from Taiju HIGASHI on Sat, 04 Jun 2022 00:25:20 +0900)
[Please use Reply All when replying, to keep the mailing list and
other people on the CC list.]
> From: Taiju HIGASHI <higashi@taiju.info>
> Date: Sat, 04 Jun 2022 00:25:20 +0900
>
> > Thanks, I sent the form off-list.
>
> Thank you, I sent an email to assign@gnu.org.
>
> I created a v2 patch.
>
>
> >From 42932432cac237f3f32aac05377636af4c97da22 Mon Sep 17 00:00:00 2001
> From: Taiju HIGASHI <higashi@taiju.info>
> Date: Thu, 2 Jun 2022 23:24:13 +0900
> Subject: [PATCH v2] Add an option to not reduce vocabulary of the Japanese
> dictionary.
>
> * configure.ac: Add "without-ja-dic-reduction" configure option.
> * leim/Makefile.in (generate-ja-dic-without-reduction): Add rule.
> (generate-ja-dic): Always rerun even if the target file is generated.
> (${leimdir}/ja-dic/ja-dic.el): Do not reduce dictionary vocabulary if
> The --without-ja-dic-reduction configure option is specified.
> * lisp/Makefile.in (generate-ja-dic): Change the make target in the
> leim directory.
> * lisp/international/ja-dic-cnv.el (skkdic-convert-okuri-nasi): Add
> "no-reduction" argument.
> (skkdic-convert): Add "no-reduction" optional argument.
> (batch-skkdic-convert): Add "--no-reduction" command line argument.
> ---
> configure.ac | 5 +++++
> leim/Makefile.in | 21 ++++++++++++++++++---
> lisp/Makefile.in | 2 +-
> lisp/international/ja-dic-cnv.el | 26 ++++++++++++++++++--------
> 4 files changed, 42 insertions(+), 12 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index ed8ec890ac..43af4416d3 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -491,6 +491,7 @@ OPTION_DEFAULT_ON([threads],[don't compile with elisp threading support])
> OPTION_DEFAULT_OFF([native-compilation],[compile with Emacs Lisp native compiler support])
> OPTION_DEFAULT_OFF([cygwin32-native-compilation],[use native compilation on 32-bit Cygwin])
> OPTION_DEFAULT_ON([xinput2],[don't use version 2 of the X Input Extension for input])
> +OPTION_DEFAULT_ON([ja-dic-reduction],[don't reduce the Japanese dictionary])
>
> AC_ARG_WITH([file-notification],[AS_HELP_STRING([--with-file-notification=LIB],
> [use a file notification library (LIB one of: yes, inotify, kqueue, gfile, w32, no)])],
> @@ -6491,6 +6492,7 @@ AS_ECHO([" Does Emacs use -lXaw3d? ${HAVE_XAW3D
> Which dumping strategy does Emacs use? ${with_dumping}
> Does Emacs have native lisp compiler? ${HAVE_NATIVE_COMP}
> Does Emacs use version 2 of the the X Input Extension? ${HAVE_XINPUT2}
> + Should Emacs reduce Japanese dictionary vocabulary? ${with_ja_dic_reduction}
> "])
>
> if test -n "${EMACSDATA}"; then
> @@ -6589,6 +6591,9 @@ SUBDIR_MAKEFILES_IN=`echo " ${SUBDIR_MAKEFILES}" | sed -e 's| | $(srcdir)/|g' -e
>
> AC_SUBST(SUBDIR_MAKEFILES_IN)
>
> +JA_DIC_REDUCTION=$with_ja_dic_reduction
> +AC_SUBST(JA_DIC_REDUCTION)
> +
> dnl You might wonder (I did) why epaths.h is generated by running make,
> dnl rather than just letting configure generate it from epaths.in.
> dnl One reason is that the various paths are not fully expanded (see above);
> diff --git a/leim/Makefile.in b/leim/Makefile.in
> index 3b4216c0b8..c59f32c765 100644
> --- a/leim/Makefile.in
> +++ b/leim/Makefile.in
> @@ -32,6 +32,12 @@ leimdir = ${srcdir}/../lisp/leim
>
> EXEEXT = @EXEEXT@
>
> +JA_DIC_REDUCTION = @JA_DIC_REDUCTION@
> +JA_DIC_NO_REDUCTION_OPTION =
> +ifeq ($(JA_DIC_REDUCTION), no)
> + JA_DIC_NO_REDUCTION_OPTION = --no-reduction
> +endif
> +
> -include ${top_builddir}/src/verbose.mk
>
> # Prevent any settings in the user environment causing problems.
> @@ -129,13 +135,22 @@ ${leimdir}/leim-list.el: ${srcdir}/leim-ext.el ${TIT_MISC}
>
> ${leimdir}/ja-dic/ja-dic.el: | $(leimdir)/ja-dic
>
> -.PHONY: generate-ja-dic
> -generate-ja-dic: ${leimdir}/ja-dic/ja-dic.el
> -${leimdir}/ja-dic/ja-dic.el: $(srcdir)/SKK-DIC/SKK-JISYO.L
> +.PHONY: generate-ja-dic generate-ja-dic-without-reduction
> +generate-ja-dic: $(srcdir)/SKK-DIC/SKK-JISYO.L $(leimdir)/ja-dic
> $(AM_V_GEN)$(RUN_EMACS) -batch -l ja-dic-cnv \
> --eval "(setq max-specpdl-size 5000)" \
> -f batch-skkdic-convert -dir "$(leimdir)/ja-dic" "$<"
>
> +generate-ja-dic-without-reduction: $(srcdir)/SKK-DIC/SKK-JISYO.L $(leimdir)/ja-dic
> + $(AM_V_GEN)$(RUN_EMACS) -batch -l ja-dic-cnv \
> + --eval "(setq max-specpdl-size 5000)" \
> + -f batch-skkdic-convert -dir "$(leimdir)/ja-dic" --no-reduction "$<"
> +
> +${leimdir}/ja-dic/ja-dic.el: $(srcdir)/SKK-DIC/SKK-JISYO.L
> + $(AM_V_GEN)$(RUN_EMACS) -batch -l ja-dic-cnv \
> + --eval "(setq max-specpdl-size 5000)" \
> + -f batch-skkdic-convert -dir "$(leimdir)/ja-dic" $(JA_DIC_NO_REDUCTION_OPTION) "$<"
> +
> ${srcdir}/../lisp/language/pinyin.el: ${srcdir}/MISC-DIC/pinyin.map
> $(AM_V_GEN)${RUN_EMACS} -l titdic-cnv -f pinyin-convert $< $@
>
> diff --git a/lisp/Makefile.in b/lisp/Makefile.in
> index 8728467977..191f022a84 100644
> --- a/lisp/Makefile.in
> +++ b/lisp/Makefile.in
> @@ -162,7 +162,7 @@ $(lisp)/finder-inf.el:
>
> # This is the OKURO-NASI compilation trigger.
> generate-ja-dic: main-first
> - $(AM_V_at)$(MAKE) -C ../leim generate-ja-dic EMACS="$(EMACS)"
> + $(AM_V_at)$(MAKE) -C ../leim ${srcdir}/../lisp/leim/ja-dic/ja-dic.el EMACS="$(EMACS)"
> $(AM_V_at)$(MAKE) compile-targets TARGETS="./leim/ja-dic/ja-dic.elc"
>
> org-manuals: main-first
> diff --git a/lisp/international/ja-dic-cnv.el b/lisp/international/ja-dic-cnv.el
> index 704f1a1ae6..7d3103fd8d 100644
> --- a/lisp/international/ja-dic-cnv.el
> +++ b/lisp/international/ja-dic-cnv.el
> @@ -295,7 +295,7 @@
> (setq skkdic-okuri-nasi-entries-count (length skkdic-okuri-nasi-entries))
> (progress-reporter-done progress))))
>
> -(defun skkdic-convert-okuri-nasi (skkbuf buf)
> +(defun skkdic-convert-okuri-nasi (skkbuf buf no-reduction)
> (with-current-buffer buf
> (insert ";; Setting okuri-nasi entries.\n"
> "(skkdic-set-okuri-nasi\n")
> @@ -311,7 +311,9 @@
> (setq count (1+ count))
> (progress-reporter-update progress count)
> (if (setq candidates
> - (skkdic-reduced-candidates skkbuf kana candidates))
> + (if no-reduction
> + candidates
> + (skkdic-reduced-candidates skkbuf kana candidates)))
> (progn
> (insert "\"" kana)
> (while candidates
> @@ -322,10 +324,12 @@
> (progress-reporter-done progress))
> (insert ")\n\n")))
>
> -(defun skkdic-convert (filename &optional dirname)
> +(defun skkdic-convert (filename &optional dirname no-reduction)
> "Generate Emacs Lisp file from Japanese dictionary file FILENAME.
> The format of the dictionary file should be the same as SKK dictionaries.
> -Saves the output as `ja-dic-filename', in directory DIRNAME (if specified)."
> +Saves the output as `ja-dic-filename', in directory DIRNAME (if specified).
> +When NO-REDUCTION is t, then the dictionary is not reduced.
> +"
> (interactive "FSKK dictionary file: ")
> (let* ((skkbuf (get-buffer-create " *skkdic-unannotated*"))
> (buf (get-buffer-create "*skkdic-work*")))
> @@ -389,7 +393,7 @@ Saves the output as `ja-dic-filename', in directory DIRNAME (if specified)."
> (skkdic-collect-okuri-nasi)
>
> ;; Convert okuri-nasi general entries.
> - (skkdic-convert-okuri-nasi skkbuf buf)
> + (skkdic-convert-okuri-nasi skkbuf buf no-reduction)
>
> ;; Postfix
> (with-current-buffer buf
> @@ -427,15 +431,21 @@ To get complete usage, invoke:
> (message "To convert SKK-JISYO.L into skkdic.el:")
> (message " %% emacs -batch -l ja-dic-cnv -f batch-skkdic-convert SKK-JISYO.L")
> (message "To convert SKK-JISYO.L into DIR/ja-dic.el:")
> - (message " %% emacs -batch -l ja-dic-cnv -f batch-skkdic-convert -dir DIR SKK-JISYO.L"))
> - (let (targetdir filename)
> + (message " %% emacs -batch -l ja-dic-cnv -f batch-skkdic-convert -dir DIR SKK-JISYO.L")
> + (message "To convert SKK-JISYO.L into skkdic.el without reduction:")
> + (message " %% emacs -batch -l ja-dic-cnv -f batch-skkdic-convert SKK-JISYO.L --no-reduction"))
> + (let (targetdir filename no-reduction)
> (if (string= (car command-line-args-left) "-dir")
> (progn
> (setq command-line-args-left (cdr command-line-args-left))
> (setq targetdir (expand-file-name (car command-line-args-left)))
> (setq command-line-args-left (cdr command-line-args-left))))
> + (if (string= (car command-line-args-left) "--no-reduction")
> + (progn
> + (setq no-reduction t)
> + (setq command-line-args-left (cdr command-line-args-left))))
> (setq filename (expand-file-name (car command-line-args-left)))
> - (skkdic-convert filename targetdir)))
> + (skkdic-convert filename targetdir no-reduction)))
> (kill-emacs 0))
>
>
> --
> 2.36.1
>
>
> I had a little trouble in creating the new rules, so please point out
> any problems.
>
> I implemented with the following policy.
>
> 1. When re-running make from the project root, skip dictionary
> generation if it has already been generated
> 2. In the Makefile in the leim directory, allow re-runs to regenerate
> the dictionary.
>
> It was difficult for me personally to distinguish between using
> leim/Makefile and lisp/Makefile.
>
> Since leim/Makefile seems to be executed via lisp/Makefile, I modified
> leim/Makefile for convenience of dictionary generation and lisp/Makefile
> for convenience when make is executed in the project root.
I thought no changes were needed, because one could already say
something like
make ja-dic.el JA_DIC_REDUCTION=''
Wouldn't that work? Perhaps in lisp/Makefile.in one should make sure
the JA_DIC_REDUCTION value was propagated to the sub-make running in
leim/, but that's all.
Am I missing something?
Thanks.
next prev parent reply other threads:[~2022-06-04 8:38 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-03 3:16 [PATCH] Add an option to not reduce vocabulary of the Japanese Taiju HIGASHI
2022-06-03 6:12 ` Eli Zaretskii
2022-06-03 6:43 ` Taiju HIGASHI
2022-06-03 11:10 ` Eli Zaretskii
[not found] ` <87sfolwyzj.fsf@taiju.info>
2022-06-04 8:38 ` Eli Zaretskii [this message]
2022-06-04 11:46 ` Taiju HIGASHI
2022-06-04 13:43 ` Eli Zaretskii
2022-06-04 16:39 ` Taiju HIGASHI
2022-06-04 16:47 ` Eli Zaretskii
2022-06-04 17:01 ` Taiju HIGASHI
2022-06-04 17:03 ` Eli Zaretskii
2022-06-05 3:05 ` handa
2022-06-05 14:07 ` Taiju HIGASHI
2022-06-06 11:52 ` handa
2022-06-06 12:53 ` Taiju HIGASHI
2022-06-06 14:14 ` Lars Ingebrigtsen
2022-06-06 14:17 ` Eli Zaretskii
2022-06-06 15:08 ` Taiju HIGASHI
2022-06-06 16:05 ` Eli Zaretskii
2022-06-07 0:47 ` Taiju HIGASHI
2022-06-07 1:06 ` Taiju HIGASHI
2022-06-07 3:50 ` Taiju HIGASHI
2022-06-07 10:58 ` Eli Zaretskii
2022-06-07 9:36 ` Lars Ingebrigtsen
2022-06-07 10:10 ` Taiju HIGASHI
2022-06-07 10:22 ` Lars Ingebrigtsen
2022-06-07 10:48 ` Eli Zaretskii
2022-06-07 12:12 ` Taiju HIGASHI
2022-06-07 12:41 ` Taiju HIGASHI
2022-06-07 13:08 ` Taiju HIGASHI
2022-06-09 13:10 ` Taiju HIGASHI
2022-06-09 13:14 ` Eli Zaretskii
2022-06-10 13:15 ` Eli Zaretskii
2022-06-10 13:50 ` Taiju HIGASHI
2022-06-03 23:51 ` Richard Stallman
2022-06-04 10:57 ` Taiju HIGASHI
2022-06-04 11:19 ` Taiju HIGASHI
2022-06-05 22:53 ` Richard Stallman
2022-06-06 0:05 ` Taiju HIGASHI
2022-06-03 23:52 ` Richard Stallman
2022-06-04 6:25 ` Eli Zaretskii
2022-06-04 12:36 ` Taiju HIGASHI
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83ee04bz70.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=handa@gnu.org \
--cc=higashi@taiju.info \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).