patch 9.1.1840: Generating prototype files does not work on all platforms

Problem:  Generating prototype files does not work on all platforms
Solution: Rework prototypes generation using python instead of cproto,
          enable it in CI to test it for each PR (Hirohito Higashi).

closes: #18045

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Hirohito Higashi
2025-10-08 18:31:13 +00:00
committed by Christian Brabandt
parent ce5f9f45af
commit e7c765fe59
160 changed files with 1751 additions and 1551 deletions

View File

@ -27,20 +27,7 @@
// Only do the following when the feature is enabled. Needed for "make
// depend".
#if defined(FEAT_MZSCHEME) || defined(PROTO)
#ifdef PROTO
typedef int Scheme_Object;
typedef int Scheme_Closed_Prim;
typedef int Scheme_Env;
typedef int Scheme_Hash_Table;
typedef int Scheme_Type;
typedef int Scheme_Thread;
typedef int Scheme_Closed_Prim;
typedef int mzshort;
typedef int Scheme_Prim;
typedef int HINSTANCE;
#endif
#if defined(FEAT_MZSCHEME)
/*
* scheme_register_tls_space is only available on 32-bit Windows until
@ -216,7 +203,7 @@ static int window_fixup_proc(void *obj)
# define BUFFER_REF(buf) (vim_mz_buffer *)((buf)->b_mzscheme_ref)
#endif
#if defined(DYNAMIC_MZSCHEME) || defined(PROTO)
#if defined(DYNAMIC_MZSCHEME)
static Scheme_Object *dll_scheme_eof;
static Scheme_Object *dll_scheme_false;
static Scheme_Object *dll_scheme_void;
@ -374,7 +361,7 @@ static void (*dll_scheme_register_embedded_load)(intptr_t len, const char *s);
static void (*dll_scheme_set_config_path)(Scheme_Object *p);
# endif
#if defined(DYNAMIC_MZSCHEME) // not when defined(PROTO)
#if defined(DYNAMIC_MZSCHEME)
// arrays are imported directly
# define scheme_eof dll_scheme_eof
@ -834,7 +821,7 @@ mzvim_check_threads(void)
}
#endif
#if defined(MZSCHEME_GUI_THREADS) || defined(PROTO)
#if defined(MZSCHEME_GUI_THREADS)
static void setup_timer(void);
static void remove_timer(void);