Shop OBEX P1 Docs P2 Docs Learn Events
Announcing P2BEE: Propeller 2 Bytecode Execution Engine - Page 2 — Parallax Forums

Announcing P2BEE: Propeller 2 Bytecode Execution Engine

2456

Comments

  • Heater.Heater. Posts: 21,230
    edited 2012-12-14 08:24
    potatohead,
    a license like this will more or less insure that the technique does not see wide use
    No, the idea is out there, it was before Bill's post. It's obvious to anyone who has ever written a bycode interpreter or emulator and comes across a thing called "Look Up Table".

    The technique will no doubt get used regardless. Even if the implementation never reaches the efficiency Bill achieves. As we know Bill is very good at this sort of thing, has put a lot of effort into digging into Prop II operation and is probably hard to beat.

    What won't get used is Bill's actual code with that restriction attached. Unless someone happens to come up with the exact same code sequence independently, which is quite possible.

    Bill, you might find you get more attribution by not demanding it and as a consequence having more people adopt it.
  • Heater.Heater. Posts: 21,230
    edited 2012-12-14 08:27
    Potatohead,
    Of course, we can encrypt now too, so who knows?
    I have often thought that half the reason for the corporate demand for locked down, unreadable or encrypted code is exactly to avoid such issues coming back to bite them. Even if they do not intentionally violate licences these things have a habit to creep in, especially from the open source world.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-12-14 08:30
    @Heater

    Yes! In this case I agree with you, but that won't always be true and the overall discussion needs to happen now. And to be very clear, this isn't about not giving credit, and it is all about the ugliness of licensing and the implications that carries for collaboration here.

    Regarding benefit of encryption, yes I agree with that too and frankly know of instances where that exact use case benefit was cited. If nobody can see, they aren't going to be worried about what they don't know, will they? Clearly, like anything, that can and does get abused, but there are plenty of instances where simple liability management is in play. Can't blame 'em, particularly in the US where software patents and process patents are causing a lot of grief.

    (stay strong in the EU, we need you guys doing it right)
  • Bill HenningBill Henning Posts: 6,445
    edited 2012-12-14 08:37
    Guys, I am going to spend my time developing, not arguing licenses.

    Every few hours I may check in, and leave catch-up message, but I do not have time for individual responses.

    I would like to point out a few things:

    1) real commercial use would have been impossible had I decided on GPL/LGPL, which is why I did not use it

    2) many more people would have been upset if I used a more restrictive license

    3) this makes possible MANY more emulators, games, that are faster

    4) anyone writing open source should not have problem attributing

    5) anyone writing commercial apps would only have a problem attributing if they wanted all the credit

    6) the fast emulators made possible by this will help sell Propeller 2's

    7) I wonder how many of the people objecting to my license publish their work exclusively under the MIT license.

    And another very important point:

    Had I not published under a very liberal license first, someone else (in time - who knows how short/long) may have published under a very restrictive license.

    I will now go back to making more neat products.

    FYI, P2BEE came out of some products I am working on, and I was trying to help everyone by publishing it under a very liberal license.

    I am very surprised at the reaction.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-12-14 08:42
    Real commercial use is entirely possible with GPL. As the author of the code, you would be completely free to license it on another basis, leaving them free to produce whatever it is without also having to release source code, and said license could include whatever terms you find mutually acceptable.

    We had this discussion as a group a long time ago, and it was a good one. Later today, I'm going to go and find it.

    With the exception of the original Potatotext, I publish here MIT. If another license is appropriate, it sees no mention here at all. If I were to mention it here, I would frame it as an AD with link to where the code can be found and what the terms are. IMHO, this should be standard for this forum. Baggers did a similar thing with PropGFX, binary distributing to avoid this very issue. Eric made it clear about the license he had attached in both the code and the forum post associated with it, and that was early too, so I do not mean to imply he did anything wrong at all, nor that he had any bad intent either. It's just an example I can think of right now.

    Bill, the issue isn't giving you credit. I like to give you credit, because you deserve it, and I think there is highly likely to be few, if any, who would see it otherwise. So, it's not that. It's the incompatability with licenses that is at issue. And it might seem silly, but the truth is we are forced to give those things consideration. GPL won't work here either, FWIW. It won't work here for the same reason; namely, incompatability with other licenses, which is why MIT / Public Domain makes the most sense here.

    Elsewhere? Sure! We all can setup shop somewhere and publish and collaborate how we will, but dropping code here that isn't compatable with the MIT kind of forces people to reconsider their interactions here. That's my objection.

    Finally, I know this is the absolute last discussion any of us wants to have. We must have it though.
  • Dave HeinDave Hein Posts: 6,347
    edited 2012-12-14 08:51
    Bill, I'm confused about your license. If I write some code that uses the CLUT to hold filter coefficients do I have to acknowledge you as the inventor? What exacly are you claiming rights to?
  • SapiehaSapieha Posts: 2,964
    edited 2012-12-14 09:06
    Hi Dave.

    I think You are now finishing words -- My orginal Text.

    Ps. 1 after consulting Internet -- I see it maybe will not be understand.

    Ps. 2 As You all know my English not great
    But clear he claim trick for faster way running bytecode - and all he ask is credit -
    if anyone can make faster trick no need to give credit that way they believe you write it

    Dave Hein wrote: »
    Bill, I'm confused about your license. If I write some code that uses the CLUT to hold filter coefficients do I have to acknowledge you as the inventor? What exacly are you claiming rights to?
  • Heater.Heater. Posts: 21,230
    edited 2012-12-14 09:15
    Bill,

    I sympathise with your desire to ignore boring old licence debates and get on with developing, who would not.

    BUT you must understand that what you are proposing is a logical impossibility not just a subject of personal preferences.
    GCC is welcome to use it, at no charge, as long as they attribute as I ask

    As far as I understand this is not possible, you cannot impose extra restrictions on GPLed code as this offer would do. That is not a matter of preferences but one of law. Copyright law. We cannot escape it.

    The only way to do this is for you to make an exception for GCC to use it. But then of course anyone can use it with or without attribution if they take it from propgcc and use it in another GPLed project. If you do not want to do that then it is a fine Christmas present to the GCC team that they cannot use.
    real commercial use would have been impossible had I decided on GPL/LGPL,
    This is not true. As you are the creator of the work there is never a problem with commercial use. Anyone can ask you for a commercial licence and you can grant them one under whatever terms you like. So even if you GPLed the thing it could still get commercial use under a different licence. The Qt libraries are a fine example of this dual licencing approach.
    anyone writing open source should not have problem attributing
    I agree. However they may have trouble reconciling licence conditions. Especially when contributing to an existing project.
  • David BetzDavid Betz Posts: 14,516
    edited 2012-12-14 09:17
    Had I not published under a very liberal license first, someone else (in time - who knows how short/long) may have published under a very restrictive license.

    I will now go back to making more neat products.

    FYI, P2BEE came out of some products I am working on, and I was trying to help everyone by publishing it under a very liberal license.

    I am very surprised at the reaction.

    Why didn't you just post a description of it and leave it at that. There is no need for it to have any license. The fact that it had been published here would prevent anyone else from patenting it I think. It seems like that's what pretty much everyone else in this forum does. They post ideas for the forum to kick around and we all benefit from that.
  • Roy ElthamRoy Eltham Posts: 3,000
    edited 2012-12-14 09:53
    Sorry Bill, but I disagree with your choice here. I have not and will not read your code for this, because I reserve the right to make my own bytecode execution engine that may or may not use the CLUT. If I were to do such a thing I would use MIT license. I would probably also mention that you had a variant (what was probably faster).

    Also, as has been said, your license on the source code does not cover the idea. You can't require attribution for the somewhat obvious idea of using the CLUT as an indirection table for code translation. That's not far off from what it was designed to do, being that color values that are bytes or smaller are translated to full 32bit colors via the CLUT for use in rendering.
  • Heater.Heater. Posts: 21,230
    edited 2012-12-14 09:56
    Bill,

    Hope you are still reading.

    Thinking about it the situation is even worse than I have realized so far:

    If I build a program with GCC I end up with one binary blob that can be loaded to a Propeller. That includes all my code, all the C library code I use and the LMM kernel if I use LMM. There is no question about it, all those parts have been linked into one binary blob.

    So. This is not just an issue for the GCC project but an issue for every single program built with GCC for the Propeller.

    Commercial users may not want to use that code as they often don't want to be troubled with attributions or even just keeping track of all the requirements of all the different licences in the open source world that may apply to components they use. Your terms have a detrimental effect on commercial use which Parallax would have to pass on to their commercial customers. So ultimately it has a worse effect on commercial users than on us hobbyists.

    In fact it becomes unusable in all situations where the users licence is other than yours!
  • SapiehaSapieha Posts: 2,964
    edited 2012-12-14 10:11
    Hi.

    I don't understand what it is for problem..

    I will use it and don't have problems with give credits -- In same way I place other's licenses in my code.

    But If people have problems with giving credits --- So I ask
    > What is theirs motivation ?



    Ps. Quartus Use about 5 diferent licenses with theirs software and don't have problems with that.
  • Heater.Heater. Posts: 21,230
    edited 2012-12-14 10:41
    Sapieha,
    We don't have problem with giving credit.
    But you cannot mix items with such license terms into GCC. The GCC licence does not allow it. That's just a fact of copyright law and the GCC's licence.
    Comercial users won't want this burden either.

    Bill's license terms look like they actually have the opposite effect to the one he intended. I.e. no one from the entire spectrum from rabbid Free Software to profit grabbing producers of closed commercial code will want to use what he offers.
    As I said it is not a matter of personal prefferences but a logical outcome of applying the copyright law and various works license terms.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2012-12-14 10:43
    The MIT license clearly requires attribution:
    Copyright (C) <year> <copyright holders>

    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.

    Bill, why not just use it and get this licensing issue behind us? Until that happens, I don't plan to look at your code, either, or even try to understand what you've done based upon the contents of this thread. If it's something that I think I need, I'll develop it independently, rather than having to deal with someone else's flag stuck in the sand.

    -Phil
  • David BetzDavid Betz Posts: 14,516
    edited 2012-12-14 10:45
    Heater. wrote: »
    Sapieha,
    We don't have problem with giving credit.
    But you cannot mix items with such license terms into GCC. The GCC licence does not allow it. That's just a fact of copyright law and the GCC's licence.
    Comercial users won't want this burden either.

    Bill's license terms look like they actually have the opposite effect to the one he intended. I.e. no one from the entire spectrum from rabbid Free Software to profit grabbing producers of closed commercial code will want to use what he offers.
    As I said it is not a matter of personal prefferences but a logical outcome of applying the copyright law and various works license terms.
    It may all be irrelevant since I don't think he can claim ownership of the general idea, just the specific code that implements it. Anyone else who looks at the P2 data sheet and wants to do a VM will probably come up with a similar idea anyway. I'm sure there are plenty of optimizations that Bill has done that someone might want to license from him but the general idea of using the CLUT for non-video purposes is not novel and can't be protected.
  • SapiehaSapieha Posts: 2,964
    edited 2012-12-14 10:45
    Hi Heater.

    Nothing say them need use it.

    We are free people - and decide every one what we will doing.
    So still --- What are problem
  • SapiehaSapieha Posts: 2,964
    edited 2012-12-14 10:52
    Hi David.

    If You say that -- So I will ask who one gave idea to use CLUT as more that that and described how Pointers need work to it be usabble to more that CLUT?


    David Betz wrote: »
    It may all be irrelevant since I don't think he can claim ownership of the general idea, just the specific code that implements it. Anyone else who looks at the P2 data sheet and wants to do a VM will probably come up with a similar idea anyway. I'm sure there are plenty of optimizations that Bill has done that someone might want to license from himbut the general idea of using the CLUT for non-video purposes is not novel and can't be protected.
  • Heater.Heater. Posts: 21,230
    edited 2012-12-14 10:58
    Sapieha,
    True. That might mean that commercial users choose not to use it. That might mean they don't want to use GCC, if it were allowed to use Bill's code. That might mean that the Prop II misses out on sales it would otherwise have. And that might be the opposite of Bill's objective.
    QED.
  • SapiehaSapieha Posts: 2,964
    edited 2012-12-14 11:00
    Hi Heater.

    It was not Bill's idea/description

    Heater. wrote: »
    Sapieha,
    True. That might mean that commercial users choose not to use it. That might mean they don't want to use GCC, if it were allowed to use Bill's code. That might mean that the Prop II misses out on sales it would otherwise have. And that might be the opposite of Bill's objective.
    QED.
  • David BetzDavid Betz Posts: 14,516
    edited 2012-12-14 11:01
    Sapieha wrote: »
    Hi David.

    If You say that -- So I will ask who one gave idea to use CLUT as more that that and described how Pointers need work to it be usabble to more that CLUT?
    I believe that Chip mentioned other uses for the CLUT when he first told us about it. But, even if he didn't mention this particular use, it is natural for a programmer to try to make the most use of any memory resources that are available on the processor. I don't know what you're talking about when you mention pointers since I didn't read Bill's paper. Maybe that is novel. I guess I won't ever know.

    Here is the thing, this was offered as a "Xmas Present". When I give someone a present I don't send along with it a card that requires the person to thank me every time they use it. Of course, most people *would* thank the giver but it would be rude to include a document making that a requirement. This isn't a gift if there are strings attached. It is one thing for me to credit Bill for a good idea because I think he deserves recognition for his work but an entirely different thing for him to require me to do that. This may be common in legal agreements between corporate entities but it is not in the spirit of a "present".
  • Heater.Heater. Posts: 21,230
    edited 2012-12-14 11:04
    Sapieha,
    Yes it was. In post #35 Bill explicitly mentions commercial use.
  • jazzedjazzed Posts: 11,803
    edited 2012-12-14 11:06
    Heater. wrote: »
    If I build a program with GCC I end up with one binary blob that can be loaded to a Propeller. That includes all my code, all the C library code I use and the LMM kernel if I use LMM. There is no question about it, all those parts have been linked into one binary blob.

    So. This is not just an issue for the GCC project but an issue for every single program built with GCC for the Propeller.

    GCC libraries (libgcc for example) are explicitly allowed in the GPL-Exception (provided under GPL3 which governs Propeller-GCC) to free end user programs of GPL license and conditions. All other libraries in Propeller-GCC are BSD or public domain.
  • Heater.Heater. Posts: 21,230
    edited 2012-12-14 11:15
    David,
    Yes, and it's even worse than that. If you let your friends play with yor new toy you have to remeber to tell all of them that "Bill made this".
    Then if one day you give you give your toy to someone else you have to demand that they do the same. And so on...
    Clearly this is an impossible demand for the GCC toy, you and all your friends.
  • Dave HeinDave Hein Posts: 6,347
    edited 2012-12-14 11:51
    Sapieha wrote: »
    So I will ask who one gave idea to use CLUT as more that that and described how Pointers need work to it be usabble to more that CLUT?
    As far as I know, I was the first one to write code that used the CLUT for something other than a color lookup table. The attached file was posted in the GCC Developer's forum in July of last year. Though that is a closed forum, Bill is a member of it, and may have seen it at that time. This code used the CLUT to implement return and data stacks. It ran under the P2 mode of spinsim.

    Of course, the original idea for using the CLUT for more than a color lookup table must be credited to Chip.
  • Heater.Heater. Posts: 21,230
    edited 2012-12-14 15:55
    Dave,

    I appreciate your efforts at providing prior art. None is necessary. No one, as far as I know, is claiming patent on the idea.

    Patents and copyright are very different things.

    What is on the table here is some source text, which may or may not be subject to copyright law.

    If it is, then it may or may not be used in derived works, like propgcc, without complying with the authors terms.

    Just in case, it's better to avoid such text.
  • Cluso99Cluso99 Posts: 18,069
    edited 2012-12-14 17:07
    Bill:
    I am not sure of your motives. Has it been taken the wrong way???
    We all know (here) that you came up with the LMM concept years ago. Are you expecting GCC and Catalina etc should (have) publicly acknowledge(d) your concept?

    I think heater pointed out above, that this would only possibly be patentable, and that since this is now disclosed it is no longer patentable. In fact, I think it would be Chip/Parallax who would be the only ones to be able to do this??? I don't think a couple of lines of code are not going to be copyright in many lines of code.

    I sincerely hope common sense prevails. We are all contributing here freely. If we end up with a commercial product too, all well and good. Please don't let Chip/Parallax's openness with us spoil that by letting us have a preview of the P2 to gain something they did not intend. It has been great to find a bug before the shuttle run and I think Chip has "squeezed" a few extra tid bits in there too.

    All:
    From a portion of the MIT licence (thanks Phil)
    The above copyright notice and this permission notice shall be included in all copies or[B] [U][COLOR=red]substantial portions [/COLOR][/U][/B]of the Software.
    
    BTW I don't think a few lines qualifies, even if it is a reoccurring routine. And besides, Chip posted a shorter and better way (code) to access the clut.

    Just to get it on the table in case someone tries to claim it...

    I have often asked Chip how to get access to the clut contents directly - I knew I could set the stack pointers, but had not thought about the push/pop regime to then access those locations. Basically both Bill and Chip have pointed this out yesterday, so I now have the instructions/regime to access the clut randomly which is precisely what I require.
    I intend to use the CLUT as a vector table replacing the vector table I used in my faster version of my P1 spin interpreter. I also intend to use it to store overlay(s) so that we have up to another 256 instructions/contants/variables. Of course it may end up being a mix of code/constants/variables in the center of the clut and stacks from top/bttom/both ends.
    The code will be open and free for all to use without any attribution requirements, etc.
  • cgraceycgracey Posts: 14,155
    edited 2012-12-14 23:55
    After reading all this, I think it's best that we simply don't share any idea on the forum that we consider, in any degree or form, to be our exclusive property, because disclosing it with attendant legalese tends to invoke a tacit threat of Kafkaesque legal violence against every unwitting person who stumbles upon it and is now the in awkward position of having his own development efforts preempted.

    The legal system would love to have us imagine that everything we think of can be patented and we can control it and get rich from it, but this is a siren song that only generates billable hours for patent lawyers.

    It's also convenient to suppose that the legal system can freely afford us various protections, but the reality is that it's an abysmal machination that promises to do something, can do almost nothing, and could cost you everything you have if you try to use it. The only fruits of engaging the system are frustration, wasting of time and money, a disgust towards humanity, and a consequently shortened life. At least, that's been my personal experience with it. It's to be avoided like the plague.

    Most of us here would freely acknowledge the inspiration that we get from others, but none of us would be inclined to do so, if compelled.

    This forum is special because there is a vibrant spirit of creativity, excitement, and discovery. Let's be mindful of what it takes to keep it that way.


    P.S. Do you know how many patents Parallax has filed? ZERO!!!
  • Roy ElthamRoy Eltham Posts: 3,000
    edited 2012-12-15 00:38
    Right on Chip! You said it better than my attempts to do so. I agree with you 1000% on this.
  • Cluso99Cluso99 Posts: 18,069
    edited 2012-12-15 01:13
    Couldn't have said it any better, Chip. And I can attest to that thing they call a legal system too :(
This discussion has been closed.