[jhc] [Haskell-cafe] Rewrite NetBSD kernel driver using Ajhc Haskell compiler
Kiwamu Okabe
kiwamu at debian.or.jp
Wed Feb 19 15:08:13 UTC 2014
Hi Johnny,
On Wed, Feb 19, 2014 at 11:57 PM, Johnny Billquist <bqt at update.uu.se> wrote:
> Maybe someone with more insight could explain to an idiot like me how
> Haskell garbage collection is handled when running in the kernel?
First, s_alloc() is Ajhc Haskell compiler's allocator,
and gc_perform_gc() is GC runner.
https://github.com/ajhc/ajhc/blob/6c053b940812689fe22d2dbe2b7ad835dab8a3c7/rts/rts/gc_jgc.c#L560
https://github.com/ajhc/ajhc/blob/6c053b940812689fe22d2dbe2b7ad835dab8a3c7/rts/rts/gc_jgc.c#L119
The s_alloc() try to find free area. But if not, it runs GC.
https://github.com/ajhc/ajhc/blob/6c053b940812689fe22d2dbe2b7ad835dab8a3c7/rts/rts/gc_jgc.c#L435
By the way, where from s_alloc() get a memory chunk?
Now using kern_malloc(9).
https://github.com/metasepi/netbsd-arafura-s1/blob/arafura-s1/metasepi/sys/hsdummy/__dummy4jhc.c#L21
Regards,
--
Kiwamu Okabe
More information about the jhc
mailing list