<enebo>
lopex: my branch so far is largely zero sum. I have not pushed the bytelists through into the runtime at all
<enebo>
lopex: they are made back into strings
<enebo>
lopex: but there are two ideas we talked about (one of which I think you wanted): 1) ByteList is the common type for all ID lookup (ID from MRI conceptually) 2) We actually just use RubySymbol instances everywhere
<nirvdrum>
enebo: I'd have to double-check, but I think your Symbols suffer from the same incorrect encoding issue ours does.
<enebo>
nirvdrum: this is what started all of this
<nirvdrum>
Ahh.
<enebo>
nirvdrum: so I have a branch which pushes bytelist all the way up to IRBuilder
<enebo>
9.2 or 10 we will make a big change in how we identify stuff but the real reason is to finally completely fix our bytes being wrong issue
<enebo>
nirvdrum: one reason it is a big change is Java integration and Java native extensions will need to pass in proper byte/symbol for accessing methods/constants as opposed to j.l.String
<enebo>
nirvdrum: in most cases the string will be good enough if you are living in a 7-bit or UTF-8 world
<nirvdrum>
You're going to require an exact match?
<nirvdrum>
Ruby allows compatible encodings to match.
<enebo>
nirvdrum: well it will be the same
<enebo>
nirvdrum: so long as they pass equality test
<enebo>
nirvdrum: object identity will not be used
<nirvdrum>
Okay. It sounds like you have a handle on it.
<enebo>
nirvdrum: most of our object identity stuff was done in Java 1.4 days when it made a significant difference
vtunka_ has quit [Quit: Leaving]
<enebo>
nirvdrum: in todays JVM it makes zero warm perf difference and not measurable even when cold
<nirvdrum>
enebo: Well, this was less about object identity. It's that ByteList#equals doesn't take its encoding into account. And so if you have an entry in the symbol table, it's always used regardless of the encoding of the lookup object.
<enebo>
nirvdrum: I was just speaking to notion that if it is compatible bytes it will still match
<nirvdrum>
Okay.
<enebo>
nirvdrum: vs us intern'ing strings and using object identity
<nirvdrum>
So, you're removing the explicit interning from the lexer then?
kares has quit [Quit: ...]
donV has quit [Quit: donV]
<enebo>
nirvdrum: yeah
<enebo>
nirvdrum: it was expensive too
Aethenelle has joined #jruby
hobodave has joined #jruby
camlow325 has joined #jruby
bbrowning_away has quit [Quit: Leaving]
hobodave has quit [Quit: Computer has gone to sleep.]
hobodave has joined #jruby
hobodave_ has joined #jruby
hobodave has quit [Ping timeout: 264 seconds]
kares has joined #jruby
camlow325 has quit [Quit: WeeChat 1.5]
bbrowning has joined #jruby
kares has quit [Quit: ...]
bbrowning has quit [Read error: Connection reset by peer]
subbu is now known as subbu|lunch
camlow325 has joined #jruby
camlow325 has quit [Client Quit]
kares has joined #jruby
camlow325 has joined #jruby
donV has joined #jruby
hobodave has joined #jruby
hobodave_ has quit [Ping timeout: 255 seconds]
subbu|lunch is now known as subbu
donV has quit [Quit: donV]
hobodave has quit [Quit: Computer has gone to sleep.]
hobodave has joined #jruby
hobodave has quit [Quit: Computer has gone to sleep.]