#11688 closed submission (fixed)
NEW: lang/gambit-c 4.0b20
Reported by: | arto.bendiken@… | Owned by: | pmq@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | gambit, gambit-c, scheme | Cc: | arto.bendiken@…,pmq@… |
Port: |
Description
I was surprised that Gambit-C wasn't included yet, so I whipped up a portfile for it.
Gambit is one of the more mature and fast Scheme compilers available. From the portfile description:
Gambit-C includes a Scheme interpreter and a Scheme compiler which can be used to build standalone executables. Because the compiler generates portable C code it is fairly easy to port to any platform with a decent C compiler. The thread system is very efficient and can support millions of concurrent processes.
The Gambit-C system conforms to the R4RS, R5RS and IEEE Scheme standards. The full numeric tower is implemented, including: infinite precision integers (bignums), rationals, inexact reals (floating point numbers), and complex numbers.
I'm also attaching a log file which shows a successful compile & install as well as the list of files this port installs.
Attachments (2)
Change History (15)
comment:1 Changed 18 years ago by roederja
comment:2 Changed 18 years ago by arto.bendiken@…
It would indeed be good to have [{{--enable-gcc-opts}}} by default, in principle. However, it enables extremely expensive optimizations which quadruple the compilation time and need a machine with at least 2 GB of memory to compile without bringing the host to a grinding halt. Hence I made it a variant for purely practical reasons.
comment:3 Changed 18 years ago by arto.bendiken@…
As for the other variants: the shared
could perhaps be a default variant - is there a MacPorts general policy on whether apps be built with shared libraries or not? I've always compiled Gambit without --enable-shared
, which is why I left it optional.
The {{{profile]}} and {{{debug}} are special cases that I don't think should be compiled in by default.
comment:4 Changed 18 years ago by pipping@…
those reinplacements are static. hence, they should be made into a patch instead.
comment:5 Changed 18 years ago by arto.bendiken@…
In addition to configure.ac
, there are quite a few makefiles to patch:
$ find . -name makefile.in ./bin/makefile.in ./doc/makefile.in ./examples/distr-comp/makefile.in ./examples/makefile.in ./examples/pi/makefile.in ./examples/pthread/makefile.in ./examples/ring/makefile.in ./examples/tcltk/makefile.in ./examples/web-repl/makefile.in ./examples/web-server/makefile.in ./examples/Xlib-simple/makefile.in ./gsc/makefile.in ./gsi/makefile.in ./include/makefile.in ./lib/guide/images/makefile.in ./lib/guide/makefile.in ./lib/makefile.in ./makefile.in ./misc/makefile.in ./tests/makefile.in
It's going to take a comparatively large set of patches to do the equivalent of the < 10 simple reinplace lines in the portfile. Using a patch is also likely to require more maintenance for upcoming versions. Is a patch format really beneficial? The reinplace approach just seems much simpler and more future-proof.
comment:6 Changed 18 years ago by pmq@…
Cc: | pmq@… added |
---|
Hi guys, It looks good to me, apart from the tiny fact that I personally don't like having that much variants, so I'd probably kill the profile and debug ones, as these are special cases. As for the patch issue, I've to say I'd leave the reinplace, perhaps only changing it to an fs-traverse instead of an exec find.
comment:7 Changed 18 years ago by arto.bendiken@…
I think you're right about the debug variant being unnecessary; however, I'd prefer to keep the profile variant as it's very useful for benchmarking purposes and I wouldn't want to force people to do a fully custom compile just to accomplish what switching between installed non-variant and variant versions could do very easily.
I wasn't familiar with fs-traverse -- is there documentation for it? If not, I'll just grep the existing Portfiles for examples...
I will submit an updated Portfile, removing the debug variant, soon (a new Gambit-C release already happened during our deliberations, too ;-))
comment:8 Changed 18 years ago by pmq@…
Owner: | changed from macports-dev@… to pmq@… |
---|
Sounds fine to me! You can leave out the fs-traverse stuff, as I don't know if the version in the current released MP works or not. We'll switch later.
Will commit when you attach the new version.
Changed 18 years ago by arto.bendiken@…
Changed 18 years ago by arto.bendiken@…
Attachment: | install.log added |
---|
comment:9 Changed 18 years ago by arto.bendiken@…
New portfile attached, with the following changes:
- Updated for 4.0b22, the newest version as of right now.
- Removed the
shared
anddebug
variants. - Converted tabs to spaces in the portfile per MacPorts mailing list discussions on the topic.
- Verified that it still builds correctly (updated install.log attached).
Enjoy! :-)
comment:10 Changed 18 years ago by pmq@…
Resolution: | → fixed |
---|---|
Status: | new → closed |
Committed, thanks!
comment:11 Changed 17 years ago by jmpalacios (Juan Manuel Palacios)
Milestone: | New Ports → Port Submissions |
---|
Milestone New Ports deleted
comment:12 Changed 16 years ago by jmroot (Joshua Root)
Type: | enhancement → submission |
---|
comment:13 Changed 16 years ago by (none)
Milestone: | Port Submissions |
---|
Milestone Port Submissions deleted
Are yo sure that some of the variants like optimize shouldn't be the default ?