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