Commit Graph

42 Commits

Author SHA1 Message Date
Matthew Flatt
463677304a configure with --libkernel as the default
original commit: f5f609214c3ee8eed083f05b508095df1aac40de
2019-07-05 07:30:51 -06:00
Matthew Flatt
71846161f9 Merge branch 'bsd' of github.com:mflatt/ChezScheme
original commit: 198477a40c2c580924d95491e63d80e1f9a39c0d
2019-07-05 07:30:37 -06:00
Matthew Flatt
1de465c474 add --kernelobj configure option
Although `--kernelobj` is the default, allow it to be specified
explicitly, in case it makes sense eventually to change the default.

original commit: 46813ea67dd115d87924422373ea684b75e2772c
2019-07-04 13:28:53 -06:00
Matthew Flatt
c38194c0ca adjust build for BSDs, MinGW cross-compile, and more configuration
Includes joint work with @abmclin, @pmatos, and @jessealama.

original commit: 70559d074f70dcadec5cea3619f75f91fcda77eb
2019-07-03 18:54:04 -06:00
Matthew Flatt
9f1fe73797 change build to use archives instead of merging objects
Merging ".o" files to one "kernel.o" can be convenient for further
linking, but it requires running `ld` directly. Running `ld` directly
sometimes runs into a mismatch between the C compiler and the default
`ld`. It's better to use the more typical approach of collecting
objects into an archive.

original commit: 7d5b60c7566570655e567495d86d546101cf8fb4
2019-06-21 18:53:33 -06:00
Matthew Flatt
e622a495b6 Add LZ4 support and use it by default for compressing files
original commit: 8858b34bd92ac8d2b6511dc9ca17ebfa06a1bd93
2019-04-06 07:32:37 +02:00
Matthew Flatt
8b68320dcb Merge branch 'lz4' of https://github.com/mflatt/ChezScheme
original commit: f74329a3254dbdfda1c4f86585a2d5028bbe03a3
2019-03-20 15:49:49 -06:00
Matthew Flatt
194d1e71c1 partially sync with current Chez Scheme
original commit: ff0c8d157a551f9a9c16606ac2e052373c1ce4f9
2019-03-20 15:43:33 -06:00
Matthew Flatt
8ab973300d Add LZ4 support and use it by default for compressing files
original commit: bbcd7fc2188e798ce53b765db0808e9ea6510350
2019-03-20 13:35:04 -06:00
Matthew Flatt
2f65d585b2 adjust Windows cross-compile to use zlib/win32/Makefile.gcc
original commit: b4c583ad7259eabad7344d5dedc297c8414140a4
2019-03-19 15:29:20 -06:00
Matthew Flatt
4030eae6a7 support cross-compile using MinGW
original commit: f36d5f8c0a4e31666e4332824d79279d9986e886
2019-03-02 05:30:08 -07:00
Matthew Flatt
60005f02d2 Merge github.com:cisco/ChezScheme
original commit: 629f8b653ff46afa64bffa1fcfbb8e7c94dd7451
2019-02-17 18:22:55 -07:00
dyb
9a7068220d - reverted the earlier change to restore indirection through
InstallPrefix, since it didn't and can't play well with the
  generated config.h.  Instead removed InstallPrefix entirely so
  it isn't an attractive hazzard.
    configure, makefiles/Mf-install.in

original commit: 21c8b40bbe4431795824e48042112820872a1fe5
2019-02-12 09:21:03 -08:00
dyb
2daf225cab committing a handful of changes, none of which should be particularly
controversial, unless I damaged something in the process of integrating
them with other recent changes.  the user's guide and release notes
have been updated as well to reflect the changes of interest to end
users.
- the body of load-library is now wrapped in a $pass-time with
  to show the time spent loading libraries separately from the time
  spent in expand.
    syntax.ss
- interpret now plays the pass-time game
    interpret.ss
- added compile-time-value? predicate and
  compile-time-value-value accessor
    syntax.ss, primdata.ss,
    8.ms, primvars.ms, root-experr*
- $pass-stats now returns accurrate stats for the currently timed
  pass.
    7.ss
- compile-whole-program and compile-whole-library now propagate
  recompile info from the named wpo file to the object file
  to support maybe-compile-program and maybe-compile-library in
  the case where compile-whole-{program,library} overwrites the
  original object file.
    compile.ss,
    7.ms, mat.ss, primvars.ms
