Is guile-dbi still mainaining?

2013-02-07 Thread Nala Ginrut
Hi Boriani & Vepstas !
I'm dealing with a web-framework and using guile-dbi & guile-dbd, which
are nice thing to handle the databases. ;-)
I found there're something obsoleted in the current code, when I tried
to format a patch I've noticed the bug-report&patches haven't been
responded since 2010. 
So I think it's better to ping you here. 

I plan to fork it on github and package them for guildhall.
If it's OK for you, please let me know. ;-)

Thanks! 




Re: RTL Cache Cells

2013-02-07 Thread Andy Wingo
Hi,

On Thu 07 Feb 2013 04:09, Noah Lavine  writes:

> In particular, I've been looking at module/system/vm/rtl.scm, and there
> are two things I don't understand about cache cells.
>   1. How do I choose the scope of a cache cell? It seems like making it
> the name of the lambda I'm in would be fine, but that's not what the
> examples in rtl.test do.

You choose some identifier that is unique in your compilation unit.  Its
name doesn't matter; it won't be serialized anywhere.

>   2. How do different toplevel-refs share cache cells? A comment says
> that they will, but the emit-cache-cell code doesn't seem to do any
> checking. Does that still need to be implemented?

You make all toplevel references within one toplevel function share the
same identifier.  This includes nested refs.

The compiler joins identical refs because  is placed in an
equal?  vhash, and the default struct equal? function checks type,
shape, and field using equal?.  So it does the right thing.

> Oh, and as long as I'm at it,
>   3. I see that the 'toplevel-ref' instruction in vm-engine.c expects a
> variable object as its cache, but the 'cached-toplevel-ref' instruction
> *appears* to be passing it a cache cell. I say "appears" because I see
> that in intern-constant, cache cells are special-case objects that aren't
> actually cached. So is a cache cell only a compile-time entity? How do
> they work, anyway?

What happens is this: let's say you have a function:

  (lambda ()
bar)

