summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.441
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2012-09-26 01:10:42 +0000
committer Eric Hameleers <alien@slackware.com>2018-05-31 22:51:55 +0200
commit9664bee729d487bcc0a0bc35859f8e13d5421c75 (patch)
treeb428a16618e36ed864a8d76ea3435e19a452bf90 /source/ap/vim/patches/7.3.441
parent75a4a592e5ccda30715f93563d741b83e0dcf39e (diff)
downloadcurrent-9664bee729d487bcc0a0bc35859f8e13d5421c75.tar.gz
current-9664bee729d487bcc0a0bc35859f8e13d5421c75.tar.xz
Slackware 14.0slackware-14.0
Wed Sep 26 01:10:42 UTC 2012 Slackware 14.0 x86_64 stable is released! We're perfectionists here at Slackware, so this release has been a long time a-brewing. But we think you'll agree that it was worth the wait. Slackware 14.0 combines modern components, ease of use, and flexible configuration... our "KISS" philosophy demands it. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. Thanks to everyone who helped make this happen. The Slackware team, the upstream developers, and (of course) the awesome Slackware user community. Have fun! :-)
Diffstat (limited to 'source/ap/vim/patches/7.3.441')
-rw-r--r--source/ap/vim/patches/7.3.441341
1 files changed, 341 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.441 b/source/ap/vim/patches/7.3.441
new file mode 100644
index 000000000..9a7539b5a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.441
@@ -0,0 +1,341 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.441
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.441
+Problem: Newer versions of MzScheme (Racket) require earlier (trampolined)
+ initialisation.
+Solution: Call mzscheme_main() early in main(). (Sergey Khorev)
+Files: src/Make_mvc.mak, src/if_mzsch.c, src/main.c,
+ src/proto/if_mzsch.pro
+
+
+*** ../vim-7.3.440/src/Make_mvc.mak 2011-09-14 19:01:38.000000000 +0200
+--- src/Make_mvc.mak 2012-02-12 01:46:05.000000000 +0100
+***************
+*** 740,745 ****
+--- 740,747 ----
+ !endif
+ !endif
+ MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
++ # increase stack size
++ MZSCHEME_LIB = $(MZSCHEME_LIB) /STACK:8388608
+ !endif
+
+ # Perl interface
+*** ../vim-7.3.440/src/if_mzsch.c 2010-11-03 21:59:23.000000000 +0100
+--- src/if_mzsch.c 2012-02-12 01:47:31.000000000 +0100
+***************
+*** 31,38 ****
+ * depend". */
+ #if defined(FEAT_MZSCHEME) || defined(PROTO)
+
+- #include <assert.h>
+-
+ /* Base data structures */
+ #define SCHEME_VIMBUFFERP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_buffer_type)
+ #define SCHEME_VIMWINDOWP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_window_type)
+--- 31,36 ----
+***************
+*** 559,575 ****
+ hMzSch = vimLoadLib(sch_dll);
+ hMzGC = vimLoadLib(gc_dll);
+
+! if (!hMzSch)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), sch_dll);
+ return FAIL;
+ }
+
+! if (!hMzGC)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), gc_dll);
+ return FAIL;
+ }
+
+--- 557,573 ----
+ hMzSch = vimLoadLib(sch_dll);
+ hMzGC = vimLoadLib(gc_dll);
+
+! if (!hMzGC)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), gc_dll);
+ return FAIL;
+ }
+
+! if (!hMzSch)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), sch_dll);
+ return FAIL;
+ }
+
+***************
+*** 798,862 ****
+ static __declspec(thread) void *tls_space;
+ #endif
+
+! void
+! mzscheme_main(void)
+ {
+ #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
+ scheme_register_tls_space(&tls_space, 0);
+ #endif
+! #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400
+! /* use trampoline for precise GC in MzScheme >= 4.x */
+! scheme_main_setup(TRUE, mzscheme_env_main, 0, NULL);
+ #else
+! mzscheme_env_main(NULL, 0, NULL);
+ #endif
+ }
+
+ static int
+! mzscheme_env_main(Scheme_Env *env, int argc UNUSED, char **argv UNUSED)
+ {
+! /* neither argument nor return values are used */
+! #ifdef MZ_PRECISE_GC
+! # if MZSCHEME_VERSION_MAJOR < 400
+! /*
+! * Starting from version 4.x, embedding applications must use
+! * scheme_main_setup/scheme_main_stack_setup trampolines
+! * rather than setting stack base directly with scheme_set_stack_base
+! */
+ Scheme_Object *dummy = NULL;
+ MZ_GC_DECL_REG(1);
+ MZ_GC_VAR_IN_REG(0, dummy);
+
+ stack_base = &__gc_var_stack__;
+ # else
+- /* environment has been created by us by Scheme */
+- environment = env;
+- # endif
+- /*
+- * In 4.x, all activities must be performed inside trampoline
+- * so we are forced to initialise GC immediately
+- * This can be postponed in 3.x but I see no point in implementing
+- * a feature which will work in older versions only.
+- * One would better use conservative GC if he needs dynamic MzScheme
+- */
+- mzscheme_init();
+- #else
+ int dummy = 0;
+ stack_base = (void *)&dummy;
+ #endif
+! main_loop(FALSE, FALSE);
+! #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR < 400
+ /* releasing dummy */
+ MZ_GC_REG();
+ MZ_GC_UNREG();
+ #endif
+! return 0;
+ }
+
+ static void
+ startup_mzscheme(void)
+ {
+! #if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400
+ scheme_set_stack_base(stack_base, 1);
+ #endif
+
+--- 796,863 ----
+ static __declspec(thread) void *tls_space;
+ #endif
+
+! /*
+! * Since version 4.x precise GC requires trampolined startup.
+! * Futures and places in version 5.x need it too.
+! */
+! #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400 \
+! || MZSCHEME_VERSION_MAJOR >= 500 && (defined(MZ_USE_FUTURES) || defined(MZ_USE_PLACES))
+! # ifdef DYNAMIC_MZSCHEME
+! # error Precise GC v.4+ or Racket with futures/places do not support dynamic MzScheme
+! # endif
+! # define TRAMPOLINED_MZVIM_STARTUP
+! #endif
+!
+! int
+! mzscheme_main(int argc, char** argv)
+ {
+ #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
+ scheme_register_tls_space(&tls_space, 0);
+ #endif
+! #ifdef TRAMPOLINED_MZVIM_STARTUP
+! return scheme_main_setup(TRUE, mzscheme_env_main, argc, argv);
+ #else
+! return mzscheme_env_main(NULL, argc, argv);
+ #endif
+ }
+
+ static int
+! mzscheme_env_main(Scheme_Env *env, int argc, char **argv)
+ {
+! int vim_main_result;
+! #ifdef TRAMPOLINED_MZVIM_STARTUP
+! /* Scheme has created the environment for us */
+! environment = env;
+! #else
+! # ifdef MZ_PRECISE_GC
+ Scheme_Object *dummy = NULL;
+ MZ_GC_DECL_REG(1);
+ MZ_GC_VAR_IN_REG(0, dummy);
+
+ stack_base = &__gc_var_stack__;
+ # else
+ int dummy = 0;
+ stack_base = (void *)&dummy;
++ # endif
+ #endif
+!
+! /* mzscheme_main is called as a trampoline from main.
+! * We trampoline into vim_main2
+! * Passing argc, argv through from mzscheme_main
+! */
+! vim_main_result = vim_main2(argc, argv);
+! #if !defined(TRAMPOLINED_MZVIM_STARTUP) && defined(MZ_PRECISE_GC)
+ /* releasing dummy */
+ MZ_GC_REG();
+ MZ_GC_UNREG();
+ #endif
+! return vim_main_result;
+ }
+
+ static void
+ startup_mzscheme(void)
+ {
+! #ifndef TRAMPOLINED_MZVIM_STARTUP
+ scheme_set_stack_base(stack_base, 1);
+ #endif
+
+***************
+*** 868,874 ****
+ MZ_REGISTER_STATIC(exn_message);
+ MZ_REGISTER_STATIC(vim_exn);
+
+! #if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400
+ /* in newer versions of precise GC the initial env has been created */
+ environment = scheme_basic_env();
+ #endif
+--- 869,875 ----
+ MZ_REGISTER_STATIC(exn_message);
+ MZ_REGISTER_STATIC(vim_exn);
+
+! #ifndef TRAMPOLINED_MZVIM_STARTUP
+ /* in newer versions of precise GC the initial env has been created */
+ environment = scheme_basic_env();
+ #endif
+***************
+*** 3013,3019 ****
+ MZ_GC_REG();
+
+ tmp = scheme_make_struct_names(exn_name, scheme_null, 0, &nc);
+- assert(nc <= 5);
+ mch_memmove(exn_names, tmp, nc * sizeof(Scheme_Object *));
+ MZ_GC_CHECK();
+
+--- 3014,3019 ----
+*** ../vim-7.3.440/src/main.c 2011-12-08 15:57:54.000000000 +0100
+--- src/main.c 2012-02-12 01:49:50.000000000 +0100
+***************
+*** 554,559 ****
+--- 554,584 ----
+ debug_break_level = params.use_debug_break_level;
+ #endif
+
++ #ifdef FEAT_MZSCHEME
++ /*
++ * Newer version of MzScheme (Racket) require earlier (trampolined)
++ * initialisation via scheme_main_setup.
++ * Implement this by initialising it as early as possible
++ * and splitting off remaining Vim main into vim_main2
++ */
++ {
++ /* Pack up preprocessed command line arguments.
++ * It is safe because Scheme does not access argc/argv. */
++ char *args[2];
++ args[0] = (char *)fname;
++ args[1] = (char *)&params;
++ return mzscheme_main(2, args);
++ }
++ }
++
++ int vim_main2(int argc, char **argv)
++ {
++ char_u *fname = (char_u *)argv[0];
++ mparm_T params;
++
++ memcpy(&params, argv[1], sizeof(params));
++ #endif
++
+ /* Execute --cmd arguments. */
+ exe_pre_commands(&params);
+
+***************
+*** 957,970 ****
+
+ /*
+ * Call the main command loop. This never returns.
+! * For embedded MzScheme the main_loop will be called by Scheme
+! * for proper stack tracking
+! */
+! #ifndef FEAT_MZSCHEME
+ main_loop(FALSE, FALSE);
+- #else
+- mzscheme_main();
+- #endif
+
+ return 0;
+ }
+--- 982,989 ----
+
+ /*
+ * Call the main command loop. This never returns.
+! */
+ main_loop(FALSE, FALSE);
+
+ return 0;
+ }
+*** ../vim-7.3.440/src/proto/if_mzsch.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/if_mzsch.pro 2012-02-12 01:50:57.000000000 +0100
+***************
+*** 14,19 ****
+ void mzvim_reset_timer __ARGS((void));
+ void *mzvim_eval_string __ARGS((char_u *str));
+ int mzthreads_allowed __ARGS((void));
+! void mzscheme_main __ARGS((void));
+ void do_mzeval __ARGS((char_u *str, typval_T *rettv));
+ /* vim: set ft=c : */
+--- 14,20 ----
+ void mzvim_reset_timer __ARGS((void));
+ void *mzvim_eval_string __ARGS((char_u *str));
+ int mzthreads_allowed __ARGS((void));
+! int mzscheme_main __ARGS((int argc, char **argv));
+ void do_mzeval __ARGS((char_u *str, typval_T *rettv));
++ int vim_main2 __ARGS((int argc, char **argv));
+ /* vim: set ft=c : */
+*** ../vim-7.3.440/src/version.c 2012-02-12 01:35:06.000000000 +0100
+--- src/version.c 2012-02-12 01:54:14.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 441,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+43. You tell the kids they can't use the computer because "Daddy's got work to
+ do" and you don't even have a job.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///