slyphon has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
slyphon has joined #jruby
slyphon_ has joined #jruby
slyphon has quit [Ping timeout: 248 seconds]
deobalds has joined #jruby
deobalds has quit [Quit: Computer has gone to sleep.]
slyphon_ has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<headius>
chrisarcand: -d may help with LoadError swallowing internal exceptions
<headius>
we have gone back and forth about that...I feel like it would be better to propagate the exception but anyone rescuing LoadError as a catch-all would stop working
<headius>
I should try to get cause dumping hooked up and put it in there
<headius>
I wonder why MRI doesn't dump cause for the bubbled-out exception
claudiuinberlin has joined #jruby
shellac has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
claudiuinberlin has quit [Ping timeout: 264 seconds]
drbobbeaty has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
Puffball has quit [Quit: Puffball]
_whitelogger has joined #jruby
rdubya has joined #jruby
shellac has joined #jruby
Puffball has joined #jruby
drbobbeaty has joined #jruby
rdubya has quit [Quit: Leaving.]
shellac has quit [Ping timeout: 276 seconds]
<nirvdrum>
lopex: Were you able to resolve those CR issues?
slyphon has joined #jruby
shellac has joined #jruby
shellac has quit [Ping timeout: 240 seconds]
slyphon_ has joined #jruby
slyphon has quit [Ping timeout: 264 seconds]
<lopex>
nirvdrum: yeah, code range needs to be cleared
<lopex>
nirvdrum: though cant see where mri does that
<nirvdrum>
I didn't attempt to trace their code.
<lopex>
nirvdrum: for me it's an unintentional
<lopex>
looking at their code
<lopex>
nirvdrum: can you follow it with me for a bit ?
<lopex>
since they just str_enc_copy(target, source);
<lopex>
or they fixed that by commenting that cr copy :P
<nirvdrum>
Wouldn't the `rb_str_new_with_class` call start with an empty code range?
<lopex>
yes, that what I'm talking about
<lopex>
we dont have that intermediate string instance in our code
<nirvdrum>
Okay.
<nirvdrum>
Perhaps I misunderstood. You don't think they intended to clear the code range?
<lopex>
nirvdrum: so, reassuring they dont loose it when casing is ineffective
<lopex>
nirvdrum: they should, it's just not implicit
<nirvdrum>
I think you mean explicit.
<lopex>
er, yes :
<lopex>
:P
<nirvdrum>
It does implicitly clear the code range, as far as I can tell.
<lopex>
doing to many thins at once
<lopex>
nirvdrum: in youre case if you wanted to walk the string then you could update cr on the fly
slyphon_ has quit [Remote host closed the connection]
<nirvdrum>
Same here. I'm fighting with autoload at the moment.
edmz_ has joined #jruby
<nirvdrum>
lopex: We allocate a new rope if there's a modification. And ropes never have CR_UNKNOWN is our implementation.
slyphon has joined #jruby
edmz has quit [Read error: Connection reset by peer]
edmz_ is now known as edmz
<lopex>
nirvdrum: yes, but if it changes you could update early on
<lopex>
nirvdrum: like sharp s downcase
<lopex>
er
<lopex>
nirvdrum: I gather you dont rescan after case mapping right ?
<nirvdrum>
Our whole approach is just different than yours. Mostly because I didn't want to deal with this linked list of buffers thing. So we case map by walking each character.
<lopex>
nirvdrum: so for youre case we could split enc.caseMap to another method so you wouldnt enter the loop every time
<nirvdrum>
I'm basically making the gambit that most case mapping operations result in the same number of bytes for the new character and thus don't require a new allocation.
<lopex>
yes, I remember
<lopex>
nirvdrum: now, from what I can see mri looses cr even if the string is not changed
<nirvdrum>
A different method in jcodings for this approach would indeed be nicer. But I didn't want to burden you with that.
<nirvdrum>
I believe that's correct.
<nirvdrum>
We used to, too, FWIW.
<lopex>
so I guess I'll just clear cr conditionally based on that flag
<nirvdrum>
I'm still using that old `modify` flag, I think. But you could get it from `flagP` I believe.
<nirvdrum>
We special-case ASCII-only, too.
<nirvdrum>
I don't recall if you're doing that or not.
<lopex>
yes we do
<lopex>
and dont copy if so
<nirvdrum>
Cool.
<lopex>
nirvdrum: do you run this enc/test_case_comprehensive.rb thing ?
<lopex>
also there this enc/test_regex_casefold.rb too which both use case fold data from mri repo
<nirvdrum>
No. I didn't know about them.
<lopex>
actually those might be original unicode ones
<nirvdrum>
I added the specs mostly based on that doc you sent me from Martin.
<lopex>
nirvdrum: they fail silently when those are not available
<lopex>
nirvdrum: look how behemothly test_case_comprehensive.rb is
slyphon_ has joined #jruby
<lopex>
there generate some tests there
slyphon has quit [Ping timeout: 260 seconds]
subbu is now known as subbu|dinner
xardion has quit [Remote host closed the connection]
shellac has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
subbu|dinner is now known as subbu
claudiuinberlin has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<GitHub187>
[jruby] lopex closed issue #5218: The coderange is not properly recomputed after upcase/downcase/swapcase https://git.io/vh6NK
<headius>
w00t
<headius>
nirvdrum: thanks for the specs
<headius>
are y'all just not using MRI tests at this point?
<headius>
they're a pain to work with I know
<nirvdrum>
We run them, but we have a fair number of them commented out.
<nirvdrum>
Or excluded, rather.
<nirvdrum>
I think in an ideal world, all the MRI tests would be expressed as specs instead. I didn't port any MRI tests. These were just cases I thought should be handled.
<nirvdrum>
The existing specs for case mapping were severely lacking.
talvik has joined #jruby
talvik has quit [Client Quit]
jrafanie has joined #jruby
<ChrisBr>
headius: -d did the trick :) My implementation was correct but I disabled resizing for > 128 elements which crashed the loading (without stacktrace)