On 15/12/2010, at 12:20 PM, john skaller wrote: > > On 15/12/2010, at 12:05 PM, john skaller wrote: >> >> bottom line: I have no idea what's causing the bug, but I also have no idea >> what invariants really have to be preserved so it makes looking for the bug >> irrelevant: got to have design invariants before you can look for places the >> invariants are broken. > > A similar issue here: > > (** The bound symbol type. *) > type t = { > id:string; > sr:Flx_srcref.t; > vs:Flx_types.ivs_list_t; > pubmap:Flx_btype.name_map_t; > privmap:Flx_btype.name_map_t; > dirs:Flx_types.sdir_t list; > bbdcl:Flx_bbdcl.t; > } > > Now, the pubmap, privmap, and dirs are **only** useful during lookup. > Really they should never get into the bound symbol table. >
BTW: I think I understand why they're in there: they're not actually used anywhere! But they're in there, because Erick was working on being able to do lookup on the bound symbol table. The idea was that you could make a bound symbol table for a library, discard the unbound symbol table, and then when you're using the library in some program, the lookup could check in both the programs unbound symbol table then the libraries bound table: this is much faster than doing lookup in the unbound symbol table of the library, since things like types are already bound (actually the types are cached anyhow so this isn't a good example). However it's not clear what to put in there for synthesised symbols, and the inliner makes a LOT of those! -- john skaller skal...@users.sourceforge.net ------------------------------------------------------------------------------ Lotusphere 2011 Register now for Lotusphere 2011 and learn how to connect the dots, take your collaborative environment to the next level, and enter the era of Social Business. http://p.sf.net/sfu/lotusphere-d2d _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language