petarkirov / dlang-nix Goto Github PK
View Code? Open in Web Editor NEWNix expressions for building D compilers
Nix expressions for building D compilers
I believe, from reading Dlang foundation monthly meeting summary 2022-Nov, that this project has a common goal with me and my project.
I suggest we combine our efforts. I'm happy to give you maintainer rights to OldDDerivations, or alternatively to commit what I've done there to here instead. I haven't familiarised myself with Nix flakes yet, but I'm happy to learn and start using them. What do you think?
There should be an instruction file for the user to build the derivations here. It should specify both how to simply build an already fetched version of a single package (copying what readme.md
in OldDDerivations says probably does pretty good job) and how to run the prefetcher scripts to generate the version-specific hash files (once #9 is in).
See: https://github.com/PetarKirov/dlang-nix/actions/runs/6291202903/job/17079346714
During the checkPhase of dmd, the following two test cases fail to link on macOS:
dmd> ... runnable/objc_class.d -L-framework -LFoundation -fPIC (-inline -release -g -O)
dmd> ==============================
dmd> Test 'runnable/objc_class.d' failed. The logged output:
dmd> clang -m64 -c runnable/extra-files/objc_class.m -o test_results/runnable/objc_class.m.o
dmd> /private/tmp/nix-build-dmd-2.102.2.drv-0/dmd/generated/osx/release/64/dmd -conf= -m64 -Irunnable -L-framework -LFoundation -fPIC -odtest_results/runnable -oftest_results/runnable/objc_class_0 runnable/objc_class.d test_results/runnable/objc_class.m.o
dmd> Undefined symbols for architecture x86_64:
dmd> "_objc_alloc_init", referenced from:
dmd> _callFooInstanceMethod in objc_class.m.o
dmd> ld: symbol(s) not found for architecture x86_64
dmd> clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
dmd> Error: linker exited with status 1
dmd> ==============================
dmd> Test 'runnable/objc_class.d' failed: Expected rc == 0, but exited with rc == 1
dmd> >>> TARGET FAILED: runnable/objc_class.d
dmd> ... runnable/objc_self_test.d -L-framework -LFoundation -fPIC (-inline -release -g -O)
dmd> ==============================
dmd> Test 'runnable/objc_self_test.d' failed. The logged output:
dmd> clang -m64 -c runnable/extra-files/objc_self_test.m -o test_results/runnable/objc_self_test.m.o
dmd> /private/tmp/nix-build-dmd-2.102.2.drv-0/dmd/generated/osx/release/64/dmd -conf= -m64 -Irunnable -L-framework -LFoundation -fPIC -odtest_results/runnable -oftest_results/runnable/objc_self_test_0 runnable/objc_self_test.d test_results/runnable/objc_self_test.m.o
dmd> Undefined symbols for architecture x86_64:
dmd> "_objc_alloc_init", referenced from:
dmd> _getValue in objc_self_test.m.o
dmd> ld: symbol(s) not found for architecture x86_64
dmd> clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
dmd> Error: linker exited with status 1
dmd> ==============================
dmd> Test 'runnable/objc_self_test.d' failed: Expected rc == 0, but exited with rc == 1
dmd> >>> TARGET FAILED: runnable/objc_self_test.d
It is claimed that DMD, despite being a fast compiler already, is even faster when compiled with LDC. We would do well to take advantage of this, especially since it will presumably make running the tests faster.
An year ago or so, the generic.nix
and binary.nix
in OldDDerivations were basically the same as in Nixpkgs. It was easy to upstream and downstream any improvements, Nixpkgs only lacking the version-specific hash files.
If possible, I would like to reintroduce this synergy. Obviously this does depend on reaching agreement with other Nixpkgs maintainers (I'm one of the dmd maintainers there though so I should have some power). However, I think we should first get DMD versions from 2.084.1 (oldest in OldDDerivations) to the latest stable working first, otherwise people in Nixpkgs don't have much reason to accept any changes from here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.