UML - GCC program

2019-10-18 Thread Angelmarauder
Hello community,

I don't know the correct format for this email, so I'll give a summary
according to https://gcc.gnu.org/contributewhy.html and wait for
responses!

"what you are working on"

I am creating a program to link the draw.io platform with a c++
compiled gcc output
to allow for:

1. auto-documentation and graphical diagrams (class, sequence, etc.)
2. alternatively create basic c++ code based on diagram creation

"give occasional reports of how far you have come"

I have begun planning!  I have my own personal Trello for now but I
will be expanding my over time.

"how confident you are that you will finish the job"

This is my senior project for my BS Software Engineering.  I'm hoping
to eventually commercialize.
Since it is a requirement to finish the project, minimal functionality
will be required.

Sincerely,
Angelmarauder


Technical Feasibility.odt
Description: application/vnd.oasis.opendocument.text


Fixing cvs2svn branchpoints

2019-10-18 Thread Joseph Myers
As mentioned at the Cauldron, I'm looking at finding better branchpoints 
for the cases in the GCC repository where cvs2svn messed up identifying 
the parent branch and commit on which a branch was based, so that affected 
branches can be reparented as part of moving to git, since messed-up 
branchpoints are actually confusing in practice when looking at old 
branches.

An idiomatic branch in SVN would start with a commit that just copies one 
commit of one branch to another branch, with no further changes.  In many 
cases it's not possible to achieve that through reparenting because there 
is no commit on any parent branch exactly corresponding to the first 
commit on the cvs2svn-generated branch.  However, it's still possible to 
find a much better approximation than cvs2svn did in some cases.  (There 
are also cases where cvs2svn found a good branchpoint, but represented the 
branch-creation commit in a superfluously complicated way, replacing lots 
of files and subdirectories by copies of different revisions.  That 
doesn't really matter for conversion to git, however, since git's data 
structures don't say anything about where a particular subdirectory was 
copied from, just the tree hash and the parent commit.)

I'm using heuristics to see if a particular branch has a suspicious 
branchpoint.  First, if there is a branchpoint tag I take that as the best 
estimate of what the tree should look like at the branchpoint commit on 
the parent branch; otherwise, I take the first commit on the branch as the 
best estimate of that.  Then, I consider a branchpoint not to be 
suspicious if the only diffs between the tree at the parent commit and the 
tree estimated to start the branch to be file deletions, and, if there was 
no branchpoint commit, file additions.

(There are several reasons why the creation of a branch might involve file 
deletions.  Some look like CVS glitches where it simply failed to create 
the branch in particular ,v files; some may be cases where the person 
created the branch only for certain subdirectories, deliberately; some 
look like cases where ,v files for separately developed subdirectories, 
e.g. libjava, got moved into the GCC CVS repository at some point, so 
resulting in the appearance of those subdirectories being deleted on 
creation of branches before they were moved into place.  File additions at 
branch creation look more like an artifact of how cvs2svn handles cases of 
a file first added on trunk after a branch was created, then backported to 
that branch.)

If the branchpoint is suspicious (54 are, out of 135 branches in /branches 
as of r105925, the last cvs2svn-generated commit), I then look for an 
alternative non-suspicious branchpoint, which might be either on the same 
parent branch currently used, or on a different one chosen by some 
heuristics.  Because pretty much all normal GCC commits change file 
contents (modifying a ChangeLog file, if nothing else), any candidate 
parent that is non-suspicious, and thus does not involve any file content 
differences when compared with the branchpoint commit or first commit on 
the branch, should be very close to being the right parent commit.

Here is a list of reparentings I suggest for 16 of those 54 branches, 
including in particular the cases of egcs_1_00_branch and gcc-3_2-branch 
that were noted on IRC to have bad branchpoints at present; some are only 
small changes, some are much more major fixes.  I expect I can find 
reparentings for some of the rest with more investigation and improved 
heuristics or hints for those heuristics, while others may well already be 
essentially the right branchpoint despite file content changes being 
present in the first commit.  (Two of the rest do have reparentings 
suggested by my script, but they need more careful investigation because 
of file content mismatches between the branchpoint tags and the first 
commit on the branch.)

The first two columns after REPARENT: list the SVN path of the branch, and 
the revision number of the first commit on it (the one that should be 
reparented).  The next two list the suspicious parent (that is, the branch 
and revision from which cvs2svn generated the copy that created the 
top-level /branches/whatever directory for the branch, along with further 
changes in the commit to fix up files and subdirectories in that copy to 
have the right tree contents).  The final two columns list the proposed 
new parent branch and revision on that branch.  In all cases, the tree 
content is expected to be left as generated by cvs2svn; it's simply the 
commit parent that should be changed in git.

REPARENT: /branches/GC_5_0_ALPHA_1 27860 /trunk 27852 /trunk 27855
REPARENT: /branches/csl-3_3_1-branch 70143 /trunk 60111 
/branches/gcc-3_3-branch 70142
REPARENT: /branches/csl-3_4-linux-branch 90110 /trunk 75991 
/branches/gcc-3_4-branch 90109
REPARENT: /branches/csl-3_4_0-hp-branch 80843 /trunk 75991 
/branches/gcc-3_4-branch 80842
REPARENT: /branches/csl-

Re: New GCC mirror from Rabat, Morocco

2019-10-18 Thread Sami Ait Ali Oulahcen
A kind reminder.



Sent from my iPhone

> On Oct 6, 2019, at 01:01, Sami Ait Ali Oulahcen  wrote:
> 
> Hi,
> 
> We'd like to start mirroring the GCC.
> 
> URLs:
> http://mirror.marwan.ma/gcc/
> https://mirror.marwan.ma/gcc/
> rsync://mirror.marwan.ma/gcc/
> Location: Rabat, Morocco
> Contact:  Sami Ait Ali Oulahcen (noc{at}marwan{dot}ma)
> 
> Please let us know of the central rsync address, and the recommended pull 
> frequency.
> 
> Regards,
> 
> Sami



gcc-8-20191018 is now available

2019-10-18 Thread gccadmin
Snapshot gcc-8-20191018 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/8-20191018/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 8 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-8-branch 
revision 277194

You'll find:

 gcc-8-20191018.tar.xzComplete GCC

  SHA256=d283e08654366645ed19848fb746aec8f6b683c7c4fb772f9a28640972fe8d2b
  SHA1=cc638a14de801ed074037be84eda7f5fd84505bf

Diffs from 8-20191011 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-8
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


Re: Improving GCC's line table information to help GDB

2019-10-18 Thread Alexandre Oliva
On Oct 16, 2019, Luis Machado  wrote:

> It seems, from reading the blog post about SFN's, that it was meant to
> help with debugging optimized binaries.

Indeed.  Getting rid of the dummy jumps would be one kind of
optimization, and then SFN might help preserve some of the loss of
location info in some cases.  However, SFN doesn't kick in at -O0
because the dummy jumps and all other artifacts of unoptimized code are
retained anyway, so SFN wouldn't have a chance to do any of the good
it's meant to do there.

-- 
Alexandre Oliva, freedom fighter  he/him   https://FSFLA.org/blogs/lxo
Be the change, be Free!FSF VP & FSF Latin America board member
GNU Toolchain EngineerFree Software Evangelist
Hay que enGNUrecerse, pero sin perder la terGNUra jamás - Che GNUevara