Thread (41 messages) 41 messages, 5 authors, 2021-05-17

Re: Sphinx parallel build error: UnicodeEncodeError: 'latin-1' codec can't encode characters in position 18-20: ordinal not in range(256)

From: Mauro Carvalho Chehab <mchehab@kernel.org>
Date: 2021-05-08 14:41:52

Em Sat, 8 May 2021 12:41:57 +0200
Michal Suchánek [off-list ref] escreveu:
On Sat, May 08, 2021 at 11:22:05AM +0200, Mauro Carvalho Chehab wrote:
quoted
Em Fri, 7 May 2021 08:39:24 +0200
Mauro Carvalho Chehab [off-list ref] escreveu:
  
quoted
Em Thu, 6 May 2021 14:21:01 -0700
Randy Dunlap [off-list ref] escreveu:
  
quoted
On 5/6/21 11:08 AM, Matthew Wilcox wrote:    
quoted
On Thu, May 06, 2021 at 10:57:53AM -0700, Randy Dunlap wrote:      
quoted
I have been going thru some of the Documentation/ files...

Why do several of the files begin with
(hex) ef bb bf    followed by "=================="
for a heading, instead of just "===================".
See e.g. Documentation/timers/no_hz.rst.      
No idea! It seems that the text editor I used on that time added
it for whatever reason.  
  
quoted
I'll prepare a patch fixing it. Some care should be taken, however, as
it has two places where UTF-8 chars should be used[2].  
Ok, I did a small script in order to check what special chars we
currently have (next-20210507) at Documentation/ excluding the
translations.

Based on my script results, we have those groups:

1. Latin accented characters:
	- U+00c7 (LATIN CAPITAL LETTER C WITH CEDILLA) (Ç)
	- U+00df (LATIN SMALL LETTER SHARP S) (ß)
	- U+00e1 (LATIN SMALL LETTER A WITH ACUTE) (á)
	- U+00e4 (LATIN SMALL LETTER A WITH DIAERESIS) (ä)
	- U+00e6 (LATIN SMALL LETTER AE) (æ)
	- U+00e7 (LATIN SMALL LETTER C WITH CEDILLA) (ç)
	- U+00e9 (LATIN SMALL LETTER E WITH ACUTE) (é)
	- U+00ea (LATIN SMALL LETTER E WITH CIRCUMFLEX) (ê)
	- U+00eb (LATIN SMALL LETTER E WITH DIAERESIS) (ë)
	- U+00f3 (LATIN SMALL LETTER O WITH ACUTE) (ó)
	- U+00f4 (LATIN SMALL LETTER O WITH CIRCUMFLEX) (ô)
	- U+00f6 (LATIN SMALL LETTER O WITH DIAERESIS) (ö)
	- U+00f8 (LATIN SMALL LETTER O WITH STROKE) (ø)
	- U+00fc (LATIN SMALL LETTER U WITH DIAERESIS) (ü)
	- U+011f (LATIN SMALL LETTER G WITH BREVE) (ğ)
	- U+0142 (LATIN SMALL LETTER L WITH STROKE) (ł)

2. symbols:
	- U+00a9 (COPYRIGHT SIGN) (©)
	- U+2122 (TRADE MARK SIGN) (™)
	- U+00ae (REGISTERED SIGN) (®)
	- U+00b0 (DEGREE SIGN) (°)
	- U+00b1 (PLUS-MINUS SIGN) (±)
	- U+00b2 (SUPERSCRIPT TWO) (²)
	- U+00b5 (MICRO SIGN) (µ)
	- U+00bd (VULGAR FRACTION ONE HALF) (½)
	- U+2026 (HORIZONTAL ELLIPSIS) (…)

3. arrows:
	- U+2191 (UPWARDS ARROW) (↑)
	- U+2192 (RIGHTWARDS ARROW) (→)
	- U+2193 (DOWNWARDS ARROW) (↓)
	- U+2b0d (UP DOWN BLACK ARROW) (⬍)

4. box drawings:
	- U+2500 (BOX DRAWINGS LIGHT HORIZONTAL) (─)
	- U+2502 (BOX DRAWINGS LIGHT VERTICAL) (│)
	- U+2514 (BOX DRAWINGS LIGHT UP AND RIGHT) (└)
	- U+251c (BOX DRAWINGS LIGHT VERTICAL AND RIGHT) (├)

5. math symbols:
	- U+00b7 (MIDDLE DOT) (·)
	- U+00d7 (MULTIPLICATION SIGN) (×)
	- U+2212 (MINUS SIGN) (−)
	- U+2217 (ASTERISK OPERATOR) (∗)
	- U+223c (TILDE OPERATOR) (∼)
	- U+2264 (LESS-THAN OR EQUAL TO) (≤)
	- U+2265 (GREATER-THAN OR EQUAL TO) (≥)
	- U+27e8 (MATHEMATICAL LEFT ANGLE BRACKET) (⟨)
	- U+27e9 (MATHEMATICAL RIGHT ANGLE BRACKET) (⟩)
	- U+00ac (NOT SIGN) (¬)  
Hi Michal,
Clearly his is supposed to be ASCII tilde:
Documentation/cdrom/cdrom-standard.rst: if (cdo->capability & ∼cdi->mask & CDC _⟨capability⟩)
Yes, for this specific file, iconv //translit should solve everything.

In the case of cdrom-standard, those came from the LaTeX conversion.
Use of ¬ is also very dubious in documentation (in fonts it is understandable):
Documentation/ABI/obsolete/sysfs-kernel-fadump_registered:This ABI is renamed and moved to a new location /sys/kernel/fadump/registered.¬
Documentation/ABI/obsolete/sysfs-kernel-fadump_release_mem:This ABI is renamed and moved to a new location /sys/kernel/fadump/release_mem.¬
Documentation/powerpc/transactional_memory.rst:  if (MSR 29:31 ¬ = 0b010 | SRR1 29:31 ¬ = 0b000) then
Yeah, this should probably be better written as:

  if (MSR 29:31 == 0b010 | SRR1 29:31 == 0b000) then
The use of − is rare can could be replaed with ASCII hyphen-minus entirely
without making the text harder to understand:

Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml:          0: REFIN1(+)/REFIN1(−).
Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml:          1: REFIN2(+)/REFIN2(−).
Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml:      External reference applied between the P1/REFIN2(+) and P0/REFIN2(−) pins.
Documentation/scheduler/sched-deadline.rst:     ((M − 1) · WCET_max − WCET_min)/(M − (M − 2) · U_max) + WCET_max
drivers/gpu/drm/drm_color_mgmt.c: * - range: [-2^2, 2^2 - 2^−15]
drivers/iio/light/tsl2583.c:                     * sheet (TAOS134 − MARCH 2011):
drivers/staging/iio/adc/ad7280a.c:       *                         (Number of Conversions per Part)) −
sound/soc/codecs/sgtl5000.c: * is the array index and the following formula: 10^((idx−15)/40) * 100
Agreed.
Asterisk operator is clearly meant to be ASCII:
Documentation/cdrom/cdrom-standard.rst:         NULL,                   /∗ lseek ∗/
Documentation/cdrom/cdrom-standard.rst:         block _read ,           /∗ read—general block-dev read ∗/
Documentation/cdrom/cdrom-standard.rst:         block _write,           /∗ write—general block-dev write ∗/
Documentation/cdrom/cdrom-standard.rst:         NULL,                   /∗ readdir ∗/
Documentation/cdrom/cdrom-standard.rst:         NULL,                   /∗ select ∗/
Documentation/cdrom/cdrom-standard.rst:         cdrom_ioctl,            /∗ ioctl ∗/
Documentation/cdrom/cdrom-standard.rst:         NULL,                   /∗ mmap ∗/
Documentation/cdrom/cdrom-standard.rst:         cdrom_open,             /∗ open ∗/
Documentation/cdrom/cdrom-standard.rst:         cdrom_release,          /∗ release ∗/
Documentation/cdrom/cdrom-standard.rst:         NULL,                   /∗ fsync ∗/
Documentation/cdrom/cdrom-standard.rst:         NULL,                   /∗ fasync ∗/
Documentation/cdrom/cdrom-standard.rst:         NULL                    /∗ revalidate ∗/
Documentation/filesystems/ext4/blockgroup.rst:filesystem size to 2^21 ∗ 2^27 = 2^48bytes or 256TiB.

There is only one place where ⟨⟩ is used which is very dubious:
Documentation/cdrom/cdrom-standard.rst: if (cdo->capability & ∼cdi->mask & CDC _⟨capability⟩) ...
Yeah. Again, this was due to LaTeX to text conversion.
The middle dot is mostly used in mathmatical formulas that would be
unintelligible otherwise but there are a few odd uses:
Documentation/ABI/testing/sysfs-module:KernelVersion:»·3.3
Documentation/ABI/testing/sysfs-module:KernelVersion:»·3.3
Documentation/devicetree/bindings/clock/qcom,rpmcc.txt:                 "qcom,rpmcc-msm8992",·"qcom,rpmcc"
Documentation/devicetree/bindings/clock/qcom,rpmcc.txt:                 "qcom,rpmcc-msm8994",·"qcom,rpmcc"
Yeah. It sounds that space would be the best replacement there.
Documentation/translations/zh_CN/kernel-hacking/hacking.rst:    阿列克谢·库兹涅佐夫享用的糟糕伏特加有关。
Documentation/translations/zh_CN/process/howto.rst:   《C程序设计语言(第2版·新版)》(徐宝文 李志 译)[机械工业出版社]
Documentation/translations/zh_CN/process/management-style.rst:.. [#cnf2] 保罗·西蒙演唱了“离开爱人的50种方法”,因为坦率地说,“告诉开发者
I wouldn't touch translations.
The × ≤ and ≥ uses look fine.
Agreed.

Thanks for double-checking those. I'll address them.

In the mean time, I'm already preparing a patch series addressing
the issues inside documentation, using some scripting to avoid
manual mistakes:

	https://git.linuxtv.org/mchehab/experimental.git/log/?h=fix_utf8

(patch series is not 100% yet... some adjustments are still
needed on some places).

Thanks,
Mauro
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help