<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to PodballScripting</title><link>https://sourceforge.net/p/podball/wiki/PodballScripting/</link><description>Recent changes to PodballScripting</description><atom:link href="https://sourceforge.net/p/podball/wiki/PodballScripting/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 15 Mar 2018 13:44:44 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/podball/wiki/PodballScripting/feed" rel="self" type="application/rss+xml"/><item><title>PodballScripting modified by Lars Ruoff</title><link>https://sourceforge.net/p/podball/wiki/PodballScripting/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -13,6 +13,8 @@
   * By default, a script is plain text. Since this is a programming contest, we need to find a way of hiding the code between different developers. Otherwise cheating would be too easy.

 ## Candidates
+
+See also [Comparison of embeddable scripting languages](https://github.com/dbohdan/embedded-scripting-languages).

 List of scripting language candidates. 

@@ -58,6 +60,8 @@

   * Distribution: OK. Lua scripts can be compiled to byte code. 

+*Update 2018-03-15: As of version 2.2, Lua has been fully imtegrated as a scripting language!*
+
 ### Python

   * [​http://docs.python.org/extending/embedding.html](http://docs.python.org/extending/embedding.html)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lars Ruoff</dc:creator><pubDate>Thu, 15 Mar 2018 13:44:44 -0000</pubDate><guid>https://sourceforge.net8a0426890598087ac0812bf159cb3b10045ae2f6</guid></item><item><title>PodballScripting modified by Lars Ruoff</title><link>https://sourceforge.net/p/podball/wiki/PodballScripting/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="scripting"&gt;Scripting&lt;/h1&gt;
&lt;p&gt;This page is about using scripting technologies to provide the Pod control functions instead of native DLLs. &lt;/p&gt;
&lt;p&gt;Advantages of scripting: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scripts are platform independent by nature. &lt;/li&gt;
&lt;li&gt;Scripts can be run in a sandbox, thus malicious or bugged scripts can do less harm to the host system. &lt;/li&gt;
&lt;li&gt;Easier and faster development. Thus more developers to develop in scripting languages? &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Disadvantages of scripting: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;By default, a script is plain text. Since this is a programming contest, we need to find a way of hiding the code between different developers. Otherwise cheating would be too easy. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="candidates"&gt;Candidates&lt;/h2&gt;
&lt;p&gt;List of scripting language candidates. &lt;/p&gt;
&lt;p&gt;Common requirements: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Must be embeddable in C/C++. &lt;/li&gt;
&lt;li&gt;Several instances of the same script must be able to run at once. Requires a mechanism to switch contexts. &lt;/li&gt;
&lt;li&gt;It should be possible to run the script in a sandbox environment, with only minimum library support. &lt;/li&gt;
&lt;li&gt;There must be a mechanism to compile or obfuscate scripts so they're don't need to be distributed in plain text. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="javascript"&gt;Javascript&lt;/h3&gt;
&lt;p&gt;To be embedded via the Google V8 Javascript engine: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="" href="http://code.google.com/p/v8/" rel="nofollow"&gt;​http://code.google.com/p/v8/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://code.google.com/p/cproxyv8/" rel="nofollow"&gt;​http://code.google.com/p/cproxyv8/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See also: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="" href="http://www.commonjs.org/impl/" rel="nofollow"&gt;​http://www.commonjs.org/impl/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Meets requirements? &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Embeddable: OK. &lt;/li&gt;
&lt;li&gt;Context management: OK. &lt;/li&gt;
&lt;li&gt;Sandbox? &lt;/li&gt;
&lt;li&gt;Distribution? &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lua"&gt;Lua&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="" href="http://www.lua.org/manual/5.1/manual.html#3" rel="nofollow"&gt;​http://www.lua.org/manual/5.1/manual.html#3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://www.ibm.com/developerworks/linux/library/l-embed-lua/" rel="nofollow"&gt;​http://www.ibm.com/developerworks/linux/library/l-embed-lua/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://heavycoder.com/tutorials/lua_embed.php" rel="nofollow"&gt;​http://heavycoder.com/tutorials/lua_embed.php&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://code.google.com/p/lua-vec/" rel="nofollow"&gt;​http://code.google.com/p/lua-vec/&lt;/a&gt; -- A Lua mod for fast vectors &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Meets requirements? &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Embeddable: OK. &lt;/li&gt;
&lt;li&gt;Context management: OK. Different independent Lua states can be instantiated with lua_State *L = lua_open(); &lt;/li&gt;
&lt;li&gt;Sandbox: OK. Open all or only part of the standard libs. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(see also &lt;a class="" href="http://stackoverflow.com/questions/966162/best-way-to-omit-lua-standard-libraries" rel="nofollow"&gt;​http://stackoverflow.com/questions/966162/best-way-to-omit-lua-standard-libraries&lt;/a&gt;) &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Distribution: OK. Lua scripts can be compiled to byte code. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="python"&gt;Python&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="" href="http://docs.python.org/extending/embedding.html" rel="nofollow"&gt;​http://docs.python.org/extending/embedding.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://docs.python.org/c-api/" rel="nofollow"&gt;​http://docs.python.org/c-api/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://davidf.sjsoft.com/mirrors/mcmillan-inc/embed.html" rel="nofollow"&gt;​http://davidf.sjsoft.com/mirrors/mcmillan-inc/embed.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://www.ragestorm.net/tutorial?id=21" rel="nofollow"&gt;​http://www.ragestorm.net/tutorial?id=21&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://www.codesampler.com/python.htm" rel="nofollow"&gt;​http://www.codesampler.com/python.htm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://www.linuxjournal.com/article/8497" rel="nofollow"&gt;​http://www.linuxjournal.com/article/8497&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://www.codeproject.com/KB/cpp/embedpython_1.aspx" rel="nofollow"&gt;​http://www.codeproject.com/KB/cpp/embedpython_1.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Meets requirements? &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Embeddable: OK. &lt;/li&gt;
&lt;li&gt;Context management? To check. Different "Threads" can be craeted for Python interpreter. &lt;/li&gt;
&lt;li&gt;Sandbox? &lt;/li&gt;
&lt;li&gt;Distribution? Python scripts can be compiled. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class="" href="../PodballScripting?action=diff&amp;amp;version=6"&gt;Last modified&lt;/a&gt; &lt;a class="" href="/podball/trac/timeline?from=2010-07-23T15%3A24%3A04%2B02%3A00&amp;amp;precision=second"&gt;4 years ago&lt;/a&gt; Last modified on 07/23/10 15:24:04&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lars Ruoff</dc:creator><pubDate>Wed, 21 May 2014 14:05:43 -0000</pubDate><guid>https://sourceforge.neta740f5e7b6018de62545e6a4f8fd2b8b00202d28</guid></item></channel></rss>