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

World: r3wp

[!REBOL3-OLD1]

Henrik
9-Apr-2009
[13012]
I've been using hash! for a bit, but there are too few advantages 
for it to be directly useful. The main advantage is supposed to be 
speed, but usually when you need to do real work with a hash! you 
need to convert it to a block!, which slows the whole script down 
more than if you just used block! correctly from the beginning.
Sunanda
9-Apr-2009
[13013]
It's about 2% of one public corpus of REBOL scripts. That's indicative 
of the general usage of hash!
shadwolf
9-Apr-2009
[13014]
I mean rebol exists since 10 years now and having only 25 scripts 
using hash! just proove that's not used
Henrik
9-Apr-2009
[13015]
shadwolf, it could be, because it's not well documented. I didn't 
learn of its existance until after a few years of REBOL usage.
shadwolf
9-Apr-2009
[13016]
Henrik it could be because it's not doing what ppl used to code their 
own hash table in C expects from a hash! table  any way it's GONE 
farewell :P
Sunanda
9-Apr-2009
[13017]
No, it proves it is used. It is seen in about 2% of REBOL scripts 
on REBOL.org.
If 2% = 0% then we can prove that  no one ever uses REBOL.
shadwolf
9-Apr-2009
[13018]
what you want a farewell party for hash! with champaign and etc.. 
?
Janko
9-Apr-2009
[13019]
but my understanding is that hash functions different than hashtables 
or dictionaries in other languages? and map will work that way.. 
or did you need the specific way how hash worked? If I used hash 
I used in as a hashtable (because I wasn't aware of the difference) 
and I could have gotten nasty errors because of it
shadwolf
9-Apr-2009
[13020]
earing from the few in teh God's secret map! is much better even 
if it's not fully done. I'm a morron so the only thing left to me 
is to believe them  ^^
PeterWood
9-Apr-2009
[13021]
I used hash! to build a long list of de-duplicated words. It was 
by far the fastest way in R2.


I was pleasantly surprised when I found that using map! and storing 
every associated value as #[none] was quicker in R3 than hash! in 
R2. It just seems wrong to be wasting all that memory storing all 
those unnecessary ones.
Henrik
9-Apr-2009
[13022]
PeterWood, I get the crash you had just now.
PeterWood
9-Apr-2009
[13023]
I hope it will be that fast once all the bugs are fixed.
shadwolf
9-Apr-2009
[13024]
http://shadwolf.free.fr/port-http.r
PeterWood
9-Apr-2009
[13025]
ones -> nones
shadwolf
9-Apr-2009
[13026]
http://shadwolf.free.fr/port-http.r->> that's teh 3365 script
PeterWood
9-Apr-2009
[13027x2]
ERREUR 404 - Document non trouvŽ
Don't worry, we all have the script. It is the error in the Rebol 
chat program we are discussing.
shadwolf
9-Apr-2009
[13029]
http://shadwolf.free.fr/prot-http.r
PeterWood
9-Apr-2009
[13030]
:-)
Henrik
9-Apr-2009
[13031]
hmm... here's a fun one: decompress read http://www.rebol.com/r3/chat.r

Gobbles up memory and just hangs.
shadwolf
9-Apr-2009
[13032]
i want to post in server admin to remove shadw0lf  user how do i 
do it ?
Henrik
9-Apr-2009
[13033]
I guess this is due to the new method for COMPRESS to allocate memory 
prior to decompressing, but if that is possible, then it's simple 
to DoS a rebol server that relies on compressed input, just by sending 
a malformed binary.
shadwolf
9-Apr-2009
[13034]
i'm in server admin group
Henrik
9-Apr-2009
[13035]
shadwolf, not sure that is possible.
shadwolf
9-Apr-2009
[13036]
ok never mind
Pekr
9-Apr-2009
[13037]
Henrik - under Windows I get "Not enough memory" message. But the 
script is 24KB. There has to be serious bug in there, no? :-)
Henrik
9-Apr-2009
[13038x2]
Pekr, I remember Carl mentioning this a long time ago: DECOMPRESS 
reads first how long the item to decompress is, then allocates memory 
and then attempts decompression, so it's a deliberate design choice 
for memory limited embedded devices.
So if you have a 2 kb compressed binary but the header of that binary 
states that its 10 GB in size, you will get that error.
Graham
9-Apr-2009
[13040]
I used hash! for my Bayes based spam filtering program.
Pekr
9-Apr-2009
[13041]
Wasn't map supposed to be a hash! replacement plus/minus few differences 
in behaviour?
Henrik
9-Apr-2009
[13042]
I think I have a fix for the guest N bug in chat.
Sunanda
9-Apr-2009
[13043x2]
Carl recommending hash! here:
http://www.rebol.com/article/0020.html
Second thoughts for R3 here:
http://www.rebol.net/r3blogs/0052.html
And some refinements to the redesign here:
http://www.rebol.net/r3blogs/0137.html
shadwolf
9-Apr-2009
[13045x9]
look the what's wrong part of the articles you gave sunanda that's 
clear
2. You cannot use keys directly as indices.
damn !! for a hash table using keys as indice isn't it the what is 
it all about thing ?
1. All values are keys, even the content values. ... stupid since 
they can't be indice
you want me to continue puttinf  dot on i and bars on T  sunanda 
or you got why hash! is meaningless ?
3. You cannot add new values using the key value assignment form. 
->>  too bad ... so i can't do cycling tables using hash inidice 
wich is lesson 3  for  C  programming any  decent university
You have no control over case-sensitivity for hashes.
So, what do we want to do about it? We are at a point where we need 
to finalize the hash datatype for REBOL 3.0. It is possible to make 
some change
and since doing some change in an incomplete things is worst than 
redoing it from scratch then it's better to forget about it and create 
map!
Pekr
9-Apr-2009
[13054x3]
here's some map! doc - http://rebol.net/wiki/Map- isn't it replacement 
for hash!?
btw - we have 'map function. This is imo confusing. We sometimes 
use shortcuts, e.g. for make object! we have 'context. Will not users 
expect 'map being a shortcut for make map! ?
btw - it was extremly difficult to find above Map link. The DocBase 
structure is completly twisted.
shadwolf
9-Apr-2009
[13057x5]
can't be more clear on the matter
A map is an name-to-value associative array. It uses hashing for 
high performance. Sometimes this kind of association is also referred 
to as a dictionary. 


The map datatype replaces the R2 hash datatype. The motivation for 
this replacement was that some people in the user community felt 
the design of the older hash datatype was confusing, since it hashed 
both keys and their data. The new map datatype just hashes keys. 
Data is not hashed.
when do you need hash ... hum when you deal with a database to make 
a cashing system to not have to use the database access on any request 
for example
or when you want to do a similar thing like a dictionnary (for search 
engine design are widely derived from hash table concept)
or more simply to be able to travel through a large number of complexe 
data