PetarKirov / dlang.nix

Nix expressions for building D compilers
MIT License
6 stars 2 forks source link

Porting improvements from OldDDerivations, first part #2

Closed dukc closed 11 months ago

dukc commented 1 year ago

Okay, here's the first part of merging OldDDerivations to this project.

I ported three versions. I'll port the rest in another PR.

I didn't see any differences in default-nix between here and in older versions of NixPkgs. As such, the new generic.nix file is the exact same it's in OldDDerivations and NixPkgs, except that I replaced the maintainer info.

Degraded the bootstrap DMD version to 2.090.1. It still builds 2.102.2. Since OldDDerivations supports older compilers than this project currently does, IMO it makes more sense to use the same bootstrap version I have tested my builds there. Also 2.090.1 is the bootstrap version NixPkgs currently uses. I see there are some small improvements in binary.nix though - I kept those.

Didn't touch flake.nix apart from the versionSupported value, since it doesn't do anything yet anyway, if I understood it right.

PetarKirov commented 1 year ago

Thanks @dukc! Overall looks good to me. I have pushed some improvements in the mean time: https://github.com/PetarKirov/dlang-nix/compare/f91dde1035396c2af3ba312ea501e76f0d0b1cf7...7f730587392ed73dce8ba85a5c1f4e86ec984cf2

I'll rebase your PR manually and merge it once I have #3 ready.

PetarKirov commented 1 year ago

One of the important for me remaining tasks is the creation of a script that would automatically fetch all historical versions (and new ones in the future) and output a JSON file along the lines of:

pkgs/dmd/versions.json:

[
  {
    "version": "2.098.1",
    "srcs": {
      "main": {
        "version": "2.098.1",
        "flake-ref": "github:dlang/dmd",
        "sha256": "0xf2l1yqncbmyggdn6pqc82f93cnnzg9mgkkq63l41f89y4man7b"
      },
      "druntime": {
        "version": "2.098.1",
        "flake-ref": "github:dlang/druntime",
        "sha256": "1vd1b4vj1f5d5rr6ixfsr27m81z27yv6f4j1i6dsn7l9c73dppqw"
      },
      "phobos": {
        "version": "2.098.1",
        "flake-ref": "github:dlang/phobos",
        "sha256": "1l0z08xrab5hhnblkamlzbl1ia3szbliy1qx9f5khz0nsj9vgihq"
      }
    }
  },
  {
    "version": "2.100.2",
    "srcs": {
      "main": {
        "flake-ref": "github:dlang/dmd",
        "sha256": "sha256-o4+G3ARXIGObYHtHooYZKr+Al6kHpiwpMIog3i4BlDM="
      },
      "druntime": {
        "flake-ref": "github:dlang/druntime",
        "sha256": "sha256-qXvY1ECN4mPwOGgOE1FWwvxoRvlSww3tGLWgBdhzAKo="
      },
      "phobos": {
        "flake-ref": "github:dlang/phobos",
        "sha256": "sha256-kTHRaAKG7cAGb4IE/NGHWaZ8t7ZceKj03l6E8wLzJzs="
      }
    }
  },
  {
    "version": "2.102.2",
    "srcs": {
      "main": {
        "flake-ref": "github:dlang/dmd",
        "sha256": "sha256-der9nb31hJ+K1aJZdzIgs8+eRgVVsH97QnYEnVbKUws="
      },
      "phobos": {
        "flake-ref": "github:dlang/phobos",
        "sha256": "sha256-SracmUm2aY/LDCyDqYuVS39pCbwO8UCL3TSB0CVHpHE="
      }
    }
  }
]

(The schema is not finalized yet)

I had started work on it here: ./scripts/update.d script, but I haven't had the time to finish it for quite a while. I'll try to get that done this week, but I can't make any progresses, as I'm still quite busy at work.

dukc commented 1 year ago

ping @PetarKirov

Any updates on when #3 will be in? I'd like to move forward.

dukc commented 11 months ago

Superseded by #4.