From: Edward Diener (eddielee_at_[hidden])
Date: 2002-10-24 00:05:04


"Andrei Alexandrescu" <andrewalex_at_[hidden]> wrote in message
news:ap7ji0$gv7$1_at_main.gmane.org...
> "Edward Diener" <eddielee_at_[hidden]> wrote in message
> news:ap7i2b$d9v$1_at_main.gmane.org...
> > Regex++ is a library. It is a single DLL or LIB file and not just a set
of
> > template header files.
>
> Why?

Why what ? That it is partly a library or that it is a single library ?
Surely you know why people create re-usable libraries.

I would suggest that you ask Dr. John Maddock who wrote it further about its
design. I am not the designer although I have used it successfully in my own
Regular Expression Component Library (
http://www.tropicsoft.com/Components/RegularExpression) . Much of the
underlying Regex++ functionality exists in a library because instantiating
such code via templates each and every time would really lead to code bloat.
At least a library allows one to fold common code together.

>
> > That may explain what you believe to be code bloat
> > somewhat. I realize that using the LIB file should result in the final
> > module only including the object files needed but many of the object
files
> > contain a large subset of functionality within a generalized source
file,
> so
> > very possibly even using the static LIB version drags in some extra
> unneeded
> > code.
>
> Would that hint that an alternative approach would be better?
>
> > > > That said, I think GRETA is about as big as regex++.
> > >
> > > The hundreds of KB still put both libraries in the hugely expensive
> range.
> > > At 500 KB, it would frankly border on unacceptability for many real
> > > projects.
> >
> > Wow ! I always thought 500 KB was pretty small in these days of
> > multi-megabyte modules and executables and gigabytes of memory and
virtual
> > memory. You must be working on some pretty small projects, Andrei !
>
> Thanks for the implied compliment. Ok, let's take a look:

Didn't mean it as a compliment or putdown, but just as a straightforward
comment.

>
> cvs.exe: 239 KB
> efaxview.exe (fax viewer): 337 KB
> kazaa.exe: 2,258 KB
> msmsgs.exe (MS Messenger): 1,477 KB
> stocks.exe (Medved QuoteTracker): 4,642 KB
> wincvs.exe: 733 KB
>
> I believe I compressed some or all of these programs with upx, but if you
> double the numbers, my point stays the same.
>
> Consider a 3 MB executable, would that be enough? If what my program does
is
> ***all about*** regular expressions, ok, I grudgingly agree on having a
> regex engine add 17% size to it.
>
> If that program has only incidental use for regular expressions (as might
be
> the case with either of the above programs), such as validating some user
> input or parsing some protocol or parsing some file format, then no way
> we're talking about "pretty small". No way.

I guess I don't understand the issue regarding size per se. Unless one is
programming embedded systems nowadays it practically doesn't seem to matter.
Of course I understand designing something well so that extraneous code or
code duplication doesn't occur, and I enjoy as much as the next programmer
designing something elegant, creative, and beautiful. But just as in a more
well known area, size matters much less than people think and creativity is
what counts.