* 1.8.2 srfi-19 warns about current-time @ 2007-10-05 4:25 Gregory Marton 2007-10-07 16:18 ` Jon Wilson 0 siblings, 1 reply; 10+ messages in thread From: Gregory Marton @ 2007-10-05 4:25 UTC (permalink / raw) To: bug-guile In guile-1.8.2 (use-modules (srfi srfi-19)) warns: WARNING: (guile-user): imported module (srfi srfi-19) overrides core binding `current-time' Apparently one can control this using the #:replace keyword: http://www.gnu.org/software/guile/manual/html_node/Creating-Guile-Modules.html#Creating-Guile-Modules Is there some reason srfi-19 doesn't use this? Thanks, Grem _______________________________________________ Bug-guile mailing list Bug-guile@gnu.org http://lists.gnu.org/mailman/listinfo/bug-guile ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 1.8.2 srfi-19 warns about current-time 2007-10-05 4:25 1.8.2 srfi-19 warns about current-time Gregory Marton @ 2007-10-07 16:18 ` Jon Wilson 2007-10-07 17:22 ` Ludovic Courtès 0 siblings, 1 reply; 10+ messages in thread From: Jon Wilson @ 2007-10-07 16:18 UTC (permalink / raw) To: Gregory Marton; +Cc: bug-guile Hi Gregory, From the very page you linked: SRFI-19, on the other hand, exports its own version of |current-time| (see SRFI-19 Time <http://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Time.html#SRFI_002d19-Time>) which is not compatible with the core |current-time| function (see Time <http://www.gnu.org/software/guile/manual/html_node/Time.html#Time>). Therefore, SRFI-19 does not use |#:replace|. Regards, Jon Gregory Marton wrote: > In guile-1.8.2 (use-modules (srfi srfi-19)) warns: > WARNING: (guile-user): imported module (srfi srfi-19) overrides core > binding `current-time' > > Apparently one can control this using the #:replace keyword: > http://www.gnu.org/software/guile/manual/html_node/Creating-Guile-Modules.html#Creating-Guile-Modules > > > Is there some reason srfi-19 doesn't use this? > > Thanks, > Grem > > > _______________________________________________ > Bug-guile mailing list > Bug-guile@gnu.org > http://lists.gnu.org/mailman/listinfo/bug-guile _______________________________________________ Bug-guile mailing list Bug-guile@gnu.org http://lists.gnu.org/mailman/listinfo/bug-guile ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 1.8.2 srfi-19 warns about current-time 2007-10-07 16:18 ` Jon Wilson @ 2007-10-07 17:22 ` Ludovic Courtès 2007-10-08 15:35 ` Gregory Marton 0 siblings, 1 reply; 10+ messages in thread From: Ludovic Courtès @ 2007-10-07 17:22 UTC (permalink / raw) To: bug-guile Hi, Jon Wilson <jsw@wilsonjc.us> writes: > SRFI-19, on the other hand, exports its own version of |current-time| > (see SRFI-19 Time > <http://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Time.html#SRFI_002d19-Time>) > which is not compatible with the core |current-time| function (see > Time > <http://www.gnu.org/software/guile/manual/html_node/Time.html#Time>). Therefore, > SRFI-19 does not use |#:replace|. FWIW, I think it's pointless to *not* use `:replace' in situations like this where one can reasonably assume the user knows that bindings are going to overridden: http://thread.gmane.org/gmane.lisp.guile.devel/5330 http://thread.gmane.org/gmane.lisp.guile.devel/5360 There is no consensus about it, though. :-) Thanks, Ludovic. _______________________________________________ Bug-guile mailing list Bug-guile@gnu.org http://lists.gnu.org/mailman/listinfo/bug-guile ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 1.8.2 srfi-19 warns about current-time 2007-10-07 17:22 ` Ludovic Courtès @ 2007-10-08 15:35 ` Gregory Marton 2007-10-08 18:00 ` Ludovic Courtès 0 siblings, 1 reply; 10+ messages in thread From: Gregory Marton @ 2007-10-08 15:35 UTC (permalink / raw) To: Ludovic Courtès; +Cc: bug-guile Thanks Jon, Ludovic, I indeed hadn't noticed that it was intentional, but I'm in agreement with Ludovic. I'm concerned that my customer shouldn't be confused and worried by a warning, and I see no way to override the warning myself. This is a bit of overkill, but I thought it might work: (with-error-to-string (lambda () (use-modules (srfi srfi-19)))) But no: use-modules can only be used at top level. Even if I could figure out a way to do that, (I dunno, figuring out what global variable (current-error-port) uses and manually set!ing it to something else temporarily?) I'd be worried about missing actually important warnings. Do I have any option besides forking srfi-19.scm and using :replace? Thanks, Grem > Hi, > > Jon Wilson <jsw@wilsonjc.us> writes: > >> SRFI-19, on the other hand, exports its own version of |current-time| >> (see SRFI-19 Time >> <http://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Time.html#SRFI_002d19-Time>) >> which is not compatible with the core |current-time| function (see >> Time >> <http://www.gnu.org/software/guile/manual/html_node/Time.html#Time>). Therefore, >> SRFI-19 does not use |#:replace|. > > FWIW, I think it's pointless to *not* use `:replace' in situations like > this where one can reasonably assume the user knows that bindings are > going to overridden: > > http://thread.gmane.org/gmane.lisp.guile.devel/5330 > http://thread.gmane.org/gmane.lisp.guile.devel/5360 > > There is no consensus about it, though. :-) > > Thanks, > Ludovic. > > > > _______________________________________________ > Bug-guile mailing list > Bug-guile@gnu.org > http://lists.gnu.org/mailman/listinfo/bug-guile > -- ------ __@ Gregory A. Marton http://csail.mit.edu/~gremio/ --- _`\<,_ . -- (*)/ (*) Now accepting spam for just $1000 per word. ~~~~~~~~~~~~~~~~-~~~~~~~~_~~~_~~~~~v~~~~^^^^~~~~~--~~~~~~~~~~~~~~~++~~~~~~~ _______________________________________________ Bug-guile mailing list Bug-guile@gnu.org http://lists.gnu.org/mailman/listinfo/bug-guile ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 1.8.2 srfi-19 warns about current-time 2007-10-08 15:35 ` Gregory Marton @ 2007-10-08 18:00 ` Ludovic Courtès 2007-10-08 20:51 ` Gregory Marton 0 siblings, 1 reply; 10+ messages in thread From: Ludovic Courtès @ 2007-10-08 18:00 UTC (permalink / raw) To: bug-guile Hi, Gregory Marton <gremio@csail.mit.edu> writes: > I indeed hadn't noticed that it was intentional, but I'm in agreement > with Ludovic. I'm concerned that my customer shouldn't be confused > and worried by a warning, and I see no way to override the warning > myself. You can insert the following line at the beginning of your program: (default-duplicate-binding-handler 'last) This will instruct Guile to always use the `last' duplicate binding handler, thereby not issuing any warning (make sure you understand what it does, looking at the manual). Another solution would be (again, execute it ASAP): (module-replace! (resolve-module '(srfi srfi-19)) '(current-time)) Use at your own risk. :-) Thanks, Ludovic. _______________________________________________ Bug-guile mailing list Bug-guile@gnu.org http://lists.gnu.org/mailman/listinfo/bug-guile ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 1.8.2 srfi-19 warns about current-time 2007-10-08 18:00 ` Ludovic Courtès @ 2007-10-08 20:51 ` Gregory Marton 2007-10-08 21:34 ` Jon Wilson 2007-10-09 21:22 ` Ludovic Courtès 0 siblings, 2 replies; 10+ messages in thread From: Gregory Marton @ 2007-10-08 20:51 UTC (permalink / raw) To: Ludovic Courtès; +Cc: bug-guile [-- Attachment #1: Type: TEXT/PLAIN, Size: 2156 bytes --] Thank you! On Mon, 8 Oct 2007, Ludovic Courtès wrote: > Hi, > > Gregory Marton <gremio@csail.mit.edu> writes: > >> I indeed hadn't noticed that it was intentional, but I'm in agreement >> with Ludovic. I'm concerned that my customer shouldn't be confused >> and worried by a warning, and I see no way to override the warning >> myself. > > You can insert the following line at the beginning of your program: > > (default-duplicate-binding-handler 'last) This affects all bindings, not just the ones I no longer want to be warned about. > This will instruct Guile to always use the `last' duplicate binding > handler, thereby not issuing any warning (make sure you understand what > it does, looking at the manual). > > Another solution would be (again, execute it ASAP): > > (module-replace! (resolve-module '(srfi srfi-19)) > '(current-time)) resolve-module finds the module with the given name and returns it. http://gnu.rtin.bz/software/guile/docs/docs-1.8/guile-ref/Module-System-Reflection.html module-replace! forces the list of symbols in its second argument to be put into the :replace list? (could not find documentation) > Use at your own risk. :-) What's the risk, besides unwittingly using srfi-19's current-time when I wanted to use the core current-time? This sounds like the solution I want to adopt. As a question outside the scope of this conversation, why does srfi-19 not use time-monotonic to mean what the core current-time means, and make that default instead of utc? Then it could :replace without fear, and we wouldn't be in this wrinkle. The "perhaps this will change in the future" gives me hope. http://www.gnu.org/software/guile/manual/html_node/SRFI_002d19-Time.html#SRFI_002d19-Time Thanks very much for your help! Grem -- ------ __@ Gregory A. Marton http://csail.mit.edu/~gremio/ --- _`\<,_ . -- (*)/ (*) Truth is not determined by majority vote. ~~~~~~~~~~~~~~~~-~~~~~~~~_~~~_~~~~~v~~~~^^^^~~~~~--~~~~~~~~~~~~~~~++~~~~~~~ [-- Attachment #2: Type: text/plain, Size: 137 bytes --] _______________________________________________ Bug-guile mailing list Bug-guile@gnu.org http://lists.gnu.org/mailman/listinfo/bug-guile ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 1.8.2 srfi-19 warns about current-time 2007-10-08 20:51 ` Gregory Marton @ 2007-10-08 21:34 ` Jon Wilson 2007-10-09 21:22 ` Ludovic Courtès 1 sibling, 0 replies; 10+ messages in thread From: Jon Wilson @ 2007-10-08 21:34 UTC (permalink / raw) To: bug-guile Hi Greg, One more option is to rename all of the symbols coming in from srfi-19. I've used this myself. (use-modules ((srfi srfi-19) :renamer (symbol-prefix-proc 'tm:))) This prefixes every symbol exported by srfi-19 with tm:, so current-time becomes tm:current-time etc. Regards, Jon _______________________________________________ Bug-guile mailing list Bug-guile@gnu.org http://lists.gnu.org/mailman/listinfo/bug-guile ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 1.8.2 srfi-19 warns about current-time 2007-10-08 20:51 ` Gregory Marton 2007-10-08 21:34 ` Jon Wilson @ 2007-10-09 21:22 ` Ludovic Courtès 2007-10-09 22:38 ` Gregory Marton 1 sibling, 1 reply; 10+ messages in thread From: Ludovic Courtès @ 2007-10-09 21:22 UTC (permalink / raw) To: bug-guile Hi, Gregory Marton <gremio@csail.mit.edu> writes: > On Mon, 8 Oct 2007, Ludovic Courtès wrote: >> You can insert the following line at the beginning of your program: >> >> (default-duplicate-binding-handler 'last) > > This affects all bindings, not just the ones I no longer want to be > warned about. Yes. > resolve-module finds the module with the given name and returns it. > http://gnu.rtin.bz/software/guile/docs/docs-1.8/guile-ref/Module-System-Reflection.html > > module-replace! forces the list of symbols in its second argument to > be put into the :replace list? > (could not find documentation) Correct. It's not documented (yet). > What's the risk, besides unwittingly using srfi-19's current-time when > I wanted to use the core current-time? The risk is that you're using undocumented features that might change or vanish someday. Note that using `:renamer' as Jon suggested is more "future-proof", albeit slightly less convenient. > As a question outside the scope of this conversation, why does srfi-19 > not use time-monotonic to mean what the core current-time means, and > make that default instead of utc? Because the argument to SRFI-19 `current-time' defaults to `time-utc', and we can't change it. :-) Thanks, Ludovic. _______________________________________________ Bug-guile mailing list Bug-guile@gnu.org http://lists.gnu.org/mailman/listinfo/bug-guile ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 1.8.2 srfi-19 warns about current-time 2007-10-09 21:22 ` Ludovic Courtès @ 2007-10-09 22:38 ` Gregory Marton 2007-10-10 16:10 ` Ludovic Courtès 0 siblings, 1 reply; 10+ messages in thread From: Gregory Marton @ 2007-10-09 22:38 UTC (permalink / raw) To: Ludovic Courtès; +Cc: bug-guile >> module-replace! forces the list of symbols in its second argument to >> be put into the :replace list? >> (could not find documentation) > > Correct. It's not documented (yet). Can I help? I mean, presuming that the sentence above, or some extension, is reasonable documentation? I get a sense that there is a reluctance to document things because that entails a commitment to supporting them in the future -- is that the issue here? > Because the argument to SRFI-19 `current-time' defaults to `time-utc', > and we can't change it. :-) Being new to the community, I don't have a sense of how this strange library system called srfi works. It does not appear to have version control. Would one propose a (string-append "srfi-" (next-id)) that's just like srfi-19 except that it has current-time defaulting to time-monotonic? If this is a ball of hair I can read about somewhere, or should take offline, I'm happy with that. I'm just curious. Thanks, Grem -- ------ __@ Gregory A. Marton http://csail.mit.edu/~gremio/ --- _`\<,_ . -- (*)/ (*) Down with gravity! Gravity sucks! ~~~~~~~~~~~~~~~~-~~~~~~~~_~~~_~~~~~v~~~~^^^^~~~~~--~~~~~~~~~~~~~~~++~~~~~~~ _______________________________________________ Bug-guile mailing list Bug-guile@gnu.org http://lists.gnu.org/mailman/listinfo/bug-guile ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 1.8.2 srfi-19 warns about current-time 2007-10-09 22:38 ` Gregory Marton @ 2007-10-10 16:10 ` Ludovic Courtès 0 siblings, 0 replies; 10+ messages in thread From: Ludovic Courtès @ 2007-10-10 16:10 UTC (permalink / raw) To: bug-guile Hi, Gregory Marton <gremio@csail.mit.edu> writes: > Can I help? I mean, presuming that the sentence above, or some > extension, is reasonable documentation? I get a sense that there is a > reluctance to document things because that entails a commitment to > supporting them in the future -- is that the issue here? Not really. I was planning to document part of the `module-' procedure but never did it. In case you want to do it, those worth documenting (IMO) are the following: module-define! module-defined? module-duplicates-handlers module-export! module-for-each module-map module-name module-public-interface module-re-export! module-ref module-remove! module-replace! module-reverse-lookup ;; with xref to the "Variables" node module-set! module-variable ;; with xref to the "Variables" node This would go under the "Module System Reflection" node. Feel free to contribute! :-) > Being new to the community, I don't have a sense of how this strange > library system called srfi works. SRFIs are a community standardization process among Scheme implementors and users: http://srfi.schemers.org/ Anyone can propose an SRFI, but you wouldn't amend an SRFI just to make such or such implementation happier. The idea is to provide APIs portable among implementations. In practice, they are often implemented as a layer above the implementation's own API for the same purpose. Thanks, Ludovic. _______________________________________________ Bug-guile mailing list Bug-guile@gnu.org http://lists.gnu.org/mailman/listinfo/bug-guile ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2007-10-10 16:10 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-10-05 4:25 1.8.2 srfi-19 warns about current-time Gregory Marton 2007-10-07 16:18 ` Jon Wilson 2007-10-07 17:22 ` Ludovic Courtès 2007-10-08 15:35 ` Gregory Marton 2007-10-08 18:00 ` Ludovic Courtès 2007-10-08 20:51 ` Gregory Marton 2007-10-08 21:34 ` Jon Wilson 2007-10-09 21:22 ` Ludovic Courtès 2007-10-09 22:38 ` Gregory Marton 2007-10-10 16:10 ` Ludovic Courtès
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).