unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
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.



  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).