chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] scheme-bytestructures, multi-implementation libraries


From: John J Foerch
Subject: [Chicken-hackers] scheme-bytestructures, multi-implementation libraries
Date: Sat, 16 Jul 2016 12:07:36 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Hello,

I'm working on porting a library called scheme-bytestructures to
chicken, and have had thoughts and discussions about the best way to
structure multi-implementation libraries like this, that I wanted to
bring to the mailing list for possible bearing on CHICKEN 5.

 Upstream repo: https://github.com/TaylanUB/scheme-bytestructures

 Clone with chicken support:
   https://github.com/retroj/scheme-bytestructures/tree/chicken

I am interested for it to be possible that the upstream repo can support
chicken scheme without the need of a second git repo - one stop
shopping.

Currently my clone with chicken support has chicken's special files
(.meta, .setup, .release-info) in the project root, and .setup performs
(change-directory "chicken") at the start of the build process.  Having
implemenation-specific files in the project root though, prevents the
merging of chicken support into upstream.  To be a good citizen, so to
speak, I feel that chicken's special files should all be together in the
chicken/ subdirectory, not cluttering the project root.

There does not seem to be a way to achieve this at present.  The one
possility that seemed like it might work was to use the 'files'
declaration in the .meta file to list all needed files.  However, these
would either need to be listed as relative paths using "../" or paths
through a symlink.  The former case would lead to incorrect paths for
chicken-install, and the latter case would not work because git hosts
like github will not resolve urls through symlinks.

I think it would be good for chicken's spread and adoption in the scheme
world if its install system supported this case of multi-implementation
libraries, where the chicken-specific files can all be in a
subdirectory.  To that end, I propose that some declaration could be
added to .release-info that would tell henrietta-cache of the path in
which to find .meta and .setup, and in which to build the extension.

Peter mentioned that Felix is currently revising the extensions build
system for CHICKEN 5.  I would love to discuss this use case further
here in hopes of having a nice solution for it in CHICKEN 5.

Thank you,

--
John Foerch




reply via email to

[Prev in Thread] Current Thread [Next in Thread]