Well for the first time the style branch kinda works for me....
Compile time increases by about 65% (that's acceptable) with my style
(available under CCBYSA 2.0 here:
http://openmtbmap.origo.ethz.ch/wiki/development )
Austria takes now 6:16 instead of 3:50 minutes.
Max memory consumption (using max-processes=2) goes down from 2640MB to
2428MB, average memory consumption of java process remains pretty
stable. I still have to add many !=* so I don't know if the positive
effect will still remain. Even though my style has many !=* already
implemented, I still have an overhead of around 1.5% of (mostly lines)
increase in map data due to some continue rules that I have to prevent.
What is really good, is that long rules now work well. Meaning no !=*
being dropped anymore.
Problem that I still see vital to be solved before merge with trunk:
I do have problems regarding the action rules though (or better said,
absolutely no improvement noticed here).
What I would like is that action rules are run by default like
[continue with_actions], meaning, that all matching action rules should
be applied in order, and not only the first one that matches.
Previously action rules were read like an upside down pyramid, the more
matches, the higher the priority. Now one has to sort the action rules
like an upside down pyramid (and this is really difficult if you have
300-400 action rules with many tags - meaning it is difficult to
construct that upside down pyramid)
Advantages would be:
1. easier integration of international names:
2. Better general support for naming
3. Easier setting of attributes like unpaved (without dropping another
rule or making very very complex action rules
4. Would work better with current trunk styles (they are written as if
any action rule would be matched already).
Example:
A way tagged with: highway=path; name=coutêaué; name:translit=couteaue
(generated by translit program); mtb:scale=1; mtb:scale=uphill=4;
route=mtb; route_name=up_the_hill
Following action rules:
name:translit=* {set name='${name:translit}'}
mtb:scale=1 & mtb:scale:uphill=4 {set name='${name} mtb14' |
'mtb14'}
route_name=* {set name='${name} ${route_name}' | '${route_name}' }
mtb:scale=* {set mkgmap:paved=no}
Current behaviour output:
name=couteaue
mkgmap:paved=no dropped
Changed behaviour rules applied would result in:
name=couteaue mtb14 up the hill
mkgmap:paved=no applied.