r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Red] Red language group

Oldes
26-Jan-2012
[4519]
Do you want to use ?? in RED as well? Because as Pekr said, it will 
just cause confusion... I have enough problems not to write TRACE 
instead of PRINT :)
Kaj
26-Jan-2012
[4520x2]
There are other ways of looking at it. For example, code is read 
most of the time rather than written. PRINT-LINE is very clear for 
reading
Another view is that a very small audience of REBOL programmers is 
used to PRIN. The big audience for Red is people that don't know 
or even dislike REBOL
Pekr
26-Jan-2012
[4522]
Kaj - yes, most of ppl are used to print, which will almost not be 
used, as it does not print a newline - that is also another point 
of view at it :-)
Kaj
26-Jan-2012
[4523]
By most of people, you mean REBOL people
Pekr
26-Jan-2012
[4524]
yes, because most Red/System users, are going to be also a Red users. 
Red/System is not for C ppl, that is an illusion imo. Why would anyone 
C oriented would like to use Red/System, if he/she would not also 
want to use Red later? :-)
Ladislav
26-Jan-2012
[4525]
REBOL itself is incompatible between R2 and R3
 - counterexamples:


- my INCLUDE is a complicated script that is working in both environments, 
i.e., the compatibility surely isn't "incidental" in your own words

- the core-tests suite is working in both environments as well, containing 
more than 3000 interpreter tests
Kaj
26-Jan-2012
[4526]
Do you mean that's proof that R2 and R3 are compatible?
Ladislav
26-Jan-2012
[4527]
What else should be?
Pekr
26-Jan-2012
[4528]
Well, now I restrain ... I am most probably not going to be a fluent 
Red/System user, so I don't want to influence such a decision, if 
other ppl feel differently about the topic ...
Kaj
26-Jan-2012
[4529x2]
I'll have to refer you to Boolean algebra
Also, I didn't say "incidental" about R2 and R3, I said it about 
Red and REBOL
Ladislav
26-Jan-2012
[4531]
Well, I can describe more compatibility examples like Brian's backward 
compatibility library, but I think it is absolutely unnecessary having 
mentioned the common interpreter core tests. However, I am curious 
how is that related to Boolean algebra?
Kaj
26-Jan-2012
[4532x2]
Your statement seems to be that R2 and R3 are compatible. Examples 
cannot prove that. Counterexample falsifying that: for my CMS of 
towards 4000 lines, although I wrote it in basic R2 to avoid porting 
issues, I had to make extensive changes throughout and a number of 
alternative functions and wrappers to get it to work on R3
The other way around, there are web sites I can build correctly on 
R3 but not correctly on R2
Andreas
26-Jan-2012
[4534x2]
To put my two cents in: I disliked PRIN the first time I saw it, 
and I still dislike it everytime I have to use it, 10+ years later.
I also find myself using PRIN regularly (i.e. much more than 1% of 
the time I _don't_ want to print a newline right away).
Dockimbel
26-Jan-2012
[4536]
Pekr: I fully agree with the 80% (or 99%) usage argument, the issue 
is not there, it is in finding a suitable name for "print-without-LF" 
if PRINT is used for printing with LF. Last time we tried that, we 
didn't find any good solution, so we ended up with a single PRINT 
command to cover all use cases.
GrahamC
26-Jan-2012
[4537x3]
the name has to be similar but suggest it is somewhat less .. so 
how about -print ?
or, print-
I suspect that is why the t is missing for 'prin ... but then you 
have to know what it stands for
Kaj
26-Jan-2012
[4540x2]
I've renamed the print-string in the C library binding to make way 
for the Red/System one
Sorry, print-line
Dockimbel
27-Jan-2012
[4542]
Thanks Kaj, I forgot it was defined also in C binding.
Oldes
27-Jan-2012
[4543]
Is there any doc how to write a test case? Or should I just hack 
it somehow?
Dockimbel
27-Jan-2012
[4544x2]
The testing framework done by Peter WA Wood is documented here: http://static.red-lang.org/red-system-quick-test.html
You can also browse inside %red/red-system/tests/source/ to see how 
tests are done. Basically:

- language unit tests go in %tests/source/units/<feature_name>-test.reds

- compilation passing tests and compilation error tests go in %tests/source/compiler/<feature_name>-test.reds
PeterWood
27-Jan-2012
[4546x2]
There are two additional assertions in the float-partial branch that 
you might find useful Oldes. They aren't in the documentation yet. 
They are:


--assertF~= which takes three float!s, it compares the first two 
to be equal within a tolerance supplied as a third argument. The 
tolerance is both an absolute and relative tolerance. So, a tolerance 
of 0.01 would return true if the two floats were equal + or - minus 
0.01 or within 1 percent.

I have used a tolerance of 1e-12 in testing.
The other one is --assertF32~= which is the equivalent for float32! 
datatypes. I have used a tolerance of 1E-6 with this assertion.
Oldes
27-Jan-2012
[4548x2]
I would like to write tests for enumerations: https://github.com/dockimbel/Red/pull/201
(still not finished - I must add detection if values does not exists 
already)
BrianH
27-Jan-2012
[4550]
Kaj, compatibility can't practically be measured as a whole with 
Boolean algebra. Try fuzzy logic math :)
Evgeniy Philippov
27-Jan-2012
[4551]
BrianH: that's not only fuzzy logic. That's ALL kinds of logic, not 
only fuzzy IMNSHO.
PeterWood
27-Jan-2012
[4552]
Oldes: I've emailed a skeleton test file for enum to you.
Oldes
27-Jan-2012
[4553x3]
what does backtrack ?
Also in the test doc is mentioned script run-test.r, which is not 
in repository, how to run just one test case?
(backtrack - to move back source code input cursor (PC) so it looks 
better in the NEAR field:)
Dockimbel
27-Jan-2012
[4556x2]
'backtrack function just re-position the source code cursor to point 
to the right symbol or beginning of an expression when an error is 
raised.
run-test.r: it was there until recently, I guess Peter removed it 
as we don't use it often. I guess Peter could bring it back.
Oldes
27-Jan-2012
[4558]
do we want to allow declarations like:
	integer!: func[a [integer!]][ a ]
