Warum versucht Split (''), (zu) schlau zu sein?

Ich habe gerade das folgende merkwürdige Verhalten mit entdecktString#split:

"a\tb c\nd".split
=> ["a", "b", "c", "d"]

"a\tb c\nd".split(' ')
=> ["a", "b", "c", "d"]

"a\tb c\nd".split(/ /)
=> ["a\tb", "c\nd"]

Die Quelle (string.c ab 2.0.0) ist über 200 Zeilen lang und enthält eine Passage wie diese:

/* L 5909 */
else if (rb_enc_asciicompat(enc2) == 1) {
    if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ' '){
        split_type = awk;
    }
}

Später im Code für dieawk split type, das eigentliche Argument wird nicht mehr verwendet und verhält sich genauso wie ein plainsplit.

Hat jemand das Gefühl, dass dies irgendwie kaputt ist?Gibt es dafür gute Gründe?Kommt so etwas öfter vor, als die meisten Leute in Ruby denken?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage