Commit graph

69 commits

Author SHA1 Message Date
Daniel Kochmański
3e37843a33 cleanup: update license to lgpl-2.1+ in both headers and text 2024-01-14 12:22:27 +01:00
Yuguo Zhang
6b0f6faa55 msvc: set HAVE_WCHAR_H in config.h 2021-12-23 09:39:44 +00:00
Yuguo Zhang
1cd226f867 msvc: use :X86-64 feature keyword when make a 64bit build 2021-03-24 09:39:03 +08:00
Pritam Baral
a1b2909b8a s/TCP/ECL_TCP/ among preprocessor defines 2020-11-22 21:04:16 +00:00
Marius Gerbershagen
f76bd95786 fix array dimension limit for msvc win64 2020-03-07 22:26:43 +01:00
Marius Gerbershagen
14fa51f172 fix config.h for MSVC win64 2020-03-01 18:49:50 +01:00
Yuguo Zhang
b59bbd6164 restore 21bit unicode on windows msvc build
ecl_character is a signed type actually,
16bit signed short is not big enough to hold big charsets, such as
CP936.

this commit rolls back 74b67347.
2020-02-26 11:36:34 +08:00
Marius Gerbershagen
c301b108a7 bignums: don't use ecl_alloc_atomic for gmp
The gmp manual (https://gmplib.org/manual/Custom-Allocation.html) states

> GMP may use allocated blocks to hold pointers to other allocated
  blocks. This will limit the assumptions a conservative garbage
  collection scheme can make.

Thus we can't use ecl_alloc_atomic. We could just use ecl_alloc
instead, however our implementation is already structured in such a
way that it is sufficient to use ecl_alloc_uncollectable. The reason
for that is that currently all bignums except those in the bignum
registers in the thread local environment are allocated as compact
objects so that we only need to call mpz_clear for the few non-compact
objects in the bignum registers.

See also commits 7b536161 and bd48b859.
Fixes #485.
2020-01-04 17:49:08 +01:00
Marius Gerbershagen
d7b2dfb722 Change handling of C stack size
Previously: unconditionally use the size from ECL_OPT_C_STACK_SIZE if
it is larger than the OS provided value and if possible resize the
stack at runtime.

Now: Use ECL_OPT_C_STACK_SIZE if provided. Otherwise, use a) the OS
provided value if we can resize the stack at runtime (for Unix) or b)
the new build option ECL_DEFAULT_C_STACK_SIZE (1 MB) if we can set the
stack size at link time (for Windows).
2019-12-26 19:13:31 +01:00
Marius Gerbershagen
a2319d3150 unixsys: check for system() in configure
Don't let a non-available system() function (happens e.g. on iOS)
prevent us from compiling ECL.
2019-12-08 10:26:52 +01:00
Daniel Kochmański
903156b8d6 preprocessor: error when ECL_C_ARGUMENTS_LIMIT changes
This is a canary which errors when code needs to be adjusted. When
appropriate definitions are added the error condition should be
changed accordingly.
2019-07-19 14:30:50 +02:00
Marius Gerbershagen
b891630699 ieee-fp: introduce new macro for toggling between Lisp and C fpe
This is primarly useful for embedding. Lisp code can be safely
executed without leaking the floating point environment into other C
code.
2019-06-30 13:01:06 +02:00
ZhangYuguo
913cab0bf9 enable long float support on windows msvc build.
since c99 is mandatory now, we should never consider msvc6 anymore.
2019-02-19 15:11:23 +08:00
Marius Gerbershagen
a3a44a0eeb debugger: add C backtrace for windows
Because that needs the DbgHelp library, an additional make
    option has been defined for users, who don't want to link to this
    library. Some msvc Makefile cleanup has also been done.
2018-05-08 19:36:11 +02:00
Daniel Kochmanski
0494fb1592 Moderate interface cleanup
- unicode name tables are always compiled in when we have unicode support
- thread local variables support is removed
- profile and rt contribs are deprecated
2018-05-01 10:16:20 +02:00
Daniel Kochmanski
c3244b0148 Remove deprecated 8-bit opcodes 2018-04-29 13:54:38 +02:00
Yuguo Zhang
74b673479e using 16bit unicode on windows platform.
because windows using utf16 internally, by using 16bit unicode chararcter,
there is no need to convert ecl_character to wchar_t in embedding
environment.
2017-08-08 14:10:58 +08:00
Yuguo Zhang
4a3418502c minor MSVC version modifications
due to C99 compilance, you need msvc 2013 at least to build ECL.
2017-08-08 13:14:15 +08:00
Daniel Kochmanski
4ace366a6e cleanup: remove leftover definition
ecl_dynamic_ffi was removed long time ago.
2017-05-13 18:53:55 +02:00
Daniel Kochmanski
72e422f1b3 cleanup: remove hierarchical packages interface
It didn't work for some cases and wasn't documented, so I'm removing
it. Freshly written tests are left in tests for someone, who would
like to reimplement them.
2017-05-13 18:06:26 +02:00
Daniel Kochmański
f4d0df651b buildsystem: fix for old msvc
Old MSVC apparently things, that char = unsigned char. Add explicit
prefixes to typedefs.

This is backward-compatibility fix, because this version of msvc doesn't
support some c99 types.

Reported and fixed by Jón Hallur Haraldsson.
2017-02-01 12:56:41 +01:00
Daniel Kochmanski
0f7bee221d windows: fix nmake to have config-internal 2016-11-09 09:54:33 +01:00
Fabrizio Fabbri
3ff0b11f7b msvc 2015 - client will break if integer types are redefined on this compiler. 2016-09-07 11:18:56 -04:00
Daniel Kochmański
1398fd381a cleanup: purge clx 2016-09-07 14:58:50 +02:00
Fabrizio Fabbri
8fed1fa97d Fixed VS2010/2015 build.
- Fix #213
- Commit 10bd3b61 removed dffi code. Reflect that on nmake build.
2016-07-21 04:45:28 -04:00
Matthew Mondor
fb09755db4 FIXNUM_BITS -> ECL_FIXNUM_BITS consistently, second try 2015-08-30 16:35:14 -04:00
Juanjo Garcia-Ripoll
91dece26de Add missing configuration flag to msvc/ecl/config.h.msvc6 2012-11-10 00:18:06 +01:00
Juanjo Garcia-Ripoll
8e853cdcce ECL_WEAK_HASH was not active in the Windows port. 2012-07-13 11:59:52 +02:00
Juan Jose Garcia Ripoll
d6a56f0596 Redefine CHAR_CODE_LIMIT -> ECL_CHAR_CODE_LIMIT 2012-06-27 22:16:39 +02:00
Juan Jose Garcia Ripoll
a2fe30393f Prefix the function argument limits 2012-06-22 23:47:45 +02:00
Juanjo Garcia-Ripoll
df4f2f716d Some symbols which are now part of the legacy are not updated in msvc/ecl/config.h.msvc6 2012-06-17 16:23:24 +02:00
Juanjo Garcia-Ripoll
57cd6e3066 Minor changes to add the new MP objects to the MSVC port and new code for waking up processes in this platform. 2012-04-16 23:35:40 +02:00
Juan Jose Garcia Ripoll
a9878638c1 MSVC admits 64 bit integers also in 32 bit mode. 2012-03-18 15:43:27 +01:00
Juan Jose Garcia Ripoll
55821dc616 In Windows64, ECL_LONG_BITS must be 32 (LL64) not 64, as it was defined in msvc/ecl/config.h.msvc6 2011-11-13 11:47:41 +01:00
syakovyn
f1902ca956 Configured _WIN64 support for MSVC 2011-11-11 23:08:09 +01:00
Juan Jose Garcia Ripoll
d3fdd02cd8 Missing definition for ecl_character. 2011-05-22 23:35:51 +02:00
Juan Jose Garcia Ripoll
69ca2d586d Only use long double when the special functions are available 2010-10-29 22:29:05 +02:00
Juan Jose Garcia Ripoll
1ec501768e Initial support for WIN64 2010-08-28 23:52:23 +02:00
Juan Jose Garcia Ripoll
ab6f5dc64e Add the definition of ECL_MS_WINDOWS_HOST to MSVC's config.h 2010-08-22 22:30:14 +02:00
Juan Jose Garcia Ripoll
dc2ce379ec Make the SSE2 feature optional. 2010-08-20 21:07:01 +02:00
Juan Jose Garcia Ripoll
957dd894bd Fixes for MSVC to accomodate latest changes in macros, SRC: pathname. 2010-03-02 15:52:08 +01:00
Juan Jose Garcia Ripoll
73e00046d4 The latest aliases for __attribute__((noreturn)) and other macros were not ported to MSVC. 2010-02-16 00:09:28 +01:00
Juanjo
1f74500b31 msvc/ecl/confg.h.msvc6: the value of UNICODE is now hardcoded in the header file, just like in other ports. 2009-10-05 11:00:36 +02:00
Juan Jose Garcia Ripoll
e3a8f6aec5 * msvc/ecl/config.msvc6: export ECL_WINDOWS_THREADS macro
* src/h/config.h: define GC_THREADS when using the garbage collector and threads.
2009-10-01 16:04:13 +02:00
Juan Jose Garcia Ripoll
28f2f9f4ca Export ECL_THREADS configuration flag when processing msvc/ecl/config.h.msvc6 2009-09-25 08:49:04 +02:00
Juan Jose Garcia Ripoll
78e9859bd2 Code to implement mp:interrupt-process in Windows:
* unixint.d: capture exceptions caused by page guards.
* unixint.d: to interrupt a Windows thread, set up a page guard onto the
  ECL environment and in addition queue an APC call that accesses the
  environment to trigger that exception.
* stacks.h: CL_CATCH_ALL uses _try/_except to enforce ECL's exception
  handler. Without it, Windows behaves randomly and sometimes uses the
  default handler and sometimes it simply aborts.
* threads.d: we use ordinary handlers to identify threads.
* time.d: SLEEP now uses Windows' SleepEx, leaving the thread in an
  alertable state -- that is, it can be interrupted.
* top.lsp: fixed and improved the code that handles console interrupts,
  by first using ordinary conditions and then using an interactive
  query function to decide which process to interrupt.
2009-09-22 20:13:23 +02:00
Juan Jose Garcia Ripoll
7dbe45ada9 First implementation of DFFI using libffi 2009-07-28 23:33:45 +02:00
Juan Jose Garcia Ripoll
ff6b91be36 Definition of ECL_{INT,LONG}_BITS missing in msvc. 2009-07-21 20:57:44 +02:00
Juan Jose Garcia Ripoll
bd75a757a0 The definition of signbit() for MSVC was wrong. 2009-06-16 20:16:46 +02:00
Juan Jose Garcia Ripoll
8e8204c2af Compile the MSVC port with support for IEEE floating point numbers. 2009-06-15 00:39:40 +02:00