Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-02-08

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary