This hack makes Guile default to UTF-8. This avoids calls to `iconv_open'; `iconv_open' tries to open shared objects that aren't available during bootstrap, so using UTF-8 avoids that (and UTF-8 has built-in conversions in glibc, too.) diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c index 0ac5ea6a6..f73301e2f 100644 --- a/libguile/bytevectors.c +++ b/libguile/bytevectors.c @@ -1931,7 +1931,7 @@ utf_encoding_name (char *name, size_t utf_width, SCM endianness) if (scm_i_is_narrow_string (str)) \ { \ err = mem_iconveh (scm_i_string_chars (str), c_strlen, \ - "ISO-8859-1", c_utf_name, \ + "UTF-8", c_utf_name, \ iconveh_question_mark, NULL, \ &c_utf, &c_utf_len); \ if (SCM_UNLIKELY (err)) \ diff --git a/libguile/ports.c b/libguile/ports.c index 45e62f4e4..42012f3aa 100644 --- a/libguile/ports.c +++ b/libguile/ports.c @@ -974,7 +974,9 @@ canonicalize_encoding (const char *enc) char *ret; int i; - if (!enc || encoding_matches (enc, sym_ISO_8859_1)) + if (enc == NULL) + return sym_UTF_8; + if (encoding_matches (enc, sym_ISO_8859_1)) return sym_ISO_8859_1; if (encoding_matches (enc, sym_UTF_8)) return sym_UTF_8; @@ -4198,7 +4200,7 @@ scm_init_ports (void) scm_c_define ("%default-port-conversion-strategy", scm_make_fluid_with_default (sym_substitute)); /* Use the locale as the default port encoding. */ - scm_i_set_default_port_encoding (locale_charset ()); + scm_i_set_default_port_encoding ("UTF-8"); scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION, "scm_init_ice_9_ports", diff --git a/libguile/strings.c b/libguile/strings.c index 056b4c99f..63a6c050d 100644 --- a/libguile/strings.c +++ b/libguile/strings.c @@ -1579,7 +1579,7 @@ scm_i_default_string_failed_conversion_handler (void) SCM scm_from_locale_stringn (const char *str, size_t len) { - return scm_from_stringn (str, len, locale_charset (), + return scm_from_stringn (str, len, "UTF-8", scm_i_default_string_failed_conversion_handler ()); } @@ -1907,7 +1907,7 @@ char * scm_to_locale_stringn (SCM str, size_t *lenp) { return scm_to_stringn (str, lenp, - locale_charset (), + "UTF-8", scm_i_default_string_failed_conversion_handler ()); } @@ -2195,7 +2195,7 @@ scm_to_stringn (SCM str, size_t *lenp, const char *encoding, scm_wrong_type_arg_msg (NULL, 0, str, "string"); if (encoding == NULL) - encoding = "ISO-8859-1"; + encoding = "UTF-8"; if (c_strcasecmp (encoding, "UTF-8") == 0) /* This is the most common case--e.g., when calling libc bindings @@ -2247,7 +2247,7 @@ scm_to_stringn (SCM str, size_t *lenp, const char *encoding, if (scm_i_is_narrow_string (str)) { ret = mem_iconveh (scm_i_string_chars (str), ilen, - "ISO-8859-1", encoding, + "UTF-8", encoding, (enum iconv_ilseq_handler) handler, NULL, &buf, &len); /span>ci: Add nix-name and system keys....Add 'nix-name and 'system properties to hydra objects. This way Cuirass won't have to go through every derivation to add those properties. * gnu/ci.scm (package->alist, image-jobs, system-test-jobs, tarball-jobs): Add 'nix-name and 'system properties. * build-aux/hydra/guix-modular.scm (build-job): Ditto. Mathieu Othacehe 2020-03-05hydra: Remove uses of _IOLBF...._IOLBF & co. were deprecated in Guile 2.2 and removed in 3.0. * build-aux/hydra/gnu-system.scm: Pass 'line instead of _IOLBF to 'setvbuf'. * build-aux/hydra/guix-modular.scm: Likewise. Ludovic Courtès 2018-06-10hydra: guix-modular: Build the full Guix....* build-aux/hydra/guix-modular.scm (build-job): Pass #:pull-version to BUILD. Ludovic Courtès 2018-04-08hydra: guix-modular: Honor the 'systems' argument....* build-aux/hydra/guix-modular.scm (hydra-jobs)[systems]: Define as in gnu-system.scm. Honor SYSTEMS. Ludovic Courtès 2018-04-08hydra: guix-modular: Explicitly build for the latest 2.2....* build-aux/hydra/guix-modular.scm (build-job): Pass #:guile-version to 'build'. Ludovic Courtès 2018-04-08hydra: 'guix-modular' jobs use the new 'build-self'....* build-aux/hydra/guix-modular.scm: Remove 'eval-when' form that fiddled with '%load-path'. (build-job): Load 'build-aux/build-self.scm' and call the procedure it returns. * build-aux/hydra/evaluate.scm: The 'build-things' replacement no longer calls 'exit'. Ludovic Courtès 2018-04-08cuirass: Add job specs for the modular Guix....* build-aux/cuirass/guix-modular.scm: New file. * Makefile.am (EXTRA_DIST): Add it. Ludovic Courtès 2017-11-21hydra: Add jobs for the modular Guix....* build-aux/hydra/guix-modular.scm: New file. * Makefile.am (EXTRA_DIST): Add it. Ludovic Courtès