Add release automation, Docker support, Windows cross-compilation, and enhanced REPL experience#80
Add release automation, Docker support, Windows cross-compilation, and enhanced REPL experience#80Francesco146 wants to merge 53 commits intokfl:develfrom
Conversation
…d modernize signal handling - Change old-style "main()" to standard "int main(int argc, char **argv)" in several auto-aux test programs (align.c, bytecopy.c, dblalign.c, endian.c, schar.c, schar2.c, setjmp.c, sighandler.c). - Fix sighandler.c to use sig_t for the saved handler variable. - Add missing includes: stdlib.h in runtime/io.c, unistd.h in config/auto-aux/signals.c, and fail.h/memory.h in src/dynlibs/mgd/mgd.c. - Replace deprecated SA_NOMASK with SA_NODEFER in sys.c when installing sigaction.
…nstalls, add rlwrap, upload artifacts and create release job
…nstalls and create staging for artifacts
- Drop the build-windows (MSYS2) job and related artifact upload - Remove Windows entries from release notes and release artifact list - Update create-release dependency to only require build-test - macOS dependency step no longer installs gmp (install rlwrap only)
|
the only thing that i can think of for a working mosml implementation on Windows is my port of mosml to Docker: |
|
update: https://github.com/kfl/mosml/wiki/Notes-about-how-to-build-Moscow-ML-installers#for-windows this seems to work, it still uses the deprecated i'll push the changes here |
…uild artifacts and temporary files
…d running Moscow ML
a7403f6 to
ca07940
Compare
d85956e to
8a8b25f
Compare
|
okay, update: i've published the automatic build system for Windows. it all uses InnoSetup, so that's cool. i changed the branch to devel, but as i suspected, it introduced some regression: i'll take a look at these right now |
43758a3 to
12ea1dc
Compare
…ify dry run logic
|
i found an issue in the Word64 conversion layer:
i've updated (84b1250) the SML
|
|
also, in the Word64 shift functions:
i've updated (82e40e3) the functions to use word-level comparisons instead of converting
|
|
hmm, i think it's better to address these corrections in another PR. i believe Int64 and Word64 need some changes in terms of functionality, but also bug fixing and documentation in the signatures, should i revert this changes for now? edit: note that 15d25ff is needed for the CI/CD to succeed |
…n and entrypoint handling
|
done, sorry for the back and forth, i found a few edge cases that my additions didn't handle. everything should be fine now and ready for review. i think it's best to revert the two commits, but i'll wait to hear what you think :) |
This PR introduces significant infrastructure improvements across build systems, CI/CD pipelines, containerization, and user experience. The changes enable automated releases, reproducible builds, cross-platform support, and a modernized interactive REPL.
Release Automation & CI/CD
buildAndTest.yml):mosml-<platform>-<arch>.tar.gz)v*.*.*)docker.yml):Docker Support
Dockerfile.w32):Windows Support
build-win.shscript with comprehensive options and error handlingEnhanced REPL Experience
mosmllauncher:$HOME/.local/share/mosml/historywhenXDG_DATA_HOMEnot setDISABLE_RLWRAP=1environment variableBuild System Improvements
pkg-configwhen availableGMPINCDIRandGMPLIBDIRoverridesmain()signatures across auto-aux helperscleantargets (continue on missing directories)install_w32target in lexBug Fixes
toIntSA_NOMASK→SA_NODEFERfor POSIX compliancestdlib.h,fail.h,memory.h)Repository Hygiene
.gitignore:.dockerignorefor efficient Docker buildsDocumentation Updates
install.txt.w32)Testing
All changes have been tested across:
Breaking Changes
All changes are backward compatible. The rlwrap integration is opt-in by availability and can be disabled. The CI process for pushing
mosmlimages to Docker HUB require two repository secrets:DOCKERHUB_USERNAME: the account usernameDOCKERHUB_TOKEN: the PAT for this repo