• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp5907
r3wp58701
total:64608

results window for this page: [start: 54201 end: 54300]

world-name: r3wp

Group: !REBOL3 ... [web-public]
Andreas:
26-Oct-2010
You deviate from a contract, you deviate from social rules, the right 
path, etc.
BrianH:
26-Oct-2010
On a good day :)
GrahamC:
26-Oct-2010
equal? a b
GrahamC:
26-Oct-2010
diverge? a b
Fork:
26-Oct-2010
I missed a lot of this conversation, but saw some mention of NAN 
and INF.  Exceptions by default seem like the natural choice.  Anything 
different could be done with refinements.  divide/symbolic 1 0 ... 
or something?
Andreas:
26-Oct-2010
Problem with `diverge?` is that the proposed function will not return 
a boolean, unlike equal?.
PeterWood:
26-Oct-2010
A small gotcha for people who want to write scripts that run under 
both R2 and R3.
Maxim:
26-Oct-2010
I'm still not sure this specific stub should be removed.  it will 
invalidate *many* R2 scripts and its not such a big thing to leave... 
as long as it prints out a warning.
Maxim:
26-Oct-2010
it could actually be part of a "compatibility" mode switch.... something 
like a delayed module which only need to import when running r2 code.
BrianH:
26-Oct-2010
That is a better plan than leaving these anachronisms in R3 by default 
:)
Maxim:
26-Oct-2010
but we need to make sure we collect them all (I gather you've been 
a pack rat about this ;-)>
BrianH:
26-Oct-2010
I expect that with the R2/Forward additions to R2 there might be 
a useful middle ground.
Maxim:
26-Oct-2010
(a classic case of.... if you can't convince them... use the stuff 
they put all those hours on... its probably better than yours  ;-)
BrianH:
26-Oct-2010
Just added this note to #1722: "Note: This ticket is not a dup of 
#1177. We made the same error again with a new module system. We 
have a better solution this time though."
BrianH:
26-Oct-2010
And it was a two-word fix :)
Maxim:
26-Oct-2010
since you are telling it none, its not a security hole you chose 
to ignore the name.
BrianH:
26-Oct-2010
That won't work for IMPORT, but might work for sys/load-module with 
a little care. Not sure about that one though.
BrianH:
26-Oct-2010
Import doesn't have a rename feature on purpose, as a simplification. 
IMPORT is supposed to be user-level automagic stuff. The real work 
is done by LOAD-MODULE.
BrianH:
26-Oct-2010
For one thing, renaming something already imported is an error. And 
a lot of the time IMPORT is just giving you access to stuff you already 
imported earlier with Needs.
BrianH:
27-Oct-2010
If you want the reloading, use DO. DO works on scripts and modules 
both, and does them every time. It even tries to import the module 
after it is created. This is everything that you were requesting 
out of reloads. What it won't do is override a loaded module in the 
module list that is the same version or newer, but you can import 
those directly using IMPORT options.
BrianH:
27-Oct-2010
What /no-lib does is converts a module to a private module. It does 
a full import directly into the user context instead of importing 
through lib. It doesn't even go into the system modules list as a 
reusable prebuilt module, which named private modules otherwise do.
Sunanda:
27-Oct-2010
Fork.... earlier discussion of INF is here:

   http://www.rebol.org/aga-display-posts.r?offset=0&post=r3wp771x5711

As Brian says, best place for any proposals for Carl to consider 
is here:
    http://www.curecode.org/rebol3/ticket.rsp?id=1717&cursor=1


The range of possible approaches extend from INF always throws an 
error to INF is a first class value. Somwhere in the middle is INF 
acting like UNSET! -- something you can use, but must be handled 
with great care.
Ladislav:
27-Oct-2010
...approaches extend from INF always throws an error to INF is a 
first class value. Somwhere in the middle is INF acting like UNSET!...

 - I do not think this describes the situation. I see it differently, 
 thinking, that there are only two consistent alternatives (the current 
 state is inconsistent, as everybody agrees with):


1) inifinities are not REBOL values (this state existed before FP 
pairs were introduced). I am pretty sure, that the description "INF 
always throws an error" is misleading, exactly because such a value 
does not even exist in REBOL


2) infinities exist in REBOL. In this case, they have to be "first 
class values", but, of course, they are not handleable by all functions, 
since e.g. +INF + -INF is not defined
Maxim:
27-Oct-2010
supporting infinity opens up a can of worms IMHO.  if one really 
needs to do heavy math stuff, its probably better to use C and professional 
math libraries via an extension.
Henrik:
27-Oct-2010
I almost agree with Maxim here. I think there should be a clear definition 
of REBOL 3 math *can* and *cannot* do. Leave the complex numbers, 
symbolic math and infinity to modules and extensions.
Pekr:
27-Oct-2010
Cyphre - I re-tested with all possible special czech alphabet chars, 
and even with default font in console, it worked OK. Or was I just 
lucky, and your note was more general, e.g. that such a font can't 
support all possible chars in different than czech language?
Andreas:
27-Oct-2010
if, however, the binary is compiled as console app, a console will 
_always_ pop up (if if only for a very short blink).
Andreas:
27-Oct-2010
so when you start view.exe by dropping a script which displays a 
rebol gui on it, you'll have a short blink of a win32 console before 
the rebol stuff launches. which is probably undesirable.
Pekr:
27-Oct-2010
This guy is somehow reusing dos console in GUI app, but maybe it 
is a different matter - it seems he is just redirecting the console 
to give it a GUI look? 
http://www.codeproject.com/KB/threads/consolepipe.aspx
Cyphre:
28-Oct-2010
Pekr, Andreas is right. The problem is that the 'flag' if the app 
is of Console or GUI type is set at compile time. So when you execute 
file th Windows kernel just checks that flag and if set to 'Console' 
immediately creates console *before* the main() of your programm 
is called. So even if you put: ShowWindow(console, SW_HIDE); as the 
first command in your app you'll always see the console window for 
a while, which is not so nice ;)
BrianH:
28-Oct-2010
Unnamed modules (that stay unnamed) don't get listed in the module 
list. Instead, they get converted to private modules and get imported 
directly into the target context (system/contexts/user, or the context 
of the module that is requesting the import with its Needs header). 
Unlike regular private modules, if you import them again they aren't 
reused - you get a fresh module every time. This can be a useful 
property at times, so we kept it. We have done a great deal to make 
unnamed modules useful, and as a side effect even preferred in some 
cases.
GiuseppeC:
29-Oct-2010
Now Modules are here. A central repository is going to be created. 
Then GUI will be completed.

A question: what's next for REBOL ? Datatypes ? Will we go out of 
alpha then ?
GiuseppeC:
30-Oct-2010
There is still a lot of work haead. It will take 1 and half year...
GiuseppeC:
30-Oct-2010
Actually what is stopping me from using REBOL3 is the lack of GUI 
and SQLite support but I have them in REBOL2 and I'll continue using 
it.

In REBOL3 I am only a spectator. I do not complain on the time it 
gets to be complete. I do not need the very last feature. I am passionate 
about the work you are doing on it. It is very hard.  It is nice 
to see you, genius, at work.
BrianH:
30-Oct-2010
Finally implemented http://curecode.org/rebol3/ticket.rsp?id=637
thanks to a bugfix in alpha 108.
Kaj:
30-Oct-2010
My dreamed feature is to have a release, instead of a not-for-distribution 
- which effectively doesn't exist
Andreas:
1-Nov-2010
The question is what a script writer should do.
Carl:
1-Nov-2010
The example script you gave is valid: for what you've written, I 
consider there to be a bug.
Andreas:
1-Nov-2010
I need a reliable way to QUIT with a return value from a script. 
But I do not know how this script is called.
Henrik:
1-Nov-2010
A friend of mine is asking about support for IPV6 addresses in REBOL 
3. he figured that REBOL 3 would have to support 128-bit numbers. 
I told him that there might be a separate datatype for it, but would 
it possible or would there a different way?
Henrik:
1-Nov-2010
Andreas, coincidentally, he owns and actively uses a VAX :-)
Gregg:
1-Nov-2010
Do I recall correctly that there was a reason tuple! values couldn't 
be extended to 16 slots? I don't know that it's a great idea to map 
IPv6 addresses to them, or the feasibility of adding an ipv6! type. 
A utype! may be good enough, but I don't know how those are going 
to work either.
BrianH:
1-Nov-2010
If we go all out for IPv6 integration then we can do a utype or even 
a built-in type with syntax (utypes won't have literal syntax). But 
we don't need to do that to get IPv6 support; we can get that now 
using the existing datatypes and some functions to work on the data, 
in theory.
BrianH:
1-Nov-2010
No, I meant utypes. That utype! datatype is short for user-defined 
datatypes, a planned feature (for R3.1). But literal syntax for utypes 
is *not* planned.
BrianH:
1-Nov-2010
Yes, utypes are a bit vaporware right now. But we've given the concept 
a great deal of thought, and their constraints are known already.
Steeve:
1-Nov-2010
Sure, but you sound like a good culprit :-)
Steeve:
1-Nov-2010
just a joke Brian
BrianH:
2-Nov-2010
Btw, as of alpha 108, bug#885 has upgraded itself to a potential 
crash bug, though it is partially fixed in other ways. See here for 
details: http://www.curecode.org/rebol3/ticket.rsp?id=885
BrianH:
2-Nov-2010
I'll add a ticket for the FIND-ALL bug (it's minor and only affects 
erroneous code).
Ladislav:
2-Nov-2010
Do I recall correctly that there was a reason tuple! values couldn't 
be extended to 16 slots?
 - yes
