World: r3wp
[!REBOL3-OLD1]
older newer | first last |
Pekr 31-Jul-2009 [16381] | I somehow can't understand, what is the difference between a plug-in funciton, and for e.g. C level function wrapped into DLL call (R2 way)? The example provided in doc shows rather complicated aproach of how such function has to be constructed. You simply can't write it your way? There has to be some reason for it :-) |
BrianH 31-Jul-2009 [16382x2] | Pekr, there is no regression: CALL in R3 is an entirely new function, which uses an entirely different, lower-level method to call stuff. I don't know whether the /output and /wait methods are possible with the new method, or whether they will be necessary once CALL is fixed. Right now CALL is a placeholder - the implementation is going to be in the host code (read: open-source), so development has been put on hold on CALL until the host code is released (which is intended to be soon). |
Tasks are pretty much placeholders for now, but are intended to be included in the final R3. The model isn't settled. | |
Geomol 31-Jul-2009 [16384x2] | Is there a problem with getting operators? >> get to word! "=" ** Script error: = word is not bound to a context |
Using get-word syntax works: >> := == op! | |
Sunanda 31-Jul-2009 [16386] | Ditto: >> get to-word '= == op! |
Geomol 31-Jul-2009 [16387x3] | The get-word syntax has a problem with the <> operator: >> a: :<> ** Syntax error: invalid "word-get" -- ":" |
Sunanda, so making string to words and making lit-words to words isn't quite the same, it seems!? >> (to word! '=) = (to word! "=") == true >> (to word! '=) == (to word! "=") == false | |
Strange! >> type? to word! '= == word! >> type? to word! "=" == word! | |
Sunanda 31-Jul-2009 [16390] | Yes -- not sure why. Brian knows the internals. Re broken syntax. QUOTE can help, eg: >> get to-word '<> ** Syntax error: invalid "word-lit" -- "'" But: >> get to-word quote <> == op! |
Geomol 31-Jul-2009 [16391] | :-) QUOTE (never heard of that one before) |
Sunanda 31-Jul-2009 [16392] | It's R3 only |
BrianH 31-Jul-2009 [16393] | You can't do QUOTE for words in R2, but it works for other types (including other word types). |
Geomol 31-Jul-2009 [16394] | What's the need for QUOTE, when we have the get-word syntax? |
BrianH 31-Jul-2009 [16395x5] | QUOTE is mezzanine, and in mostly for qoting function references and other active values in generated code. |
Geomol, the reason that >> 'a == to-word "a" == false is because == now takes into account the binding of the word. TO-WORD string generates unbound words. LOAD string generates words that are bound to the user context - console commands are loaded just like scripts. | |
>> 'a = use [a] ['a] == true >> 'a == use [a] ['a] == false | |
If you want to take into account the binding of a word but not its type (equivalency within the word types), use EQUIV? (no operator for it). | |
>> equiv? 'a use [a] [/a] == false >> equiv? 'a /a == true | |
Geomol 31-Jul-2009 [16400] | I see. Being a tad complex, I think. |
BrianH 31-Jul-2009 [16401] | We completely revamped equivalence. There are 4 levels now. There was a big blog discussion about it. |
Geomol 31-Jul-2009 [16402] | 4 levels of equivalence, wow! Is that a record in computer languages? ;-) |
BrianH 31-Jul-2009 [16403x2] | Not even slightly - many languages have it much worse :) |
Btw, if you want to get the value of the <> word, remember that the same value is also assigned to the != word: >> same? get quote <> :!= == true | |
Geomol 31-Jul-2009 [16405] | Yeah, I found !=. I guess, the :<> is a lexical bug? (I'm still working on a deep test on the lexical analyzer and hope to send the result to Carl and the rest of the R3 developers in the near future.) |
BrianH 31-Jul-2009 [16406] | Please add the bug (perhaps aas a wish) to CureCode. There are other unresolved lexical bugs there already (like #537). |
Geomol 31-Jul-2009 [16407x2] | I'll handle it in my lex report. There are many problems with < and > in different combinations. I guess, it's because they clash with the tag! datatype. For example: >> '< ** Syntax error: invalid "word-lit" -- "'" |
while other operators work ok as lit-words: >> '= == = | |
BrianH 31-Jul-2009 [16409] | Any use of those words conflicts with the tag! syntax. The trick is to set priorities. |
Geomol 31-Jul-2009 [16410] | No, the trick is to program the lexer correctly without bugs! ;-) |
BrianH 31-Jul-2009 [16411x2] | The lexer is where the priorities are set. What you are talking about isn't bugs, it is preferences (and good ones at that). |
Non-configurable preferences, mind you. They have to be set in the source of the lexer. | |
Geomol 31-Jul-2009 [16413] | Ok, I see it differently. If it's possible to make a lexer, that can cope with tags and lit-words and get-words like '< and :<, then I see it as bugs in the current implementation. |
BrianH 31-Jul-2009 [16414x3] | You could see it either way. Those "bugs" are backwards compatible with R2. However, this is clearly related to bug#666 :) |
I prefer to think of them as justifiable improvements :) | |
We take Wish tickets as seriously as Bug tickets. Whether it is a Wish or a Bug doesn't affect prioritization of ticket handling. | |
Geomol 31-Jul-2009 [16417] | Output from my work-in-progress lexer: :> Valid get-word: :> '> Valid lit-word: '> <a> Tag begin Next it should get the whole tag and return that as a valid tag. I think, it's possible to make a lexer, that can handle all this correctly (as I see it). |
BrianH 31-Jul-2009 [16418] | It all sounds doable so far. Please remember #537 in your proposal. |
Geomol 31-Jul-2009 [16419] | Why would you write a, ? Comma is not allowed in words. I wondered about this some months ago, like if Carl had some future idea for the use of comma!? |
BrianH 31-Jul-2009 [16420] | I don't want to allow , in words, I want to have the word be recognized and then have the lexer complain about the , next time. |
Sunanda 31-Jul-2009 [16421] | Try not to break things like: >> url? *::, == true (It's not always as easy as it looks :-) |
BrianH 31-Jul-2009 [16422] | Read the comments - this would be word-only. This is why I was so precise in the ticket, referring to TRANSCODE behavior. |
Geomol 31-Jul-2009 [16423] | Brian, ah ok. As : is not allowed in words, that url example should be ok. But I'm wondering, why comma isn't allowed in words, as point is. >> a.: 1 == 1 >> a,: 1 ** Syntax error: invalid "word" -- "a,:" I don't see the reason, other than if Carl has some special future idea for comma. |
BrianH 31-Jul-2009 [16424] | The comma is so bad syntactically that throwing an error every time someone tries to use it is considered a valuable feature. |
Geomol 31-Jul-2009 [16425] | Or maybe because comma is used in many languages to separate arguments, and by not allowing comma in words, REBOL might be easier to read for everyone. |
BrianH 31-Jul-2009 [16426] | Plus, having something as difficult-to-see as a comma in any syntax role is considered a bad thing. REBOL syntax didn't come out of nowhere - these choices were maade for good reasons. It's why we don't use periods as well. |
Geomol 31-Jul-2009 [16427] | If you get it, like to describe in #537, what should this return then? transcode "a,0" |
BrianH 31-Jul-2009 [16428] | [a ",0"] |
Steeve 31-Jul-2009 [16429] | period is usable |
Geomol 31-Jul-2009 [16430] | and reduce [a,0] |
older newer | first last |