!etBYPdyCKgnXJSXexD:matrix.org

NixOS GSoC

124 Members
16 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
22 Mar 2024
@thatliuser:matrix.orgEric
In reply to @Ericson2314:matrix.org

Hi Eric! Glad you are interested:

  1. Yes libgcc, but also the other gcc runtime libraries. (libssp, libstdc++ are two of them off hand)

  2. Don't worry about "bootstrapping" too much, just consider that before we build libgcc we may not have a libgcc, etc. A lot of compiler devs are working on regular machines and doing builds where they already have 1 copy of everything, which allows being more sloppy about depedencies and breaking cycles. Building compiler and libraries together is bad for a few reasons, but those reasons might mainly be in my head haha. Examples:

    • cross compiling mean can mean the libraries are for one platform and the compiler itself is for another. But having the installed outputs of a package involve two platforms that way is really messy and breaks assumptions in other packaging infra
    • That fact that some of the libraries do need a libc, and the libc is a separate package, means we have zig-zag problem (finishing the compiler build depeneds on downstream package build which depends on the compielr build) we can get around this by building things twice but that is ugly and wasteful
*

Ah, I see. I looked around a bit more at Exherbo's GCC build script and it looks like they just turn off a lot of features in the source tree before configuring the project, along with explicitly specifying many of the build tools (https://gitlab.exherbo.org/exherbo/arbor/-/blob/master/packages/sys-devel/gcc/gcc.exlib?ref_type=heads#L172). Also, I think I found an old thread talking about Exherbo that you created a while ago and I'll look into that for more info on Exherbo's relevance to Nix (https://github.com/NixOS/nixpkgs/issues/21471). One thing I'm still a bit confused about though, is how the gcc-${version}-lib and gcc-${version}-libgcc packages are currently being built. From what I can tell, they are the dynamic library versions of each, and the static library versions are included in the gcc-${version} package. Are they simply a recompilation of the packages after the big monorepo GCC is compiled? Is this what you're referring to in terms of building things twice being wasteful?

Also, is it okay if I direct message you if I have any more questions? I'd prefer not to clog up the chat here.

01:35:35
@nuko:shimeji.cafe@nuko:shimeji.cafe changed their profile picture.04:47:43
@Ericson2314:matrix.orgJohn Ericsonoh I missed these14:49:13
@Ericson2314:matrix.orgJohn Ericsonwill respond!14:49:15
@Ericson2314:matrix.orgJohn Ericson
In reply to @thatliuser:matrix.org

Ah, I see. I looked around a bit more at Exherbo's GCC build script and it looks like they just turn off a lot of features in the source tree before configuring the project, along with explicitly specifying many of the build tools (https://gitlab.exherbo.org/exherbo/arbor/-/blob/master/packages/sys-devel/gcc/gcc.exlib?ref_type=heads#L172). Also, I think I found an old thread talking about Exherbo that you created a while ago and I'll look into that for more info on Exherbo's relevance to Nix (https://github.com/NixOS/nixpkgs/issues/21471). One thing I'm still a bit confused about though, is how the gcc-${version}-lib and gcc-${version}-libgcc packages are currently being built. From what I can tell, they are the dynamic library versions of each, and the static library versions are included in the gcc-${version} package. Are they simply a recompilation of the packages after the big monorepo GCC is compiled? Is this what you're referring to in terms of building things twice being wasteful?

Also, is it okay if I direct message you if I have any more questions? I'd prefer not to clog up the chat here.

https://gitlab.exherbo.org/exherbo/arbor/-/tree/master/packages/sys-libs/libgcc look for the individual libarries
15:39:24
@Ericson2314:matrix.orgJohn Ericsonthe gcc one will still be for the compiler itself15:39:30
@Ericson2314:matrix.orgJohn EricsonI think better to clog up the chat here unless it gets really into the weeds15:39:49
@Ericson2314:matrix.orgJohn Ericsonif it is not gsoc specific we can also take it a dev channel or the nixpkgs issue for this 15:40:00
@Ericson2314:matrix.orgJohn Ericson(I think there was a nixpkgs issue? If not I should make one and link it from the gsoc)15:40:10
@Ericson2314:matrix.orgJohn Ericson
In reply to @cldrpr:matrix.org
John Ericson: Re: GCC project - Requesting a review of my initial draft proposal (here: https://github.com/cloudripper/GSoC-24/blob/main/gsoc-proposal-draft.pdf). Please let me know if I need to be more granular or descriptive in my project plan or abstract - and if there are any other important project-specific sections you feel I should include (I will include other personal sections prior to submission). Additionally, if there are others interested in this project, I would be happy to modify as needed to try and avoid overlap.
only comment I don't think there needs to be a separate design phase
15:41:45
@Ericson2314:matrix.orgJohn Ericsonrather I think it will be an iterative process of mentee trying things, and mentor offering feedback15:42:08
@Ericson2314:matrix.orgJohn EricsonI have a very specific vision in mind as to how this should work, and the draft PR already that was linked in the issue, but I expect to only be able to be able to convey that to anay mentee though an interative / dialogue process15:43:08
@Ericson2314:matrix.orgJohn Ericsonand also incrementally untangling things that exist, so stuff can fall back into place in a better way15:43:32
@Ericson2314:matrix.orgJohn EricsonI forget if I put this in the issue, but I suspect there would first be a "gcc-ng" totally separate toolchain, and then (possibly post summer) there would be a process of making it the default GCC one15:44:22
@cldrpr:matrix.org@cldrpr:matrix.org
In reply to @Ericson2314:matrix.org
I have a very specific vision in mind as to how this should work, and the draft PR already that was linked in the issue, but I expect to only be able to be able to convey that to anay mentee though an interative / dialogue process
Thanks for the input. Just to be clear, are you referring to this PR: (https://github.com/NixOS/nixpkgs/pull/132343)? Also, I came across the work you've done in the "gcc-ng-12" branch in your nixpkgs fork - would that be your expected starting point for the project?
23:40:20
@Ericson2314:matrix.orgJohn Ericson cldrpr: yes that's right. Start with that. The gcc 12 one is only a few hours work different so pretty much the same to me 23:43:13
23 Mar 2024
@agge3:matrix.orgagge3 Hello everyone! I'd like to work on the project 'Nix Internals: Use std::filesystem::path for Path'. I see there are others already interested in that project, so I do not mean to bring unwanted competition. Nevertheless, C++ is my preferred language, so I really like the idea of following cxx 17 standards. Also, I've had some experience with cross-dev unix-to-windows (a nightmare), and I like the mission goal of bringing anything unix to windows (hence, the cross-dev). My experience with nix is setting up containerized dev environments to keep things consistent for multiple users, so I really believe in nix and think it's a highly effective tool for something that is otherwise a complete nightmare.

I could have more experience because I don't daily-drive. My platform is using nix package manager on gentoo w/ openrc init. Can operate in a more integrated environment (nixos, systemd + nix) if this is a problem.
Skills are C, C++, sh, (some) lisp

Sorry for being a little late to the party.. chaotic last weeks - open to other suggestions, if we're trying to spread proposals
00:20:44

Show newer messages


Back to Room ListRoom Version: 10