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

World: r3wp

[Core] Discuss core issues

Maxim
13-Jun-2009
[14006]
yes, especially since we can reduce on demand as we are send args 
 : -)
Ladislav
13-Jun-2009
[14007]
BTW, (shameless plug) I am using INCLUDE instead of DO from the console 
when doing scripts, since I have an extensive INCLUDE-PATH, so I 
don't have to write the directory of the script, just its name
Janko
13-Jun-2009
[14008]
hm.. that is usefull .. now I am copying my common library files 
around , then I could have them all in one location
Ladislav
13-Jun-2009
[14009x4]
not necessary at all ;-)
(my user.r first does %include.r, that is the most frequently used 
script here)
Max prefers his Slim, I know
BTW, Max: how old is the newest Slim version?
Maxim
13-Jun-2009
[14013x2]
very ;-)  I fixed a little issue with interdependant libraries last 
month, but a part from that it has remained the same for years.
slim is practically the same as module in philosophy, and in many 
areas the same functionaly too.
Ladislav
13-Jun-2009
[14015]
yes, I remember our discussion about it
Maxim
13-Jun-2009
[14016x2]
I use slim and prebol together within the sdk, it works very well. 
 I should use %include.r though, its much better and would solve 
a few little complexities I have with using the prerebol.r
when I get to working on the linking within distro-bot, I'll use 
%include.r instead of prebol.r... I also want to integreate %run.r 
from rebol.org into it.
Ladislav
13-Jun-2009
[14018]
it is quite surprising for me, that Carl is not a fan of the PREBOL 
approach, taking into account, that he invented it. I had a version 
of INCLUDE before PREBOL came and adapted it to the PREBOL standard 
afterwards
Maxim
13-Jun-2009
[14019]
Carl's mind is too dynamic for static linking.
Ladislav
13-Jun-2009
[14020]
...but in REBOL nothing is static
Maxim
13-Jun-2009
[14021]
prebol is... you have to build your script before executing it.... 
which is why I prefer %include.r
Ladislav
13-Jun-2009
[14022]
aha, that is what you mean
Maxim
13-Jun-2009
[14023]
and slim, which has the same dynamic and static linking capabilities.
Ladislav
13-Jun-2009
[14024]
...but INCLUDE (in essence) is just a combination of PREBOL and DO, 
so nothing really new
Maxim
13-Jun-2009
[14025]
IMHO Carl should use %include.r in the next releases of sdk (R2 or 
R3).
Ladislav
13-Jun-2009
[14026x2]
Not invented here
 may be a problem...
...but I will try to convince him
Maxim
13-Jun-2009
[14028]
yes Carl does seem to have that trait... which many of us share. 
 ;-)
Ladislav
13-Jun-2009
[14029]
(that is why we use REBOL ;-) - to  be able to do everything on our 
own
Maxim
13-Jun-2009
[14030]
use the angle that is actually simpler to use than prebol... cause 
it really is.
Ladislav
13-Jun-2009
[14031]
should write that to the discussion page
Maxim
13-Jun-2009
[14032x3]
I do think that Carl is starting to open up to other people's ideas. 
 most of the bad decisions in R1 & R2 where not of Carl's design... 
so that usually makes one weary.
but now that he has a group of like-minded people, changes are much 
lower that we don't think in the same lines.
changes = chances
Henrik
13-Jun-2009
[14035]
I think he will accept ideas as long as they are well tested and 
the code is up to his standards.
Maxim
13-Jun-2009
[14036]
but the philosphy must also align.  and that is usually where he 
is harder to convince.
Henrik
13-Jun-2009
[14037]
it helps if you know his philosophies or if he tells you what he 
wants.
Maxim
13-Jun-2009
[14038]
yes indeed.
Pekr
15-Jun-2009
[14039]
How do I bind foreach word value to external block? I want to do 
this:

rec: [name last-name adress streeet]

foreach rec data [print [name last-name address street]]

I need to somehow "bind it" :-)
Ladislav
15-Jun-2009
[14040]
you forgot to mention how your data look
BrianH
15-Jun-2009
[14041x3]
Doesn't matter.
foreach :rec data [print [name last-name address street]]
Use a get-word.
Pekr
15-Jun-2009
[14044x2]
ah ;-)
I need to evaluate our phone provider CSV data for one year. And 
they mix cell phone and normal phone on the invoice, so I need to 
go down and download details. And as it is pread across per month 
files, I want to do simple counter in REBOL. With read/lines ... 
and subsequent foreach line data [ ... parse line "," .....] REBOL 
is really cool to do such data manipulations ...
Henrik
16-Jun-2009
[14046]
If you make an object with images, blocks and a lot of data and then 
set the object to none, and the data inside is not referenced elsewhere, 
will everything else inside be properly deallocated?
PeterWood
16-Jun-2009
[14047]
Perhaps not - 

>> stats
== 67680368

>> a: make object! [

[    b: make block!  1000000

[    c: make block!  1000000

[    d: make block!  1000000

[    e: make block!  1000000

[    f: make block!  1000000

[    ]

>> stats

== 167685587
>> a: none

== none
>> stats

== 167686079

>> recycle

>> stats

== 167685527
Henrik
16-Jun-2009
[14048]
interesting, thanks
PeterWood
16-Jun-2009
[14049x2]
Which is probably to be expected as the values referenced by the 
fields in the blocks have not been de-referenced. Looks as though 
you'll have to do it yourself:

>> stats
== 167686051

>> a: make object! [                       
[    b: make block!  1000000                 

[    c: make block!  1000000                 

[    d: make block!  1000000                 

[    e: make block!  1000000                 

[    f: make block!  1000000                 

[    ]
>> stats

== 267690882
>> a/b: none

== none
>> a/c: none

== none
>> a/d: none

== none
>> a/e: none

== none

>> a/f: none

== none

>> recycle

>> stats
== 167687087
I'm sure there's a better way but this should work:


>> foreach word remove first a [do join "a/" [word ": none"]]  ;; 
provided your object is called a
Henrik
16-Jun-2009
[14051]
this is very interesting. I think there should be an easier way to 
do this.
Steeve
16-Jun-2009
[14052x3]
in R3, 
>>set a none
in R2, that should work
>> set bind first a a none
hmm...
>>set a none
It works for both...
BrianH
16-Jun-2009
[14055]
Peter, here's some R3 fun. To do the initial block allocation in 
R3:
    a: make object! 5
    foreach w [b c d e f] [extend a w make block! 1000000]
or maybe this way:
    a: object [b: c: d: e: f:]
    foreach w a [set w make block! 1000000]
To clear your way:
    foreach w a [set w none]
Of course Steeve's method works too, and better :)