-
Notifications
You must be signed in to change notification settings - Fork 43
Add release automation, Docker support, Windows cross-compilation, and enhanced REPL experience #80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: devel
Are you sure you want to change the base?
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