Re: GCC 4.0 Status Report (2005-02-03)

2005-02-21 Thread Matt Rice
sorry for the cross-posting but this proposal will
require some synergy between the three projects

> * Project Title
Frameworks for GNU Toolchain

> * Project Contributors
Matt Rice

> * Dependencies
Framework support in libc/bfd/binutils

> * Delivery Date
gcc portion is done, but blocked by the above.

> * Description
>  What will you be doing?

[GCC]
Enabling the existing target framework code for darwin
for other platforms,
which adds a new header search mechanism for the
preprocessor
and passes options to ld analogous to -L and -l but
with a different library search mechanism

2 new options would be added to gcc, -F and -framework

-F is a combination of -I and -L which requires a
specific directory structure,

for example #include 

a simple comparison of the difference between the
header search mechanism
with -I/adir 
/adir/foo/foo.h

with -F/adir
/adir/foo.framework/Headers/foo.h

-framework is not used by gcc other than to pass to
the linker, along which -F
which is also used for searching for library files,

[Binutils]

so when given the options "-F/adir -framework foo"
ld will look for /adir/foo.framework/foo
if "foo" is a symlink it will attempt to get the
realpath() of the file
the symlink should be inside the "foo.framework"
directory or a subdirectory of it.

for example "foo.framework/foo -> Versions/2/foo"

this creates a versioning method so that different
binaries can be linked to different versions
of a framework.

this will create an entry much like DT_NEEDED 
to "foo.framework/Versions/2/foo

[1]: the ELF docs say:
"If a shared object name has one or more slash (/)
characters anywhere in the name, such as /usr/lib/lib2
or directory/file, the dynamic linker uses that string
directly as the path name. If the name has no slashes,
such as lib1, three facilities specify shared object
path searching."

which means it can't be used to search for a library
linked relatively to a search path.

making a DT_FRAMEWORK_NEEDED entry of
"foo.framework/Versions/2/foo"


[Glibc]

will apply the to the DT_FRAMEWORK_NEEDED entry to
framework search path (analogous to LD_LIBRARY_PATH
etc..)
looking for /adir/foo.framework/Versions/2/foo



more information on frameworks available at

http://developer.apple.com/documentation/MacOSX/Conceptual/BPFrameworks/index.html

>  What parts of the compiler will be modified?

machine-specific code enabling parts of
gcc/config/darwin-c.c for other platforms
adding specs for new ld options


>  What will the benefits of your change be?  (Be
specific -- for
>  example, if you will be improving code quality,
indicate what kind
>  of code, and, if possible, how great the
improvement will be.)

be able to use a relocatable self contained directory
which both shared library and header files
with simpler usage than lots of -I/-L or symlinks,
easy cp -R installation and a shared library
versioning mechanism.

>  What risks do you foresee?  (If you say "none",
you'll be asked to
>  resubmit...)  What will you be doing to mitigate
those risks? 

gcc:
 sending options to ld it doesn't understand,
 messing up the existing header search path.





__ 
Do you Yahoo!? 
Yahoo! Mail - Easier than ever with enhanced search. Learn more.
http://info.mail.yahoo.com/mail_250


Re: Updated Sourceware infrastructure plans

2024-04-18 Thread Matt Rice via Gcc
On Thu, Apr 18, 2024 at 5:38 PM Frank Ch. Eigler  wrote:
>
> Hi -
>
> > [...]  I suggest that a basic principle for such a system is that it
> > should be *easy* to obtain and maintain a local copy of the history
> > of all pull requests.  That includes all versions of a pull request,
> > if it gets rebased, and all versions of comments, if the system
> > allows editing comments.  A system that uses git as the source of
> > truth for all the pull request data and has refs [...]
>
> Do you know of a system with these characteristics?
>
> - FChE

The closest thing I know of which may have these characteristics is
alibaba's AGit-Flow described here:
https://git-repo.info/en/2020/03/agit-flow-and-git-repo/
It actually sends pull-requests through the git protocol using a
custom proc-receive hook.

I'm a bit uncertain how code-review comments are handled in their system,
And it isn't exactly something which can just be used off-the-shelf,
AFAIK their server
side implementation hasn't been released.

I had written a prototype-worthy implementation of the server-side git
hook here.
It basically allows sending a pull-request through git push, along
with a cover letter.
But i've never really used it in the full PR review cycle beyond that.

https://github.com/pullreqr/pullreqr_githook

But protocol-wise IMO it seems like a good basis for building a system
with these characteristics to me.


Re: On pull request workflows for the GNU toolchain

2024-09-20 Thread Matt Rice via Gcc
On Thu, Sep 19, 2024 at 3:52 PM Joseph Myers via Gdb  
wrote:
>
> 1. Introduction
>
> This message expands on my remarks at the Cauldron (especially the
> patch review and maintenance BoF, and the Sourceware infrastructure
> BoF) regarding desired features for a system providing pull request
> functionality (patch submission via creating branches that are then
> proposed using some kind of web interface or API, with a central
> database then tracking the status of each pull request and review
> comments thereon automatically),

I wasn't at Cauldron, but

I just wanted to say that a lot of the web-based interfaces (git-lab,
github, gitea, gogs, etc) for providing pull request functionality
pre-date the existence of git-protocol features that also allow you to
implement the pull request type behavior, the git proc receive hook
https://git-scm.com/docs/githooks#proc-receive
can be used to implement a pull-request style workflow without the web
interface. This is somewhat going against the grain,
and has a less developed ecosystem of clients/servers/hosting
resources, I haven't kept up to date with what tools are actually
available,
last I looked though the only tool I knew of using it was
https://git-repo.info/en/ for the client, and I written a prototype
implementation using the hook as a server
(as far as I know the only other server tools using this are the
proprietary codeup.aliyun which might be internal to alibaba?).

To me though it is nice being able to edit the PR cover letter
directly in the editor, and do the pull-request using command line
tools.
What draws me to this however, is that it allows me to set up an
in-house review process using the same set of tools that eventually
feeds into upstream while mirroring the CI architecture locally.  That
is the dream anyway and in my opinion represents the style
of pull request workflow we should be aiming for if we want something
ideal.  Anyhow, IMO a big reason why all of these workflows are so
centralized
is just that they are going outside the git protocol.  To me the work
that has been done seems promising as a proof of concept distributed
pull request system,
and what it is probably lacking is putting an actual web-based
interface on top of the git protocol based design and a lot of spit
and polish.

At least to me the whole sourceware ecosystem feels like an ideal
candidate for this, since it is much more common to have ports in
progress to unfinished or unreleased instruction sets,
than would happen with almost any other piece of software. So there is
some amount of justification for going against the grain of a
centralized system imo.