Re: [Oopic-compiler-devel] OOpic firmware versions and code generation impact
Status: Planning
Brought to you by:
ndurant
From: Neil D. <nd...@us...> - 2004-06-05 13:26:52
|
D. Daniel McGlothin wrote: > <quote> > Yes new commands and object were added with each version. > > However, the sales of the versions below II+ are only about 10% of total > sales. > > Given that, I think it would be best to work with just the II+ version. > > Give me a few more days on the Object database. > </quote> > > Several points: > > 1. Although have not yet received the 'Object database', we do have some > information about the firmware differences. It's certainly encouraging to see that it sounds like just a series of extensions to the op-codes, rather than anything more fundamental. Presumably there's zero difference between the C/BASIC/Java language support when targeting different firmware versions? > 2. Since firmware version II+ is 90% new sales, that is the reasonable first > target for the toolchain. However, the statitistic does not comment to the > relative sizes of the shipped populations. Agreed. > 3. How would the project accomodate different versions of the firmware? Is > it a matter of a different code generator for each firmware, or does one > generator handle the differences conditionally? I think we should be able to use the same code generator. I would suggest that we pass in a parameter to the compiler to specify the firmware version, and the parser will throw an error if the input code includes stuff not allowed for that firmware version. Once the parser has successfully parsed the input code and generated an internal representation, the code generator should just be able to do its stuff, regardless of the firmware version (I think). It sounds to me as though the code generator should generate exactly the same code irrespective of firmware version setting, as long as the input code is legal on the respective firmware versions. If I'm right about this, all we need to do is put some conditional logic in the parser to disallow certain things, which I imagine would simply be the instantiation of VC objects that aren't supported on a given version. Neil -- Neil Durant <nd...@us...> |