On Wed, 7 Oct 2009, Takashi Iwai wrote: >> But regarding goto, I'm really stuck. We can add some block control: >> >> BEGIN="" .. END="" (looks like a goto anyway) > > Hm, still not much improvement, indeed. > >> Or skip some lines: >> >> SKIPLINES="3" > > Oh, no! I don't want to debug a DSP assembly :) > >> But these solutions do not bring much readability. Another possibility >> (compromise) is to use a goto command to skip all lines to next label to >> reduce usage of named labels (which is not a big fun at least in >> init/default file): >> >> GOTO="" >> .... >> LABEL="" >> >> It works without any code change in current parser. > > I'm afraid that udev config is way too simple for the conditionals. There are plenty conditionals in udev configuration files. That was main reason to use this syntax for alsactl. > And we do need conditionals to handle many cases. XML can do better > for such a purpose, but moving to XML now is another question... Really better? XML is good for static data but not for non-linear execution. Take look to HTML/Javascript. Javascript is doing the non-linear stuff and eventually modifies XML at runtime. We have similar situation in alsa-lib. The syntax structure is changed at runtime depending on external data. But it requires some system resources (memory). Things why I chose udev-like syntax: - well known "key operator value" syntax - very easy to parse - parser reads and executes code directly without storing the source or portions to memory (really small memory usage) - normal conditions are really small in syntax files If only the goto command is major drawback, I can live with it. We need to take account the useability and the implementation complexity. I think a compromise is essential. Jaroslav ----- Jaroslav Kysela <perex@xxxxxxxx> Linux Kernel Sound Maintainer ALSA Project, Red Hat, Inc. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel