On or before macOS Ventura's release, defaulting the @rpath to
include /Library/Frameworks stopped. Since we expect the SDL2
framework to be installed there we must add a -rpath option.
This should be backwards compatible with older macOS releases.
(verified on Catalina but nothing older)
* Rationalize the processing of command line args for the sysout. Remove most of the redundancy between what is done for sysout arg processing in xrdopt.c versus main.c. Move all of the decision making about what sysout_name to use until all args have been processed (both in xrdpopt and main). This is done in main, where the prioritization and checking is done in one place rather than spread in several places in xrdopt and main. // Order of priority:
628 // 1. Value of -sysout command line arg
629 // 2. Value of the first command line arg
630 // 3. Value of LDESRCESYSOUT env variable
631 // 4. Value of LDESOURCESYSOUT env variable
632 // 5. Value as determined by X resource manager, if any
633 // 6. Value of /home/frank/lisp.virtualmem (or lisp.vm for DOS)
* In main.c moved check for sysout as first arg to before the call to read_Xoption. This will ensure that we always check the 'true' first argument even when read_Xoption modifies argv.
* Haiku OS port
* haiku with X11 backend
* haiku has stpncpy
* Haiku is not Linux.
* X not stable enough on Haiku
* Haiku : settimeofday is a no-op
* Haiku : no need to define settimeofday at all (pointed by nbriggs)
---------
Signed-off-by: Anarchos <sylvain_kerjean@hotmail.com>
Calls to UNIX-GETPARM with argument "OSNAME" or "ARCH" now return
values derived from the compile-time settings in inc/maiko/platform.h
The current return values are
OSNAME:
"macOS"
"Cygwin"
"DragonFly BSD"
"FreeBSD"
"Linux"
"NetBSD"
"OpenBSD"
"AmigaOS 3"
"Solaris"
"Windows"
"Emscripten"
ARCH:
"WebAssembly"
"x86_64"
"arm"
"arm64"
"x86"
"PowerPC"
"RISC-V"
"SPARC"
"Motorola68K"
Rather than adding/or-ing the STK_OFFSET constant into a stack offset
to convert it to a pointer in general Lisp memory and then converting
from that to a native address... use the functions specifically
present to do those conversions with embedded checks on stack offset
validity.
Pointer difference calculations on an inappropriate stack pointer could
result in a negative offset, not just an offset that is too large to fit
in 16 bits. Complain if either case occurs.
While packing is not guaranteed, and most compilers will combine
adjacent bit fields regardless of the alignment requirements of the
datatype that is being divided, here we can be clearer that we
expect packing into 16-bit fields and we do not require (and must not
have) 32-bit alignment of the collections of bitfields.
Compiling with -DMAIKO_ENABLE_NETHUB makes it possible to test out having a WebSocket
server that could pass packets back and forth to the Dodo NetHub.
Setting Emscripten link-time option for EXIT_RUNTIME allows the runtime code to shutdown
when you exit Medley via a (LOGOUT)
Set up preloads for all the parts of the Medley directory that MEDLEYDIR-INIT expects
to be there. The resulting ldesdl.data is (at this time) 128 MB. It can be installed
gzipped if using nginx or some other web server that supports pre-zipped static files.
It would be better to have these as lazy-loading files, but the setup for that is
complicated. Another alternative to embedding all the data would be if a WebSocket
to XNS/Nethub gateway were written and deployed.
Passes the window width/height as the requested geometry to lde at startup.
Since we control the directory structure of the file-system, we can pass the
known fixed location of the Medley directories in the MEDLEYDIR environment variable.
Sets up the NetHub host as localhost - not currenty functional, but a WebSocket
server could be added to communicate with the NetHub gateway to enable local
networking from the browser version of Medley.
Moves the full.sysout from the root of tle system to /medley/loadups/full.sysout,
adds /medley/lispusers/BACKGROUND-YIELD.LCOM and an Emscripten/WAsm specific
site init file at /usr/local/lde/site-init.lisp
Adjusts options so that the options are in the correct place for the
compiler and loader.