This function has a free variable, resolved at the toplevel.  We don't
know the module that `bar' will be resolved against -- it depends on the
module that is current when (lambda () bar) is evaluated.

So we compile this using an indirection -- a cache cell.  Actually there
are two indirections.  One is a one-word field, statically allocated in
the .data section of the ELF, which is either #f or a variable.  It's #f
at the beginning and a variable once the toplevel has been resolved to a
particular variable in a particular module.  This is the way a cache
cell gets written into an ELF file.  See rtl.scm:862.  Then the variable
itself is an indirection as well.

Cheers,

Andy
-- 
http://wingolog.org/



Re: Is guile-dbi still mainaining?

2013-02-07 Thread Mike Gran
> From: Nala Ginrut 
> 
> Hi Boriani & Vepstas !
> I'm dealing with a web-framework and using guile-dbi & guile-dbd, which
> are nice thing to handle the databases. ;-)
> I found there're something obsoleted in the current code, when I tried
> to format a patch I've noticed the bug-report&patches haven't been
> responded since 2010. 

As an aside, there is a guile library specifically for postgresql
that is currently maintained.  I think it had a release last year.
Guile-pg.

-Mike



Re: Is guile-dbi still mainaining?

2013-02-07 Thread Nala Ginrut
On Thu, 2013-02-07 at 05:16 -0800, Mike Gran wrote:
> > From: Nala Ginrut 
> > 
> > Hi Boriani & Vepstas !
> > I'm dealing with a web-framework and using guile-dbi & guile-dbd, which
> > are nice thing to handle the databases. ;-)
> > I found there're something obsoleted in the current code, when I tried
> > to format a patch I've noticed the bug-report&patches haven't been
> > responded since 2010. 
> 
> As an aside, there is a guile library specifically for postgresql
> that is currently maintained.  I think it had a release last year.
> Guile-pg.
> 

Nice to know that ;-)
@ttn: would you like to post a package to guildhall? ;-)

> -Mike





Re: Is guile-dbi still mainaining?

2013-02-07 Thread Thien-Thi Nguyen
() Nala Ginrut 
() Thu, 07 Feb 2013 21:43:02 +0800

   @ttn: would you like to post a package to guildhall? ;-)

Not really.  I don't want to invest effort into something i won't be
able to use for the forseeable future, but that will anyway bring its
own set of maintenance demands.  On the other hand, if someone sends me
patches to make the distribution more guildhall-friendly (w/o breaking
things for non-guildhall users), i would be happy to install them.

BTW, i was under the impression that guildhall packages are Scheme only.
If that's the case, Guile-PG, which contains C glue to wrap/expose the
PostgreSQL libpq, among the other (Scheme) modules, is necessarily
disqualified.

-- 
Thien-Thi Nguyen . GPG key: 4C807502
.  NB: ttn at glug dot org is not me   .
. (and has not been since 2007 or so)  .
.ACCEPT NO SUBSTITUTES .
... please send technical questions to mailing lists ...


pgprYq3fRNCXT.pgp
Description: PGP signature


Re: Is guile-dbi still mainaining?

2013-02-07 Thread Nala Ginrut
On Thu, 2013-02-07 at 16:19 +0100, Thien-Thi Nguyen wrote:
> () Nala Ginrut 
> () Thu, 07 Feb 2013 21:43:02 +0800
> 
>@ttn: would you like to post a package to guildhall? ;-)
> 
> Not really.  I don't want to invest effort into something i won't be
> able to use for the forseeable future, but that will anyway bring its
> own set of maintenance demands.  On the other hand, if someone sends me
> patches to make the distribution more guildhall-friendly (w/o breaking
> things for non-guildhall users), i would be happy to install them.
> 

OK, I'll see what I can do.

> BTW, i was under the impression that guildhall packages are Scheme only.
> If that's the case, Guile-PG, which contains C glue to wrap/expose the
> PostgreSQL libpq, among the other (Scheme) modules, is necessarily
> disqualified.
> 

Ah~seems it's a nice feature request for guildhall. ;-)






Scmutils in guile-2.0

2013-02-07 Thread Mikael Djurfeldt
As an exercise before porting the up-to-date version of scmutils, I
eventually decided to bring Daniel Gildea's Guile port up-to-date.

You'll find the archive guile-scmutils-v0.8.tgz here:

http://www.cs.rochester.edu/~gildea/guile-scmutils/

You should be able to apply the attached patch and then be able to run
it under guile-2.0

Best regards,
Mikael D.


guile-scmutils-v0.8-2.0.diff
Description: Binary data


Re: Scmutils in guile-2.0

2013-02-07 Thread Ludovic Courtès
Hi Mikael,

Mikael Djurfeldt  skribis:

> You'll find the archive guile-scmutils-v0.8.tgz here:
>
> http://www.cs.rochester.edu/~gildea/guile-scmutils/
>
> You should be able to apply the attached patch and then be able to run
> it under guile-2.0

Nice!

> +(cond-expand (guile-2
> +   (define-syntax define-integrable
> + (syntax-rules ()
> +   ((_ form body ...) (define form body ...)

You can actually use ‘define-inlinable’ here (info "(guile) Inlinable
Procedures").

Ludo’.




Re: Scmutils in guile-2.0

2013-02-07 Thread Mikael Djurfeldt
On Thu, Feb 7, 2013 at 11:00 PM, Ludovic Courtès  wrote:
>> +(cond-expand (guile-2
>> +   (define-syntax define-integrable
>> + (syntax-rules ()
>> +   ((_ form body ...) (define form body ...)
>
> You can actually use ‘define-inlinable’ here (info "(guile) Inlinable
> Procedures").

Sorry, I'm lost.

Doesn't define-inlinable define a procedure?

Here, the idea simply was to have `define-integrable' behave exactly
the same as `define'.

BTW, I provided this patch just so that those who are interested could
get started using guile-scmutils with guile-2.0.  However,
guile-scmutils only contains a fraction of the real scmutils.  For the
real port, I'm working on an mit-scheme compatibility module so that
as much as possible of the original source can be used as is.

Best regards,
Mikael