notjack
2017-11-3 08:53:20

@samth I may have gone a little overboard…. but I’m now able to run the GUI tests while watching what the tests are doing to the X server in a browser


notjack
2017-11-3 08:54:27

xvfb container + x11vnc container which turns x server into vnc server + websockify container which gives access to vnc server over websockets + nginx with novnc, which is a client web app somebody made that shows you a live feed of a vnc-over-websocket server in a browser window


samth
2017-11-3 11:15:17

Woot


mflatt
2017-11-3 16:12:40

@samth I haven’t figured out why the Travis build is hanging . I’ve tried a few Linux builds, including ones with the same package set as on Travis, but didn’t provoke the problem.


samth
2017-11-3 16:13:26

@mflatt I’ll push a PR which runs the file tests in non-quiet mode


ben
2017-11-3 17:38:51

can someone explain how this program typechecks? #lang typed/racket/base (define (f (x : Integer)) #\|: Integer\|# x) (ann f (-> Natural Natural)) (It doesn’t typecheck if I uncomment the return type — that part makes sense to me)


ben
2017-11-3 17:39:16

I tried this in the repl too, and (:print-type f) is (-> Integer Integer)


samth
2017-11-3 17:40:13

I think it’s because TR knows that the output is the input


samth
2017-11-3 17:40:25

and uses that, together with the input type, in subtyping


samth
2017-11-3 17:40:54

(innovation due to Eric Dobson)


ben
2017-11-3 17:41:19

thank you Eric Dobson


notjack
2017-11-3 19:19:49

does typed racket do any logging besides warnings about dead code?


samth
2017-11-3 19:21:21

@notjack it does a bunch of internal timing logging


notjack
2017-11-3 19:22:00

with racket loggers instead of stdout / something else I assume?


notjack
2017-11-3 19:23:01

I think making TR log everything with the topic typed/racket or typed/racket/base might be a good idea


ben
2017-11-3 19:23:11

@notjack the tr-timing logger


samth
2017-11-3 19:24:11

yeah


royall
2017-11-3 20:59:39

If I wanted to write a library of common validation functions like valid-email? would it be super cool or awkward and asinine to provide them as contracts?


royall
2017-11-3 21:00:32

I suppose there’s nothing to stop me from providing both


ben
2017-11-3 21:01:04

super cool


notjack
2017-11-3 21:01:15

@royall I’d either provide them as contracts like valid-email/c or use something that’s specifically only for flat data


ben
2017-11-3 21:01:27

but I’m usually happy with stuff like (-> valid-email? blah-blah-blah)


ben
2017-11-3 21:01:34

using the predicate as a contract


notjack
2017-11-3 21:01:36

like expectations (self plug)


notjack
2017-11-3 21:02:26

@ben I think for server programming in particular it’s really useful to have more than just a predicate so error messages for bad requests can be more informative


notjack
2017-11-3 21:03:06

particularly when parsing string input


royall
2017-11-3 21:04:25

k, this is going into my sheet of notes for Obvious Web Stuff Racket Doesn’t Have Yet


apg
2017-11-3 21:11:45

@royall that must be a big giant list. :troll:


royall
2017-11-3 21:12:28

Yes, that’s why I like it! I’m greedy and vain enough to take all the easy problems for myself


notjack
2017-11-3 21:12:52

that’s the way to do it :p


samth
2017-11-3 21:24:55

question: what “kids these days” editor has the best racket support currently?


notjack
2017-11-3 21:27:14

do any of them?


samth
2017-11-3 21:27:30

i just installed VS code and it has two racket plugins


samth
2017-11-3 21:27:36

but I can’t really tell what they do


samth
2017-11-3 21:27:43

besides syntax highlighting


notjack
2017-11-3 21:27:44

I use Atom a lot and vaguely recall a random racket plugin someone wrote that kinda sorta worked, but not by doing any of the stuff drracket does



notjack
2017-11-3 21:28:43

I think emacs and drracket are the only editors where “racket support” includes actually macroexpanding the code to figure out how to properly highlight stuff


apg
2017-11-3 21:31:29

where’s the atom plugin that uninstalls it and installs emacs instead?


lexi.lambda
2017-11-3 21:44:10

there was a time when I wanted to add all the drracket features to atom, and then I (1) realized I like having time to sleep and (2) stopped worrying and learned to love drracket


notjack
2017-11-3 21:45:26

honestly I’d rather figure out a way for drracket to infer #langs for files based on file extensions and then just write #langs for all the stuff I’d normally edit in atom…


notjack
2017-11-3 21:45:54

then I could just open .gitignore and similar files in drracket and not need two editors


notjack
2017-11-3 21:46:02

at least, not need two most of the time


lexi.lambda
2017-11-3 21:46:10

I am not actually sure which of intellij, drracket, and atom consume the most memory on my computer


notjack
2017-11-3 21:46:22

The Terrible Trio


