TimToady | .tell nine I have a minor gripe: the way .precompile handles .err, it always hangs if I put out more than a buffer of debugging info to stderr from inside the compiler | 02:00 | |
hmm, ENOBOT? | |||
IOninja | .tell nine irclog.perlgeek.de/perl6-dev/2017-...i_14061211 | 02:01 | |
err | 02:02 | ||
wtf, bot! | |||
I think I forgot to detach :P | |||
.tell nine irclog.perlgeek.de/perl6-dev/2017-...i_14061211 | |||
yoleaux2 | IOninja: I'll pass your message to nine. | ||
TimToady | .tell jnthn the %?LANG mechanism is rather bogus, insofar as it can't actually tell you the current language, only the language after the last add_categorical, which retroactively redefines %?LANG for earlier parts of the block | 02:26 | |
yoleaux2 | TimToady: I'll pass your message to jnthn. | ||
Geth | rakudo: MasterDuke17++ created pull request #1017: Support smartmatching char Ranges |
04:50 | |
masak | ...but retroactively redefining %?LANG sounds like one of those "tree falls in the woods" things -- since we're never going to parse the earlier parts of the blog again anyway | 05:52 | |
block* | 06:02 | ||
TimToady | EVAL wants to know the current language... | 06:47 | |
masak | oh! | 07:13 | |
something feels... odd about that | |||
EVAL is a runtime notion, and it's asking for a "current state" of the parser at that point | |||
don't know how exactly to express what I feel is odd about that | 07:14 | ||
TimToady | it's almost like a...macro... | 07:15 | |
TimToady wanders off to read a book in a language that doesn't require %*LANG to parse it... | 07:22 | ||
nine | . | 07:41 | |
yoleaux2 | 02:02Z <IOninja> nine: irclog.perlgeek.de/perl6-dev/2017-...i_14061211 | ||
nine | TimToady: in my defense, I wasn't the one who added capturing of STDERR and I patched it out a 100 times because it makes debugging precomp issues really hard. Unfortunately it is really useful for end users. | 07:43 | |
TimToady: but I guess there is also room for improvement. | |||
I'd love to get rid of those extra processes entirely. | 07:44 | ||
samcv | ok so current collation test results are back | 07:55 | |
Failed 15590 tests of 194761 | |||
so we're failing 8% of tests | |||
i'm guessing most of them are caused by us only checking per cp and not checking for series of cp's that have a collation value assigned to them | 08:04 | ||
going to add a MVM unicode property MVM_COLLATION_NO_QC, and will be set true for codepoints which are the first cp in series that has a different weight | 08:14 | ||
so `sub foo ( $thingy) { }` is basically like `sub foo ( Any $thingy) ` right? | 08:24 | ||
since it won't work if you try and pass Mu through | |||
arnsholt | Yeah | 08:25 | |
samcv | reasoning? | 08:26 | |
arnsholt | Mu is the root of the type system, but Any is the root of the subtree for "normal" objects | ||
samcv | so it _is_ typed | ||
hah | |||
arnsholt | I can't remember the details around the reasoning here, but shenanigans involving junctions (which descend from Mu and not Any) are involved IIRC | 08:27 | |
And yeah, I'm pretty sure omitting the type means that the compiler puts in Any for you | 08:28 | ||
samcv | but that's still faster than doing typed objects like Str? | ||
arnsholt | Hmm? | ||
samcv | isn't it faster to not put any type in the signature? | 08:30 | |
arnsholt | Not sure, TBH | 08:39 | |
Geth | rakudo/nom: 07a9fbe9b9 | (Daniel Green)++ | src/core/Range.pm Support smartmatching char Ranges Before `say ("a" .. "c") ~~ ("a" .. "c")` would give the error: `Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏a' (indicated by ⏏)` |
08:43 | |
rakudo/nom: 0d8624d425 | (Samantha McVey)++ | src/core/Range.pm Merge pull request #1017 from MasterDuke17/support_smartmatching_char_Ranges Support smartmatching char Ranges |
|||
samcv | damn " " ~~ /<:space> ugh. i'm making a script that rebuilds the unicode database until i rebreak space again | 08:50 | |
well fix it in perl 6, but it's actually broken | |||
but results it in fixing it | |||
good. i it ran like 4 times until it rebroke/fixed it :) | 08:52 | ||
jnthn | samcv: fwiw, putting a "boring" type (Str, Int, SomeClass, etc.) into a signature shouldn't be any slower than Any being there. It's only things like subtypes that will be slower | 10:04 | |
samcv | thanks jnthn :) | 10:08 | |
did you see the talk about that filename having issues? | |||
thinking again it could be valid utf-8 because, the browser gets the filename from the URL right? | |||
jnthn | No, but saw the github issue | ||
I think not a bug | |||
We decode filenames using utf8-c8 | |||
samcv | even if other things handle it fine? | 10:09 | |
it causes issues with interoperating with other software | |||
jnthn | When they are either not UTF-8 or not NFC we use synthetics to ensure that the original byte sequence can be recreated | 10:10 | |
samcv | ok. it's not NFC | ||
maybe then | |||
jnthn | If you open the file, all works out, I presume? | 10:11 | |
Because use encode it using utf8-c8 on the way back out... | |||
*becuase we | |||
samcv | but you cannot access it by name then | ||
jnthn | "by name"? | 10:12 | |
samcv | "Symphony No. 1 in C Minor, Op. 68 - IV. Adagio - PiuxCCx80 andante - Allegro non troppo, ma con brio.mp3 != ("Symphony No. 1 in C Minor, Op. 68 - IV. Adagio - Più andante - Allegro non troppo, ma con brio.mp3".IO "perl.pl".IO "new".IO "find_bad_files.p6".IO "file with spaces".IO "file with ' in it".IO) | ||
jnthn | Things like open should be turning it back into the exact same byte sequence before passing it off down to the file system | ||
samcv | yeah they do, but you cannot try and open the file | ||
if some other program passes the filename to perl 6 it won't open the file | |||
jnthn | Passes how, exactly? | 10:13 | |
samcv | not sure how they were doing it in #perl6 | ||
they were processing some database of the files | 10:14 | ||
jnthn | OK, :enc<utf8-c8> when opening the file | ||
samcv | and then it was unable to open the file as written in the text file | ||
is there a way to get from that to any type of object like a Uni object or somethnig idk | 10:15 | ||
some way to get the actual text out of it | |||
jnthn | What does "the actual text" mean? | ||
samcv | the codepoints of the actual filename | ||
jnthn | Filenames aren't stored in codepoints | 10:16 | |
samcv | there should be a way to get the codepoints of the filename | ||
jnthn | That's the whole point of this. | ||
samcv | exactly | ||
jnthn | So why are you asking to do it? :) | ||
samcv | that's why i'm saying. is there a way to get to the codepoints | ||
because something not in NFC gets these Private Use characters in it | 10:17 | ||
but i want to get from the filename to how it's stored in non-NFC form | |||
jnthn | $that.encode('utf8-c8') | ||
Gets you the original bytes | |||
samcv | don't i want to decode maybe? | ||
jnthn | No, decode is bytes to string | ||
samcv | yeah but what if you want the codepoints of those bytes? and want it to be in whatever form it's there | 10:18 | |
is there a way? | |||
let's say we want to rename the file using perl 6 to be in NFC form | 10:19 | ||
how would somebody do that | |||
because i see this being a problem for people where it spits out there Private use characters, and the answer should usually be, you should rename the file to be in NFC form | |||
jnthn | $that.encode('utf8-c8').encode('utf8') | ||
d'oh | |||
$that.encode('utf8-c8').decode('utf8') | 10:20 | ||
samcv | perfect :) | ||
jnthn | This whole area is kinda horrible and "can't win", sadly | ||
samcv | heh | ||
but that seems like the right way™ is to rename the file using ^ | |||
and then everything is good again | 10:21 | ||
:) | |||
jnthn | Most people just want to use Str for filenames, environment variables, etc. | ||
And the world is kinda converging-ish on average kinda on utf8 | |||
But you can't rely on any of those things being utf8 | |||
They're just a load of bytes | |||
samcv | yeah | 10:22 | |
if only everything was always in NFC form always and forever :) | |||
jnthn | Indeed :) | ||
samcv | maybe i should email archive.org there's an issue with that file | 10:23 | |
since that's where they downloaded it from | |||
jnthn | Doesn't OSX like to store things in NFD? | ||
samcv | uhm | 10:24 | |
i thought they stored it in NFC? | |||
no clue though | |||
does it store it in NFD and then tell the user the NFC? | |||
jnthn | Dunno, and maybe it depends on filesystem and stuff | 10:25 | |
samcv | OS X's HFS+ filesystem requires that all filenames be stored in the UTF-8 representation of their fully decomposed form. In an HFS+ filename, "ä" MUST be encoded as 0x61cc88, and "ö" MUST be encoded as 0x6fcc88. | ||
apparently | |||
jnthn | Wow :) | ||
samcv | so on os x everything looks like crap? | ||
jnthn | So they even enforce it rather than prefer it | ||
samcv | or maybe it allows you to access the files using NFC | ||
i'm guessing that's the case | 10:26 | ||
jnthn | Maybe | ||
samcv | that if you ask for filename XYZ in NFC, then it grabs the file | ||
can you run os x virtual machines nowdays? | |||
jnthn | That'd be entirley possible given they've declared what canonical is | ||
I...don't think so. Not legally, surely :) | |||
moritz actually likes the idea of forcing a composition | |||
samcv: it's quite hard, due to licensing | |||
samcv | lameeeeeeeeeeeeeeeeee | 10:27 | |
samcv sets up travis build | |||
then just gonna print out some perl 6 things with this weird file and see what happens | |||
moritz | last I looked, Azure's Linux VMs were cheaper than Windows VMs | ||
either licensing, or Microsoft realized that Linux has a lower TCO :-) | |||
samcv | licening from themself :P | 10:28 | |
moritz | yes, but different department, probably :-) | ||
samcv | now that i added in MVM_COLLATION_QC i will integrate it into my test of the unicode collation suite tests | ||
and *hopefully* those are the only ones we are failing | 10:29 | ||
u: fingers crossed | |||
unicodable6 | samcv, U+1F91E HAND WITH INDEX AND MIDDLE FINGERS CROSSED [So] (🤞) | ||
samcv | m: '🤞'.uniprops('Age') | 10:30 | |
camelia | ( no output ) | ||
samcv | m: '🤞'.uniprops('Age').say | ||
camelia | rakudo-moar 0d8624: OUTPUT«(9.0)» | ||
samcv | nice! | ||
jnthn, utf8-c8 is always the same private use characters substituted right? so if i saved the filenames it would always be the same unlike synthetics? | 10:36 | ||
jnthn | samcv: Yes, we always use that same private use char | ||
samcv | very nice :) | ||
jnthn | samcv: One other thing we might consider is if stdout/stderr should default to utf8-c8, not utf8 | ||
samcv: So we reproduce the original bytes automatically on output | 10:37 | ||
samcv | hm | ||
that could be annoying for people cause if they save the strings they get gobbly gook | |||
jnthn | Well, yeah, it puts off the point at which you need to actually make a decision about what you want. | 10:38 | |
Or hides it for longer | |||
samcv | i don't really want them to be in utf8-c8 tbh :\ would make my job harder | 10:39 | |
jnthn | *nod* | 10:40 | |
samcv | we probably need a section in the docs about this | 10:41 | |
if we don't already | |||
jnthn | Yeah, we should | ||
samcv | we have a Unicode page so it could go there, and some link also be to other places that are relevant like slurp and such | ||
jnthn | nine: So, htmlify.p6 in p6doc tries to use .precompile in PrecompilationRepository in parallel. | 10:51 | |
nine: This goes...very badly | |||
nine: For example, $!lock-count in CompUnit::PrecompilationStore::File is not in any way protected, so they race on it | 10:52 | ||
So we die with "unlock when we're not locked!" or so at times | |||
But looking a level up in the .precompile method itself, it does: | 10:53 | ||
my %ENV := %*ENV; | |||
And then mutates %ENV | |||
And there's races in there too, it seems | |||
If we make a private copy of the environment we might well get further... | 10:55 | ||
And I guess I can put some locking in around the lock file recursion count | |||
nine | jnthn: oh, sorry. I actually expected concurrency issues to surface much earlier and then forgot about that part. | ||
jnthn | Yeah, well, I guess my real question here is: if I patch those two up, will I just be looking at the next problem? :) | 10:56 | |
Looking at the code, %!dir-cache seems like the next probelamtic part | 10:57 | ||
Perhaps more importantly: given the current design, do you believe there's a way to put in appropriate concurrency control that would still allow for the precompilation of differnet docs to take place concurrently? | 10:58 | ||
That is, the subprocesses to run concurrently? | |||
And then we can just lock while dealing with the outcome of that? | |||
nine | jnthn: replacing %*ENV dynamically with a modified clone would even make the code cleaner as we can get rid of the cleanup in addition to make it safer. | 10:59 | |
jnthn | Yeah, I was wondering if I was missing something there :) | ||
But if we can just do that bit of cleanup, well, nice :) | |||
nine | I don't see anything keeping us from having concurrent precompilation. | 11:01 | |
jnthn | OK | 11:02 | |
Then I'll see if I can fix things up some :) | |||
nine | It already copes with separate programs accessing the same precomp store in parallel (including updating the files), so the rest is just protecting the caches and counters. | ||
jnthn | Cool | ||
That's what I was hoping :) | |||
nine | jnthn: I can also have a look at it in the evening if you'd like to spend your time elsewhere. | ||
jnthn | What is the lock file to protect? | ||
I already started fiddling with the ENV cleanup so guess I can do that bit :) | 11:03 | ||
nine | There is no lock file anymore. Atomic replacement of the precomp file is the way we handle parallelism. | ||
jnthn | $!lock //= $.prefix.child('.lock').open(:create, :rw); | ||
$!lock.lock(2) if $!lock-count == 0; | |||
nine | wait a second | 11:04 | |
jnthn | That's in CompUnit::PrecompilationStore::File | ||
The $!lock-count is one thing htmlify trips over, fwiw | |||
nine | Ah, yes, we don't use a lock file for reading, but still for writing | ||
We could get rid of that easily but that'd be wasteful as all parallel processes would precompile and overwrite the other's results | 11:05 | ||
It could do with being more fined grained though. One lock file per precomp file would allow for parallel precompilation of different modules. | 11:06 | ||
jnthn | There's no way for us to get into deadlocks with our own processes over this, I presume? :) | ||
Yeah, though if we make it fine-grained then we still need to be really very careful that we don't end up vulnerable to lock acquisition order deadlocks... | 11:07 | ||
nine | jnthn: I guess only if we had circular dependencies | ||
jnthn | Hm, true | ||
Modules really should form a DAG | |||
nine | I prefer them that way :) | ||
jnthn | Kinda required by one-pass parsing :) | ||
nine | And by our precompilation in general as for circles you'd have to be able to precompile a file without its dependencies present. | 11:08 | |
jnthn | OK, so I think you're saying we're safe :) | 11:09 | |
nine | indeed :) | 11:11 | |
arnsholt | jnthn, samcv: I'm pretty sure OS X normalizes file names coming in, so you should be able to request a file by any equivalent name and get the right one back out | 11:24 | |
samcv | yeah that's what i thought | 11:25 | |
wish linux did that | |||
arnsholt | Which makes git and other software sad | ||
samcv | heh | ||
how so? | |||
because you can't have two filenames which are NFC equivilant to each other? | |||
in the same folder ;) | |||
arnsholt | Because it puts in a file with one name, and then when it goes to look for it, it's not there | 11:26 | |
Because the filename it gets back is a different byte sequence from the one used when it was stored | |||
There's a Torvalds rant on how stupid (he thinks) this is | |||
samcv | well the real solution is store all filenames in NFC form | ||
always and forever! | |||
arnsholt | The real solution would be for all software to handle Unicode properly =) | 11:27 | |
samcv | and then save files only in NFC form? | ||
arnsholt | And then save filenames as Unicode strings and compare them fucking correctly. At which point the exact normalization used (or not) is immaterial =) | ||
samcv | can't git just do unicode properly or something :P | 11:28 | |
and not allow filenames that have the same NFC form? | 11:29 | ||
and something something | |||
i just updated my linux like 2 days ago and already a new one is out | 11:30 | ||
arnsholt | git is proud Unix software and disregards any conception of strings other than just a bunch of bytes | 11:31 | |
samcv | heh | ||
#bytelivesmatter | |||
arnsholt | And apparently anyone who thinks filenames should be anything *other* than a pile of bytes is an idiot | ||
samcv | even ones which aren't proper unicode! | ||
arnsholt | *snort* | ||
samcv | heh | ||
;) | 11:32 | ||
arnsholt | Same problem as on OS X happens on NTFS, apparently | ||
samcv | yeah | ||
let me have my ugly pile of bytes dammit! | |||
i want to save my filenames in utf-16! | |||
SHIFT-JIS even! | 11:33 | ||
jnthn | EBCDIC or bust! | ||
samcv | looks like we fail one collation test comparing 0x6C 0xB7 0x21,0x6C 0xB7 0x21 | 11:34 | |
heh. i'm sure this test must be refering to codepoints with collation quickcheck = False. must be a trick | |||
since they're all the same except one cp | |||
m: Uni.new( 0x6C, 0xB7, 0x21,0x6C).Str.say | 11:35 | ||
camelia | rakudo-moar 0d8624: OUTPUT«l·!l» | ||
samcv | m: Uni.new( 0x6C, 0xB7, 0x21,0x6C).Str.uninames.say | ||
camelia | rakudo-moar 0d8624: OUTPUT«(LATIN SMALL LETTER L MIDDLE DOT EXCLAMATION MARK LATIN SMALL LETTER L)» | ||
samcv | haha | ||
hilarious | |||
evalable6, say '!.uniprop('MVM_COLLATION_QC') | 11:42 | ||
evalable6 | samcv, Full output: gist.github.com/8d4fa2acfb028cc54e...1599dd37eb | 11:43 | |
samcv, rakudo-moar 0d8624d: OUTPUT«(exit code 1) 04===SORRY!04=== Error while compiling /tmp/OMG23IRAZGTwo terms i…» | |||
samcv | evalable6, say '!'.uniprop('MVM_COLLATION_QC') | ||
evalable6 | samcv, rakudo-moar 0d8624d: OUTPUT«0» | ||
nine | samcv: thing is, POSIX doesn't tell you in which encoding file names actually are. So assuming it's UTF-8 just because your locale is UTF-8 is kinda bold already. | 11:48 | |
samcv | heh | ||
true | 11:49 | ||
sanity does | |||
this one person says On the other hand, the default filesystem on Mac OS X (HFS+) enforces all filenames to be valid UTF-16 in a variant of NFD. | 11:50 | ||
is this true? it's utf-16? (wtf?) | |||
Geth | rakudo/nom: bab1c027c4 | (Jonathan Worthington)++ | src/core/CompUnit/PrecompilationRepository.pm Work on private copy of environment in precompile. Avoids data races and over-sharing of the %*ENV hash, and allows us to eliminate cleanup logic. |
11:51 | |
rakudo/nom: accc156603 | (Jonathan Worthington)++ | src/core/CompUnit/PrecompilationStore/File.pm Avoid race in CompUnit::PrecompilationStore::File. Allow duplicate work if that should ever happen, and just bind the result. |
|||
rakudo/nom: 39c517e6f1 | (Jonathan Worthington)++ | src/core/CompUnit/PrecompilationStore/File.pm Lock in CompUnit::PrecompilationStore::File. Avoids various data races that would break parallel precompilation, as attempted in htmlify.p6 from p6doc. Seems to make things a good bit better. |
|||
samcv | yay jnthn | ||
jnthn | 11 runs in a row of the [Coke]++ htmlify bug golf branch without a crash | 11:52 | |
samcv | woo! | ||
masak | \o/ | ||
samcv | 🎉 | ||
jnthn | Got it running in a loop; guess I'll leave it while I have lunch :) | ||
timotimo | "a variant of NFD" o_O | 12:01 | |
jnthn | lunch & | 12:02 | |
samcv | timotimo, because they couldn't just make it NFC :P | 12:04 | |
catbert17 | jnthn: do you see how much memory a htmlify.p6 run uses? | ||
samcv | that would be too simple! | ||
timotimo | they could also not just make it NFD? | ||
catbert17: probably multiple gigabytes :) | |||
samcv | timotimo, also why use NFD when NFC is better | 12:05 | |
timotimo | *shrug* | ||
samcv | maybe they think NFD will be more stable? | ||
catbert17 | timotimo: :) | ||
ilmari | developer.apple.com/legacy/library...Subtleties | ||
samcv | could read unicode.org/reports/tr15/#Stability...ized_Forms | ||
ilmari | (linked from the wikipedia page on HFS+) | 12:06 | |
samcv | tbh if they store it on filesystem as NFD they should tell all programs the NFC form only | 12:07 | |
or something | |||
orrr just store it as NFC | |||
and call it a day. and if the file doesn't exist, then try and NFC it and then recheck if that file exists | 12:08 | ||
if so hand back said file | |||
timotimo | sounds like something wine would have to do :) | 12:09 | |
samcv | heh | 12:16 | |
i still can't run htmlify.p6 at least | 12:20 | ||
complains about trying to get the result about a broken promise | |||
timotimo | you mean with --parallel (or what it's called)? | ||
samcv | ↑ | ||
timotimo | if the golfed version runs a hundred times in a row, it's time to roll out some new golf lawn | 12:21 | |
samcv | that's what i was thinking :) | ||
jnthn | Yup, the htmlify golf still going strong after lunch | 12:36 | |
catbert17: Well, this golf doesn't seem to use much... | 12:38 | ||
samcv: That's what the golf gave prior to my fixes above | 12:39 | ||
ooh, it just spat out a warning though | |||
Use of uninitialized value $!checksum of type Any in string context | |||
Once in like 150 runs | 12:40 | ||
Oh, damn, there's still a race possibility in CompUnit::PrecompilationUnit::File | 12:41 | ||
Fine, it can get a lock too | |||
timotimo | jnthn: your daily test runs for moarvm.org/measurements pull new versions of perl6-bench every day, right? | 12:47 | |
arnsholt | jnthn: That's how you solve concurrency problems, innit? Lock ALL the things! | 12:48 | |
jnthn | timotimo: I think so | ||
arnsholt: Yes, except deadlocks and contention, which you solve by locking less of the things :P | 12:49 | ||
arnsholt | I'm sure those are purely academic concerns that never crop up in real life ;p | 12:50 | |
jnthn | Real academics build everything lock free, and when that's not hard enough, they go wait free too. :P | 12:51 | |
timotimo | they seem to not need any coffee | 12:52 | |
samcv | well if you get deadlocks can you not just wait longer :) and it'll eventually undeadlock | 12:53 | |
timotimo | we prefer having it unlock in the time span of a human's life | 12:54 | |
Geth | rakudo/nom: 917d473bbe | (Jonathan Worthington)++ | src/core/CompUnit/PrecompilationStore/File.pm Do locking properly in precomp store File class. Turns out that there's some races in there besides the initial one to write @!dependencies. So, use a lock. Fixes a warning that was spat out in 1 run in 100 of the htmlify.p6 golf. |
12:57 | |
jnthn | samcv: What was your invocation of the (non-golf) htmlify.p6 that you got an explosion on? | 12:58 | |
samcv | gist.github.com/a1981762c62bc708bd...ffd5c86030 | 12:59 | |
timotimo | that's the result, not the invocation :P | 13:00 | |
samcv | oh | ||
vtrue | 13:01 | ||
jnthn | samcv: Is that on Rakudo HEAD? (or HEAD~1 now?) | ||
samcv | do you want original exception? | ||
yeah | |||
timotimo | i think he wants the commandline you ran? | ||
samcv | or the exception reported first | ||
oh | |||
htmlify.p6 --parallel=2 | |||
time to try htmlify.p6 --parallel=1.5 | 13:02 | ||
catbert17 | jnthn: try a full build, time permitting, memory usage is too high for us poor 32-bit people | ||
timotimo | "an =SUBTITLE"? :P | ||
jnthn | It doesn't have an grammar :P | ||
samcv | where are you getting this an =SUBTITLE from | 13:03 | |
jnthn | Yay, clean spectest with my commit above | ||
jnthn shoulda waited for it to finish before pushing the button... :) | |||
samcv | gonna make install again | ||
jnthn | samcv: OK, will try running htmlify.p6 --parallel=2 in master of doc now :) | 13:04 | |
catbert17 | cool | ||
jnthn | I seem to have fixed the issues in [Coke]++'s golf at least. | ||
Which is nice in that it gave something to focus on first | |||
samcv | yep | ||
jnthn | But I'm guessing there are more issues | ||
catbert17 sitting on a java conference typing on my iPad | 13:05 | ||
jnthn | Could not find Pod::To::HTML | ||
Heh, I was writing Java yesterday | |||
I wrote my first lambda and was all like "wow, lambda in Java!" | |||
Then thigns didn't work well at all | |||
Turns out I'd compared two strings using == :P | |||
catbert17 | :-) | 13:06 | |
jnthn | Guess the lambda really made me think I was back in C# :P | ||
samcv | i guess one reason to not steal the ICU is that ICU stores strings as UTF-18 | ||
jnthn | Could not find Pod::To::HTML | ||
samcv | s/18/16 | ||
jnthn | grmbl | ||
Oh, but that's in the META.info | 13:07 | ||
Hmm, wonder if there's a way to just install a module's dependencies using any <zef panda> | |||
samcv | yeah --depsonly | 13:08 | |
in panda | |||
jnthn | ooh, thanks :) | ||
samcv | and there's a zef one too i forget which | ||
oh zef has --depsonly | |||
not sure about panda | |||
also my libreoffice won't even launch. not that i ever use it but wanted to do a spreadsheet | 13:09 | ||
gonna reboot | |||
timotimo | buh. for 1 .. hugenum { } gets the for-to-while optimization, but only in the non-void half of the tree | 13:11 | |
and then it uses the void half of the tree obviously | |||
jnthn | Huh, thought I put in a general fix for that not so long ago | 13:13 | |
Geth | rakudo/nom: a63d82aa51 | (Samantha McVey)++ | src/core/Range.pm Revert "Support smartmatching char Ranges" This reverts commit 07a9fbe9b99ec8ff5c23f9cd350db70225623b53. |
13:14 | |
jnthn | Ah, and now I need to make init-highlights etc apparently :-) | ||
timotimo | why do we have a microbenchmark that repeatedly grabs the .sigil out of a signature's first param? | ||
that means your run completed? | |||
(also, that test is bogus) | 13:15 | ||
(i mean "benchmark") | |||
jnthn | Ah, now I get a broken Promise error | 13:16 | |
So, yeah, somehting still up | |||
Always seems to die in the same place, though :) | 13:20 | ||
(Same place in the code, I mean.) | |||
timotimo | maybe the failure is a legit failure this time? | 13:21 | |
Geth | roast: c25f6cbe37 | (Samantha McVey)++ | S03-smartmatch/range-range.t Test smart matching string Range's which hold numbers and Ranges which are numbers |
13:22 | |
IOninja | samcv: moving discussion here, so others could chime in... | 13:33 | |
samcv | ok | ||
IOninja | Topic: should '0'..'9' ~~ 0..10 ? | ||
samcv, I don't really see the parallel with 1 ~~ '1' here. There's no ambiguity, since if there's an Str on the right you use Str eq and with number ==, but with Range... | 13:34 | ||
Hm | |||
samcv | well if it == then uhm | ||
IOninja | I think we should assume the comparison of the Range on the right side, same as 1 ~~ '1' vs '1' ~~ 1 | 13:35 | |
jnthn | htmlify.p6 does contain data races | ||
timotimo | the general rule of "the RHS dictates what kind of match is done" should be adhered to | ||
samcv | that sounds good | ||
IOninja | I mean, if the range on the right is numeric then use numeric comparison; if it's string then use string | ||
timotimo | not sure how exactly that influences your discussion | ||
samcv | jnthn, i thought that was the case too :) | ||
sounds good IOninja | |||
IOninja | m: say '0'..'9' ~~ 0..10 | ||
camelia | rakudo-moar a63d82: OUTPUT«True» | ||
IOninja | m: say 0..10 ~~ '0'..'9' | 13:36 | |
camelia | rakudo-moar a63d82: OUTPUT«False» | ||
IOninja | m: say '10' before '9' | ||
camelia | rakudo-moar a63d82: OUTPUT«True» | ||
IOninja | m: say '10' after '0' | ||
camelia | rakudo-moar a63d82: OUTPUT«True» | ||
IOninja | So 0..10 ~~ '0'..'9' should give True | ||
jnthn | Perl6::Documentable::Registry.add-new is called from multiple threads for example | ||
samcv | m: say 0..10 ~~ '0'..'9' | ||
camelia | rakudo-moar a63d82: OUTPUT«False» | ||
IOninja | m: say 'a'..'z' ~~ '0'..'9' | ||
camelia | rakudo-moar a63d82: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5a' (indicated by ⏏) in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
IOninja | And that should not explode. | 13:37 | |
samcv | m: say '0'..'9' ~~ 0..10 | ||
camelia | rakudo-moar a63d82: OUTPUT«True» | ||
IOninja | And 'a'..'z' ~~ 0..9 probably should not explode either and just return false since we don't generally want smartmatching to be explosive, right? | ||
m: 'a' ~~ 1 | 13:38 | ||
camelia | rakudo-moar a63d82: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5a' (indicated by ⏏) in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
IOninja | Oh, never mind. | ||
(unless that's wrong). | |||
samcv | heh | ||
IOninja | I mean, if I have $a and I have $b I kinda imagined the *smart* match would be smart enough to tell me if the thing are smartly-true without me worrying about exploding stuff | 13:39 | |
samcv | m: say 0..3 ~~ '0'..'3' | ||
camelia | rakudo-moar a63d82: OUTPUT«True» | ||
samcv | i sorta agree IOninja | 13:40 | |
Geth | roast: 99d22dcc8e | (Samantha McVey)++ | S03-smartmatch/range-range.t Add more Range ~~ Range tests |
13:42 | |
samcv | added some more tests to roast | ||
IOninja: also, should we use is-deeply on smartmatch tests? | 13:46 | ||
i mean, since `ok "foo"` would pass | |||
jnthn | Got once patch for doc already | 13:49 | |
Language lesson now; will continue investigating after that :) | |||
samcv | thank you jnthn :) | ||
[Coke]_ | jnthn++ fixing coke/bughunt | ||
DrForr | Heh, I had Romanian lessons yesterday. | 13:50 | |
jnthn | [Coke]: Thanks for the golf, it was good to have at least one of the problem areas isolated before bug hutning | ||
[Coke] | I figured I might have to re-golf once you fixed one. Let me know if that's the case. | ||
jnthn | I may need that, but for now I can find some things without golfing | 13:51 | |
bbi1h | |||
[Coke] rakudobrews an up to date rakudo to verify. | 13:52 | ||
samcv | [Coke], or you mean breaking it ;) | 14:00 | |
timotimo | he moved the goalpost | ||
Geth | roast: 43ade7b723 | (Samantha McVey)++ | S03-smartmatch/range-range.t Put RT number for bug and use is-deeply instead of ok Also align some columns while I am at it. |
14:02 | |
IOninja | samcv: personally I never use `ok` in roast and use `is` only when I'm ok with stringy comparison. Simply because many things can be `ok`: 1, True, 'a'..'b'; while with `is-deeply` you say that this operation needs to return a Bool | 14:05 | |
samcv | yeah | ||
these are old files | |||
IOninja | m: use Test; is <a b c>.Seq, <a b c> | ||
camelia | rakudo-moar a63d82: OUTPUT«ok 1 - » | ||
IOninja | That passes ^ which means one implementation can return a Seq while another returns a List. And since Seqs can only be iterated once, that means some code will work on one implementation but will explode on another, even though both pass the roast test | 14:06 | |
samcv | yeah | 14:07 | |
m: use Test; is <a b c>.Seq, "a b c" | |||
camelia | rakudo-moar a63d82: OUTPUT«ok 1 - » | ||
samcv | also this :) | ||
also there's some code here IOninja that uses eval | 14:13 | ||
because of some problem with pugs | |||
is it safe to remove that eval ;) | |||
IOninja shrugs | |||
timotimo | it should have been fudged as a skip | ||
samcv | did that exist back then | 14:14 | |
so can i do that now? | |||
timotimo | that'd probably be good, right? | ||
samcv | need to test in EVAL() since class definitions happen at compile time, | 14:15 | |
# ie before the plan is set up. | |||
also this | |||
timotimo | ah, well, that's A Thing | 14:17 | |
samcv | that works fine if i take out the eval | ||
it was, eval-lives-ok | 14:18 | ||
m: class A { method foo { return "" ~~ * } }; A.new.foo.say | 14:19 | ||
camelia | rakudo-moar a63d82: OUTPUT«{ ... }» | ||
samcv | m: say "" ~~ * | ||
camelia | rakudo-moar a63d82: OUTPUT«{ ... }» | ||
samcv | wat | ||
timotimo | haha | ||
samcv | m: say ("" ~~ *).WHAT | ||
camelia | rakudo-moar a63d82: OUTPUT«(WhateverCode)» | ||
timotimo | i don't think it's supposed to curry there | ||
samcv | heh | ||
wtf | |||
timotimo | or maybe it is? not sure about that | 14:20 | |
IOninja | Don't think so | 14:21 | |
00:29 brokenchicken it ain't currying over the ~~ | |||
00:30 TimToady nope, it's one of the exeptions | |||
irclog.perlgeek.de/perl6/2017-02-02#i_14028467 | |||
timotimo | fair enough | 14:22 | |
samcv | m: my @a = 'ā, 'b', 'o', 'ø'; | ||
camelia | rakudo-moar a63d82: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Two terms in a rowat <tmp>:1------> 3my @a = 'ā, '7⏏5b', 'o', 'ø'; expecting any of: infix infix stopper postfix statement end statement …» | ||
samcv | wat | ||
timotimo | misses a ' | 14:23 | |
after the first thingie | |||
samcv | oh. yes. | ||
m: my @a = 'ā', 'b', 'o', 'ø', 'Z','z'; @a.collate; | 14:25 | ||
camelia | rakudo-moar a63d82: OUTPUT«Use of the 'coll' operator is experimental; please 'use experimental :collation' in block <unit> at <tmp> line 1» | ||
samcv | m: use experimental :collation; my @a = 'ā', 'b', 'o', 'ø', 'Z','z'; @a.collate.say | ||
camelia | rakudo-moar a63d82: OUTPUT«(b ā o ø z Z)» | ||
timotimo | should it warn about the collate method instead of the coll operator that's called by the collate method? | 14:26 | |
samcv | interesting. looks like ā comes after b. not sure what languages use that but it's probably its own letter in alphabet | ||
meh maybe. | |||
pretty obvious what it means when it tells you to use experimental :collation | |||
[Coke] verifies that coke/bughunt seems to be working. whee. | |||
samcv | i mean would be nice if i had the experimental check inside collate method and not in coll operator | 14:27 | |
because it makes the sorting 2+ times faster | |||
maybe 4 | |||
timotimo | the experimental check does that? | 14:28 | |
samcv | yep | ||
timotimo | you could have a sub ACTUAL_COLL that doesn't have the check and coll just calls that and collate uses ACTUAL_COLL for sorting | ||
samcv | for sure | ||
and also would be much faster if it only checks $*COLLATION once | 14:29 | ||
so ACTUAL_COLL would probably accept the collation level as argument | |||
as a native int or whatever | |||
timotimo | it could perhaps set its own $*COLLATION so that it doesn't have to look far in the dyn var cache (though i hardly know anything about the dyn var cache) | ||
samcv | set its own? what? | 14:30 | |
i mean it should query the collation-level once, then use that int for the whole sort | |||
timotimo | my $*COLLATION = nqp::getdynlex('$*COLLATION') or whatever | ||
samcv | cause if the user changed it | ||
timotimo | that's fair | ||
samcv | well it only needs one value from it | ||
timotimo | oh, only one, eh? | ||
samcv | well evenually will be more but | ||
timotimo | ok | ||
samcv | will also take those as ints too | ||
and plug it into the nqp op | |||
if i have ACTUAL_COLL inside the 'coll' multi's then it'll probably just get inlined right | 14:31 | ||
timotimo | hah, give the candidate you want a named argument it requires :D | ||
samcv | what? come again | 14:32 | |
is that the best way to get it to inline it? | |||
timotimo | might work well | ||
IOninja got failures in t/spec/S03-smartmatch/range-range.t; mising TODO? gist.github.com/zoffixznet/b9ef17f...bbcd6f0306 | 14:33 | ||
Hm.. and t/spec/S17-promise/nonblocking-await.t failed during stresstest run "Bad plan. You planned 19 tests but ran 8." but works fine when I run it on its own | |||
samcv | uhm it should be todo'd | 14:34 | |
oh i see | 14:35 | ||
no wait it is todo's | 14:36 | ||
err but there's an extra one i see | |||
ok fixed | |||
Geth | roast: 3513d7f108 | (Samantha McVey)++ | 2 files Convert more to is-deeply |
||
roast: f0e5562dfc | (Samantha McVey)++ | S03-smartmatch/range-range.t Remove extra test |
|||
samcv | my kexec-prepare.sh is so nifty for using kexec to reboot without rebooting | 14:42 | |
it doesn't restart the hardware, just go to shutdown and loads the new kernel. brb gonna reboot without rebooting | |||
IOninja | .ask TimToady what's your take on 1e0/0e0 exploding (for natives we even get a "can't unbox failure" exception). With Rat.Num we follow IEEE semantics, yet with two Nums we explode; feels weird. Should we make Num/* and */Num follow IEEE and return NaN for 0/0 and +/-Inf for rest of */0? | 14:48 | |
yoleaux2 | IOninja: I'll pass your message to TimToady. | ||
jnthn back | 15:15 | ||
IOninja | :( | 15:17 | |
IOninja is getting a new boss | |||
Looks like my Perl 6 hacking time will shrink significantly | |||
timotimo | the next boss is going to hover over your desk and micromanage you all the time? | 15:18 | |
IOninja | Well, due to a chain of events, my current boss doesn't have the time to boss me, so I just do design requests from reps when they come in and hack on Perl 6 when they don't come in. And I'd guess the new boss would be more intersted in what I do here.... | 15:19 | |
timotimo | ah, ok | 15:20 | |
IOninja is reminded of a scene from Office Space | |||
timotimo | the "what do you do here" scene? | 15:21 | |
or "what is it, exactly, that you do here?" | 15:22 | ||
nine | Wouldn't it be nice to have at least a day per week for your personal projects? Oh, I work at a place that gives you that. And I'm looking for a developer. | ||
IOninja | The what is it exactly that you do here :P | 15:23 | |
nine: developer in what language? | 15:24 | ||
timotimo | any turing complete language! :P | ||
nine | IOninja: Perl with nobody getting in your way if you want to introduce Perl 6 | 15:27 | |
Well, Perl 6 is already responsible for setting up our production VMs. Sadly it hasn't made it into software development yet. | 15:28 | ||
IOninja | :) | 15:31 | |
jdv79 | cdn.quotesgram.com/img/60/92/163242...gress1.jpg | 15:37 | |
IOninja | heh | ||
timotimo | i really like that actor, the one who also plays doctor cox on scrubs | 15:38 | |
jdv79 | bob slydell? | 15:39 | |
[Coke] | John C. McGinley | ||
timotimo | coke has the right one | ||
even though in the picture it's the left one | |||
jdv79 | that' the character's name | 15:40 | |
one of "The Bobs" | |||
anyway | |||
[Coke] | jdv79, going for the deep cut, and right over my head. Whoops | 15:41 | |
timotimo | oh | 15:42 | |
i'm confused | |||
[Coke] | jdv79 gave the character's name, I gave the actor's name. | 15:49 | |
jdv79 | i want more names. i only have one. | 15:51 | |
not really | |||
timotimo | yeah, what was "the deep cut" thing about? | 15:52 | |
[Coke] | a deep cut is from when DJs would play a song that was not popular or well-known. | 15:55 | |
timotimo | oh | ||
[Coke] | I just know they were "the bobs", I didn't even remember that they HAD last names. | ||
sorry. ameringlish regional slang. | 15:56 | ||
Geth | rakudo/nom: 71a128391e | (Jonathan Worthington)++ | src/Perl6/Actions.nqp Give fakesignature a $/, $_, and $!. So that we don't end up with unintended sharing of $/ when doing a `foo ~~ :($ where /bar/)` on a bunch of different threads at once. Greatly reduces the cross-thread write log output from htmlify in parallel mode. |
16:17 | |
timotimo | oh, that's interesting | 16:39 | |
[Coke] | nifty to see where all the patches today are going. Thanks esp. for the ones in perl6/doc | 16:43 | |
jnthn | Got a few more lined up also | 16:44 | |
All of which were needed fixes, but which don't seem to nail the .level issue | |||
IOninja | m: 'a' ~~ 1 | 16:51 | |
camelia | rakudo-moar 71a128: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5a' (indicated by ⏏) in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
IOninja | jnthn: what's your opinion? Should the above throw as it does or should it just return False instead? | ||
jnthn | Probably just False; smartmatch throwing is a bit harsh | 16:52 | |
IOninja | agreed | ||
jnthn | You didn't ask for a coerced result, just if it matched | 16:53 | |
htmlify uses quite a few hashes to cache stuff | |||
state %cache; | |||
And the like | |||
This is not safe. | |||
Also @__URLs is pushed to from many threads, etc. | 16:54 | ||
[Coke] | not sure half those caches help; If you could note anything bad you find here, I can add it to the ticket and fix it. | 16:59 | |
Geth | rakudo/nom: a88da2ef26 | (Jonathan Worthington)++ | src/core/CompUnit/PrecompilationRepository.pm Protect %!loaded in CompUnit::PR::Default. |
17:00 | |
rakudo/nom: 6c374d53a2 | (Jonathan Worthington)++ | src/core/CompUnit/PrecompilationStore/File.pm One more missing lock in CU::PS::File. |
|||
rakudo/nom: 2b1eb64864 | (Jonathan Worthington)++ | src/core/CompUnit/PrecompilationUnit.pm Protect PrecompilationId cache with a lock. |
|||
jnthn | Caches using state variables are a kind of attractive nuisance. | 17:13 | |
Guess we should try and get an `is cached` design we like *and* get it threadsafe | 17:14 | ||
[Coke]: Just pushed a couple of further fixes to htmlify | 17:15 | ||
After all this, it's no doubt in better shape, but still blows with the broken Promise over .level | 17:16 | ||
TimToady | . | ||
yoleaux2 | 09:58Z <jnthn> TimToady: %?LANG is there for the sake of EVAL. I consider this as just another example of what we see in `EVAL 'say $x'; my $x = 42` - that is, by runtime certain things exist at block-level, even if the compiler had a finer-grained view of them earlier. | ||
14:48Z <IOninja> TimToady: what's your take on 1e0/0e0 exploding (for natives we even get a "can't unbox failure" exception). With Rat.Num we follow IEEE semantics, yet with two Nums we explode; feels weird. Should we make Num/* and */Num follow IEEE and return NaN for 0/0 and +/-Inf for rest of */0? | |||
TimToady | I think following IEEE is good for checkoff boxes | 17:18 | |
if it doesn't impact performance too badly | |||
IOninja | OK. Will give it a go and see how it works out. | ||
m: use nqp; say nqp::div_n(0e0, 0e0) | 17:19 | ||
camelia | rakudo-moar 2b1eb6: OUTPUT«NaN» | ||
IOninja | it prolly be better for performance in some cases, since we can get rid of our check for zero denumerator | ||
TimToady | that was easy :) | ||
IOninja | denominator | ||
TimToady | this is also a case where we really don't want to blow up the rocket's vector division just because a sensor or two were offline | 17:20 | |
IOninja | :) | ||
jnthn | Ah, darn. There's a code-gen bug involving the NEXT phaser in a while loop. That'll be the immediate thing blowing up htmlify.p6 | 17:24 | |
dogbert17 | Original exception: | 17:33 | |
No such method 'check-path' for invocant of type 'PathChecker' | |||
in sub at htmlify.p6 line 49 | |||
is this new? | |||
jnthn | hah, yes :) | 17:35 | |
dogbert17 | :) | ||
jnthn | Thought "eh, this code says path one time too many" then screwed up the tidying :) | ||
I need to rest some, but I also know the next place in Rakudo that needs fixing to make htmlify.p6 happier :) | 17:37 | ||
IOninja | m: say 1^..3 ~~ 2..3 | ||
camelia | rakudo-moar 2b1eb6: OUTPUT«False» | ||
jnthn | Not quite sure how I'll fix it yet. | ||
IOninja tries to figure out if that's right or wrong. | |||
jnthn | Other discovery - which is likely to thank for EVAL thready issues - is that the NFA alt cache isn't protected | 17:38 | |
Or at least partly to blame for such issues... | |||
IOninja | m: say 1.5 ~~ 1^..3 | ||
camelia | rakudo-moar 2b1eb6: OUTPUT«True» | ||
IOninja | OK, it's right then | ||
jnthn | In other news, seems I've exhausted my grant again... | 17:40 | |
Guess I'll hafta find time to write a report and apply for more. :) | 17:42 | ||
IOninja | \o/ | 17:44 | |
Gonna give a go to Range ~~ Range thing, unless someone already started? | 17:55 | ||
So MasterDuke started it, but there were some issues and the commit was reverted. I wrote a whole bunch of tests for what the right behaviour should be.... What's a normal thing to do? Implement the right Range ~~ Range thing myself or give MasterDuke the tests and let him finish? | 17:58 | ||
0.o well, that's new: | 18:20 | ||
WARNING: unhandled Failure detected in DESTROY: | |||
Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏b' (indicated by ⏏) | |||
in block at /tmp/z.p6 line 34 | |||
in block <unit> at /tmp/z.p6 line 33 | |||
With this code: gist.github.com/zoffixznet/b7fe891...4a664b2822 | 18:21 | ||
m: my $a = 'a'..'z'; my $b = 'c'..'b'; try $a ~~ $b | 18:22 | ||
camelia | ( no output ) | ||
IOninja | m: use Test; subtest 'z' => { my $a = 'a'..'z'; my $b = 'c'..'b'; try is-deeply $a ~~ $b, False } | ||
camelia | rakudo-moar 2b1eb6: OUTPUT« 1..0ok 1 - z» | ||
IOninja | weird. That seems to be the code that produces that weird warning | ||
m: use Test; subtest 'z' => { my @t = ['a'..'z','c'..'b'],; for @t -> ($a, $b) { try is-deeply $a ~~ $b, False } } | 18:23 | ||
camelia | rakudo-moar 2b1eb6: OUTPUT« 1..0ok 1 - z» | ||
IOninja shrugs | |||
... now fudger hangs on me for some reason :( | 18:36 | ||
today's not a good day | |||
"skip() was passed a non-integer number of tests. Did you get the arguments backwards or use a non-integer number?" | 18:43 | ||
Dude, just DWIM -_- | |||
Geth | roast: e152a0ff3a | (Zoffix Znet)++ | S03-smartmatch/range-range.t Add more Range ~~ Range tests Specs semantics of numeric/string Range smartmatching as discussed at irclog.perlgeek.de/perl6-dev/2017-...i_14064592 and github.com/rakudo/rakudo/pull/1017 For the 4 deleted tests: first three are subsumed by this commit, ... (6 more lines) |
18:48 | |
roast: 3688301754 | (Zoffix Znet)++ | S03-smartmatch/range-range.t Add a couple more Range ~~ Cool tests Re-adds test added[^1] and removed today[^2] [1] github.com/perl6/roast/commit/99d22dcc8e [2] github.com/perl6/roast/commit/e152a0ff3a |
19:07 | ||
rakudo/precomp-singleprocess-resurrection: 37771fe46a | (Arne Skjærholt)++ | src/core/CompUnit/PrecompilationRepository.pm Initial sketch of precompilation in a single process. Unfortunately this doesn't quite work yet, as a circular dependency chain is falsely detected when precompiling the NativeCall libraries. |
20:30 | ||
rakudo/precomp-singleprocess-resurrection: 46a8d55851 | (Arne Skjærholt)++ | src/core/CompUnit/PrecompilationRepository.pm HLL::Compiler.evalfiles is more appropriate than command_eval. The latter does exception handling and calls exit(1) if an exception is caught. Using evalfiles lets the exception propagate into the module loader, which lets us handle exceptions during precomp. Currently it'll just propagate into the same error handler a level up, but this avoids weird exception behaviour in the future, should we want to handle some exceptions. |
|||
timotimo | oh, arnsholt | 20:36 | |
why does it seem to me to come out of nowhere, even though he's spoken in the irclog | |||
Geth | rakudo/nom: 8477f3b6b0 | (Zoffix Znet)++ | src/core/Range.pm Implement proper Range ~~ Range smartmatching Implements comparison semantics as discussed on github.com/rakudo/rakudo/pull/1017 and irclog.perlgeek.de/perl6-dev/2017-...i_14064592 - Use string comparators if RHS range is strigny ... (8 more lines) |
20:38 | |
roast: 314b43dba3 | (Zoffix Znet)++ | S03-smartmatch/range-range.t Unfudge and fix Range ~~ Range tests All fixes are to incorrect tests that were all added today and are not paret of 6.c-errata. |
|||
nine | timotimo: because it was me who resurrected his branch | 20:42 | |
timotimo | oh! | 20:48 | |
nine | I still haven't given up the dream of in-process precompilation. And it'd be a shame if his branch was completely forgotten. | 20:49 | |
timotimo | mhm | ||
arnsholt | Wait, what? | 21:03 | |
Aren't those commits mega-old? | |||
I mean, I'm flattered and all, but I haven't worked on that stuff in *ages* | |||
(Been thinking about it, on and off, but that's not actually *doing* anything) | 21:04 | ||
Oh, there's a -resurrection | |||
So those commits should really have nine++ not me =) | 21:05 | ||
nine: Anyways, last time I did anything on that stuff there was shenanigans | |||
IIRC, some internal compiler data structures weren't completely reset when we invoked the compiler again, which screwed things up | 21:06 | ||
When I tried to do something about more recently, the kabooms that had been there were gone | |||
Not sure if it's due to the compiler things being properly reset now, or just happenstance | |||
RabidGravy | arnsholt, could you take a look at github.com/arnsholt/Net-ZMQ at some point? | 21:08 | |
or rather github.com/arnsholt/Net-ZMQ/pull/9 | |||
arnsholt | RabidGravy: I'll try to remember to give it a whirl tomorrow night! | 21:10 | |
Soon bedtime here now, I'm afraid | |||
RabidGravy | no worries | 21:12 | |
Geth | nqp: 3dc2cad8b0 | (Zoffix Znet)++ | tools/build/MOAR_REVISION Bump MoarVM Brings in: github.com/MoarVM/MoarVM/compare/2...2-gd10ba49 d10ba49 Merge pull request #526 from zoffixznet/fix-abs-n fd7300d Fix abs_n op for negative zeros ... (6 more lines) |
21:54 | |
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...2-gd10ba49 | |||
IOninja | I frequently (I think it's the same file) see flappers in t/spec/S11-modules/nested.t | 22:04 | |
jnthn | Not had that...seen some in my recent await-nonblocking additions though :( | ||
Geth | rakudo/nom: f85978b25e | (Zoffix Znet)++ | tools/build/NQP_REVISION Bump NQP Brings NQP changes: github.com/perl6/nqp/compare/2017....6-g3dc2cad 3dc2cad Bump MoarVM 4e7eee0 Fix typos in POD ... (15 more lines) |
22:08 | |
¦ rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....6-g3dc2cad | |||
roast: b8f3dca63b | (Zoffix Znet)++ | S32-num/negative-zero.t Test abs works on negative zero Rakudo fix: github.com/rakudo/rakudo/commit/f85978b25e NQP fix: github.com/perl6/nqp/commit/3dc2cad8b0 MoarVM fix: github.com/MoarVM/MoarVM/commit/d1...20afad1884 |
22:11 | ||
dogbert17 | jnthn: did an experiment, changing the last line of is_full_collect to 'return percent_growth >= MVM_GC_GEN2_THRESHOLD_PERCENT || promoted > some fixed value;' solved my problems with HARNESS_TYPE=6 TEST_JOBS=2 and running htmlify.p6 on my machine. | 22:14 | |
it's a super kludge ifc | 22:15 | ||
s/ifc/ofc/ | |||
Geth | nqp: 12be161966 | timo++ | docs/ops.markdown explain nqp::atposref_* ops |
22:20 |