Search Results: "ag"

20 June 2010

Andrew Pollock: [life] First Father's Day

Father's Day in the US has always been a weird one for me. I've been pottering through the day oblivious, when a friend who is a father will tell me that they've been thinking of me especially today because of our loss. Then I'm reminded that Father's Day is in June and not September. I wonder what the deal is with that? It seems very few countries observe it on the first Sunday in September. Weird. Zoe hits the 7 week mark tomorrow, and I return to work. Boy is that going to be a shock to the system for all of us. The 7 weeks of paternity leave has been absolutely wonderful. Google's Paternity Leave benefit is now firmly my number one favourite employee benefit. Co-workers had complained that taking it all at birth was a bit of a waste, because all the baby does is sleep, but it's definitely been worthwhile taking it all now. Because we've been predominantly bottle feeding with pumped breast milk, I've been able to be very involved with the feeding, and I've been able to do a lot of the running around helping Sarah, so I wouldn't have done it any other way. It's also been great to watch Zoe grow and develop. She's interactive enough at this age, and it's just great to cuddle with her, or share a nap with her. On the sleeping front, things are a bit all over the place. She definitely gets fussy in the evenings, at around 5pm to 7pm. Often we have trouble getting her to go back to sleep after a feeding around this time. Sometimes the trouble can extend past the 10pm to midnight feeding. She sleeps magnificently during the day, and travels fairly well. She sleeps quite well in her car seat, and stays asleep in it when we're at a cafe or restaurant. We had our first overnight trip while Sarah's Mum was visiting. We went down to San Simeon to take her to Hearst Castle. It was fun having Zoe in a hotel room with us. Whenever she fussed during the night, we'd just grab her and bring her into bed with us. She spent quite a lot of time in our bed asleep on our chests. It was very sweet. It was like a little baby vacation. Zoe also had her first outing to the California Academy of Sciences, and we managed to spend about 5 hours there without any major meltdowns from anybody. It was absolutely fantastic having Sarah's Mum here for 4 weeks too. She's great to have around. She was a big help in cleaning up the back yard significantly, and generally helping out around the house. It was great having her take care of the 7am feeding when Sarah and I were both zonked out from overnight interruptions. It was also nice not to have to think so much about how dinner was going to materialise. My parents have decided they will come and visit in September, which is excellent, as they won't have to wait until February to meet Zoe. One of the other nice things about the Google Paternity Leave is that you keep accruing vacation time while you're on it, so I should have enough vacation time to take a couple of weeks off while they're here, as well as in February when we go back to Australia for Sarah's residential school at the University. The next big event will be Zoe's vaccinations at 8 weeks. Hopefully that will be as uneventful as possible.

Neil Williams: World Cup QA

Turns out that the football is insufficiently engaging to distract me from picking up the laptop, but sufficiently noisy that I don't get time to think about more complex problems (leave those for weekday evenings), so weekends seem to offer a brief window to relax and do some QA/RC uploads.

As we're not yet in freeze, I'm not doing 0-day NMU's (although I am offering 7 day NMU's), but QA uploads can all be 0-day. Overall, it's proving to be quite useful and a lot easier than sponsoring NEW packages.

So far, RC uploads:


RC offers:


QA uploads:


Didn't think I'd get time to stuff like that with Squeeze.

Daniel Baumann: Debian Live Web Images Builder

Richard Nelson, an outstanding debian-live contributor and team member since many years, has setup an instance of the live-helper CGI scripts that are included within live-helper. This webbuilder lets users get their own customized images without the need of having to install live-helper and build them on their own. It's available at live-helper.debian.net. Apart from having some better looking html form and adding an online-help that will be worked on soon, it's working great. Thanks you, Richard.

Craig Small: Helping Free Software: Translations

Well the latest version of PSmisc is almost finished, so I pushed the tar archive up to the spot for the translators, waiting for the updates before it gets released.

It reminded me that perhaps a lot of people don't know how their programs get translated. Perhaps there are some that could even contribute. The nice thing about the translation systems is that you don't need to know programming to help.

PSmisc uses the translation project as its method. The program itself uses gettext for the translation part which makes a single text file called a POT file. A translator takes this text file and makes a po file, such as it.po for the Italian translation and then translates, which basically means editing the file, reading each first line of a set and writing the translation on the second line.

For the programmer, once it is setup it is pretty simple to use, just mark your translatable lines and follow some simple rules, mainly about not embedding too much in a string. I've used this system for years for quite a few of my programs and there is little added work for me.

Unfortunately, translating is hard work and should be a long-term commitment. Having a look at the translation project's Translation Matrix and you can see that some languages do suffer, though there are some very good results there too. Particular kudos goes to the Vietnamese group which I think is just Clytie who does a marvellous job and is often the first translation file I get.

For the Debian project, there are many places where translations can occur. There doesn't seem to be a centralised place for this, but some of the places they use translation work are:

<script defer="defer" src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script>

Francois Marier: Reducing website bandwidth usage

There are lots of excellent tools to help web developers optimise their websites.

Here are two simple things you have no excuse for overlooking on your next project.
HTML, XML, Javascript and CSS filesOne of the easiest ways to speed up a website (often to a surprising degree) is to turn on compression of plaintext content through facilities like mod_deflate or the Gzip Module.

Here's the Apache configuration file I normally use:
<ifmodule>AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript text/xml application/x-javascript application/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch "MSIE 6" no-gzip dont-vary
BrowserMatch ^Mozilla/4\.0[678] no-gzip</ifmodule>
ImagesAs far as images go, the following tools will reduce file sizes through lossless compression (i.e. with no visual changes at all):
(An alternative to optipng is pngcrush.)

Note that the --strip-all argument to jpegoptim will remove any EXIF/comments tags that may be present.

19 June 2010

Torsten Werner: Results from the Debian Community Poll

I have announced the Debian Community Poll in my former blog post. I have closed the poll today and I will start publishing its results now.
What is the codename of the current stable release?This is the only compulsory question with the intention to block spammers. The correct codename is Lenny but I have accepted almost any answer that is somehow related to Debian. Version numbers, names from Sarge to Experimental, even well known codenames and version numbers from Ubuntu have been counted as correct. 22 partipants answered wrongly and their submissions got removed from the result set. A whopping number of 3258 submissions have been accepted and get analyzed now. Thanks to all participants!
How long have you been using Debian?

On what kind of hardware are you using Debian?
Multiple answers are allowed for this question and that is why the values do not sum up to 100%.
  • 80.5% are using Debian on the desktop
  • 62.4% on the server
  • 56.9% on the notebook
  • 21.7% on the netbook
  • 11.6% on embedded device(s)
  • 3.2% on other device(s)
The following other devices have been mentioned: smartphone, virtual machine, nettop, NAS, HTPC, workstation, pendrive, live cd, cluster, thin client, router, rocket flight computer, ibm mainframe, and automatic bar tender.

Do you contribute to Debian?
  • 50.0% choose answer #5: I don't contribute on a regular base.
  • 31.2% choose answer #4: I'm regularly helping other Debian users.
  • 8.0% choose other (see below) or simply did not answer
  • 4.9% choose answer #3: I'm regularly contributing to Debian packages without uploading them by myself.
  • 4.5% choose answer #1: I'm a Debian developer.
  • 1.4% choose answer #2: I'm a Debian maintainer.
The following other answers have been provided:
  • upstream developer or contributor
  • translator
  • bug reporter
  • advocator
  • former DD or DM
  • prospective DD or DM
  • mirror maintainer
  • package/installer tester
  • documentation writer
  • donator or debconf sponsor
  • debconf organizer or helper

How do you think about the Debian Free Software Guidelines (DFSG)?
  • 46.0% choose answer #2: I like the DFSG but it is not the most important reason for using Debian.
  • 36.6% choose answer #1: The DFSG is very important to me. I could live with many changes in Debian but I would be very upset if Debian would allow non-free software into its main component in the future.
  • 10.1% choose answer #3: I don't know.
  • 4.9% choose answer #4: I don't care.
  • 2.4% did not answer.

Are you using Debian derived distributions, too?
Multiple answers are allowed for this question and that is why the values do not sum up to 100%. There were a lot of different answers but the most frequent are:
  • 47.1%: Ubuntu (Kubuntu, Lubuntu, Xubuntu)
  • 40.8%: no answer; this was the only way to say that someone does not use a derived distribution
  • 11.0%: other (see below)
  • 7.0%: damn small linux
  • 4.8%: Sidux
  • 4.3%: grml (juxlala)
  • 2.2%: Knoppix
  • 1.6%: ELive
  • 1.4%: Maemo
