<div>
                    Hi Grigori,
                </div><div><br></div><div>Maybe we are talking about different things. If you look at this file, there's a lot of redundant data in there that could be eliminated with the simplest of compression techniques:</div><div><br></div><div>https://github.com/behdad/harfbuzz/blob/master/src/hb-ucdn/unicodedata_db.h#L1553</div><div><br></div><div>Can something be done about this?</div>
                <div><div><br></div><div>-- </div><div><p style="margin: 0px; font-size: 12px; font-family: 'Trebuchet MS'; color: rgb(35, 35, 35); "><b>Lóránt Pintér</b></p>
<p style="margin: 0px; font-size: 12px; font-family: 'Trebuchet MS'; color: rgb(35, 35, 35); ">Developer at <a href="http://prezi.com"><span style="color: rgb(18, 85, 204); ">Prezi</span></a></p></div></div>
                 
                <p style="color: #A0A0A8;">On Thursday, January 24, 2013 at 1:21 AM, Grigori Goronzy wrote:</p>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div><div>On 01/22/2013 03:35 PM, Lóránt Pintér wrote:</div><blockquote type="cite"><div><div>I'm trying to reduce the size of the Emscripten-generated JavaScript in</div><div>HarfBuzz JS, and by far the biggest part is the UCDN database</div><div>arrays. IIRC, there was a plan to bring the database size down a notch.</div><div>Is there a way I can help with that?</div></div></blockquote><div><br></div><div>UCDN already goes great lengths to reduce the size of the database. The</div><div>index arrays use three stages (as opposed to two stages in most other</div><div>implementations), normalization data is efficiently coded and everything</div><div>uses the smallest data type possible.</div><div><br></div><div>For the main properties, you could try splitting up the ucd_records</div><div>table (vertically) into multiple tables so that there's more correlation</div><div>between the individual fields. This should make the lookup index arrays</div><div>smaller. Currently these arrays alone measure about 30 KB.</div><div><br></div><div>Decomposition/composition can't be improved much further, I guess. In</div><div>these cases, the actual data takes up most of the space, and that's</div><div>already encoded in UTF-16 so it's not going to get much better.</div><div><br></div><div>And then there's BiDi mirroring, but the table for that is already</div><div>a mere 1.5 KB in size.</div><div><br></div><div>However, the real problem seems to be that emscripten does not have any</div><div>method to store big chunks of binary data efficiently. I guess the</div><div>database blows up to hundreds of kilobytes due to this. AFAIR it is</div><div>possible to load binary data in JS. Maybe you should investigate this?</div><div><br></div><div>Best regards</div><div>Grigori</div></div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>