- replaced the ancient and unusable bintar with one that creates
  a useful tarball for binary installs
    bintar
- generated Mf-install InstallBin (InstallLib, InstallMan) now
  correctly indirects through InstallPrefix if the --installbin
  (--installlib, --installman) configure flag is not present.
    src/configure
- removed definition of generate-procedure-source-information
    patch.ss
- guardian tconc cells are now allocated in generation 0 in the hope
  that they can be released more quickly.
    gc.c
- added ftype-guardian syntax: (ftype-guardian A) creates a new
  guardian for ftype pointers of type A, the first base field (or
  one of the first base fields in the case of unions) of which must
  be a word-sized integer with native endianness representing a
  reference count.  ftype pointers are registered with and retrieved
  from the guardian just like objects are registered with and
  retrieved from any guardian.  the difference is that the garbage
  collector decrements the reference count before resurrecting an
  ftype pointer and resurrects only those whose reference counts
  become zero, i.e., are ready for deallocation.
    ftype.ss, cp0.ss, cmacros.ss, cpnanopass.ss, prims.ss, primdata.ss,
    gc.c,
    4.ms, root-experr*
- fixed a bug in automatic recompilation handling of missing include
  files specified with absolute pathnames or pathnames starting with
  "./" or "..": was erroring out in file-modification-time with a
  file-not-found or other exception rather than recompiling.
    syntax.ss,
    7.ms, root-experr*, patch*
- changed inline vector-for-each and string-for-each code to
  put the last call to the procedure in tail position, as was
  already done for the library definitions and for the inline
  code for for-each.
    cp0.ss,
    5_4.ms, 5_6.ms
- the compiler now generates better inline code for the bytevector
  procedure.  instead of one byte memory write for each argument,
  it writes up to 4 (32-bit machines) or 8 (64-bit machines) bytes
  at a time, which almost always results in fewer instructions and
  fewer writes.
    cpnanopass.ss,
    bytevector.ms
- packaged unchanging implicit reader arguments into a single record
  to reduce the number of arguments.
    read.ss
- recoded run-vector to handle zero-length vectors.  it appears
  we're not presently generating empty vectors (representing empty
  groups), but the fasl format permits them.
    7.ss

original commit: 7be1d190de7171f74a1ee71e348d3e6310392686
2019-02-11 20:06:42 -08:00
Matthew Flatt
31b7c8fd7a add --disable-curses option
To support a more minimal build enviornment, offer the possibility of
building without "curses.h" and "libcurses" (which disables the
expeditor, although the expeditor's code is still included).

original commit: 9a17f73e6fc5e117c19333e15c6afb797dd6b08f
2018-10-22 19:38:08 -06:00
陈梓立
90362e220c Autoconfig, detect if X11 exist on Mac OS X (#333)
original commit: b4793db8362152b242d5694417f555efec0db81a
2018-07-17 10:40:33 -04:00
d7dcda9637 add an option --disable-x11
original commit: ab43608f22dc68497577ab527c782507144ef0e4
2018-07-01 20:13:18 +08:00
Andy Keep
59e6db7a61 Merge branch 'master' of github.com:cisco/ChezScheme
original commit: 1febe9b1a1e1cde4b7be8bc562153ee4b42afd8c
2017-10-14 00:00:19 -04:00
Andy Keep
b681ad9738 - Updated CSUG to replace \INSERTREVISIONMONTHSPACEYEAR with the current
month and year at the time of generation.
    csug.stex, copyright.stex
- Updated configuration to set machine types in the CSUG and release notes
  make files, and updated distclean target to remove these files.
    configure, makefiles/Makefile-csug.in (renamed from csug/Makefile),
    makefiles/Makefile-release_notes.in
      (renamed from release_notes/Makefile),
    makefiles/Makefile

original commit: d4fdb3e0c88c40cceeeeeb52032068408edc7a6e
2017-10-13 23:50:20 -04:00
dyb
820c74012c updated to handle the case when a submodule directory is missing.
configure

original commit: ebef2e8fea60ca9b5130b6f1ffe3371c02ac32c8
2017-10-12 22:51:39 -04:00
Peter Klein
16e8291539 Refactor windows installers and fix vcredist
- Separate 64 and 32 bit MSIs
- Add wix bundle to combine MSIs into single installer
- Use basic wix UI
- Use merge modules to install vcredist package
- Add script to locate vcredist merge modules
- Fix installer status text by adding WixUI_ErrorProgressText ref

Merge modules seems to be the preferred method for installing the
redistributable package, which should decrease the package size and
speed up installation. This commit also addresses a bug where the
installer does not work when VC redistributable is not already
installed.

The 32 and 64 bit components were split into separate MSIs because
Windows Installer only officially supports packages containing a
single architecture. A package bundle is then created containing both
MSIs so only a single file needs to be distributed.

There seemed to be no trivial way to get the path to the vcredist
merge modules bundled with visual studio so I added a script
(locate-vcredist.bat) that handles this. It will need to be updated in
the future for compatibility with newer VS platform toolsets.

Some paths and name were changed, here's a summary:

32-bit install path: C:\Program Files (x86)\Chez Scheme 9.4.1\
64-bit install path: C:\Program Files\Chez Scheme 9.4.1\
installer file name: ChezScheme.exe
installer product name: Chez Scheme 9.4.1 x64

original commit: a8867749df27db41ebbafeb0dc914e5e6680cf9e
2017-08-30 21:08:40 -04:00
Andy Keep
0d4c6b6f21 Merge branch 'master' into configure-cc
original commit: 33765fae75faf4a0ccc21f95416694999ce35f1d
2017-06-18 23:08:00 -04:00
Matthew Flatt
2d63f03442 support Windows build on Bash/WSL
original commit: 7e4782db08210cbacd1bbe46b3a5e166d8dbe20f
2017-05-02 08:25:09 -06:00
Mohamed Akram
d7fcd8e57b Add CC option to configure
original commit: 1a65f0bef4c2af6016c328f7f1151e6d10e342fa
2017-04-28 16:01:09 +04:00
Bob Burger
831ea8ad18 changed copyright year to 2017
7.ss, scheme.1.in, comments of many files

original commit: 06f858f9a505b9d6fb6ca1ac97234927cb2dc641
2017-04-06 11:41:33 -04:00
Kent Dybvig
adbb149cae updated configure to curl zlib 1.2.11
original commit: 8b70736169e3ba075776ff61968beb6106d80b1a
2017-02-13 22:53:04 -05:00
R. Kent Dybvig
c15ac6d328 Merge pull request #66 from fitzgen/allow-flags-to-pass-through-configure
Allow CPPFLAGS, CFLAGS, and LDFLAGS to be passed through configure
original commit: f6b01a44b5ff8d71a83b5769c9948c357a64ccde
2016-06-13 14:38:36 -04:00
Bob Burger
39410c8447 - Cygwin is now used on Windows, updated mats, eliminated unused killme
- added a cast to eliminate warnings in c/number.c
- fixed bug in Windows version of directory-separator-predicate in s/6.ss when path-* procedures are passed a path that is not a string.
- fixed bug in s/cp0.ss on Windows with $foreign-wchar?.
- fixed spelling of non-existent

original commit: dd1b741f7572cb0d5a6210c7c796aee7c4026040
2016-06-10 10:07:07 -04:00
Nick Fitzgerald
9bdb9b620e Allow CPPFLAGS, CFLAGS, and LDFLAGS to be passed through configure
This changes the configure script from unconditionally assigning CPPFLAGS,
CFLAGS, and LDFLAGS to the empty string, to only assigning them to the empty
string if they are unset.

original commit: 5d52b0b10f55d489c2ad2e681361a3b8394a043c
2016-06-04 18:30:31 -07:00
dybvig
f5940acbc0 - updated to curl stex version 1.2.1
configure

original commit: 466349bae54a09010b8430a3b9853b96b06916a7
2016-05-12 23:25:28 -07:00
Michael Lenaghan
2fceac2826 Fix typo.
original commit: 207e5d295a8b3709ffb55d5998f61cc9fa5b9e7d
2016-05-12 19:47:05 -04:00
Andy Keep
4582ed39d1 Added CPPFLAGS, CFLAGS, and LDFLAGS to the configuration options to support
machines with libraries and header files installed in alternate locations on
unix-like operating systems.
  configure, workarea, checkin,
  c/Mf-base, c/Mf-*

Added support for building from a directory that is not a git checkout in order
to support creating release source packages.
  configure

original commit: 41d94b0793997e3b90c10d6d28aaa4e2d43857cc
2016-05-11 19:23:58 -04:00
Andy Keep
a80f0fb0b3 - added custom install options. workarea creates an empty config.h,
and configure creates a config.h that sets the default scheme heap
  path and scheme-script name based on the actual configuration.
    configure, newrelease, workarea, checkin,
    c/Mf-base, scheme.c, main.c,
    Mf-install.in
- renamed the installed example directory from lib to examples.
    Mf-install.in,
    scheme.1.in
- added force option to gzip during man page install to prevent gzip from
  asking for permission to overwrite existing man page files.
    Mf-install.in
- removed ~/lib/csv%v/%m from the default scheme heap path on unix-like
  systems.  documented inclusion of %x\..\..\boot\%m in the Windows
  default scheme heap path.
    main.c,
    use.stex
- added new configuration options: --installbin, --installlib,
  --installschemename, --installpetitename, and --installscriptname.
    configure
- updated the example library link to the nanopass framework.
    CONTRIBUTING.md
- now cleaning up petite.1 and scheme.1 left behind by make install
    Makefile-workarea.in, checkin
- now removing workarea after cleaning csug and release_notes so
  Mf-stex (included from csug/Makefile and release_notes/Makefile)
  doesn't complain trying to determine the machine type.
    Makefile.in
- added installsh support for --ifdiff so the csug make file can use it
  for the install target.
    installsh,
    csug/Makefile
- added instructions for building (cross-compiling) a boot file for
  a supported machine type for which a boot file is not built by default.
    BUILDING

original commit: df4194c83a9e67d1ec20165fc3e2def4ed8e8986
2016-05-06 18:30:06 -04:00
Andy Keep
bf23095a18 fixed LOG conflict
original commit: 40c15413e3803801146c15fa4010fde62ea7ede3
2016-05-06 16:40:42 -04:00
dybvig
9c1721c466 - compile-whole-program and compile-whole-library now copy the hash-bang
line from the wpo file (if it has one) to the object file.
    compile.ss,
    7.ms
- stex is now a submodule.  csug/Makefile and release_notes/Makefile
  set and use the required Scheme and STEXLIB variables accordingly.
  they default the machine type to a6le, but this can be overridden
  and is by the generated top-level Makefile.  the generated top-level
  Makefile now has a new docs target that runs make in both csug and
  release_notes, and an updated distclean target that cleans the same.
  the annoying csug Makefile .fig.pdf rule redefinition is now gone.
  copyright.stex and csug.stex now list May 2016 as the revision month
  and date; this will have to be updated for future releases.
    configure, makefiles/Makefile.in,
    csug/Makefile, copyright.stex, csug.stex,
    release_notes/Makefile
- rebuilt the boot files

original commit: 4bd78a692dd4ca2f88af5d404fd0993a2d141e7b
2016-05-04 20:35:38 -04:00
A. Green
9b5d8b6363 linebreak.
original commit: bb310256f72f5928182ac46ea26bb970945d429c
2016-04-29 04:52:17 -06:00
A. Green
8fefc9a969 fix typo in help printout.
original commit: 9428708883177deea9f31bd85d7867ca9be04135
2016-04-29 03:49:01 -06:00
A. Green
06b9f8c6a8 refinement to combinatorylogic's changes, adding --installlib option to configure.
original commit: f1c1ba8b94e2ff150f839e4a551fa1b7512f743e
2016-04-29 00:35:37 -06:00
combinatorylogic
ed60710793 Using install prefix in a default heap path; Forcing gzip rewrite for man pages
original commit: 8e87ffbd2e4a2f62f7157228c002aba6d6de5bc6
2016-04-28 11:55:03 +01:00
dybvig
0187d2bf4e - make test now prints the actual relative path to summary in the
"check summary" message, whether invoked from the top-level directory
  or from the workarea.
    Makefile.in, Makefile-workarea.in
- configure now just uses cat to copy Makefile-workarea.in to $w/workarea,
  since the file is presently the same regardless of the configuration.
    configure

original commit: 1d438978dfedef9a47839b3ee302196aa5d8eda1
2016-04-27 22:26:08 -04:00
dyb
f7366215d8 updated configure to initialize submodules if not cloned recursively
original commit: b437b6ae6c59d1102bd2037ef10379e3a716b53d
2016-04-26 10:43:19 -04:00
dyb
1356af91b3 initial upload of open-source release
original commit: 47a210c15c63ba9677852269447bd2f2598b51fe
2016-04-26 10:04:54 -04:00