aboutsummaryrefslogtreecommitdiff
path: root/gsoc/ideas2019.html
diff options
context:
space:
mode:
Diffstat (limited to 'gsoc/ideas2019.html')
-rw-r--r--gsoc/ideas2019.html250
1 files changed, 250 insertions, 0 deletions
diff --git a/gsoc/ideas2019.html b/gsoc/ideas2019.html
new file mode 100644
index 00000000..31aa6c98
--- /dev/null
+++ b/gsoc/ideas2019.html
@@ -0,0 +1,250 @@
1<!doctype html>
2<html>
3<head>
4<title>Ideas List - Google Summer of Code 2019</title>
5<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400italic,400bold,400,700" type="text/css"/>
6<link rel="stylesheet" href="../style.css" type="text/css"/>
7<style>
8table {
9 width: 100%;
10}
11td {
12 padding: 5px;
13 background-color: white;
14 border: 1px solid #c1cce4;
15}
16h3 {
17 border-bottom: solid 2px black;
18}
19h4 {
20 font-style: italic;
21 border-bottom: solid 1px #c0c0c0;
22}
23</style>
24</head>
25<body>
26 <div class="content">
27 <div class="header"><div class="header_inner"><div class="user_panel"><a href="https://github.com/keplerproject/luarocks/wiki/Download">Install</a> &middot; <a href="https://github.com/keplerproject/luarocks/wiki/Documentation">Docs</a> &middot; <a href="https://luarocks.org/login">Log In</a> &middot; <a href="https://luarocks.org/register">Register</a></div><a href="https://luarocks.org/"><img alt="LuaRocks" class="text_logo" src="https://luarocks.org/static/header_luarocks_name.svg"/></a><form method="GET" action="https://luarocks.org/search" class="header_search"><input type="text" placeholder="Search modules or uploaders..." name="q"/></form></div></div>
28 <div class="index_page">
29 <div class="main_column">
30
31<h2>Ideas List - Google Summer of Code 2019</h2>
32
33
34<div class="project">
35<h3>Expression-level coverage analysis for LuaCov</h3>
36
37<h4>Brief explanation</h4>
38
39<p>
40LuaCov only offers line-level coverage analysis, meaning that it can tell if a line executed or not, but not if every possible branch within that line executed. That means, for example, that if a statement like <tt>if x and y > 20 then return 10 end</tt> is written in a single line, we don't have coverage information if it has been tested both with the condition being true and being false. This is due to a limitation in the Lua <tt>debug</tt> library, which only gives traces with at most line granularity. The idea of this project is to patch the Lua VM adding expression-level tracing, and then adjusting LuaCov to make it use it.
41</p>
42
43<h4>Knowledge prerequisites</h4>
44<ul>
45<li>C</li>
46<li>Lua</li>
47</ul>
48
49<h4>Mentor</h4>
50<p>
51<a href="http://hisham.hm/">Hisham Muhammad</a> - <a href="mailto:h@hisham.hm">h@hisham.hm</a>
52</p>
53</div>
54
55<!-- ------------------------------------------- -->
56<hr/>
57
58<div class="project">
59<h3>Lua graphing library</h3>
60
61<h4>Brief explanation</h4>
62
63<p>
64To create a graphical library possibly using IUP extensible by Lua to allow easy creation of software like a schematic editor/flowchart creator/mind maps/block diagrams in Lua. The library needs to create basic mechanisms and graphic checks to create custom blocks and interconnections and provide an API to use these to create complex interactions like hierarchical schematic editors, etc.
65</p>
66
67<h4>Knowledge prerequisites</h4>
68<ul>
69<li>Lua</li>
70</ul>
71
72<h4>Mentor</h4>
73<p>
74Milind Gupta - <a href="mailto:milind.gupta@gmail.com">milind.gupta@gmail.com</a>
75</p>
76</div>
77
78<!-- ------------------------------------------- -->
79<hr/>
80
81<div class="project">
82<h3>Better binary support for LuaRocks on Windows</h3>
83
84<h4>Brief explanation</h4>
85
86<p>
87Goal: have a number of binary basics available (eg. lfs, luasocket, OpenSSL based ones)
88</p>
89<p>
90Things to do:
91</p>
92
93<ul>
94<li>
95Establish a proper naming scheme to identify Windows runtime dependencies, see #786
96</li>
97<li>
98Make LR aware of the runtimes (storing in config), current MSVCRT entry
99</li>
100<li>
101Implement packing binary rocks with new binary tags
102Set up some CI which builds some basic binary rocks as a minimal set for multiple compiler targets (eg. lfs, LuaSocket)
103</li>
104<li>
105Set up some CI which builds some basic binary rocks with external dependencies as a minimal set for multiple compiler targets (eg. OpenSSL based ones)
106</li>
107<li>
108Optional: use pe-parser at LR runtime to validate that created libs adhere to the runtime required
109</li>
110<li>
111Optional: make LR installable without toolchain (just using binary rocks)
112</li>
113<li>
114Optional: integrate toolchain into LR installation
115</li>
116</ul>
117
118<p>
119See <a href="https://github.com/luarocks/luarocks/issues/788">#788</a>.
120</p>
121
122<h4>Knowledge prerequisites</h4>
123<ul>
124<li>Lua</li>
125<li>general knowledge of development on Windows platforms</li>
126</ul>
127
128
129<h4>Mentor</h4>
130<p>
131<a href="http://thijsschreijer.nl/">Thijs Schreijer</a> - <a href="mailto:thijs@thijsschreijer.nl">thijs@thijsschreijer.nl</a>
132</p>
133</div>
134
135<!-- ------------------------------------------- -->
136<hr/>
137
138<div class="project">
139<h3>
140New command line argument handling and auto-completion for luarocks
141</h3>
142
143<p>
144Update the command-line argument handling of
145LuaRocks and add support for Tab auto-completion
146support for popular shells such as bash, fish, zsh.
147</p>
148<p>
149May involve updates to the argparse library.
150</p>
151
152<p>
153See <a href="https://github.com/luarocks/luarocks/issues/879">#879</a>.
154</p>
155
156<h4>Knowledge prerequisites</h4>
157<ul>
158<li>Lua</li>
159<li>some shell scripting</li>
160</ul>
161
162<h4>Mentor</h4>
163<p>
164<a href="http://daurnimator.com/">Daurnimator</a> - <a href="mailto:quae@daurnimator.com">quae@daurnimator.com</a>
165</p>
166</div>
167
168<!-- ------------------------------------------- -->
169<hr/>
170
171<div class="project">
172<h3>
173Prosody plugin installer
174</h3>
175
176<p>
177This project would produce an easy way to install and manage plugins for the Prosody server.
178</p>
179
180<p>
181Prosody has <a href="https://modules.prosody.im">hundreds of community modules</a> that provide additional features and extensions to the core server. Currently installing these is a manual process that currently involves a number of manual steps.
182</p>
183
184<p>
185The goal of this project would be to produce simple commands to install, update and remove community modules. Rather than inventing a new package manager, the project would ideally build on top of the LuaRocks project.
186</p>
187
188
189<p>Deliverables / Expected Results:</p>
190
191<ul>
192<li>
193Commands to install, update, remove and list installed plugins.
194</li>
195<li>
196Scripts to build and manage a repository of plugins.
197</li>
198</ul>
199
200<p>
201Milestones:
202</p>
203
204<ul>
205<li>Implement command to install a plugin from a repository
206</li>
207<li>
208Implement commands to remove and update installed plugins
209</li>
210<li>
211Develop scripts to build a plugin repository.
212</li>
213</ul>
214
215<p>More info:</p>
216
217<ul>
218<li> Website: <a href="https://prosody.im/">https://prosody.im/</a>
219</li>
220<li> Source Code: <a href="https://hg.prosody.im/">https://hg.prosody.im/</a>
221</li>
222<li> Description: Prosody is a lightweight XMPP server that aims to be easy to set up and configure, and efficient with system resources.
223</li>
224<li> Project Contact Person: Matthew Wild @mwild1 <mwild1@gmail.com>
225</li>
226<li> List of Teaser Tasks: <a href="https://issues.prosody.im/?q=state%3Dopen+difficulty%3Deasy">https://issues.prosody.im/?q=state%3Dopen+difficulty%3Deasy</a>
227</li>
228<li> Contact chat: <a href="https://chat.prosody.im/">https://chat.prosody.im/</a>
229</li>
230</ul>
231
232<h4>Knowledge prerequisites</h4>
233<ul>
234<li>Lua</li>
235</ul>
236
237<h4>Mentors</h4>
238<p>
239<a href="http://github.com/mwild1/">Matthew Wild</a> - <a href="mailto:mwild1@gmail.com">mwild1@gmail.com</a>
240<br/>
241<a href="http://github.com/zash/">Kim Alvefur</a>
242</p>
243</div>
244
245
246 </div>
247 </div>
248 </div>
249</body>
250</html>