
It certainly is reasonable - it’s just surprising, when you see it for the first time :slightly_smiling_face:


phew - catching up - sorted now. Thanks for the ping.

How does one start DrRacket on MacOS and Windows? (please provide precise instructions, think first time user)

New wiki page for new users who were told to install Racket to try out a file or a package: https://github.com/racket/racket/wiki/Installing-Racket-and-trying-out-a-package-or-a-file In need of some love, please update if you know what to say!

@gknauth

what’s today?

texas independence day, i think

I think a few of the core team used to be based in texas back in the 90’s.

@charles.threlkeld has joined the channel

@pocmatos how do your binaryen bindings relate to @popa.bogdanp’s wasm tools?

They are independent.

@popa.bogdanp is trying to develop wasm tools natively in Racket.

What’s the best way to submit a tiny patch to Chez Scheme that applies both upstream and to the Racket fork? (But where I care more about Racket.) Should I make a PR to <http://github.com/cisco/ChezScheme\|github.com/cisco/ChezScheme>, <http://github.com/racket/ChezScheme\|github.com/racket/ChezScheme>, <http://github.com/racket/racket\|github.com/racket/racket> … or maybe more than one?

Probably should start a thread…

They are independent.

@popa.bogdanp is developing wasm tools natively in racket.

I recommend first doing a PR for racket/racket, and then after that’s merged, submitting to cisco/ChezScheme.

However, due to my work on some Wasm proposals, I had to understand the code of binaryen in-depth and while I was at it, I decided to create these bindings.

racket/ChezScheme is mostly maintained automatically from racket/racket

Binaryen is very mature and actively developed by some of the Wasm founders, who are currently at Google.

Binaryen is first and foremost an optimizer tool but the API that I wrapped allows you to create wasm on the fly and then use the optimizer to improve on that.

Thanks!

so, you could do what you did probably with Bogdan’s code, but you wanted to learn Binaryen, and there are things that only Binaryen can do right now?

I noticed for example that the GC proposal is implemented in Binaryen but not in the API yet. I meet the Wasm google team weekly and therefore have a close relation with binaryen development which helps further development of racket-binaryen. So for example, I told Alon yesterday about the missing GC parts in the API and he promised me that if it’s important for the racket bindings, he would add those.

The API tends to lag a tiny bit compared to the offered features but it’s really good and a very straightforward way of creating wasm from racket.

nice

Alon is a cool guy

I think @popa.bogdanp here took the purist view and therefore, also probably the hard path. :slightly_smiling_face:

well, I’m excited to have lots of people interested in the web platform in Racket

I think at the moment bogdans tools are missing quite a bit of stuff.

For example, there’s apparently no way to read / write wasm in text format.

Yes, this looks very cool: definitely want to check it out more.

Also, it doesn’t contain any optimizer.

And as far as I understand it’s for the wasm mvp only.

Binaryen is atm the most complete implementation of webassembly including proposals that are not yet implemented in the browsers.

Things like tuples, reference types, GC, multiple memories etc. These are all extensions to wasm mvp that are implemented in binaryen and are obviously really useful if you want to do something like racket->wasm.

these extensions are called proposals in wasm land. Unsure how much you’re following discussions.


My daytime job atm is to further the GC proposal and implement it in the LLVM WebAssembly backend. This involves many other things like implementing all the dependent proposals as well since GC depends on a bunch of stuff like reference types, function references, etc. There is a large debate on what sort of type system should be designed around the gc proposal. Given that binaryen is the only implementation that went ahead and implemented a prototypical type system for gc and type canonicalization, I used my exploration into binaryen as an excuse to implement the bindings.

exciting

However, I don’t want the bindings to be solely experimental. I want to stabilize them and have safe wrappers around them.

i have found it hard to tell what the actual status of various proposals are

as in, some of them seem to be very heavily in flux, but also implemented in some places, or described as happening in the near term

right - those in stage 4 are the easy ones.

A lot of the others are in flux.

Mainly because people start to see that sometimes a proposal can be split into multiple ones.

