On 18/12/2020 13:39, G?bor Cs?rdi wrote:> FYI.
tolower, toupper and chartr with non-native chars is work in progress.
(They were getting things wrong in a platform-dependent way, and it
seems the replacement code is also flaky, if in general better than what
went before.)
>
>> sessionInfo()
> R Under development (unstable) (2020-12-17 r79645)
> Platform: x86_64-pc-linux-gnu (64-bit)
> Running under: Debian GNU/Linux bullseye/sid
>
> Matrix products: default
> BLAS: /opt/R-devel/lib/R/lib/libRblas.so
> LAPACK: /opt/R-devel/lib/R/lib/libRlapack.so
>
> locale:
> [1] LC_CTYPE=en_US.iso885915 LC_NUMERIC=C
> [3] LC_TIME=en_US.iso885915 LC_COLLATE=en_US.iso885915
> [5] LC_MONETARY=en_US.iso885915 LC_MESSAGES=en_US.iso885915
> [7] LC_PAPER=en_US.iso885915 LC_NAME=C
> [9] LC_ADDRESS=C LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_US.iso885915 LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> loaded via a namespace (and not attached):
> [1] compiler_4.1.0
>
>
> ## Run this:
>
> fun <- function() {
> ben <- paste0(
> "\u098F\u099F\u09BF \u098F\u0995\u099F\u09BF ",
> "\u09AD\u09BE\u09B7\u09BE \u098F\u0995\u0995 IBM ",
> "\u09B8\u09CD\u0995\u09CD\u09B0\u09BF\u09AA\u09CD\u099F"
> )
> tolower(ben)
> }
> fun()
>
> ## To crash:
>
> free(): invalid next size (fast)
>
> Program received signal SIGABRT, Aborted.
> __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
> 50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
> (gdb) fun()
> Undefined function command: "()". Try "help function".
> (gdb) bt
> #0 __GI_raise (sig=sig at entry=6) at
../sysdeps/unix/sysv/linux/raise.c:50
> #1 0x00007fe471fb3537 in __GI_abort () at abort.c:79
> #2 0x00007fe47200c708 in __libc_message (action=action at entry=do_abort,
> fmt=fmt at entry=0x7fe47211ae31 "%s\n") at
../sysdeps/posix/libc_fatal.c:155
> #3 0x00007fe4720139fa in malloc_printerr
> (str=str at entry=0x7fe47211d180 "free(): invalid next size
(fast)")
> at malloc.c:5347
> #4 0x00007fe472014c34 in _int_free (av=0x7fe47214cb80 <main_arena>,
> p=0x2696a30, have_lock=0)
> at malloc.c:4249
> #5 0x00007fe47245c090 in R_chk_free () from /opt/R-devel/lib/R/lib/libR.so
> #6 0x00007fe47235c8cc in do_tolower () from /opt/R-devel/lib/R/lib/libR.so
> #7 0x00007fe4723f466e in bcEval () from /opt/R-devel/lib/R/lib/libR.so
> #8 0x00007fe4723ed20d in Rf_eval () from /opt/R-devel/lib/R/lib/libR.so
> #9 0x00007fe472409111 in R_execClosure () from
/opt/R-devel/lib/R/lib/libR.so
> #10 0x00007fe472408cce in Rf_applyClosure () from
/opt/R-devel/lib/R/lib/libR.so
> #11 0x00007fe4723ed884 in Rf_eval () from /opt/R-devel/lib/R/lib/libR.so
> #12 0x00007fe47240f6b5 in do_begin () from /opt/R-devel/lib/R/lib/libR.so
> #13 0x00007fe4723ed5cb in Rf_eval () from /opt/R-devel/lib/R/lib/libR.so
> #14 0x00007fe472409111 in R_execClosure () from
/opt/R-devel/lib/R/lib/libR.so
> #15 0x00007fe472408cce in Rf_applyClosure () from
/opt/R-devel/lib/R/lib/libR.so
> #16 0x00007fe4723ed884 in Rf_eval () from /opt/R-devel/lib/R/lib/libR.so
> #17 0x00007fe472443550 in Rf_ReplIteration () from
> /opt/R-devel/lib/R/lib/libR.so
> #18 0x00007fe472445766 in R_ReplConsole () from
/opt/R-devel/lib/R/lib/libR.so
> #19 0x00007fe4724456bd in run_Rmainloop () from
/opt/R-devel/lib/R/lib/libR.so
> #20 0x00007fe4724457fe in Rf_mainloop () from
/opt/R-devel/lib/R/lib/libR.so
> #21 0x0000000000401177 in main ()
> #22 0x00007fe471fb4d0a in __libc_start_main (main=0x401140 <main>,
> argc=1, argv=0x7ffc058512d8,
> init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized
> out>, stack_end=0x7ffc058512c8)
> at ../csu/libc-start.c:308
> #23 0x000000000040107a in _start ()
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Emeritus Professor of Applied Statistics, University of Oxford