New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get rid of the Perl dependency #341

Closed
edolstra opened this Issue Sep 16, 2014 · 96 comments

Comments

Projects
None yet

@edolstra edolstra self-assigned this Sep 16, 2014

@linquize

This comment has been minimized.

Show comment
Hide comment
@linquize

linquize Sep 16, 2014

Contributor

👍 to rewrite in C++

Contributor

linquize commented Sep 16, 2014

👍 to rewrite in C++

@wmertens

This comment has been minimized.

Show comment
Hide comment
@wmertens

wmertens Oct 11, 2014

Contributor

👍!

Just to have an idea of the scope:

$ git grep -l perl scripts/ corepkgs/ | xargs wc -l | sort -n
  17 corepkgs/config.nix.in
  28 corepkgs/buildenv.nix
  51 scripts/nix-generate-patches.in
  65 scripts/nix-collect-garbage.in
  73 scripts/show-duplication.pl
  79 scripts/find-runtime-roots.pl.in
 100 scripts/nix-copy-closure.in
 102 scripts/copy-from-other-stores.pl.in
 102 scripts/nix-pull.in
 132 scripts/nix-prefetch-url.in
 143 scripts/nix-install-package.in
 168 corepkgs/buildenv.pl
 212 scripts/nix-channel.in
 282 scripts/build-remote.pl.in
 288 scripts/nix-build.in
 294 scripts/nix-push.in
 377 scripts/download-using-manifests.pl.in
 612 scripts/download-from-binary-cache.pl.in
3125 total

and

  42 perl//lib/Nix/Config.pm.in
 114 perl//lib/Nix/CopyClosure.pm
  42 perl//lib/Nix/Crypto.pm
 340 perl//lib/Nix/GeneratePatches.pm
 468 perl//lib/Nix/Manifest.pm
 103 perl//lib/Nix/SSH.pm
  92 perl//lib/Nix/Store.pm
 292 perl//lib/Nix/Store.xs
  47 perl//lib/Nix/Utils.pm
  40 perl//local.mk
   7 perl//MANIFEST
1587 total
Contributor

wmertens commented Oct 11, 2014

👍!

Just to have an idea of the scope:

$ git grep -l perl scripts/ corepkgs/ | xargs wc -l | sort -n
  17 corepkgs/config.nix.in
  28 corepkgs/buildenv.nix
  51 scripts/nix-generate-patches.in
  65 scripts/nix-collect-garbage.in
  73 scripts/show-duplication.pl
  79 scripts/find-runtime-roots.pl.in
 100 scripts/nix-copy-closure.in
 102 scripts/copy-from-other-stores.pl.in
 102 scripts/nix-pull.in
 132 scripts/nix-prefetch-url.in
 143 scripts/nix-install-package.in
 168 corepkgs/buildenv.pl
 212 scripts/nix-channel.in
 282 scripts/build-remote.pl.in
 288 scripts/nix-build.in
 294 scripts/nix-push.in
 377 scripts/download-using-manifests.pl.in
 612 scripts/download-from-binary-cache.pl.in
3125 total

and

  42 perl//lib/Nix/Config.pm.in
 114 perl//lib/Nix/CopyClosure.pm
  42 perl//lib/Nix/Crypto.pm
 340 perl//lib/Nix/GeneratePatches.pm
 468 perl//lib/Nix/Manifest.pm
 103 perl//lib/Nix/SSH.pm
  92 perl//lib/Nix/Store.pm
 292 perl//lib/Nix/Store.xs
  47 perl//lib/Nix/Utils.pm
  40 perl//local.mk
   7 perl//MANIFEST
1587 total
@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Oct 13, 2014

Member

👍

Member

domenkozar commented Oct 13, 2014

👍

@offlinehacker

This comment has been minimized.

Show comment
Hide comment
@offlinehacker

offlinehacker Oct 13, 2014

Contributor

+1

Contributor

offlinehacker commented Oct 13, 2014

+1

@matejc

This comment has been minimized.

Show comment
Hide comment
@matejc

matejc commented Oct 24, 2014

👍

@hilyjiang

This comment has been minimized.

Show comment
Hide comment
@hilyjiang

hilyjiang commented Jan 24, 2015

+1

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Apr 8, 2015

Member

Would also get rid of #19

Member

domenkozar commented Apr 8, 2015

Would also get rid of #19

@copumpkin

This comment has been minimized.

