[gambit-list] Bootstrapping from the Gambit github repo

Mikael mikael.rcv at gmail.com
Thu Apr 12 16:53:31 EDT 2012


While I believe you considered this already - so the issue with uploading
these c files all the time, is that the total repo, including any clones of
it made, would grow in size very fast, because a great number of versions
of those .c files would be in the version history.

Does Git perhaps have some kind of "permanent unlimited erase" feature
where you can actually remove file commits completely (from all the repo
incl its history)? I'd suppose it does.

Though, for this to be meaningful, Git would require to propagate those
erases (to github from your local machine and so on) on git pull/push. This
could or could not exist, at least it's by far not an unreasonable feature
to exist, I suppose?

If all this exists, you could make a script that would go through all
versions of the entire git repo and erase all of those .c files in that
fashion, except for the very most recent version (so cloners always get the
newest set) and those that belong to very major Gambit versions (like,
N.N.0:s or so) (so people can always have old Gambit versions readily
compilable).

Checked on #git, they said this can be done with git log filename and
filter-branch  , and said there's clear examples in man filter-branch .

Brgds

Den 12 april 2012 22:46 skrev Marc Feeley <feeley at iro.umontreal.ca>:

> I have been looking into the issue of bootstrapping Gambit directly from
> the sources on github.  Currently this is not possible.  The latest .tar.gz
> release (obtained from the Gambit wiki) needs to be built, and then the
> latest commits must be pulled and compiled in a final "make".  This process
> confuses novice users and is generally a pain.  It would be much better if
> a clone of the github repository gave all the required pieces (as is the
> case for most other projects on github).
>
> This "direct bootstrap" is not possible because the .c files generated by
> the Gambit compiler from the .scm files when compiling itself are not
> stored on the github repository.  The generated .c files are very large and
> including all versions would make the repository considerably larger.
>
> I am proposing to include the generated .c files in the repo, but only
> commit changes occasionally.  Basically, every time a new release would be
> published (i.e. a .tar.gz with a new version number) the new .c files would
> be committed to the repository.
>
> I have put on github a mockup of the sources to demonstrate how this would
> work.  The repo is at https://github.com/feeley/test9 .
>
> To build the mockup from github, start with these commands:
>
>  git clone git at github.com:feeley/test9.git
>  cd test9
>  make bootstrap
>
> This will create the gsc-boot executable (the Gambit compiler which can be
> used to recompile the Gambit .scm files from scratch should they be
> changed, or new versions pulled from the repo).  Now we can remove the
> (possibly stale) generated .c files obtained from the repo and regenerate
> the correct .c files with the new gsc-boot:
>
>  make bootclean
>  make
>
> When commiting changes to the repo, two make targets can be used:
>
>  make commit
>
> when the generated .c files should not be added to the repository, and
>
>  make commit-major
>
> when the generated .c files should be added to the repository (typically
> when a new release is created).
>
> I would be interested in having some feedback on this change before going
> ahead with them on the actual Gambit source code.
>
> Marc
>
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20120412/f8cf660b/attachment.htm>


More information about the Gambit-list mailing list