Hello all,
It looks to me like the last thing needed before the peg branch can be
used is to change some of the S-expression representations of the
components. Here are the five that I think need changing, taken from
the manual, with suggested replacements.
-- PEG Pattern: zero or more a
Pa
Hello,
> The syntactic changes you propose all make sense to me, FWIW.
Great! Then I will push an implementation soon unless someone else objects.
> A more general question about PEG: how do you bind a variable to the
> result of a pattern? For instance, if you want the result of (* "a") to
> b
tructure out of a
match record.
I hadn't really looked at this part of the module, but it looks to me
now like the names aren't descriptive enough. Maybe we should change
them before putting this in a release.
Noah
On Sat, Sep 10, 2011 at 5:35 PM, Ludovic Courtès wrote:
> Hi!
>
> No
e easy for people to learn and forwards-compatible with
whatever our future plans for parsing are. I will try to send an email
soon with some thoughts on that.
Noah
On Sat, Sep 17, 2011 at 9:09 PM, Noah Lavine wrote:
> Hello,
>
>> Can you give an example of what ‘peg-parse’ and ‘peg:
Hello all,
I was just going through updating the PEG documentation when I
encountered a very weird situation, and I don't know how to solve it.
As you probably know, the PEG system can take an s-expression
representation of a PEG grammar (a "peg s-exp") and turn it into a
function that can parse s
Hello,
> It is complicated though. The other option is to write a PEG
> interpreter or compiler in Scheme. An interpreter would interpret the
> s-expressions directly, or some simplified form of them. A compiler
> would pre-process the s-expressions to produce a procedure, built from
> closures
Hello,
> If the s-expression is a compile-time constant, and if the PEG compiler
> is written in purely-functional style and confined within a single
> top-level form, then peval should be able to produce the parser
> procedure at compile-time. Otherwise, it would be produced at run-time.
>
> Thi
>> For instance, what about doing
>>
>> (compile (peg-sexp-compile ) #:from scheme-syntax
>> #:to value)
>>
>> ? That seems like a nice API to me.
>
> You could do the same with #:from 'scheme, no?
I don't think so, because I think #:from 'scheme expects an
S-expression, but peg-sexp-compile ret
Oh, excellent! I had assumed it did not. I will update the PEG documentation.
On Wed, Sep 21, 2011 at 3:22 PM, Andy Wingo wrote:
> On Wed 21 Sep 2011 20:44, Noah Lavine writes:
>
>> I think #:from 'scheme expects an S-expression, but peg-sexp-compile
>> returns a syntax o
Hello all,
As the PEG module nears some reasonable level of completion, we should
figure out what all of the functions need to be named so everyone can
reasonably understand them.
At first I thought the names should be consistent wtih the LALR and
regexp modules, so all of the parsing modules wou
Hello,
>> define-peg-sexp - define a nonterminal from an s-expression
>> define-peg-string - define a set of nonterminals from a string
>
> To me this sounds like you are defining an sexp or a string, which
> doesn't make much sense. I don't think that we need to preserve
> symmetry here, because
Hello all,
It looks to me like the PEG project is wrapping up. We're talking
about what to name things now, which means the library is likely
pretty close to inclusion in Guile. After this I will want another
Guile project to work on. My original intention was to work on a JIT
compiler for Guile,
Hello,
>> - You write a function that assumes its arguments are of a certain
>> type. You'd like to be sure this is true, so your program won't throw
>> exceptions in the middle.
>
> That would be cool. However, I suspect that for best results you’d want
> procedures to have type annotations, a
Hello,
> (Though I think that the term ‘constant’, as used by GCC, is confusing.
> I don’t have a better name to propose, though.)
How about 'algebraic'? As in functions in basic algebra. (I know it
has a different meaning, though.)
Or alternatively, something referencing the lambda calculus, si
Hello,
>> I think it can be done effectively, but I'm not quite sure what you
>> mean by "dynamic module composition." Do you mean that this might
>> prevent you from making modules that use arbitrary other modules? Or
>> that it might not work if you loaded modules at runtime from the REPL?
>
> I
I believe debian maintainers are responsible for packaging Guile for
Debian. You should contact whoever maintains the Guile package there.
I don't know anything about cygwin.
On Thu, Sep 29, 2011 at 6:38 AM, roman wrote:
> Hello,
>
> the last version of guile available for cygwin and debian/ubun
Hello,
I hate to make more work for people, but I think the PEG module is
almost ready for merging, and could probably be merged if we resolved
this names issue. Any other thoughts?
Noah
On Thu, Sep 22, 2011 at 1:56 PM, Noah Lavine wrote:
> Hello,
>
>>> define-peg-sexp - defin
Hello all,
Could anyone tell me the status of the ELisp implementation since July
21st (the last update)?
I'm especially interested now because of a thread on emacs-devel -
http://lists.gnu.org/archive/html/emacs-devel/2011-09/msg00753.html.
People were talking about adding multithreading to Emac
spect that most
people don't know what's happening or where to look. If you set up a
branch, I for one would love to check it out and perhaps contribute
some patches. Do you need permission from the Emacs maintainers to do
that, or anything else?
Noah
On Sun, Oct 9, 2011 at 9:37 AM, wrote:
> Hmm... this touches on a political issue I'd been avoiding thinking about.
> Namely, adding Guile to Emacs, with Guile's new FFI support, would make
> dynamically loading new executable code into Emacs easy, technically,
> including non-GPL code written specifically to extend Emacs. There's
Hello,
It seems like the right thing to do might be to do setlocale(LC_ALL,
"") in Guile's main(). Let me argue that this accomplishes two goals
which we want to accomplish
- it does the right thing by default: you want your program to be
able to talk to the user in the user's own language. This
Hello again,
I've been working on the compiler issue and I've had to start looking
at processing Tree-IL. As a result, I realized that the Tree-IL
documentation is a bit out-of-date. I would like to fix it, but there
are some things I don't understand.
- It looks like every Tree-IL type has a src
Hello,
> Record-case parses slots by name, not by position.
> Match destructures by position, not by name.
Oh, interesting.
>> - On a related note, why do most of the Tree-IL record type not appear
>> in the define-type statement in tree-il.scm line 133, and is that
>> connected with the bo
>> Then I have a new goal: understand that. :-)
>
> The deal is that macroexpansion produces tree-il. The usual
> macroexpander is provided by psyntax. But before psyntax is loaded,
> when the first bits of Scheme are seen, there is a boot expander written
> in C that produces tree-il, with suppo
Hello,
I am certainly not an authoritative source, but it's been a while, so
here is what I know. As far as I can tell, these questions haven't
been decided yet. All we know is that we want a guildhall.
However, having your packages in it would be great, so please do
package them up and contribut
> I guess in general I'd prefer something like Racket's #!lang directives,
> though I'm not opposed to this approach. Dunno!
How about using language directives when available, and trying to
guess the language when not?
And about the directives, what should they be? ',language' is what we
used t
Hello Guile developers,
Despite the long gap since my last email, I have in fact been working
on the compiler project. This email has two purposes: first, to make
sure that I have a basically reasonable design before I work more, and
second, to ask a logistical question.
First of all, I very much
Hello,
> This, however, is a lie, since there is no place above where "vectag"
> would be explained. There is an explanation about how it will be
> printed as part of an array, but not how it is specified.
>
> Would it please be possible
>
> a) to not just deprecate some function when there are _
Hello Guile developers,
Following up on my last email, I am nervously announcing a new branch,
'wip-compiler'. I hope that in a few months this branch will contain a
working compiler. For now, it contains a few new data structures and a
function that converts Tree-IL to a form that will be nicer f
> Cool. As a quick reaction, I have some doubts about this project. But,
> I guess a WIP branch would be a good thing to have, and it would make
> the discussion more concrete.
Probably so. But if you have time, what are your doubts? I would much
rather talk about problems now than after I've im
Hello,
I haven't really been contributing to this thread, so please take my
opinion with a grain of salt. But it does appear to me that we should
support capturing a lexical environment, as Mark and David describe.
So I took a look at ice-9/eval.scm to see how difficult it would be to
implement.
On Tue, Dec 13, 2011 at 6:39 PM, Andy Wingo wrote:
> On Wed 14 Dec 2011 00:00, Noah Lavine writes:
>
>> I haven't really been contributing to this thread, so please take my
>> opinion with a grain of salt. But it does appear to me that we should
>> support captur
> The details of the interpreter's implementation are not public, I'm
> afraid. The interpreter does its job, but not quickly, and any change
> to make it better would involve a change to the environment
> representation.
>
> Anyway, it's looking in the wrong place. There is a compiler too.
And
Perhaps this is obvious to everyone else, but it just occurred to me
that (capture-local-environment) is just
(call-with-current-continuation), but running in the environment of
the evaluator instead of the program being evaluated. It's as though
the evaluator was going to look in a tree for more c
On Thu, Dec 15, 2011 at 11:19 AM, Nala Ginrut wrote:
> well, I see. I haven't used Stalin before, so I guess the generated C code
> must be compiled without any Gcc extension?
I think he's making a joke that Richard Stallman is always pedantic,
so the -pedantic flag is redundant.
> @Noah: Anyway
Hello Guile developers,
I have recently hit an issue and I wish I knew a standard way to handle it.
I want to write tests for a module of mine. Because I like being
paranoid, I'd like to test almost every function in the module. But a
lot of these functions are internal to the module - there's no
Hello,
>> Indeed, only the macro expander has enough information to generate an
>> optimal list of "reachable lexicals", i.e. lexical variables that are
>> accessible using normal symbols (as opposed to syntax objects) [more
>> on this below].
>
> Are you certain that you want to restrict the set
Hello,
>> If I understand correctly, Mark wants to restrict the set of variables
>> you can access to those you could access through normal Scheme code.
>> This is an issue because psyntax happens to provide a way to access
>> more variables than standard Scheme. If this is the case, I think we
>>
This is an interesting point.
I was thinking about it though, and I think there is another thing
that is causing a lot of this "bloat": all of the Scheme modules we
are adding.
There is a tension here, because having lots of modules is very
important for using Guile as a language to write program
Hello,
> To keep it GNU, I looked around to see what library-style GNU
> solutions exist for treating an archive file like a filesystem.
> Oddly, no good documented (L)GPL GNU options dealing with tar, cpio,
> pax, or 'ar' in an API way. But, there is a solution for .iso
> files: libiso9660 from
Hello,
Sorry it's been so long since my last reply. I've been somewhat busy
around the holidays, but I hope to work more soon.
> Also, what about “vset” or just “set” instead of “value-set”?
Yes, probably a good idea.
>> + (set! (a-verify-exps ret)
>> + (map (lam
Hello,
> Then it turned out that the string functions would now clear the
> high order bit on strings, so they are no longer byte arrays and
> there is no replacement but to roll my own. I stopped supporting
> byte arrays. A noticable nuisance.
This is just a side note to the main discussion, b
Let me see if I understand what you mean. I think you're talking about
an expression like this:
(cons (call/cc store-this-continuation) (call/cc store-this-continuation))
and you want a way to distinguish the first and the second call/cc, by
guaranteeing the order they are hit. This will let yo
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, impl
Hello,
I'm going to try to combine the two parallel compiler threads into
one, by replying to two messages at once. I hope this makes things
simpler rather than more confusing. :-)
Message 1:
> Here is my calculus regarding this work, FWIW: it is low risk, and low
> cost, since it doesn't actual
Kastrup wrote:
> Noah Lavine writes:
>
>>> On Wed, Jan 4, 2012 at 8:16 AM, David Kastrup wrote:
>>>>
>>>> Hi,
>>>>
>>>> I was just wondering about the ability for using multiple continuations
>>>> in contexts that don't gua
Hello,
> Interesting. `verify' seems to be a form of contracts:
>
> http://ftp.ccs.northeastern.edu/scheme/pubs/icfp2002-ff.pdf
>
> Does `verify' have runtime semantics? Under what situations, if any,
> would the compiler insert runtime checks?
It has no runtime semantics right now. I consider
I definitely agree that the "Guile Modules" / "Standard Library"
distinction doesn't make sense. I never knew why it was that way until
I saw this email.
It's not so obvious to me how things should be organized, but I think
base namespace / modules is a pretty natural distinction. The
distinction
go wrote:
> On Wed 04 Jan 2012 19:12, Andy Wingo writes:
>
>> On Mon 03 Oct 2011 20:21, Noah Lavine writes:
>>
>>> I hate to make more work for people, but I think the PEG module is
>>> almost ready for merging, and could probably be merged if we resolved
>&
Hello,
As long as we're pinging people for 2.0.5, I don't think this patch
ever got pushed. :-)
I can't build master right now. This is partly my fault for doing so
little sysadmin work that I still have libgc 7.1, but I still think
this one should really, really be in 2.0.5 if the GC changes wil
I've run into trouble because of my problems building master. I'll
have to work around that, so it won't happen tonight.
On Thu, Jan 19, 2012 at 8:54 AM, Noah Lavine wrote:
> Sorry for the delay.
>
> I haven't thought about the PEG stuff in a long time, but look
define-peg-* things, because the macro could just detect whether it
got a string or an s-expression and do the right thing. I can fix that
if other people think it should be done.
Noah
On Thu, Jan 19, 2012 at 10:18 PM, Noah Lavine wrote:
> I've run into trouble because of my problems building
Hello,
>> If we can already foresee the need to deprecate an interface, wouldn't
>> it be better not to add it in the first place?
>
> I don't see the need to deprecate them now, not more than any other
> identifier that we export.
I think this may be the key to this argument. There are two separ
Hello,
I just checked out the latest master. I attempted to build it, but got
stuck at this point:
GENguile-procedures.texi
/bin/sh: line 1: 75746 Broken pipe cat alist.doc
arbiters.doc array-handle.doc array-map.doc arrays.doc async.doc
backtrace.doc boolean.doc bitvectors.doc
I don't think so, because I don't get
Throw to key misc-error with args ("module-transformer" "no module, and
`macroexpand' unbound" () #f).
I'm going to try a git bisect and see where this appears.
Noah
On Thu, Jan 26, 2012 at 5:06 PM, Andy Wingo
Hello,
> /* Read expressions from that port; ignore the values. */
> for (;;) {
> SCM form = scm_read(port);
> if (SCM_EOF_OBJECT_P(form))
> break;
> ans = scm_primitive_eval_x(form);
> }
>
> return ans;
> }
> }
>
> Ev
debug this?
Thanks,
Noah
On Sun, Jan 29, 2012 at 3:21 PM, Catonano wrote:
>
>
> Il giorno 26 gennaio 2012 23:06, Andy Wingo ha scritto:
>
>> On Thu 26 Jan 2012 15:26, Noah Lavine writes:
>>
>> > I just checked out the latest master. I attempted to build it, but
yone point me to what I should be looking for?
Thanks,
Noah
On Wed, Feb 1, 2012 at 4:01 AM, Andy Wingo wrote:
> On Wed 01 Feb 2012 03:12, Noah Lavine writes:
>
>> In the failing call,
>> the SCM 'symbols' is 0x10101cff0, but the failing set is at 0x304,
>> which
:212).
Noah
On Thu, Feb 2, 2012 at 9:59 PM, Noah Lavine wrote:
> Got it! And unfortunately, it's a GC error. Here's what happens:
>
> symbols is an SCM object defined in symbols.c. It points to an
> scm_cell_t which has two elements: a type tag, and a pointer to an
> scm_
Oh, and the same will happen with GC_get_suspend_signal, which we
define at scmsigs.c:155.
Other than that, though, the new gc resolves the problem I had. I am
willing to chalk this up to a GC bug and not worry about it more.
Noah
On Tue, Feb 7, 2012 at 9:07 AM, Noah Lavine wrote:
> He
Hello,
Thanks for emailing! I suppose I am the one to talk to, since I was
the last one to work on it.
I didn't make the PEG parsing syntax, but I would guess the reason
there isn't a string syntax for ignore is that there's no conventional
way to write it, but there is for the other PEG elements
Hello,
> Hmm. I don't know if this is what you meant, but it occurs to me that
> as I've currently implemented them, both (cond (else (define x 5) x))
> and (case 1 (else (define x 5) x)) are allowed. I'll have to make sure
> that those raise errors. I guess that means I'll have to insert a '#f
Hello,
> I've actually found no PEG library that has a string syntax for the
> equivalent of ignore. I'm guessing most people are satisfied with just
> specifying another nonterminal and matching that one. Probably because it is
> seen as less ugly than extending on the formal definition of PEG bu
Hello,
I've been working on a patch to add a new sort of optimization to
peval, and I think it's almost ready. It's based on some of the ideas
in "Environment Analysis of Higher-Order Languages".
The goal is to recognize when two quantities are equal even when we
don't know what they are. My work
Hello,
> Note, we don't need to add extra identities to operands: they already
> have their gensyms. So to get the effect of this patch, you could add a
> clause to fold-constants:
>
> ((primcall src 'eq? (lexical _ _ x) (lexical _ _ y))
> (if (eq? x y)
> (make-const src #t)
> ))
>
Hello,
On Thu, Feb 16, 2012 at 10:06 AM, Andy Wingo wrote:
> On Thu 16 Feb 2012 14:18, Noah Lavine writes:
>
>>> (let ((x (random)))
>>> (eq? x x))
>>
>> (let* ((x (random))
>> (y (list x))
>> (z (car y))
>> (eq? x
about it.
I will send a separate email about the CPS stuff.
Noah
On Fri, Feb 17, 2012 at 3:13 AM, Andy Wingo wrote:
> Hi Noah,
>
> On Fri 17 Feb 2012 03:22, Noah Lavine writes:
>
>>>> (let* ((x (random))
>>>> (y (list x))
>>>>
Hello everyone,
There was some discussion in the "Identities in Peval" thread about
using a CPS-like intermediate representation in Guile.
I think that our goal with our intermediate representation should be
to make things convenient for us - we shouldn't try to match any
particular model unless
Hello,
> My vote would be for self-contained: it can be copied directly into a
> file or REPL and executed, and IMO reduces confusion. I already try to
> do this when posting any examples on paste.lisp.org or in a gist.
When you say "self-contained", do you mean that if the example uses a
procedu
What about having two bits of syntax, current-filename and
current-file-path? Or better yet, current-filename and
current-file-directory, with the guarantee that (string-append
(current-file-directory) path-separator (current-filename)) points to
the file when it was compiled?
It is more intuitive
Done. I added two tests, for good measure :-).
Noah
On Sun, Feb 19, 2012 at 4:53 AM, Andy Wingo wrote:
> On Sat 18 Feb 2012 17:20, Noah Lavine writes:
>
>> Here is another patch that fixes the first of my examples. (let* ((x
>> (random)) (y x)) (eq? x y)) now folds to (begi
If I understand correctly, you only need to call the continuation
once. Is that right?
In that case, I think you could use either catch and throw or prompts.
(And catch and throw are implemented with prompts, so really, you can
just choose how you want to use prompts.)
Noah
On Thu, Mar 1, 2012 a
usic-found-tag music))
#f music))
(lambda (key music) music)))
Does that work?
Noah
On Thu, Mar 1, 2012 at 7:42 PM, David Kastrup wrote:
> Noah Lavine writes:
>
>> On Thu, Mar 1, 2012 at 7:00 PM, David Kastrup wrote:
>>>
>>> Hi,
Hello,
> IIRC, the stack copying in Guile's continuation implementation is
> inevitable. Though it's inefficient, the consideration is to cooperate with
> other languages such as C.
It's inevitable in the general case, where the continuation might
return multiple times.
However, in this situatio
Hello,
> Sure, but things like gensym and make-prompt-tag (and (list '()) for
> creating an eq?-unique object) are artificial hygiene coming at a cost
> in symbol table and symbol generation time rather than "lexical"
> hygiene. They need _extra_ work, whereas the
> call-with-current-continuation
This is great! Thanks for improving this so much.
Noah
On Thu, Mar 1, 2012 at 6:40 PM, Mark H Weaver wrote:
> I wrote:
>> Here's a significantly refactored version of my 'tree-il->scheme'
>> improvements.
>
> and here are the actual patches, with the psyntax-pp.scm portions
> removed. "make -C
I do not know if that idea is still valid. However, here are two more
to add to that list:
- Integration with Emacs. Guile has a very-nearly-complete
implementation of Elisp. We'd like to get it to the point that it can
actually run Emacs, and see if we can implement GNU's editor better
than the s
Hello,
>> The “dynwind stack” actually (I misread it the first time.)
>
> Yes, it did have this name before. (More often, "the wind list".) But
> since "dynwind" is overloaded so much (dynamic-wind operator, ,
> scm_dynwind_*), and the dynamic stack can have other things on it like
> prompts, I
When building the latest git master, I get this error:
GUILEC language/tree-il/compile-glil.go
Assertion failed: (table->n_items < size), function rob_from_rich,
file weak-table.c, line 252.
Has weak-table.c changed recently?
Noah
Hello,
Are you sure this is correct? What if someone calls the module-set!
function on that module between the definition and use of whatever
function you're compiling?
I agree very strongly that we need to be able to do this sort of
optimization, but I think we might need some sort of caching me
Hello,
> I don't think I've changed the correctness wrt `module-set!' and the
> like -- the current, private-refs-only optimization already exhibits the
> problem you describe:
>
> | scheme@(guile-user)> (define old-car car)
> | scheme@(guile-user)> (module-set! (current-module)
I think (current-
This problem went away for me when I made distclean and built the most
recent master. I don't know why that fixed it.
2012/3/9 Ludovic Courtès :
> Hi Noah!
>
> Noah Lavine skribis:
>
>> When building the latest git master, I get this error:
>>
>> GUIL
Hello,
I just got a confusing error while making a Guile module. I was
writing a module, and wanted to use the compile function - the one
that exists by default in the REPL environment. However, when I used
the compile function in a module and tried to load that module, I got
an unbound variable e
Hello,
What ever happened to this issue? Is it considered resolved now, or is
there more to do?
And if it's not resolved, what do people think of having more than one
piece of syntax?
Noah
On Tue, Feb 21, 2012 at 4:00 PM, Neil Jerram wrote:
> l...@gnu.org (Ludovic Courtès) writes:
>
>> Hi Neil
Hello,
I'm not as familiar with the compiler code as some other people here,
but I think that would be great! Guile can always use more speed, and
that seems like a project that you could complete in a summer.
I've thought a bit about how to do it. One step might be to write a
register VM in Sche
I'm afraid you've written to the wrong list. Please try again with the
GNUtrition mailing list.
Good luck,
Noah
On Sat, Mar 17, 2012 at 5:42 PM, Adam 'foo-script' Rakowski
wrote:
> Hello!:)
>
> I'm Adam, CS student & passionate developer from UE.
>
> I find your ideas for GSoC 2012 very, very at
Hello,
There are plans for a compiler eventually. We worked on a JIT compiler
for a while, and I think we will do that, but we also want an
ahead-of-time optimizing compiler. Part of the goal of using a
register VM (at least for me) is that it gets us closer to a real
chip, which makes compiling t
This is very cool. Thank you for telling us about it!
On Wed, Mar 21, 2012 at 5:58 PM, Stefan Israelsson Tampe
wrote:
> Hi,
>
> If you wondered about the results of my endavour with logic programming for
> guile I
> finally made a repo that is self containd and does not mode guile (HORROR
> STORI
Hello,
Thanks for emailing! Yes, you can definitely get involved. We always
like having new people appear and help.
Here is how it works, more or less: you'll work on some part of Guile
- you get to pick this. When you have an improvement, you'll email it
to the list as a series of patches. The p
That looks excellent! Thanks for posting it.
On Mon, Apr 2, 2012 at 12:23 PM, Nala Ginrut wrote:
> hi falks!
> Many guys believe Guile-2.0 is powerful, me too. But we need more and more
> guile projects to prove that.
> Here's a toy of my coding game. A generic server named "Ragnarok". The
> keyw
Oh, a quick followup - could we post a link to this on the Guile web
page? I don't know who is maintaining that now, but it claims to have
a list of projects using Guile, and I think a multi-protocol server is
certainly interesting enough to go there.
Noah
On Tue, Apr 3, 2012 at 10:41 PM,
I think this is a fair description:
http://gitorious.org/glow/ragnarok/";>Ragnarok
description
A multi-protocol server.
license
GPL 3
On Wed, Apr 4, 2012 at 5:42 PM, Ludovic Courtès wrote:
> Hi,
>
> Noah Lavine skribis:
>
>> Oh, a quick followup - could we post a
Hello everyone,
There was some discussion a while back about getting Guile a register
virtual machine. I was thinking about how I could help with this, and
I thought that register allocation would be a good place to start. The
great thing about it is that we already do allocation - of lexical
vari
AM, Ludovic Courtès wrote:
> Hi,
>
> Noah Lavine skribis:
>
>> I think this is a fair description:
>
> Thanks!
>
>> http://gitorious.org/glow/ragnarok/";>Ragnarok
>>
>> description
>> A multi-protocol server.
>>
>>
Hello,
On Mon, Apr 9, 2012 at 3:15 PM, Mike Gran wrote:
> Anyway, here's an idea. Let's call the C code for ports 'base ports'.
>
> 1. Refactor the C reader so that it took on the responsibility of
> storing the putbacked (ungotton?) characters.
>
> 2. This would let you simplify the base ports
Hello,
> The goal was to have an interface close to what one would do in
> imperative programming, that is:
>
> person.address.city = "foo";
>
> I think it’s quite successful at it.
>
> Now, I’m open for suggestions. I don’t have any idea for a better
> interface that meets this goal. For insta
to start from outside towards inside, right?.
>
> Could you give any suggestions upon which part? And is there any part that
> need to be improved or patched? If there is I am more than happy to do some,
> hopefully.
>
> Thanks again for all the help.
>
> Cameron
>
&g
>>> However, generating the most optimal code may prove to be complicated.
>>> For instance, you’d want:
>>>
>>> (set-fields p (person-address address-city) "Düsseldorf"
>>> (person-address address-street) "Bar")
>>>
>>> to expand to:
>>>
>>> (set-person-address p
>>>
At first I thought you were right. But then I realized there's an even
deeper problem here. Imagine implementing a record mutator like this:
(define (set-foo-a! foo new-value)
(if (is-foo? foo)
(%unsafe-set-foo-a! foo new-value)
(error)))
That code is incorrect, by the same logic you
On Fri, Apr 13, 2012 at 3:59 PM, Ludovic Courtès wrote:
> Noah Lavine skribis:
>
>> I'm somewhat afraid, however, that the real solution is changing how
>> we deal with parallelism, and that is a much bigger problem.
>
> And this is where functional setters come i
301 - 400 of 420 matches
Mail list logo