Show comment
Hide comment
@copumpkin

copumpkin Apr 19, 2015

Member

👍 obviously. Seems like it wouldn't have to be a monolithic work item. I'm guessing many of the *.pm files are just wrapping functionality that's already in the C++ library, so some of that wouldn't even be necessary anymore. The individual utilities could be replaced one at a time if someone didn't want to take on the entire task at once.

Member

copumpkin commented Apr 19, 2015

👍 obviously. Seems like it wouldn't have to be a monolithic work item. I'm guessing many of the *.pm files are just wrapping functionality that's already in the C++ library, so some of that wouldn't even be necessary anymore. The individual utilities could be replaced one at a time if someone didn't want to take on the entire task at once.

@lethalman

This comment has been minimized.

Show comment
Hide comment
@lethalman

lethalman Apr 21, 2015

Contributor

I'm on nix-collect-garbage :) starting low

Contributor

lethalman commented Apr 21, 2015

I'm on nix-collect-garbage :) starting low

@copumpkin

This comment has been minimized.

Show comment
Hide comment
@copumpkin

copumpkin Apr 21, 2015

Member

Yay!

Member

copumpkin commented Apr 21, 2015

Yay!

@edolstra

This comment has been minimized.

Show comment
Hide comment
@edolstra

edolstra Apr 21, 2015

Member

🍺

Member

edolstra commented Apr 21, 2015

🍺

@lethalman

This comment has been minimized.

Show comment
Hide comment
@lethalman

lethalman Apr 23, 2015

Contributor

I'm now on find-runtime-roots.pl

Contributor

lethalman commented Apr 23, 2015

I'm now on find-runtime-roots.pl

@edolstra

This comment has been minimized.

Show comment
Hide comment
@edolstra

edolstra Apr 23, 2015

Member

Rather than replacing it with an external C++ program, please add it directly to gc.cc.

Member

edolstra commented Apr 23, 2015

Rather than replacing it with an external C++ program, please add it directly to gc.cc.

@domenkozar

This comment has been minimized.

Show comment
Hide comment
Member

domenkozar commented Aug 9, 2015

@bjornfor

This comment has been minimized.

Show comment
Hide comment
@bjornfor

bjornfor Nov 7, 2015

Contributor

Is there a bounty service that doesn't require sign-up? I'd like to support, but I don't want yet another account on some web service...

Contributor

bjornfor commented Nov 7, 2015

Is there a bounty service that doesn't require sign-up? I'd like to support, but I don't want yet another account on some web service...

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Nov 7, 2015

Member

You can login with github account. But no :)

On Sat, 7 Nov 2015, 10:17 Bjørn Forsman notifications@github.com wrote:

Is there a bounty service that doesn't require sign-up? I'd like to
support, but I don't want yet another account on some web service...


Reply to this email directly or view it on GitHub
#341 (comment).

Member

domenkozar commented Nov 7, 2015

You can login with github account. But no :)

On Sat, 7 Nov 2015, 10:17 Bjørn Forsman notifications@github.com wrote:

Is there a bounty service that doesn't require sign-up? I'd like to
support, but I don't want yet another account on some web service...


Reply to this email directly or view it on GitHub
#341 (comment).

@vcunat

This comment has been minimized.

Show comment
Hide comment
@vcunat

vcunat Nov 7, 2015

Member

And you can always make promises without any service at all...

Member

vcunat commented Nov 7, 2015

And you can always make promises without any service at all...

@bjornfor

This comment has been minimized.

Show comment
Hide comment
@bjornfor

bjornfor Nov 7, 2015

Contributor

Ah, I didn't know bountysource was "a promise", I thought it was direct payment.

Contributor

bjornfor commented Nov 7, 2015

Ah, I didn't know bountysource was "a promise", I thought it was direct payment.

@vcunat

This comment has been minimized.

Show comment
Hide comment
@vcunat

vcunat Nov 7, 2015

Member

Well, maybe, but I think there's an unavoidable tricky point: who decides that the issue is solved well-enough?

Member

vcunat commented Nov 7, 2015

Well, maybe, but I think there's an unavoidable tricky point: who decides that the issue is solved well-enough?

@AndersonTorres

This comment has been minimized.

Show comment
Hide comment
@AndersonTorres

AndersonTorres Nov 7, 2015

Also, what if multiple people solve it?

AndersonTorres commented Nov 7, 2015

Also, what if multiple people solve it?

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Nov 7, 2015