Dockimbel
27-Jan-2012
[4559]
Ah, old question :-) There's a ticket about that opened by Rudolf...let 
me find it...
PeterWood
27-Jan-2012
[4560]
I removed run-test.r as it was becoming difficult to get working 
once we needed to have tests not only in the red-system/tests dir. 
(I now use a script in another language which seems to be more flexible 
in it's file path handling.)

I've emailed a copy of the run-test.r to Oldes.


I'll take another look at getting run-test.r to run a test from any 
directory. If I can I'll restore it, if not I'll chane the docs.
Dockimbel
28-Jan-2012
[4561]
Oldes: can't find the ticket anymore, but in a nutshell, datatypes 
should be unaffected by such declaration, they are not part of the 
same namespace as variables, so to answer your question, it is allowed 
but not recommended (there are warnings against that in the specification 
document).
Oldes
28-Jan-2012
[4562]
I know it's allowed, the question is, if it's not better to disallow 
this, or at least throw warning
Dockimbel
28-Jan-2012
[4563x4]
A warning could be added easily, the issue is that it would then 
make all datatypes names reserved words that would need to be added 
there: http://static.red-lang.org/red-system-specs.html#section-18
Sorry, I meant "An error..."
A warning might be a better solution.
And would avoid to add them in the "keywords list".
Oldes
28-Jan-2012
[4567]
should this:
	#enum test! [foo: 3]
	f: func[foo [c-string!]][print foo]
	f "bar"
throw a declaration error or print "bar"?
Dockimbel
28-Jan-2012
[4568]
Declaration error.