sorawee
2019-7-3 07:13:39

Isn’t the first x bound to the second x?

#lang racket

(define-syntax-rule (#%top . y) 'y)
x
(define x 1)
x


jerome.martin.dev
2019-7-3 07:34:31

Stackoverflow is asking people to create ads for Open Source contribution.


jerome.martin.dev
2019-7-3 07:34:49

Maybe we could have Racket there?


pocmatos
2019-7-3 07:36:10

@jerome.martin.dev agreed, do you know what the requirements are?


jerome.martin.dev
2019-7-3 07:37:16

> The image that you create must be 300 pixels by 250 pixels, or twice that if high DPI. > Must be hosted through our standard image uploader (imgur) > Must be GIF or PNG > No animated GIFs > Absolute limit on file size of 150 KB > Must have a 1px border if (part of) the background is white, 2px if the image is high DPI.


jerome.martin.dev
2019-7-3 07:38:24

Also, in order for the ad to appear on the site, the post on SO must have an upvote score of 6 of higher.


pocmatos
2019-7-3 07:39:04

That sounds doable although I am not an artist.


jerome.martin.dev
2019-7-3 07:39:48

I can handle something, but I’d like some kind of catch phrase on it. Brainstorming time?


jerome.martin.dev
2019-7-3 07:41:07

> It must be an advertisement soliciting the participation and contribution of programmers writing actual source code.


pocmatos
2019-7-3 07:42:39

Help us make the Racket even greater!


jerome.martin.dev
2019-7-3 07:42:51

ahah :smile:


pocmatos
2019-7-3 07:43:04

Should we focus on revamping CONTRIBUTING.md and have that as clickthrough.


pocmatos
2019-7-3 07:43:09

I am happy to look at it later on.


pocmatos
2019-7-3 07:43:24

I think @spdegabrielle has looked at this before.


jerome.martin.dev
2019-7-3 07:43:30

Yeah, sounds good.



pocmatos
2019-7-3 07:44:27

Oh, it was @dstorrs, for some reason I thought it was @spdegabrielle. My apologies.


jerome.martin.dev
2019-7-3 07:46:08

Oh yeah I remember, I had suggested some changes in that PR. I think it’s already pretty good as it is. Maybe it lacks some kind of “Near future objectives” or “List of first-timer issues”


pocmatos
2019-7-3 07:46:27

Unfortunately I don’t actually like the PR. Nothing against @dstorrs or @spdegabrielle work (he did discuss this in the ML) but as @mflatt said in the list, the file proposed is not related to Racket contributions per-se.


jerome.martin.dev
2019-7-3 07:47:09

oh, I see, yeah, it’s more of a Github tutorial


pocmatos
2019-7-3 07:47:18

My take is that the file should be succint and contain the places where people can contribute to: Racket code, C subsystem / Chez, Testing/CI, and Documentation.


pocmatos
2019-7-3 07:47:44

We should then point to places where each of these live and maybe explain how the parts are connected.


jerome.martin.dev
2019-7-3 07:47:57

yep, definitely a good idea


pocmatos
2019-7-3 07:48:06

Github related stuff - how to fork, PR, etc, should probably go into the wiki.


pocmatos
2019-7-3 07:48:34

Here I should kudo @spdegabrielle - as far as I understand it, he’s on a mission to improve the wiki.


pocmatos
2019-7-3 07:49:25

Is there a deadline for this ad thingy?


jerome.martin.dev
2019-7-3 07:50:19

I can’t find a deadline in the post. It has been posted yesterday, FWIW


pocmatos
2019-7-3 08:37:42

I have asked.


pocmatos
2019-7-3 08:39:39

@mflatt with regards to the linklet related stuff, with -c and -o I do get a linklet but my program has been optimized away as it doesn’t seem to see the code in the main submodule. And if I try to use --submod main it will load my program and not generate a linklet. I wouldn’t think it is necessary to evaluate the code in order to compile to a linklet, surely it’s not given you generate the linklet to compile to CS.


pocmatos
2019-7-3 09:22:41

@jerome.martin.dev There's no deadline, @PauloMatos, and the ads will run until the next cycle (Jan. '20). – JNat♦ 1 hour ago


pocmatos
2019-7-3 09:23:15

we can use this as motivation to get a CONTRIBUTING.md up.


pocmatos
2019-7-3 11:07:26

@sanchom true, we do that in gcc with the easy-hack tag. However, it’s not always easy to assign them but we could give it a go. @samth @mflatt what do you think?


samth
2019-7-3 12:44:40

I think it is tricky to label such but it’s a good idea


laurent.orseau
2019-7-3 13:35:04

@mflatt After upgrading from 7.3.0.12 to 7.3.0.13 make cs RACKET=racket goes further, but now I have the following message:


laurent.orseau
2019-7-3 13:35:38

mflatt
2019-7-3 13:39:25

Looks like something has gone wrong with incremental build. Not sure what, and I can try investigating later, but it may be simplest to just discard “/home/orseau/build/racket/racket/src/build/” and try again.


pocmatos
2019-7-3 13:39:47

@laurent.orseau remove all compiled directories from your build and try again. find . -type d -name compiled -exec rm -R \{\} \;


laurent.orseau
2019-7-3 13:42:19

@pocmatos Thanks, will try. Is there something like make clean instead? (there’s a CLEAN_MODE, but not sure what this is for)


pocmatos
2019-7-3 13:44:07

I always run git clean -xdf before a build.


laurent.orseau
2019-7-3 13:44:47

good idea, thanks!


laurent.orseau
2019-7-3 13:46:13

:+1:


laurent.orseau
2019-7-3 13:47:39
Simplifying definitions...
Removing unused definitions...
Can remove 1009 of 3645 defined names, keeping 2636
Checking that references outside the runtime were removed by simplification...

That looks cool! :smile:


pocmatos
2019-7-3 14:23:32

@mflatt do you know what’s going on in here and if it’s possible from the command line to get a linklet for a whole program with bootstrap-run.rkt or something else? Otherwise, I will try to dig in the source code how this is done for ChezScheme so I can reproduce the procedure for my own use.


mflatt
2019-7-3 16:43:18

I’ve pushed a repair so that -x mode handles --submod in the way that you’d expect. Also, it no longer runs the starting module on the way to extracting a linklet. You won’t be able to extract a linklet for a module that references read, though. Probably it would be useful to have a mode that makes linklet imports for references to non-primitives.


pocmatos
2019-7-3 17:49:16

Thanks, what’s special about read?


mflatt
2019-7-3 18:31:47

It’s implemented by the expander layer, so not a primitive at the level of linklets, but it’s also not available to flatten into the linklet.


pocmatos
2019-7-3 18:48:12

How does it ever work for RacketCS? My understanding was that all was converted to linklet and schemefy would convert to Chez and Chez would take it from there. Let me go back a few steps. I am working on JSC, the WebKit JavaScript compiler full time at the moment but I have some time to devote to work to enhance my knowledge of the JavaScript language. So I thought : “Cool, I will write a simple Racket -> JavaScript compiler and then see how far I can take it”. in one of your talks you mention that all is flattened into linklets so new Racket backends can take it from there. I thought the process of getting the linklet was slightly more straighforward but I am spending quite a bit of time trying to flatten to a linklet. Am I going in the right direction at all?


mflatt
2019-7-3 19:33:31

The Racket CS build has to flatten the expander, and that’s the end of the line for flattening. From there, the expander takes over. Specifically, the expander compiles any module that needs read into a linklet that takes read as an input. So, if you’re running Racket on Javascript, then a primitive read isn’t needed from a Javascript back end. But if you’re trying to flatten arbitrary Racket programs, then the expander’s functionality constitutes a unique gap between what the expander/flattener expects as primitives and what it can integrate into a flattened linklet.


mflatt
2019-7-3 19:35:36

I think some facet of the expander’s uniqueness is inherent to the expander. For something like read, though, the problem could be solved in some way. It’s just that no solution was needed for Racket CS, so the problem hasn’t been solved, so far.


spdegabrielle
2019-7-4 01:01:46

@jerome.martin.dev @pocmatos @dstorrs I’ve updated https://github.com/racket/racket/wiki/Contributing-to-Racket with the contents of that patch. i work on it because it is easy, and I’m aware that the github project it might be the first thing a developer sees


pocmatos
2019-7-4 06:49:11

Thanks for the explanation, although I am not convinced I understood all the nuances of the read handling or why it is special. This is definitely one of the areas I wish I had more time to explore. I think I will start with putting some breakpoints in racketcs and see what the flow is.