Member

The one offering the bounty decides how the money should be split.

Member

domenkozar commented Nov 7, 2015

The one offering the bounty decides how the money should be split.

@vcunat

This comment has been minimized.

Show comment
Hide comment
@vcunat

vcunat Nov 7, 2015

Member

Well, nice theoretical discussion, but for all nixos.org stuff I've only seen this single bounty offer of $50 – that probably wouldn't pay more than a single day of work for most people, so overall there seem to be basically no incentive for bounty hunting.

Member

vcunat commented Nov 7, 2015

Well, nice theoretical discussion, but for all nixos.org stuff I've only seen this single bounty offer of $50 – that probably wouldn't pay more than a single day of work for most people, so overall there seem to be basically no incentive for bounty hunting.

@AndersonTorres

This comment has been minimized.

Show comment
Hide comment
@AndersonTorres

AndersonTorres Nov 11, 2015

Well, I will study the sources at Saturday. Maybe I can do something :)

AndersonTorres commented Nov 11, 2015

Well, I will study the sources at Saturday. Maybe I can do something :)

@offlinehacker

This comment has been minimized.

Show comment
Hide comment
@offlinehacker

offlinehacker Nov 12, 2015

Contributor

I've added additional 50$ to the bounty, i know the pain involved with cross compiling nix, so i would love to see this solved :)

Contributor

offlinehacker commented Nov 12, 2015

I've added additional 50$ to the bounty, i know the pain involved with cross compiling nix, so i would love to see this solved :)

@garbas

This comment has been minimized.

Show comment
Hide comment
@garbas

garbas Dec 7, 2015

Contributor

i've also added additional $50 for this effort ... badge

Contributor

garbas commented Dec 7, 2015

i've also added additional $50 for this effort ... badge

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Jan 3, 2016

Member

So here's an idea: let's fund the whole development of this effort. I think it's an important milestone for Nix and I'm willing to invest some of personal finances just to really get it done. It's a tedious job and I really think whoever gets it done deserves a payment.

Proposal: is anyone willing to port Perl code to C++ and being paid for it? Send me an email to domen@dev.si and let's talk how to make it happen.

Member

domenkozar commented Jan 3, 2016

So here's an idea: let's fund the whole development of this effort. I think it's an important milestone for Nix and I'm willing to invest some of personal finances just to really get it done. It's a tedious job and I really think whoever gets it done deserves a payment.

Proposal: is anyone willing to port Perl code to C++ and being paid for it? Send me an email to domen@dev.si and let's talk how to make it happen.

@davidak

This comment has been minimized.

Show comment
Hide comment
@davidak

davidak Jan 3, 2016

Contributor

@domenkozar great. i also added some money to the bounty. you can pay with bitcoin :)

i also shared it on Diaspora*

Contributor

davidak commented Jan 3, 2016

@domenkozar great. i also added some money to the bounty. you can pay with bitcoin :)

i also shared it on Diaspora*

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Jan 11, 2016

Member

I'm really excited to announce a (proper!) funding campaign for this issue. Shea Levy stepped up as the implementer, he's familiar with the codebase and currently top 2 contributor.

I'd like to invite everyone that is excited about this work (if not, see the link for why you should be) to donate funds at https://www.gofundme.com/htuafwrg/

Member

domenkozar commented Jan 11, 2016

I'm really excited to announce a (proper!) funding campaign for this issue. Shea Levy stepped up as the implementer, he's familiar with the codebase and currently top 2 contributor.

I'd like to invite everyone that is excited about this work (if not, see the link for why you should be) to donate funds at https://www.gofundme.com/htuafwrg/

@MarcWeber

This comment has been minimized.

Show comment
Hide comment
@MarcWeber

MarcWeber Jan 11, 2016

Contributor

I just saw this effort. Let me remind that there are alternatives to C++ such as rust which could be evaluated as well. We all know that Sha is very capable of many things. Thus an interesting idea would be to do ask another question: If there were $3000, would there be other tasks as well? If I had $3000 I'd spend them on a proper open source versioning database from which many .nix derivations could be derived. Something like hackage but for C/C++ and all the other small items. Because if you do that, more devs might join in the long run.

Contributor

MarcWeber commented Jan 11, 2016

