compound factions, reference counts

Eddie Kohler eddietwo at cag.lcs.mit.edu
Thu Apr 29 12:52:47 EDT 1999


I have revamped compound factions so they work again.

This time, the lexer treats them lexically using very simple macro
preprocessor techniques. Compound factions have no runtime representation
whatsoever. This is to prove we could do it that way. One new language
concept was required -- the pseudoport -- but I'm not going to explain it
unless you care.

One cool thing that's come out of this: A router can now generate a string,
in the configuration language, describing how it is currently configured.
For the Linux kernel module, this string is readable as
/proc/factions/flatconfig (called so because compound factions have been
removed, so it's "flat").

Syntax change:
No longer give numbers of inputs and outputs in the header. So instead of
	factionclass [1] F [2] {
	  input [0] -> g -> [1] output;
	}
just say
	factionclass F {
	  input [0] -> g -> [1] output;
	}

Other technical changes:
- Router is no longer a kind of Faction
- reference count bug fixes (!#@*$&#!) in Lexer

love,
d



More information about the click mailing list