lexi.lambda
2018-2-28 18:07:17

@mflatt @robby Anecdotally, I’ve had a couple of times since upgrading to Racket 7 where DrRacket’s background expansion seems to get “stuck”—the dot in the corner stays blue indefinitely. Toggling background expansion off and on doesn’t seem to fix it, nor does closing and reopening the file. Restarting DrRacket solves the problem, but that’s it. I can’t reliably reproduce this, but it seems to happen sporadically. (I’m a few commits behind HEAD, so if a recent commit might have fixed this issue already, let me know, and I can pull and rebuild.)


mflatt
2018-2-28 18:15:38

@lexi.lambda Thanks for the report! So far, I’ve spent most of my time building and rebuilding Racket, so I haven’t spent much time observing DrRacket, but I’ll keep an look out for related issues.


robby
2018-2-28 20:04:31

@mflatt @lexi.lambda if you start DrRacket in the shell you might see some helpful output; it’s definitely the case that an unexpected exception in that code will wedge things. The drracket-background-compilation logger might be useful


lexi.lambda
2018-2-28 20:11:09

@robby I didn’t see any output in the shell, but I can restart it with some logger output turned on. Should PLTSTDERR="error info@drracket-background-compilation" do the trick?


robby
2018-2-28 20:11:20

looks right


robby
2018-2-28 20:11:22

bummer


lexi.lambda
2018-2-28 20:11:49

I’ll turn that on and let you know if I see any output if it gets stuck again.


dedbox
2018-2-28 20:14:21

Hello, all the recent buzz around language-oriented programming is very exciting. I have been reading about the topic for some time. Do people actively discuss LOP today?


lexi.lambda
2018-2-28 22:41:53

I have a request for bikeshedding. In CLOS, specializers for dispatch in defmethod are specified inline with argument names, like this: (defmethod distance ((a point) (b point)) ...) …but this conflicts with Racket’s default argument syntax. Should a Racket-y CLOS use a keyword, like [a #: point%], an identifier, like [a : point%], a symbolic datum, also like [a : point%], or something else?


samth
2018-2-28 22:54:08

I would do it like syntax-parse


lexi.lambda
2018-2-28 22:57:26

That’s an interesting idea. It would probably also need an escape syntax like syntax/parse’s ~var, then, as well. What would you envision that looking like?


khepin
2018-3-1 00:01:44

@khepin has joined the channel


githree
2018-3-1 00:07:15

is there any XSL Transformer in racket -> I need to reuse existing *.xsl files so the SXML/SXSLT approach wouldn’t work for me


githree
2018-3-1 00:28:55

it doesn’t seem like there is one… I’ve just found c libxslt so that should hopefully suffice


jherman
2018-3-1 01:25:21

@jherman has joined the channel


greg
2018-3-1 02:38:58

Although I haven’t had time to keep up with Racket 7 :cry:, today I encountered had my first Travis CI run against HEAD a.k.a. snapshot. IIUC Racket 7 adds the word “is” to an error message (“provided identifier is not defined or imported”), which breaks a check-exn using a regexp.




greg
2018-3-1 02:39:59

Now, maybe it’s not a wonderful idea to use the regexp form of check-exn, because it can be fragile like this.


greg
2018-3-1 02:40:09

But I think I’ve seen it used a lot.


greg
2018-3-1 02:40:26

So I guess I’m wondering what that means wrt any “policy” about changing error messages?


greg
2018-3-1 02:40:40

(Sorry, not a fun topic)


notjack
2018-3-1 02:41:24

it’s somewhat fun / amusing for me because internally at work there’s an explicit policy against writing tests that assert things about error message strings


greg
2018-3-1 02:42:34

I can understand that policy. OTOH I can understand people not wanting to create a bazillion exn sub-structs.


greg
2018-3-1 02:43:17

Anyway, I’ve seen it done in Racket code. Not just my own. :smile:


mflatt
2018-3-1 02:53:08

I’m happy to drop that “is” in that case. It doesn’t improve the message, and it wasn’t an intended change. More generally, though, I’d like to make this an opportunity to adjust some messages. Most notably, reader errors have changed to use the backquote…backquote form of talking about literal text, instead of the old backquote…quote form. The “unbound identifier” error message used to say “in module”. I haven’t restored the “in module”, so far, because it doesn’t seem helpful. (Where else could an identifier be? No… surely not… well, you have other problems in that case.) But I can put “in module” back if we want to avoid that change. In short: there’s not a clear policy so far, but I think we want something in between " no changes" and “anything goes”.


greg
2018-3-1 02:57:17

“No ‘gratuitous’ changes” might be a reasonable way to minimize miscellaneous breakage. I’m not proposing we end up with the equivalent of HTTP “Referer” headers. I’m not even proposing anything; just pointing it out and asking.


greg
2018-3-1 02:58:17

I mean, I might even be on board with deprecating the regexp variant of check-exn, and encouraging people to use Better Thing, whatever that is (IDK). At least that’s a clean break.


mflatt
2018-3-1 03:01:13

For this message, I see that the new one is actually “defined or required”, while the old one was “defined or imported”. In contrast to just dropping “is”, changing “imported” to “required” is the kind of terminology cleanup that I might have intended. (And maybe I added “is” if it was going to change, anyway; I don’t remember.) So, I’m less sure what to do in this case.


greg
2018-3-1 03:01:54

Clean sheet, I definitely prefer “required”, too.


greg
2018-3-1 03:04:09

Maybe it makes sense to punt this — just improve the messages, then later we get some package build evidence, and depending on how much/what breaks, decide. Maybe people just need to edit some regexps.


lexi.lambda
2018-3-1 03:08:18

Some part of me prefers “imported” over “required” due to the way other #langs can use other names for imports/requires, and “import” seems to be more common and immediately understandable to me in the absence of a corresponding keyword, but it also makes me wonder if those error messages should be customizable or if languages are expected to do their own error reporting if they change those things.


lexi.lambda
2018-3-1 03:08:48

(But that’s pretty tangential to the current conversation, I think.)


mflatt
2018-3-1 03:18:04

I think that’s an interesting problem, too. (The “easy” solution hasn’t worked, so far, in that I failed to convince various grad students to work on the problem.)


lexi.lambda
2018-3-1 03:21:58

:)