I just saw this effort. Let me remind that there are alternatives to C++ such as rust which could be evaluated as well. We all know that Sha is very capable of many things. Thus an interesting idea would be to do ask another question: If there were $3000, would there be other tasks as well? If I had $3000 I'd spend them on a proper open source versioning database from which many .nix derivations could be derived. Something like hackage but for C/C++ and all the other small items. Because if you do that, more devs might join in the long run.

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Aug 10, 2016

Member

#1020 for buildenv

Member

shlevy commented Aug 10, 2016

#1020 for buildenv

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Aug 10, 2016

Member

Nuked nix-install-package in #1021

Member

shlevy commented Aug 10, 2016

Nuked nix-install-package in #1021

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Aug 10, 2016

Member

@shlevy I've changed the description of this issue to reflect current status. Feel free to modify, for example I don't think scripts/show-duplication.pl is needed at runtime, scripts/nix-generate-patches.in is part of manifests also to be removed, etc.

Member

domenkozar commented Aug 10, 2016

@shlevy I've changed the description of this issue to reflect current status. Feel free to modify, for example I don't think scripts/show-duplication.pl is needed at runtime, scripts/nix-generate-patches.in is part of manifests also to be removed, etc.

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Aug 10, 2016

Member

@domenkozar How old is your nix checkout? 👅 nix-generate-patches was removed in April

Member

shlevy commented Aug 10, 2016

@domenkozar How old is your nix checkout? 👅 nix-generate-patches was removed in April

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Aug 10, 2016

Member

Ah, I was copying @wmertens output. Removed :)

Member

domenkozar commented Aug 10, 2016

Ah, I was copying @wmertens output. Removed :)

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Aug 10, 2016

Member

@shlevy wait, only nix-channel and nix-push left?!

EDIT: also nix-copy-closure.

$ wc -l scripts/{nix-push,nix-channel,nix-copy-closure}.in
  296 scripts/nix-push.in
  228 scripts/nix-channel.in
  103 scripts/nix-copy-closure.in
  627 total
Member

domenkozar commented Aug 10, 2016

@shlevy wait, only nix-channel and nix-push left?!

EDIT: also nix-copy-closure.

$ wc -l scripts/{nix-push,nix-channel,nix-copy-closure}.in
  296 scripts/nix-push.in
  228 scripts/nix-channel.in
  103 scripts/nix-copy-closure.in
  627 total
@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Aug 10, 2016

Member

@domenkozar Too fast for me #1022

Member

shlevy commented Aug 10, 2016

@domenkozar Too fast for me #1022

@edolstra

This comment has been minimized.

Show comment
Hide comment
@edolstra

edolstra Aug 10, 2016

Member

We can drop nix-push (since probably very few people use it and nix copy provides largely the same functionality), but we definitely need to keep nix-copy-closure for backwards compatibility.

Member

edolstra commented Aug 10, 2016

We can drop nix-push (since probably very few people use it and nix copy provides largely the same functionality), but we definitely need to keep nix-copy-closure for backwards compatibility.

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy
Member

shlevy commented Aug 10, 2016

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Aug 10, 2016

Member

OK nix-copy-closure migrated in #1023

Member

shlevy commented Aug 10, 2016

OK nix-copy-closure migrated in #1023

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Aug 10, 2016

Member

nix-push removed in #1024

Member

shlevy commented Aug 10, 2016

nix-push removed in #1024

@knedlsepp

This comment has been minimized.

Show comment
Hide comment
@knedlsepp

knedlsepp Aug 10, 2016

@pikajude: Am I correct in assuming that scripts/resolve-system-dependencies.pl.in is only relevant in the case of a chrooted build? It seems those don't work properly anyway: #759

knedlsepp commented Aug 10, 2016

@pikajude: Am I correct in assuming that scripts/resolve-system-dependencies.pl.in is only relevant in the case of a chrooted build? It seems those don't work properly anyway: #759

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Aug 11, 2016

Member

nix-channel port away from perl free Nix? 👯

Member

domenkozar commented Aug 11, 2016

nix-channel port away from perl free Nix? 👯

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Aug 11, 2016

Member

nix-channel in #1026

Member

shlevy commented Aug 11, 2016

nix-channel in #1026

@davidak

This comment has been minimized.

Show comment
Hide comment
@davidak

davidak Aug 11, 2016

Contributor

@shlevy Thank you! I just added another $50 to the bounty.

https://www.bountysource.com/issues/4399291-get-rid-of-the-perl-dependency

Don't forget to claim it when it is complete.

Contributor

davidak commented Aug 11, 2016

