bug-gmp
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Bug-gmp digest, Vol 1 #196 - 4 msgs


From: David T. Ashley
Subject: RE: Bug-gmp digest, Vol 1 #196 - 4 msgs
Date: Sun, 5 Aug 2001 22:50:46 -0400

> d)The sheer number of source files involved.

A non-issue.  Breaking up the code into natural chunks actually helps
understanding and maintaining the library.

VERY RESPECTFULLY, I DISAGREE WITH YOU THERE.  IN FACT, YOU'VE EVEN
CONTRADICTED YOURSELF!

I AGREE THAT BREAKING IT UP INTO "NATURAL CHUNKS" WOULD BE HELPFUL.

UNFORTUNATELY, EACH FUNCTION IN ITS OWN SOURCE FILE IS NOT WHAT I THINK A
NATURAL CHUNK IS!

IMHO, THE RIGHT NATURAL CHUNK IS TO BIND TOGETHER FILES THAT PROVIDE NATURAL
DATA ABSTRACTIONS.

SO, I THINK PUTTING ALL THE ARBITRARY INTEGER FUNCTIONS IN ONE SOURCE FILE,
ALL THE RATIONAL NUMBER FUNCTIONS IN ONE SOURCE FILE, ETC. WOULD BE THE
RIGHT DECISION.  I WOULD THINK SOMETHING ON THE ORDER 0F 3-10 MODULES IS THE
RIGHT DECISION.

> Now, in my case, I took a non-recommended approach to using the library--I
> just moved it function-by-function into Visual C++, and of course I
changed
> things I did not care for along the way.  But it was a very painful
process.

I moved GMP into Visual C++ several months ago and it was quite a
straightforward process.  I occasionally still use the M$ GMP library
without hitches.  Was it painful for you simply because you wanted only
some functions and nothing else?  In that case, there's nothing specific
about GMP that made it difficult.

IT WAS PAINFUL BECAUSE I DON'T TRUST CODE I DON'T UNDERSTAND.  I KNOCKED OUT
EVERYTHING EXCEPT THE MULTIPLICATION BASECASE, ETC.  I'VE HAD ENOUGH
INTERMITTENT BUGS IN MY LIFE, AND I DON'T DRAG IN UNTRUSTED CODE UNTIL I GET
TO TRUST IT.

MY PROCESS FOR TRUST IS TO LOOK IT OVER, BE SURE I UNDERSTAND THE MAJOR
LOOPS, BE SURE THE INTERFACES ARE TRAPPED, ETC.  CLEARLY, WITHOUT
DOCUMENTATION, I HAVE A HARD TIME TRUSTING IT.

ANOTHER THING I DID TO THE LIBRARY IS TO ADD A "NOT A NUMBER" FLAG.  BECAUSE
I USE THE GNU MP LIBRARY INSIDE OF ANOTHER PROJECT, I DON'T WANT TRULY
"ARBITRARY" ANYTHING.  I CLIPPED INTEGERS AT ABOUT 100,000 DECIMAL DIGITS,
AND IF A RESULT IS LARGER, IT IS SET TO "NAN".  A "NAN" COMBINED WITH ANY
OTHER VALUE THROUGH A UNARY OR BINARY OPERATION IS ALSO "NAN".  THAT TOOK
SOME EXTRA CODE.  MY VERSION ISN'T TRULY ARBITRARY ANY MORE.  INTEGERS
CANNOT EXCEED 100,000 DIGITS.  IF THEY DO, NOTHING BAD HAPPENS, IT IS JUST
THAT THE RESULT GETS DECLARED NAN.

THIS IS JUST MY HANGUP, NOT NECESSARILY YOURS.  IN ADDITION TO RENAMING,
GETTING RID OF A LOT OF MACROS THAT WERE THE RIGHT THING FOR EFFICIENCY BUT
THE WRONG THING FOR CLARITY, ETC., TOOK A LITTLE TIME.

A DIRECT "TRUST AND DRAG" WOULD HAVE BEEN QUICKER.  BUT I DON'T TRUST
EASILY.  I ALSO DIDN'T WANT IT TO BE TRULY ARBITRARY SIZE.

Sure, the code could do with more documentation, certainly on the
technical aspects and reasons for a particular choice of algorithm.
Perhaps you might care to contribute?

THAT WAS ACTUALLY ONE OF MY COMMENTS IN ANOTHER E-MAIL.  I WOULD LOVE TO ADD
DOCUMENTATION.  BUT THE PROCESS AT THIS TIME IS THAT I WOULD E-MAIL SOMEONE
THE REVISED FILE.  THAT IS A LITTLE CLUMSY, BUT I WOULD DO IT.  BUT I WON'T
EVEN TOUCH THAT SOURCE CODE UNTIL THERE IS A PUBLISHED SET OF CODING
STANDARDS THAT ACCOMPANY IT.  OTHERWISE IT IS LIKE A SINKHOLE OF EFFORT.

IN OTHER WORDS, I WOULD WANT HARD AGREEMENTS ABOUT TABS, FUNCTION INTERFACE
TRAPPING, ETC. BEFORE I SPEND ANY OF MY TIME.  WE WOULD ALSO NEED TO AGREE
FOR COMMENTS HOW WIDE THEY SHOULD BE, STYLE CONVENTIONS, ETC.  I WOULD NOT
HELP OUT UNTIL THAT IS ESTABLISHED, BECAUSE OTHERWISE I AM THROWING AWAY MY
EFFORT.

I'D LIKE TO SAY ONE LAST THING.  THE GNU MP LIBRARY IS TECHNICALLY
BRILLIANT.  IN FACT, EVEN THOUGH I THOROUGHLY BASTARDIZED IT FOR MY
APPLICATION, I KEPT THE BASIC DATA STRUCTURES AND ALGORITHMS.  THE IDEA
USING THE "SIZE" FIELD TO INDICATE BOTH LIMB-LENGTH AND SIGN IS BRILLIANT.
NEARLY ALL OF IT IS BRILLIANT.

THE STYLE STUFF I HAVE MENTIONED IS THE NORMAL STUFF ONE WOULD ENCOUNTER
WITH SOMETHING THAT NEEDS TO SUPPORT SO MANY PLATFORMS AND HAS SO MANY
COOKS.  I AM NOT TRYING TO BE PICKY OR RUDE.  IT IS ALSO NOTEWORTHY THAT MY
PERSONALITY ISN'T RIGHT UNDER THE CENTER OF THE BELL CURVE.  I REALLY
BELIEVE THAT SOFTWARE IS SENTIENT AND OUT TO GET YOU.  MY PAROLE OFFICER
SAYS THAT I'M PARANOID WHEN I DON'T TAKE MY PILLS, BUT WHAT DOES HE KNOW?

BEST REGARDS, DAVE.

Kim-Ee


_______________________________________________
Bug-gmp mailing list
address@hidden
http://mail.gnu.org/mailman/listinfo/bug-gmp




reply via email to

[Prev in Thread] Current Thread [Next in Thread]