- rebuild and commit directory structure $Parrot_Root/imcc
- move files from languages/imcc to ../imcc [1]
- adapt Makefiles
- include imcc source files except main.c into libparrot
[1] info cvs
* Adding and removing:: Adding/removing/renaming files...
* Moving files:: Moving and renaming files
* Outside:: The normal way to Rename
The Normal way to Rename
------------------------
The normal way to move a file is to copy OLD to NEW, and then issue
the normal CVS commands to remove OLD from the repository, and add NEW
to it.
$ mv OLD NEW
$ cvs remove OLD
$ cvs add NEW
$ cvs commit -m "Renamed OLD to NEW" OLD NEW
or better - including the comments WRT "commit -r rev":
$ cvs commit -m "Renamed OLD to NEW" -r $next_rev OLD NEW
Is there a better way to move the files?
Does someone have a script for that kind of stuff?
Thanks,
leo
> Imcc is still lacking full integration inside Parrot. To accomplish
> this, we would need these steps:
>
> - rebuild and commit directory structure $Parrot_Root/imcc
> - move files from languages/imcc to ../imcc [1]
> - adapt Makefiles
> - include imcc source files except main.c into libparrot
Almost. IMCC's getting integrated with Parrot. All the core sources should
be in one spot, so either move the current top-level C code to core/ and
put the IMCC stuff in there as well (in core/ directly, not core/imcc/) or
move all the IMCC files to the top level directory (with the header files
in include/parrot) The makefile needs to be integrated into the top-level
makefile. (Again, in the top-level. I don't want a separate makefile for
IMCC)
There's not much reason to have IMCC split out, so I'd rather not.
Dan
> The normal way to move a file is to copy OLD to NEW, and then issue
> the normal CVS commands to remove OLD from the repository, and add NEW
> to it.
>
> $ mv OLD NEW
> $ cvs remove OLD
> $ cvs add NEW
> $ cvs commit -m "Renamed OLD to NEW" OLD NEW
> or better - including the comments WRT "commit -r rev":
> $ cvs commit -m "Renamed OLD to NEW" -r $next_rev OLD NEW
>
> Is there a better way to move the files?
The disadvantage with the method that you describe is that the revision
history of the files is lost.
An alternative is that someone with shell repository access on cvs.perl.org
moves the files around in the repository, which has the advantage of
preserving the revision history in the new files, but the disadvantage
of breaking the repository for anyone attempting to pull out historical
snapshots.
I'm not sure if the suggested solution to this is to copy the files inside
the repository (rather than moving them) and then use
cvs -f remove OLD
to delete the files in their old location, which would mean CVS is still
able to create valid historical snapshots.
(valid in as much as they will compile - they won't be perfect because
extra files will appear in the new locations, as if they had been
committed there since the beginning of time, rather than appearing that
at the time of the move)
CVS sucks for this sort of stuff.
Nicholas Clark
> On Mon, 8 Sep 2003, Leopold Toetsch wrote:
>
>
>>Imcc is still lacking full integration inside Parrot. To accomplish
>>this, we would need these steps:
>>
>>- rebuild and commit directory structure $Parrot_Root/imcc
>>- move files from languages/imcc to ../imcc [1]
>>- adapt Makefiles
>>- include imcc source files except main.c into libparrot
>>
>
> Almost. IMCC's getting integrated with Parrot. All the core sources should
> be in one spot, so either move the current top-level C code to core/ and
> put the IMCC stuff in there as well (in core/ directly, not core/imcc/) or
> move all the IMCC files to the top level directory (with the header files
> in include/parrot)
Could be done too (with some file renaming i.e. jit.c) but imcc has its
own test structure and its own TestCompiler.pm. OTOH pd07 has something
about subsystem - they should be separate. As imcc is the
assembler/compiler subsystem I'd rather have it in a separate directory.
> ... The makefile needs to be integrated into the top-level
> makefile. (Again, in the top-level. I don't want a separate makefile for
> IMCC)
Nor do I.
> There's not much reason to have IMCC split out, so I'd rather not.
pdd07, file name clashes, t/*
> Dan
leo
Anyway, we're more than happy to do this once in a while.. We just
require detailed instructions as to what goes where.
-R (your friendly cvs monkey) (ook ook)
> The method described below is generally what we do. Not perfect, but
> better than nothing, or just straight removals.
> Anyway, we're more than happy to do this once in a while.. We just
> require detailed instructions as to what goes where.
I'm for a move of $ROOT/languages/imcc/* to $ROOT/imcc/*
Dan does (again :) disagree, and wants files in $ROOT - but
- imcc has its own test structure
- there are filename collisions (i.e. jit.c)
- sub-system should be separate according to pdd07_codingstd.pod
If the location is fixed, I can prepare the Makefile changes beforehand
and then off we go ...
> -R (your friendly cvs monkey) (ook ook)
Thank you for keeping the infra structure running. Ook!
leo
> Dan does (again :) disagree, and wants files in $ROOT - but
I'll let you two hash it out. Your reasons sound logical and sensible
to me. Clogging up the $ROOT is problematic long term and makes
things more difficult. I like the idea of putting related things in
sub directories.
> If the location is fixed, I can prepare the Makefile changes beforehand
> and then off we go ...
We should probably wait until after 0.0.11 for this, to minimize
disruption.
> > -R (your friendly cvs monkey) (ook ook)
> Thank you for keeping the infra structure running. Ook!
Oook! Oook! Banana! Banana1
> Dan Sugalski wrote:
>
> > On Mon, 8 Sep 2003, Leopold Toetsch wrote:
> >
>
> >> Imcc is still lacking full integration inside Parrot. To accomplish
> >> this, we would need these steps:
>
> >>
> >>- rebuild and commit directory structure $Parrot_Root/imcc
> >>- move files from languages/imcc to ../imcc [1]
> >>- adapt Makefiles
> >>- include imcc source files except main.c into libparrot
> >>
> > Almost. IMCC's getting integrated with Parrot. All the core sources
> > should be in one spot, so either move the current top-level C code
> > to core/ and put the IMCC stuff in there as well (in core/ directly,
> > not core/imcc/) or move all the IMCC files to the top level
> > directory (with the header files in include/parrot)
>
>
> Could be done too (with some file renaming i.e. jit.c) but imcc has
> its own test structure and its own TestCompiler.pm. OTOH pd07 has
> something about subsystem - they should be separate. As imcc is the
> assembler/compiler subsystem I'd rather have it in a separate
> directory.
I think the same way. Imcc is a seperate subsystem. Clobbering the
root of the source directory is not good, and moving everything to
core/ neither. In the long term more code from the root directory
should move to subsystems like packfile, mem etc.
Furthermore the *.h should not get blindly copied to include/parrot,
some of the imcc header-files are private to the imcc subsystem (like
imcparser.h). These files should stay in the subsystem
directory. PDD07 calls them *_private.h.
> > ... The makefile needs to be integrated into the top-level
> > makefile. (Again, in the top-level. I don't want a separate makefile
> > for IMCC)
>
>
> Nor do I.
io is also a subsystem, but the build is controlled by the
root-makefile.
> > There's not much reason to have IMCC split out, so I'd rather not.
>
> pdd07, file name clashes, t/*
>
bye
boe
--
Juergen Boemmels boem...@physik.uni-kl.de
Fachbereich Physik Tel: ++49-(0)631-205-2817
Universitaet Kaiserslautern Fax: ++49-(0)631-205-3906
PGP Key fingerprint = 9F 56 54 3D 45 C1 32 6F 23 F6 C7 2F 85 93 DD 47
A better way is to use Meta-CVS:
$ mcvs mv OLD NEW
$ mcvs commit -m "Renamed OLD to NEW"
As Dan now seems to agree, that imcc (and other files) should go into
its own subdirectory it would be fine, it we could the move be done.
There are AFAIK only 5 things that need adjustment after the move:
- config/gen/makefiles/root.in: IMCC_DIR in line 13
- imcc/TestCompiler.pm: 2 paths refering to root marked XXX
- config/gen/makefiles.pl: s!languages/imcc!imcc!
- config/gen/cflags.pl: toss the line regarding imcc/CFLAGS
- MANIFEST: s!languages/imcc!imcc!
Building/testing works fine with these changes done.
TIA,
leo