[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#69292] [PATCH 2/6] store: database: Remove with-statement and assoc
From: |
Ludovic Courtès |
Subject: |
[bug#69292] [PATCH 2/6] store: database: Remove with-statement and associated code. |
Date: |
Tue, 05 Mar 2024 12:05:38 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hi,
Reepca Russelstein <reepca@russelstein.xyz> skribis:
>> I’m all for removing ‘dynamic-wind’, we’ll have to do it to make it
>> usable in a fiberized context anyway.
>>
>> I’ll let reepca comment.
>
> What is the proper fibers-friendly replacement for dynamic-wind, anyway,
> that is "like dynamic-wind, except when suspending a fiber"? It feels
> like the current interaction between dynamic-wind and fibers is more of
> an accident of how the implementation works; I don't suppose fibers could
> export a transparent replacement, like how it already exports a
> replacement for 'sleep'? Or perhaps the underlying issue is that we
> keep using 'dynamic-wind' in situations where it only makes sense to
> enter or exit the dynamic extent once? Is it time to bring
> 'unwind-protect' back into style? I see that fibers now has a
> dynamic-wind*, should that be preferred?
I’ve come to think that ‘dynamic-wind’ is a problematic abstraction.
What we really want is to perform an effect after a normal exit or when
an exception is thrown. The latter case is actually best handled with
‘with-exception-handler’ (this is what I did for ‘with-store’; see
commit 8ed597f4a261fe188de82cd1f5daed83dba948eb).
(In Cuirass I added ‘unwind-protect’ at one point but in the end it was
not so nice and I eventually removed it.)
> I don't have a strong opinion on these changes, I just want to make sure
> we're all aware of how guile-sqlite3's sqlite-finalize acts with cached
> statements.
Agreed.
Thank you for chiming in!
Ludo’.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug#69292] [PATCH 2/6] store: database: Remove with-statement and associated code.,
Ludovic Courtès <=