So some split. Others like GC are the big focus because they involve a big amount of theoretical background and there are been lots of academic discussion around them.

A lot of this is currently above brain capacity but this because discussions surrouding the proposals related to GC have taken so long, some implementations like v8 and binaryen have implemented them as prototypes.

although v8 doesn’t implement type canonicalization. The wasm operation rtt.canon
.

Hopefully Igalia will make a dent here this year as we have a very motivated client and very good engineers working on this.

yeah, GC seems like the big one. I always look and it seems like people act like it’s almost here but then I look more and it seems like there are big open questions about whether it will work at all but then it’s also implemented and thus I’m left confused

Anyone on MacOS or on Windows can give me the sequence of actions required to open DrRacket after it has been installed?
For example, on Windows 10, is the simplest thing to do to click on the Windows menu then type drracket
and press enter?

On Mac, I would 1. open spotlight
or other launchers 2. type drracket

or racket -l drracket
at the command line

Great, thanks!

For a Mac without launchers (I use Alfred, but many users have no idea these things exist!), I would probably try Finder > search > http://DrRacket.app\|DrRacket.app or Launchpad > Find http://DrRacket.app\|DrRacket.app > launch

It’s kind of funny that there’s no simple standard way to do it :confused:

@roman.funk66 has joined the channel

So spotlight is not by default on MacOS then?

yeah; most graphical users would probably try launchpad/finder if they don’t use spotlight. Funny in the “sigh, how ironic” kind of way :wink:

spotlight and search in Finder are basically the same thing

no spotlight is builtin (default Cmd+space)

but half my Mac-using friends don’t use it/know it exists?

I’m targeting the unknowlegeable user, so maybe Finder is friendlier

FWIW, the path on my mac is /Applications/Racket v7.9/DrRacket.app
for 7.9; I assume 8.0 is similar

Finder is trickier, because you have to choose/set the searching scope

I would link the text spotlight to a document/video on how to start spotlight.

Erf. So how about “Open spotlight
(cmd+space), type drracket
and press enter” ?

works for me; I like @capfredf’s suggestion too

In the past when I followed the instructions the DrRacket app would have an icon in the Applications
folder in Finder. I think Applications is where naive Mac users open apps? At least I used to.

what about “open the folder “Application”, and click DrRacket’s icon” ……

(I say “used to” past tense meaning when I was using a Mac, before Ubuntu. Not claiming I’m no longer naive. :slightly_smiling_face: )

with the caveat that I can’t remember if choosing non-standard install locations messes with that (:sweat_smile: )

But spotlight is actually the simplest way

Well, non-knowledgeable users always follow the install instructions. Exactly. Perfectly. (cough)

Yeah spotlight seems easiest way to tell people, if you’re writing a tutorial.

“Click the key with the Buddhist symbol, hold it, press spacebar…”. OK I’m joking. It is simplest.

Writing instructions is just :sob:

On Mac OS, a user installs DrRacket by dragging a folder to “Applications”. So they know where it is, and it’s pretty obvious how to run DrRacket. I don’t think anyone has ever asked me how to start DrRacket on Mac OS after installing.
The command line on Mac OS is a different story, though.

So maybe something like “Start DrRacket (if you’re lost, start Spotlight with Cmd+space and enter drracket
)” ?

I think @mflatt has a great point. “You just dragged Racket to the Applications folder to install it. Now click there…” (But if you’re writing for people who didn’t just install it, themselves, like in a lab or something, idk.)

> MacOS: DrRacket is in the Applications folder. Otherwise, open Spotlight (Cmd+space) and enter drracket

@spdegabrielle I see that https://github.com/racket/racket/wiki/Set-your-PATH-environment-variable recommend using xattr
for snapshots…

… but those are now signed and notarized (as of fairly recently, maybe mid-January). So, I think xattr
is no longer — unless you know differently.

Thanks for checking. I’ll remove the xattr line :+1:

Then again, someone will occasionally end up with an installation that the OS doesn’t trust (this seems to happen on specific machines), and then xattr
can be a solution. So, I’m not sure about getting rid of the xattr
mention completely.

Ok - I’ll add it as a separate note

Fixed :grinning:

Next question: You’ve just installed Racket for the first time, you’ve been told to try out a package (say, a game). You don’t know what a command line is. You have succeeded in installing it via the package manager in DrRacket. Now what? One possibility: > In the top panel, type #lang racket
(require an-awesome-game)
> and click on the Run button (top right) or press F5. Is there something better than this? It doesn’t seem optimal.

(Remember that the first time DrRacket is started, it doesn’t have a language, hence the interactions don’t work. Actually, I’m not even sure that typing the above does work either…)

@laurent.orseau I can’t remember where you asked - but I would avoid brew
on macOS (for your purpose here).

gotcha. Why, if I may ask?


If some is using it in a lab it will probably be in the dock as a racket logo

Would it help if I did a video

macOS and windows

Answering Laurent wrt brew
It’s too long of a side quest (first instal brew, then install Racket). Also brew uses the terminal - and downloading the standard distribution from http://download.racket-lang.org\|download.racket-lang.org is easier. Also, of dynamic libraries are involved, none of the standard answers for “where is X normally in the file system” apply.

hah, I’m a regular brew user and even I used the standard distribution download :laughing:

@spdegabrielle: I’m targeting users that don’t have much clue what to do. Others will find their way around. ‘Probably in the dock’ doesn’t sound general enough

A video is a great idea. From my math classes, I know that there lots of bright, young kids around, that never installs extra programs (sometimes not even from app-store). When the see the first dialog on mac with only two options (after “open” on a newly downloaded app) - they just assume “it doesn’t work”. They need to explicit instructions to use “open” twice - and, sigh, explicit instructions to actually read the text in the dialog. Oh - and they don’t know the word “dialog” - use “window”.

When I hear people speak about “young people are great with computers, since they grew up with them” - I think mine.

Don’t quote me on the last part :slightly_smiling_face:

Interesting. There’s a trade-off though. Watching a video is also heavier than just reading one line of text, and takes far longer.

It turns out that there’s a “Configure Command Line for Racket…” option in DrRacket’s “Help” menu on Mac OS!

Yes, text first.

I’m strugging to work out where the DrRacket settigns are stored…hints?

(find-system-path 'pref-file)

Whaaaat! I’ll add that to my video!

Somewhat tangentially, I’ve idly wondered for a while about going in the opposite direction and embedding a wasm engine in Racket. (Either an existing engine or, more ambitiously, compiling to Chez.) The motivation would be a more portable and safer alternative to distributing platform-specific native libraries for FFI packages.

Installing and running Racket for the first time on MacOS @laurent.orseau


helps if I include the link

What’s today’s DrRacket splash screen celebrating?

Texas Indepence Day. It’s a bit silly to keep that one in.

thanks!

Well, on the other hand, all the core creators of DrScheme / DrRacket / HtDP were once together at Rice, in Texas. Yes, long ago, but it’s a big like Genesis in the Bible. Or maybe a subsequent chapter, given Dan Friedman, Jerry Sussman & Guy Steele, John McCarthy, Alonzo Church, …


It adds interest. I forgot to say to run DrRacket every day so you don’t miss out on the other easter eggs

run DrRacket every day so you don’t miss the other easter eggs


What is the channel #racket
for, given that this whole Slack section is about Racket? :slightly_smiling_face:

Also, what’s the difference between #announcements
and #news
? Both sound conceptually very similarly.

I don’t think our Slack channels are really organized, or moderated :slightly_smiling_face:

@sorawee I was looking for potentially interesting channels and got a bit confused. :wink:

Maybe it would make sense to add descriptions to all channels (where possible)? I also had the impression that many channels aren’t really used, but it’s hard to tell since they don’t seem to retain history for longer than two months or so.

I’m not complaining, only trying to make constructive suggestions. :slightly_smiling_face:

A doctor a day keeps the … away?

@k has joined the channel