Re: How should we deal with weak refs to finalizable objects? (was: Re: [PATCH] Bugfix and drop weak references to finalizable objects (was: Re: [PATCH] thread-safe handling of asynchronous events))

2023-07-26 Thread Andy Bennett

Hi,


I think this clears things sufficiently up.


Please excuse me if I am missing some details...



Strong references are already ensured to be gone
and weak references are cleared using the incantations that sjamaan
(in his wisdom) proposed


What is the definition of a weak reference in this case?


One definition is that weak references only refer to the object if there 
are one or more strong references to the object.


In this case, all the strong references are gone before the finaliser runs 
and therefore all the weak references are semantically invalid already.


Whilst the finaliser is running there are no strong references to the 
object but it's possible (if the finaliser decides to resurrect the object) 
that there will once again be a strong reference to the object (e.g. if the 
finaliser set!s it).


But then, as you say, it's reincarnated: a new object that will never be 
more than equal? (and certainly not eqv? or eq?) to the old one.


Everything's consistent in this model because the references that the GC 
has to objects are neither "weak" nor "strong" but merely an implementation 
detail hidden from the outside.


This seems to be the definition that sjamaan is using.



Another definition is that weak references can refer to an object that is 
still "in memory".


This way lies disaster because then the semantics of weak references are 
dependent on specific implementation details.





I think here we're struggling with the atomicity of the garbage collector 
because the finaliser is special user code that executes inside the garbage 
collector's "transaction" and that code has all the power and capabilities 
of any other scheme code.




What happens if there are a circular list of objects all of which have 
finalisers?


The CHICKEN GC usually handles circular lists well, but when this one is 
collected (i.e. there are no external strong references to the list 
anymore) all its members come up for finalisation at the same time.


Which order are the finalisers called in?

...and which of the other objects can be seen from the object that is 
finalised first?



This is similar to the argument above about the correct definition of weak 
pairs.


To preserve atomicity there needs to be no "happens before" or "happens 
after" relationships between things that happen in a single GC cycle 
(transaction).


If weak pairs are not *already* invalid by the time the finaliser runs then 
it's possible to see into the GC transaction because the weak pair 
invalidation can be observed to "happen after" the GC cycle.


When the managed memory for the circular list is freed it does not matter 
precisely which order it is freed in because there are no side effects of 
freeing it and it all happens in a single GC cycle.


But when the finalisers are run the user's code will see these objects in 
various different states depending on the order.



So how can we finalise a circular list of objects all of which have 
finalisers and still maintain atomicity?


The docs say the order is "undefined".
It seems that the best way to finalise this structure is to explicitly 
break all the strong references between components of the list (as we do 
for external weak references) before any of the finalisers are called.




It may also improve the memory model if we define the object that the 
finaliser receives as a "copy" of the object that has ("already") been 
garbage collected.






Best wishes,
@ndy

--
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF



Re: Plan for support of UTF-8 in core system

2022-03-13 Thread Andy Bennett

Hi,

Bevuta IT GmbH has kindly agreed to sponsor some work on 
CHICKEN and I suggest

to start on full unicode support in the core system, getting rid of
the current solution with a bolted-on utf8 egg.



http://wiki.call-cc.org/unicode-transition


This is great news and very exciting!

Thanks Bevuta and Felix!



Best wishes,
@ndy

--
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF



Re: [Chicken-hackers] PATCH: wrong type for alist-delete!

2016-02-12 Thread Andy Bennett
Hi Peter,

> It occurred to me that maybe the scrutinizer is smart enough to merge
> lists of pairs of (known) mixed types, and it actually is!
> 
> (use srfi-1)
> (print (assoc 'x '((1 . 2) (#f . 4)) (lambda (x y) (> x y
> 
> When compiled, this will tell you:
> Warning: at toplevel:
>   (test.scm:2) in procedure call to `assoc', expected argument #3 of type 
> `(procedure ((or false fixnum) symbol) *)', but was given an argument of type 
> `(procedure (number number) boolean)'
> 
> So I guess my patch needlessly weakens the type declarations.

What happens when the alist argument to assoc isn't static? Does the
data analysis know the types? Which type is better for safe code
generation in the non-static data case (which I imagine to be the
general case).

Is there a difference between building the alist up dynamically with
alist-cons compared to using quasiquote or cons or something?



Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0290 DA75 E982 7D99 A51F  E46A 387A 7695 7EBA 75FF




signature.asc
Description: OpenPGP digital signature
___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] [PATCH] Add a statistical profiler

2016-01-04 Thread Andy Bennett
Wow!

This is excellent and just what I need.

Thanks Peter!


> For a while now I've been meaning to improve our profiler.  I finally
> got around to writing a new profiler a few weeks ago and I've been
> testing it on and off since then.  I think now it's ready to start
> integrating it.  I've successfully made some performance improvements in
> uri-generic and intarweb.  The irregex performance improvement I sent to
> chicken-hackers was also a result from running it with the new profiler.
> 
> I believe the profiler needs improving because of these limitations:
> 
> * Instrumentation adds a whole lot of overhead and prevents various
>optimizations due to requiring dynamic-wind and turning all calls
>to such procedures into a CPS call.  This skews the results,
>sometimes so extremely to make the profile output useless.
>If you want to see an example of this, try profiling the "nbody"
>benchmark from Mario's chicken-benchmarks repo.  It goes from
>1s to 17s on my laptop.  Other examples include "knucleotide",
>"primes" and "ray2".
> * Only toplevel procedures are instrumented.  This means that programs
>with large procedures or programs which rely heavily on closures will
>be hard to profile.  It's possible to work around this by tweaking
>the source code, but this is very annoying to do.
> * Checking performance of a program requires recompilation with
>-profile.  This is only a minor annoyance, but sometimes you
>want to look "deeper" inside the library calls that your program
>performs, and that means you'll have to recompile those libraries
>with -profile as well (and possibly libraries they use, and so on),
>which gets annoying pretty quickly.  Also, you can easily forget you
>did that for a library, and this will slow down all programs using
>this library.
> 
> The attached patches add a *second* profiler to CHICKEN, which uses
> statistical sampling to figure out where a program spends most of its
> time.  It registers a timer with setitimer().  This will trigger a
> signal to be delivered every 10ms (this is customisable via "-:P").
> 
> When a signal arrives, we look at the top of the trace buffer to
> find the currently running procedure.  This means it needs *no*
> additional instrumentation or even recompilation: libraries or
> programs which are compiled without -no-trace or -d0 (i.e., most
> of them) are instantly profileable!
> 
> This statistical sampling method is basically what gprof(1) and profil(3)
> also do, from what I understand of their documentation.
> 
> To see it in action, just compile the target program as normal, and then
> when running it, pass it the "-:p" switch.  This is recognised by the
> runtime system and therefore any program can be passed this switch.
> On exit, it will write out a "PROFILE.1234" file, where 1234 is the pid,
> just like under the instrumentation-based profiler.  This can only be
> read with the new version of chicken-profile, which I've tweaked a tiny
> bit to understand the new profile format, which has a header now.
> 
> The tweak to chicken-profile is necessary because the statistical
> profiler has very little context to work with: it only sees the top
> of the trace buffer, so it knows what procedure is currently running.
> Because it takes a sample every 10 ms, it can count how much time
> is spent in that procedure, but it doesn't really know how it got there,
> as it can't carefully track procedure entry/exit events like the
> instrumentation does under the old profiler.
> 
> So, we know how much time is spent in a procedure, we can only calculate
> the percentage of the entire running time spent, individually per
> procedure.  This means the percentages add up to 100, which is different
> from the original profiler.  There, the percentage will be 100 for the
> "main" procedure, and less for everything called by it.  Because of this,
> both profilers now write a "header" symbol to the start of the profile,
> which chicken-profile recognises and will change its behaviour on.
> 
> The new profiler has none of the disadvantages of the old profiler, but
> comes with its own set of caveats:
> 
> * If a program blocks signals, profiling is unreliable.  I got a report
>from Kooda that SDL's vsync() seems to do this, so this is not always
>directly under the programmer's control.
> * The profile results are very different: it shows how much time is
>spent in the procedure that was called last, making it very low-level.
>This can sometimes result in a harder to read profile, with lots of
>details.
>The old profiler would simply state "procedure X is slow", while the
>new will say "call (A) on line 1 is slowest followed by call (B) on
>line 1507 and call (C) on line 5", even though lines 1 and 5 are both
>part of procedure X.  Ideally you would want some way to sum the
>calls belonging to the same procedure.  On the other hand, it can
>

Re: [Chicken-hackers] [Chicken-users] Any thoughts on performance woes?

2015-04-08 Thread Andy Bennett
Hi,

 The difference is, this one is much better code, which doesn't exercise
 the garbage collector, so it isn't much use as a GC benchmark.

Code involving SSQL would be good for a GC benchmark. I recently
reworked the query generation in Knodium to be up-front rather than at
access-time and got an ordes of magnitude speed up and an order of
magnitude fewer GCs.

Here's a snippet from my commit message:

-
(account 'read 1:3) query generation (each call returns 1 account object)

 (time (for-each (lambda x (account 'read 1:3)) (iota 6500)))

Original:

5.296s CPU time, 0.492s GC time (major), 3334265 mutations, 86/28886
GCs (major/minor)
5.357s CPU time, 0.48s GC time (major), 3334265 mutations, 84/2
GCs (major/minor)
5.332s CPU time, 0.508s GC time (major), 3334265 mutations, 89/28883
GCs (major/minor)
5.284s CPU time, 0.46s GC time (major), 3334265 mutations, 83/28889
GCs (major/minor)
5.397s CPU time, 0.501s GC time (major), 3334283 mutations, 83/28889
GCs (major/minor)

With pre-generated query in read-account:

0.304s CPU time, 0.004s GC time (major), 220077 mutations, 1/656 GCs
(major/minor)
0.296s CPU time, 220077 mutations, 0/657 GCs (major/minor)
0.304s CPU time, 220077 mutations, 0/657 GCs (major/minor)
0.296s CPU time, 220077 mutations, 0/657 GCs (major/minor)
0.3s CPU time, 220077 mutations, 0/657 GCs (major/minor)
-





Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0290 DA75 E982 7D99 A51F  E46A 387A 7695 7EBA 75FF




signature.asc
Description: OpenPGP digital signature
___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] Made a start with CHICKEN 5 proposal

2014-09-04 Thread Andy Bennett
Hi,

 * Please use long, explicit library names, it's easier to remember
   (there are many ways to abbreviate something, but only one way not
   to - I forgot who said this, John will tell me, I'm sure.) And I
   would also suggest to avoid using srfi-XXX as a module name, and
   to use something meaningful (yes, I know that in the past I was
   largely responsible for that mistake in numerous situations.) That
   would also allow adding our own extensions.

This is a good point and comes up time and again (in IRC). The most
functionally important thing seems to be the way module names interact
with portable code. Isn't srfi-XXX the only portable way to do it? Isn't
long names the only friendly way to do it?





Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] CR #1142 and upcoming changes

2014-08-20 Thread Andy Bennett
Hi,

 The Chicken wiki still has an index of Chicken 3 eggs, although I do
 think chicken-setup is no longer operational.
 Perhaps now would be a good time to clean the wiki of vestigial
 references to 2  3.

AIUI, this documentation is preserved for posterity and in case anyone
wants to forward port any of the remaining un-ported stuff. The code is
still in SVN so it makes sense to keep the docs as well.

The main issue is that this older stuff shows up in searches and
confuses new users. Perhaps we should do something about that and more
clearly mark the pages themselves as deprecated?





Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] CR #1142 and upcoming changes

2014-08-20 Thread Andy Bennett
Hi,

 I'd love to hear from some of the people using CHICKEN in their business
 or for other Serious Projects (Kristian? Ivan? Andy?) how painful this
 would be for them.

After taking some time to familiarise myself with them, these all sound
like big and important changes.

It took us a long time to migrate from 4.7 - 4.9 and I expect that we
will be happy with 4.9 for quite some time to come yet. As such, when we
come to upgrade we would expect that it would be some work for us.

It may even be possible to do some parts of the work, such as splitting
srfis out of core, in 4.X as these will not require .scm sourcecode
changes; only metadata changes.


Would the intention be to move all primary development effort over to
the 5 branch? How would 4.9 stability releases work? Most of the
proposed 5 work is cleanup. Where would feature work be expected to be
done? What work would be done before the first stable 5 release and what
work would come in point releases after that?



Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] mmap

2014-07-11 Thread Andy Bennett
Hi,

 There is no way to do this.  By messing around with Linux-specific
 mmap() flags, you can get Linux to prepage the whole file, paying the
 entire cost at once,

Yes. These methods don't strike me as a very good way forward.

I was thinking more along the lines of executing FFI calls in a (pool
of?) pthreads.
That would solve the issue for mmap callers as well as any APIs which
had underlying blocking calls of any type.






Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] mmap

2014-07-11 Thread Andy Bennett
Hi,

 Andy, can you elaborate on the blocking scenario you are seeing?

My particular scenario is that I'm using SQLite with a pool of many
database connections and I'm seeing those connections use a lot of
memory that could be shared by using the SQLites mmap functionality
rather than it's traditional read/write model.

In weighing up the pros and cons I realised that these mmap calls would
unpredictably block in the FFI. I then realised that the existing read
calls are probably also blocking in the FFI but haven't had a chance to
profile or measure it yet: It's a bit of a yak shaving exercise given
that my current actual goal is to manage memory usage better. Once I've
done that I'll be more interested in the actual performance issues.





Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


[Chicken-hackers] mmap (was: Re: library unit restructuring)

2014-07-10 Thread Andy Bennett
I'm resending this as I don't appear to have received it back from the
list??


 Original Message 
Subject: mmap (was: Re: [Chicken-hackers] library unit restructuring)
Date: Wed, 09 Jul 2014 14:56:38 +0100
From: Andy Bennett andy...@ashurst.eu.org
To: Felix Winkelmann felix.winkelm...@bevuta.com,
chicken-hackers@nongnu.org

Hi,

   - memory-mapped-files

Without wishing to hijack the entire thread, as an aside, is there any
way of making memory mapped files play nicely with the CHICKEN scheduler
and threading model? It's possible for memory mapped files to cause a
page fault which will then wait for I/O and, as I understand it, that
will block the entire runtime.


The background to this is that I've been thinking of switching on mmap
support in my SQLite database. AIUI, the Sqlite API is blocking anyway
and even the existing read calls underneath the FFI call with block the
runtime.






Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF




___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


[Chicken-hackers] mmap (was: Re: library unit restructuring)

2014-07-10 Thread Andy Bennett
Hi,

   - memory-mapped-files

Without wishing to hijack the entire thread, as an aside, is there any
way of making memory mapped files play nicely with the CHICKEN scheduler
and threading model? It's possible for memory mapped files to cause a
page fault which will then wait for I/O and, as I understand it, that
will block the entire runtime.


The background to this is that I've been thinking of switching on mmap
support in my SQLite database. AIUI, the Sqlite API is blocking anyway
and even the existing read calls underneath the FFI call with block the
runtime.






Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] [Chicken-users] 4.9.0rc1: Error: (assv) bad argument type: null

2014-05-04 Thread Andy Bennett
Hi,

 The error on 4.9.0rc1 is likely due to 0a52536, which made `assoc`,
 `member` et al. signal errors when their second arguments aren't lists
 instead of just returning #f (or the sentinel value). This is new
 behavior since 4.7.0, and IIRC there were a couple of places in CHICKEN
 itself that required updating after this change too, since they were
 also relying on these cases returning #f.
 
 Anyway, when passed `eqv?` as a comparator *before* importing numbers,
 `alist-ref` uses CHICKEN's built-in `assq` for the search, including
 this new behavior. *After* importing numbers, however, you're really
 passing the numbers extension's version of `eqv?`, which `alist-ref`
 doesn't take as a signal to use the built-in `assq` and instead falls
 back to a search function that matches the pre-0a52536 (i.e. 4.7.0)
 behavior and returns #f/the sentinel value.

Thanks for the detailed reply Evan! :-)

Of course, my code is wrong but it was the inconsistent behaviour with
and without numbers that I was worried about. I shall change my code to
be correct.

This should mean that I will be able to use 4.9.0rc1 to build working
binaries for Knodium that I will deploy at https://www.knodium.com/

Are the CHICKEN web services currently built with 4.9.0rc1?


 @ -hackers: I think `alist-ref`'s fallback search function should match
 the behavior of core's versions. Objections?

I agree.
Thanks for the patch Peter.





Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] [Chicken-users] [PATCH] Re: 4.9.0rc1: Error: (assv) bad argument type: null

2014-05-04 Thread Andy Bennett
Hi,

 +  (assert-error (alist-ref 'foo 'bar cmp))
 +  (assert-error (alist-ref 'foo '(bar) cmp)))

What's a good predicate to use to check whether what will be passed to
alist-ref will not throw an exception?

The 2nd assert-error rules out a simple list? or an O(1) algorithm.
(Tho' list? is already O(n)).





Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] Let's make a release!

2014-02-14 Thread Andy Bennett
Hi,

 Now that #877 is (hopefully) fixed, I'd like to start the prerelease
 process.  I'll merge the manual somewhere this weekend and then merge the
 master branch into prerelease, unless anyone objects.
 
 I think the remaining open tickets should probably be postponed till
 after the release.  It's taken long enough and these tickets don't
 substantially improve the situation when fixed, IMHO.
 
 Of course we need the #877 fix tested some more, so we'll have to wait
 for at least a few results, but I think it's also a good time to have
 the community do some serious testing on our supported platforms.
 
 If anyone has any important patches that have to go into this release,
 feel free to post them.

Horray!
Good work!

We're really looking forward to testing this at Knodium.
We're still using 4.7.





Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] [Chicken-users] Redefinition of imported binding gets implicitly exported

2013-11-04 Thread Andy Bennett
Hi,

 I looked into this recently since it also seemed like a bug to me, but
 the behavior seems to be intentional judging from the code.

Even if the behaviour is intentional, there is possibly still a bug.
This worked find on my own machine but failed on others so the implicit
ordering of something somewhere seems to matter.


 A workaround is to exclude `process` from the import list in `m` (as in
 `(import (except posix ...))`) -- this prevents the behavior you're
 seeing, at least.

I need is in some places tho', and if it's used anywhere in a program,
it takes over the binding everywhere and seems to become implicitly
available everywhere.


 When `##sys#alias-global-hook` is used to resolve an identifier name for
 an assignment, it's called with the already-looked-up name from the
 environment and shortcuts when that identifier is already aliased,
 returning the imported name (in this case, the built-in `process`)
 rather than a new, module-prefixed identifier that would shadow the
 binding like you said.
 
 It seems to me that when `##sys#alias-global-hook` is used to resolve
 names for `set!` forms, it should be called with the bare
 (pre-se-lookup) identifier, and when `assign` is true and you're
 currently in a module it should always create a module-prefixed
 identifier and update the environment, instead of returning the existing
 alias for imported symbols. But, I couldn't get this to work without
 breaking other things.
 
 CC'ing -hackers.
 
 Evan
 
 ___
 Chicken-hackers mailing list
 Chicken-hackers@nongnu.org
 https://lists.nongnu.org/mailman/listinfo/chicken-hackers





Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] r7rs modules

2012-11-10 Thread Andy Bennett
Hi,


 Ideas?

What does R7RS have to say about the keyword use? Are we free to have,
say use* ?







Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] will we have a release this year?

2012-09-24 Thread Andy Bennett
Hi,

The environments egg will not work under Chicken 4.7.4 and later, due
 to changes in the internal representation (also noted in the
 documentation). The rewrite branch is meant to fix this issue.

This was an error from the rewrite branch. We were wondering whether an
internal error such as the one reported would be from chicken or the egg.






Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] will we have a release this year?

2012-09-23 Thread Andy Bennett
Hi,

  I have been testing 4.8.0rc4 quite a bit this week, and everything
 seems to work fine, so if there are no objections, I will make the
 release next Monday.

Did people see my bug report on chicken-users regarding the environments
egg and eval? I posted in the Re: [Chicken-users] Chicken 4.8.0 release
candidate 4 now available thread on 2012/09/18.

--
Another was segfaulting and continued to segfault on 'load'. I narrowed
it down to this repro case in the interpreter:

-
#;1 (use environments)
#;2 (define widget-eval-env (make-parameter (environment-copy
(scheme-report-environment 5) #t)))
-

Using Mortiz's rewrite branch of the environments egg:
https://anonymous:@code.call-cc.org/svn/chicken-eggs/release/4/environments/branches/rewrite/
... stops the segfault.

I can get a binary out but it throws an exception somewhere it didn't
used to:

-
unbound variable
##sys#list
-

...and my debugging efforts so far point to a problem with eval and an
environment from the environments egg.
--




Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] Summer 2012 meetup in the UK?

2012-01-03 Thread Andy Bennett
Hi,

 Having just moved into a much larger house than I previously lived in
 (one large enough to have an actual guest room, plus a playroom for the
 kids that we're equipping as a second guest room, and a big lounge!), I
 hereby offer to host a Chicken meetup sometime this summer! We can
 easily sleep quite a lot of people here (particularly if they bring
 sleeping bags).

Tops! I'm already looking forward to it and EXCITED!


 The location is Gloucester, which is about an hour and a half from
 London by train. As well as having a few days' hacking, we should find
 time to go and visit some of the lovely attractions of the area, such as
 the legendary cheese shop in Cheltenham, or peering at GCHQ, which is
 Europe's largest supercomputer centre (through a barbed-wire fence,
 while watched suspiciously by armed guards), or going for strolls in the
 Cotswold countryside.

If you're in London, be sure to visit Cons Street: http://g.co/maps/z4rhs


 And I must warn everyone that my wife is planning to bake Chicken-themed
 cakes and biscuits.

CHICKEN CAKES?!?!?


 I am open to suggestions for dates. Should I avoid the Olympics, as
 travel will presumably be more expensive then? Or should I coincide with
 the Olympics, as people might want to come over to the UK for them
 anyway, and sneak in a few days in Gloucester amongst it all? Who would
 like to come, and when can they get time off?
 
 I'd recommend we make it a long weekend, so we can fit in a good mixture
 of hacking and adventuring! But people are welcome to stay for longer if
 there's interest :-)

How about the August Bank Holiday? Although I'm not sure how many UK
people there are and whether it coincides with bank holidays elsewhere?




Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF




signature.asc
Description: OpenPGP digital signature
___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: [Chicken-hackers] [Chicken-users] happy new year!

2012-01-02 Thread Andy Bennett
Hi,

 A happy and successful new year to all of you!

Happy New Year!



For those who are waiting: Gazette 22 is on its way: I got a bit busy
towards the end of 2011. Thank you for all the contributions I have
received.






Regards,
@ndy

-- 
andy...@ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers