From 7319b539f0fcef27637a507367e64bfce1808931 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 3 Dec 2010 16:34:58 -0700 Subject: [PATCH] win64: initial CGC build --- src/foreign/foreign.c | 8 +- src/foreign/foreign.rktc | 4 +- src/racket/include/schthread.h | 33 ++++- src/racket/sconfig.h | 16 ++- src/racket/src/bgnfloat.inc | 4 +- src/racket/src/bignum.c | 26 ++-- src/racket/src/bool.c | 6 +- src/racket/src/char.c | 4 +- src/racket/src/dynext.c | 2 +- src/racket/src/env.c | 57 ++++---- src/racket/src/gmp/gmp.h | 8 +- src/racket/src/hash.c | 2 +- src/racket/src/jit.c | 5 +- src/racket/src/lightning/i386/core.h | 33 +++-- src/racket/src/module.c | 2 +- src/racket/src/mzrt.c | 2 +- src/racket/src/mzrt.h | 2 +- src/racket/src/mzsj86.c | 4 + src/racket/src/schemef.h | 78 +++++------ src/racket/src/schpriv.h | 17 +-- src/racket/src/string.c | 109 ++++++++-------- src/racket/src/strops.inc | 2 +- src/racket/src/stxobj.c | 4 +- src/racket/src/symbol.c | 34 ++--- src/worksp/.gitignore | 1 + src/worksp/libffi/ffi.h | 3 +- src/worksp/libffi/libffi.vcproj | 140 +++++++++++++++++++- src/worksp/libffi/win32.asm | 6 +- src/worksp/libmzgc/libmzgc.vcproj | 173 +++++++++++++++++++++++++ src/worksp/libracket/libracket.vcproj | 177 +++++++++++++++++++++++++ src/worksp/racket/racket.sln | 18 +++ src/worksp/racket/racket.vcproj | 179 ++++++++++++++++++++++++++ 32 files changed, 952 insertions(+), 207 deletions(-) diff --git a/src/foreign/foreign.c b/src/foreign/foreign.c index a432f21a12..ed5ae66de3 100644 --- a/src/foreign/foreign.c +++ b/src/foreign/foreign.c @@ -418,9 +418,9 @@ static Scheme_Object *foreign_ffi_obj_name(int argc, Scheme_Object *argv[]) /* longs and ints are really the same */ #define scheme_get_realint_val(x,y) \ - scheme_get_int_val(x,(long*)(y)) + scheme_get_int_val(x,(intptr_t*)(y)) #define scheme_get_unsigned_realint_val(x,y) \ - scheme_get_unsigned_int_val(x,(unsigned long*)(y)) + scheme_get_unsigned_int_val(x,(uintptr_t*)(y)) #define scheme_make_realinteger_value \ scheme_make_integer_value #define scheme_make_realinteger_value_from_unsigned \ @@ -1049,13 +1049,13 @@ ffi_abi sym_to_abi(char *who, Scheme_Object *sym) if (SCHEME_FALSEP(sym) || SAME_OBJ(sym, default_sym)) return FFI_DEFAULT_ABI; else if (SAME_OBJ(sym, sysv_sym)) { -#ifdef WINDOWS_DYNAMIC_LOAD +#if defined(WINDOWS_DYNAMIC_LOAD) && !defined(_WIN64) return FFI_SYSV; #else scheme_signal_error("%s: ABI not implemented: %V", who, sym); #endif } else if (SAME_OBJ(sym, stdcall_sym)) { -#ifdef WINDOWS_DYNAMIC_LOAD +#if defined(WINDOWS_DYNAMIC_LOAD) && !defined(_WIN64) return FFI_STDCALL; #else scheme_signal_error("%s: ABI not implemented: %V", who, sym); diff --git a/src/foreign/foreign.rktc b/src/foreign/foreign.rktc index e1698c1f21..35f2936f14 100755 --- a/src/foreign/foreign.rktc +++ b/src/foreign/foreign.rktc @@ -332,9 +332,9 @@ THREAD_LOCAL_DECL(static Scheme_Hash_Table *opened_libs); /* longs and ints are really the same */ #define scheme_get_realint_val(x,y) \ - scheme_get_int_val(x,(long*)(y)) + scheme_get_int_val(x,(intptr_t*)(y)) #define scheme_get_unsigned_realint_val(x,y) \ - scheme_get_unsigned_int_val(x,(unsigned long*)(y)) + scheme_get_unsigned_int_val(x,(uintptr_t*)(y)) #define scheme_make_realinteger_value \ scheme_make_integer_value #define scheme_make_realinteger_value_from_unsigned \ diff --git a/src/racket/include/schthread.h b/src/racket/include/schthread.h index 42850fd25a..6110226377 100644 --- a/src/racket/include/schthread.h +++ b/src/racket/include/schthread.h @@ -28,8 +28,14 @@ extern "C" { #if defined(MZ_USE_PLACES) || defined(MZ_USE_FUTURES) # define USE_THREAD_LOCAL # if _MSC_VER -# define THREAD_LOCAL /* empty */ -# define IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS +# ifdef _WIN64 +# define THREAD_LOCAL __declspec(thread) +# define MZ_THREAD_EXTERN extern +# define IMPLEMENT_THREAD_LOCAL_EXTERNALLY_VIA_PROC +# else +# define THREAD_LOCAL /* empty */ +# define IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS +# endif # elif (defined(__APPLE__) && defined(__MACH__)) || defined(GC2_PLACES_TESTING) # define IMPLEMENT_THREAD_LOCAL_VIA_PTHREADS # if defined(__x86_64__) || defined(__i386__) @@ -61,6 +67,10 @@ extern "C" { #define MZ_EXTERN extern MZ_DLLSPEC +#ifndef MZ_THREAD_EXTERN +# define MZ_THREAD_EXTERN MZ_EXTERN +#endif + MZ_EXTERN void scheme_init_os_thread(); /* **************************************************************** */ @@ -385,10 +395,23 @@ XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION; # endif #else /* Using `THREAD_LOCAL' variable: */ -MZ_EXTERN THREAD_LOCAL Thread_Local_Variables scheme_thread_locals; -# define scheme_get_thread_local_variables() (&scheme_thread_locals) -# ifdef MZ_XFORM +# if defined(IMPLEMENT_THREAD_LOCAL_EXTERNALLY_VIA_PROC) && !defined(__mzscheme_private__) +# ifdef MZ_XFORM +START_XFORM_SKIP; +# endif +static __inline Thread_Local_Variables *scheme_get_thread_local_variables() { + return scheme_external_get_thread_local_variables(); +} +# ifdef MZ_XFORM +END_XFORM_SKIP; +XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION; +# endif +# else +MZ_THREAD_EXTERN THREAD_LOCAL Thread_Local_Variables scheme_thread_locals; +# define scheme_get_thread_local_variables() (&scheme_thread_locals) +# ifdef MZ_XFORM XFORM_GC_VARIABLE_STACK_THROUGH_THREAD_LOCAL; +# endif # endif #endif diff --git a/src/racket/sconfig.h b/src/racket/sconfig.h index b398f69755..f5408f37cc 100644 --- a/src/racket/sconfig.h +++ b/src/racket/sconfig.h @@ -492,7 +492,11 @@ || (defined(_MSC_VER) \ && (defined(__WIN32__) || defined(WIN32) || defined(_WIN32)))) -# define SCHEME_PLATFORM_LIBRARY_SUBPATH "win32\\i386" +# ifdef _WIN64 +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "win32\\x86_64" +# else +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "win32\\i386" +# endif # define SYSTEM_TYPE_NAME "windows" # define DOS_FILE_SYSTEM @@ -521,7 +525,9 @@ # define DO_STACK_CHECK # define WINDOWS_FIND_STACK_BOUNDS -# define USE_MZ_SETJMP +# ifndef _WIN64 +# define USE_MZ_SETJMP +# endif # define WINDOWS_DYNAMIC_LOAD @@ -584,7 +590,11 @@ # define USE_ICONV_DLL # define NO_MBTOWC_FUNCTIONS -# define MZ_USE_JIT_I386 +# ifdef _WIN64 +# define MZ_USE_JIT_X86_64 +# else +# define MZ_USE_JIT_I386 +# endif # define MZ_JIT_USE_WINDOWS_VIRTUAL_ALLOC # define FLAGS_ALREADY_SET diff --git a/src/racket/src/bgnfloat.inc b/src/racket/src/bgnfloat.inc index 75f1fab115..9a1d02c852 100644 --- a/src/racket/src/bgnfloat.inc +++ b/src/racket/src/bgnfloat.inc @@ -13,9 +13,9 @@ int IS_FLOAT_INF(FP_TYPE d) } /* Must not trigger GC! (Required by xform in number.c) */ -FP_TYPE SCHEME_BIGNUM_TO_FLOAT_INFO(const Scheme_Object *n, int skip, int *_skipped) +FP_TYPE SCHEME_BIGNUM_TO_FLOAT_INFO(const Scheme_Object *n, intptr_t skip, intptr_t *_skipped) { - int nl, skipped; + intptr_t nl, skipped; bigdig *na; FP_TYPE d; diff --git a/src/racket/src/bignum.c b/src/racket/src/bignum.c index be2a228332..7ef81df2bc 100644 --- a/src/racket/src/bignum.c +++ b/src/racket/src/bignum.c @@ -512,7 +512,7 @@ static Scheme_Object *make_single_bigdig_result(int pos, bigdig d) static Scheme_Object *bignum_copy(const Scheme_Object *a, intptr_t msd) { Scheme_Object* o; - int c; + intptr_t c; bigdig* o_digs; c = SCHEME_BIGLEN(a); @@ -607,7 +607,7 @@ int scheme_bignum_ge(const Scheme_Object *a, const Scheme_Object *b) Scheme_Object *scheme_bignum_negate(const Scheme_Object *n) { Scheme_Object *o; - int len; + intptr_t len; len = SCHEME_BIGLEN(n); @@ -631,9 +631,9 @@ Scheme_Object *scheme_bignum_negate(const Scheme_Object *n) return o; } -static bigdig* allocate_bigdig_array(int length) +static bigdig* allocate_bigdig_array(intptr_t length) { - int i; + intptr_t i; bigdig* res; if (length > 4096) { res = (bigdig *)scheme_malloc_fail_ok(scheme_malloc_atomic, length * sizeof(bigdig)); @@ -647,7 +647,7 @@ static bigdig* allocate_bigdig_array(int length) } /* We don't want to count leading digits of 0 in the bignum's length */ -XFORM_NONGCING static int bigdig_length(bigdig* array, int alloced) +XFORM_NONGCING static intptr_t bigdig_length(bigdig* array, intptr_t alloced) { alloced--; while (alloced >= 0 && array[alloced] == 0) { @@ -690,7 +690,7 @@ static Scheme_Object *bignum_add_sub(const Scheme_Object *a, const Scheme_Object if (a_pos == b_pos) /* addition */ { - int carry; + intptr_t carry; o_digs = allocate_bigdig_array(max_size); @@ -884,7 +884,7 @@ Scheme_Object *scheme_generic_integer_power(const Scheme_Object *a, const Scheme || (SCHEME_INT_VAL(b) > 10000)) scheme_signal_error(too_big); else if (SCHEME_BIGNUMP(a)) { - int len = SCHEME_BIGLEN(a); + intptr_t len = SCHEME_BIGLEN(a); if ((len > 10000) || (len * SCHEME_INT_VAL(b)) > 10000) scheme_signal_error(too_big); @@ -1184,7 +1184,7 @@ char *scheme_bignum_to_allocated_string(const Scheme_Object *b, int radix, int a { Scheme_Object *c; unsigned char* str, *str2; - int i, slen, start, clen; + intptr_t i, slen, start, clen; bigdig *c_digs; SAFE_SPACE(csd) @@ -1277,7 +1277,7 @@ char *scheme_bignum_to_string(const Scheme_Object *b, int radix) Scheme_Object *scheme_read_bignum(const mzchar *str, int offset, int radix) { - int len, negate, stri, alloc, i, test; + intptr_t len, negate, stri, alloc, i, test; Scheme_Object* o; bigdig* digs; unsigned char* istring; @@ -1363,7 +1363,7 @@ Scheme_Object *scheme_read_bignum_bytes(const char *str, int offset, int radix) static void bignum_double_inplace(Scheme_Object **_stk_o) { - int carry, len; + intptr_t carry, len; len = SCHEME_BIGLEN(*_stk_o); @@ -1379,7 +1379,7 @@ static void bignum_double_inplace(Scheme_Object **_stk_o) static void bignum_add1_inplace(Scheme_Object **_stk_o) { - int carry, len; + intptr_t carry, len; len = SCHEME_BIGLEN(*_stk_o); @@ -1518,7 +1518,7 @@ static uintptr_t fixnum_sqrt(uintptr_t n, uintptr_t *rem) for (i = SQRT_BIT_MAX; i >= 0; i--) { - try_root = root | (0x1 << i); + try_root = root | ((intptr_t)0x1 << i); try_square = try_root * try_root; if (try_square <= n) { @@ -1539,7 +1539,7 @@ Scheme_Object *scheme_integer_sqrt(const Scheme_Object *n) Scheme_Object *scheme_integer_sqrt_rem(const Scheme_Object *n, Scheme_Object **remainder) { Scheme_Object *o; - int rem_size; + intptr_t rem_size; SAFE_SPACE(qsd) diff --git a/src/racket/src/bool.c b/src/racket/src/bool.c index b12aa3b1b6..cfbd223296 100644 --- a/src/racket/src/bool.c +++ b/src/racket/src/bool.c @@ -448,7 +448,7 @@ int is_equal (Scheme_Object *obj1, Scheme_Object *obj2, Equal_Info *eql) return 0; } else if (SCHEME_BYTE_STRINGP(obj1) || SCHEME_GENERAL_PATHP(obj1)) { - int l1, l2; + intptr_t l1, l2; if ((eql->for_chaperone == 1) && (!SCHEME_IMMUTABLEP(obj1) || !SCHEME_IMMUTABLEP(obj2))) return 0; @@ -457,7 +457,7 @@ int is_equal (Scheme_Object *obj1, Scheme_Object *obj2, Equal_Info *eql) return ((l1 == l2) && !memcmp(SCHEME_BYTE_STR_VAL(obj1), SCHEME_BYTE_STR_VAL(obj2), l1)); } else if (SCHEME_CHAR_STRINGP(obj1)) { - int l1, l2; + intptr_t l1, l2; if ((eql->for_chaperone == 1) && (!SCHEME_IMMUTABLEP(obj1) || !SCHEME_IMMUTABLEP(obj2))) return 0; @@ -615,7 +615,7 @@ int is_equal (Scheme_Object *obj1, Scheme_Object *obj2, Equal_Info *eql) static int vector_equal(Scheme_Object *vec1, Scheme_Object *vec2, Equal_Info *eql) { - int i, len; + intptr_t i, len; len = SCHEME_VEC_SIZE(vec1); if (len != SCHEME_VEC_SIZE(vec2)) diff --git a/src/racket/src/char.c b/src/racket/src/char.c index 8ba7d03e71..a840cff0f7 100644 --- a/src/racket/src/char.c +++ b/src/racket/src/char.c @@ -245,14 +245,14 @@ integer_to_char (int argc, Scheme_Object *argv[]) if ((v >= 0) && (v <= 0x10FFFF) && ((v < 0xD800) || (v > 0xDFFF))) - return _scheme_make_char(v); + return _scheme_make_char((int)v); } else if (SCHEME_BIGNUMP(argv[0]) && SCHEME_BIGPOS(argv[0])) { /* On 32-bit machines, there's still a chance... */ intptr_t y; if (scheme_get_int_val(argv[0], &y)) { if (y <= 0x10FFFF) - return _scheme_make_char(y); + return _scheme_make_char((int)y); } } diff --git a/src/racket/src/dynext.c b/src/racket/src/dynext.c index 9bf09326e4..bb594584ff 100644 --- a/src/racket/src/dynext.c +++ b/src/racket/src/dynext.c @@ -179,7 +179,7 @@ typedef struct { static char *copy_vers(char *vers) { if (vers) { - int len = strlen(vers); + intptr_t len = strlen(vers); char *vcopy; vcopy = (char *)scheme_malloc_atomic(len + 1); memcpy(vcopy, vers, len + 1); diff --git a/src/racket/src/env.c b/src/racket/src/env.c index c312bfb113..b1103ff190 100644 --- a/src/racket/src/env.c +++ b/src/racket/src/env.c @@ -1177,7 +1177,7 @@ Scheme_Bucket_Table *scheme_clone_toplevel(Scheme_Bucket_Table *ht, Scheme_Env * { Scheme_Bucket_Table *r; Scheme_Bucket **bs; - int i; + intptr_t i; r = scheme_make_bucket_table(ht->size, SCHEME_hash_ptr); if (home) @@ -2050,7 +2050,7 @@ static Scheme_Local *get_frame_loc(Scheme_Comp_Env *frame, Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modidx, Scheme_Object *stxsym, Scheme_Object *insp, - int pos, int mod_phase) + int pos, intptr_t mod_phase) { Scheme_Object *val; Scheme_Hash_Table *ht; @@ -2084,7 +2084,7 @@ Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modid mv->sym = stxsym; mv->insp = insp; mv->pos = pos; - mv->mod_phase = mod_phase; + mv->mod_phase = (int)mod_phase; val = (Scheme_Object *)mv; @@ -2296,7 +2296,7 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Objec too bad). */ if (!best_match) { char onstack[50], *buf; - int len; + intptr_t len; while (1) { env->id_counter++; @@ -2358,7 +2358,7 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Objec int scheme_tl_id_is_sym_used(Scheme_Hash_Table *marked_names, Scheme_Object *sym) { - int i; + intptr_t i; Scheme_Object *l, *a; Scheme_Hash_Table *rev_ht; @@ -2814,9 +2814,9 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags, if (!scheme_hash_get(frame->skip_table, SCHEME_STX_VAL(find_id))) { /* Skip ahead. 0 maps to frame, 1 maps to j delta, and 2 maps to p delta */ val = scheme_hash_get(frame->skip_table, scheme_make_integer(1)); - j += SCHEME_INT_VAL(val); + j += (int)SCHEME_INT_VAL(val); val = scheme_hash_get(frame->skip_table, scheme_make_integer(2)); - p += SCHEME_INT_VAL(val); + p += (int)SCHEME_INT_VAL(val); frame = (Scheme_Comp_Env *)scheme_hash_get(frame->skip_table, scheme_make_integer(0)); } else break; @@ -3059,7 +3059,7 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags, pos = scheme_check_accessible_in_module(genv, env->insp, in_modidx, find_id, src_find_id, certs, NULL, rename_insp, -1, 1, _protected, NULL, env->genv, NULL); - modpos = SCHEME_INT_VAL(pos); + modpos = (int)SCHEME_INT_VAL(pos); } else modpos = -1; @@ -3365,7 +3365,7 @@ static Scheme_Object *transitive_k(void) p->ku.k.p1 = NULL; - register_transitive_use(info, p->ku.k.i1, p->ku.k.i2); + register_transitive_use(info, (int)p->ku.k.i1, (int)p->ku.k.i2); return scheme_false; } @@ -3688,7 +3688,7 @@ static Scheme_Object *do_optimize_info_lookup(Optimize_Info *info, int pos, int if (SCHEME_BOXP(n)) { /* A potential-size record: */ if (potential_size) - *potential_size = SCHEME_INT_VAL(SCHEME_BOX_VAL(n)); + *potential_size = (int)SCHEME_INT_VAL(SCHEME_BOX_VAL(n)); break; } if (single_use) @@ -3910,7 +3910,7 @@ Resolve_Prefix *scheme_remap_prefix(Resolve_Prefix *rp, Resolve_Info *ri) if (rp->num_lifts) cnt = rp->num_stxes; else - cnt = ri->stx_map->count; + cnt = (int)ri->stx_map->count; new_stxes = MALLOC_N(Scheme_Object *, cnt); @@ -4071,7 +4071,7 @@ static int resolve_info_lookup(Resolve_Info *info, int pos, int *flags, Scheme_O tl = SCHEME_CAR(lifted); ca = (Scheme_Object **)SCHEME_CDR(lifted); if (convert_shift) - shifted = SCHEME_INT_VAL(ca[0]) + convert_shift - 1; + shifted = (int)SCHEME_INT_VAL(ca[0]) + convert_shift - 1; else shifted = 0; } else { @@ -4092,7 +4092,7 @@ static int resolve_info_lookup(Resolve_Info *info, int pos, int *flags, Scheme_O int sz, i; mzshort *posmap, *boxmap; Scheme_Object *vec, *loc; - sz = SCHEME_INT_VAL(ca[0]); + sz = (int)SCHEME_INT_VAL(ca[0]); posmap = (mzshort *)ca[1]; boxmap = (mzshort *)ca[3]; vec = scheme_make_vector(sz + 1, NULL); @@ -4217,7 +4217,7 @@ int scheme_resolve_quote_syntax_offset(int i, Resolve_Info *info) scheme_hash_set(ht, scheme_make_integer(i), v); } - return SCHEME_INT_VAL(v); + return (int)SCHEME_INT_VAL(v); } int scheme_resolve_quote_syntax_pos(Resolve_Info *info) @@ -4256,7 +4256,7 @@ Scheme_Object *scheme_resolve_invent_toplevel(Resolve_Info *info) skip = scheme_resolve_toplevel_pos(info); count = SCHEME_VEC_ELS(info->lifts)[1]; - pos = (SCHEME_INT_VAL(count) + pos = (int)(SCHEME_INT_VAL(count) + info->prefix->num_toplevels + info->prefix->num_stxes + (info->prefix->num_stxes ? 1 : 0)); @@ -4508,7 +4508,7 @@ namespace_mapped_symbols(int argc, Scheme_Object *argv[]) Scheme_Hash_Table *mapped; Scheme_Bucket_Table *ht; Scheme_Bucket **bs; - int i, j; + intptr_t i, j; if ((argc > 0) && !SCHEME_NAMESPACEP(argv[0])) scheme_wrong_type("namespace-mapped-symbols", "namespace", 0, argc, argv); @@ -4559,7 +4559,7 @@ static Scheme_Object *do_variable_namespace(const char *who, int tl, int argc, S { Scheme_Object *v; Scheme_Env *env; - int ph; + intptr_t ph; if (!SAME_TYPE(SCHEME_TYPE(argv[0]), scheme_global_ref_type)) env = NULL; @@ -4841,7 +4841,7 @@ static Scheme_Object * local_phase_level(int argc, Scheme_Object *argv[]) { Scheme_Thread *p = scheme_current_thread; - int phase; + intptr_t phase; phase = (p->current_local_env ? p->current_local_env->genv->phase @@ -5382,7 +5382,7 @@ do_local_lift_expr(const char *who, int stx_pos, int argc, Scheme_Object *argv[] if (stx_pos) { if (SCHEME_INTP(argv[0])) { - count = SCHEME_INT_VAL(argv[0]); + count = (int)SCHEME_INT_VAL(argv[0]); } else if (SCHEME_BIGNUMP(argv[0])) { if (SCHEME_BIGPOS(argv[0])) scheme_raise_out_of_memory(NULL, NULL); @@ -5744,14 +5744,14 @@ static Scheme_Object *read_toplevel(Scheme_Object *obj) if (!SCHEME_PAIRP(obj)) return NULL; - depth = SCHEME_INT_VAL(SCHEME_CAR(obj)); + depth = (int)SCHEME_INT_VAL(SCHEME_CAR(obj)); obj = SCHEME_CDR(obj); if (SCHEME_PAIRP(obj)) { - pos = SCHEME_INT_VAL(SCHEME_CAR(obj)); + pos = (int)SCHEME_INT_VAL(SCHEME_CAR(obj)); flags = SCHEME_INT_VAL(SCHEME_CDR(obj)) & SCHEME_TOPLEVEL_FLAGS_MASK; } else { - pos = SCHEME_INT_VAL(obj); + pos = (int)SCHEME_INT_VAL(obj); flags = 0; } @@ -5817,12 +5817,12 @@ static Scheme_Object *do_read_local(Scheme_Type t, Scheme_Object *obj) int n, flags; if (SCHEME_PAIRP(obj)) { - flags = SCHEME_INT_VAL(SCHEME_CAR(obj)); + flags = (int)SCHEME_INT_VAL(SCHEME_CAR(obj)); obj = SCHEME_CDR(obj); } else flags = 0; - n = SCHEME_INT_VAL(obj); + n = (int)SCHEME_INT_VAL(obj); return scheme_make_local(t, n, flags); } @@ -5881,7 +5881,8 @@ static Scheme_Object *read_resolve_prefix(Scheme_Object *obj, Scheme_Object *ins { Resolve_Prefix *rp; Scheme_Object *tv, *sv, **a, *stx; - int i, uses_unsafe = 0; + intptr_t i; + int uses_unsafe = 0; if (!SCHEME_PAIRP(obj)) return NULL; @@ -5906,9 +5907,9 @@ static Scheme_Object *read_resolve_prefix(Scheme_Object *obj, Scheme_Object *ins rp = MALLOC_ONE_TAGGED(Resolve_Prefix); rp->so.type = scheme_resolve_prefix_type; - rp->num_toplevels = SCHEME_VEC_SIZE(tv); - rp->num_stxes = SCHEME_VEC_SIZE(sv); - rp->num_lifts = i; + rp->num_toplevels = (int)SCHEME_VEC_SIZE(tv); + rp->num_stxes = (int)SCHEME_VEC_SIZE(sv); + rp->num_lifts = (int)i; if (uses_unsafe) rp->uses_unsafe = insp; diff --git a/src/racket/src/gmp/gmp.h b/src/racket/src/gmp/gmp.h index 79aacf8c8d..e6819012c8 100644 --- a/src/racket/src/gmp/gmp.h +++ b/src/racket/src/gmp/gmp.h @@ -85,8 +85,8 @@ typedef int mp_limb_signed_t; typedef unsigned long long int mp_limb_t; typedef long long int mp_limb_signed_t; #else -typedef unsigned long int mp_limb_t; -typedef long int mp_limb_signed_t; +typedef uintptr_t mp_limb_t; +typedef intptr_t mp_limb_signed_t; #endif #endif @@ -97,8 +97,8 @@ typedef __gmp_const mp_limb_t * mp_srcptr; typedef int mp_size_t; typedef int mp_exp_t; #else -typedef long int mp_size_t; -typedef long int mp_exp_t; +typedef intptr_t mp_size_t; +typedef intptr_t mp_exp_t; #endif typedef struct diff --git a/src/racket/src/hash.c b/src/racket/src/hash.c index 463fe1e540..29ec9d98d2 100644 --- a/src/racket/src/hash.c +++ b/src/racket/src/hash.c @@ -518,7 +518,7 @@ void scheme_reset_hash_table(Scheme_Hash_Table *table, int *history) /*========================================================================*/ Scheme_Bucket_Table * -scheme_make_bucket_table (int size, int type) +scheme_make_bucket_table (intptr_t size, int type) { Scheme_Bucket_Table *table; size_t asize; diff --git a/src/racket/src/jit.c b/src/racket/src/jit.c index 8fc89deb9f..6d91743c88 100644 --- a/src/racket/src/jit.c +++ b/src/racket/src/jit.c @@ -1500,7 +1500,7 @@ static void _jit_prolog_again(mz_jit_state *jitter, int n, int ret_addr_reg) # define mz_pop_locals() ADDQir((LOCAL_FRAME_SIZE << JIT_LOG_WORD_SIZE), JIT_SP) # define JIT_FRAME_FLONUM_OFFSET (-(JIT_WORD_SIZE * (LOCAL_FRAME_SIZE + 3))) # define _jit_prolog_again(jitter, n, ret_addr_reg) (PUSHQr(ret_addr_reg), jit_base_prolog()) -# ifdef MZ_USE_JIT_X86_64 +# if defined(MZ_USE_JIT_X86_64) && !defined(_WIN64) # define jit_shuffle_saved_regs() (MOVQrr(_ESI, _R12), MOVQrr(_EDI, _R13)) # define jit_unshuffle_saved_regs() (MOVQrr(_R12, _ESI), MOVQrr(_R13, _EDI)) # else @@ -3572,8 +3572,9 @@ static int generate_non_tail_call(mz_jit_state *jitter, int num_rands, int direc if (need_set_rs) { JIT_UPDATE_THREAD_RSPTR(); } - mz_prepare_direct_prim(3); + mz_prepare_direct_prim(3); jit_pusharg_p(JIT_V1); + CHECK_LIMIT(); if (num_rands < 0) { jit_movr_p(JIT_V1, JIT_R0); } /* save argc to manually pop runstack */ { __END_SHORT_JUMPS__(1); diff --git a/src/racket/src/lightning/i386/core.h b/src/racket/src/lightning/i386/core.h index 0c46b14562..836c820cc9 100644 --- a/src/racket/src/lightning/i386/core.h +++ b/src/racket/src/lightning/i386/core.h @@ -364,7 +364,24 @@ struct jit_local_state { #endif #ifdef JIT_X86_64 -# define jit_base_prolog() (PUSHQr(_EBP), MOVQrr(_ESP, _EBP), PUSHQr(_EBX), PUSHQr(_R12), PUSHQr(_R13)) +# ifdef _WIN64 +# define jit_preserve_locals() (ADDQir(-32, JIT_SP)) +# define jit_restore_locals() (ADDQir(32, JIT_SP)) +# define _RCS1 _ESI +# define _RCS2 _EDI +# define jit_reg_is_arg(reg) (((reg) ==_ECX) || ((reg) == _EDX)) +# else +/* For AMD64 ABI, R12 and R13 are callee-save, instead of EDI and ESI */ +# define jit_preserve_locals() (MOVQrr(_ESI, _R12), MOVQrr(_EDI, _R13)) +# define jit_restore_locals() (MOVQrr(_R12, _ESI), MOVQrr(_R13, _EDI)) +# define _RCS1 _R12 +# define _RCS2 _R13 +# define jit_reg_is_arg(reg) (((reg) == _EDI) || ((reg) ==_ESI) || ((reg) == _EDX)) +# endif +#endif + +#ifdef JIT_X86_64 +# define jit_base_prolog() (PUSHQr(_EBP), MOVQrr(_ESP, _EBP), PUSHQr(_EBX), PUSHQr(_RCS1), PUSHQr(_RCS2)) # define jit_prolog(n) (_jitl.nextarg_geti = 0, jit_base_prolog()) #else # define jit_base_prolog() (PUSHLr(_EBP), MOVLrr(_ESP, _EBP), PUSHLr(_EBX), PUSHLr(_ESI), PUSHLr(_EDI)) @@ -392,20 +409,18 @@ struct jit_local_state { #define jit_prepare_d(nd) (_jitl.argssize += 2 * (nd)) #ifdef JIT_X86_64 # define jit_pusharg_i(rs) (_jitl.argpushes--, MOVQrr(rs, JIT_CALLTMPSTART + _jitl.argpushes)) -# define jit_normal_pushonlyarg_i(rs) (_jitl.argpushes--, MOVQrr(rs, _EDI)) +# define jit_normal_pushonlyarg_i(rs) (_jitl.argpushes--, MOVQrr(rs, jit_arg_reg_order[0])) # define jit_save_argstate(curstate) curstate = _jitl.argpushes; # define jit_restore_argstate(curstate) _jitl.argpushes = curstate; # define jit_finish(sub) (jit_shift_args(), (void)jit_calli((sub)), jit_restore_locals()) # define jit_normal_finish(sub) jit_calli((sub)) # define jit_return_pop_insn_len() 0 -# define jit_reg_is_arg(reg) ((reg == _EDI) || (reg ==_ESI) || (reg == _EDX)) # define jit_finishr(reg) ((jit_reg_is_arg((reg)) ? MOVQrr(reg, JIT_REXTMP) : (void)0), \ jit_shift_args(), \ jit_reg_is_arg((reg)) ? CALQsr((JIT_REXTMP)) : jit_callr((reg)), \ jit_restore_locals()) -/* R12 and R13 are callee-save, instead of EDI and ESI */ # define jit_shift_args() \ - (MOVQrr(_ESI, _R12), MOVQrr(_EDI, _R13), \ + (jit_preserve_locals(), \ (_jitl.argssize \ ? (MOVQrr(JIT_CALLTMPSTART, jit_arg_reg_order[0]), \ ((_jitl.argssize > 1) \ @@ -415,8 +430,6 @@ struct jit_local_state { : (void)0)) \ : (void)0)) \ : (void)0)) -# define jit_restore_locals() \ - (MOVQrr(_R12, _ESI), MOVQrr(_R13, _EDI)) #else # define jit_pusharg_i(rs) PUSHLr(rs) # define jit_normal_pushonlyarg_i(rs) jit_pusharg_i(rs) @@ -436,7 +449,11 @@ struct jit_local_state { #define jit_arg_l() (_jitl.nextarg_geti++) #define jit_arg_p() (_jitl.nextarg_geti++) #define jit_arg_reg(p) (jit_arg_reg_order[p]) +# ifdef _WIN64 +static const int const jit_arg_reg_order[] = { _ECX, _EDX, JIT_R(8), JIT_R(9) }; +# else static const int const jit_arg_reg_order[] = { _EDI, _ESI, _EDX, _ECX }; +# endif #else #define jit_arg_c() ((_jitl.framesize += sizeof(int)) - sizeof(int)) #define jit_arg_uc() ((_jitl.framesize += sizeof(int)) - sizeof(int)) @@ -589,7 +606,7 @@ static intptr_t _CHECK_TINY(intptr_t diff) { if ((diff < -128) || (diff > 127)) # define jit_patch_short_at(jump_pc,v) jit_patch_normal_at(jump_pc, v) # define jit_patch_branch_at(jump_pc,v) (_jitl.long_jumps ? jit_patch_long_at((jump_pc)-3, v) : jit_patch_short_at(jump_pc, v)) # define jit_patch_ucbranch_at(jump_pc,v) (_jitl.long_jumps ? jit_patch_long_at((jump_pc)-3, v) : jit_patch_short_at(jump_pc, v)) -# define jit_ret() (POPQr(_R13), POPQr(_R12), POPQr(_EBX), POPQr(_EBP), RET_()) +# define jit_ret() (POPQr(_RCS2), POPQr(_RCS1), POPQr(_EBX), POPQr(_EBP), RET_()) #else # define jit_patch_branch_at(jump_pc,v) jit_patch_normal_at(jump_pc, v) # define jit_patch_ucbranch_at(jump_pc,v) jit_patch_normal_at(jump_pc, v) diff --git a/src/racket/src/module.c b/src/racket/src/module.c index 2fa3a03525..34b6028bd6 100644 --- a/src/racket/src/module.c +++ b/src/racket/src/module.c @@ -3430,7 +3430,7 @@ static void setup_accessible_table(Scheme_Module *m) } } -Scheme_Env *scheme_module_access(Scheme_Object *name, Scheme_Env *env, int rev_mod_phase) +Scheme_Env *scheme_module_access(Scheme_Object *name, Scheme_Env *env, intptr_t rev_mod_phase) { Scheme_Env *menv; diff --git a/src/racket/src/mzrt.c b/src/racket/src/mzrt.c index 26531ca63e..887a923037 100644 --- a/src/racket/src/mzrt.c +++ b/src/racket/src/mzrt.c @@ -589,7 +589,7 @@ int mzrt_sema_destroy(mzrt_sema *s) typedef struct mzrt_rwlock { HANDLE readEvent; HANDLE writeMutex; - uintptr_t readers; + LONG readers; } mzrt_rwlock; int mzrt_rwlock_create(mzrt_rwlock **lock) { diff --git a/src/racket/src/mzrt.h b/src/racket/src/mzrt.h index 6c12839752..eaa7588928 100644 --- a/src/racket/src/mzrt.h +++ b/src/racket/src/mzrt.h @@ -171,7 +171,7 @@ static MZ_INLINE int mzrt_cas(volatile size_t *addr, size_t old, size_t new_val) # endif #elif defined(_MSC_VER) # if defined(_AMD64_) - return _InterlockedCompareExchange64((LONGLONG volatile *)addr, (LONGLONG)new_val, (LONGLONG)old) == (LONGLONG)old + return _InterlockedCompareExchange64((LONGLONG volatile *)addr, (LONGLONG)new_val, (LONGLONG)old) == (LONGLONG)old; # elif _M_IX86 >= 400 return _InterlockedCompareExchange((LONG volatile *)addr, (LONG)new_val, (LONG)old) == (LONG)old; # endif diff --git a/src/racket/src/mzsj86.c b/src/racket/src/mzsj86.c index 32ca7c9ec4..1706e81448 100644 --- a/src/racket/src/mzsj86.c +++ b/src/racket/src/mzsj86.c @@ -24,6 +24,8 @@ #include "schpriv.h" +#ifndef _WIN64 + int __declspec(naked) scheme_mz_setjmp(mz_jmp_buf b) { __asm { @@ -55,3 +57,5 @@ void __declspec(naked) scheme_mz_longjmp(mz_jmp_buf b, int v) ret } } + +#endif diff --git a/src/racket/src/schemef.h b/src/racket/src/schemef.h index ce032ce4ea..4c749a0ee6 100644 --- a/src/racket/src/schemef.h +++ b/src/racket/src/schemef.h @@ -447,7 +447,7 @@ MZ_EXTERN void scheme_remove_gc_callback(Scheme_Object *key); /* hash tables */ /*========================================================================*/ -MZ_EXTERN Scheme_Bucket_Table *scheme_make_bucket_table(int size_hint, int type); +MZ_EXTERN Scheme_Bucket_Table *scheme_make_bucket_table(intptr_t size_hint, int type); MZ_EXTERN void scheme_add_to_table(Scheme_Bucket_Table *table, const char *key, void *val, int); MZ_EXTERN void scheme_change_in_table(Scheme_Bucket_Table *table, const char *key, void *new_val); MZ_EXTERN void *scheme_lookup_in_table(Scheme_Bucket_Table *table, const char *key); @@ -609,39 +609,39 @@ MZ_EXTERN const char *scheme_get_proc_name(Scheme_Object *p, int *len, int for_e /* strings */ /*========================================================================*/ -MZ_EXTERN int scheme_utf8_decode(const unsigned char *s, int start, int end, - unsigned int *us, int dstart, int dend, - intptr_t *ipos, char utf16, int permissive); -MZ_EXTERN int scheme_utf8_decode_as_prefix(const unsigned char *s, int start, int end, - unsigned int *us, int dstart, int dend, - intptr_t *ipos, char utf16, int permissive); -MZ_EXTERN int scheme_utf8_decode_all(const unsigned char *s, int len, unsigned int *us, - int permissive); -MZ_EXTERN int scheme_utf8_decode_prefix(const unsigned char *s, int len, unsigned int *us, - int permissive); -MZ_EXTERN mzchar *scheme_utf8_decode_to_buffer(const unsigned char *s, int len, - mzchar *buf, int blen); -MZ_EXTERN mzchar *scheme_utf8_decode_to_buffer_len(const unsigned char *s, int len, - mzchar *buf, int blen, intptr_t *rlen); -XFORM_NONGCING MZ_EXTERN int scheme_utf8_decode_count(const unsigned char *s, int start, int end, - int *_state, int might_continue, int permissive); +MZ_EXTERN intptr_t scheme_utf8_decode(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, + intptr_t *ipos, char utf16, int permissive); +MZ_EXTERN intptr_t scheme_utf8_decode_as_prefix(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, + intptr_t *ipos, char utf16, int permissive); +MZ_EXTERN intptr_t scheme_utf8_decode_all(const unsigned char *s, intptr_t len, unsigned int *us, + int permissive); +MZ_EXTERN intptr_t scheme_utf8_decode_prefix(const unsigned char *s, intptr_t len, unsigned int *us, + int permissive); +MZ_EXTERN mzchar *scheme_utf8_decode_to_buffer(const unsigned char *s, intptr_t len, + mzchar *buf, intptr_t blen); +MZ_EXTERN mzchar *scheme_utf8_decode_to_buffer_len(const unsigned char *s, intptr_t len, + mzchar *buf, intptr_t blen, intptr_t *rlen); +XFORM_NONGCING MZ_EXTERN intptr_t scheme_utf8_decode_count(const unsigned char *s, intptr_t start, intptr_t end, + int *_state, int might_continue, int permissive); -MZ_EXTERN int scheme_utf8_encode(const unsigned int *us, int start, int end, - unsigned char *s, int dstart, - char utf16); -MZ_EXTERN int scheme_utf8_encode_all(const unsigned int *us, int len, unsigned char *s); +MZ_EXTERN intptr_t scheme_utf8_encode(const unsigned int *us, intptr_t start, intptr_t end, + unsigned char *s, intptr_t dstart, + char utf16); +MZ_EXTERN intptr_t scheme_utf8_encode_all(const unsigned int *us, intptr_t len, unsigned char *s); -MZ_EXTERN char *scheme_utf8_encode_to_buffer(const mzchar *s, int len, - char *buf, int blen); -MZ_EXTERN char *scheme_utf8_encode_to_buffer_len(const mzchar *s, int len, - char *buf, int blen, intptr_t *rlen); +MZ_EXTERN char *scheme_utf8_encode_to_buffer(const mzchar *s, intptr_t len, + char *buf, intptr_t blen); +MZ_EXTERN char *scheme_utf8_encode_to_buffer_len(const mzchar *s, intptr_t len, + char *buf, intptr_t blen, intptr_t *rlen); -MZ_EXTERN unsigned short *scheme_ucs4_to_utf16(const mzchar *text, int start, int end, - unsigned short *buf, int bufsize, - intptr_t *ulen, int term_size); -MZ_EXTERN mzchar *scheme_utf16_to_ucs4(const unsigned short *text, int start, int end, - mzchar *buf, int bufsize, - intptr_t *ulen, int term_size); +MZ_EXTERN unsigned short *scheme_ucs4_to_utf16(const mzchar *text, intptr_t start, intptr_t end, + unsigned short *buf, intptr_t bufsize, + intptr_t *ulen, intptr_t term_size); +MZ_EXTERN mzchar *scheme_utf16_to_ucs4(const unsigned short *text, intptr_t start, intptr_t end, + mzchar *buf, intptr_t bufsize, + intptr_t *ulen, intptr_t term_size); MZ_EXTERN Scheme_Object *scheme_open_converter(const char *from_e, const char *to_e); MZ_EXTERN void scheme_close_converter(Scheme_Object *conv); @@ -982,17 +982,17 @@ MZ_EXTERN Scheme_Object *scheme_datum_to_kernel_stx(Scheme_Object *e); /*========================================================================*/ MZ_EXTERN Scheme_Object *scheme_intern_symbol(const char *name); -MZ_EXTERN Scheme_Object *scheme_intern_exact_symbol(const char *name, unsigned int len); -MZ_EXTERN Scheme_Object *scheme_intern_exact_char_symbol(const mzchar *name, unsigned int len); +MZ_EXTERN Scheme_Object *scheme_intern_exact_symbol(const char *name, uintptr_t len); +MZ_EXTERN Scheme_Object *scheme_intern_exact_char_symbol(const mzchar *name, uintptr_t len); MZ_EXTERN Scheme_Object *scheme_make_symbol(const char *name); /* Make uninterned */ -MZ_EXTERN Scheme_Object *scheme_make_exact_symbol(const char *name, unsigned int len); /* Exact case */ -MZ_EXTERN Scheme_Object *scheme_make_exact_char_symbol(const mzchar *name, unsigned int len); /* Exact case */ +MZ_EXTERN Scheme_Object *scheme_make_exact_symbol(const char *name, uintptr_t len); /* Exact case */ +MZ_EXTERN Scheme_Object *scheme_make_exact_char_symbol(const mzchar *name, uintptr_t len); /* Exact case */ MZ_EXTERN const char *scheme_symbol_name(Scheme_Object *sym); -MZ_EXTERN const char *scheme_symbol_name_and_size(Scheme_Object *sym, unsigned int *l, int flags); +MZ_EXTERN const char *scheme_symbol_name_and_size(Scheme_Object *sym, uintptr_t *l, int flags); MZ_EXTERN char *scheme_symbol_val(Scheme_Object *sym); -MZ_EXTERN Scheme_Object *scheme_intern_exact_keyword(const char *name, unsigned int len); -MZ_EXTERN Scheme_Object *scheme_intern_exact_char_keyword(const mzchar *name, unsigned int len); +MZ_EXTERN Scheme_Object *scheme_intern_exact_keyword(const char *name, uintptr_t len); +MZ_EXTERN Scheme_Object *scheme_intern_exact_char_keyword(const mzchar *name, uintptr_t len); /*========================================================================*/ /* structs */ @@ -1132,7 +1132,7 @@ MZ_EXTERN void scheme_signal_received(void); MZ_EXTERN void scheme_signal_received_at(void *); MZ_EXTERN void *scheme_get_signal_handle(); -MZ_EXTERN int scheme_char_strlen(const mzchar *s); +MZ_EXTERN intptr_t scheme_char_strlen(const mzchar *s); MZ_EXTERN Scheme_Object *scheme_stx_extract_marks(Scheme_Object *stx); diff --git a/src/racket/src/schpriv.h b/src/racket/src/schpriv.h index 1a801fec9b..c46fa1bca4 100644 --- a/src/racket/src/schpriv.h +++ b/src/racket/src/schpriv.h @@ -924,7 +924,7 @@ Scheme_Object *scheme_make_module_rename(Scheme_Object *phase, int kind, Scheme_ Scheme_Object* scheme_extend_module_rename(Scheme_Object *rn, Scheme_Object *modname, Scheme_Object *locname, Scheme_Object *exname, Scheme_Object *nominal_src, Scheme_Object *nominal_ex, - int mod_phase, Scheme_Object *src_phase_index, + intptr_t mod_phase, Scheme_Object *src_phase_index, Scheme_Object *nom_export_phase, Scheme_Object *insp, int mode); void scheme_extend_module_rename_with_shared(Scheme_Object *rn, Scheme_Object *modidx, @@ -1627,7 +1627,7 @@ typedef uintptr_t bigdig; typedef struct { Scheme_Inclhash_Object iso; - int len; + intptr_t len; bigdig *digits; } Scheme_Bignum; @@ -1682,9 +1682,9 @@ Scheme_Object *scheme_bignum_xor(const Scheme_Object *a, const Scheme_Object *b) Scheme_Object *scheme_bignum_not(const Scheme_Object *a); Scheme_Object *scheme_bignum_shift(const Scheme_Object *a, intptr_t shift); -XFORM_NONGCING double scheme_bignum_to_double_inf_info(const Scheme_Object *n, int just_use, int *only_need); +XFORM_NONGCING double scheme_bignum_to_double_inf_info(const Scheme_Object *n, intptr_t just_use, intptr_t *only_need); #ifdef MZ_USE_SINGLE_FLOATS -XFORM_NONGCING float scheme_bignum_to_float_inf_info(const Scheme_Object *n, int just_use, int *only_need); +XFORM_NONGCING float scheme_bignum_to_float_inf_info(const Scheme_Object *n, intptr_t just_use, intptr_t *only_need); #else # define scheme_bignum_to_float_inf_info scheme_bignum_to_double_inf_info #endif @@ -3093,7 +3093,7 @@ Scheme_Env *scheme_new_module_env(Scheme_Env *env, Scheme_Module *m, int new_exp int scheme_is_module_env(Scheme_Comp_Env *env); Scheme_Object *scheme_module_resolve(Scheme_Object *modidx, int load_it); -Scheme_Env *scheme_module_access(Scheme_Object *modname, Scheme_Env *env, int rev_mod_phase); +Scheme_Env *scheme_module_access(Scheme_Object *modname, Scheme_Env *env, intptr_t rev_mod_phase); void scheme_module_force_lazy(Scheme_Env *env, int previous); int scheme_module_export_position(Scheme_Object *modname, Scheme_Env *env, Scheme_Object *varname); @@ -3118,7 +3118,7 @@ int scheme_resolved_module_path_value_matches(Scheme_Object *rmp, Scheme_Object Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modidx, Scheme_Object *stxsym, Scheme_Object *insp, - int pos, int mod_phase); + int pos, intptr_t mod_phase); Scheme_Env *scheme_get_kernel_env(); @@ -3534,7 +3534,7 @@ int scheme_hash_tree_equal_rec(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2, void void scheme_set_root_param(int p, Scheme_Object *v); -Scheme_Object *scheme_intern_exact_parallel_symbol(const char *name, unsigned int len); +Scheme_Object *scheme_intern_exact_parallel_symbol(const char *name, uintptr_t len); Scheme_Object *scheme_symbol_append(Scheme_Object *s1, Scheme_Object *s2); Scheme_Object *scheme_copy_list(Scheme_Object *l); @@ -3545,9 +3545,6 @@ int scheme_regexp_is_byte(Scheme_Object *re); Scheme_Object *scheme_make_regexp(Scheme_Object *str, int byte, int pcre, int * volatile result_is_err_string); int scheme_is_pregexp(Scheme_Object *o); void scheme_clear_rx_buffers(void); -unsigned short * scheme_ucs4_to_utf16(const mzchar *text, int start, int end, - unsigned short *buf, int bufsize, - intptr_t *ulen, int term_size); #ifdef SCHEME_BIG_ENDIAN # define MZ_UCS4_NAME "UCS-4BE" diff --git a/src/racket/src/string.c b/src/racket/src/string.c index 21b04c4325..c7c57de7ae 100644 --- a/src/racket/src/string.c +++ b/src/racket/src/string.c @@ -321,21 +321,21 @@ static Scheme_Object *byte_converter_p(int argc, Scheme_Object *argv[]); static void register_traversers(void); #endif -static int mz_char_strcmp(const char *who, const mzchar *str1, int l1, const mzchar *str2, int l2, int locale, int size_shortcut); -static int mz_char_strcmp_ci(const char *who, const mzchar *str1, int l1, const mzchar *str2, int l2, int locale, int size_shortcut); -static int mz_strcmp(const char *who, unsigned char *str1, int l1, unsigned char *str2, int l2); +static int mz_char_strcmp(const char *who, const mzchar *str1, intptr_t l1, const mzchar *str2, intptr_t l2, int locale, int size_shortcut); +static int mz_char_strcmp_ci(const char *who, const mzchar *str1, intptr_t l1, const mzchar *str2, intptr_t l2, int locale, int size_shortcut); +static int mz_strcmp(const char *who, unsigned char *str1, intptr_t l1, unsigned char *str2, intptr_t l2); -XFORM_NONGCING static int utf8_decode_x(const unsigned char *s, int start, int end, - unsigned int *us, int dstart, int dend, +XFORM_NONGCING static intptr_t utf8_decode_x(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, intptr_t *ipos, intptr_t *jpos, char compact, char utf16, int *state, int might_continue, int permissive); -XFORM_NONGCING static int utf8_encode_x(const unsigned int *us, int start, int end, - unsigned char *s, int dstart, int dend, +XFORM_NONGCING static intptr_t utf8_encode_x(const unsigned int *us, intptr_t start, intptr_t end, + unsigned char *s, intptr_t dstart, intptr_t dend, intptr_t *_ipos, intptr_t *_opos, char utf16); static char *string_to_from_locale(int to_bytes, - char *in, int delta, int len, + char *in, intptr_t delta, intptr_t len, intptr_t *olen, int perm, int *no_cvt); @@ -2803,7 +2803,7 @@ static char *do_convert(iconv_t cd, #define MZ_SC_BUF_SIZE 32 static char *string_to_from_locale(int to_bytes, - char *in, int delta, int len, + char *in, intptr_t delta, intptr_t len, intptr_t *olen, int perm, int *no_cvt) /* Call this function only when iconv is available, and only when @@ -4160,18 +4160,18 @@ static Scheme_Object *string_normalize_kd (int argc, Scheme_Object *argv[]) /* strcmps */ /**********************************************************************/ -int scheme_char_strlen(const mzchar *s) +intptr_t scheme_char_strlen(const mzchar *s) { - int i; + intptr_t i; for (i = 0; s[i]; i++) { } return i; } -static int mz_char_strcmp(const char *who, const mzchar *str1, int l1, const mzchar *str2, int l2, +static int mz_char_strcmp(const char *who, const mzchar *str1, intptr_t l1, const mzchar *str2, intptr_t l2, int use_locale, int size_shortcut) { - int endres; + intptr_t endres; if (size_shortcut && (l1 != l2)) return 1; @@ -4209,10 +4209,10 @@ static int mz_char_strcmp(const char *who, const mzchar *str1, int l1, const mzc return endres; } -static int mz_char_strcmp_ci(const char *who, const mzchar *str1, int l1, const mzchar *str2, int l2, +static int mz_char_strcmp_ci(const char *who, const mzchar *str1, intptr_t l1, const mzchar *str2, intptr_t l2, int use_locale, int size_shortcut) { - int p1, p2, sp1, sp2, a, b; + intptr_t p1, p2, sp1, sp2, a, b; mzchar spec1[SPECIAL_CASE_FOLD_MAX], spec2[SPECIAL_CASE_FOLD_MAX]; if (size_shortcut && (l1 != l2)) @@ -4277,9 +4277,9 @@ static int mz_char_strcmp_ci(const char *who, const mzchar *str1, int l1, const return ((p1 < l1) || sp1) - ((p2 < l2) || sp2); } -static int mz_strcmp(const char *who, unsigned char *str1, int l1, unsigned char *str2, int l2) +static int mz_strcmp(const char *who, unsigned char *str1, intptr_t l1, unsigned char *str2, intptr_t l2) { - int endres; + intptr_t endres; if (l1 > l2) { l1 = l2; @@ -4705,8 +4705,8 @@ byte_converter_p(int argc, Scheme_Object *argv[]) /* utf8 converter */ /**********************************************************************/ -static int utf8_decode_x(const unsigned char *s, int start, int end, - unsigned int *us, int dstart, int dend, +static intptr_t utf8_decode_x(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, intptr_t *ipos, intptr_t *jpos, char compact, char utf16, int *_state, int might_continue, int permissive) @@ -4732,7 +4732,8 @@ static int utf8_decode_x(const unsigned char *s, int start, int end, or U+FFFD. */ { - int i, j, oki, failmode = -3, state; + intptr_t i, j, oki; + int failmode = -3, state; int init_doki; int nextbits, v; unsigned int sc; @@ -4970,7 +4971,7 @@ static int utf8_decode_x(const unsigned char *s, int start, int end, # endif } } else { - int delta; + intptr_t delta; delta = (i - oki); if (delta) { if (j + delta + 1 < dend) { @@ -5060,16 +5061,16 @@ static int utf8_decode_x(const unsigned char *s, int start, int end, return j - dstart; } -int scheme_utf8_decode(const unsigned char *s, int start, int end, - unsigned int *us, int dstart, int dend, +intptr_t scheme_utf8_decode(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, intptr_t *ipos, char utf16, int permissive) { return utf8_decode_x(s, start, end, us, dstart, dend, ipos, NULL, utf16, utf16, NULL, 0, permissive); } -int scheme_utf8_decode_as_prefix(const unsigned char *s, int start, int end, - unsigned int *us, int dstart, int dend, +intptr_t scheme_utf8_decode_as_prefix(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, intptr_t *ipos, char utf16, int permissive) /* Always returns number of read characters, not error codes. */ { @@ -5079,17 +5080,17 @@ int scheme_utf8_decode_as_prefix(const unsigned char *s, int start, int end, return opos - dstart; } -int scheme_utf8_decode_all(const unsigned char *s, int len, unsigned int *us, int permissive) +intptr_t scheme_utf8_decode_all(const unsigned char *s, intptr_t len, unsigned int *us, int permissive) { return utf8_decode_x(s, 0, len, us, 0, -1, NULL, NULL, 0, 0, NULL, 0, permissive); } -int scheme_utf8_decode_prefix(const unsigned char *s, int len, unsigned int *us, int permissive) +intptr_t scheme_utf8_decode_prefix(const unsigned char *s, intptr_t len, unsigned int *us, int permissive) /* us != NULL */ { { /* Try fast path (all ASCII) */ - int i; + intptr_t i; for (i = 0; i < len; i++) { if (s[i] < 128) us[i] = s[i]; @@ -5103,10 +5104,10 @@ int scheme_utf8_decode_prefix(const unsigned char *s, int len, unsigned int *us, return utf8_decode_x(s, 0, len, us, 0, -1, NULL, NULL, 0, 0, NULL, 1, permissive); } -mzchar *scheme_utf8_decode_to_buffer_len(const unsigned char *s, int len, - mzchar *buf, int blen, intptr_t *_ulen) +mzchar *scheme_utf8_decode_to_buffer_len(const unsigned char *s, intptr_t len, + mzchar *buf, intptr_t blen, intptr_t *_ulen) { - int ulen; + intptr_t ulen; ulen = utf8_decode_x(s, 0, len, NULL, 0, -1, NULL, NULL, 0, 0, @@ -5124,21 +5125,21 @@ mzchar *scheme_utf8_decode_to_buffer_len(const unsigned char *s, int len, return buf; } -mzchar *scheme_utf8_decode_to_buffer(const unsigned char *s, int len, - mzchar *buf, int blen) +mzchar *scheme_utf8_decode_to_buffer(const unsigned char *s, intptr_t len, + mzchar *buf, intptr_t blen) { intptr_t ulen; return scheme_utf8_decode_to_buffer_len(s, len, buf, blen, &ulen); } -int scheme_utf8_decode_count(const unsigned char *s, int start, int end, +intptr_t scheme_utf8_decode_count(const unsigned char *s, intptr_t start, intptr_t end, int *_state, int might_continue, int permissive) { intptr_t pos = 0; if (!_state || !*_state) { /* Try fast path (all ASCII): */ - int i; + intptr_t i; for (i = start; i < end; i++) { if (s[i] > 127) break; @@ -5156,14 +5157,14 @@ int scheme_utf8_decode_count(const unsigned char *s, int start, int end, return pos; } -static int utf8_encode_x(const unsigned int *us, int start, int end, - unsigned char *s, int dstart, int dend, +static intptr_t utf8_encode_x(const unsigned int *us, intptr_t start, intptr_t end, + unsigned char *s, intptr_t dstart, intptr_t dend, intptr_t *_ipos, intptr_t *_opos, char utf16) /* Results: -1 => input ended in the middle of an encoding - only when utf16 and _opos non-negative => reports number of bytes/code-units produced */ { - int i, j, done = start; + intptr_t i, j, done = start; if (dend < 0) dend = 0x7FFFFFFF; @@ -5310,8 +5311,8 @@ static int utf8_encode_x(const unsigned int *us, int start, int end, } } -int scheme_utf8_encode(const unsigned int *us, int start, int end, - unsigned char *s, int dstart, +intptr_t scheme_utf8_encode(const unsigned int *us, intptr_t start, intptr_t end, + unsigned char *s, intptr_t dstart, char utf16) { return utf8_encode_x(us, start, end, @@ -5319,16 +5320,16 @@ int scheme_utf8_encode(const unsigned int *us, int start, int end, NULL, NULL, utf16); } -int scheme_utf8_encode_all(const unsigned int *us, int len, unsigned char *s) +intptr_t scheme_utf8_encode_all(const unsigned int *us, intptr_t len, unsigned char *s) { return utf8_encode_x(us, 0, len, s, 0, -1, NULL, NULL, 0 /* utf16 */); } -char *scheme_utf8_encode_to_buffer_len(const mzchar *s, int len, - char *buf, int blen, +char *scheme_utf8_encode_to_buffer_len(const mzchar *s, intptr_t len, + char *buf, intptr_t blen, intptr_t *_slen) { - int slen; + intptr_t slen; /* ASCII with len < blen is a common case: */ if (len < blen) { @@ -5355,19 +5356,19 @@ char *scheme_utf8_encode_to_buffer_len(const mzchar *s, int len, return buf; } -char *scheme_utf8_encode_to_buffer(const mzchar *s, int len, - char *buf, int blen) +char *scheme_utf8_encode_to_buffer(const mzchar *s, intptr_t len, + char *buf, intptr_t blen) { intptr_t slen; return scheme_utf8_encode_to_buffer_len(s, len, buf, blen, &slen); } -unsigned short *scheme_ucs4_to_utf16(const mzchar *text, int start, int end, - unsigned short *buf, int bufsize, - intptr_t *ulen, int term_size) +unsigned short *scheme_ucs4_to_utf16(const mzchar *text, intptr_t start, intptr_t end, + unsigned short *buf, intptr_t bufsize, + intptr_t *ulen, intptr_t term_size) { mzchar v; - int extra, i, j; + intptr_t extra, i, j; unsigned short *utf16; /* Count characters that fall outside UCS-2: */ @@ -5395,12 +5396,12 @@ unsigned short *scheme_ucs4_to_utf16(const mzchar *text, int start, int end, return utf16; } -mzchar *scheme_utf16_to_ucs4(const unsigned short *text, int start, int end, - mzchar *buf, int bufsize, - intptr_t *ulen, int term_size) +mzchar *scheme_utf16_to_ucs4(const unsigned short *text, intptr_t start, intptr_t end, + mzchar *buf, intptr_t bufsize, + intptr_t *ulen, intptr_t term_size) { int wc; - int i, j; + intptr_t i, j; for (i = start, j = 0; i < end; i++) { wc = text[i]; diff --git a/src/racket/src/strops.inc b/src/racket/src/strops.inc index 598923ba46..fce37b914f 100644 --- a/src/racket/src/strops.inc +++ b/src/racket/src/strops.inc @@ -336,7 +336,7 @@ X__(string_append) (int argc, Scheme_Object *argv[]) Scheme_Object * X(scheme_append, _string)(Scheme_Object *str1, Scheme_Object *str2) { - int len1, len2; + intptr_t len1, len2; Xchar *r; Scheme_Object *naya; diff --git a/src/racket/src/stxobj.c b/src/racket/src/stxobj.c index 1ce4e7ee88..2dc7f4c627 100644 --- a/src/racket/src/stxobj.c +++ b/src/racket/src/stxobj.c @@ -1476,7 +1476,7 @@ Scheme_Object *scheme_extend_module_rename(Scheme_Object *mrn, Scheme_Object *exname, /* name in definition context */ Scheme_Object *nominal_mod, /* nominal source module */ Scheme_Object *nominal_ex, /* nominal import before local renaming */ - int mod_phase, /* phase of source defn */ + intptr_t mod_phase, /* phase of source defn */ Scheme_Object *src_phase_index, /* nominal import phase */ Scheme_Object *nom_phase, /* nominal export phase */ Scheme_Object *insp, /* inspector for re-export */ @@ -1675,7 +1675,7 @@ static void do_append_module_rename(Scheme_Object *src, Scheme_Object *dest, if (SCHEME_PAIRP(SCHEME_CDR(v))) { /* (list* modidx [mod-phase] exportname nominal_modidx+index nominal_exportname) */ Scheme_Object *midx1, *midx2; - int mod_phase; + intptr_t mod_phase; midx1 = SCHEME_CAR(v); v = SCHEME_CDR(v); if (SCHEME_INTP(SCHEME_CAR(v))) { diff --git a/src/racket/src/symbol.c b/src/racket/src/symbol.c index 6178ac8106..f8ab24c974 100644 --- a/src/racket/src/symbol.c +++ b/src/racket/src/symbol.c @@ -95,12 +95,12 @@ typedef uintptr_t hash_v_t; #endif static Scheme_Object *rehash_symbol_bucket(Scheme_Hash_Table *table, - GC_CAN_IGNORE const char *key, unsigned int length, + GC_CAN_IGNORE const char *key, uintptr_t length, Scheme_Object *naya); /* Special hashing for symbols: */ static Scheme_Object *symbol_bucket(Scheme_Hash_Table *table, - GC_CAN_IGNORE const char *key, unsigned int length, + GC_CAN_IGNORE const char *key, uintptr_t length, Scheme_Object *naya) { hash_v_t h, h2; @@ -114,7 +114,7 @@ static Scheme_Object *symbol_bucket(Scheme_Hash_Table *table, mask = table->size - 1; { - unsigned int i; + uintptr_t i; i = 0; h = HASH_SEED; h2 = 0; @@ -166,7 +166,7 @@ static Scheme_Object *symbol_bucket(Scheme_Hash_Table *table, } static Scheme_Object *rehash_symbol_bucket(Scheme_Hash_Table *table, - GC_CAN_IGNORE const char *key, unsigned int length, + GC_CAN_IGNORE const char *key, uintptr_t length, Scheme_Object *naya) { int i, oldsize = table->size, newsize, lostc; @@ -353,7 +353,7 @@ uintptr_t scheme_get_max_symbol_length() { static Scheme_Object * -make_a_symbol(const char *name, unsigned int len, int kind) +make_a_symbol(const char *name, uintptr_t len, int kind) { Scheme_Symbol *sym; @@ -383,13 +383,13 @@ scheme_make_symbol(const char *name) } Scheme_Object * -scheme_make_exact_symbol(const char *name, unsigned int len) +scheme_make_exact_symbol(const char *name, uintptr_t len) { return make_a_symbol(name, len, 0x1); } Scheme_Object * -scheme_make_exact_char_symbol(const mzchar *name, unsigned int len) +scheme_make_exact_char_symbol(const mzchar *name, uintptr_t len) { char buf[64], *bs; intptr_t blen; @@ -404,7 +404,7 @@ typedef enum { } enum_symbol_table_type; static Scheme_Object * -intern_exact_symbol_in_table_worker(enum_symbol_table_type type, int kind, const char *name, unsigned int len) +intern_exact_symbol_in_table_worker(enum_symbol_table_type type, int kind, const char *name, uintptr_t len) { Scheme_Object *sym; Scheme_Hash_Table *table; @@ -470,25 +470,25 @@ intern_exact_symbol_in_table_worker(enum_symbol_table_type type, int kind, const } static Scheme_Object * -intern_exact_symbol_in_table(enum_symbol_table_type type, int kind, const char *name, unsigned int len) +intern_exact_symbol_in_table(enum_symbol_table_type type, int kind, const char *name, uintptr_t len) { return intern_exact_symbol_in_table_worker(type, kind, name, len); } Scheme_Object * -scheme_intern_exact_symbol(const char *name, unsigned int len) +scheme_intern_exact_symbol(const char *name, uintptr_t len) { return intern_exact_symbol_in_table(enum_symbol, 0, name, len); } Scheme_Object * -scheme_intern_exact_parallel_symbol(const char *name, unsigned int len) +scheme_intern_exact_parallel_symbol(const char *name, uintptr_t len) { return intern_exact_symbol_in_table(enum_parallel_symbol, 0x2, name, len); } Scheme_Object * -scheme_intern_exact_char_symbol(const mzchar *name, unsigned int len) +scheme_intern_exact_char_symbol(const mzchar *name, uintptr_t len) { char buf[64], *bs; intptr_t blen; @@ -497,7 +497,7 @@ scheme_intern_exact_char_symbol(const mzchar *name, unsigned int len) } Scheme_Object * -scheme_intern_exact_keyword(const char *name, unsigned int len) +scheme_intern_exact_keyword(const char *name, uintptr_t len) { Scheme_Object *s; s = intern_exact_symbol_in_table(enum_keyword, 0, name, len); @@ -506,7 +506,7 @@ scheme_intern_exact_keyword(const char *name, unsigned int len) return s; } -Scheme_Object *scheme_intern_exact_char_keyword(const mzchar *name, unsigned int len) +Scheme_Object *scheme_intern_exact_char_keyword(const mzchar *name, uintptr_t len) { char buf[64], *bs; intptr_t blen; @@ -553,11 +553,11 @@ scheme_intern_symbol(const char *name) return scheme_intern_exact_symbol(name, strlen(name)); } -const char *scheme_symbol_name_and_size(Scheme_Object *sym, unsigned int *length, int flags) +const char *scheme_symbol_name_and_size(Scheme_Object *sym, uintptr_t *length, int flags) { int has_space = 0, has_special = 0, has_pipe = 0, has_upper = 0, digit_start; int dz; - unsigned int i, len = SCHEME_SYM_LEN(sym), total_length; + uintptr_t i, len = SCHEME_SYM_LEN(sym), total_length; int pipe_quote; char buf[100]; char *s, *result; @@ -682,7 +682,7 @@ const char *scheme_symbol_name_and_size(Scheme_Object *sym, unsigned int *length result[len + 2] = 0; } else { int p = 0; - unsigned int i = 0; + uintptr_t i = 0; result = (char *)scheme_malloc_atomic((2 * len) + 1); diff --git a/src/worksp/.gitignore b/src/worksp/.gitignore index c8fccf16f3..bed63a0c70 100644 --- a/src/worksp/.gitignore +++ b/src/worksp/.gitignore @@ -1,4 +1,5 @@ # MSVC build directory: */Release */Debug +*/x64 */*.user diff --git a/src/worksp/libffi/ffi.h b/src/worksp/libffi/ffi.h index c2c0220a8e..7c52e2b2be 100644 --- a/src/worksp/libffi/ffi.h +++ b/src/worksp/libffi/ffi.h @@ -59,10 +59,11 @@ extern "C" { /* Specify which architecture libffi is configured for. */ #ifdef _WIN64 # define __x86_64__ +# define X86_WIN64 #else # define __i386__ +# define X86_WIN32 #endif -#define X86_WIN32 /* ---- System configuration information --------------------------------- */ diff --git a/src/worksp/libffi/libffi.vcproj b/src/worksp/libffi/libffi.vcproj index 89ce1d248c..51f00ecfc6 100644 --- a/src/worksp/libffi/libffi.vcproj +++ b/src/worksp/libffi/libffi.vcproj @@ -12,6 +12,9 @@ + @@ -140,6 +143,132 @@ Name="VCPostBuildEventTool" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -177,10 +306,19 @@ > + + + + @@ -96,6 +99,90 @@ Name="VCPostBuildEventTool" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/worksp/libracket/libracket.vcproj b/src/worksp/libracket/libracket.vcproj index f09e1544d1..9d182cf4fe 100644 --- a/src/worksp/libracket/libracket.vcproj +++ b/src/worksp/libracket/libracket.vcproj @@ -10,6 +10,9 @@ + @@ -98,6 +101,92 @@ Name="VCPostBuildEventTool" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/worksp/racket/racket.sln b/src/worksp/racket/racket.sln index 2816f3c739..34863b6866 100644 --- a/src/worksp/racket/racket.sln +++ b/src/worksp/racket/racket.sln @@ -19,25 +19,43 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Debug|Win32.ActiveCfg = Debug|Win32 {EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Debug|Win32.Build.0 = Debug|Win32 + {EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Debug|x64.ActiveCfg = Debug|x64 + {EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Debug|x64.Build.0 = Debug|x64 {EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Release|Win32.ActiveCfg = Release|Win32 {EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Release|Win32.Build.0 = Release|Win32 + {EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Release|x64.ActiveCfg = Release|x64 + {EB7023C8-6D72-4DE4-ADFC-3913C4C70991}.Release|x64.Build.0 = Release|x64 {A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Debug|Win32.ActiveCfg = Debug|Win32 {A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Debug|Win32.Build.0 = Debug|Win32 + {A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Debug|x64.ActiveCfg = Debug|x64 + {A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Debug|x64.Build.0 = Debug|x64 {A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Release|Win32.ActiveCfg = Release|Win32 {A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Release|Win32.Build.0 = Release|Win32 + {A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Release|x64.ActiveCfg = Release|x64 + {A6713577-7DFB-48F8-B8C1-7DB2D7C51F90}.Release|x64.Build.0 = Release|x64 {66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Debug|Win32.ActiveCfg = Debug|Win32 {66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Debug|Win32.Build.0 = Debug|Win32 + {66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Debug|x64.ActiveCfg = Debug|x64 + {66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Debug|x64.Build.0 = Debug|x64 {66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Release|Win32.ActiveCfg = Release|Win32 {66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Release|Win32.Build.0 = Release|Win32 + {66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Release|x64.ActiveCfg = Release|x64 + {66548E7B-294E-40EF-B7C0-C8D6D7E6234F}.Release|x64.Build.0 = Release|x64 {7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Debug|Win32.ActiveCfg = Debug|Win32 {7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Debug|Win32.Build.0 = Debug|Win32 + {7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Debug|x64.ActiveCfg = Debug|x64 + {7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Debug|x64.Build.0 = Debug|x64 {7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Release|Win32.ActiveCfg = Release|Win32 {7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Release|Win32.Build.0 = Release|Win32 + {7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Release|x64.ActiveCfg = Release|x64 + {7DB29F1E-06FD-4E39-97FF-1C7922F6901A}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/worksp/racket/racket.vcproj b/src/worksp/racket/racket.vcproj index 816f2479be..43eaba6832 100644 --- a/src/worksp/racket/racket.vcproj +++ b/src/worksp/racket/racket.vcproj @@ -10,6 +10,9 @@ + @@ -98,6 +101,92 @@ CommandLine=" if exist "$(TargetPath)" goto :MzOK echo Error: did not find $(TargetPath) exit 1 :MzOK "$(TargetPath)" -cu ..\..\racket\mkincludes.rkt "$(TargetDir)/include/" ..\..\racket .. if errorlevel 1 exit 1 cd ..\..\racket\dynsrc mkmzdynd.bat cd ..\..\worksp\racket " /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +