bug in perl autoscan

Joshua Branson <[email protected]>
Newsgroups gmane.comp.sysutils.autoconf.bugs
Message-ID <[email protected]>
I just installed autoscan version 2.21 (on guixSD), and it gave me this
warning in a recently un-tar-ed linphone.tar.gz directory.

#BEGIN_SRC sh
  autoscan
#END_SRC

    Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.30), passed through in regex; marked by <-- HERE in m/\${ <-- HERE [^\}]*}/ at /home/joshua/.guix-profile/bin/autoscan line 361.
    configure.ac: warning: missing AC_CHECK_FUNCS([__argz_count]) wanted by: intl/l10nflist.c:323
    configure.ac: warning: missing AC_CHECK_FUNCS([__argz_next]) wanted by: intl/l10nflist.c:371
    configure.ac: warning: missing AC_CHECK_FUNCS([__argz_stringify]) wanted by: intl/l10nflist.c:248
    configure.ac: warning: missing AC_CHECK_FUNCS([atexit]) wanted by: gtk/chat.c:54
    configure.ac: warning: missing AC_CHECK_FUNCS([dup2]) wanted by: console/shell.c:195
    configure.ac: warning: missing AC_CHECK_FUNCS([inet_ntoa]) wanted by: coreapi/misc.c:415
    configure.ac: warning: missing AC_CHECK_FUNCS([localtime_r]) wanted by: gtk/main.c:852
    configure.ac: warning: missing AC_CHECK_FUNCS([memmove]) wanted by: coreapi/linphonecall.c:4770
    configure.ac: warning: missing AC_CHECK_FUNCS([mempcpy]) wanted by: intl/localealias.c:213
    configure.ac: warning: missing AC_CHECK_FUNCS([memset]) wanted by: gtk/status_notifier.c:458
    configure.ac: warning: missing AC_CHECK_FUNCS([mkdir]) wanted by: gtk/logging.c:103
    configure.ac: warning: missing AC_CHECK_FUNCS([munmap]) wanted by: intl/loadmsgcat.c:1005
    configure.ac: warning: missing AC_CHECK_FUNCS([nl_langinfo]) wanted by: coreapi/sqlite3_bctbx_vfs.c:272
    configure.ac: warning: missing AC_CHECK_FUNCS([pow]) wanted by: coreapi/linphonecall.c:2859
    configure.ac: warning: missing AC_CHECK_FUNCS([putenv]) wanted by: intl/cat-compat.c:199
    configure.ac: warning: missing AC_CHECK_FUNCS([realpath]) wanted by: coreapi/lpconfig.c:103
    configure.ac: warning: missing AC_CHECK_FUNCS([regcomp]) wanted by: coreapi/account_creator.c:262
    configure.ac: warning: missing AC_CHECK_FUNCS([setenv]) wanted by: intl/cat-compat.c:196
    configure.ac: warning: missing AC_CHECK_FUNCS([setlocale]) wanted by: gtk/main.c:2187
    configure.ac: warning: missing AC_CHECK_FUNCS([socket]) wanted by: coreapi/misc.c:296
    configure.ac: warning: missing AC_CHECK_FUNCS([strcasecmp]) wanted by: gtk/friendlist.c:645
    configure.ac: warning: missing AC_CHECK_FUNCS([strchr]) wanted by: gtk/support.c:218
    configure.ac: warning: missing AC_CHECK_FUNCS([strcspn]) wanted by: intl/loadmsgcat.c:800
    configure.ac: warning: missing AC_CHECK_FUNCS([strdup]) wanted by: gtk/main.c:196
    configure.ac: warning: missing AC_CHECK_FUNCS([strerror]) wanted by: gtk/singleinstance.c:82
    configure.ac: warning: missing AC_CHECK_FUNCS([strncasecmp]) wanted by: tools/generator.cc:213
    configure.ac: warning: missing AC_CHECK_FUNCS([strpbrk]) wanted by: coreapi/linphonecore.c:993
    configure.ac: warning: missing AC_CHECK_FUNCS([strrchr]) wanted by: gtk/main.c:198
    configure.ac: warning: missing AC_CHECK_FUNCS([strstr]) wanted by: gtk/support.c:144
    configure.ac: warning: missing AC_CHECK_FUNCS([strtol]) wanted by: console/linphonec.c:1292
    configure.ac: warning: missing AC_CHECK_FUNCS([strtoull]) wanted by: coreapi/proxy.c:174
    configure.ac: warning: missing AC_CHECK_HEADERS([argz.h]) wanted by: intl/l10nflist.c:33
    configure.ac: warning: missing AC_CHECK_HEADERS([fcntl.h]) wanted by: console/wav2raw.c:8
    configure.ac: warning: missing AC_CHECK_HEADERS([langinfo.h]) wanted by: intl/loadmsgcat.c:61
    configure.ac: warning: missing AC_CHECK_HEADERS([libintl.h]) wanted by: gtk/linphone.h:58
    configure.ac: warning: missing AC_CHECK_HEADERS([limits.h]) wanted by: build/wp8/zlib/zconf.h:397
    configure.ac: warning: missing AC_CHECK_HEADERS([locale.h]) wanted by: gtk/main.c:55
    configure.ac: warning: missing AC_CHECK_HEADERS([malloc.h]) wanted by: intl/cat-compat.c:30
    configure.ac: warning: missing AC_CHECK_HEADERS([netdb.h]) wanted by: console/linphonec.c:51
    configure.ac: warning: missing AC_CHECK_HEADERS([nl_types.h]) wanted by: intl/cat-compat.c:35
    configure.ac: warning: missing AC_CHECK_HEADERS([stddef.h]) wanted by: build/wp8/zlib/zconf.h:435
    configure.ac: warning: missing AC_CHECK_HEADERS([stdio_ext.h]) wanted by: intl/localealias.c:33
    configure.ac: warning: missing AC_CHECK_HEADERS([sys/ioctl.h]) wanted by: daemon/daemon.cc:22
    configure.ac: warning: missing AC_CHECK_HEADERS([sys/socket.h]) wanted by: console/linphonec.c:49
    configure.ac: warning: missing AC_CHECK_HEADERS([sys/time.h]) wanted by: console/linphonec.c:50
    configure.ac: warning: missing AC_CHECK_HEADERS([wchar.h]) wanted by: include/MSVC/stdint.h:52
    configure.ac: warning: missing AC_CHECK_HEADER_STDBOOL wanted by: wrappers/cpp/object.cc:63
    configure.ac: warning: missing AC_FUNC_ALLOCA wanted by: intl/localealias.c:42
    configure.ac: warning: missing AC_FUNC_FORK wanted by: console/shell.c:179
    configure.ac: warning: missing AC_FUNC_MALLOC wanted by: wrappers/cpp/object.cc:49
    configure.ac: warning: missing AC_FUNC_MKTIME wanted by: coreapi/call_log.c:53
    configure.ac: warning: missing AC_FUNC_MMAP wanted by: intl/loadmsgcat.c:953
    configure.ac: warning: missing AC_FUNC_REALLOC wanted by: intl/localealias.c:312
    configure.ac: warning: missing AC_PATH_X wanted by: console/linphonec.c:74
    configure.ac: warning: missing AC_PROG_RANLIB wanted by: ltmain.sh:3772
    configure.ac: warning: missing AC_PROG_YACC wanted by: intl/Makefile.in:51
    configure.ac: warning: missing AC_TYPE_INT16_T wanted by: include/MSVC/stdint.h:76
    configure.ac: warning: missing AC_TYPE_INT32_T wanted by: include/MSVC/stdint.h:77
    configure.ac: warning: missing AC_TYPE_INT64_T wanted by: include/linphone/dictionary.h:45
    configure.ac: warning: missing AC_TYPE_INT8_T wanted by: include/MSVC/stdint.h:75
    configure.ac: warning: missing AC_TYPE_OFF_T wanted by: coreapi/sqlite3_bctbx_vfs.c:80
    configure.ac: warning: missing AC_TYPE_PID_T wanted by: gtk/status_notifier.c:30
    configure.ac: warning: missing AC_TYPE_SIZE_T wanted by: gtk/update.c:26
    configure.ac: warning: missing AC_TYPE_SSIZE_T wanted by: coreapi/misc.c:399
    configure.ac: warning: missing AC_TYPE_UINT16_T wanted by: include/MSVC/stdint.h:79
    configure.ac: warning: missing AC_TYPE_UINT32_T wanted by: include/linphone/chat.h:261
    configure.ac: warning: missing AC_TYPE_UINT64_T wanted by: include/linphone/call_stats.h:104
    configure.ac: warning: missing AC_TYPE_UINT8_T wanted by: gtk/singleinstance.c:66

A wise person an the guix mailing list told me this, when I showed him
the error:
 
The regexp in question is

      s/\${[^\}]*}//g;

Perl is complaining because perl regexp use curly braces to specify a range of valid repeats.
Maybe the easiest way to understand it is that the following equivalences hold in regexps:

? is equivalent to {0,1}
+ is equivalent to {1,}
* is equivalent to {0,}

The above (at the end of the regexp "\${[^\}]*}") probably means a literal curly
brace--but they don't escape it - hence the warning.

It's only a warning because no valid repeat range can start with a closing curly
brace.
So perl can still figure out what you meant.

But it's obviously not recommended to use unescaped closing curly braces to
match a literal closing curly brace regardless.

Thanks,

-- 
Joshua Branson
Sent from Emacs and Gnus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.