World: r3wp
[!REBOL3]
older newer | first last |
BrianH 15-May-2010 [3132] | I like the concept and the word, but won't be able to use it in conversation much :( |
Steeve 15-May-2010 [3133x2] | It's really easy b |
... because all words are polysemics (more or less) | |
BrianH 15-May-2010 [3135] | No, I usually can't use words in conversation unless the person understands them. Most non-technical conversations fall apart when too many words have to be looked up in a dictionary - it breaks the flow. So, unfortunately, I don't often get to use cool words like "polysemic", and have to translate them to more accessible language instead. |
Steeve 15-May-2010 [3136x2] | (I use it to impress Girls) |
:-) | |
BrianH 15-May-2010 [3138] | It's nice when that works :) |
Steeve 15-May-2010 [3139] | sometimes... |
BrianH 15-May-2010 [3140] | But back on topic, we all know that Ladislav and Maxim have been using functions named INCLUDE to write their own code organizing or module systems over the years. But R3 has a standard module system already. We want to encourage people to use *that* module system, or to improve it if it isn't good enough for them. Code written for incompatible module systems is incompatible because of that, and thus can't easily be integrated or reused. This leads to fragmentation of the community code base, which we definitely *don't* want. Especially since the proposed standard library of community-provided R3 modules is supposed to be compatible with R3's module system, and each other. So we definitely don't want to reserve the word "include" for use by alternative module systems, because we don't want people to *make* alternative module systems for R3 unless they are compatible supersets of R3's module system, which uses IMPORT instead (different concept too). R2 is a different matter: We're already stuck with different module systems and incompatible code bases, and they have to keep working. Even if a R3-style module system gets backported to R2 (and it will be) it will have to be an optional addon. And if INCLUDE gets added to R3 as the opposite of EXCLUDE, there would be downsides to adding it to R2. We wouldn't be able to use it in any mezzanine code because the function would be overriden by Maxim's module system or Ladislav's non-modular code organization system. So INCLUDE probably wouldn't be backported. |
Robert 15-May-2010 [3141] | Do we have anything in R3 that equals PREBOL? I use this pre-processing quite a lot to include code (features), logos, colors etc. user dependent. |
BrianH 15-May-2010 [3142x4] | It's the next thing on my list to rewrite PREBOL to be compatible with R3's module system. The syntax should be a compatible superset, but the internals will be a lot different. |
It shouldn't be hard: R3's module dependencies are statically determinable, and the semantics can be translated to one-script form using known transforms. The module system was designed with this in mind. | |
This is, btw, the reason the module system doesn't have an INCLUDE function, and the reason for the limits of the IMPORT function. | |
Well, some of the limits anyways. | |
Ladislav 15-May-2010 [3146x3] | Yeah, discouraging that use in R3 is a good reason to call the function INCLUDE. - if I understand you well, by "discouraging that use in R3" you simply mean, that you discourage to use a Rebol preprocessor in R3 (since my INCLUDE is just that). Then, I see it as inconsistent, taking into account, that later you expressed an opposite viewpoint. |
we all know that Ladislav and Maxim have been using functions named INCLUDE to write their own code organizing or module systems over the years. - I have to disagree with this. AFAIK, Maxim never used 'include as a name for that purpose | |
(which is illustrated above by himself) | |
Graham 15-May-2010 [3149x2] | Neither of these systems are in general use |
Gabriele has his own system too ... | |
Ladislav 15-May-2010 [3151] | So we definitely don't want to reserve the word include" for use by alternative module systems" - have to disagree, again. My INCLUDE is not an alternative to a module system - it is a preprocessor, as everybody using it knows. |
Steeve 15-May-2010 [3152] | I've got my own aswell, copy/paste |
Graham 15-May-2010 [3153] | And probably Anton has one too |
Steeve 15-May-2010 [3154] | Is that a contest ? |
Ladislav 15-May-2010 [3155] | It's the next thing on my list to rewrite PREBOL to be compatible with R3's module system. The syntax should be a compatible superset, but the internals will be a lot different. - hmm, reinventing the wheel? (my INCLUDE is already available from rebol.org library and it has the properties you listed) |
Steeve 15-May-2010 [3156x2] | Oh that's it |
You should not be to much alarmed, the "It's the next thing on my list" is his favorite motto ;-) | |
Graham 15-May-2010 [3158] | lol |
Ladislav 15-May-2010 [3159x6] | And if INCLUDE gets added to R3 as the opposite of EXCLUDE, - funny. The opposite of EXCLUDE already exists. The only "but" is, that it is not called 'include. |
...and it exists in R2 as well as in R3 | |
Graham: "Neither of these systems are in general use" - wrong, actually. Everybody using Rebol preprocessor is compatible with Include, and the "generality of use" of INCLUDE is higher, than you guess. | |
Ah, sorry, I forgot. I did not put it to Rebol.org, since there already was a simplified alternative from Carl, so INCLUDE for R2 as well as INCLUDE for R3 are only at http://www.fm.tul.cz/~ladislav/rebol/ | |
(but you can find some doc on rebol.org) | |
when we are at it, the main doc is at http://www.rebol.net/wiki/INCLUDE_documentation | |
Gregg 16-May-2010 [3165] | I'm conflicted. I can see the logic of Brian's INCLUDE (though still wondering if it should be a set operation), but I use Ladislav's INCLUDE heavily. For me, the important thing is that we all, Carl included, keep communicating and work to leverage community efforts. |
Anton 16-May-2010 [3166x4] | Yes, I have an old include system too, using the INCLUDE function name. It's hard to stop using it, unfortunately. I am quite ok to have a native INCLUDE added and to mean the opposite of EXCLUDE, however. |
Ladislav, what is the R3 opposite of EXCLUDE ? UNION ? ALTER ? | |
What Steeve wants (conditional APPEND), does not have the same meaning as UNION. | |
Gregg, I don't use the set operations very often (but I still want them there), but I do conditional APPENDs quite often, and I miss a native function for it definitely. | |
Ladislav 17-May-2010 [3170x2] | (Puzzle spoiler!) The opposite of EXCLUDE is UNION. |
Neither ALTER, nor the newly proposed function are opposites of EXCLUDE. | |
Pekr 17-May-2010 [3172x2] | I have alternative names for EXCLUDE/INCLUDE ..... EXPLODE/IMPLODE :-) |
Anton - what do you mean by conditional append? If not found? find blk value [append blk value] ? | |
Ladislav 17-May-2010 [3174] | EXPLODE? Sounds as a good suggestion to me, if that name should be accepted ;-) |
Pekr 17-May-2010 [3175] | :-) |
Anton 17-May-2010 [3176] | Pekr, yes. |
BrianH 17-May-2010 [3177x3] | Sorry, I meant a modifying INCLUDE, as being the opposite of a modifying EXCLUDE. We had a long discussion about this. |
UNION is non-modifying. EXCLUDE is currently non-modifying, but misnamed because of that (shouldn't be a verb). | |
Ladislav, I have no problem in principle with adapting some of the code in your include stuff to make a PREBOL superset with inherent support for R3's modules. However, if your preprocessor doesn't support collecting modules with R3's module syntax, then it's of no direct use to me for R3 code. And the great thing about a PREBOL superset is that #include is *not* a function, it's a directive. | |
Anton 17-May-2010 [3180] | That's right. |
BrianH 17-May-2010 [3181] | I have had frequent need for modifying INCLUDE and EXCLUDE, but not as much need for the non-modifying stuff. To each their own. |
older newer | first last |