Thanks for your words of support Matthias. :)

Best Regards,
Chris Beck

On Fri, Nov 28, 2014 at 11:22 AM, mattsc000 <mattsc...@gmail.com> wrote:

> For what it's worth:  While I have not tested this yet, it sounds like a
> very useful feature to me for certain Lua-intensive work.  I will probably
> use it extensively myself in my AI development.
>
> So I am all for this.  Thanks, Chris.
>
> Cheers,
> Matthias / mattsc
>
>
>
> On 11/24/14, 23:58, chris beck wrote:
>
>> Hi List,
>>
>> I'm writing to describe an optional feature which I added to master, and
>> an optional and very small dependency I added which supports it. There
>> was some minor controversy on irc whether I should have mailed the list
>> before doing this -- I think in this case it is small enough and
>> unimportant enough that it's okay but I have figured that I should mail
>> the list about it anyways.
>>
>> Earlier last week I tried to create a "lua interpreter console" dialog
>> where you can interactively send commands to the in-game lua. I did this
>> because I felt we were missing something like the "gamestate inspector"
>> to help inspect the lua state as a debugging aid, and I am anticipating
>> that I will develop more lua-based stuff in the near future. It is
>> mostly working and so a few days ago I called it finished after adding
>> some bells and whistles.
>>
>> One of the features which I added was a command history. I looked around
>> at what most programming language interpreters do and it turns out that
>> the majority of them use GNU Readline for many reasons. Besides those
>> written in C, Readline is also available as a popular python module.
>> Readline is GPL v2 and apparently is good enough that some projects have
>> switched to a GPL license to take advantage of it:
>> http://en.wikipedia.org/wiki/GNU_Readline#Implications_of_
>> GNU_Readline.27s_GPL_license
>>
>> In fact readline is also an optional dependency of lua -- if we compiled
>> the lua folder in current master with appropriate symbol definitions, we
>> could create a stand-alone lua interpreter backed up by readline.
>>
>> GNU history is the small subset of readline which is related to command
>> line history. Besides search and recall, it supports automatically
>> saving and recalling the history session to a file, and bash-style
>> history expansions in strings. I decided that it would probably be
>> easier and more interesting to use GNU history rather than reimplement
>> something like this based on std::vector<std::string> or whatever,
>> surely a pretty menial task if you don't care about the persistence or
>> "expansions".
>>
>> It took me about an hour or two read about it and implement it to my
>> satisfaction this way. It took me about another hour or two to
>> successfully cross-compile GNU history with mingw32 at gfgtdf's request.
>> Thanks also to gfgtdf for finding a bug in my implementation also.
>>
>> Having done all this though, I'm not really about to argue or litigate
>> to add this as an official dependency -- frankly I don't really care.
>> Only a tiny fraction of users would actually use the lua console
>> anyways, only if they are developers or advanced UMC makers. Fewer still
>> would even notice or particularly care about a command line history
>> feature. And I'm certainly not willing to spend more time arguing about
>> the feature than I did implementing it, so I'm already pretty nearly
>> tapped out in that regard.
>>
>> Why put this on master then. Well, the fact is that this library is
>> widely available, it's a dependency of bash, so for instance most of our
>> linux users already have it installed. I have set up scons to search for
>> the lib by default, but if it fails then proceed without it. So it works
>> like the optional dbus-1 dependency. It didn't occur to me at the time
>> that anyone would think this course of action would be unreasonable, or
>> would want to argue about it -- it adds some minor convenience for some
>> users without inconveniencing anyone else.
>>
>> In a way this is a pretty awkward email, because I'm not really
>> interested in starting a discussion, and I'm also not interested in
>> rewriting or revisiting the feature for really any reason. Rather I just
>> don't want anyone to jump to conclusions, feel miffed and say I
>> inconvenienced them by adding a stealth dependency. If everyone wants it
>> to be removed, fine, I don't intend to post in the topic again, I will
>> just use the feature privately myself. If everyone would much rather
>> have a version of the feature without the dependency, you are of course
>> quite welcome to take advantage of the space between #else and #endif.
>>
>> For what it's worth if any of you need to write an interpreter for a
>> programming language in some other context, I would recommend the use of
>> readline, it seems quite good.
>>
>> Best Regards,
>> Chris Beck
>>
>> P.S. For anyone interested, here is a link to my cross-compiled version
>> of GNU history v 6.2.0, tested to work with my mingw32-compiled wesnoth.
>> http://goo.gl/lFz44P?gdriveurl
>>
>>
>> _______________________________________________
>> Wesnoth-dev mailing list
>> Wesnoth-dev@gna.org
>> https://mail.gna.org/listinfo/wesnoth-dev
>>
>>
> _______________________________________________
> Wesnoth-dev mailing list
> Wesnoth-dev@gna.org
> https://mail.gna.org/listinfo/wesnoth-dev
>
_______________________________________________
Wesnoth-dev mailing list
Wesnoth-dev@gna.org
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to