The other answer includes the following distributions: 64studio, ALT Linux, arch linux, ArtistX, BackTrack, BRLix, Canaima GNU/Linux, catix, cdlinux.pl, CloneZilla, CrunchBang, Custom, ddwrt, debian arm userspace for zipit z2, DebXO (?), DreamLinux, Easy Peasy, eb4, eeebuntu, EMC2 Ubuntu (linuxcnc.org), Emdebian, Estrella Roja, Fedora, Finnix, Gentoo, gNewSense, Hackable:1, Kanotix, Kuliax, LFS and CLFS, LinEx, Linux Mint, live CDs, live-helper, Mepis antix, Musix, My own LiveCD, Mythbuntu, OpenInkpot, openwrt, paipix gnu, Parsix, Peppermint, personal debian derived, proxmox, Puppy, PureOS, qtopia, SHR, simplyMEPIS, Skolelinux, slackware, SymphonyOS, Toutou, Trisquel, tty GNU/Linux, UHU Linux, Univention Corporate Server, vinux, Voyage, Vyatta, whiite, Xandros, Xarnoppix. Not all of them are derived from Debian.

- to be continued -

Julien Valroff: My experience without Adobe Flash Player

Adobe recently announced they have (temporarily) stopped working on the amd64 version of their Flash Player for GNU/Linux. The previous releases contain a big security issue, which makes them totally unusable. As I didn t want to wait until the flashplugin-nonfree package to be updated to support the i386 plugin through nspluginwrapper (as suggested in #586273), I have decided to simply switch to the free alternative: gnash. After a few hours with it, I am now able to use most of the websites I usually visit, including Youtube and Dailymotion. Note that I use Iceweasel, which does not support WebM (for now), nor H.264 (which will never be supported by Mozilla). Youtube support is brought by a Greasemonkey user script available at: http://turanct.wordpress.com/2010/02/25/gnash-youtube/
The only tiny drawback is that the videos load in pause mode. For now, everything else seems to work fine. Users of other browers (Chromium, Safari, Opera) can try their HTML5 beta: http://www.youtube.com/html5 It is even easier for Dailymotion, as the videos on their HTML5 beta program are encoded in the Ogg Theora format, which is natively supported by Iceweasel/Firefox >= 3.5. To ease things, I have written a small Greasemonkey script which simply automatically redirects www.dailymotion.com to openvideo.dailymotion.com. This script can be downloaded here. The drawback is that videos won t play before they are loaded completely, which is not a big problem anyway. I still cannot play the videos avilable on Vimeo, and have noticed while wirting this post that the Flash file uploader of WordPress didn t work with gnash (obviously, WP provides an alternative way for file upload). I will go on with this experience as long as I do not see major issue with gnash.
I will also update this post, or add comments, if I encounter other issues, or find any alternatives. I would be curious to read your comments if you have run similar experience.

Gunnar Wolf: Once upon a time

With due apologies and thanks to my dear and crazy friend UCH:
Once upon a time
Once, because twice would be a repetitive story
A king
One, because two would mean war
Who was married to a queen
One, because two would be drama
They had a princess daughter
One, because two would be a mess
Who was in love with a knight
One, because two would be a soap opera
He was given the task of killing a dragon
One, because two would be a titanic feat
The hero had an idea
One, because two would be asking too much
Using a unique magic sword
One, because were they two, it would no longer be unique
With which, he took the dragon's life
One, because it was a dragon, not a cat
Then they proceeded with the wedding
One, because two would mean bigamy
And they lived happily forever
One, because two forevers would be like two infinites
The end
One, because two ends would be complicated
The bad translation is completely my fault.

18 June 2010

Marco T&uacute;lio Gontijo e Silva: Immix on GHC Summer of Code weekly report #6

My project. This post assumes that the reader has read my last post. I started the change in the line representation. Instead of a single linked list of free lines, it s better to work with line groups, to avoid fragmentation inside lines in allocation. I ve create a struct to represent this line group, with a pointer to the next group, and the size, in lines, of the group. It is stored in includes/rts/storage/GC.h currently, but I m not sure if this is the best place to put it, and I m thinking about changing it latter.
#include "rts/OSThreads.h"
typedef struct line_  
    struct line_ *next;
    StgWord size;
  line;
/* -----------------------------------------------------------------------------
Then we need to change the code of liberation of lines in rts/sm/Sweep.c.
            else if(!(bd->flags & BF_MEDIUM))  
                StgBool sequence;
                sequence = 0;
                for(i = 1; i < BLOCK_SIZE_W / BITS_IN(W_); i++)  
                    StgPtr start;
                    start = bd->start + BITS_IN(W_) * i;
                    if(bd->u.bitmap[i] == 0 && bd->u.bitmap[i - 1] == 0 &&
                       start + BITS_IN(W_) <= bd->free)  
                        printf("DEBUG: line_found(%p)\n", start); fflush(stdout);
                        if(gen->first_line == NULL)  
                            gen->first_line = (line *) start;
                         
                        if(sequence)  
                            last_line->size++;
                         
                        else  
                            if(last_line != NULL)  
                                last_line->next = (line *) start;
                             
                            last_line = (line *) start;
                            last_line->next = NULL;
                            last_line->size = 1;
                         
                        sequence = 1;
                     
                    else  
                        sequence = 0;
                     
I ve tested this code using the same technique as before, checking the produced list trasversing it after it s done. The list obtained showed the correct lines. Now I m back to the allocation code, which never worked. The changes in rts/sm/Evac.c are straightfoward.
        if (gen->first_line != NULL &&
            size <= BITS_IN(W_) * gen->first_line->size)  
            ws->todo_free = (StgPtr) gen->first_line;
            ws->todo_lim = ws->todo_free + BITS_IN(W_) * gen->first_line->size;
            gen->first_line = gen->first_line->next;
            to = ws->todo_free;
         
This cause the same kind of errors I was getting before. I should go back to debugging. My co-supervisor in my Oriented Project in Computer Science suggested me using valgrind. I ll try it.
Last week I forgot to mention I ve presented my final presentation about my Oriented Project in Computer Science. This week I finished writing my monograph.

Alexander Reichle-Schmehl: Release Critical Bug report for Week 24

The inofficial rc bug tracker currently knows about the following bugs:
In Total:535
Affecting Squeeze:419
Squeeze only:58
Remaining to be fixed in Squeeze:361
Of these 361 bugs, the following tags are set:
Pending in Squeeze:18
Patched in Squeeze:55
Duplicates in Squeeze:50
Contrib or non-free in Squeeze:8
Claimed in Squeeze:2
Delayed in Squeeze:6
Can fixed in a security Update:31
Otherwise fixed in Squeeze:38
Ignoring all the above (multiple tags possible), 195 bugs need to be fixed by Debian Contributers to get Debian 6.0 Squeeze released. However, the with the view of the Release Managers, 337 need to be dealt with for the release to happen. Please see my older post for an explanation of the different numbers.

17 June 2010

Steve Kemp: That friend promises his undying friendship if you would do him a small favour.

Perl & Apache?
Once upon a time, within the past year, I saw mention of a simpler version of mod_perl - an apache module which let you write code to run within the context of a persistent perl process. However my DuckDuckGofu is weak, and I'm struggling to find this project. Did I dream it, or could somebody tell me where it lives?
Dynamic Picture Frames
So I've been taking pictures recently. Lots of pictures. Many times many images have been printed and hung upon my walls, and the price of frames is starting to become onerous. I'd love to see some kind of "dynamic" picture wall - but the two alternatives I considered fail:
Metal & Magnets
Place a huge sheet of metal upon your wall. Then put wee magnets inside your frames.
Corkboard
Imagine a full wall that was paneled with what is essentially a large notice-board..
Both of these would look ugly; the metal one perhaps less so. But the idea of having a wall which could have pictures mounted upon it, without having big nail holes if you rearranged and which could cope with dynamic repositioning and sizes is nice .. Invent it for me? I'll buy one. Probably even two...
ObFilm: The Godfather

Thomas Koch: NoSQL summer at lake constance

Have you already started to try out these new storage/database things commonly referred to as NoSQL? (For you google-bot, I'm talking about CouchDB, Cassandra, HBase, Hadoop, Hypertable, MongoDB, Tokyo Cabinet, etc). Well, it's one thing to install and use them but another to understand all the computer science background about them.
Therefor many developers around the world thought to make this summer a NoSQL summer. Local meetings are held in many cities: London, Los Angeles, New York, Paris, lake constance ... :-)
If you like to meet for a beer and learn and discuss about some of the hottest stuff in computing, then come around! Please select the dates when you can join and the papers you'd like to discuss. You can subscribe to email announcements or ical and rss feeds at the lake constance nosql summer page.

16 June 2010

Christoph Berg: Cool Unix Features: /dev/full

I've always thought about collecting random bits of useful/interesting/cool Unix features and the like. Before I let that rot indefinitely in a text file in my $HOME, I'll post it in a series of blog posts. So here's bit #1: Everyone knows /dev/null, and most will know /dev/zero. But /dev/full was unknown to me until some time ago. This device will respond to any write request with ENOSPC, No space left on device. Handy if you want to test if your program catches "disk full" - just let it write there:
$ echo foo > /dev/full
bash: echo: write error: No space left on device

Mehdi Dogguy: Buildd status pages

Recently, I started to write some web tool to track the status of ongoing transitions in unstable. I thought I could use some code from the Buildd status project (to see how it fetches the status for each package). Unfortunately, this caused some nightmares for some WB admin :) (because they used to rely on the generated BDB files and not the PGSql database, where the former is a snapshot of the latter stored in a funny format). Those BDB files were considered deprecated and status pages were looking for some love. Besides, the BDB files were kept in sync by regenerating them regularly (every 15 minutes, AFAIK). So, the information stored there was up-to-date only for a couple of seconds and then outdated, waiting for the next run to be updated. Last weekend, I rewrote the status pages from scratch to make them use the PGSql database. I kept the same user interface (and pages arguments) to make it a drop-in replacement for the old one. Today, thanks to the WB admins, the new status pages replaced the old ones! There are no new visible features for now (except the backend and some links) but I have a list of new features that I intend to implement. These new features will be implemented in my local copy first and then integrated if WB admins want them. And, as some of you already noticed, the new status pages are aware of non-free packages (because it happens that the data is present in the PGSql database :) thank WB admins for that!).

Kartik Mistry: Bunch of good news..

1. Kavin is of 3 today. Can t forgot that awesome day :)
2. I ve joined Nexenta Systems since last month..
3. Nexenta is going to sponsor DebConf10! No. No DebConf for me this time. Wish me best luck for next time, please!

Petter Reinholdtsen: Calling tasksel like the installer, while still getting useful output

A few times I have had the need to simulate the way tasksel installs packages during the normal debian-installer run. Until now, I have ended up letting tasksel do the work, with the annoying problem of not getting any feedback at all when something fails (like a conffile question from dpkg or a download that fails), using code like this:
export DEBIAN_FRONTEND=noninteractive
tasksel --new-install
This would invoke tasksel, let its automatic task selection pick the tasks to install, and continue to install the requested tasks without any output what so ever. Recently I revisited this problem while working on the automatic package upgrade testing, because tasksel would some times hang without any useful feedback, and I want to see what is going on when it happen. Then it occured to me, I can parse the output from tasksel when asked to run in test mode, and use that aptitude command line printed by tasksel then to simulate the tasksel run. I ended up using code like this:
export DEBIAN_FRONTEND=noninteractive
cmd="$(in_target tasksel -t --new-install   sed 's/debconf-apt-progress -- //')"
$cmd
The content of $cmd is typically something like "aptitude -q --without-recommends -o APT::Install-Recommends=no -y install ~t^desktop$ ~t^gnome-desktop$ ~t^laptop$ ~pstandard ~prequired ~pimportant", which will install the gnome desktop task, the laptop task and all packages with priority standard , required and important, just like tasksel would have done it during installation. A better approach is probably to extend tasksel to be able to install packages without using debconf-apt-progress, for use cases like this.

Russell Coker: Carpal Tunnel Getting Better

Three months ago I wrote about getting Carpal Tunnel Syndrome [1]. A few weeks after that I visited the specialist again and had my wrist brace adjusted to make it a little less uncomfortable. The specialist also gave me some quick ultra-sound treatment and then said that if it didn t get better in a month or two then I should just get a referral to a surgeon! I didn t have a bad case, some people have their hand muscles atrophy. My hand strength was measured as 50Kg in my left hand (the one with CTS) and 52Kg in my right hand. The greater strength in my right hand is probably more due to the lack of left-handed tools and sporting equipment than any muscle atrophy. This is slightly better than the physical standards for the Victoria Police (just over 50Kg average for both hands) [2] and a lot better than the Australian Federal Police physical standards of 45Kg for the dominant hand and 40Kg for the non-dominant [3]. Really my hand strength should have been recorded as 490Newton and 510Newton respectively, medicine is the science of healing, in all aspects of science the Newton is the measure of force. Over the past few months my hand seems to have recovered a lot while wearing the wrist-brace 24*7. I ve just started going without the wrist-brace during the day and it seems to be OK. I m currently planning to wear the wrist brace at night for a year or two as it s the only way to ensure that my hand doesn t end up on a bad angle when I m asleep. At this stage it seems that I ve made as close to a full recovery from CPS as is possible!

Mike Hommey: ++age

(gdb) p/x age
$1 = 0x20

Julien Danjou: Announcing rainbow-mode

While customizing Emacs this last weeks, I had the need to customize also the color theme. Color themes are always a pain in the ass to edit, because you're supposed to read color strings like #aabbcc and guess what colors they represent. This is why I wrote rainbow-mode, a minor mode for Emacs that will highlight strings that represents color, using the color they represent. This support hexadecimal syntax, HTML color name, X color names and rgb() CSS syntax.

15 June 2010

Marco T&uacute;lio Gontijo e Silva: Summer of Code weekly report #5

My project. This post assumes that the reader has read my last post. This was a week full of segfaults, failed assertions, changes in the user data and other crazy stuff. I started working on the allocation of memory on the freed lines. In the first glance, it seemed to be much harder than the small changes I ve done to free memory in lines, because of the a never-seen-before-by-me datatypes being dealed with in alloc_for_copy(), from rts/sm/Evac.c: gen_workspace. But in a short time the code of alloc_for_copy() has shown itself to be simple, and it was easy to do an initial implementation. I went in the same path I was going on before, trying the simplest solution that works. For instance, the line representation used is not ideal, because groups of lines are not considered, but it was the simplest at that time, and I plan to improve it latter. The gen_workspace data type contains a pointer to an area of a block that is not being used (todo_free) and a pointer to the end of that area (todo_lim). When a space for an object is requested, it s allocated in this area, and todo_free is adjusted. If the area is full, a new block is requested. My intended change was to return the first free line of the generation when the object is smaller or equal to the size of a line, and use the current approach otherwise. This is the simplest way I could think, but has the problem that the only one object is allocated per line. This was a known issue.
    if(size <= BITS_IN(W_) && gen->first_line != NULL)  
        to = gen->first_line;
        gen->first_line = (StgPtr) *gen->first_line;
        return to;
     
    ws = &gct->gens[gen->no];
After that I got the first round of segfaults. One problem I could spot so far was in the code in rts/sm/Sweep.c, related to the liberation of the lines. The block is allocated by need, and there s a pointer to the first free byte, free. This free space is used by alloc_for_copy(). So, we should only think of lines in the region already allocated in the block, that is, where the address is smaller than free.
                    if(bd->u.bitmap[i] == 0 && bd->u.bitmap[i - 1] == 0 &&
                       start + BITS_IN(W_) <= bd->free)
But the segfaults, memory corruptions, etc, kept going on. I tried some restrictions, like allocating in lines only objects with the exact size of a line, or very small objects (size == 2), or allocating just one object for generation, or only one object at all. I also tried checking for the type of the allocated object, to see a correlation with the problems I was having. Nothing helped by now. So I thought I should work on other things, so that maybe my mind gets clearer and I can spot the problem. I followed the suggestion of using todo_free and todo_lim to make it possible to allocate more than one object in a line. I liked this change, since I had the impression that it fits better with the rest of the code than the initial implementation, and it will be easier to addapt it when I improve the representation of the free lines. As I said, I wanted something to work while I think in how I ll solve the segfault problems. The bad side of this choice is that I ll not be able to test it, since it s just a reimplementation of the same idea in the allocation code, and is not expected to work. The good size is that it may work, and solve the problems I was having by accident.
    if (ws->todo_free > ws->todo_lim)  
        if (size <= BITS_IN(W_) && gen->first_line != NULL)  
            ws->todo_free = gen->first_line;
            gen->first_line = (StgPtr) *gen->first_line;
            to = ws->todo_free;
            ws->todo_lim = ws->todo_free + BITS_IN(W_);
          else  
            to = todo_block_full(size, ws);
         
     
I got the same results as with the older implementation, and no ideas about how to solve it (yet). So I thought about another thing to work on, which I m talking about all through this post: improve the free line representation. This has the advantage of being testable, since it s unrelated to the allocation code, and may give me an idea about how I can fix the segfaults. The bad side is that it probably won t fix my problems directly. I m working on it right now.
Following a suggestion, I ve started using gdb to see what was happening in the GC instead of including printfs everywhere, and it s been useful. I ve noticed that sometimes printf is more effective, but sometimes gdb is much better.

Next.

Previous.