@shlevy Thank you! I just added another $50 to the bounty.

https://www.bountysource.com/issues/4399291-get-rid-of-the-perl-dependency

Don't forget to claim it when it is complete.

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Aug 11, 2016

Member

I consider the core work finished (if all PRs are merged and a simple final Makefile tweak added on top, nix on Linux has no dependency on perl) and the bounty is linked to this github issue. Any objections to me closing the issue to claim the bounty, and using the perl-to-c++ milestone to track the remaining bits?

Member

shlevy commented Aug 11, 2016

I consider the core work finished (if all PRs are merged and a simple final Makefile tweak added on top, nix on Linux has no dependency on perl) and the bounty is linked to this github issue. Any objections to me closing the issue to claim the bounty, and using the perl-to-c++ milestone to track the remaining bits?

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Aug 11, 2016

Member

@shlevy sure, if PRs are merged and Nix can compile without perl, feel free to claim this :)

Member

domenkozar commented Aug 11, 2016

@shlevy sure, if PRs are merged and Nix can compile without perl, feel free to claim this :)

@vcunat

This comment has been minimized.

Show comment
Hide comment
@vcunat

vcunat Aug 12, 2016

Member

I understood it as a suggestion to close/claim before merging the PRs.

Member

vcunat commented Aug 12, 2016

I understood it as a suggestion to close/claim before merging the PRs.

@davidak

This comment has been minimized.

Show comment
Hide comment
@davidak

davidak Aug 12, 2016

Contributor

@vcunat No, the issue is solved for me when every change is merged in master. (and properly works together)

Contributor

davidak commented Aug 12, 2016

@vcunat No, the issue is solved for me when every change is merged in master. (and properly works together)

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Aug 12, 2016

Member

OK, thought I'd check 😄

Member

shlevy commented Aug 12, 2016

OK, thought I'd check 😄

shlevy added a commit to shlevy/nix that referenced this issue Aug 12, 2016

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy
Member

shlevy commented Aug 12, 2016

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Nov 1, 2016

Member

@shlevy I'd say you have done your part of the work so it's fine if you collect the bounty.

Member

domenkozar commented Nov 1, 2016

@shlevy I'd say you have done your part of the work so it's fine if you collect the bounty.

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Nov 1, 2016

Member

@domenkozar Do I have to do anything besides just close the issue?

Member

shlevy commented Nov 1, 2016

@domenkozar Do I have to do anything besides just close the issue?

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Nov 2, 2016

Member

I think you have to claim bounty on bountysource manually.

Member

domenkozar commented Nov 2, 2016

I think you have to claim bounty on bountysource manually.

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Nov 2, 2016

Member

From https://github.com/bountysource/core/wiki/Frequently-Asked-Questions it looks like the only way is to close the issue, maybe even the only way is to merge a commit that closes the issue. I will try closing this, let me know if you get the confirmation email.

Member

shlevy commented Nov 2, 2016

From https://github.com/bountysource/core/wiki/Frequently-Asked-Questions it looks like the only way is to close the issue, maybe even the only way is to merge a commit that closes the issue. I will try closing this, let me know if you get the confirmation email.

@shlevy shlevy closed this Nov 2, 2016

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Nov 2, 2016

Member

I needed to refresh about 6 times before you showed up as a claimer on https://www.bountysource.com/issues/4399291-get-rid-of-the-perl-dependency, but it's accepted from me.

I'll try to write up a summary for all chip-in-ers :)

Member

domenkozar commented Nov 2, 2016

I needed to refresh about 6 times before you showed up as a claimer on https://www.bountysource.com/issues/4399291-get-rid-of-the-perl-dependency, but it's accepted from me.

I'll try to write up a summary for all chip-in-ers :)

@shlevy

This comment has been minimized.

Show comment
Hide comment
@shlevy

shlevy Nov 2, 2016

Member

Did my summary not show up?

Member

shlevy commented Nov 2, 2016

Did my summary not show up?

@domenkozar

This comment has been minimized.

Show comment
Hide comment
@domenkozar

domenkozar Nov 2, 2016

Member

Nope

Member

domenkozar commented Nov 2, 2016

Nope

shlevy added a commit to shlevy/nix that referenced this issue Jan 20, 2017

@rht rht referenced this issue Jan 30, 2017

Open

Link caching #3642

shlevy added a commit to shlevy/nix that referenced this issue Feb 7, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment