Main
Language
Runtime
Tools
FAQs
Changes
Download
Licence
cheesy

Licence Issues

The Idle interpreter and compiler as well as the Idle runtime libraries are based on the work of dozens of people. Whenever feasible, I have tried to code stuff on my own (so if something doesn't work I (a) know whom to blame and (b) can go and punch that guy on the nose). However, there is a lot of mature code out there and it simply doesn't make sense to re-invent all the wheels, just for the sake of re-invention. The following six components stand out:

1. First and foremost, there is Lua: an amazingly simple and yet powerful language with an amazingly lean and fast implementation. I could wax lyrical over Lua's orthogonality or its elegant virtual machine... but see for yourself. Lua is often billed as "only" an extension language: the fact is that it can be much, much more than that. Lua is under the MIT licence.

2. The second big piece of software I borrowed is PCRE, Phil Hazel's implementation of Perl compatible regular expressions. I have used Phil's library in other libraries and products through the years and it's always been a stable, fast and above all reliable performer. PCRE is under the BSD licence.

3. LuaSocket is what I chose for the basis of Idle's networking layer. I have renamed and refactored some stuff, but it's recognisably the same library. LuaSocket is under the MIT licence.

4. The just-in-time compiler component is a slightly modified version of Mike Pall's amazing LuaJIT (the modifications deal mostly with things I changed in the Lua VM). LuaJIT is under the MIT licence.

5. The debugger used by Idle is Rici Lake's amazing ldb and ldb-break. I have included his code more or less verbatim: the fact that it works shows that Idle is doing a good job at being Lua-compatible. Rici's ldb code is in the public domain.

6. The archive support (basically this maps .zip and .7z files into a virtual file system) comes mainly through a fine piece of software called PhysicsFS. This library is covered by a zlib-style licence.

And then there are the many other libraries, code snippets and influences that went into Idle. In most cases I have not simply copied the source code verbatim but changed, adapted and improved it (or so I hope). In one way or another, all the following items have had their influence on me and found their way into Idle. A by no means complete list would include:

I have tried hard to make sure that any code I reused is covered by a permissive licence, so as not to impede any possible uses (for the actual licences, see below. If I forgot to re-print a licence, please get in touch and I will swiftly rectify the situation.).

In particular this means that the core Idle components do not (and will never) use code that is under the GPL, whatever the version number. However, some less important parts which are not part of the standard Idle distribution may build on source code that is under the LGPL, a less restrictive version of the GPL (for instance, the Tiny C compiler, my TCC glue code and the supporting module). Please make sure, if you plan to use any of these modules, that their specific licence conditions are compatible with what you want to achieve.

(I could say a word or two about this breathtakingly straightforward business of so-called Open Source software licences (and licencing); however, my impression is that those people who would listen need no preaching and those who need preaching wouldn't listen. So instead of starting yet another ideological (and, as these things always go, ultimately fruitless) debate, I shall shut up and return to the #pragmas of my compilers and linkers.)

Lua
top of page

Lua License
-----------

Lua is licensed under the terms of the MIT license reproduced below.
This means that Lua is free software and can be used for both academic
and commercial purposes at absolutely no cost.

For details and rationale, see http://www.lua.org/license.html .

===============================================================================

Copyright (C) 1994-2008 Lua.org, PUC-Rio.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

===============================================================================

(end of COPYRIGHT)

PCRE
top of page

PCRE LICENCE
------------

PCRE is a library of functions to support regular expressions whose syntax
and semantics are as close as possible to those of the Perl 5 language.

Release 7 of PCRE is distributed under the terms of the "BSD" licence, as
specified below. The documentation for PCRE, supplied in the "doc"
directory, is distributed under the same terms as the software itself.

The basic library functions are written in C and are freestanding. Also
included in the distribution is a set of C++ wrapper functions.


THE BASIC LIBRARY FUNCTIONS
---------------------------

Written by:       Philip Hazel
Email local part: ph10
Email domain:     cam.ac.uk

University of Cambridge Computing Service,
Cambridge, England.

Copyright (c) 1997-2008 University of Cambridge
All rights reserved.

THE "BSD" LICENCE
-----------------

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.

    * Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.

    * Neither the name of the University of Cambridge nor the name of Google
      Inc. nor the names of their contributors may be used to endorse or
      promote products derived from this software without specific prior
      written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

End

LuaJIT, LuaSocket, MD5, LuaFileSystem, LuaProfiler, LuaTask, lpeg, LuaSQLite, bitlib (all under MIT-style licences)
top of page

** LuaJIT -- a Just-In-Time Compiler for Lua. http://luajit.org/
** Copyright (C) 2005-2008 Mike Pall. All rights reserved.

LuaSocket 2.0.2 license
Copyright  2004-2007 Diego Nehab

MD5, LuaFileSystem, LuaProfiler
Copyright (C) 2003-2007 PUC-Rio. All rights reserved.

LuaTask
Copyright (C) 2003-2006 Daniel Quintela. All rights reserved.

lpeg
Copyright (C) 2008 Lua.org, PUC-Rio.

LuaSQLite
Copyright (C) 2002-2007 Tiago Dionizio, Doug Currie. All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

PhysicsFS
top of page

   Copyright (c) 2003 Ryan C. Gordon and others.
   This software is provided 'as-is', without any express or implied warranty.
   In no event will the authors be held liable for any damages arising from
   the use of this software.

   Permission is granted to anyone to use this software for any purpose,
   including commercial applications, and to alter it and redistribute it
   freely, subject to the following restrictions:

   1. The origin of this software must not be misrepresented; you must not
   claim that you wrote the original software. If you use this software in a
   product, an acknowledgment in the product documentation would be
   appreciated but is not required.

   2. Altered source versions must be plainly marked as such, and must not be
   misrepresented as being the original software.

   3. This notice may not be removed or altered from any source distribution.

       Ryan C. Gordon <icculus@clutteredmind.org>

Mersenne Twister
top of page

/*
   A C-program for MT19937, with initialization improved 2002/2/10.
   Coded by Takuji Nishimura and Makoto Matsumoto.
   This is a faster version by taking Shawn Cokus's optimization,
   Matthew Bellew's simplification, Isaku Wada's real version.

   Before using, initialize the state by using init_genrand(seed)
   or init_by_array(init_key, key_length).

   Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   are met:

     1. Redistributions of source code must retain the above copyright
        notice, this list of conditions and the following disclaimer.

     2. Redistributions in binary form must reproduce the above copyright
        notice, this list of conditions and the following disclaimer in the
        documentation and/or other materials provided with the distribution.

     3. The names of its contributors may not be used to endorse or promote
        products derived from this software without specific prior written
        permission.

   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


   Any feedback is very welcome.
   http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html
   email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space)
*/

Licence Agreement Idle Scripting Language
top of page

Please read carefully through the following licence agreement (an MIT-style licence). Do not install or use this version of the Idle scripting language software and its documentation (the 'software'), if you do not agree with the terms of this agreement.

Idle Scripting Language, 1.0
Copyright (C) 2007-10 Thomas Lauer; thomaslauer.com

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicence, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Feedback, sensible suggestions and comments are welcome; see the main documentation for details.



$$ built from Licences.txt d106963c4f77 Mon Sep 27 13:27:10 2010 +0000 thomasl $$