ryanc
2018-2-27 14:51:46

@leif no, this one is some basic fixes for the macro debugger for the new expander. OTOH, this would be a good time for me to finish up and merge the other PR too.


leif
2018-2-27 15:09:00

It would be. ^.^


samth
2018-2-27 15:19:25

@ryanc here’s hoping that the new expander makes it possible to fix macro hiding :)


leif
2018-2-27 15:22:45

@samth @ryanc @michael.ballantyne I thought it was a little more fundamental of a problem than that?


samth
2018-2-27 15:23:25

My understanding was that it’s not fundamental, just hard — it used to work


gknauth
2018-2-27 18:22:56

I just discovered the Server:Racket book. Immediately bought it. Very happy to see more books on Racket, especially ones that get people doing things right away and then leading them down the yellow brick road, to adventure, Oz, and home.


joelmccracken
2018-2-27 18:23:34

i bought it, but havent read any of it


joelmccracken
2018-2-27 18:23:37

oh i might use it soon though!


joelmccracken
2018-2-27 18:23:55

integrate it + pollen for my new blog muhahahaha


joelmccracken
2018-2-27 18:24:22

i also never read that game programming in racket book at all


gknauth
2018-2-27 18:30:35

Haven’t checked out the game programming book yet, but I will. But the server book I hope will be useful. I have lots of little and some big Racket programs, I want to get some of them up on the web, I have a few fairly vanilla Racket webapps, but I’m always interested in what the “cool kids” are doing these days with their webapps written in Racket. At work, I try to keep up with developments in the Scala world, but I use Racket at work too, when it makes sense, e.g., when I want to create DSLs or I don’t need to hook into the Java ecosystem at all.


lexi.lambda
2018-2-27 18:49:57

For a toy project I am experimenting with, I am interested in using a CLOS-like object system. I know Swindle exists, but its documentation has never been converted to Scribble, and I know little about it. Is it worth looking at? And are there any other CLOS-like object systems implemented for Racket?


samth
2018-2-27 20:09:16

At some point there was something like tinyclos for racket


samth
2018-2-27 20:09:39

Swindle is a full life experience rather than just a library


lexi.lambda
2018-2-27 20:09:57

that is the impression I got from it, yes


lexi.lambda
2018-2-27 20:10:42

I am thinking of implementing something like tinyclos in a way that might play nicely with some of Racket’s idioms, but I’m not sure I’ll actually get around to it


notjack
2018-2-27 20:15:03

what’s the history of swindle anyway?


samth
2018-2-27 20:15:08

That would certainly be a cool thing to have


samth
2018-2-27 20:15:40

Swindle was implemented by Eli Barzilay to try to get as faithful a version of clos as possible


samth
2018-2-27 20:15:46

Long long ago


samth
2018-2-27 20:16:49

It was then re-implemented by him with the “new” expander around 2005 (sic) which was much simpler than the initial version


lexi.lambda
2018-2-27 20:17:51

I will admit that I am thinking about this because I started by trying to use racket/class and just found it kind of unpalatable (sorry matthew and robby)


lexi.lambda
2018-2-27 20:46:44

Does Racket include a topological sorting algorithm anywhere in the distribution?


gknauth
2018-2-27 20:54:42

I don’t know about topological sorting, but Peter Norvig just released a pile of Lisp code from his PAIP book on GitHub: https://github.com/norvig/paip-lisp


gknauth
2018-2-27 20:57:07

Note, I haven’t checked this code, just googled: https://rosettacode.org/wiki/Topological_sort#Racket


githree
2018-2-27 21:50:29

@lexi.lambda out of curiosity - what are your main points of contention re: racket/class


stamourv
2018-2-27 21:56:36

@samth: That’s the best description of swindle I’ve ever seen. :)


lexi.lambda
2018-2-27 22:03:28

@githree I don’t loathe it as much as I probably make it seem, but for my particular use, I would like multiple dispatch, so racket/class is immediately disqualified.


githree
2018-2-27 22:05:57

@lexi.lambda I was actually hoping you would say multiple dispatch as this is one I would gladly welcome - btw have you been dog feeding your own implementation (the one on your blog)?


lexi.lambda
2018-2-27 22:07:50

No, I haven’t. The implementation in my blog post is a toy; I have considered taking it off the package server multiple times to give up the multimethod name. I doubt anyone is using it (and I kind of hope they aren’t). Part of this project might involve combining that approach with something more featureful and CLOS-like.


joelmccracken
2018-2-27 23:05:44

why doesn’t racket have a polymorphic collection processing library again? or does it now?


notjack
2018-2-27 23:32:54

@joelmccracken because implementing one isn’t the main obstacle, adapting documentation and interfaces in common libraries to work in terms of it by default is


lexi.lambda
2018-2-27 23:41:49

joelmccracken
2018-2-27 23:42:37

oh beautiful


joelmccracken
2018-2-27 23:42:42

so it does currently exist


lexi.lambda
2018-2-27 23:42:54

disclaimer: I wrote it, but I don’t really use it


joelmccracken
2018-2-27 23:43:23

oh?


joelmccracken
2018-2-27 23:43:46

i started googling for it and saw you wrote some document about generics in racket on a wiki somewhere


ben
2018-2-28 03:18:08

tsort from the graph library is the closest I know of


lexi.lambda
2018-2-28 03:34:44
#lang swindle
(defclass a ())
(defclass b ())
(defclass c (a b))
(defclass d (b a))
(defclass e (c d))
stderr:
  top-sort: invalid constraints

wonderful


lexi.lambda
2018-2-28 03:37:58

Interestingly, Swindle appears to just straight-up ship tinyclos in swindle/tiny-clos.