Re: Questions about the compiler et al

2012-01-05 Thread Andy Wingo
Hi Mark, On Thu 05 Jan 2012 01:03, Mark H Weaver m...@netris.org writes: * Why do compilers return two copies of the same environment? What is the intended meaning of these two return values? From The Scheme Compiler, in the manual: Compiler procedures take three arguments: an

Re: Ideas page

2012-01-05 Thread Andy Wingo
Hi Alexandre! On Thu 06 Oct 2011 12:53, Alexandre Abreu abreu_alexan...@hotmail.com writes: after reading Tobias' comments, I wondered if the Ideas webpage is actually up to date or being updated (which might not be part of the high priority things to do). I have been using guile (on and

Re: [PATCH] Improvements to exact rationals et al

2012-01-05 Thread Andy Wingo
On Sat 08 Oct 2011 17:42, Mark H Weaver m...@netris.org writes: On second thought, I've decided that this patch set needs a bit more work before it is ready for submission. I hope to post an improved version soon. Cool, take your time. It looks like an interesting patch set, though I

Re: SCM_ASSERT_TYPE

2012-01-05 Thread Andy Wingo
On Sat 08 Oct 2011 18:04, l...@gnu.org (Ludovic Courtès) writes: And what about the seldom-used SCM_ASRTGO? Likewise (Google Codesearch finds a couple of external users.) Uf, I replied before I saw your message. It is gone in master. Do you think we need to re-add it? Codesearch found one

Re: Guile: What's wrong with this?

2012-01-05 Thread Mark H Weaver
Bruce Korb bk...@gnu.org writes: So because it might be the case that one reference might want to see changes made via another reference then the whole concept is trashed? all or nothing? Anyway, such a concept should be kept very simple: functions that modify their argument make copies of

Re: non-reproduction of initial issue -- was: Guile: What's wrong with this?

2012-01-05 Thread Mark H Weaver
Bruce Korb bk...@gnu.org writes: On 01/04/12 16:01, Ludovic Courtès wrote: BTW, were you able to find a stripped-down example that reproduces the ‘string-upcase’ problem? Here's the stripped down example, but it does not reproduce the problem. :( I didn't copy into it my variation on

Re: [PATCH] Implement local-eval, local-compile, and the-environment

2012-01-05 Thread Mark H Weaver
David Kastrup d...@gnu.org writes: Ah, I see that set! has made it explicitly into the patterns. What about (define foo (make-procedure-with-setter vector-ref vector-set!)) (let ((env (let ((x (make-vector 2 #f))) (the-environment (local-eval '(set! (foo x 1) 3) env))

Re: [PATCH] Implement local-eval, local-compile, and the-environment

2012-01-05 Thread Mark H Weaver
David Kastrup d...@gnu.org writes: Ah, I see that set! has made it explicitly into the patterns. What about (define foo (make-procedure-with-setter vector-ref vector-set!)) (let ((env (let ((x (make-vector 2 #f))) (the-environment (local-eval '(set! (foo x 1) 3) env))

Re: Guile: What's wrong with this?

2012-01-05 Thread David Kastrup
Bruce Korb bk...@gnu.org writes: On 01/04/12 15:59, Mark H Weaver wrote: Implementing copy-on-write transparently without the user explicitly making a copy (that is postponed) is _impossible_. The problem is that although we could make a new copy of the string, we have no way to know which

Re: Guile: What's wrong with this?

2012-01-05 Thread Mark H Weaver
Bruce Korb bk...@gnu.org writes: Anyway, such a concept should be kept very simple: functions that modify their argument make copies of any input argument that is read only. Any other SCM's lying about that refer to the unmodified object continue referring to that same unmodified object.

Why not support (begin), (cond), (case-lambda), etc?

2012-01-05 Thread Mark H Weaver
Hello all, I'd like to argue in favor of supporting (begin), (cond), (case-lambda) and other such degenerate forms, for the same reason that we support (*), (+), and (let () ...). First of all: Is there any compelling reason not to support them? I can't think of one. Can you? If so, please do

Re: Guile: What's wrong with this?

2012-01-05 Thread Mike Gran
`define' merely makes a new reference to an existing object.  If you want a copy, you must explicitly ask for one (though this could be hidden by custom syntax).  It would not be desirable for the language to make copies automatically as part of the core `define' syntax.  For one thing,

Re: Guile: What's wrong with this?

2012-01-05 Thread Mark H Weaver
Mike Gran spk...@yahoo.com writes: It is curious that action of 'copy' really means the action of 'create a copy with different properties'.   Shouldn't (string-copy a) create another immutable string? Why would you want to copy an immutable string? Likewise, shouldn't (substring abc 1)

Re: Guile: What's wrong with this?

2012-01-05 Thread Noah Lavine
Hello all, I must admit that I do not know much about why R5RS says that literals are constant, but I think there is a misunderstanding. Bruce does not want `define' to always copy its result. I think what he wants is for literals embedded in source code to be mutable. This would, of course,

Re: Why not support (begin), (cond), (case-lambda), etc?

2012-01-05 Thread Alex Shinn
On Fri, Jan 6, 2012 at 9:49 AM, Mark H Weaver m...@netris.org wrote: I'd like to argue in favor of supporting (begin), (cond), (case-lambda) and other such degenerate forms, for the same reason that we support (*), (+), and (let () ...). First of all: Is there any compelling reason not to