Hi John, A couple of questions:
Although that’s how I ended up here, my actual problem came when I thought “oh, I could just add this to my local copy of the number-theory package, and test whether my implementation is faster or slower than modular-expt.” I don’t understand why you need to “add this to … local copy of the number-theory package”? If you want to compare your version with the math package’s version, you can do something like: #lang racket (require math/number-theory) (define (my-modular-expt a n) ...) (time (my-modular-expt ...)) ; test your version (time (modular-expt ...)) ; test the `math` package's version In fact, by modifying the math package, you will no longer have the math package’s version to compare to! Slightly off-topic: do you find that the math package’s version is too slow? Why did you try to implement your own version in the first place? Best, On Tue, Feb 16, 2021 at 5:24 PM Robby Findler <ro...@cs.northwestern.edu> wrote: > I would not do it quite that way. Here's the steps I recommend: > > git clone https://github.com/racket/racket.git > cd racket > make # get some coffee here > mkdir extra-pkgs > cd extra-pkgs > # make sure `raco` in your path is the one you built just above > raco pkg update --clone math > > .... now do git stuff / racket stuff. > > The upside to avoiding the "PREFIX=..." is that the racket installation is > now completely contained in that directory. Just throw it away when you're > done with it and if you have more than one (perhaps you want to try out an > older version or a released version or something) all you have to do is > update your path. And if you want to update to get some bug fix or > improvement, simply do a git pull and make in the top-level directory > again. (That "make" really does include all of the steps, like it'll run > configure and do all kinds of things so you don't have to worry about it.) > And the "extra-pkgs" directory is just the convention some of us use. > > Robby > > > On Tue, Feb 16, 2021 at 7:10 PM John Kemp <stable.pseudo...@gmail.com> > wrote: > >> > On Feb 16, 2021, at 3:49 PM, Robby Findler <ro...@cs.northwestern.edu> >> wrote: >> > >> > I think you probably want to use "raco update --clone math" and you'll >> end up with a directory named "math": where you run that that is a clone of >> the racket/math github repo and the racket installation you ran "raco" from >> will now use that as the source. Then you can add a remote to it with your >> clone to work on a pull request. You should be able to do this with your >> own built version of racket (which you get by running "make" in the top >> level of a clone of racket/racket) or in a snapshot build or probably even >> in 8.0. >> > >> > Does that help? >> >> Thanks Robby, that definitely helped (although I’m not finished getting >> this to work). >> >> Checking the correct sequence: >> >> 0. cd ~/src >> 1. git clone https://github.com/racket/racket.git >> 2. cd racket && make PREFIX=/usr/local >> 3. cd .. && /usr/local/bin/raco pkg update —clone math (this worked FWIW >> and cloned the math collection to my ~/src directory) >> 4. cd racket && make PREFIX=/usr/local (to install the updated math >> package into this copy of racket) >> 5. /usr/local/bin/racket (to test changes in REPL) >> >> In my case, I think part of my problem was a) two copies of Racket >> installed (so I needed to be more specific about which raco to use) and b) >> not understanding where raco is doing its work. >> >> Cheers, >> >> - johnk >> >> > >> > Robby >> > >> > >> > On Tue, Feb 16, 2021 at 2:36 PM John Kemp <stable.pseudo...@gmail.com> >> wrote: >> > Hi there, >> > >> > I implemented an alternative to the modular-expt function in the >> math/number-theory package, that uses bit-shift ( >> https://gist.github.com/frumioj/2dcc1364464508ec359075d5014d0157), as >> proposed by Bruce Scheier (pseudocode in >> https://en.wikipedia.org/wiki/Modular_exponentiation). >> > >> > Although that’s how I ended up here, my actual problem came when I >> thought “oh, I could just add this to my local copy of the number-theory >> package, and test whether my implementation is faster or slower than >> modular-expt.” >> > >> > First, I forked the github racket/math repo, and couldn’t see a way to >> build that independently of Racket. So then I checked out the racket repo >> itself, which uses raco to get me a copy of the math package collection. I >> was able to build with that, but it seems unconnected to the github >> racket/math repo. >> > >> > I tried various raco incantations to see if it were possible to get a >> copy of my forked math package, but nothing seemed to work, and I am >> concerned I misunderstood the instructions in >> https://docs.racket-lang.org/racket-build-guide/index.html >> > >> > Is there any document that describes how I should be able to both build >> and use a local math/number-theory package, and also be able to use my >> forked copy of that repo to commit my changes? Is it possible for me to >> *only* check out racket/math and build it for my local Racket installation? >> > >> > Thank you, >> > >> > - johnk >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups "Racket Developers" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an email to racket-dev+unsubscr...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/racket-dev/E30EA0E9-DC7F-498C-9F67-42554EBB757E%40gmail.com >> . >> >> -- > You received this message because you are subscribed to the Google Groups > "Racket Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-dev+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-dev/CAL3TdONM%3DGm_t%3DO_X%3D%3DOcR1oj94yTXnSJ8zp3hU3OQ-qsFN2BA%40mail.gmail.com > <https://groups.google.com/d/msgid/racket-dev/CAL3TdONM%3DGm_t%3DO_X%3D%3DOcR1oj94yTXnSJ8zp3hU3OQ-qsFN2BA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/CADcuegsGg35AQgSLGKQ6K0G3imCNkm086WXmWa4YG_QJajEn_Q%40mail.gmail.com.