notjack
2017-11-3 21:46:29

ramsticks quake in fear as they boot up


lexi.lambda
2017-11-3 21:46:41

I should switch to emacs, but I have never managed to stick with it for more than two weeks


apg
2017-11-3 21:47:10

@lexi.lambda it’s funny that you have memory issues. That’s always been the complaint against emacs!


apg
2017-11-3 21:47:23

oh how far we’ve come.


apg
2017-11-3 21:47:37

where emacs isn’t the memory hog.


samth
2017-11-3 21:48:01

I love DrRacket and use it all the time


lexi.lambda
2017-11-3 21:48:09

I don’t actually think I have any memory problems, except when I decide to ask maven to do a clean build of my company’s entire monolithic jvm codebase


samth
2017-11-3 21:48:15

but I also think it’s important to make sure the experience in other editors is ok


royall
2017-11-3 21:48:21

I only just switched to it full time about a month ago after several months of part-time use. My need for editing gigantic yaml files drove me there from Jetbrains and racket-mode helped me to stay


apg
2017-11-3 21:48:56

I’m an emacs + geiser user. I think there are things in racket-mode that I’d like, but haven’t plunged yet.


lexi.lambda
2017-11-3 21:48:56

that was my main motivation for wanting to get Atom integration


notjack
2017-11-3 21:49:04

there’s that json-rpc language editor server project thing that got discussed at racketcon office hours briefly


lexi.lambda
2017-11-3 21:49:41

plus I think it would be super cool to have DrRacket’s binding arrows in another editor, and I think Atom/VSCode could theoretically support that


apg
2017-11-3 21:49:47

@notjack specifically for racket?


royall
2017-11-3 21:49:56

I do love the binding arrows


notjack
2017-11-3 21:50:34

@apg there’s a generic json-rpc protocol for language editor stuff that Microsoft was working on for vscode, and at office hours I think @jeapostrophe brought up a desire to get racket to integrate with it


greg
2017-11-3 21:50:39

@royall wrt validating email addresses, something I needed to do recently: https://gist.github.com/greghendershott/4019ddefeba6d928637f797e8f0f8ef6 (maybe outside the scope of what you wanted to do, idk)


lexi.lambda
2017-11-3 21:50:49

at first I found the binding arrows sort of weird, but I’ve gotten used to them enough that I don’t really think about them at all except when someone comments on them in surprise while looking over my shoulder while I write racket


apg
2017-11-3 21:51:22

@notjack ah, interesting.


notjack
2017-11-3 21:52:14

I like binding arrows because they’re a really easy-to-explain example of something incredibly cool that racket can do because of how it does things


notjack
2017-11-3 21:52:21

or at least easy-to-demo


lexi.lambda
2017-11-3 21:54:16

it’s especially fun to show off the binding arrows for (1) non-s-exp languages and (2) macros that do weird things with scope and/or 'sub-range-binders


greg
2017-11-3 21:55:43

At one point I considered trying to do the arrows in racket-mode. But I sat down for awhile until the feeling passed.


samth
2017-11-3 21:55:58

@notjack yeah, that’s the language server protocol or something like that


greg
2017-11-3 21:57:23

I mean there is ASCII art and “overlays”, and even images in some emacs builds https://www.gnu.org/software/emacs/manual/html_node/elisp/Images.html


greg
2017-11-3 21:57:30

But yeah. No.


greg
2017-11-3 21:58:00

racket-check-syntax-mode lets you jump among the definitions and uses, that’s it.


lexi.lambda
2017-11-3 21:59:37

I’m curious, @greg, how much did you have to replicate to do Check Syntax’s analysis outside of DrRacket? and how much of that could you just re-use without reinventing? I know Check Syntax does a lot of work to handle things like tail position analysis, inspection of syntax-original?-ness, and props like 'disappeared-use, 'disappeared-binding, and 'sub-range-binders.


notjack
2017-11-3 22:00:05

I’ve wondered that too


lexi.lambda
2017-11-3 22:00:14

could you basically just use drracket/check-syntax directly?


greg
2017-11-3 22:00:24

Robby exposed it and I use a list of things produced by it.


lexi.lambda
2017-11-3 22:01:38

neat. so the analysis is entirely reused, and racket-mode “just” has to do the work to map that information onto the current buffer?



greg
2017-11-3 22:03:12

deletes the thing with the photo of me gah


greg
2017-11-3 22:03:36

The emacs side is creating a bunch of overlays using that list — and ignoring the arrow info


jeapostrophe
2017-11-4 00:33:29

apg
2017-11-4 00:35:43

oh nice!


notjack
2017-11-4 04:29:35

nice


notjack
2017-11-4 04:29:46

this is using the json RPC protocol right?


notjack
2017-11-4 04:30:00

also: hey cool it’s using my delimit-app package!


byrondavies
2017-11-4 06:45:40

@byrondavies has joined the channel