World: r3wp
[RAMBO] The REBOL bug and enhancement database
older newer | first last |
Maxim 18-Jan-2007 [2502] | or rather specific meanings. |
Pekr 23-Jan-2007 [2503] | today I found small bug - well, did not know it is a bug, Cyphre just confirmed it - pre 2.7 Rebol versions require callback!, whereas 2.7 version accepts only callback, but not callback! - the bug was probably introduced with string change for 2.7 .... |
Cyphre 23-Jan-2007 [2504] | I have already posted it to Rambo. |
Ladislav 23-Jan-2007 [2505] | just looking at it - it looks, that you inadvertently used the same line twice, should I edit it for you? |
Cyphre 23-Jan-2007 [2506] | ah, my fault..please remove the #"!" in the second case, thanks ;) |
Ladislav 23-Jan-2007 [2507x2] | done |
#4227 | |
Graham 23-Jan-2007 [2509] | Is there a bug in the ftp protocol? I tried opening a different port viz 4559, but it still opens up on port 21. |
Bo 23-Jan-2007 [2510] | Well, there is _at least_ one bug in the FTP protocol. I haven't run into the one you are talking about, but I think I did solve the one that I was having a problem with (425 response from the server causing Rebol to wait infinitely). |
Graham 23-Jan-2007 [2511x3] | opening a ftp port using the scheme: 'ftp and port: 4559 still opens up port 21 according to trace/net |
Going to rambo this ... | |
Bo, I didn't see a rambo ticket for your bug, or the fix posted. | |
Bo 23-Jan-2007 [2514] | I'm still testing my fix. |
Graham 23-Jan-2007 [2515] | perhaps you could fix mine at the same time :) |
Pekr 24-Jan-2007 [2516] | Graham - is that correct to open other than 21 port? Maybe so, but I never saw that ... |
Graham 24-Jan-2007 [2517] | Yes, I've installed Hylafax which uses a modifed ftp protocol on port 4559. |
sqlab 25-Jan-2007 [2518] | I used read ftp://user:[pass-:-host]:22 and read ftp://user:[pass-:-host]:4567 in fresh instances and it worked |
Graham 25-Jan-2007 [2519x2] | That's interesting .. it works that way, but not using [ scheme: 'ftp port: 4559 host: 192.168.1.252 user: "user" pass: "password ] |
>> read ftp://Graham:[password-:-192-:-168-:-1-:-252]:4559 URL Parse: Graham password 192.168.1.252 4559 none none Net-log: ["Opening" "tcp" "for" "FTP"] Net-log: [none ["220" "230"]] Net-log: {220 localhost.localdomain server (HylaFAX (tm) Version 4.2.1) ready.} which is working, but trying this .. >> port: open [ scheme: 'ftp port: 4559 host: 192.168.1.252 user: "Graham" pass: "password" ] Net-log: ["Opening" "tcp" "for" "ftp"] Net-log: [none ["220" "230"]] Net-log: "220 Microsoft FTP Service" Net-log: [["USER" port/user] "331"] Net-log: "331 Password required for Graham." Net-log: [["PASS" port/pass] "230"] doesn't because the MS ftp server at port 21 is answering instead | |
Gabriele 26-Jan-2007 [2521x2] | ah... graham, now i see the problem... it's port-id, not port! |
port-id: 4559 | |
Graham 26-Jan-2007 [2523x3] | port id ?? |
oh dear .. | |
would you delete my ticket then? | |
Gabriele 26-Jan-2007 [2526x2] | done |
:) | |
Graham 26-Jan-2007 [2528] | thanks |
Ladislav 26-Jan-2007 [2529x3] | User poll: |
a: charset "" b: charset "" same? a b ; == true | |
do you find it a bug or a feature? | |
Anton 26-Jan-2007 [2532] | mmm... more of a bug, I think. |
Rebolek 26-Jan-2007 [2533] | I think bug, when other datatypes throw false. |
Sunanda 26-Jan-2007 [2534] | Looks like a bug in same -- it comes up even if you add a copy a: charset "" b: charset "" same? a b ; == true But insert something into one of them, and the same is now false. |
Ladislav 26-Jan-2007 [2535] | thanks, I personally tend to think it *is* a bug, because they are only equal |
Sunanda 26-Jan-2007 [2536] | Nice catch, by the way! That should have been: a: copy charset "" b: copy charset "" same? a b ; == true |
Ingo 26-Jan-2007 [2537] | of course, it fits integer! handling ... >> a: 1 == 1 >> b: 1 == 1 >> same? a b == true |
Ladislav 26-Jan-2007 [2538] | why do you think copy is necessary? |
Sunanda 26-Jan-2007 [2539] | i was just testimg how far the (at the time alleged) bug went |
Volker 26-Jan-2007 [2540x3] | in the middle. Tried a bit. Same charsets are compacted. |
means the are same, even when created by mutiple inserts. Makes sense to do that and share an internal pointer. | |
Thought that wouldbe hard to fix. If it can be fixed easily its a bug. | |
Sunanda 26-Jan-2007 [2543] | Hmm, Volker -- maybe it is subtle undocumented behaviour: a: charset "" b: charset "" same? a b == true insert a 1 same? a b == false insert b 1 same? a b == true |
Pekr 26-Jan-2007 [2544] | I would vote for a bug too. Although charset uses the same source "unbound string", result of 'charset evaluation is stored to the same memory location, and referenced by two words? |
Volker 26-Jan-2007 [2545x2] | >> a: b: charset [#"a" #"b"] c: insert charset [#"a"] #"b" probe same? a c insert a #"c" ? a ? b ? c true A is a bitset of value: make bitset! #{ 0000000000000000000000000E00000000000000000000000000000000000000 } B is a bitset of value: make bitset! #{ 0000000000000000000000000E00000000000000000000000000000000000000 } C is a bitset of value: make bitset! #{ 0000000000000000000000000600000000000000000000000000000000000000 } |
Bug. Fix: a and b share something which then has a pointer to the bitset. The pointer to that something should be compared, notthe pointer to the string. | |
Pekr 26-Jan-2007 [2547] | uh, even when using copy charset "" still 'same? returns 'true? Now I am lost .... |
Ladislav 26-Jan-2007 [2548x2] | I show you something from my article: a: b: charset [#"a" #"b"] c: insert charset [#"a"] #"b identical?: func [ {are the values identical?} a [any-type!] b [any-type!] /local var var2 ] [ ; compare types if not-equal? type? get/any 'a type? get/any 'b [return false] ; there is only one #[unset!] value unless value? 'a [return true] ; errors can be disarmed and compared afterwards if error? :a [a: disarm :a b: disarm :b] ; we need to be transitive for decimals and money if any [decimal? :a money? :a] [ return found? all [same? a b zero? a - b] ] ; we need to be transitive for dates if date? :a [return found? all [same? a b same? a/time b/time]] ; we need to be able to compare even the closed ports if port? :a [return equal? reduce [a] reduce [b]] ; our function has to work for structs if struct? :a [return same? third a third b] ; we can have something stronger than SAME? for bitsets if bitset? :a [ unless same? a b [return false] if 0 = length? a [return true] unless equal? var: find a 0 find b 0 [return false] either var [ remove/part a 0 var2: find b 0 insert a 0 ] [ insert a 0 var2: find b 0 remove/part a 0 ] return var <> var2 ] same? :a :b ] identical? a b ; == true identical? a c ; == false |
identical? a copy a ; == false | |
Pekr 26-Jan-2007 [2550] | the question probably is, what we consider being "identical"? Is 5 in memory slot 1234 identical to 5 in memory slot 4321? It could be. But I can also imagine that 'same serves the purpose of finding out, if two words reference the same slot? |
Ladislav 26-Jan-2007 [2551] | your question is answered in http://www.fm.tul.cz/~ladislav/rebol/identity.html |
older newer | first last |