[sword-devel] free Windows compiler for SWORD

Troy A. Griffitts sword-devel@crosswire.org
Fri, 01 Aug 2003 17:48:38 -0700


Joel,
	After searching through my emails and extracting the bits that I feel 
support my 7/17 email, the result is attached to the end of this 
message.  There were many irc sessions that I feel also added quite a 
bit, but I have no history of those conversations.

Though I understand your frustration, I don't appreciate you taking pot 
shot on the public email list (other emails before this most recent one) 
about your searching not getting implemented.

I value the fellowship, challenges, trials, and other growing 
experiences that we all have with each other on CrossWire projects. 
They are probably more valuable than the actual software.

I was not looking for a 'yes-man developer', but someone who would 
appreciate my convictions and honor them.

You are an enjoyable person, a good engineer, and even a good architect. 
  I have nothing against you, save for:

1) your persistence with a subject of disagreement
2) your _public antagonizational voicing_ of complaints (even if warranted)

It's very much a fun thing to architect a solution to a problem.  The 
grunt work of building the solution is not the most glorious.  My hope 
is that people will be creative with their architecting of their 
solutions WITHIN the existing API framework.  I understand that you have 
many good ideas for change; some on which we agree, and some otherwise.

People submit code to SWORD all the time.  Many people have direct 
access to commit code without my approval.  But they all understand that 
the FRAMEWORK is set, and adding dependencies is not acceptable.  New 
markup filters are added and changed all the time, as well as option 
filters (for stuff like footnotes, strongs, etc.).  These are easy to 
allow because they are all plugins into the framework and can be easily 
removed.  Being a revolutionary isn't a bad thing, but just not an easy 
thing to facilitate.

When you started the search work, there was a search plugin framework in 
place-- even if it sucked.  Your code did not unintrusively use this 
framework to isolate itself.  I liked your ideas toward a possible 
different way to allow search plugins.  My last statement to you was:

if we allowed this search registration method, I would have no problem 
making this search type (with all its extra code) available as an 
additional plugin.  The patch would be almost non-intrusive (save for 
the registration call), and the rest would be extra files.

You responded that you wanted more of my time before you would be 
willing to do this.  Without a clean cut isolation of your work, I can't 
even consider including it with the extra parsing code.  Even IF it was 
an additional component of a search framework, I would still have issues 
with including a 3rd party library just for logic parsing, but my 
statement above still stands:  if it can be extracted as an addon search 
type, I would concede to include your search code even with the extra 
3rd party library.

My apologies for the delay this reply has seen getting to you-- and for 
all the lapses that drew this task out.  If I had the time and priority 
to redesign the search framework, I would have done it myself.  I'm not 
sure how to facilitate it when another person wishes to do this before 
me.  There is alot I still have to learn about facilitating aspects of 
this project.  I hope this recent trial hasn't broken our relationship.

	-Troy.




Troy A. Griffitts wrote:
> Joel,
>     Public comment deserves public response:
> 
>     Over the 2 months that you worked on your extensions to the Search 
> code

8/25/2002 - 10/30/2002


, we had numerous emails / chat sessions about what I would not
> accept in the engine, namely: 1) adding 2 megs of source code of someone 
> elses project just to parse logic syntax; 

8/29/2002: me: Remember, we compile on a variety of platforms, including 
handhelds, and have many components that are useful independently of the 
rest of the API.  Adding requirements of external libraries across the 
board in the API is a very serious thing to consider."

9/30/2002: you: Hi all,

I'm writting to get reactions to the idea of making sword dependent on 
ICU. Currently we only have optional dependencies on ICU (at least for
transliteration but I'm not sure what else). I would like to suggest 
making ICU required for sword.

10/01/2002: me:
My position on ICU:

We use it in the engine.  It is never exposed in the engine and is 
always optional.
...
I am not willing to make a dependency on icu.
[suggestions how to encapsulate icu functionality]

10/01/2002: you:
I wish it was that easy. (grin) But seriously, I forsee a growing number 
of cases like this. I would suggest that just biting the bullet and 
using the ICU functionality will be better in the long run...

10/26/2002: you:
I just discovered that the version of the parser framework I've been 
using may not be compatiable with MSVC++

10/30/2002: you:
[attached search patch]
Here are my changes to look at and try.
...
I still have two unresolved issues:
...
2. Will the version of the Spirit parser framework I used work with 
MSVC++ and C++ Builder?

[long pause with much apologies along the way]

2/22/2003: me:
 From a brief look at your work:
...
I don't like the more than .5 megs of added source which is mostly the 
expression parser.

[2 megs was an unwarranted exageration and deserves an apology, but the 
point still stands]

you:
Are you concerned about the source code size increase or the executable 
size increase? Personally I don't see a code base increase as that big a 
deal



 > 2) changing the API interface to expose a new 'search' object.

8/29/2002: me: Well, I'm hesistant to allow anyone to make 'signicant 
changes' to any part of the 'model' of the engine-- as you would expect. 
  I'm not sure if you are aware, but we have a crude extraction of the 
search mechanism to allow drivers to implement their own fast searching 
architecture.

me: ...I would understand this to be in your implementation of the 
search mechanism and not part of the end user api.

you: Yes, you are correct.

9/03/2002: you: I think a lot more functionality could be exposed to the 
API clients than is possible with a single search method.

me: Like what?  I'm not opposed to adding additional searchType values.
9/4/2002: you: By exposing more fine grained control to the frontends 
you can do a bunch of neat things. For example say SWIndex had these 
methods:

ListKey* search(some options here)
ListKey* AND(ListKey* a, ListKey* b)
ListKey* OR(ListKey* a, ListKey* b)
ListKey* NOT(ListKey* a)
ListKey* PROXIMITYAND(ListKey* a, ListKey* b, int proximity)

9/16/2002: me: I'm mostly concerned with:

a) the syntax used in the new search type
b) the parser of such and the core api implementation in SWModule::Search.
...It doesn't affect the interface of the API...

2/22/2003: me:
 From a brief look at your work:

I like the idea of an abstract class to handle search types.
I don't like the idea of making it publicly accessible in the api
...
It seems a promising architecture would be to allow a searcher to 
register itself as a 'search type' and SWModule::Search could see if it 
had a matching searcher registered to handle the search type.
[other comments conceding interface changes to the search plugin arch to 
allow your patch as an optional ADDON, but not changes to the client's 
interface for _using_ searching]
...
if we allowed this search registration method, I would have no problem 
making this search type (with all its extra code) available as an 
additional plugin.  The patch would be almost non-intrusive (save for 
the registration call), and the rest would be extra files.

2/22/2003:you:
What I don't like about the current way SWModule::Search() works is that 
each search type and module impl is forced to use the parameters and 
return type that Search() defines in SWModule.

> 
>     I appreciate the work, and when I get around to changing these 2 
> major issues, I still plan to integrate your code into the engine, BUT 
> it was a constant fight with you the entire time of development.

(to your credit)
8/29/2002: Put up a good fight and you'll win our confidence, ESPECIALLY 
if you show you're here to stay!


 > I explained in detail how I felt on these issues and you still chose to
> submit your code in this format.  You also repeatedly ignored my 
> suggestions regarding implementation of other things (including keeping 
> the code in the same theme as the existing Search code, so Range 
> searching will work in the future).

8/29/2002: You are free to implement your search functionality in any 
way you see fit, even requiring ICU if you desire.  This would mean that 
your mechanism wouldn't be available to people without ICU, but maybe 
you're not concerned with this.  I would encourage you to consider a 
non-icu implentation for use with western scripts, but that's a later issue.

[I'm sure we had at least 2 chat sessions about the 'range' issue.  To 
be more specific: e.g. "within 3 verses".  I had asked if you would 
implement your logic the same as what was in SWModule::Search, so when 
we implemented this range thing they way I explained it would be impl'd, 
your stuff would work.  I don't remember the details, but do remember 
being a little frustrated when I looked at your code and it wasn't 
impl'd this way]


   If you want your code integrated
> into a project, I feel you might need to respect the requests of the 
> maintainer, or expect to wait until the maintainer has the time to do 
> what you would not do, before the code is added to the project.  I just 
> haven't had time to do this.  You've known this entire time what issues 
> I have with your code, and you have a right to disagree with my 
> opinions, but don't expect me to integrate it in this form into a 
> project for which I hold responsibily.
> 
>     Your time and work are still appreciate,
> 
>         -Troy.
> 
> 
> 
> Joel Mawhorter wrote:
> 
>> On July 16, 2003 17:39, Chris Little wrote:
>>
>>> Seriously, the single greatest problem with Sword is probably the
>>> inordinate ratio of people crying for new features to the number people
>>> they expect to implement them.
>>
>>
>>
>> This is easy to say. However, until new developers are able to be 
>> integrated into the development process without an unreasonable amount 
>> of effort, this will remain exactly as it is. If my experience trying 
>> to improve the searching in Sword is representative of what other 
>> prospective developers have had to go through then it is no surprise 
>> to me that the Sword development team is small. Of course it is 
>> perfectly within the rights of the maintainers of a project to keep 
>> the development team small. However, if you do, recognize that a large 
>> ratio of people requesting features to people contributing code is 
>> probably a consequence of that decision.
>>
>> Joel
>>
>>
>>> --Chris
>>>
>>
>>
>> _______________________________________________
>> sword-devel mailing list
>> sword-devel@crosswire.org
>> http://www.crosswire.org/mailman/listinfo/sword-devel
> 
> 
> _______________________________________________
> sword-devel mailing list
> sword-devel@crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel