List:MySQL++« Previous MessageNext Message »
From:Warren Young Date:July 7 2005 2:24am
Subject:Re: static globals in SSQL macro expansion -> multiple definition
linker errors
View as plain text  
Chris Frey wrote:
> 
> This is a big disadvantage in my view.  It adds a dependency to the
> user's build process, not just to mysql++'s.

Yes, it's a problem.  But we are beset by problems currently, too.  I am 
proposing trading a large problem set for a smaller one.

> I would not be keen on writing XML in order to get C++.

...even if the library comes with good examples for you to hack up to 
meet your personal requirements?  I can't imagine it needing a syntax 
more complicated than:

	<ssqls name="MyStruct">
		<int name="MyNumber"/>
		<mysqlpp:Date name="MyDate"/>
		...
	</ssqls>

Pretty much the same as the current syntax.

Another advantage I forgot to mention is that you could put several of 
these declarations into a single file, and the tool would be able to 
spit out as many source files as needed.

And another advantage just popped out of the XML syntax I just invented: 
because the types are tags, we can verify in advance that the caller is 
using appropriate types.  Currently, nothing stops someone from saying:

	sql_create_3(doomed,
		1, 3,
		char*, x,
		std::complex, y,
		MyOwnStrangeType, z)

This will generate a perfectly legal C++ structure.  But, using it will 
at best cause the compiler to barf in the middle of some hideous macros. 
  Even worse, the code may compile, and then cause who knows what kind 
of run-time havoc when trying to do the type conversions.

If the syntax is all that bugs you, we could make the generator accept 
the current SSQLS macro syntax.  It's pretty straightforward.  The main 
reasons not to are that it rules out several classes of tools (e.g. 
XSLT) and it makes the parser more complex than it has to be.  A middle 
ground would be to write a translator from the SSQLS syntax to the new one.

 > I'm uncomfortable
> going in the other direction toward code generators, even with the above
> advantages.

If those advantages aren't sufficient, what would it take?
Thread
static globals in SSQL macro expansion -> multiple definitionlinker errorsWolfram Arnold6 Jul
  • Re: static globals in SSQL macro expansion -> multiple definition linker errorsChris Frey6 Jul
    • Re: static globals in SSQL macro expansion -> multiple definitionlinker errorsWolfram Arnold6 Jul
    • Re: static globals in SSQL macro expansion -> multiple definitionlinker errorsWarren Young6 Jul
      • Re: static globals in SSQL macro expansion -> multiple definition linker errorsChris Frey6 Jul
        • Re: static globals in SSQL macro expansion -> multiple definitionlinker errorsWarren Young6 Jul
          • Re: static globals in SSQL macro expansion -> multiple definition linker errorsChris Frey7 Jul
            • Re: static globals in SSQL macro expansion -> multiple definitionlinker errorsWarren Young7 Jul
              • Re: static globals in SSQL macro expansion -> multiple definition linker errorsChris Frey8 Jul
                • Re: static globals in SSQL macro expansion -> multiple definitionlinker errorsWarren Young8 Jul
              • Unresolved External SymbolBrian Farmer14 Jul
                • Re: Unresolved External SymbolWarren Young14 Jul
                • Connection always on and field namesAnkur G35 Saxena17 Jul
                  • Re: Connection always on and field namesWarren Young18 Jul
  • Re: static globals in SSQL macro expansion -> multiple definitionlinker errorsWarren Young6 Jul