On Mon, Aug 01, 2016 at 03:41:08PM +0200, Bram Moolenaar wrote:
> 
> Patch 7.4.2137
> Problem:    Using function() with a name will find another function when it is
>             redefined.
> Solution:   Add funcref().  Refer to lambda using a partial.  Fix several
>             reference counting issues.
> Files:      src/vim.h, src/structs.h, src/userfunc.c, src/eval.c,
>             src/evalfunc.c, src/channel.c, src/proto/eval.pro,
>             src/proto/userfunc.pro, src/if_mzsch.c, src/regexp.c, src/misc2.c,
>             src/if_py_both.h, src/testdir/test_lambda.vim,
>             src/testdir/test_expr.vim, runtime/doc/eval.txt
> 

Vim does not build with tiny freatures after this patch.

Added the output below:

./configure --prefix=/usr --localstatedir=/var/lib/vim \
    --mandir=/usr/share/man --with-compiledby=BlackEagle \
    --with-features=tiny --disable-gpm --enable-acl --with-x=no \
    --disable-gui --enable-multibyte --disable-cscope \
    --disable-netbeans --disable-perlinterp --disable-pythoninterp \
    --disable-rubyinterp --enable-luainterp=no
make

checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for library containing strerror... none required
checking for gawk... gawk
checking for strip... strip
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking --enable-fail-if-missing argument... no
checking for recent clang version... no
configure: checking for buggy tools...
- sh is 'GNU bash, version 4.3.46(1)-release (x86_64-unknown-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.' - probably OK.
checking for BeOS... no
checking for QNX... no
checking for Darwin (Mac OS X)... no
checking AvailabilityMacros.h usability... no
checking AvailabilityMacros.h presence... no
checking for AvailabilityMacros.h... no
checking --with-local-dir argument... Defaulting to /usr/local
checking --with-vim-name argument... Defaulting to vim
checking --with-ex-name argument... Defaulting to ex
checking --with-view-name argument... Defaulting to view
checking --with-global-runtime argument... no
checking --with-modified-by argument... no
checking if character set is EBCDIC... no
checking --disable-smack argument... no
checking linux/xattr.h usability... yes
checking linux/xattr.h presence... yes
checking for linux/xattr.h... yes
checking attr/xattr.h usability... yes
checking attr/xattr.h presence... yes
checking for attr/xattr.h... yes
checking for XATTR_NAME_SMACKEXEC in linux/xattr.h... no
checking --disable-selinux argument... no
checking for is_selinux_enabled in -lselinux... no
checking --with-features argument... tiny
checking --with-compiledby argument... BlackEagle
checking --disable-xsmp argument... no
checking --disable-xsmp-interact argument... no
checking --enable-luainterp argument... no
checking --enable-mzschemeinterp argument... no
checking --enable-perlinterp argument... no
checking --enable-pythoninterp argument... no
checking --enable-python3interp argument... no
checking --enable-tclinterp argument... no
checking --enable-rubyinterp argument... no
checking --enable-cscope argument... no
checking --enable-workshop argument... no
checking --disable-netbeans argument... yes
checking --disable-channel argument... cannot use channels with tiny or small 
features
checking --enable-multibyte argument... yes
checking --enable-hangulinput argument... no
checking --enable-xim argument... defaulting to auto
checking --enable-fontset argument... no
defaulting to: don't HAVE_X11
checking --enable-gui argument... no GUI support
checking X11/SM/SMlib.h usability... yes
checking X11/SM/SMlib.h presence... yes
checking for X11/SM/SMlib.h... yes
checking for CYGWIN or MSYS environment... no
checking whether toupper is broken... no
checking whether __DATE__ and __TIME__ work... yes
checking whether __attribute__((unused)) is allowed... yes
checking elf.h usability... yes
checking elf.h presence... yes
checking for elf.h... yes
checking for main in -lelf... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking stdint.h usability... yes
checking stdint.h presence... yes
checking for stdint.h... yes
checking stdlib.h usability... yes
checking stdlib.h presence... yes
checking for stdlib.h... yes
checking string.h usability... yes
checking string.h presence... yes
checking for string.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/utsname.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
checking termcap.h usability... yes
checking termcap.h presence... yes
checking for termcap.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sgtty.h usability... yes
checking sgtty.h presence... yes
checking for sgtty.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/types.h usability... yes
checking sys/types.h presence... yes
checking for sys/types.h... yes
checking termio.h usability... yes
checking termio.h presence... yes
checking for termio.h... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking inttypes.h usability... yes
checking inttypes.h presence... yes
checking for inttypes.h... yes
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking unistd.h usability... yes
checking unistd.h presence... yes
checking for unistd.h... yes
checking stropts.h usability... yes
checking stropts.h presence... yes
checking for stropts.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking sys/systeminfo.h usability... no
checking sys/systeminfo.h presence... no
checking for sys/systeminfo.h... no
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking sys/stream.h usability... no
checking sys/stream.h presence... no
checking for sys/stream.h... no
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking libc.h usability... no
checking libc.h presence... no
checking for libc.h... no
checking sys/statfs.h usability... yes
checking sys/statfs.h presence... yes
checking for sys/statfs.h... yes
checking poll.h usability... yes
checking poll.h presence... yes
checking for poll.h... yes
checking sys/poll.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking utime.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking libgen.h usability... yes
checking libgen.h presence... yes
checking for libgen.h... yes
checking util/debug.h usability... no
checking util/debug.h presence... no
checking for util/debug.h... no
checking util/msg18n.h usability... no
checking util/msg18n.h presence... no
checking for util/msg18n.h... no
checking frame.h usability... no
checking frame.h presence... no
checking for frame.h... no
checking sys/acl.h usability... yes
checking sys/acl.h presence... yes
checking for sys/acl.h... yes
checking sys/access.h usability... no
checking sys/access.h presence... no
checking for sys/access.h... no
checking sys/sysinfo.h usability... yes
checking sys/sysinfo.h presence... yes
checking for sys/sysinfo.h... yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking wctype.h usability... yes
checking wctype.h presence... yes
checking for wctype.h... yes
checking for sys/ptem.h... no
checking for sys/sysctl.h... yes
checking for pthread_np.h... no
checking strings.h usability... yes
checking strings.h presence... yes
checking for strings.h... yes
checking if strings.h can be included after string.h... yes
checking whether gcc needs -traditional... no
checking for an ANSI C-conforming const... yes
checking for working volatile... yes
checking for mode_t... yes
checking for off_t... yes
checking for pid_t... yes
checking for size_t... yes
checking for uid_t in sys/types.h... yes
checking for uint32_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking for ino_t... yes
checking for dev_t... yes
checking whether byte ordering is bigendian... no
checking for inline... inline
checking for rlim_t... yes
checking for stack_t... yes
checking whether stack_t has an ss_base field... no
checking --with-tlib argument... empty: automatic terminal library selection
checking for tgetent in -ltinfo... no
checking for tgetent in -lncurses... yes
checking whether we talk terminfo... yes
checking what tgetent() returns for an unknown terminal... zero
checking whether termcap.h contains ospeed... yes
checking whether termcap.h contains UP, BC and PC... yes
checking whether tputs() uses outfuntype... no
checking whether sys/select.h and sys/time.h may both be included... yes
checking for /dev/ptc... no
checking for SVR4 ptys... yes
checking for ptyranges... don't know
checking default tty permissions/group... can't determine - assume ptys are 
world accessible
world
checking return type of signal handlers... void
checking for struct sigcontext... yes
checking getcwd implementation is broken... no
checking for bcmp... yes
checking for fchdir... yes
checking for fchown... yes
checking for fsync... yes
checking for getcwd... yes
checking for getpseudotty... no
checking for getpwent... yes
checking for getpwnam... yes
checking for getpwuid... yes
checking for getrlimit... yes
checking for gettimeofday... yes
checking for getwd... yes
checking for lstat... yes
checking for memcmp... yes
checking for memset... yes
checking for mkdtemp... yes
checking for nanosleep... yes
checking for opendir... yes
checking for putenv... yes
checking for qsort... yes
checking for readlink... yes
checking for select... yes
checking for setenv... yes
checking for setpgid... yes
checking for setsid... yes
checking for sigaltstack... yes
checking for sigstack... yes
checking for sigset... yes
checking for sigsetjmp... no
checking for sigaction... yes
checking for sigvec... no
checking for strcasecmp... yes
checking for strerror... yes
checking for strftime... yes
checking for stricmp... no
checking for strncasecmp... yes
checking for strnicmp... no
checking for strpbrk... yes
checking for strtol... yes
checking for tgetent... yes
checking for towlower... yes
checking for towupper... yes
checking for iswupper... yes
checking for usleep... yes
checking for utime... yes
checking for utimes... yes
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for st_blksize... yes
checking whether stat() ignores a trailing slash... no
checking for iconv_open()... yes
checking for nl_langinfo(CODESET)... yes
checking for strtod in -lm... yes
checking for strtod() and other floating point functions... yes
checking for isinf()... yes
checking for isnan()... yes
checking --disable-acl argument... no
checking for acl_get_file in -lposix1e... no
checking for acl_get_file in -lacl... yes
checking for fgetxattr in -lattr... yes
checking for POSIX ACL support... yes
checking for acl_get in -lsec... no
checking for Solaris ACL support... no
checking for AIX ACL support... no
checking --disable-gpm argument... yes
checking --disable-sysmouse argument... no
checking for sysmouse... no
checking for FD_CLOEXEC... yes
checking for rename... yes
checking for sysctl... not usable
checking for sysinfo... yes
checking for sysinfo.mem_unit... yes
checking for sysconf... yes
checking size of int... 4
checking size of long... 8
checking size of time_t... 8
checking size of off_t... 8
checking uint32_t is 32 bits... ok
checking whether memmove handles overlaps... yes
checking for _xpg4_setrunelocale in -lxpg4... no
checking how to create tags... ctags
checking how to run man with a section nr... man
checking --disable-nls argument... no
checking for msgfmt... msgfmt
checking for NLS... gettext() works
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for dlopen()... no
checking for dlopen() in -ldl... yes
checking for dlsym()... yes
checking setjmp.h usability... yes
checking setjmp.h presence... yes
checking for setjmp.h... yes
checking for GCC 3 or later... yes
checking whether we need -D_FORTIFY_SOURCE=1... yes
checking linker --as-needed support... yes
configure: creating ./config.status
config.status: creating auto/config.mk
config.status: creating auto/config.h
Starting make in the src directory.
If there are problems, cd to the src directory and run make there
cd src && make first
make[1]: Entering directory '/build/vim/src/vim-build-tn/src'
mkdir objects
CC="gcc -Iproto -DHAVE_CONFIG_H   -D_FORTIFY_SOURCE=2    " srcdir=. sh 
./osdef.sh
creating auto/pathdef.c
cd xxd; CC="gcc" CFLAGS="-D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 
-pipe -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1" 
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro -L/usr/local/lib 
-Wl,--as-needed" \
        make -f Makefile
make[2]: Entering directory '/build/vim/src/vim-build-tn/src/xxd'
gcc -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe 
-fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 
-Wl,-O1,--sort-common,--as-needed,-z,relro -L/usr/local/lib -Wl,--as-needed 
-DUNIX -o xxd xxd.c
In file included from /usr/include/stdio.h:27:0,
                 from os_unix.h:21,
                 from osdef0.c:6:
/usr/include/features.h:331:4: warning: #warning _FORTIFY_SOURCE requires 
compiling with optimization (-O) [-Wcpp]
 #  warning _FORTIFY_SOURCE requires compiling with optimization (-O)
    ^~~~~~~
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -D_FORTIFY_SOURCE=2  -march=x86-64 
-mtune=generic -O2 -pipe -fstack-protector-strong -U_FORTIFY_SOURCE 
-D_FORTIFY_SOURCE=1       -o objects/arabic.o arabic.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -D_FORTIFY_SOURCE=2  -march=x86-64 
-mtune=generic -O2 -pipe -fstack-protector-strong -U_FORTIFY_SOURCE 
-D_FORTIFY_SOURCE=1       -o objects/buffer.o buffer.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -D_FORTIFY_SOURCE=2  -march=x86-64 
-mtune=generic -O2 -pipe -fstack-protector-strong -U_FORTIFY_SOURCE 
-D_FORTIFY_SOURCE=1       -o objects/blowfish.o blowfish.c
make[2]: Leaving directory '/build/vim/src/vim-build-tn/src/xxd'
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -D_FORTIFY_SOURCE=2  -march=x86-64 
-mtune=generic -O2 -pipe -fstack-protector-strong -U_FORTIFY_SOURCE 
-D_FORTIFY_SOURCE=1       -o objects/charset.o charset.c
In file included from vim.h:1823:0,
                 from buffer.c:28:
structs.h:1390:5: error: unknown type name 'ufunc_T'
     ufunc_T *pt_func; /* function pointer; when NULL lookup function
     ^~~~~~~
In file included from vim.h:1823:0,
                 from arabic.c:16:
structs.h:1390:5: error: unknown type name 'ufunc_T'
     ufunc_T *pt_func; /* function pointer; when NULL lookup function
     ^~~~~~~
In file included from vim.h:1823:0,
                 from charset.c:10:
structs.h:1390:5: error: unknown type name 'ufunc_T'
     ufunc_T *pt_func; /* function pointer; when NULL lookup function
     ^~~~~~~
In file included from proto.h:170:0,
                 from vim.h:2099,
                 from buffer.c:28:
proto/userfunc.pro:6:1: error: unknown type name 'ufunc_T'
 ufunc_T *find_func(char_u *name);
 ^~~~~~~
proto/userfunc.pro:10:63: error: unknown type name 'funcdict_T'
 char_u *trans_function_name(char_u **pp, int skip, int flags, funcdict_T *fdp, 
partial_T **partial);
                                                               ^~~~~~~~~~
proto/userfunc.pro:22:21: error: unknown type name 'ufunc_T'
 void func_ptr_unref(ufunc_T *fp);
                     ^~~~~~~
proto/userfunc.pro:24:19: error: unknown type name 'ufunc_T'
 void func_ptr_ref(ufunc_T *fp);
                   ^~~~~~~
proto/userfunc.pro:58:35: error: unknown type name 'ufunc_T'
 int set_ref_in_func(char_u *name, ufunc_T *fp_in, int copyID);
                                   ^~~~~~~
In file included from vim.h:1823:0,
                 from blowfish.c:22:
structs.h:1390:5: error: unknown type name 'ufunc_T'
     ufunc_T *pt_func; /* function pointer; when NULL lookup function
     ^~~~~~~
In file included from proto.h:170:0,
                 from vim.h:2099,
                 from arabic.c:16:
proto/userfunc.pro:6:1: error: unknown type name 'ufunc_T'
 ufunc_T *find_func(char_u *name);
 ^~~~~~~
proto/userfunc.pro:10:63: error: unknown type name 'funcdict_T'
 char_u *trans_function_name(char_u **pp, int skip, int flags, funcdict_T *fdp, 
partial_T **partial);
                                                               ^~~~~~~~~~
proto/userfunc.pro:22:21: error: unknown type name 'ufunc_T'
 void func_ptr_unref(ufunc_T *fp);
                     ^~~~~~~
proto/userfunc.pro:24:19: error: unknown type name 'ufunc_T'
 void func_ptr_ref(ufunc_T *fp);
                   ^~~~~~~
proto/userfunc.pro:58:35: error: unknown type name 'ufunc_T'
 int set_ref_in_func(char_u *name, ufunc_T *fp_in, int copyID);
                                   ^~~~~~~
In file included from proto.h:170:0,
                 from vim.h:2099,
                 from charset.c:10:
proto/userfunc.pro:6:1: error: unknown type name 'ufunc_T'
 ufunc_T *find_func(char_u *name);
 ^~~~~~~
proto/userfunc.pro:10:63: error: unknown type name 'funcdict_T'
 char_u *trans_function_name(char_u **pp, int skip, int flags, funcdict_T *fdp, 
partial_T **partial);
                                                               ^~~~~~~~~~
proto/userfunc.pro:22:21: error: unknown type name 'ufunc_T'
 void func_ptr_unref(ufunc_T *fp);
                     ^~~~~~~
proto/userfunc.pro:24:19: error: unknown type name 'ufunc_T'
 void func_ptr_ref(ufunc_T *fp);
                   ^~~~~~~
proto/userfunc.pro:58:35: error: unknown type name 'ufunc_T'
 int set_ref_in_func(char_u *name, ufunc_T *fp_in, int copyID);
                                   ^~~~~~~
make[1]: *** [Makefile:2819: objects/arabic.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:2825: objects/buffer.o] Error 1
In file included from proto.h:170:0,
                 from vim.h:2099,
                 from blowfish.c:22:
proto/userfunc.pro:6:1: error: unknown type name 'ufunc_T'
 ufunc_T *find_func(char_u *name);
 ^~~~~~~
proto/userfunc.pro:10:63: error: unknown type name 'funcdict_T'
 char_u *trans_function_name(char_u **pp, int skip, int flags, funcdict_T *fdp, 
partial_T **partial);
                                                               ^~~~~~~~~~
proto/userfunc.pro:22:21: error: unknown type name 'ufunc_T'
 void func_ptr_unref(ufunc_T *fp);
                     ^~~~~~~
proto/userfunc.pro:24:19: error: unknown type name 'ufunc_T'
 void func_ptr_ref(ufunc_T *fp);
                   ^~~~~~~
proto/userfunc.pro:58:35: error: unknown type name 'ufunc_T'
 int set_ref_in_func(char_u *name, ufunc_T *fp_in, int copyID);
                                   ^~~~~~~
make[1]: *** [Makefile:2822: objects/blowfish.o] Error 1
make[1]: *** [Makefile:2828: objects/charset.o] Error 1
make[1]: Leaving directory '/build/vim/src/vim-build-tn/src'
make: *** [Makefile:29: first] Error 2

thanks

-- 
Ike

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Attachment: signature.asc
Description: PGP signature

Raspunde prin e-mail lui