On Tue, Mar 19, 2013 at 9:23 PM, Andrew Wilson <agrw...@gmail.com> wrote:
> minimal is good, remove IUP,As for the 'optimally sized core' (not necessary 'minimal'): I'm
> allowing user selection of packages is whole idea, so only ship with
> reasonable functional packages,
looking at the package list for the Batteries. There are packages
which overlap in functionality (always bearing in mind that any
removed packages will be 'one click away' from being installed)
- yes, IUP is cute, but wxLua is more commonly used and less eccentric
- much as refugees from other languages like them, do we need
'standard' regexp packages when we have lpeg? E.g. lrexlib
- luaex is an interesting package, which was originally meant as an
'executable proposal'. It replicates stuff which is available through
luafilesystem and other packages.
- OIL is marginal, don't think casual scripters would need CORBA support
- there are a number of packages which work with compressed archives
- do we need them all?
- if we have luaexpat, do we need luaxml?
- if we have Lanes, do we need luatask and rings?
- metalua is a very cool project, but does it need to be part of the base?
- do people use luadate? (there's already a pl.Date class in Penlight)
On the other hand, on the Windows side I'd suggest these packages
- winapi (ok, I'm biased ;))
- luacom (not yet available as binary)
And luasql - seems there's a MySQL backend - what about sqlite3 as
well? That's a much more learner-friendly option.
steve d.
On Wed, Mar 20, 2013 at 3:27 AM, steve donovan <steve.j...@gmail.com> wrote:As for the 'optimally sized core' (not necessary 'minimal'): I'mlooking at the package list for the Batteries. There are packages
which overlap in functionality (always bearing in mind that any
removed packages will be 'one click away' from being installed)I agree with this sentiment completely. I want a 90-95 percent coverage of what most people will use from day to day. Having to install new packages every time I install LfW would get very tiring and I think the reason for the success of LfW is that it did include enough modules to allow users to write real applications using Lua.- yes, IUP is cute, but wxLua is more commonly used and less eccentric
Agreed. Remove from the base. (P.S. I see that wxFormBuilder [1] (WYSIWYG GUI editor) is getting wxLua support in a branch)- much as refugees from other languages like them, do we need
'standard' regexp packages when we have lpeg? E.g. lrexlibNo. Remove from the base.- luaex is an interesting package, which was originally meant as an
'executable proposal'. It replicates stuff which is available through
luafilesystem and other packages.Agreed. Remove from the base. But I am not sure how any Lua user would be able to set an environment variable.- OIL is marginal, don't think casual scripters would need CORBA support
Agreed. Remove from the base.- there are a number of packages which work with compressed archives
- do we need them all?Is there overlap in archive file types? I use .zip and .gz and I think they are in different modules. So I think that if there is no overlap I would keep them all.- if we have luaexpat, do we need luaxml?
I tend to agree, but I have to say that LuaExpat is harder for me to use and I actually switched to using Penlights XML module where you hide it all. I know Penlight uses LuaExpat, so to me LuaExpat is the clear winner.- if we have Lanes, do we need luatask and rings?
This is less clear for me. I have tried Lanes and really would prefer to include ZeroMQ. But I thought rings was native Lua implimentation of "threading" and so I think there is a reason to have Lanes and rings/luatask.- metalua is a very cool project, but does it need to be part of the base?
Agreed. Remove from the base.- do people use luadate? (there's already a pl.Date class in Penlight)Agreed. Remove from the base.On the other hand, on the Windows side I'd suggest these packages
- winapi (ok, I'm biased ;))Sure, but that module is not as exciting as find the components in a module that is cross-platform, but I guess we could say that luaposix is the unix equivialnt of winapi for Windows. So I guess I talked myself into it :) Put it in there.- luacom (not yet available as binary)
I could see this be put in there is there are tests. I have tried to use this twice and was not successful at all.And luasql - seems there's a MySQL backend - what about sqlite3 as
well? That's a much more learner-friendly option.Here is my biggest sticky point. I believe that database support in the main Batteries is critical and having a module like LuaSQL makes your application more maintainable. What I mean by this is I have many Lua applications written using LuaSQL and I was able to reuse most of the DB stuff and I am using SQLite3, MySQL and Postgress with minimal code changes. That is why I feel like it should be included. Now that being said, it doesn't seem to be very supported these days and at least on the SQLite3 side I had a bug reported with a pull request to fix the binding to allow PRAGMA use and I don't know if it will be released. So I took some time to look at the Lua and database world and found LuaDBI. I actually really like it and it has support, at least for, MySQL, SQLite3, and Postgress. It is in LuaRocks and debian packages it. I am proposing possibly switching to that database wrapper. Thoughts?
On Mar 20, 2013, at 8:49 AM, Ryan Pusztai <rpus...@gmail.com> wrote:Snip: agreed with everything.Is there overlap in archive file types? I use .zip and .gz and I think they are in different modules. So I think that if there is no overlap I would keep them all.- if we have luaexpat, do we need luaxml?I wrote a really functional XML parser in Lpeg. It didn't do do type verification, but did give comprehensible error messages, etc. There is another one out there that supports UTF8.I tend to agree, but I have to say that LuaExpat is harder for me to use and I actually switched to using Penlights XML module where you hide it all. I know Penlight uses LuaExpat, so to me LuaExpat is the clear winner.I love the idea that Penlight + LPEG = most of the tools you need, except for external integration. I'd vote to look at Penlight development as a way to fill in the missing pieces (replace its CSV parser with an LPEG variant that can take callbacks, etc).That said, it doesn't get any more standard than expat. It's just I would lean towards a story that says, "look what you're doing for less than a 2meg download, and look how we make it super easy to bring more in!"Expat is clean, but I guess I feel like I could build real software with Penlight and LPEG and I would still retain the feeling that I understand the entire language and everything I downloaded in my brain.- if we have Lanes, do we need luatask and rings?This is less clear for me. I have tried Lanes and really would prefer to include ZeroMQ. But I thought rings was native Lua implimentation of "threading" and so I think there is a reason to have Lanes and rings/luatask.Here is where I take a left turn, as well...This is an advanced topic with some very cool upsides. ZeroMQ has that awesome "Lua Feel." Also, it's one that benefits from someone doing the hard labor of making it work on Windows.I feel like a hero in 10 seconds, walking through their awesome tutorials.The question that I have is: can this be wired together with other parts (already included or more Lua code) to emulate something that approaches Node.js, even just a little? I don't think we should include a huge event library, but it would be awesome to be able to "point the way."Generally, I'm always looking for ways to get Lua and ZMQ to be together. The are from the exact same school of thought.I can see the merit in including this, if it can be aligned with some hyper-useful tutorials.On the other hand, on the Windows side I'd suggest these packages
- winapi (ok, I'm biased ;))Sure, but that module is not as exciting as find the components in a module that is cross-platform, but I guess we could say that luaposix is the unix equivialnt of winapi for Windows. So I guess I talked myself into it :) Put it in there.- luacom (not yet available as binary)I could see this be put in there is there are tests. I have tried to use this twice and was not successful at all.And luasql - seems there's a MySQL backend - what about sqlite3 as
well? That's a much more learner-friendly option.Here is my biggest sticky point. I believe that database support in the main Batteries is critical and having a module like LuaSQL makes your application more maintainable. What I mean by this is I have many Lua applications written using LuaSQL and I was able to reuse most of the DB stuff and I am using SQLite3, MySQL and Postgress with minimal code changes. That is why I feel like it should be included. Now that being said, it doesn't seem to be very supported these days and at least on the SQLite3 side I had a bug reported with a pull request to fix the binding to allow PRAGMA use and I don't know if it will be released. So I took some time to look at the Lua and database world and found LuaDBI. I actually really like it and it has support, at least for, MySQL, SQLite3, and Postgress. It is in LuaRocks and debian packages it. I am proposing possibly switching to that database wrapper. Thoughts?Also I am not a fan of a different module interface for each DB. I know that it can make more of each database specific functionality usable, but as the base of what should come with Batteries/LfW or LfL I think it should be an opt-in thing to go specific.
Exactly!
> Mine would go something like, " Provide a complete system with as much
> Lua as possible, aiming for The Lua Way, and not for 100% feature
> coverage with every module."
> For example, JSON, XML and CSV can all be beautifully parsed by LPeg.There is a problem of demarcation here; I've always wanted Penlight to
> My vote would be to use it for these purposes and include the Lua
> library (or extend Penlight) to provide that configured parser.
have minimal dependencies (only essential to have lfs); the emphasis
is on 'pure Lua'. Also, it's a general purpose library so it doesn't
try to cover different 'universes' - a fine example of that would be
database support. I'd hesitate to support JSON because heaven knows
there's enough Lua modules to do that, and for some reason everybody
and their dog writes another one. XML is something of an exception -
I rationalized including XML support because luaexpat just does
parsing, and there was a clear need for a prettyprinter, etc that
would work with the LOM representation. Although strictly speaking
that was the whole point of my LuaexpatUtils module...
Another favourite area of replication is parsing command-line
arguments. Penlight continues in this tradition by offering two
distinct ways, a simple thirty-line one and Lapp, which is
specification-driven.
I totally agree that LPeg is a fantastic implementation technology. I
dd a CSV parser module in C and Josh Jensen showed a short lpeg script
which was slightly faster ;) This was humbling and highly
educational.
> I like the idea of a set of OS-specific libraries for each targetedEspecially for things which have no clear cross-platform equivalent, e.g. COM.
> platform, only to show special capabilities with those
> integrations.... LuaCOM, etc.
Ryan raises an interesting point about luaex; although it replicates
other functionality, it's the only cross-platform package that allows
you to set an environment variable. Both winapi and luaposix provide
this, but they're otherwise rather different. So perhaps luaex should
be in just for that one job? It's a pity IHMO that luaex did not
become 'canonical' because it really pushed the cross-platform thing.
It's failing was that it did not try to complement things like
LuaFileSystem, and basically reimplemented most of lfs. (Also, it put
stuff into os. Lua people get irritated with that)
Well, we are clever people, and are free to write our own modules, or
adapt code from existing modules. But looking after a distro is
enough trouble without having to work upstream as well!
> LFS, Xavante (and dependancies), LuaSocket, are all musts (imho)Xavante is important technology, but I don't know if it's something
everyone needs, especially if it is directly available from the repo.
Ryan does a lot of work with Orbit so he can speak about this need.
> My one vote for indulgence goes to ZeroMQ, because it provides anIt did seem very powerful and interesting, well worth an evaluation.
> advanced playground, fits Lua's philosophy and it's cool. :)
(As for 'node.js-like functionality' there is luvit, but it isn't
suitable for inclusion, since it's basically a node.js implementation
using a custom LuaJIT - luvit programs in fact look just like node.js
programs. luvit doesn't even implement coroutine.*)
(It's a pity that this group is called 'luaforwindows' because we're
really discussing issues that apply to 'Lua for X'.)
--
You received this message because you are subscribed to the Google Groups "luaforwindows" group.
To unsubscribe from this group and stop receiving emails from it, send an email to luaforwindow...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Hi Everyone,I thought I would move the discussion of what packages should be removed or included in the new LfW base install. I think if we can look at the current package list [1] and let everyone know the list of modules you use most that might give us an idea for what should be included.
I think it's best to nominate someone to pull the trigger on an
approach, cut the discussion off and call it done. I don't see a
passionate distance between the ideas floating around here and that
I'd be happy with a defined list.
I've been skipping past the point of calling it "Batteries". Batteries implies:
*Everything that you would expect from a complete Lua distribution, in
one downloadable packgage that just works.*
So, as I see it, it's between emphasizing immediate utility and/or
parity with their expectations VS emphasizing the out-of-box teaching
elements.
If I've fairly stated the positions, I'd like to nominate Peter and
Steve to make the call, or to pick the group that will make the call,
so that we can put this bed.
Cool?
Ryan,
Here, my ignorance has gotten in the way. I didn't mean to make a
value statement about who I liked more or less. :) I'm utterly lost on
what projects are involved and who has a history with what. If you're
one of the principles of LfW, please forgive the slight. It wasn't
intended.
To all:
So, if I can, I will take back my nomination. Instead:
I'd favor the person with the most context on the "Batteries" package
making the call on the package list.
The reason is that we will all have fun politely discussing this for a
long time, but the bottom line is that there isn't a right answer and
someone here should say, "This is the first list. It may change."
The benefit is in knowing what to focus on, in terms of documentation.
The core distribution should have some kind of overall manual and
eventually, tutorials that cover using them as little sub-units.
Not sure if Peter cares? He is just offering a system to build and deploy new modules. Peter D. do you care enough about this?
On Thu, Mar 21, 2013 at 6:55 PM, Ryan Pusztai <rpus...@gmail.com> wrote:
..Not sure if Peter cares? He is just offering a system to build and deploy new modules. Peter D. do you care enough about this?Sure I do. LuaDist is almost 7 years old now and started as a project to bring Lua to all the platforms I work on and I am still at it.
However I feel Steve D. should be the person who decides on the package selection and policies. Not only is he better qualified than me but also the author of penlight which should be the core module we use as an example to other developers on how to do things. I would also like to nominate you as the second person for this purpose.
However, I feel we can have multiple persons responsible for various parts of the projects. Eg. Steve D. would be responsible for module policies (what tools to use, how to structure them etc). Ryan for module evaluation and selection (what is in, what is out). I am willing to be the person responsible for the technical parts such as CI, tools and of course maintainer of the more complex builds that sometimes need to be done.
On Thu, Mar 21, 2013 at 4:37 PM, Peter Drahoš <dra...@gmail.com> wrote:On Thu, Mar 21, 2013 at 6:55 PM, Ryan Pusztai <rpus...@gmail.com> wrote:
..Not sure if Peter cares? He is just offering a system to build and deploy new modules. Peter D. do you care enough about this?Sure I do. LuaDist is almost 7 years old now and started as a project to bring Lua to all the platforms I work on and I am still at it.Totally agree. I meant no offense, please forgive me. The work you have done it amazing. I just wondered if you wanted to be the person who selected the modules. From your current project (LuaDist), it accepts all modules :)
However I feel Steve D. should be the person who decides on the package selection and policies. Not only is he better qualified than me but also the author of penlight which should be the core module we use as an example to other developers on how to do things. I would also like to nominate you as the second person for this purpose.Agreed Steve D. is a huge player in the Lua universe in my book.However, I feel we can have multiple persons responsible for various parts of the projects. Eg. Steve D. would be responsible for module policies (what tools to use, how to structure them etc). Ryan for module evaluation and selection (what is in, what is out). I am willing to be the person responsible for the technical parts such as CI, tools and of course maintainer of the more complex builds that sometimes need to be done.
This is a great way to break down the roles. I think there is a bunch of work and it is best to separate it into manageable and meaningful part.
>Whether and where it's included would depend on the selection criteria used, but here's a couple data points... I'm not sure if LfW is using the latest source release, but it is
> maintained,regularly used in production/stable, and the only COM module available for Lua. A lot of Windows and Office is accessible via COM.
Here is my list if I had to pick today.
...MD5...