World: r4wp
[#Red] Red language group
older newer | first last |
Andreas 17-Oct-2012 [2833x3] | (At least if you follow the FSF's interpretation.) Any particular library you are thinking about, or is that hypothetical? |
As in my opinion, GPLv2-only libraries are a hostile mess I'd avoid in any case. Luckily I don't think I have come across any. | |
(readline was GPLv1 and then GPLv2 and so "GPLv2-only" until the GPLv3 came to be, come to think of it.) | |
BrianH 17-Oct-2012 [2836x3] | By "the product" I meant something that you or your users are distributing - that's why I wasn't specific. |
Kaj, clause 4.3: "You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works" It's the only place in the distribution section where they specifically mention Source form rather than Source or Binary, and that's the only clause that requires copyright or other notices be retained. Except for that weird NOTICE file requirement, of course. | |
Doc, good to hear that you think Apache code would be OK, even if it's in separated files. I'd like to help out with both projects :) | |
Kaj 18-Oct-2012 [2839x4] | Quite a few media codecs are under GPL. If you would use things such as FFMPEG, the licence of the codec plug-ins would leak into Red through the plug-in framework. I haven't checked, but since those codecs have a long history, it's more likely that they're GPL 2 than 3 |
Also, when you try to build an operating system with Red, you'd get into GPL 2 territory in kernel space, and you'd have a problem with the many GPL 2 drivers. The media codecs and some networking protocols mirror that situation in user space | |
Brian, as you noted before, "You must give any other recipients of the Work or Derivative Works a copy of this License" does not make a distinction between source and binary forms. That means that if you compile Apache into a Red program, you need to give a copy of the licence when you give the program to someone | |
Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below)." | |
BrianH 18-Oct-2012 [2843] | Let's not talk about this further in the Red group. |
Kaj 18-Oct-2012 [2844x5] | I'm not following the Licensing group anymore. I have work to do |
Couldn't help noticing in the last checkin: | |
type: either dt/value = TYPE_DATATYPE [ TYPE_DATATYPE ][ dt/value ] | |
Isn't that equivalent to | |
type: dt/value | |
DocKimbel 18-Oct-2012 [2849] | Yep :) I've changed those lines so many times today, that my mind should have blocked from reading them anymore. ;-) |
Kaj 18-Oct-2012 [2850] | :-) |
DocKimbel 18-Oct-2012 [2851] | It was a bit painful commit anyway, as the internal API is not yet fully stabilized and to do it right, I would need to fully define the public runtime API first, but that would delay the 0.3.0 way too much, so we'll deal with that later. What I mean by "public runtime API", is the Red API exposed to Red/System and to other host languages loading Red as a library. I'm still uncertain if such public API can be just some internal exposed or will need a thin layer of wrappers to make it handier (and in some cases, safer) to use. The R3 extension isolation model is too strong for my taste and makes the extensions harder to write than they should. I'm also uncertain if this model was stricly motivated by providing the safest possible interface with the core or, if the willing to keep the core internals as secret as possible was also playing a big part in this model choice. Once the `dyn-lib-emitter` branch merged, I plan to study the Lua (and others) public API, to see if and how we can do better for Red. I already have a rough idea of how it should look like, I just need to refine it. |
Kaj 18-Oct-2012 [2852x3] | Sounds good |
In my view, the R3 interface is also motivated by the wish to be independent from any operating system loader mechanisms, to discard them for Wildman in some unknown future | |
Red/System extensions will usually be compiled together with the Red runtime, so they will be much more flexible. For interfacing with precompiled binaries, a more stable interface would be needed | |
DocKimbel 18-Oct-2012 [2855x2] | Public API stability: right, that's a good point in favor of a set of wrappers on top of current Red runtime API. |
A stack-oriented API might be a good candidate for that... | |
Kaj 18-Oct-2012 [2857] | For example, I've noted the alias! issue before. As long as all code is compiled together, alias numbers are a good interface, like symbol IDs are assigned at runtime in REBOL. But when precompiled code needs to communicate they become useless, hence why the R3 interface makes efforts to map symbols to known numbers |
DocKimbel 18-Oct-2012 [2858x3] | Alias! type ID are attributed per compilation session, so they are not shareable with other binaries. |
Anyway, we want to expose Red API to host languages/apps, not Red/System's one (at least not for now). | |
Think PARSE usable from any other language as example. ;-) | |
Kaj 18-Oct-2012 [2861x2] | The same issue affects Red symbols |
Red/System is already easy to expose to other languages, because it's C compatible, and you made the dynlib interface. :-) However, alias IDs break it | |
BrianH 18-Oct-2012 [2863x6] | Part of the motivation of the R3 extension/host API was to isolate the extensions and hosts from changes in the underlying data model, which makes hosts and extensions really resilient to upgrades of R3. It also was designed to let you have a consistent internal execution model even in cases where the host has a completely different process/thread model. |
I think it went a little too far at times, especially the lack of marshallers for immediate values that are more than 64 bits internally. I've frequently wanted to supplement it with marshallers for the other datatypes in R3, particularly the date, time and money types. | |
The big win is the command dispatch model though, because it basically lets you get dispatch to JIT-compiled functions for free. The dispatch function can manage changes between execution models completely without R3 even noticing. Lua has similar separation, though since it doesn't have to support anywhere near as many datatypes it can get away with a stack-based interface. | |
Another interesting side effect of the strong separation is that it would be possible to implement the client-side of the extension interface in other languages, such as Red, so that it could use R3 extensions without changes. The REBOL portion of the extension might be trickier to implement though, because that code tends to be more tied into the actual R3 runtime model. You could write your own wrapper code if your system model is different, but the native code could be used as-is. | |
However, the way that the R3 script loader works, you could make an extension that has both Red and Rebol scripts in the module data, especially if Red uses a similar script-in-a-block embedding method, | |
That would make it so you could make one extension that can be used by both languages, that shares the same native code. | |
Arnold 18-Oct-2012 [2869x3] | Hi Kaj on my macbook: Last login: Fri Oct 19 07:21:16 on ttys001 MacBook-van-Arnold-160:~ Arnold$ /Users/Arnold/Downloads/Red\(/System\)\ Testing-dc1b702068063b65/Darwin/Red/hello ; exit; Hello, world! §±ÖÁµ, ºÌüµ! `O}Y, NLu Dobrý den svte logout [Proces voltooid] /Users/Arnold/Downloads/Red\(/System\)\ Testing-dc1b702068063b65/Darwin/Red/Fibonacci ; exit; MacBook-van-Arnold-160:~ Arnold$ /Users/Arnold/Downloads/Red\(/System\)\ Testing-dc1b702068063b65/Darwin/Red/Fibonacci ; exit; Fibonacci 35: 9227465 logout [Proces voltooid] MacBook-van-Arnold-160:~ Arnold$ /Users/Arnold/Downloads/Red\(/System\)\ Testing-dc1b702068063b65/Darwin/Red/empty ; exit; logout [Proces voltooid] I took the programs from the Red tree under Darwin |
Oh the Hello World looks very much better than is shown above. Still unreadable by me but I recognise different charactersets. | |
Do you need a print? | |
Pekr 18-Oct-2012 [2872] | screenshot would be fine, or just take picture with your cell phone and upload it :-) |
Arnold 18-Oct-2012 [2873x2] | http://arnoldvanhofwegen.com/stuff/helloworldRed.jpg |
Needed 6 programs to do that! Schermafbeelding (screenshot?) to make the picture, Spotlight to find it, Imagewell to change tiff to jpg Preview to check Finder to put it in the right directory Filezilla to transfer Safari to check (clipboard to transfer the url to here) | |
Pekr 18-Oct-2012 [2875] | I need one HTC sensation, press of a shooter, one button press to get jpeg into my email or facebook. Just throw your workflow to the trashcan, you can do better nowadays :-) |
DocKimbel 19-Oct-2012 [2876] | Brian: thanks for the info. |
Kaj 19-Oct-2012 [2877x6] | Arnold, thanks for testing. Those results look good |
Could you test the Red/System programs, as well? | |
If people check out the repository, you get all programs at once and you can keep them up to date very simply for new test versions: | |
http://rebol.esperconsultancy.nl/documentation/how-to-use-Fossil.html | |
Fossil is already included in Syllable 0.6.7 | |
I've tested to confirm that all examples that apply to Syllable still work perfectly | |
older newer | first last |