Re: [racket-users] hackernews
Can you speak in general terms at RacketCon? > On Apr 16, 2019, at 3:02 PM, dexterla...@gmail.com wrote: > > I use Racket daily in production at Mercury Filmworks (Disney TVA, Amazon, > Netflix productions among others), and I wish I could talk more about how > Racket helps us where it counts. If there was to be an evangelist, I'd be a > candidate, however 1) I don't consider myself a good Racket programmer, and > 2) most of what I work on can't be published. That said, I'd love to write a > case study on our use in production, especially Racket's role in replacing > Python/Bash/Csh scripts with fast, self-contained binaries. I use it for > everything from video formats handling (+ffmpeg) to automation to animation > software plugins. > > Dexter > > On Wednesday, December 26, 2018 at 3:51:21 PM UTC+1, Neil Van Dyke wrote: > Stephen De Gabrielle wrote on 12/26/18 7:40 AM: > > How did other languages grow their audience? e.g. Ruby-on-Rails, Perl, > > Python, PHP, C++, Rust ? > > All of those had merits, were right place and at right time, and (except > Rust) really spread when there was *a lot* less noise and sheer mass of > stuff. Also, some of those had very long ramps to their ultimate > popularity (which could give some hope to Racketeers). > > Ruby with Rails was a decent language that pushed a good model and > automagical conveniences for Web developer productivity, and they seemed > to have a good community (e.g., when I was shopping around for my new > research platform language, and I don't think I'd even heard of Ruby at > that time, one of the nice Ruby people happened to hear about my quest, > and emailed me, suggesting Ruby). > > We talked about Perl growth spikes here recently. > > Python started out as some guy on Usenet with a reusable extension > language (Tcl was another, and some RnRS implementations were another) > -- all 3 of them had interesting innovations and merits. (Tcl got > popular because of Tk GUIs, and then it has some moments in the sun for > earlier database-backed Web servers (as opposed to manually-edited HTML) > while a lot more readable than Perl, and was pushed commercially by > Philip Greenspun, before Sun hired Tcl creator Ousterhout, and Tcl > disappeared, in favor of Java and then LiveScript/JS.) > > PHP was in the early Web gold rush, when template-ish approaches were > attractive alternative to CGI scripts that started as Perl (or, less > likely, other imperative language) code that spat out HTML strings. You > could also do HTML templates various other ways, including in Perl, but > the Web was so new, and the tools so not figured out, and everyone was > racing to do neat stuff (or to get VC funding, then Herman Miller office > furniture and launch party, and then IPO), that there was a lot of > random going on, and we aren't in that kind of environment anymore. > Well, unless you were pitching a "blockchain" startup during the BTC:USD > run-up a year ago -- it didn't much matter what tools you grabbed, so > long as you told the VCs you were doing "blockchain" (you didn't even > have to madlibs pitch "Our startup is like _Uber_, for _cats_! (Can you > handle the sheer force of our raw innovation, unleashed!)"). > > C++ had the funding and promotional/endorsement backing of the people > who brought us C and Unix, and (again) there was a lot less stuff, and a > lot fewer programmers. The people using C were some of the most > technically-skilled programmers: OS-level systems programmers (who also > used assembler), Unix workstation technical application/research > programmers, PC shrinkwrap software developers, and EEs doing software > bits of embedded systems. (The corporate MIS programmers were a > separate group -- they mostly did database forms and reports and > business logic, and there seemed to be subgroups for different > platforms. Much of the MIS seemed to be analogous to today's Web > programmers, and I'm not sure how MIS platform adoption decisions were > made in various kinds of organizations then.) > > Anyway, besides the Bell Labs / AT backing, I recall one thing that > helped push C++ was the people doing GUI and hearing about OO (with > references to Smalltalk), at a time when people were just reasoning > low-level code and ad hoc formalisms, or using pre-OO analysis and > design methods (structured SA and SD, ERDs, etc.), and it was really > easy to sell generalization/polymorphism to those people. Plus AT was > saying C++ would help with mission-critical and performance-critical > large and complex systems, and you had workstation developers like > Mentor Graphics endorsing it. Also, again, the amount of stuff and the > number of programmers was a lot smaller then; one anecdote: by the time > there was a Usenix C++ conference, it was small enough that, while > Stroustrup was talking during a Q in the hotel conference room (maybe > around the scale of
Re: [racket-users] make extensions or replacements
I have a shallow understanding of GNU Make, which is only somewhat less-shallow as a result of recently redesigning my blog to be Makefile-driven. In the process I learned to like using make variables. I learned that a variable can be populated from make functions like $(wildcard) $(patsubst) and the ultimate escape hatch $(shell). So, if you have (say) 5 unique stanzas, it might be possible to arrange this as 5 variables -- each of which is a list of that kind of source or target files. Then you can state the build recipe once in a single rule for each. If the 5 kinds of things have distinct file extensions, or are in distinct subdirs, this is fairly easy to do with $(wildcard) and/or $(patsubt). Otherwise (if you can't or prefer not to give them distinct extensions or locations), then potentially you can use $(shell) to run something that knows how to distinguish them. Maybe a find or grep command. Maybe even a little .rkt program. So my guess is that the means of abstraction you need, does exist in GNU Make. But even so, it sounds like you might not enjoy using it. On Tue, Apr 16, 2019 at 4:13 PM Hendrik Boom wrote: > > On Tue, Apr 16, 2019 at 09:54:03PM +0200, da...@erl.nu wrote: > > Hendrik, > > > > What is that you are trying to do, maybe you are misunderstanding some > > concept about make? > > > > It seems to me that the whole point of make is to "run a program" whenever > > some of the files have changed. > > Yes, that part of make is easy. > > The problem comes when you have many files that have to be made > depending on many files and there is a repetitive nature to the > dependencies. The kind of similarity that is handled by abstraction in > any normal programming language. > > And make itself has rules that can be used to do things like make *.out > files from *.in files based on the file types, a long as the rules can > be expanded by filling in the rest of the file names. These are used > when it provides, say, default rules to compile .c files to .o files > and the like. > > This is, I guess, a kind of abstraction. But abstraction that takes > only one parameter is a poor kind of abstraction. > > There seems to be no mechanism to provide additional parameters to > these rules, to accomodate slight variations in the stanzas. > > I've thought of using Racket to generate stanzas. Or to avoid > generating Makefiles altogether and directly implement make-like > semantics in Racket using its profound flexibility and then to use > Racket code to Make whatever I want. > > But maybe, just maybe, there are already better tools than GNU make. > > -- hendrik > > > > > > Regards, > > > > David > > > > On 2019-04-16 21:25, Hendrik Boom wrote: > > > I'm sending this here, not because it's directly related to Racket, > > > nor because i think you all are experts in make or GNU make, but > > > because you are reasonable erudite in language appreciation. > > > > > > I, like many others, have been using a Makefile as a recipe to make a > > > lot of files from other files. > > > > > > The trouble is that a lot of the stanzas are quite repetitive. I want > > > to refactor. > > > > > > If I were writing this in any other language then make, i would just > > > define a function with about three or four short parameters and call it > > > many times, each time doing the equivalent of several of these stanzas. > > > > > > Roughly speaking, the abstraction tools of GNU Make are terrible. > > > > > > I'd like to ask you, what other tools might you actually recommend to > > > used in addition to make, or instead of it, that make the build > > > process more like normal programming? > > > > > > If I could get make to run a program to make another makefile and then > > > execute that new makefile, I suppose I could write the program that > > > makes all the repetitive (but not quite the same) stanzas. But that > > > would likely make the build process somewhat obscure. > > > > > > Sure, I could invent something. But chances are, someone else already > > > has invented something better than I'd improvise. > > > > > > -- hendrik > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Racket Users" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to racket-users+unsubscr...@googlegroups.com. > > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit
Re: [racket-users] make extensions or replacements
On Tue, Apr 16, 2019 at 10:13:47PM +0200, Jens Axel Søgaard wrote: > Hav you tried the make library? > > https://docs.racket-lang.org/make/index.html?q=make Yes. That would work. And that's the kind of answer I was hoping for. I'd use the make/proc form after using some function calls (with as many arguments as I like) to build the lists it takes as arguments. -- hendrik > > Den tir. 16. apr. 2019 kl. 21.54 skrev : > > > Hendrik, > > > > What is that you are trying to do, maybe you are misunderstanding some > > concept about make? > > > > It seems to me that the whole point of make is to "run a program" > > whenever > > some of the files have changed. > > > > Regards, > > > > David > > > > On 2019-04-16 21:25, Hendrik Boom wrote: > > > I'm sending this here, not because it's directly related to Racket, > > > nor because i think you all are experts in make or GNU make, but > > > because you are reasonable erudite in language appreciation. > > > > > > I, like many others, have been using a Makefile as a recipe to make a > > > lot of files from other files. > > > > > > The trouble is that a lot of the stanzas are quite repetitive. I want > > > to refactor. > > > > > > If I were writing this in any other language then make, i would just > > > define a function with about three or four short parameters and call it > > > many times, each time doing the equivalent of several of these stanzas. > > > > > > Roughly speaking, the abstraction tools of GNU Make are terrible. > > > > > > I'd like to ask you, what other tools might you actually recommend to > > > used in addition to make, or instead of it, that make the build > > > process more like normal programming? > > > > > > If I could get make to run a program to make another makefile and then > > > execute that new makefile, I suppose I could write the program that > > > makes all the repetitive (but not quite the same) stanzas. But that > > > would likely make the build process somewhat obscure. > > > > > > Sure, I could invent something. But chances are, someone else already > > > has invented something better than I'd improvise. > > > > > > -- hendrik > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Racket Users" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to racket-users+unsubscr...@googlegroups.com. > > For more options, visit https://groups.google.com/d/optout. > > > > > -- > -- > Jens Axel Søgaard > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] make extensions or replacements
I think the tool to use depends on what you want to achieve =) Do you have an example of what you think is missing? I like the idea that maybe you want to make use racket to generate some Makefile's to your liking. Maybe using #lang scribble/text Best Regards, David On 2019-04-16 22:13, Hendrik Boom wrote: On Tue, Apr 16, 2019 at 09:54:03PM +0200, da...@erl.nu wrote: Hendrik, What is that you are trying to do, maybe you are misunderstanding some concept about make? It seems to me that the whole point of make is to "run a program" whenever some of the files have changed. Yes, that part of make is easy. The problem comes when you have many files that have to be made depending on many files and there is a repetitive nature to the dependencies. The kind of similarity that is handled by abstraction in any normal programming language. And make itself has rules that can be used to do things like make *.out files from *.in files based on the file types, a long as the rules can be expanded by filling in the rest of the file names. These are used when it provides, say, default rules to compile .c files to .o files and the like. This is, I guess, a kind of abstraction. But abstraction that takes only one parameter is a poor kind of abstraction. There seems to be no mechanism to provide additional parameters to these rules, to accomodate slight variations in the stanzas. I've thought of using Racket to generate stanzas. Or to avoid generating Makefiles altogether and directly implement make-like semantics in Racket using its profound flexibility and then to use Racket code to Make whatever I want. But maybe, just maybe, there are already better tools than GNU make. -- hendrik Regards, David On 2019-04-16 21:25, Hendrik Boom wrote: > I'm sending this here, not because it's directly related to Racket, > nor because i think you all are experts in make or GNU make, but > because you are reasonable erudite in language appreciation. > > I, like many others, have been using a Makefile as a recipe to make a > lot of files from other files. > > The trouble is that a lot of the stanzas are quite repetitive. I want > to refactor. > > If I were writing this in any other language then make, i would just > define a function with about three or four short parameters and call it > many times, each time doing the equivalent of several of these stanzas. > > Roughly speaking, the abstraction tools of GNU Make are terrible. > > I'd like to ask you, what other tools might you actually recommend to > used in addition to make, or instead of it, that make the build > process more like normal programming? > > If I could get make to run a program to make another makefile and then > execute that new makefile, I suppose I could write the program that > makes all the repetitive (but not quite the same) stanzas. But that > would likely make the build process somewhat obscure. > > Sure, I could invent something. But chances are, someone else already > has invented something better than I'd improvise. > > -- hendrik -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] make extensions or replacements
Hav you tried the make library? https://docs.racket-lang.org/make/index.html?q=make Den tir. 16. apr. 2019 kl. 21.54 skrev : > Hendrik, > > What is that you are trying to do, maybe you are misunderstanding some > concept about make? > > It seems to me that the whole point of make is to "run a program" > whenever > some of the files have changed. > > Regards, > > David > > On 2019-04-16 21:25, Hendrik Boom wrote: > > I'm sending this here, not because it's directly related to Racket, > > nor because i think you all are experts in make or GNU make, but > > because you are reasonable erudite in language appreciation. > > > > I, like many others, have been using a Makefile as a recipe to make a > > lot of files from other files. > > > > The trouble is that a lot of the stanzas are quite repetitive. I want > > to refactor. > > > > If I were writing this in any other language then make, i would just > > define a function with about three or four short parameters and call it > > many times, each time doing the equivalent of several of these stanzas. > > > > Roughly speaking, the abstraction tools of GNU Make are terrible. > > > > I'd like to ask you, what other tools might you actually recommend to > > used in addition to make, or instead of it, that make the build > > process more like normal programming? > > > > If I could get make to run a program to make another makefile and then > > execute that new makefile, I suppose I could write the program that > > makes all the repetitive (but not quite the same) stanzas. But that > > would likely make the build process somewhat obscure. > > > > Sure, I could invent something. But chances are, someone else already > > has invented something better than I'd improvise. > > > > -- hendrik > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- -- Jens Axel Søgaard -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] make extensions or replacements
On Tue, Apr 16, 2019 at 09:54:03PM +0200, da...@erl.nu wrote: > Hendrik, > > What is that you are trying to do, maybe you are misunderstanding some > concept about make? > > It seems to me that the whole point of make is to "run a program" whenever > some of the files have changed. Yes, that part of make is easy. The problem comes when you have many files that have to be made depending on many files and there is a repetitive nature to the dependencies. The kind of similarity that is handled by abstraction in any normal programming language. And make itself has rules that can be used to do things like make *.out files from *.in files based on the file types, a long as the rules can be expanded by filling in the rest of the file names. These are used when it provides, say, default rules to compile .c files to .o files and the like. This is, I guess, a kind of abstraction. But abstraction that takes only one parameter is a poor kind of abstraction. There seems to be no mechanism to provide additional parameters to these rules, to accomodate slight variations in the stanzas. I've thought of using Racket to generate stanzas. Or to avoid generating Makefiles altogether and directly implement make-like semantics in Racket using its profound flexibility and then to use Racket code to Make whatever I want. But maybe, just maybe, there are already better tools than GNU make. -- hendrik > > Regards, > > David > > On 2019-04-16 21:25, Hendrik Boom wrote: > > I'm sending this here, not because it's directly related to Racket, > > nor because i think you all are experts in make or GNU make, but > > because you are reasonable erudite in language appreciation. > > > > I, like many others, have been using a Makefile as a recipe to make a > > lot of files from other files. > > > > The trouble is that a lot of the stanzas are quite repetitive. I want > > to refactor. > > > > If I were writing this in any other language then make, i would just > > define a function with about three or four short parameters and call it > > many times, each time doing the equivalent of several of these stanzas. > > > > Roughly speaking, the abstraction tools of GNU Make are terrible. > > > > I'd like to ask you, what other tools might you actually recommend to > > used in addition to make, or instead of it, that make the build > > process more like normal programming? > > > > If I could get make to run a program to make another makefile and then > > execute that new makefile, I suppose I could write the program that > > makes all the repetitive (but not quite the same) stanzas. But that > > would likely make the build process somewhat obscure. > > > > Sure, I could invent something. But chances are, someone else already > > has invented something better than I'd improvise. > > > > -- hendrik > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] make extensions or replacements
Hendrik, What is that you are trying to do, maybe you are misunderstanding some concept about make? It seems to me that the whole point of make is to "run a program" whenever some of the files have changed. Regards, David On 2019-04-16 21:25, Hendrik Boom wrote: I'm sending this here, not because it's directly related to Racket, nor because i think you all are experts in make or GNU make, but because you are reasonable erudite in language appreciation. I, like many others, have been using a Makefile as a recipe to make a lot of files from other files. The trouble is that a lot of the stanzas are quite repetitive. I want to refactor. If I were writing this in any other language then make, i would just define a function with about three or four short parameters and call it many times, each time doing the equivalent of several of these stanzas. Roughly speaking, the abstraction tools of GNU Make are terrible. I'd like to ask you, what other tools might you actually recommend to used in addition to make, or instead of it, that make the build process more like normal programming? If I could get make to run a program to make another makefile and then execute that new makefile, I suppose I could write the program that makes all the repetitive (but not quite the same) stanzas. But that would likely make the build process somewhat obscure. Sure, I could invent something. But chances are, someone else already has invented something better than I'd improvise. -- hendrik -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[racket-users] make extensions or replacements
I'm sending this here, not because it's directly related to Racket, nor because i think you all are experts in make or GNU make, but because you are reasonable erudite in language appreciation. I, like many others, have been using a Makefile as a recipe to make a lot of files from other files. The trouble is that a lot of the stanzas are quite repetitive. I want to refactor. If I were writing this in any other language then make, i would just define a function with about three or four short parameters and call it many times, each time doing the equivalent of several of these stanzas. Roughly speaking, the abstraction tools of GNU Make are terrible. I'd like to ask you, what other tools might you actually recommend to used in addition to make, or instead of it, that make the build process more like normal programming? If I could get make to run a program to make another makefile and then execute that new makefile, I suppose I could write the program that makes all the repetitive (but not quite the same) stanzas. But that would likely make the build process somewhat obscure. Sure, I could invent something. But chances are, someone else already has invented something better than I'd improvise. -- hendrik -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] hackernews
I use Racket daily in production at Mercury Filmworks (Disney TVA, Amazon, Netflix productions among others), and I wish I could talk more about how Racket helps us where it counts. If there was to be an evangelist, I'd be a candidate, however 1) I don't consider myself a good Racket programmer, and 2) most of what I work on can't be published. That said, I'd love to write a case study on our use in production, especially Racket's role in replacing Python/Bash/Csh scripts with fast, self-contained binaries. I use it for everything from video formats handling (+ffmpeg) to automation to animation software plugins. Dexter On Wednesday, December 26, 2018 at 3:51:21 PM UTC+1, Neil Van Dyke wrote: > > Stephen De Gabrielle wrote on 12/26/18 7:40 AM: > > How did other languages grow their audience? e.g. Ruby-on-Rails, Perl, > > Python, PHP, C++, Rust ? > > All of those had merits, were right place and at right time, and (except > Rust) really spread when there was *a lot* less noise and sheer mass of > stuff. Also, some of those had very long ramps to their ultimate > popularity (which could give some hope to Racketeers). > > Ruby with Rails was a decent language that pushed a good model and > automagical conveniences for Web developer productivity, and they seemed > to have a good community (e.g., when I was shopping around for my new > research platform language, and I don't think I'd even heard of Ruby at > that time, one of the nice Ruby people happened to hear about my quest, > and emailed me, suggesting Ruby). > > We talked about Perl growth spikes here recently. > > Python started out as some guy on Usenet with a reusable extension > language (Tcl was another, and some RnRS implementations were another) > -- all 3 of them had interesting innovations and merits. (Tcl got > popular because of Tk GUIs, and then it has some moments in the sun for > earlier database-backed Web servers (as opposed to manually-edited HTML) > while a lot more readable than Perl, and was pushed commercially by > Philip Greenspun, before Sun hired Tcl creator Ousterhout, and Tcl > disappeared, in favor of Java and then LiveScript/JS.) > > PHP was in the early Web gold rush, when template-ish approaches were > attractive alternative to CGI scripts that started as Perl (or, less > likely, other imperative language) code that spat out HTML strings. You > could also do HTML templates various other ways, including in Perl, but > the Web was so new, and the tools so not figured out, and everyone was > racing to do neat stuff (or to get VC funding, then Herman Miller office > furniture and launch party, and then IPO), that there was a lot of > random going on, and we aren't in that kind of environment anymore. > Well, unless you were pitching a "blockchain" startup during the BTC:USD > run-up a year ago -- it didn't much matter what tools you grabbed, so > long as you told the VCs you were doing "blockchain" (you didn't even > have to madlibs pitch "Our startup is like _Uber_, for _cats_! (Can you > handle the sheer force of our raw innovation, unleashed!)"). > > C++ had the funding and promotional/endorsement backing of the people > who brought us C and Unix, and (again) there was a lot less stuff, and a > lot fewer programmers. The people using C were some of the most > technically-skilled programmers: OS-level systems programmers (who also > used assembler), Unix workstation technical application/research > programmers, PC shrinkwrap software developers, and EEs doing software > bits of embedded systems. (The corporate MIS programmers were a > separate group -- they mostly did database forms and reports and > business logic, and there seemed to be subgroups for different > platforms. Much of the MIS seemed to be analogous to today's Web > programmers, and I'm not sure how MIS platform adoption decisions were > made in various kinds of organizations then.) > > Anyway, besides the Bell Labs / AT backing, I recall one thing that > helped push C++ was the people doing GUI and hearing about OO (with > references to Smalltalk), at a time when people were just reasoning > low-level code and ad hoc formalisms, or using pre-OO analysis and > design methods (structured SA and SD, ERDs, etc.), and it was really > easy to sell generalization/polymorphism to those people. Plus AT was > saying C++ would help with mission-critical and performance-critical > large and complex systems, and you had workstation developers like > Mentor Graphics endorsing it. Also, again, the amount of stuff and the > number of programmers was a lot smaller then; one anecdote: by the time > there was a Usenix C++ conference, it was small enough that, while > Stroustrup was talking during a Q in the hotel conference room (maybe > around the scale of current RacketCon), some toddler goes running up the > aisle from the back of the room, saying something like "daddy!", and > everyone laughs. >
Re: [racket-users] Is there a way to find where some feature is implemented in racket?
DrRacket: In addition to the open defining file feature that Matthias mentioned, you might like the File | Open Require Path command. racket-mode: M-. aka racket-visit-definition and C-c C-x C-f aka racket-open-require-path are the respective equivalents. [Also C-M-. aka racket-visit-module when you have point on a relative or absolute path inside a `require` form. (Although this doesn't yet know how to handle `multi-in` forms.)] For general spelunking I've found the interactive search from "open require path" to be pretty great. On Tue, Apr 16, 2019 at 8:44 AM Matthias Felleisen wrote: > > > > On Apr 16, 2019, at 8:31 AM, zeRusski wrote: > > I suspect I'm not the first to ask, but my search-fu has failed me here. > Apologies if the question has already been answered on that list. > > When I read Racket docs I sometimes wonder how a particular feature is > implemented. Looking at the source sometimes shed light or simply teaches you > things. However I find myself grepping Racket source and very often failing. > Is there a better way? Latest such encounter was s-exp meta language. I > assume its implemented somewhere, but grep mostly just shows scribblings or > its use sites. What "algo" should I employ to find relevant source of a > thing? Would be grand to have links from docs, but its probably quite > involved. > > > > Open DrRacket. > Use the feature in a syntactically correct way. > Click (depending on your OS) on the identifier to open defining file. > > Like so. > > #lang racktet/base > (provide) > > Right-click on provide. > See > > (module reqprov '#%kernel > (#%require "define.rkt" > (for-syntax '#%kernel > "stx.rkt" "stxcase-scheme.rkt" "small-scheme.rkt" > "stxloc.rkt" "qqstx.rkt" "more-scheme.rkt" > "member.rkt" > "../require-transform.rkt" > "../provide-transform.rkt" > "struct-info.rkt")) > > (#%provide lib file planet submod > for-syntax for-template for-label for-meta > require > only-in rename-in prefix-in except-in combine-in only-meta-in > relative-in > provide > all-defined-out all-from-out > rename-out except-out prefix-out struct-out combine-out > protect-out > local-require) > .. .. .. > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] Is there a way to find where some feature is implemented in racket?
> On Apr 16, 2019, at 8:31 AM, zeRusski wrote: > > I suspect I'm not the first to ask, but my search-fu has failed me here. > Apologies if the question has already been answered on that list. > > When I read Racket docs I sometimes wonder how a particular feature is > implemented. Looking at the source sometimes shed light or simply teaches you > things. However I find myself grepping Racket source and very often failing. > Is there a better way? Latest such encounter was s-exp meta language. I > assume its implemented somewhere, but grep mostly just shows scribblings or > its use sites. What "algo" should I employ to find relevant source of a > thing? Would be grand to have links from docs, but its probably quite > involved. > Open DrRacket. Use the feature in a syntactically correct way. Click (depending on your OS) on the identifier to open defining file. Like so. #lang racktet/base (provide) Right-click on provide. See (module reqprov '#%kernel (#%require "define.rkt" (for-syntax '#%kernel "stx.rkt" "stxcase-scheme.rkt" "small-scheme.rkt" "stxloc.rkt" "qqstx.rkt" "more-scheme.rkt" "member.rkt" "../require-transform.rkt" "../provide-transform.rkt" "struct-info.rkt")) (#%provide lib file planet submod for-syntax for-template for-label for-meta require only-in rename-in prefix-in except-in combine-in only-meta-in relative-in provide all-defined-out all-from-out rename-out except-out prefix-out struct-out combine-out protect-out local-require) .. .. .. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[racket-users] Is there a way to find where some feature is implemented in racket?
I suspect I'm not the first to ask, but my search-fu has failed me here. Apologies if the question has already been answered on that list. When I read Racket docs I sometimes wonder how a particular feature is implemented. Looking at the source sometimes shed light or simply teaches you things. However I find myself grepping Racket source and very often failing. Is there a better way? Latest such encounter was s-exp meta language. I assume its implemented somewhere, but grep mostly just shows scribblings or its use sites. What "algo" should I employ to find relevant source of a thing? Would be grand to have links from docs, but its probably quite involved. Thanks -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.