hoshom
2019-3-3 16:11:53

If I’m making a package that depends on another package, I’m supposed to add the dependency in info.rkt, right? In (define deps ...), I guess?


hoshom
2019-3-3 16:12:35

Is there a way to automatically figure out what should go in deps?


greg
2019-3-3 17:09:13

@hoshom raco setup has --check-pkg-deps or you could even use --fix-pkg-deps https://docs.racket-lang.org/raco/running.html


greg
2019-3-3 17:12:24

What I tend to do for these things, either manually or via a Makefile: https://www.greghendershott.com/2017/04/racket-makefiles.html


notjack
2019-3-3 19:46:04

There’s also --unused-pkg-deps but I don’t think it works correctly


parkerrueve
2019-3-4 01:14:40

@parkerrueve has joined the channel


matias
2019-3-4 01:23:53

Thread cells and parameters seem very similar. What is the motivation behind having them be separate constructs?


samth
2019-3-4 01:31:20

@matias roughly, thread cells have the same value everywhere in a thread, while parameters can be dynamically bound with parameterize for just a small period


matias
2019-3-4 01:39:41

@samth ah ok, right. So presumably thread cells came first?


samth
2019-3-4 01:58:44

No, parameters are older by a lot


Bot messages not yet supported
notjack
2019-3-4 02:38:09

@samth wait, what makes dynamically binding a parameter for a small period different from setting and unsetting a thread cell?


samth
2019-3-4 02:38:41

Tail call preservation, for one


notjack
2019-3-4 02:41:04

are there other differences? I’ve usually thought of the main difference between the two being how parameters interact with code that spawns new threads


notjack
2019-3-4 02:42:39

thread cell implementations seem to choose the same initial cell value regardless of how the thread was created, whereas parameters use the value the parameter had in the code that spawned the thread


lexi.lambda
2019-3-4 02:48:40

Not if the thread cell is preserved. Parameters correspond to preserved thread cells.


notjack
2019-3-4 02:48:57

No, I mean thread cell implementations in other languages


lexi.lambda
2019-3-4 02:49:06

Ah, sure.


lexi.lambda
2019-3-4 02:50:28

The approach parameters take—namely, using continuation marks to store parameterizations—“just works” in the context of delimited continuations. You could do the same thing with dynamic-wind, though, so it’s not really a fundamental difference.


notjack
2019-3-4 02:52:54

does recursively parameterizing the same parameter to different values have constant space usage? (I think there was a racket-users thread about this)


lexi.lambda
2019-3-4 02:53:44

If the inner use of parameterize is in tail position with respect to the outer use, then yes.


notjack
2019-3-4 02:53:53

seems like it could if the recursion is a tail call- oh wait you beat me


notjack
2019-3-4 02:54:04

neat


notjack
2019-3-4 02:55:29

it’s kind of magic how well that works


hoshom
2019-3-4 04:52:59

@greg thanks!