<div dir="ltr"><div>Synopsis, I was testing the haskell library diagrams ( <a href="http://projects.haskell.org/diagrams/">http://projects.haskell.org/diagrams/</a> ) with its cairo backend on OSX to render some simple text. But running the program to generate an svg (or png) that contains nothing but a single word results in the following error from cairo:</div><div><br></div><div>```</div><div><div>Assertion failed: (!scaled_font->cache_frozen), function _cairo_scaled_glyph_page_destroy, file cairo-scaled-font.c, line 459.</div><div>Abort trap: 6</div></div><div>```</div><div><br></div><div>I talked to bergey one of the developers for the cairo backend of diagrams and after some brain-wracking he suggested to submit a bug report to cairo.</div><div><br></div><div>Steps to reproduce.</div><div><br></div>This is OSX 10.8.5<div>cairo-1.14.0 installed via homebrew</div><div>pango-1.36.8 installed via homebrew</div><div>ghc-7.8.3</div><div>diagrams-cairo-1.2.0.6</div><div><br></div><div>The following haskell program takes an output file name and dimensions to render a single word.</div><div><br></div><div>```</div><div><div>module Main where</div><div><br></div><div>import Diagrams.Prelude</div><div>import Diagrams.Backend.Cairo.CmdLine</div><div><br></div><div>main = mainWith (text "SUPER" :: Diagram B R2)</div></div><div>```</div><div><br></div><div>ghc -o a.out Main.hs</div><div>./a.out -o out.svg -w 100 -h 100</div><div><br></div><div><div>```</div><div><div>Assertion failed: (!scaled_font->cache_frozen), function _cairo_scaled_glyph_page_destroy, file cairo-scaled-font.c, line 459.</div><div>Abort trap: 6</div></div><div>```</div></div><div><br></div><div>Since past reports of this error in cairo seems to involve thread safety issues, it may be that to trigger this error you need to have different text instead of "SUPER" or to run this on a different phase of the moon, but I get that error 100% of the time so far. Changing the output file extension to .png or some other format (in order to use a different backend) results in the same failed assertion.</div><div><br></div><div>I included my pango version because diagrams-cairo now uses pango instead of the toy text API to deal with text formatting.</div></div>