Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Ruby Specification

Reply
Thread Tools

Ruby Specification

 
 
Jeremy Henty
Guest
Posts: n/a
 
      07-19-2004
(Disclaimer: the isn't really (directly) about Ruby, so you may think
it off-topic. But it is (indirectly) about the consequences of
looking at the Ruby source, so I hope it is on-topic.)

In article <019301c46db9$6a9f7930$6442a8c0@musicbox>, Bill Kelly wrote:

> I thought open source wasn't doing a good job of being open source
> if you had to be wary of reading it for legal reasons?


"Open source" only means "you have the right to do certain things with
this software". It does *not* mean "you can do whatever you like with
it and not worry about the consequences". *That* is only true of
software released into the public domain.

> An example in my field of interest is id Software's generous release
> of their older game engines, such as DOOM, Quake, and Quake 2 under
> the GPL. I was a game developer when the Quake source was released,
> and it never would have occurred to me to be afraid to look at it.


Pardon my bluntness, but that was foolish of you. The GPL requires
you to release all derived works under the GPL too. If you looked at
id Software's source and used it in a closed source product of your
own then id Software would have grounds for suing you for damages.

I am not accusing you of trying to rob id Software (nor am I accusing
id Software of being litigious <disrespectful_term>s). I just want to
point out that good intentions may not be enough to keep you out of
court. Companies have sued ex-employees simply for working in the
same industry, claiming "inevitable disclosure" ie. "this person
learned their skills with us, so if they use those skills elsewhere
they are violating our IP rights". I don't condone their behaviour (I
actually find it loathsome), but the practical upshot is that if you
don't like the idea of being sued by people with much more lawyers and
money than you then you should think very hard about the licenses of
any software you look at.

> Anyway, again, this is not intended as a criticism - I'm just trying
> to understand what could possibly be wrong with looking at Ruby's
> source code.


Nothing, as long as you conform to its license. But if the OP wants
to release code under the BSD license and is not sure whether the Ruby
license is BSD-compatible, then the OP's decision not to look at the
Ruby source is IMHO extremely sensible.

Regards,

Jeremy Henty
 
Reply With Quote
 
 
 
 
Kristof Bastiaensen
Guest
Posts: n/a
 
      07-19-2004
On Mon, 19 Jul 2004 18:51:46 +0000, Jeremy Henty wrote:

Hi,

>
> Pardon my bluntness, but that was foolish of you. The GPL requires
> you to release all derived works under the GPL too. If you looked at
> id Software's source and used it in a closed source product of your
> own then id Software would have grounds for suing you for damages.
>


I am not a lawyer, but I believe this is not correct.
As far as I know, copyright only applies to the code, not to
the techniques used. So as long as you are not
copying code directly into your program, you are not in breach
of copyright. For the GPL a derived work is only derived if it
uses the same code. Techniques don't fall under copyright,
but under patent law. (Wether patents should be allowed for
software is a different discussion).
Of course you could copy the code, change the names of some
variables and functions, and then claim it's your code, but
this would obviously still fall under the copyright case.
However if you just look at the techniques used, and use
them in you code (not verbatim), then there wouldn't be any
grounds to be sued (apart from patents).

Kristof
 
Reply With Quote
 
 
 
 
gabriele renzi
Guest
Posts: n/a
 
      07-19-2004
il Tue, 20 Jul 2004 02:49:00 +0900, Mark Sparshatt
<(E-Mail Removed)> ha scritto::

>I think changing to a reference counting GC system would change the
>behaviour of the program, since it would change when an object is collected.
>
>I know that this subtlety has caused problems for people moving from
>CPython (Which uses reference counting) to Jython (which uses mark and
>sweep)


CPython does reference count, while JPython should use the jvm's GC.

This problem may appear when going from refcount to gc, cause you may
expect that an object gets gc'ed at the end of a code block (in ref
count)while it does not (gc).
OTOH, when you're expecting a general GC behaviour you don't make
assumptions about the automatic deletion of an object, so this problem
does not arise. At least, I think.

 
Reply With Quote
 
Bill Kelly
Guest
Posts: n/a
 
      07-19-2004
Hi,

From: "Jeremy Henty" <(E-Mail Removed)>
>
> (Disclaimer: the isn't really (directly) about Ruby, so you may think
> it off-topic. But it is (indirectly) about the consequences of
> looking at the Ruby source, so I hope it is on-topic.)
>
> In article <019301c46db9$6a9f7930$6442a8c0@musicbox>, Bill Kelly wrote:
>
> > I thought open source wasn't doing a good job of being open source
> > if you had to be wary of reading it for legal reasons?

>
> "Open source" only means "you have the right to do certain things with
> this software". It does *not* mean "you can do whatever you like with
> it and not worry about the consequences". *That* is only true of
> software released into the public domain.


Certainly. I thought that copyright law (IANAL) distinguished
between modifying someone else's code (derivative work) and
writing your own code from scratch. I have seen *a lot* of code
in my life so far, much of it proprietary and closed source.
You aren't supposed to be able to copyright an *idea*. That's
what Software Patents do (and I think they are an abomination,
but that's a different topic.) My point is that I don't live
in fear that I might accidentally "steal" someone else's code
just because I've looked at it. I know the difference between
"copying someone else' code modifying it" vs. "implementing my
own code from scratch based on all the knowledge I've picked up
over my career."

I guess I'm approaching this using my own GPL software as a
yardstick - would I care if someone learned from my GPL code,
and then decided to re-implement the same functionality from
scratch, just using what they'd learned? No! I'd be thrilled
that my code was useful to someone. That's why I released it!!

> > An example in my field of interest is id Software's generous release
> > of their older game engines, such as DOOM, Quake, and Quake 2 under
> > the GPL. I was a game developer when the Quake source was released,
> > and it never would have occurred to me to be afraid to look at it.

>
> Pardon my bluntness, but that was foolish of you.


No worries, I'm here to learn . . .

> The GPL requires
> you to release all derived works under the GPL too. If you looked at
> id Software's source and used it in a closed source product of your
> own then id Software would have grounds for suing you for damages.


Apologies if this is getting too off-topic... But here is an
excerpt from id Software's release of the Quake 2 code:

The code is all licensed under the terms of the GPL (gnu public license).
You should read the entire license, but the gist of it is that you can do
anything you want with the code, including sell your new version. The catch
is that if you distribute new binary versions, you are required to make the
entire source code available for free to everyone.

The primary intent of this release is for entertainment and educational
purposes, but the GPL does allow commercial exploitation if you obey the
full license.

I firmly believe id Software's intent was not to say: Here's our
code for you to learn from! DON'T LOOK AT IT!!!!!!!!!!!!!!!!!

I truly do not believe the purpose of their releasing their code
was to try to drum up lawsuits against anyone who might have wanted
to learn from it.

> I am not accusing you of trying to rob id Software (nor am I accusing
> id Software of being litigious <disrespectful_term>s). I just want to
> point out that good intentions may not be enough to keep you out of
> court. Companies have sued ex-employees simply for working in the
> same industry, claiming "inevitable disclosure" ie. "this person
> learned their skills with us, so if they use those skills elsewhere
> they are violating our IP rights". I don't condone their behaviour (I
> actually find it loathsome), but the practical upshot is that if you
> don't like the idea of being sued by people with much more lawyers and
> money than you then you should think very hard about the licenses of
> any software you look at.


OK. But perhaps we can take this on a case-by-case basis? Meaning,
We're talking about Matz here, (and in my examples, John Carmack).

I am personally willing to trust that I understand the intent of
id Software releasing their code. And that for people to be afraid
to look at it for fear of getting sued based on what they learned from
it, is COMPLETELY CONTRARY to that intent. (Again I'm distinguishing
between learning from the code, and *copying* it.)

Oh well, that's just me. I think there's something a little sad
about all this though... (Maybe our nations should cease development
of missile defense shields, and start working on lawyer containment
mechanisms... ;-P)


Regards,

Bill




 
Reply With Quote
 
Mark Sparshatt
Guest
Posts: n/a
 
      07-19-2004
gabriele renzi wrote:

>il Tue, 20 Jul 2004 02:49:00 +0900, Mark Sparshatt
><(E-Mail Removed)> ha scritto::
>
>
>
>>I think changing to a reference counting GC system would change the
>>behaviour of the program, since it would change when an object is collected.
>>
>>I know that this subtlety has caused problems for people moving from
>>CPython (Which uses reference counting) to Jython (which uses mark and
>>sweep)
>>
>>

>
>CPython does reference count, while JPython should use the jvm's GC.
>
>This problem may appear when going from refcount to gc, cause you may
>expect that an object gets gc'ed at the end of a code block (in ref
>count)while it does not (gc).
>OTOH, when you're expecting a general GC behaviour you don't make
>assumptions about the automatic deletion of an object, so this problem
>does not arise. At least, I think.
>
>
>
>
>

The problem would come if someone did release an alternate
implementation of Ruby with reference counting GC. Then if people who
were used to alternate Ruby moved to standard ruby they might expect the
same behaviour, and assume it's a bug when standard ruby behaves
differently.

--
Mark Sparshatt




 
Reply With Quote
 
James Britt
Guest
Posts: n/a
 
      07-19-2004
David Ross wrote:

> ...
> Why create a compiler to create stand alone
> executables?
>
> I find it difficult to have third part software
> installed on the computer. Also, if someone wants to
> include an application on a OS which I will not
> mention, they want a standalone that does not need a
> interpreter. This is one of the main reasons.


