efes
2017-6-20 08:57:08

@efes has joined the channel


filip
2017-6-20 11:35:13

@filip has joined the channel


samth
2017-6-20 12:56:03

@ben @notjack Done


ank
2017-6-20 13:08:04

@ank has joined the channel


cfinegan
2017-6-20 14:39:26

What does it mean when the Travis CI build fails? I submitted a pull request that’s causing the travis build to fail with GCC errors even though I didn’t touch any of the C code. https://github.com/racket/racket/pull/1726


samth
2017-6-20 15:47:30

@cfinegan it’s not clear to me what’s going on with those build failures


samth
2017-6-20 15:49:01

I think that something’s wrong with subprocess handling on linux on master, based on @mflatt’s recent changes


cfinegan
2017-6-20 15:50:41

Okay, I wanted to confirm that it wasn’t an issue with the changes in my fork.


mflatt
2017-6-20 15:54:32

@cfinegan It’s probably not an issue with your changes, but I think your branch doesn’t include the rktio changes that samth has in mind


samth
2017-6-20 15:56:23

@mflatt while @cfinegan’s branch doesn’t have those changes, Travis tests the merge of that with master



mflatt
2017-6-20 16:03:33

Ok, that’s good to know. I’m not seeing that particular failure elsewhere, but I’ll watch for it.


samth
2017-6-20 16:06:07

@mflatt the errors I see in @cfinegan’s PR tests are the same ones I see in the tests for master — timeouts either in git-related pkg tests, or in the regular subprocess tests


samth
2017-6-20 16:06:29

I don’t know if that’s related to your most recent change though


mflatt
2017-6-20 16:06:59

I’m seeing the pkg-test failures, and I hope the most recent change addresses those. I’m probably not looking at the right variant to see the subprocess example; can you point me to one?


samth
2017-6-20 16:07:41

mflatt
2017-6-20 16:07:48

Oh – it’s the ones with places & futures disabled. Now I know how to find the bug.


samth
2017-6-20 16:08:05

Great


ghoetker
2017-6-20 17:26:43

@ghoetker has joined the channel


notjack
2017-6-20 18:57:36

Is “require all modules in directory X” a reasonable thing to do? or does it have subtle problems with when exactly the directory is read based on when modules are compiled?


mflatt
2017-6-20 19:05:44

@notjack It wouldn’t be supported well by tools like raco make, which can’t deal with a dependency on a directory


notjack
2017-6-20 19:12:41

@mflatt what would it take to make raco make aware of unusual dependencies like that?


mflatt
2017-6-20 19:14:14

I’m not sure. One complication is assigning a hash code to the directory. Another is that creating a “compiled” subdirectory would change the enclosing directory, which would be interpreted as a need to recompile. I bet there are more complications that I won’t think of offhand.


notjack
2017-6-20 19:15:35

How does the planet require form work with raco make?


mflatt
2017-6-20 19:17:21

The default module name resolver calls out to planet-module-name-resolver when it sees planet


mflatt
2017-6-20 19:18:01

Other tools similarly have hard-wired support for planet, which helps explain a class of problems that PLaneT has


notjack
2017-6-20 19:23:18

huh, never would have guessed that but it makes sense


samth
2017-6-20 19:24:06

yeah, when splitting the old code into pkgs, I tried to remove planet from “base” but was unsuccessful


samth
2017-6-20 19:35:41

@mflatt with your latest changes, only the --disable-jit tests failed, and that may just be the tests in general taking too long; I’m rerunning it (https://travis-ci.org/racket/racket/builds/245045634?utm_source=slack&utm_medium=notification)


samth
2017-6-20 19:36:40

more generally our tests have gotten to the point where we have lots of intermittent failures from hitting the time limit; we should probably either speed some up or run fewer tests


notjack
2017-6-20 21:07:07

@cfinegan got time for some questions about racket/rackunit#44?


zenspider
2017-6-20 21:27:54

@samth Is it just a pure timeout or are these performance tests? If the former, you might want to dynamically pick the timeout based on the machine & load. If the latter, my test framework has a benchmark test type that does curve fitting and asserts the R^2 value instead of the time. Makes it much more CI/VM proof.


samth
2017-6-20 21:28:24

@zenspider It’s the former, and it’s the Travis timeout, not ours


samth
2017-6-20 21:29:50

samth
2017-6-20 21:30:01

the major problem is that the pkg tests take about 20 minutes


zenspider
2017-6-20 21:30:15

I didn’t realize that travis had a global timeout. I’ve worked on many projects that take a really long time on CI


samth
2017-6-20 21:31:06

yeah, it’s about 45 minutes


zenspider
2017-6-20 21:32:20

I think that’s configurable… definitely had projects that went over that before I got to them (I hate long test times)


zenspider
2017-6-20 21:33:34

oh… but maybe those projects were on circleci…


zenspider
2017-6-20 21:33:46

easy parallelization options there too


joy
2017-6-20 21:33:52

@joy has joined the channel


samth
2017-6-20 21:34:30

this doesn’t parallelize well either, because you have to build racket to start with


zenspider
2017-6-20 21:34:52

@samth: you’re not parallelizing the make phase: make CPUS="2" PKGS="racket-test db-test unstable-flonum-lib net-test" CONFIGURE_ARGS_qq="$RACKET_CONFIGURE_ARGS"


zenspider
2017-6-20 21:35:02

IIRC, racket does build well with -j N


samth
2017-6-20 21:35:10

CPUS=2 does that


samth
2017-6-20 21:35:23

but also parallelizes raco setup


cfinegan
2017-6-20 21:36:22

@notjack might not be able to get to everything until tomorrow morning, but I’m happy to take questions


zenspider
2017-6-20 21:36:48

I don’t think so… I think you still need -j… checking.


samth
2017-6-20 21:37:24

I promise, that does it


samth
2017-6-20 21:38:03

CPUS=N exists because you can’t get the value passed to -j to use with raco setup


notjack
2017-6-20 21:38:37

cfinegan: No rush


zenspider
2017-6-20 21:39:46

I get the raco side of it wrt ENV… CPUS is not described at all throughout the gnu make doco. It’s really obtuse doco, but seems thorough.


samth
2017-6-20 21:40:12

no, CPUS is part of the racket makefile


notjack
2017-6-20 21:40:15

My first impression is that the filtering logic seems complex and out of place, but I agree filtering is useful and thank you for working on it.



zenspider
2017-6-20 21:40:39

I’m post workout, so I’m probably not explaining myself well…


notjack
2017-6-20 21:40:52

how specifically do you intend to use the filtering? in DrRacket with test submodules and without test suites and only checks? in CI with test suites? some other combination?


zenspider
2017-6-20 21:41:51

gotcha… kk. Could also tune it. I’ve found for GCC being mostly IO bound that nproc*2 often works quite well.


samth
2017-6-20 21:42:22

that’s true for the C build step, but not for the raco setup build step


samth
2017-6-20 21:42:39

but the C build on Travis takes very little time


zenspider
2017-6-20 21:42:41

thank you for having such a clean makefile…


samth
2017-6-20 21:43:05

Really we just need to make some of the tests faster


zenspider
2017-6-20 21:43:43

I can’t see how long just the C side takes… but that whole thing is 15 minutes. That’s 1/3rd the total timeout.


zenspider
2017-6-20 21:44:13

you could break up the raco vs gcc side and scale accordingly… but… I’ll shut up now. you obviously have this in hand and I’m just making noise at this point


samth
2017-6-20 21:44:27

sadly we don’t have it in hand


zenspider
2017-6-20 21:44:36

hah. well… let me know if i can help


samth
2017-6-20 21:44:49

well, if you can make the pkg tests faster … :slightly_smiling_face:


samth
2017-6-20 21:44:57

or even figure out which ones are particularly slow


samth
2017-6-20 21:45:02

that would be a big help


zenspider
2017-6-20 21:45:04

I was curious… @mflatt was working on nuking C for chez… but then I saw a 10kloc diff for revamping IO in C. Is that a precursor to make porting easier?


samth
2017-6-20 21:45:09

yes


samth
2017-6-20 21:45:28

the rktio library is intended to be usable from other places (such as Chez)


zenspider
2017-6-20 21:45:42

I’m excited about the chez port, even if it is initially slower, I suspect it’ll help in the medium+ term a lot


samth
2017-6-20 21:46:27

I’m also excited


zenspider
2017-6-20 21:46:49

I was blown away by a recently published table of scheme benchmarks… chez was fairly consistently 1st–2nd place. Racket often in the top 5. I had no fucking idea… chicken always FELT faster because startup costs were zero, but overall perf was shite


zenspider
2017-6-20 21:47:15

I should have dug in on those benchmarks to see if they were using /base


samth
2017-6-20 21:47:38

Chez is very good, although those benchmarks somewhat overstate the advantage over Racket


samth
2017-6-20 21:48:00

Chez is best on old-school Scheme code — lots of plain functions and s-expressions


zenspider
2017-6-20 21:48:18

nods


zenspider
2017-6-20 21:48:29

basically.. the same problems all benchmarks have :stuck_out_tongue:


samth
2017-6-20 21:48:34

more user-defined data structures and tricky indirections reduce the advantage


samth
2017-6-20 21:48:44

which isn’t to say that it isn’t still there


zenspider
2017-6-20 21:49:29

you(? I think) helped me make a CPU simulation fast for advent of code… really nice thing to study. Then I saw a chez impl that used define-register and… fuck. it was soo fast


zenspider
2017-6-20 21:49:39

I didn’t understand it… but FAST


notjack
2017-6-20 21:49:50

@samth in general, what effect do functions-stored-in-structs have on Chez’s optimizations?


notjack
2017-6-20 21:50:14

is that sort of thing tricky to handle?


samth
2017-6-20 21:50:19

@notjack I don’t think I could give a useful answer there


samth
2017-6-20 21:50:24

that’s certainly trickier