[Chicken-users] Re: sqlite3 egg still failing in experimental branch

2011-01-16 Thread Alan Post
On Sat, Jan 15, 2011 at 03:51:45PM +0100, Thomas Chust wrote:
 2011/1/15 Alan Post alanp...@sunflowerriver.org:
  2011/1/14 .alyn.post. alyn.p...@lodockikumazvati.org:
  [...]
  The sqlite3 is still failing to compile in the experimental branch:
  [...]
  [...]
  I believe the attached patch should do it.  I withdraw the original
  miliseconds deprecation patch (but retain the noop/void patch) and
  replace it with this one.
  [...]
 
 Hello Alan,
 
 although there was no patch attached to the message, I have now
 checked in modifications to the trunk version of the SQLite3 egg that
 should largely be equivalent to your suggested changes.
 

I even said: ok self, make sure you attach the patch to the
e-mail.  I notice that you removed code adding |current-milliseconds|
(presumably now |current-seconds|) to the timeout.  This was
intentional?  I also notice that several division and multiplication
operations in thread-sleep! weren't modified for fixnum--I though
they could be; you understand the code better than I do.

 All tests still run fine under CHICKEN 4.6.3, but I still haven't
 tested with the experimental branch of CHICKEN. I would be grateful if
 you could try it under CHICKEN 4.6.4 and tell me if everything is in
 order, then I would tag a new version of the SQLite3 egg.
 

There is one test failure I'm seeing:

-- testing statement management
--
basic lifecycle
.. [ERROR]

Error: (finalize!) unable to close due to unfinalised statements:
#sqlite3:data base
(with-database
  (db :memory:)
  (let-values
(((stmt tail) (prepare db SELECT 42; -- tail)))
(dynamic-wind
  noop
  (lambda ()
(let* ((s0 (step! stmt)) (s1 (step! stmt))) (list tail s0 s1)))
  (lambda () (and-let* ((s stmt)) (set! stmt #f) (finalize! s))


I don't properly recall whether this was working earlier or not.  It
doesn't appear to be working currently, however.  For my use of the
sqlite3 egg, I don't believe I'm seeing a problem related to this
test failure, it at least isn't a show stopper for me.

 I hope my sluggish reaction didn't cause you too much trouble :-)
 

I am very excited that Christian set up a salmonella report for the
experimental branch, it raised my own urgency on getting the sqlite3
egg working.  Thank you so much for taking the time to make these
fixes--it came just as I made some changes that cause my own test
cases to fail, so I'm now causing myself too much trouble.  ;-)

-Alan

PS: Thank you!  Thank you!
-- 
.i ko djuno fi le do sevzi

___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] Re: sqlite3 egg still failing in experimental branch

2011-01-16 Thread Thomas Chust
2011/1/16 Alan Post alanp...@sunflowerriver.org:
 [...]
 I notice that you removed code adding |current-milliseconds|
 (presumably now |current-seconds|) to the timeout.  This was
 intentional?
 [...]

Hello Alan,

yes, this was intentional: The way I understand it, thread-sleep! can
either be passed a number, which is interpreted as a delay, or a time
record, which is interpreted as an absolute point in time. But adding
the current time to the delay would of course be wrong.

 [...]
  I also notice that several division and multiplication operations
 in thread-sleep! weren't modified for fixnum--I though they could
 be; you understand the code better than I do.
 [...]

You're right, these can be fixnum arithmetic, too, if we assume that
the values that will be passed to the created timeout procedure as the
second argument are always going to be fixnums as well, which should
be true.

I have checked in the additional changes to the egg's trunk version.

 [...]
 There is one test failure I'm seeing:

    -- testing statement management
 --
    basic lifecycle
 .. [ERROR]

 Error: (finalize!) unable to close due to unfinalised statements:
 #sqlite3:data base
    (with-database
      (db :memory:)
      (let-values
        (((stmt tail) (prepare db SELECT 42; -- tail)))
        (dynamic-wind
          noop
          (lambda ()
            (let* ((s0 (step! stmt)) (s1 (step! stmt))) (list tail s0 s1)))
          (lambda () (and-let* ((s stmt)) (set! stmt #f) (finalize! s))

 [...]

Hmm, I can't reproduce that test failure under CHICKEN 4.6.3. It's
also pretty strange since the statement obviously *is* finalized
explicitly by that code.

 [...]
 PS: Thank you!  Thank you!
 [...]

And thank you, too, for coming up with the patches in the first place
:-)

Ciao,
Thomas


-- 
When C++ is your hammer, every problem looks like your thumb.

___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] Re: sqlite3 egg still failing in experimental branch

2011-01-15 Thread Thomas Chust
2011/1/15 Alan Post alanp...@sunflowerriver.org:
 2011/1/14 .alyn.post. alyn.p...@lodockikumazvati.org:
 [...]
 The sqlite3 is still failing to compile in the experimental branch:
 [...]
 [...]
 I believe the attached patch should do it.  I withdraw the original
 miliseconds deprecation patch (but retain the noop/void patch) and
 replace it with this one.
 [...]

Hello Alan,

although there was no patch attached to the message, I have now
checked in modifications to the trunk version of the SQLite3 egg that
should largely be equivalent to your suggested changes.

All tests still run fine under CHICKEN 4.6.3, but I still haven't
tested with the experimental branch of CHICKEN. I would be grateful if
you could try it under CHICKEN 4.6.4 and tell me if everything is in
order, then I would tag a new version of the SQLite3 egg.

I hope my sluggish reaction didn't cause you too much trouble :-)

Ciao,
Thomas


-- 
When C++ is your hammer, every problem looks like your thumb.

___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] Re: sqlite3 egg still failing in experimental branch

2011-01-14 Thread Thomas Chust
2011/1/14 .alyn.post. alyn.p...@lodockikumazvati.org:
 [...]
 The sqlite3 is still failing to compile in the experimental branch:
 [...]
 Will you apply the patches I sent you to the sqlite3 egg?
 [...]

Hello,

yes, I know. I will apply the patch eventually but I have to / want to
disable the fixnum arithmetic declaration at the same time and insert
calls to fixnum specific procedures where appropriate.

Now, if I make these modifications I want to do it carefully,
especially changing all the arithmetic calls. But I simply haven't
gotten around to installing the experimental CHICKEN branch (usually I
only update to snapshot releases and I very much dislike git ...)  and
to updating the SQLite3 egg.

 [...]
 I was able to modify genturfa'i to use those procedures rather than
 declaring fixnum.  Would you like a new patch that uses this same
 approach in sqlite3?  Disabling the fixnum declare but replacing you
 maths operations with fixnum versions?
 [...]

If you took the time to do that, I would be glad to accept an improved
patch :-)

 [...]
 What do you need to get the sqlite3 egg updated to compile against
 the experimental branch?
 [...]

Hmm, maybe a reduction of Earth rotation speed to prolonge my spare
time hours would be good? Or maybe some genetic modification to reduce
the necessary amount of sleep?


Ciao,
Thomas


-- 
When C++ is your hammer, every problem looks like your thumb.

___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] Re: sqlite3 egg still failing in experimental branch

2011-01-14 Thread Alan Post
On Fri, Jan 14, 2011 at 05:21:06PM +0100, Thomas Chust wrote:
 2011/1/14 .alyn.post. alyn.p...@lodockikumazvati.org:
  [...]
  The sqlite3 is still failing to compile in the experimental branch:
  [...]
  Will you apply the patches I sent you to the sqlite3 egg?
  [...]
 
 Hello,
 
 yes, I know. I will apply the patch eventually but I have to / want to
 disable the fixnum arithmetic declaration at the same time and insert
 calls to fixnum specific procedures where appropriate.
 
 Now, if I make these modifications I want to do it carefully,
 especially changing all the arithmetic calls. But I simply haven't
 gotten around to installing the experimental CHICKEN branch (usually I
 only update to snapshot releases and I very much dislike git ...)  and
 to updating the SQLite3 egg.
 
  [...]
  I was able to modify genturfa'i to use those procedures rather than
  declaring fixnum.  Would you like a new patch that uses this same
  approach in sqlite3?  Disabling the fixnum declare but replacing you
  maths operations with fixnum versions?
  [...]
 
 If you took the time to do that, I would be glad to accept an improved
 patch :-)
 

I believe the attached patch should do it.  I withdraw the original
miliseconds deprecation patch (but retain the noop/void patch) and
replace it with this one.

All arithmetic operations are fixnum except the delay call, which is
done with floating point arithmetic.

  [...]
  What do you need to get the sqlite3 egg updated to compile against
  the experimental branch?
  [...]
 
 Hmm, maybe a reduction of Earth rotation speed to prolonge my spare
 time hours would be good? Or maybe some genetic modification to reduce
 the necessary amount of sleep?
 

I'd like to pose a question to the list about this issue, because it
results from the way development is done in Chicken Scheme and
perhaps someone has insight into the issue.

I'm suffering from priority inversion on this issue:  jbogenturfa'i
requires the experimental branch to run[1][2], while one of it's
dependencies, sqlite3, won't run on the experimental branch.[3]

The fix to sqlite3 is easy, and I've provided patches.  There isn't
any reason Thomas' priorities should be mine, however, and in this
case they aren't.

My options seem to be to convince Thomas that he should be running
at a higher priorty or ask Mario for a sqlite3-experimental egg in
the repository and fork sqlite3.  I don't consider a fork a good
idea, but if I had to fix this issue today, I can't think of a
better one either.  It is easier to accomplish that either of
Thomas' above requests.  :-)

How has this situation been handled in the past?  Can someone sugest
a solution that doesn't require Thomas to raise his scheduling
priority but allows me to have a sqlite3 that compiles in experimental?

I'm fortunate to be in a position where this issue isn't urgent--I'm
the only one running jbogenturfa'i and I can keep my patches in my
local repository.  I may not always be in such a fortunate position.

Thoughts?

-Alan

1: 
http://tests.call-cc.org/2011/01/14/salmonella-report/tests/jbogenturfahi.html
2: https://bugs.call-cc.org/ticket/441
4: http://pestilenz.org/~ckeen/salmonella-report/2011-01-14/sqlite3.html

 
 Ciao,
 Thomas
 
 
 -- 
 When C++ is your hammer, every problem looks like your thumb.

-- 
.i ko djuno fi le do sevzi

___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] Re: sqlite3 egg still failing in experimental branch

2011-01-14 Thread Peter Bex
On Fri, Jan 14, 2011 at 04:32:07PM -0700, Alan Post wrote:
 I'm suffering from priority inversion on this issue:  jbogenturfa'i
 requires the experimental branch to run[1][2], while one of it's
 dependencies, sqlite3, won't run on the experimental branch.[3]

The fact your egg requires experimental means most people won't be able
to run it. Those who will probably won't object to (temporarily)
applying a patch; they're already running an unstable version of
Chicken.  Just provide instructions in the egg's documentation.

 How has this situation been handled in the past?

To my recollection this exact situation hasn't occurred before.
Anyway, I wouldn't consider it too big an issue since most regular
users are using release versions, or at best snapshot development
versions.  People interested in the bleeding edge are expecting
possible breakage already, so I don't think it's that big a deal,
really.

If you are desperate and Thomas really can't cope with your pace of
development you might perhaps want to negotiate (co-)maintainership
of the egg with him, if he's open to that.

Cheers,
Peter
-- 
http://sjamaan.ath.cx
--
The process of preparing programs for a digital computer
 is especially attractive, not only because it can be economically
 and scientifically rewarding, but also because it can be an aesthetic
 experience much like composing poetry or music.
-- Donald Knuth

___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users