Not sure why you are so reluctant to mention an OS, or look at certain
source code; quite mysterious. But on Windows, for example, the
requirement for an interpreter or runtime engine is quite common. Any
Java(tm) app needs a VM installed. VB apps (pre .Net) require some
version of vbrun.dll.

Sometimes these things are already installed, sometimes not. But once
installed they are available for other applications as well.

Plus, one can bundle up the Ruby interpreter into an executable using
exerb. Makes the app larger, but still probably smaller than your
typical "stand-alone" Java(tm) program.



James





 
Reply With Quote
 
Joel VanderWerf
Guest
Posts: n/a
 
      07-19-2004
Mark Sparshatt wrote:
> The problem would come if someone did release an alternate
> implementation of Ruby with reference counting GC. Then if people who
> were used to alternate Ruby moved to standard ruby they might expect the
> same behaviour, and assume it's a bug when standard ruby behaves
> differently.


In my understanding, ruby makes no guarantees about memory management,
except that unreferenced objects will eventually get recycled. A ruby
specification should state explicitly that, aside from this guarantee,
behavior is unspecified.

Of course, if programmers don't read the spec, they can still get bitten...


 
Reply With Quote
 
gabriele renzi
Guest
Posts: n/a
 
      07-19-2004
il Tue, 20 Jul 2004 05:05:38 +0900, Mark Sparshatt
<(E-Mail Removed)> ha scritto::


>The problem would come if someone did release an alternate
>implementation of Ruby with reference counting GC. Then if people who
>were used to alternate Ruby moved to standard ruby they might expect the
>same behaviour, and assume it's a bug when standard ruby behaves
>differently.


agreed, but given that current alghoritm is known (mark&sweep, unknown
GC runs) I suppose the OP does not need to dwell in the internals of
gc.c. Just my thought, anyway
 
Reply With Quote
 
Anders K. Madsen
Guest
Posts: n/a
 
      07-20-2004
On Tue, 20 Jul 2004 03:00:44 +0900
David Ross <(E-Mail Removed)> wrote:

[snippety-snip]
> I want to make sure my code stays under the BSD
> license. Ruby's license confuses me a bit. --David Ross


Ehrm, this is just a suggestion, I'm not really into the whole licensing
thingy, so this might not be a solution.
But, why not get into a dialogue with matz about this?
I mean, he must know what's right and wrong regarding the Ruby License.

And just a little note.
I don't see why some people (e.g. Lothar) makes a problem out of someone
wanting to make rubycc. IMO a Ruby compiler wouldn't hurt anyone. Even
if there are some approximating the functionality around already. If
they dislike this project, they should just ignore it and stop being so
damn negative about it! It's not a very creative approach to anything!

I'd love to help, but unfortunately I'm most certainly not skilled
enough for such a project.

Best regards and good luck on the project!

Madsen

--
Anders K. Madsen --- http://lillesvin.linux.dk

"There are 10 types of people in the world.
Those who understand binary - and those who don't."

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFA/MSplNHJe/JASHcRAguEAJ9L/vZzBGythQkCxCHND9CwL7LkFQCcDYk3
lDrNYR2yDieLJeatbGboTvc=
=E7/4
-----END PGP SIGNATURE-----

 
Reply With Quote
 
gabriele renzi
Guest
Posts: n/a
 
      07-20-2004
il Tue, 20 Jul 2004 09:07:18 +0200, "Anders K. Madsen"
<(E-Mail Removed)> ha scritto::


>And just a little note.
>I don't see why some people (e.g. Lothar) makes a problem out of someone
>wanting to make rubycc. IMO a Ruby compiler wouldn't hurt anyone. Even
>if there are some approximating the functionality around already. If
>they dislike this project, they should just ignore it and stop being so
>damn negative about it! It's not a very creative approach to anything!


I don't think people is being "damn negative". I think everybody would
agree that having a fastlight ruby compiler with type inference,
runtime hotspot detection and magic based garbage collection would be
nice.

People (me) is just pointing out that this is quite hard (as
Cardinal, Carbone, MetaRuby, YARV, netruby and others show, ending
such a task is really difficult, starting it is not), and that maybe
time could be used working on matz' ruby instead of restarting from
scratch.
In the end I wish David Ross best luck for his own implementation,
I'll be pleased to use it.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
The Final Draft Ruby Specification Shugo Maeda Ruby 0 09-22-2010 01:02 AM
[ANN] Ruby draft specification Shugo Maeda Ruby 5 12-02-2009 07:17 PM
Ruby Lex Specification Vasco Andrade e Silva Ruby 4 10-31-2007 06:44 AM
Creating Library and Config Specification Roberto Gallo VHDL 0 11-19-2003 01:11 AM
Specification of Ruby regex? Ronald Pijnacker Ruby 8 08-27-2003 05:55 AM



Advertisments