Sunanda:
2-Nov-2010
Is the safe R3 way to execute a script to use:
   do load %script-name
rather than R2's way:
   do %script-name
?


The reason I ask is the different behaviours I see here (I'd expect 
them both to print a 1)....
    n: 1 try [do %test-script.r ] print n
    n: 1 try [do load %test-script.r ] print n

....where test-script.r is these two lines:
    rebol []
    0 / 0
Carl:
2-Nov-2010
If you need a 16 slot tuple, you're using the wrong datatype.
Carl:
2-Nov-2010
Sunanda, yes... a bug we know about.
Pekr:
2-Nov-2010
What about suggested names to FOR-ALL? Not important, but there were 
some suggestions in related tickets (and blog) ... e.g. FORFOUND 
(sounds a bit weird, so maybe FORFIND)? :-)
Gregg:
2-Nov-2010
The question on tuples was related to IPv6 addresses. Just thinking 
about how the 128 bits might map into a type and syntax.
BrianH:
2-Nov-2010
Having a different datatype for IPv6 addresses would pay off in practice 
- the networking code would be more efficient. Even if that other 
type is binary!, you would get better efficiency as long as it isn't 
tuple.
BrianH:
2-Nov-2010
And that doesn't even get into the syntax issues: IPv6 syntax is 
really different, not the same as dotted. A different type would 
allow different syntax. But that syntax is really specific, only 
used for that one thing, and not necessarily a very common thing 
at that (do you tend to type out IPv6 addresses, or the domain names 
that refer to them?). It's not like tuples, that get used outside 
of the networking realm. It really might not be bad to just use strings 
for the IPv6 syntax, and binaries for the decoded values. We don't 
have to wait for syntax changes to get started. And once we get something 
running, the syntax changes would be easier to justify :)
Sunanda:
2-Nov-2010
They are quite a complex data structure, or can be.


Perhaps a first step would be for someone to write a parse rule to 
identify/vaidate IPv6 strings and, optionally, translate them to 
a normative form.


Link to someone who has made  a stab at a BNF defintion for  IPv6, 
and then produced a regex:

   http://crisp.tweakblogs.net/blog/2031/ipv6-validation-%28and-caveats%29.html
Maxim:
2-Nov-2010
funny how all of his problems seem to disapear when we look at it 
with a parse mindset  :-)
Maxim:
2-Nov-2010
but even the BNF is something I can use almost directly in parse 
and its easy.   now trying to use that in regexp or a loop/conditionals 
driven function ... yeah... mental.
Gregg:
3-Nov-2010
It's a mechanical translation of the ABNF, with some rules reordered 
for PARSE.
Kaj:
3-Nov-2010
That must be pretty slow if you use it for a complete interpreter. 
And you would still need some REBOL level binding to use Java classes
BrianH:
3-Nov-2010
We could probably make a !REBOL3 Proposals group, but expect a lot 
of overlap with the other R3 groups :)
AdrianS:
3-Nov-2010
Petr, Java the language has lost a lot of its shine, though you'd 
be surprised how widespread it still is in lots of companies. The 
thing is that the JVM is still a great platform to target and there 
are languages like Clojure and Scala which compile to this VM and 
their rapidly rising popularity will keep the JVM around for a long 
time to come. Remember, by riding on the JVM you instantly cover 
a whole bunch of platforms at once.
GiuseppeC:
3-Nov-2010
Pekr, I think you are dreaming like I am.

The idea is really nice. Having REBOL onto JVM or onto .NET using 
DLR would be really a dream.
nve:
6-Nov-2010
I think there are 2 ways : make a Jebol like Jython or make REBOL 
work on a JVM like Groovy or Scala. 

Jebol why not but I think there is no professionnal need behind. 
Because REBOL is very lightweight.

But make REBOL work on JVM  is very interesting because in that way 
REBOL could work on any device that has a JVM.

For the futur of REBOL, make it work on Mobile Phone, Tablet PC and 
WebOS is really important !
Sunanda:
9-Nov-2010
Can a couple of people check this bug on non-Windows platforms, please?
   http://www.curecode.org/rebol3/ticket.rsp?id=1753
BrianH:
9-Nov-2010
Looks like a MOLD problem, not a TANGENT problem.
BrianH:
9-Nov-2010
Right. But it's only a problem when it is displayed or molded (regular 
display calls MOLD).
GiuseppeC:
9-Nov-2010
I have a question.

Somwhere, between Rebol Wiki and BLOG appeared an article about OBJECT 
creation and what is copied and what is shared.
Do you remember the exact position ?
Robert:
11-Nov-2010
Excuses

 is the total wrong word and interpretation. We had this topic over-and-over 
 again: A lot say "Rebol is bad because it's not open-source.", well 
 I want to ask: "How many of you have contributed to the parts that 
 you can work on now?"
BrianH:
11-Nov-2010
My list of what needs to be fixed/done before we can consider beta, 
in CureCure tickets: #539 (likely as definitional return), #851, 
#1509, #1515, #1518, #1519, #1520, #1742, #1743, maybe #1744, #1758, 
#1759. Plus all the PROTECT bugs. There isn't a single one of those 
that isn't more important than tasking or a new codec model.
BrianH:
11-Nov-2010
And #1521 (which is a side-effect of #1509 getting fixed).
Ladislav:
14-Nov-2010
This one is a poll question everyone should not have trouble to answer. 
In R2, the USE function initialized the local values to #[unset!] 
for better user protection. In R3 (implementation quirk) the local 
USE variables are initialized to #[none!]. Which alternative do you 
prefer?
Henrik:
14-Nov-2010
I think it should be the same, as if you were to use those values 
local to a function. Aren't they set to #[none] there too?
Henrik:
14-Nov-2010
I sometimes have a tendency to write code like:

use [blah] [...body...]

and later move that code to:

func [/local blah] [...body...]

and it would be nice not to have to change the body.
Ladislav:
14-Nov-2010
thanks, leaving the score as is, but making a note for myself
Ladislav:
14-Nov-2010
Which means, that a variable being intitialized to #[unset!] behaves 
like being "uninitialized"
Anton:
14-Nov-2010
I have a slight preference for unset!, but the consistency argument 
overpowers it.
Ladislav:
14-Nov-2010
Which means, if I understood you well, that your favourite behaviour 
is:

    use [a] [type? get/any 'a] ; == unset!

as well as

    do has [a] [type? get/any 'a] ; == unset!

, the current behaviour

    use [a] [type? get/any 'a] ; == none!

and

    do has [a] [type? get/any 'a] ; == none!

being the second best only?

and

type?
Anton:
14-Nov-2010
... Yes... but, if on a scale of 0 to 100, where 0 is unset! is my 
exclusive favourite and 100 is none! is my exclusive favourite, then 
my preference is about 49, with an uncertainty of ±10.
So I don't think my vote should count for much. :)
BrianH:
14-Nov-2010
+1 for R3's USE. Uninitialized variables aren't really as much of 
a problem when:
- They are declared right there where you can see them.

- They are initialized to a known value that you can rely on or test 
for.
Sunanda:
14-Nov-2010
Is this simply a variant of known existing issues; and, if so, is 
it what R3 intends?

    if all [return none][print "I was printed"]
        R3: ==I was printed
        R2: == ** Throw Error: Return or exit not in function

Ditto with BREAK, EXIT
BrianH:
14-Nov-2010
Crap, that affects IF too? I'll write up a ticket.
Sunanda:
14-Nov-2010
Ah, there will _always_ be a top 12.
Kaj:
14-Nov-2010
Just a joke, because the talk here is awfully mathematic, while REBOL 
is based more on English
Ladislav:
14-Nov-2010
On the other hand, I am not sure, whether it is a good idea to allow 
empty VARS block in LET - that looks like a user error to me.
BrianH:
14-Nov-2010
Empty vars or values blocks, like all of the other assignment-related 
characteristics of LET, serves the same purpose that they do in SET. 
Remember, a lot of the time LET will be used on data, not just inline 
words and values. Sometimes you want to screen for #[unset!], because 
being screened for is the whole point to that datatype, so setting 
it should be an option like it is with SET. Other times the words 
will be collected from the body, such as with COLLECT-WORDS/set. 
It is not necessarily an error if there are no words - it depends 
on the programmer's intention.
BrianH:
14-Nov-2010
Doing a block with set-words set to a local context and initialized 
to none: let collect-words/set block none block. Still correct if 
there are no set-words.
Ladislav:
15-Nov-2010
My note to the "rehashed #[unset!] argument": I like the "The whole 
point of #[unset!] is to trigger errors" formulation. Nevertheless, 
it is broken in a big way by USE and function contexts. Only any-object 
contexts adhere to this convention now, so it is an error to write.:

context [
    print a
    a: 1
]

, while a corresponding

use [a] [
    print a
    a: 1
]

would be an error in R2, but not in R3 anymore, while

do has [a] [
    print a
    a: 1
]

was not an error even in R2.


Therefore,  "The whole point of #[unset!] is to trigger errors" is 
true, but, as demonstrated, the #[unset!] value is sneakingly losing 
its point to the extent, that it is becoming negligible. BTW, this 
is one more "arms race", which a protection measure is losing when 
confronted with the freedom of a programmer to write code he likes 
to write. The previous victim of this race in the datatype space 
seems to be the #[none!] value (at least to me).


I do not object, since due to the changes the #[unset!] value is 
becoming more of an annoyance, than a useful bug protection. And, 
there are other benefits, like increased compatibility between USE 
and functions, exactly as the discussion revealed, as well as the 
fact, that the protection was never as useful as it was planned to 
be.
BrianH:
15-Nov-2010
I suppose you would consider the unbound variable errors to be the 
next round of the arms race though. It is getting to be a tiresome 
metaphor :(
Ladislav:
15-Nov-2010
Maybe I surprise you, but not. The reason why is, the unbound variables 
are not a "new datatype to enforce something", they are an existing 
datatype used for a reasonable purpose, and not starting a new round 
of "war" introducing some GET/WHATEVER.
Ladislav:
15-Nov-2010
But, being at it, there is one annoyance I perceive:


1) the variables bound to a function context don't cease to exist 
even when the function is not running
2) code like:
    f: func [/a]['a]
    block: [a]
    bind block f

do not work, while I can do such a bind on my own without needing 
any permission:
    change block f
So, this is clearly just an annoyance, and not a useful feature.
Maxim:
15-Nov-2010
+1 for consistency, as long as functions keep their implicit initialization 
to none.  


to me this is a feature, one which I have relied on in all my REBOLing.
BrianH:
15-Nov-2010
About the annoyance, that is a side effect of two things combined:

- Starting with R2 we got direct binding, rather than dynamic binding, 
for a 30X speedup IIRC.

- Starting with R3 we got stack-relative contexts for functions, 
for security, task safety and better recursion safety.


You can't have the words in functions lose their bindings once the 
function returns because they will need those bindings the next time 
the function is called, and you can't rebind because definitional 
binding depends on the order of binding operations. So instead the 
context becomes invalid. It's an annoyance, sure, but it is more 
of an understandable side effect of some *extremely* useful features.
BrianH:
15-Nov-2010
Is it critical that they get syntax? It looks really ambiguous with 
tuple syntax. It looks like a user-defined datatype would help here, 
as they can do math with the actions but won't get syntax.
BrianH:
15-Nov-2010
Be loaded in literal form by LOAD. That is the only advantage of 
a datatype! over a utype!.
BrianH:
15-Nov-2010
The same could be done with IPv6 addresses. But both of those could 
have all of their support functions implemented in a module with 
regular functions and commands in it and you would have the same 
functionality now, before utypes start working.
GrahamC:
15-Nov-2010
Here's a possible example of use.  Carl could be assigned an oid, 
and then he could sub assign an oid from his root to Andreas.  Andreas 
can now uniquely identify each of his builds with an oid as can Carl 
with no overlap.  We can tell from the tree where they lie.
BrianH:
15-Nov-2010
So, sounds like a good idea for a community utility module :)
54201 / 6460812345...541542[543] 544545...643644645646647