Re: [racket-users] packages with separate -lib -test and -doc [Was: Package layout in docs]
At Fri, 3 Feb 2017 17:17:18 -0800 (PST), Dupéron Georges wrote: > if there was a way to refer to a module with @racketmodname[] only if > it is installed (a "weak" documentation reference, if you will) That's supported as `@racketmodname[ #:indirect]`. -- 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] link: bad variable linkage
This is the commit: https://github.com/racket/drracket/commit/81d74e484c306c3584030cf8ede29825c0e8be1a I pushed it around the time 6.5 was released and it is the kind of thing I would do right after a release branch has been created, so probably it was only 6.6 and later. Robby On Fri, Feb 3, 2017 at 7:15 PM, Dan Liebgoldwrote: > On Saturday, March 26, 2016 at 4:53:51 PM UTC-7, Robby Findler wrote: >> Matthew and I have figured out one way in which DrRacket could go >> wrong here and implemented a better strategy. The problem we >> identified doesn't explain the symptoms expressed here in this thread >> exactly, but it is a complex system and maybe there was some piece >> missing from the explanations that I didn't think to ask about. >> Finger's crossed that it helps! >> > > I was getting this error and variations on it somewhat often in version 6.5. > Do you think upgrading to 6.8 will help? > > Thanks, > Dan > > -- > 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.
[racket-users] packages with separate -lib -test and -doc [Was: Package layout in docs]
Hi Neil, I'm starting a new thread to avoid hijacking the "Package layout in docs" thread. Le mardi 31 janvier 2017 20:25:31 UTC+1, Neil Van Dyke a écrit : > Greg Trzeciak wrote on 01/31/2017 01:24 PM: > > Speaking of packages - there seems to be a trend recently in racket > > packages to create separate packages for main, lib, doc, test, etc. This > > causes an artificial inflation in available packages and IMHO may cause > > some confusion for newcomers as instead of finding eg. "PackageX" we now > > get the following instead: > > I agree with Greg that this looks like people are going out of their way > to make clutter. I don't think that ever should have been encouraged. I have two such packages which are split in pkg/lib/test/doc. In both cases, it was not my desire, but rather a constraint. In the first case, the whole package was taking too long to build on pkg-build, and that package (as well as those depending on it) were therefore marked as failing to build. There's a hard 20 minutes limit on pkg-build, it is not a very fast machine (Travis builds the package *and* all its dependencies in about 15 minutes), and performance varies from build to build, due to the server's load I guess — it sometimes takes several minutes more than usual, and having builds randomly fail every time I push a change or one of the dependencies is changed is not acceptable. In the second case, I was referring in the documentation to uses of the package: "this package is used for example to build @racketmodname[package-bar]". Unfortunately, this creates a cyclic dependency (foo's doc depends on bar's doc, and bar depends on foo). The pkg-build server and raco pkg can handle cyclic dependencies, I think, but all the packages part of the cycle have to be built at the same time on pkg-build (within the 20 minutes time frame). In order to avoid timeouts in the future, and in order to avoid having this messy cyclic dependency, I chose to split out the documentation. In both cases, I'd rather avoid doing so. If there was a way to increase the timeout on pkg-build, and if there was a way to refer to a module with @racketmodname[] only if it is installed (a "weak" documentation reference, if you will), then I would not have needed to split these two packages (a painful operation which I really would have preferred to avoid). The first point (timeout) has been discussed several times, so I remain hopeful that at some point in the future the timeout becomes configurable. The second point seems more like an edge case, and I'm not sure it is actually a good idea, and I'm not sure scribble has the right primitives to do this (knowing that if a weakly-referred-to module name or defproc is installed, the documentation for the referring package needs to be rebuilt). Simply grouping together the packages in the catalog seems like a good idea to me, as there will always be some reasons to need to do this. Cheers, -- Georges Dupéron -- 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] link: bad variable linkage
On Saturday, March 26, 2016 at 4:53:51 PM UTC-7, Robby Findler wrote: > Matthew and I have figured out one way in which DrRacket could go > wrong here and implemented a better strategy. The problem we > identified doesn't explain the symptoms expressed here in this thread > exactly, but it is a complex system and maybe there was some piece > missing from the explanations that I didn't think to ask about. > Finger's crossed that it helps! > I was getting this error and variations on it somewhat often in version 6.5. Do you think upgrading to 6.8 will help? Thanks, Dan -- 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] Confused about syntax properties
On Fri, Feb 3, 2017 at 10:38 AM, Dupéron Georgeswrote: > * I'm not 100% sure if #%stratified-body, #%plain-module-begin and > #%printing-module-begin can be overridden in a useful way or not. `#%stratified-body` is a way to get an older kind of internal definition context, useful for implementing forms that are more restrictive than Racket's usual internal definitions. It can't be overridden in those contexts, typically. `#%plain-module-begin` is a renaming of `#%module-begin` from `'#%kernel`, similar to `#%plain-app`. `#%printing-module-begin` is just like the module-begin form used by `#lang racket`, but without adding any submodules. Other uses of the "#%" prefix: Typed Racket names the submodule with contract definitions `#%contract-defs`. Sam -- 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] Confused about syntax properties
Thanks, that's very informative! On Fri, Feb 3, 2017 at 10:38 AM, Dupéron Georges < jahvascriptman...@gmail.com> wrote: > Le vendredi 3 février 2017 11:28:47 UTC+1, Laurent Orseau a écrit : > > I see. So basically all #% things are extension points? > > The list for the racket language: > > > > http://docs.racket-lang.org/search/index.html?q=%23%25%20L%3Aracket > > I think #% just means "low-level". > * #%declare, #%expression, #%require, #%provide and #%variable-reference > are built-in forms with special meanings, and it does not really make sense > to override them. > * #lang racket/base overrides #%app, and re-provides the original as > #%plain-app, so it is just an alias for the #%app from the '#%kernel. The > same goes for #%plain-lambda. > * #%app, #%datum, #%module-begin, #%top and #%top-interaction are > extension points (for function calls, self-quoting data, handling the body > of the entire module, unbound variables and REPL interactions, respectively) > * I'm not 100% sure if #%stratified-body, #%plain-module-begin and > #%printing-module-begin can be overridden in a useful way or not. > > -- > 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] Confused about syntax properties
Le vendredi 3 février 2017 11:28:47 UTC+1, Laurent Orseau a écrit : > I see. So basically all #% things are extension points? > The list for the racket language: > > http://docs.racket-lang.org/search/index.html?q=%23%25%20L%3Aracket I think #% just means "low-level". * #%declare, #%expression, #%require, #%provide and #%variable-reference are built-in forms with special meanings, and it does not really make sense to override them. * #lang racket/base overrides #%app, and re-provides the original as #%plain-app, so it is just an alias for the #%app from the '#%kernel. The same goes for #%plain-lambda. * #%app, #%datum, #%module-begin, #%top and #%top-interaction are extension points (for function calls, self-quoting data, handling the body of the entire module, unbound variables and REPL interactions, respectively) * I'm not 100% sure if #%stratified-body, #%plain-module-begin and #%printing-module-begin can be overridden in a useful way or not. -- 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] Confused about syntax properties
I see. So basically all #% things are extension points? The list for the racket language: http://docs.racket-lang.org/search/index.html?q=%23%25%20L%3Aracket On Fri, Feb 3, 2017 at 10:04 AM, Dupéron Georges < jahvascriptman...@gmail.com> wrote: > Le vendredi 3 février 2017 10:56:10 UTC+1, Laurent Orseau a écrit : > > Btw, with "Macro Hiding: Disabled" we can see that after foo is turned > into #'1 (printed '1' in the macro stepper), then the 1 is 'tagged' with > (#%datum . 1) and then right after that turned into (quote 1). Is the > tagging step necessary for numbers? > > Yes, self-quoting values like numbers, vectors, booleans, strings etc. are > wrapped with (#%datum). > > This is an extension point which allows languages to decide what to do > with such values. For example, a language could disallow the use of some > kinds of data, by making #%datum throw an error. This could also be used to > treat the contents of vectors as expressions, so that (let ([x 1]) #(x x > x)) produces #(1 1 1). > > Similar extension points are #%top, which is wrapped around unbound > variables, and #%app, which is prepended to all function calls. > > -- > 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] Confused about syntax properties
Le vendredi 3 février 2017 10:56:10 UTC+1, Laurent Orseau a écrit : > Btw, with "Macro Hiding: Disabled" we can see that after foo is turned into > #'1 (printed '1' in the macro stepper), then the 1 is 'tagged' with (#%datum > . 1) and then right after that turned into (quote 1). Is the tagging step > necessary for numbers? Yes, self-quoting values like numbers, vectors, booleans, strings etc. are wrapped with (#%datum). This is an extension point which allows languages to decide what to do with such values. For example, a language could disallow the use of some kinds of data, by making #%datum throw an error. This could also be used to treat the contents of vectors as expressions, so that (let ([x 1]) #(x x x)) produces #(1 1 1). Similar extension points are #%top, which is wrapped around unbound variables, and #%app, which is prepended to all function calls. -- 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] Confused about syntax properties
Very nice example, thanks Georges. Btw, with "Macro Hiding: Disabled" we can see that after foo is turned into #'1 (printed '1' in the macro stepper), then the 1 is 'tagged' with (#%datum . 1) and then right after that turned into (quote 1). Is the tagging step necessary for numbers? On Fri, Feb 3, 2017 at 5:26 AM, Dupéron Georgeswrote: > PS: a nice example to try in the macro stepper, to see the evaluation > order: > > #lang racket > (define-syntax (foo stx) #'1) > (define-syntax (bar stx) #'foo) > > (let () > bar > (let () > bar > (let () > bar > bar) > (#%expression bar) > bar) > (+ bar bar) > bar) > > -- > 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.