»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
jeffythedragonsl p6: say 3 00:03
camelia rakudo-moar f325ee: OUTPUT«3␤»
lizmat timotimo: re rakudobrew, was discussing this earlier with nine today 00:05
it's from a time where you would need to re-install all of your modules whenever you re-compiled rakudo
those days are long gone now... modules just stay installed and recompile automatically on first use nowadays :-)
00:08 AlexDaniel left
timotimo that's true 00:10
jeffythedragonsl are there any open source projects being converted to perl6? 00:16
I want to see thing language succeed but I feel like it just needs more users
El_Che I hope not. I hope new project rice.
rise
jeffythedragonsl ah
El_Che although rice is also nice 00:17
IOninja heh 00:18
"converting" is an antipattern :)
jeffythedragonsl so you wouldn't recommend trying to port perl 5 code to 6, got it 00:19
timotimo nighty night
El_Che going tomorrow. Long day tomorrow at the #perl devroom at fosdem. Many perl 6 talks btw
00:19 AlexDaniel joined
El_Che jeffythedragonsl: libraries are always welcome 00:19
jeffythedragonsl: but that not migrating, but porting as you said
00:19 bjz joined
El_Che porting is nice 00:19
jeffythedragonsl any 3d graphics libraries? 00:20
El_Che If I have libraries for my perl5 and perl6 code I am double happy :)
jeffythedragonsl like to talk to opengl?
El_Che anyway, me off to bed (not a lot hours left)
jeffythedragonsl ttyl 00:21
IOninja jeffythedragonsl: wasn't my point. Converting a successful project from one language to another is a huge undertaking that would need very serious reasons to warrant doing. So looking for open source projects that are being converted to Perl 6 likely won't net you many :)
Unless you mean developing thing X in Perl 6 because we lack it, basing your designs on some other lang's lib. 00:22
jeffythedragonsl like what types of projects is perl6 going to be good at today? Just to help the lang reach critical mass? 00:23
IOninja Teaching and anything that can be best solved by making your own mini language 00:24
jeffythedragonsl icic 00:25
IOninja is an advocate of Build It And They Will Come philosophy. 00:26
Build what you like. If it's really good, it'll have users. Artificially trying to knock out a bunch of libraries for sake of moar users will just leave piles of bitrot 00:27
jeffythedragonsl agreed 00:28
so I'm trying this tut: www.jnthn.net/papers/2015-spw-perl6-course.pdf
I copy this into the REPL: loop (my $i = 10; $i > 0; $i--) {say $i;} 00:29
10
9
8
7
6
5
4
3
2
1
Type check failed in binding to $value; expected Any but got Mu (Mu)
in any interactive at src/Perl6/Compiler.nqp line 62
but if I put it in a file it runs with no error 00:30
IOninja A bug
Report it :)
huggable: rakudobug
huggable IOninja, Report bugs by emailing to [email@hidden.address]
IOninja Ah hehe, and I even have a good feeling of what it is 00:31
aye see it, I think 00:32
IOninja compiles
jeffythedragonsl ok I sent email 00:36
00:36 jeffythedragonsl left 00:38 jeffythedragonsl joined
jeffythedragonsl that's a new bug? 00:39
BenGoldberg m: my ($one, $two) = (1, 2); $one = ($two, ($two=$one))[0]; say [ $one, $two ] 00:41
camelia rakudo-moar f325ee: OUTPUT«[1 1]␤»
BenGoldberg m: my ($one, $two) = (1, 2); $one = (eager $two, ($two=$one))[0]; say [ $one, $two ]
camelia rakudo-moar f325ee: OUTPUT«[1 1]␤»
AlexDaniel mch: loop (my $i = 10; $i > 0; $i--) {say $i;}
committable6 AlexDaniel, ¦«2015.12,HEAD»: 10␤9␤8␤7␤6␤5␤4␤3␤2␤1
AlexDaniel so it's a RELP issue?
repl* 00:42
jeffythedragonsl i think so
p6: loop (my $i = 10; $i > 0; $i--) {say $i;}
camelia rakudo-moar f325ee: OUTPUT«10␤9␤8␤7␤6␤5␤4␤3␤2␤1␤»
jeffythedragonsl evalbot isn't the same as the REPL then? 00:43
geekosaur no, it's not 00:44
IOninja jeffythedragonsl: it was introduced on Aug. 26, 2016 00:46
So not that new. It had a chance to live a happy life. 00:47
jeffythedragonsl yay I'm helping
IOninja prepares sandwich bread
Bug sammich yum yum
00:47 pyrimidine joined
geekosaur one difference between the evalbot and the repl is that the evalbot doesn't remember anything between uses, whereas the REPL does... and the REPL does so somewhat hackily, which occasionally shows up in weird ways 00:49
IOninja jeffythedragonsl: did you get an email back with ticket number?
jeffythedragonsl it's [perl #130719] 00:50
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130719
IOninja Thanks :)
00:50 cyphase_eviltwin joined, pyrimidine left, pyrimidine joined 00:55 pyrimidine left
IOninja aaaand... Fixed :) 00:56
jeffythedragonsl that was fast! 00:57
IOninja That's how we roll ;)
samcv oh i've got that error before 00:58
idk if i'd say it crashes
it doesn't die
jeffythedragonsl 3 character change 00:59
samcv you could also just type "Mu", and the repl would give that error
01:03 agentzh left
jeffythedragonsl so Mu is like Java's Object... interesting 01:03
but for types
is this out of date? www.jnthn.net/papers/2008-upw-perl6-slides.pdf 01:06
if not I found more bugs 01:07
IOninja Very. Our first stable release was in 2015.
And before it things were changing rapidly
jeffythedragonsl was wondering why anyone would want to do: say "hello" & "goodbye"; 01:08
p6: say "hello" & "goodbye";
camelia rakudo-moar 34626e: OUTPUT«all(hello, goodbye)␤»
01:08 Eddward left
IOninja m: sub z { say $^v }; z "hello" & "goodbye" 01:09
camelia rakudo-moar 34626e: OUTPUT«hello␤goodbye␤»
jeffythedragonsl ah and Mu used to be called Object!
rightfold What are the pronunciation rules of Perl 6? 01:13
01:14 AlexDaniel left
samcv is Inline::Perl5 broken or do i need to update 01:16
i'm getting Type check failed in binding to $handle; expected CompUnit::Handle but got Sub (sub EXPORT (*@args) {...)
BenGoldberg m: my ($one, $two) = (1, 2); $one = ("$two", ($two=$one))[0]; dd [ $one, $two ] 01:23
camelia rakudo-moar 1b9919: OUTPUT«["2", 1]␤»
BenGoldberg m: my ($one, $two) = (1, 2); $one = (+$two, ($two=$one))[0]; dd [ $one, $two ]
camelia rakudo-moar 1b9919: OUTPUT«[2, 1]␤»
jeffythedragonsl does anyone use #moarvm anymore? 01:33
IOninja Yes. 01:34
(tis the weekend)
jeffythedragonsl I know C and C++ very well so maybe that's a good place for me to contribute 01:35
IOninja Sweet 01:36
+++++++++++++++++++++++
oops
jeffythedragonsl C+++++++++++++++++++ would be an interesting language 01:37
01:40 cyphase_eviltwin is now known as cyphase
MasterDuke jeffythedragonsl: may i point you toward github.com/MoarVM/MoarVM/issues? 01:43
jeffythedragonsl I might take a stab at github.com/MoarVM/MoarVM/issues/59 01:45
looks easy enough
Geth doc: 266c917427 | (Will "Coke" Coleda)++ | xt/code.pws
learn new code snippet
01:46
01:47 espadrine left 01:52 pyrimidine joined
jeffythedragonsl how am I gonna test it? 01:53
don't expect a rename to break anything, but still
01:55 bjz_ joined 01:56 bjz left 01:59 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
IOninja git clone github.com/rakudo/rakudo; build it (perl Configure.pl --gen-moar --gen-nqp --backends=moar; make; make test; make install) and MoarVM is in nqp/MoarVM. Make changes. in MoarVM dir run: perl Configure.pl --prefix=../../install; make -j8; make install; then go back to rakudo's dir (you don't need to rebuild it if it was just a MoarVM change) and run TEST_JOBS=8 make spectest. If it's clean, 01:59
your change didn't break anything.
02:00 pyrimidine left, khw joined 02:03 bwisti left 02:05 mxco86 left
MasterDuke the way i do it is to have rakudo, nqp, and moarvm all checked out into their own directories, but build each with a shared --prefix. YMMV 02:06
*build all with a shared --prefix 02:07
jeffythedragonsl compiling now 02:17
compiling src/6model/reprs.o 02:20
src/6model/reprs.c: In function ‘MVM_repr_initialize_registry’:
src/6model/reprs.c:189:23: warning: passing argument 2 of ‘register_repr’ makes pointer from integer without a cast
register_repr(tc, MVM##name##_initialize(tc), NULL)
^
src/6model/reprs.c:199:5: note: in expansion of macro ‘register_core_repr’ 02:21
register_core_repr(Array);
^
src/6model/reprs.c:139:13: note: expected ‘const struct MVMREPROps *’ but argument is of type ‘int’
static void register_repr(MVMThreadContext *tc, const MVMREPROps *repr, MVMString *name) {
^
is this ok?
not done a ton of C++ on linux so not sure how to handle it not linking to .so 02:24
sammers hi #perl6 02:26
jeffythedragonsl hi
sammers I was looking at this, docs.perl6.org/routine/is%20pure, does 'is pure' on a sub have any performance impact? 02:27
jeffythedragonsl i fixed the warning 02:30
geekosaur it means that if you use it on something that can be constant-folded at compile time, it can be run on that at compile time and the constant result compiled in (so, should generally be a bit faster)
there might be other optimizations possible in the future, the current optimizer is kinda lame
02:32 agentzh joined
sammers thanks geekosaur, I was just curious if there were any optimizations implemented at the moment 02:36
geekosaur I think at the moment rakudo relies more on JIT (spesh) than optimization
geekosaur does wonder if there's any reason to poke at peephole optimization, but lacks the interest in wading through moarvm bytecode :) 02:38
(not that peephole optimization could take advantage of that; it's mostly about noting runs of instructions that could be compacted/combined/possibly eliminated 02:39
samcv ok i updated Inline::Perl5 and it seems to work again. that's good 02:40
jeffythedragonsl I'm doing make spectest and Inline::Perl5 was broken 02:41
lucky guess that I have 8 cores ;) 02:43
02:46 ilbot3 left
MasterDuke sammers: fyi, rakudo optimization is done here: github.com/rakudo/rakudo/blob/nom/...imizer.nqp 02:46
sammers MasterDuke, thanks
jeffythedragonsl all tests passed 02:47
IOninja sweet
02:48 ilbot3 joined, ChanServ sets mode: +v ilbot3
jeffythedragonsl what's the command to push to the repo? 02:49
02:50 labster left
jeffythedragonsl going to try forking and submitting a pull request 02:51
not having much luck 02:53
MasterDuke fork the repo, clone your fork, checkout -b branch_name, make change, commit change, push origin -u branch_name, go to parent repo and create a pull request across forks 02:54
in fact, if you load the parent repo's page on github you'll usually see a link/button to create a pr from the branch you just pushed to your repo 02:55
you may have to set the parent repo as a remote in your fork for that though, not sure 02:56
geekosaur you don't, it remembers you forked from it 02:57
02:57 pyrimidine joined
geekosaur setting a remote is mainly useful to keep your branch up to date with upstream changes 02:58
03:02 rmusial left, pyrimidine left 03:04 labster joined
jeffythedragonsl I already had committed my changes to master on my hhd 03:05
03:08 rmusial joined
MasterDuke you can do the same thing on master, i just find it easier to work with branches. if your pr doesn't get merged for a while it can be annoying to have your master out of sync with upstream 03:09
jeffythedragonsl I don't know git super well so this is a learning experience tooo 03:10
➜ MoarVM git:(VMArray) git remote -v
origingithub.com/jeffythedragonsla...MoarVM.git (fetch)
origingit@github.com:MoarVM/MoarVM.git (push)
trying to set push remote to my github fork
MasterDuke push should be to your fork also 03:12
IOninja Don't know The Right Way™, but git remote remove origin && git remote add origin github.com/jeffythedragonslayer/MoarVM && git push --set-upstream origin master; should do the trick 03:13
MasterDuke and then something like `git remote add upstream [email@hidden.address]
IOninja xkcd.com/1597/
MasterDuke ^^^ the steps i glossed over
jeffythedragonsl lol 03:14
03:17 agentzh left 03:20 rmusial left
jeffythedragonsl I submitted the pull request 03:23
03:23 bjz joined 03:24 Sgeo joined
MasterDuke jeffythedragonsl++ 03:24
03:25 bjz_ left
jeffythedragonsl what's the Travis CI build? 03:26
03:26 rmusial joined
MasterDuke automatically builds the project with your changes and runs some tests 03:27
jeffythedragonsl nice 03:28
MasterDuke it doesn't work perfectly, so failures don't necessarily mean there was a problem with your code, but it's a start 03:29
03:29 agentzh joined
jeffythedragonsl that was my first ever time contributing to an open source project 03:30
MasterDuke it gets addictive 03:32
jeffythedragonsl and people do this for free?
03:34 noganex_ joined 03:37 noganex left, jeffythedragonsl left 03:40 jeffythedragonsl joined, ilmari joined 03:41 Sgeo left
jeffythedragonsl all checks passed 03:42
03:47 jeffythedragonsl left 03:48 aborazmeh joined, aborazmeh left, aborazmeh joined 03:52 sammers left 03:58 itcharlie left 03:59 pyrimidine joined
IOninja Hehe cool :) Welcome to the open source world! Do people do this for free? Well, they gain skills and knowledge. Karma for doing work that needs doing. Or just a challenge: some solve sudokus other solve bugs. And some apply to The Perl Foundation with a grant proposal and get coin for the work. 04:01
Or: build your own tools. A lot of stuff I made I use at work to make my life easier.
04:02 agentzh left 04:03 Eddward joined 04:05 sammers joined 04:08 pyrimidine left 04:10 jeffythedragonsl joined
jeffythedragonsl hey 04:10
how long does it usually take for pull requests to be approved? 04:11
IOninja jeffythedragonsl: varies wildly due to many factors (is it easy to see the work is needed or discussion is needed? is the person who knows that part of codebase available to review it? is the PR very large, requiring a lot of time to review, etc). It's the weekend so fewer people are around to review it. 04:17
04:17 ambs left
IOninja jeffythedragonsl: if it's still unmerged by end of monday, remind folks in #moarvm :) 04:18
jeffythedragonsl gotcha
almost 250 sloc change so it's not like the bugfix from earlier today I guess 04:19
IOninja :) 04:22
MasterDuke and moarvm prs usually take a little longer than nqp/rakudo (fewer people to review, C may be more complicated to read than Perl, etc.)
jeffythedragonsl so is Not Quite Perl a language like Perl minus a bunch of features? 04:24
IOninja Sorta yeah. 04:26
There's github.com/edumentab/rakudo-and-nq...als-course course that goes into it
PDFs: edumentab.github.io/rakudo-and-nqp-...ls-course/
04:30 aborazmeh left 04:36 agentzh joined 04:38 faraco_ joined 04:43 Cabanoss- joined 04:47 Cabanossi left, Cabanoss- is now known as Cabanossi, jeffythedragonsl left
faraco_ howdy 04:49
IOninja \o 04:54
05:05 pyrimidine joined
masak faraco_: ahoy! 05:06
faraco_ o/
masak faraco_: are you here for the Perl 6? or for the excruciating puns? :P
faraco_ I enjoy both. :D 05:07
masak .oO( I came here to code Perl 6 and to make excruciating puns, and I'm fresh out of Perl 6 )
faraco_: so do we! welcome! :D 05:08
05:10 pyrimidine left
BenGoldberg is here to kick ass, chew gum and program perl6. Ooh, is that gum? *nom nom nom* 05:10
05:12 BenGoldberg left 05:14 jeffythedragonsl joined
jeffythedragonsl I can confirm this 2 year old bug is fixed: github.com/MoarVM/MoarVM/issues/151 05:14
masak \o/ 05:15
so, we close it? 05:16
IOninja Cool :) You could write a test for it (all bug fixes need a test). You can clone your fork of github.com/perl6/roast to rakudo's t/spec
bisect: m: my \SCALE = 3; my \FANOUT = 2; sub divide-and-conquer($n, $depth) { say "$depth: $n" if 0; $depth <= 0 ?? $n !! [+] await do for ^FANOUT { start { divide-and-conquer($n / FANOUT, $depth - 1) } } }; say divide-and-conquer(1.0, SCALE);
bisectable6 IOninja, On both starting points (old=2015.12 new=1b99196) the exit code is 0 and the output is identical as well
IOninja, Output on both points: 1
jeffythedragonsl can't close, I don't have have permission on the MoarVM repo 05:17
samcv i can close it jeffythedragonsl
closed
IOninja jeffythedragonsl: t/spec/integration/weird-errors.t is a good place. there's lives-ok routine you can use: docs.perl6.org/language/testing#in...tion%3F%29 05:18
samcv IOninja, does it have to be lives ok? it could just check the output of it right? 05:19
i mean it will fail if it doesn't output anything
j: my \SCALE = 3; my \FANOUT = 2; sub divide-and-conquer($n, $depth) { say "$depth: $n" if 0; $depth <= 0 ?? $n !! [+] await do for ^FANOUT { start { divide-and-conquer($n / FANOUT, $depth - 1) } } }; say divide-and-conquer(1.0, SCALE); 05:20
camelia rakudo-jvm fb4f16: OUTPUT«Tried to get the result of a broken Promise␤ in method new at gen/jvm/CORE.setting line 29183␤ in method result at gen/jvm/CORE.setting line 41316␤ in sub await at gen/jvm/CORE.setting line 43578␤ in block at gen/jvm/CORE.setting line 43577␤ …»
samcv ah so it doesn't work on jvm still 05:21
so i guess lives-ok is fine
IOninja, this should probably go in the rakudo specific tests right? 05:22
not in roast
jeffythedragonsl what's t/spec?
samcv that's a folder inside the rakudo directory
that is used for `make spectest`
jeffythedragonsl, if you jsut run `make spectest_update` it should download it for you 05:23
what distro are you using jeffythedragonsl
jeffythedragonsl Ubuntu
make: *** No rule to make target 'spectest_update'. Stop. 05:24
samcv you are in the rakudo folder?
maybe try running `make spectest`
it is possible you need to run that before trying to update it
jeffythedragonsl ➜ spec git:(master) pwd 05:25
/home/jeff/rakudo/rakudo/t/spec
samcv though since you have no rule, you may need to run Configure.pl again
jeffythedragonsl think I already have it
samcv ok then run Configure.pl again
jeffythedragonsl, i would recommend installing the `hub` tool www.calazan.com/installing-hub-git...-easy-way/
with it, you can easily fork repos you have
so you could cd into t/spec and run `hub fork` and it will fork it on github for you and add your fork as one of the remote places you can push to 05:26
also can make pull requests from terminal
i ♥ hub
05:27 khw left
samcv adding extra remotes is always annoying to do manually 05:27
jeffythedragonsl ah cool
samcv yeah :)
raiph samcv: Have you read github.com/apple/swift/blo​b/maste...nifesto.md ?
samcv i get not found warning
also i have not
jeffythedragonsl Not found
samcv i guess this github.com/apple/swift/blob/master...nifesto.md
jeffythedragonsl, did running Configure.pl again allow you to run `make spectest`? 05:28
05:28 pyrimidine joined
jeffythedragonsl yeah it's running 05:28
samcv cool
05:29 cibs left
samcv you don't really need to run the whole thing now 05:29
i mean full spectest. unless you want to. also you should set the TEST_JOBS env var to the number of cpus +1 that you have
jeffythedragonsl +1?
samcv plus one
nproc + 1, run the nproc command and add one 05:30
then `export TEST_JOBS=number`
i would also add it to your ~/.bash_rc or whichever file depending on yoru shell
jeffythedragonsl curious about why plus one
samcv because test jobs don't always use 100% of a thread's cpu
jeffythedragonsl I use oh-my-zsh
05:30 cibs joined
jeffythedragonsl ohh interesting 05:31
IOninja samcv: why rakudo specific?
samcv i have my things in .zshrc.local
hmm IOninja ?
IOninja heh
samcv i keep my path type things in ~/.profile and then just import them in my .zshrc.local
i have ` export TEST_JOBS=$(expr 1 + $(nproc))` in my zsh config 05:33
05:33 gdonald left
jeffythedragonsl my gosh so much faster now. Here I thought this thing was single threaded 05:33
samcv just so it can work if i change computers or whatever
05:33 pyrimidine left 05:35 gdonald joined
jeffythedragonsl any reason why make can't do this automatically other than the error messages might come out out of order? 05:36
samcv can't do what automatically? 05:37
jeffythedragonsl know to put a job on each core
samcv you should put `export TEST_JOBS=$(expr 1 + $(nproc))` into your ~/.zshrc.local file
then you will be set 05:38
jeffythedragonsl yeah I did
samcv cool
what do you mean by automatically?
jeffythedragonsl like most software nowadays will auto detect how many cores your machine has and spawn enough threads to take full advantage of them all whenever you do something intensive
samcv ah 05:39
jeffythedragonsl but I guess if you have several jobs writing to stdout all at once it could get confusing
samcv and i think the perl 6 harness (make spectest uses a perl 5 one) has problems with large numbers of threads 05:40
jeffythedragonsl ok make spectest passed
samcv but i suppose make spectest could automatically do it in case there is no ENV var set i guess
jeffythedragonsl, you wanted to add in that MVM bug that just got closed right?
jeffythedragonsl well don't know if I would call it a bug but yeah 05:42
I'm waiting for #522 to be accepted, that's the MVM rename. Now I'm going to write a test for #151 which is fixed 05:43
samcv kk 05:44
jeffythedragonsl but that will probably have to wait for tomorrow, getting late here
thanks everyone 05:45
raiph samcv: that swift doc includes a well written 2-4 year Unicode roadmap that's a natural fit for P6
samcv maybe put it in S17-promise
in that folder jeffythedragonsl, find some file that looks close enough
raiph heh
samcv roadmap?
There is strong evidence that developers cannot determine how to use internationalization APIs correctly. 05:46
haha
raiph for ex, they're focusing on non-locale specific Unicode for Swift 4
samcv i'm curious what swift's string compare function works and how/if they implement the Unicode Collation Algorithm 05:47
raiph They cover that in that doc
samcv nice. i will have to take a nice look at it
05:47 agentzh left
samcv i hate this word 05:48
"Lexicographically compare the flattened keys."
i hate it
it's so vague
i guess pet peeve
we use it in our docs about the 'leg' operator. but that's not even what the leg operator does
it compares by codepoint
05:49 jeffythedragonsl left
samcv what they say about collation is semi-true. well for what MVM is eventually gonna do when i have full UCA support. i mean you don't always need to decompose the items 05:50
in mvm we're only going to decompose both strings in case one of the graphemes is not in our UCA collation weight table
there are many things that you can decompose which are in the table, and that saves us work
to not always have to decompose, and if let's say string A or string B doesn't have anything in the collation weight table, we decompose both and then additively add the weights for each of the decomposed cp's together to form the weight for that one character 05:52
05:52 jeffythedragonsl joined
samcv but i guess we have it easier since strings are basically always stored in normalized form 05:52
not sure about swift and their handling of normalization 05:53
raiph "for equality, it is sufficient to compare the strings' normalized forms [and] entirely skip [multi level collation]" 05:57
samcv nice
yeah
raiph "Next, naturally, anything that applies to equality also applies to hashing: it is sufficient to hash the string's normalized form, bypassing collation keys." 05:58
samcv not sure why you need collation keys to hash a string for a hash? 05:59
stmuk is fanlang on github? a quick searh suggests not
raiph stmuk: it's (currently?) proprietary 06:00
stmuk odd 06:02
raiph stmuk: irclog.perlgeek.de/perl6/2017-02-03#i_14039629
stmuk ah thanks 06:04
06:06 jeffythedragonsl left 06:12 faraco_ left 06:14 araraloren joined
araraloren Afternoon, #perl6 06:15
samcv top secret
raiph good night #perl6 06:16
araraloren raiph, good night 06:17
TEttinger I really don't know enough about these funky unicode internals 06:22
how does perl6 usually hash strings? I seem to recall the mention of SipHash in regards to either Perl5 or Perl6, but it might have just been an option 06:24
I feel like collation and to a lesser extent normalization are rather advanced unicode topics, and I don't think I've even heard of collation before. I've used normalization as part of some steps to remove diacritics from text at one point. 06:27
06:30 pyrimidine joined
TEttinger ah, so the collation algorithm is for locale-sensitive comparison? 06:31
araraloren The wikipedia said that `The Unicode collation algorithm (UCA) is an algorithm defined in Unicode Technical Report #10, which defines a customizable method to compare two strings. These comparisons can then be used to collate or sort text in any writing system and language that can be represented with Unicode.` 06:34
06:35 pyrimidine left
TEttinger yep, that's where I was. rather short article, but the actual unicode technical report is ridiculous 06:37
06:37 wamba joined
samcv TEttinger, i implemented incomplete UCA with nqp::unicmp_s operation 06:40
TEttinger true heroes...
06:40 CIAvash joined
samcv m: use nqp; say nqp::unicmp_s('B', 'a', 15,0,0) 06:40
camelia rakudo-moar 1b9919: OUTPUT«1␤»
samcv m: use nqp; say nqp::cmp_s('B', 'a', 15,0,0)
camelia rakudo-moar 1b9919: OUTPUT«===SORRY!===␤Arg count 5 doesn't equal required operand count 3 for op 'cmp_s'␤»
samcv m: use nqp; say nqp::cmp_s('B', 'a')
camelia rakudo-moar 1b9919: OUTPUT«-1␤»
TEttinger ? 06:41
samcv well 'B' sorts before 'a' currently
but with UCA it sorts B after a
TEttinger ahhh ok
samcv m: my @a = 'a', 'B'; say @a.sort
camelia rakudo-moar 1b9919: OUTPUT«(B a)␤»
samcv :(
m: my @a = 'a', 'B'; say @a.sort({nqp::unicmp_s($^a, $^b, 15,0,0) } ) 06:42
camelia rakudo-moar 1b9919: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Could not find nqp::unicmp_s, did you forget 'use nqp;' ?␤at <tmp>:1␤------> 3@a.sort({nqp::unicmp_s($^a, $^b, 15,0,0)7⏏5 } )␤»
samcv m: use nqp; my @a = 'a', 'B'; say @a.sort({nqp::unicmp_s($^a, $^b, 15,0,0) } )
camelia rakudo-moar 1b9919: OUTPUT«(a B)␤»
TEttinger because B is earlier in codepoint order than a, but comes after a in (most?) latin-alphabet languages' ordering traditions
samcv yeah
exactly
there is some debate if we want sort to do UCA in 6.d
TEttinger how would you specify... uh... turkish locale
is that the 15 parameter? 06:43
samcv github.com/MoarVM/MoarVM/commit/875867d1
read that commit and it will tell you everything you need to know :)
that default 7 is going to change to a 15 though 06:44
currently the integer terms don't do anything because it's NYI
it just does primary, secondary, tertiary and it breaks ties by cp
TEttinger huh, what's the 8 bit do in 15? that just specifies meaning for 1,2,4 06:45
samcv so the newest plan is 15 is the default, and ties are broken by cp
8 is break ties with cp number
TEttinger ahh
samcv (4th level)
so if you read that i also explain what the levels corrolate with
TEttinger quaternary or tetrary or what even is the word...
samcv for latin
While the Primary, Secondary and Tertiary mean different things for
different scripts, for the Latin script used in English they mostly
correspond with Primary being Alphabetic, Secondary being Diacritics
and Tertiary being Case.
TEttinger ohoho man the ch thing in spanish. from what I remember that was a big deal, but I can't remember if they added or removed ch as its own item in the alphabet as taught to children 06:46
so also as affects dictionaries 06:47
samcv heh
TEttinger they might have removed rr as its own? since it doesn't start any Spanish words, though that logic isn't considered in English where x primarily starts loanwords or loaned roots, like xylophone (wood sound) 06:49
06:49 Eddward left 06:51 wamba left, raiph left
TEttinger samcv: if you gave it 0 for a bitmask instead of 15 or 7, what happens then? just falls back to cmp_s ? 06:51
06:51 lizmat left
samcv gonna add that op now to the nqp markdown 06:51
doesn't compare anything probably 06:52
haha
that is what it would imply. it would return 0 for any result
since it won't do primary secondary tertiary or fallback by cp
but giving it an 8 would be similar to cmp_s except it would compare by cp for synthetic graphemes 06:53
synthetic graphemes can sort unreliably with cmp_s, because it sorts by the synthetic number that just happened to be assigned to some grapheme
TEttinger eyes window, estimates jump distance 06:58
samcv :P 06:59
07:25 Tonik joined 07:27 darutoko joined 07:32 pyrimidine joined 07:37 pyrimidine left 07:43 jeffythedragonsl joined 07:50 bjz left 07:52 bjz joined 07:54 Cabanossi left, lizmat joined 07:55 Cabanossi joined 07:56 pyrimidine joined 07:59 pyrimidi_ joined, pyrimidine left 08:01 jeffythedragonsl left 08:03 bjz left 08:04 pyrimidi_ left, CIAvash left 08:05 bjz_ joined
lizmat waves from the Perl Devroom at FOSDEM 08:05
08:06 pyrimidine joined 08:11 pyrimidine left 08:12 jjido joined
samcv o/ :) 08:21
lizmat live.fosdem.org/watch/k4201 08:27
08:27 jjido left
samcv i was wanting to get a sticker btw 08:30
camelia sticker
08:33 Tonik left
lizmat samcv: we still have them :-) 08:37
samcv i want one! 08:38
if somebody from the US is there and can save me one and mail it to me
yeah
El_Che yeah, that could work :)
samcv or whatever cool things you guys are handing out :) 08:39
El_Che too much cool stuff around here. Customs could be tricky :)
08:47 FROGGS joined
El_Che DrForr: ping 08:47
08:48 robertle joined, sanctusgray joined 09:00 RabidGravy joined 09:02 gdonald left, gdonald joined 09:08 pyrimidine joined
RabidGravy boom! 09:09
09:13 pyrimidine left 09:24 rindolf joined
RabidGravy Does the date time format "2011/04/06 14:55:30 +0000" have a name? I probably know somewhere in my brain but not this morning. 09:26
lizmat tools.ietf.org/html/rfc3339 ? 09:28
09:34 zakharyas joined 09:35 faraco joined
samcv what format is that RabidGravy 09:36
it's not ISO 8601 since it uses '/' instead of '-' 09:37
RabidGravy It's the "whatever stupid format SoundCloud uses in its REST api" format
09:38 sena_kun joined 09:42 FROGGS left, FROGGS joined
timotimo o/ 09:46
09:48 bjz_ left
RabidGravy boo! 09:48
09:52 araraloren left 09:53 araraloren joined 09:54 bjz joined, pyrimidine joined 09:55 rumble joined
RabidGravy I think there's something in ecosystem that parses it actually 09:55
timotimo "we have this strtotime function in our php, how do we get a proper format for that?" "oh i'll just read the docs and come up with something" 09:56
ugh, ovid got bitten pretty hard by dark background, bright text ... and ... what? a bad font? 09:58
lizmat yeah, a lot of light from the back 09:59
timotimo it also looks terrible on the stream
like, you can't read it at all
it's rather dark, and not sharp at all
09:59 pyrimidine left, pyrimidine joined
lizmat yeah, unreadable from where I sit :( 10:00
timotimo unreadable from wherever on the world you are, it seems like
lizmat this one's better :-)
timotimo yup
10:04 pyrimidine left, grumble left, rumble is now known as grumble
samcv well i'm almost done making unicmp_s work for synthetic graphemes too 10:06
"\c[woman facepalming]" unicmp "\c[man facepalming]" #> Less
seems to be working as expected! 10:07
lizmat seems wrong to me :-)
samcv heh
DrForr El_Che: pong
samcv checks the UCA data
woman seems to have a higher collation score than man 10:08
so maybe it's not working properly
TEttinger how unchivalrous, I thought it was ladies first... in collation order 10:09
lizmat that was not the (joke) point I was making, but if it has a higher collation score, it indeed feels wrong ?
samcv so it works fine
Less as in, it sorts before
El_Che Told you, but in case it was too loudy in the room: video room at available at reception (just say we need Xamount for perl devroom). For after your talk maybe :)
samcv so sorting the two, the woman facepalming would go first 10:10
so Less is actually correct
TEttinger ah, so it's right then?
samcv a is less than b
yeah so it seems to be working \o/
samcv fats self on back
TEttinger backs self on fat
samcv heh
gotta now try with some ones that have the same first grapheme 10:11
TEttinger mm. so those would depend purely on the joined parts, like man cheering and man frowning would have some defined order?
samcv yeah
m: "\c[man frowning]".uninames.say 10:12
camelia rakudo-moar 5af02a: OUTPUT«(PERSON FROWNING ZERO WIDTH JOINER MALE SIGN VARIATION SELECTOR-16)␤»
samcv oh actually. it is sorting by the last one
TEttinger wowza
samcv since the woman cp is not first
so. everything works perfect \o/
success
TEttinger eyyyy
neat! 10:13
samcv :-D
10:13 geekosaur left
samcv you may now proceed to throw self out window 10:13
i was promised!
timotimo watches
lizmat and go back to procedural programming ?
samcv lol
TEttinger oh I am always procedural 10:14
10:14 geekosaur joined
TEttinger flops out of chair, aiming for window, swerves to avoid cat 10:14
this guy... dl.dropboxusercontent.com/u/119146..._small.png 10:15
samcv cute 10:16
timotimo pretty!
samcv can we add a unicmp op just so people can play with it? before deciding on a final name? 10:17
10:17 andrzejku joined
TEttinger he's a good kitty. we were worried about him as a kitten because he never drank water from the bowl. turns out he needed a new strategy... using his paw like a cup and drinking in a raccoon-like way 10:18
timotimo d'aaw
moritz samcv: +1
timotimo an op, as in ... nqp::unicmp, or an &infix:<unicmp>?
samcv yeah. it's not gonna go on the docs or anything, but would be cool if people can test it out
timotimo we can use the "use experimental" mechanism for that, fwiw
samcv how do i make it experimental 10:19
timotimo you can probably steal off of "pack"?
moritz in src/core/Buf.pm fwiw 10:21
lol I blogged: perlgeek.de/blog-en/perl-6/2017-00...ammar.html 10:22
10:24 zakharyas left
samcv kk have a PR for MVM with support for synthetics now :) 10:25
will look at pack @timotimo
10:30 labster left 10:32 TimToady left 10:34 TimToady joined 10:36 TEttinger left 10:40 lukaramu joined 10:45 mr-foobar left
timotimo next up is brian duggan: Informal Domain Specific Languages with Perl 6 10:46
live.fosdem.org/watch/k4201
10:47 mr-foobar joined
timotimo did ... the camera just asploded? 10:48
or maybe the stream just problemed for me
lizmat has no idea
timotimo sound disappears, the camera feed disappears
after that it "catches up"
so i think it's the stream, not on your end 10:49
lizmat ah, ok
I don't want to stress the local network by trying to stream here as well
timotimo yeah, good idea
people trying to IRC from inside the conference will thank you for that
10:59 bjz_ joined 11:00 mr-foobar left 11:01 espadrine joined, bjz left
nine thanks lizmat :) 11:12
11:12 faraco left
lizmat ;-) yw :-) 11:13
nine is now watching the libuv lightning talk...in hope of enlightenment
El_Che nine: libuv is what blocking solaris support for rakudo (moarvm) 11:14
nine So I will ask later on when they are going to support Solaris ;) 11:15
El_Che they kind of support Solaris 11 but their tests failed 11:16
I talked with the dev and well "kind of"
:)
nine I find it quite funny that Perl 6 is driving the development of a library that's a base for the current hipster thingy with millions of users.
11:17 Alikzus joined
El_Che :) 11:18
samcv unicmp now pushed, hiden under 'use experimental :unicmp' 11:20
11:20 bjz_ left
timotimo oooh, bduggan could have written @<indent> here, instead of @$<indent>, right? 11:21
grondilu to get the last character of a string, I must do .substr(*-1, 1), right? If so, it doesn't degrades well with empty strings 11:22
m: say ''.substr(*-1,1)
camelia rakudo-moar 5af02a: OUTPUT«Start argument to substr out of range. Is: -1, should be in 0..0; ␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
grondilu m: say 'foo'.substr(*-1,1)
camelia rakudo-moar 5af02a: OUTPUT«o␤»
timotimo m: say ''.comb.tail 11:23
camelia rakudo-moar 5af02a: OUTPUT«Nil␤»
timotimo m: say 'hello'.comb.tail
camelia rakudo-moar 5af02a: OUTPUT«o␤»
grondilu nice, I did not know about .tail
timotimo it's the better form of [*-1] :)
samcv m: "".comb.tail.say 11:24
camelia rakudo-moar 5af02a: OUTPUT«Nil␤»
grondilu what about .substr(0, *-1)? 11:25
11:25 bjz joined
grondilu .comb[^.comb.end].join :P 11:25
11:25 jjido joined 11:26 aborazmeh joined, aborazmeh left, aborazmeh joined
samcv my $var = ''; $var.chars ?? $var.subst(*-1, 1) !! "" 11:26
why not this?
m: my $var = ''; say ($var.chars ?? $var.subst(*-1, 1) !! "") 11:27
camelia rakudo-moar 5af02a: OUTPUT«␤»
samcv m: my $var = 'test'; say ($var.chars ?? $var.subst(*-1, 1) !! "")
camelia rakudo-moar 5af02a: OUTPUT«(timeout)»
samcv m: my $var = ''; say ($var.chars ?? $var.substr(*-1, 1) !! "") 11:28
camelia rakudo-moar 5af02a: OUTPUT«␤»
samcv m: my $var = 'test'; say ($var.chars ?? $var.substr(*-1, 1) !! "")
camelia rakudo-moar 5af02a: OUTPUT«t␤»
grondilu using a ternary for that is LTA
samcv true
timotimo yeah
samcv we could just make a .tail which returns the last character? 11:29
timotimo nope
items pretend they are a list with only them in it
samcv yeah that won't wor
timotimo m: say "hey".elems; say "hey".tail
camelia rakudo-moar 5af02a: OUTPUT«1␤hey␤»
grondilu frankly IMHO ''.substr(*-1, 1) should return Str rather than dying
samcv imo substr for just getting a single character of a string is lta too 11:30
but that's just me
grondilu yeah but what about ''.substr(0, *-1)?
timotimo oh, do you know about chop?
m: say "hello".chop
camelia rakudo-moar 5af02a: OUTPUT«hell␤»
timotimo er, wrong way around :)
grondilu oh boy
timotimo m: say "hey".chop
camelia rakudo-moar 5af02a: OUTPUT«he␤»
grondilu m: say ''.chop
camelia rakudo-moar 5af02a: OUTPUT«␤»
timotimo m: say "".chop
camelia rakudo-moar 5af02a: OUTPUT«␤»
11:30 AlexDaniel joined
timotimo that's what i meant 11:30
grondilu nice 11:31
timotimo but still it's the wrong way around, isn't it?
grondilu timotimo++
samcv what's the opposite of chop
timotimo pohc, clearly
samcv err reverse 11:32
pohc?
grondilu .comb.tail and .chop were exactly what I needed
samcv since when did the docs get more ugly looking :\
timotimo btw did you know
if unicode has italic ? and italic !, we can have a variant of ?? !! that uses definedness of the LHS instead of truthness 11:33
u: questionmark
unicodable6 timotimo, Found nothing!
andrzejku hi people
timotimo u: question mark
unicodable6 timotimo, U+003F QUESTION MARK [Po] (?)
timotimo, U+00BF INVERTED QUESTION MARK [Po] (¿)
samcv does it have italic question mark tho :\
i don't think so
unicodable6 timotimo, gist.github.com/ef5a84a090b6726cac...c9263e3477
samcv the italic and bold characters only exist for transcription purposes
i believe
retaining data of the text
timotimo :(
samcv if transcribing something bold 11:34
$var ?/ 'this' ?/ 'that'
lol.
err
$var ?/ 'this' !/ 'that'
timotimo not sure about that :) :)
samcv tho you could make it super horrible and $var //?? 'this' //!! 'that' 11:35
El_Che yeah dana is up
timotimo you can't declare ternary ops just with &infix:<//?? //!!>
sadly we have to write a slang if we want that
samcv how is ?? !! declared? i remember seeing it was different than the other things
timotimo yes, it's special-cased in the Perl6::Grammar 11:36
samcv yeah that's what i thought
$var.defined ?? 'this' !! 'that'
that's not too hard
also going to point out i love ?? !! compared to ? and :
11:36 jjido left
samcv much better to look at and easier to tell what it's doing 11:36
timotimo right, and since ?? doesn't give you a $_ based on the LHS, it doesn't even make a difference
aye, i prefer ??!! over ?:, too 11:37
samcv we could have texas, $var ?TRUE 'this' !FALSE 'that'
lol
so many horrible syntax things you could do
timotimo i wouldn't call that texas …
though ... maybe? 11:38
11:38 jjido joined
samcv it is bigger and uglier 11:38
timotimo that's not a nice thing to say about texas/texans
samcv :\ i lived there for like a year
but just from perl 6's texas operators they're generally hard to look at 11:39
timotimo uh oh, the sieve of erathostenes in perl6 on rosettacode is wrong? :o 11:40
oh just because it uses %% to check each entry
rather than looping over all entries and marking proactively instead
well "just" isn't the right word for that 11:41
samcv perl 6 programmers are lazy!
timotimo right, you can't really do that lazily 11:42
though you can save a whole bunch of "marking progresses that have reached this point"
then you can actually do it lazily even without trial division 11:43
samcv m: my @list = "\c[woman facepalming]", "\c[man facepalming]"; say @list.sort({$^a unicmp $^b}) 11:46
camelia rakudo-moar 5870ef: OUTPUT«Use of the 'unicmp' operator is experimental; please 'use experimental :unicmp'␤ in block <unit> at <tmp> line 1␤␤»
11:46 agentzh joined
samcv m: use experimental :unicmp; my @list = "\c[woman facepalming]", "\c[man facepalming]"; say @list.sort({$^a unicmp $^b}) 11:46
camelia rakudo-moar 5870ef: OUTPUT«(🤦‍♂️ 🤦‍♀️)␤»
samcv m: use experimental :unicmp; my @list = "\c[woman facepalming]", "\c[man facepalming]"; say @list.sort({$^a unicmp $^b}) 11:47
camelia rakudo-moar 5870ef: OUTPUT«(🤦‍♂️ 🤦‍♀️)␤»
samcv hmm it sorts that way. hmm
m: use experimental :unicmp; my @list = "a", "b"; say @list.sort({$^a unicmp $^b})
camelia rakudo-moar 5870ef: OUTPUT«(a b)␤»
timotimo interesting. Bool(...) rather than using so
instead of {$^a unicmp $^b} you should be able to write &[unicmp] 11:48
samcv oh. it sorts wrong
because it doesn't have the MVM update yet ;P
AlexDaniel even “with” is not that popular, and you want “defined” version of ?? :S
timotimo that's why it's experimental :P
samcv well. timotimo wanna look at my PR and see if anything is amiss. it should be perfectly fine
i'd like to commit it if somebody looks at it and doesn't notice anything weird
timotimo let me have a quick look 11:49
El_Che Dana forces me to realiaze how long ago it was that I had real math :)
samcv kk
timotimo that's a whole lot of eulerplate!
El_Che hahaha 11:50
don't "Digress"
timotimo interesting, he pronounces it sigil rather than sigil
i thought it was meant to be sigil, but what do i know …
samcv those are both the same letters 11:51
11:51 agentzh left
timotimo :P 11:51
samcv sigil rather than sigil
timotimo it was a slight mocking of english
uh oh 11:52
he has a slide with "perl 6 uses *. good, right?" :D
samcv looking again i just see two unused vars, just pushed with those removed
curious how many of the unicode collation tests we pass now
timotimo phew, we fail at primality tests because we just rely on libtommath
samcv we do timotimo ? 11:53
timotimo there's a paper that has an algorithm to create numbers that libtommath will tell you are prime, but they are not prime
samcv :\
that's a pretty big issue
timotimo because libtommath uses the first 100 bases instead of 100 random bases
which is not how you do that algorithm 11:54
samcv m: use experimental :unicmp; my @list = "\c[man facepalming]", "\c[woman facepalming]"; say @list.sort({$^a unicmp $^b}) 11:55
camelia rakudo-moar 5870ef: OUTPUT«(🤦‍♀️ 🤦‍♂️)␤»
samcv yeah that's what i thought. depending on the order you declare, cmp is going to sort in the opposite order :P
tho will be fixed with this MVM change at least for unicmp
11:56 araraloren left
samcv i think we could call 'unicmp_s(a, b, 8, 0, 0)' and that will sort without collation (NYI tho) at least will fix it not sorting synthetics correctly 11:56
timotimo i'd like to review your code, but i'm afraid i'm dead tired. i've already made a major mistake today that requires a bit of intervention from someone with more permission bits set …
samcv kk
timotimo i might need a nap or something? though that oftentimes leaves me just as (or more) destroyed :\ 11:57
11:57 araraloren joined
timotimo ooooh bloom filters 11:57
too tired to review code, but at least i can marvel at this number theory 11:59
not following the algorithms, of course
talk over; i'm really looking forward to all those improvements landing in moar and such :)
it'd be fantastic if there was like a volunteer sitting at an audio mixer or something who could mute the microphone when the speaker begins putting it on their clothes, or removing it from their clothes and putting it down on the table 12:00
and people pushing chairs around and such 12:01
also: hooray, it's liz and wendy
12:01 pyrimidine joined
timotimo oooh, leaked secret information! 12:05
12:07 pyrimidine left
tadzik yiss :] 12:08
samcv what secret info? i missed it 12:10
tadzik Wendy broke a mug and announced Perl 7
samcv oh my 12:11
how did that happen
timotimo yes, it was very loud
there was a microphone placed where the mug was supposed to break
it went BANG
samcv oh lol
they didn't really announce perl 7 though right 12:12
timotimo you won't know unless you re-watch the stream :P 12:13
samcv haha
i think jnth will like it more if i make a function to iterate synthetics
so i will code that 12:14
El_Che \o/ Wendy !
samcv i hope i get swag ;3
El_Che I heard there are some camelia stickers set aside for you :)
samcv yay!
i am excited 12:15
12:16 geekosaur left, geekosaur joined
samcv that's not suspicious at all.... i.imgur.com/J02gL4F.png 12:16
12:16 itaipu joined
El_Che twitter.com/nxadm/status/828215835156176896 12:17
timotimo wow, the room looks so much brighter than in the stream video feed 12:18
12:19 jjido left, bjz left
El_Che I measure the lightning on the screen :) 12:19
timotimo ride the lightning? 12:20
12:22 mr-foobar joined
timotimo BBIAB 12:25
12:26 tokomer joined
El_Che hehe, great albu 12:27
m
12:33 pmurias joined
samcv i can't hear this 12:34
no mic noise
El_Che He has his mic on. I don't think it's a good idea to disturb drforr now (he's in the middle of an explanation)
pmurias m: say("\c[PARAGRAPH SEPARATOR]" ~~ /<print>/) 12:36
camelia rakudo-moar 5870ef: OUTPUT«「
」␤ print => 「
」␤»
pmurias ^^ is that correct 12:37
j: say("\c[PARAGRAPH SEPARATOR]" ~~ /<print>/)
camelia rakudo-jvm fb4f16: OUTPUT«Nil␤»
samcv <print> shows printable characters? 12:38
pmurias \c[PARAGAPH SEPARATOR] is a printing character according to moar, it's not one according to the jvm
samcv not familiar with that token
pmurias samcv: <print> matches printing characters
samcv m: "\c[PARAGAPH SEPARATOR]".ord.say
camelia rakudo-moar 5870ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [PARAGAPH SEPARATOR]␤at <tmp>:1␤------> 3"\c[PARAGAPH SEPARATOR7⏏5]".ord.say␤»
samcv m: "\c[PARAGRAPH SEPARATOR]".ord.say
camelia rakudo-moar 5870ef: OUTPUT«8233␤»
samcv hmm curious what MVM looks at for <print> 12:39
i am busy for a bit but i will take a look pmurias
in like 10 min
El_Che, still can't hear anything :\ 12:40
it's so quiet and i have my volume on 120%
pmurias MoarVM uses !((cp >= 0 && cp < 32) || (cp >= 127 && cp < 160)) so it's the opposite of <cntrl> 12:43
samcv it doesn't use any unicode data?
bleh
please make a bug report on github pmurias
m: "\c[PARAGRAPH SEPERATOR]".uniprop.say 12:44
camelia rakudo-moar 5870ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name [PARAGRAPH SEPERATOR]␤at <tmp>:1␤------> 3"\c[PARAGRAPH SEPERATOR7⏏5]".uniprop.say␤»
pmurias do we have unicode data for that? 12:45
samcv m: "\c[PARAGRAPH SEPARATOR]".uniprop.say
camelia rakudo-moar 5870ef: OUTPUT«Zp␤»
samcv i will investigate it
12:45 gdonald left
samcv and decide the best properties for us to use 12:45
El_Che should be ok now
12:45 ggoebel left
samcv very good :) 12:45
12:47 gdonald joined
El_Che I didn't want to interrupt him in the middle of his example 12:47
train of thought and stuff
12:53 geekosaur left
jferrero m: say ["a" .. "z"] 12:54
camelia rakudo-moar 5870ef: OUTPUT«[a b c d e f g h i j k l m n o p q r s t u v w x y z]␤»
jferrero m: say ["" .. "z"]
Oops 12:55
camelia rakudo-moar 5870ef: OUTPUT«(timeout)»
12:55 geekosaur joined
lizmat m: dd "".succ 12:55
camelia rakudo-moar 5870ef: OUTPUT«""␤»
lizmat hmmm
12:58 ggoebel joined, z448 joined
nine Stevan Little is waiting in the line for his own talk :) 13:03
13:04 z448 left
samcv k pushing my fixes for unicmp_s. should get the latest in camelia shortly 13:04
tadzik hah, today I thought "if you want to make sure you get to see the talk you want on fosdem, you have to be the speaker". Apparently even that is not enough :D
13:04 pyrimidine joined
samcv haha 13:05
13:05 aborazmeh left
pmurias nine: if there aren't enough free slots for him, does a randomly selected memeber of the audience take it over? ;) 13:07
samcv pmurias, also ZWJ matches print too 13:08
nine tadzik: but that's exactly my strategy for getting into Stevan's talk ;)
samcv m: say "\c[ZWJ]" ~~ /<print>/
camelia rakudo-moar 5870ef: OUTPUT«「‍」␤ print => 「‍」␤»
samcv tho, you could argue it is printed and it joins but. uh....... 13:09
13:09 tokomer left, pyrimidine left
samcv space matches print, but tab does not 13:10
j: say "\c[TAB]" ~~ /<print>/
camelia rakudo-jvm fb4f16: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name TAB␤at <tmp>:1␤------> 3say "\c[TAB7⏏5]" ~~ /<print>/␤»
tadzik woo the talk
HYYPE
samcv j: say "" ~~ /<print>/
camelia rakudo-jvm fb4f16: OUTPUT«Nil␤»
samcv j: say "\t" ~~ /<print>/
camelia rakudo-jvm fb4f16: OUTPUT«Nil␤»
samcv j: say " " ~~ /<print>/ 13:11
camelia rakudo-jvm fb4f16: OUTPUT«「 」␤ print => 「 」␤»
samcv also odd how \t is control character, but ZWJ is control formatting. i'd argue tab is formatting but
but i guess can make it easy and just say no control characters, anything with C in general category 13:12
13:13 kurahaupo__ joined
El_Che damn; we're too packed here 13:13
lizmat gist.github.com/lizmat/a98b5115f62...b12c9469d4 # Ovid made me do this
conceptual "is write-once" trait for Attributes ^^^
13:15 ambs joined
MasterDuke samcv: i don't think your moarvm pr was merged, so the version bump in nqp didn't match any commit in the moarvm master branch 13:16
samcv it didn't i commitedit
directly
MasterDuke it's not showing up on the moarvm master branch 13:18
samcv oh crap
ok now it's commited :)
MasterDuke heh, travis should be ok now 13:19
samcv :P
i bet camelia failed too 13:20
pushed a small edit to the readme, so hopefully camelia will build now 13:24
13:25 hartenfels joined 13:42 Rawriful joined 13:44 xtreak joined 13:47 xtreak left
lizmat itttttttsssssssss.... nine! 13:47
13:50 KDr2 joined 13:54 imcsk8 left
El_Che you guys get the sound ok? 13:54
sena_kun El_Che, all is fine. 13:56
13:56 imcsk8 joined
AlexDaniel which sound? 13:56
sena_kun AlexDaniel, fosdem live.
AlexDaniel link?
El_Che nine is now on
live.fosdem.org/watch/k4201 13:57
sena_kun AlexDaniel, live.fosdem.org/watch/k4201
samcv m: use experimental :unicmp; say "cmp: ", "\c[woman facepalming]" cmp "\c[man facepalming]"; say 'unicmp: ', "\c[woman facepalming]" unicmp "\c[man facepalming]" 14:01
camelia rakudo-moar ecb7ed: OUTPUT«cmp: More␤unicmp: Less␤»
samcv cool working
m: use experimental :unicmp; say "cmp: ", "\c[man facepalming]" cmp "\c[woman facepalming]"; say 'unicmp: ', "\c[woman facepalming]" unicmp "\c[man facepalming]"
camelia rakudo-moar ecb7ed: OUTPUT«cmp: More␤unicmp: Less␤»
samcv as you can see if you reverse the order of woman facepalming and man facepalming it still outputs 'more' since it dosen't compare synthetic graphemes properly 14:02
but yay
14:06 pyrimidine joined
Ulti urgh setting up a Windows build environment is incredibly tedious 14:09
BTW there are some build issues on Ubuntu for Windows 10 with rakudobrew but might just be some deps, will take a proper look later 14:10
14:11 pyrimidine left
pmurias m: say "\c[TAB]" ~~ /<print> 14:24
camelia rakudo-moar ecb7ed: OUTPUT«5===SORRY!5===␤Regex not terminated.␤at <tmp>:1␤------> 3say "\c[TAB]" ~~ /<print>7⏏5<EOL>␤Unable to parse regex; couldn't find final '/'␤at <tmp>:1␤------> 3say "\c[TAB]" ~~ /<print>7⏏5<EOL>␤ expecting any of:␤ in…»
timotimo what talk was the one tadzik was so hype about 1.5h ago? 14:25
tadzik timotimo: stevan's 14:26
timotimo i gathered as much
topic?
tadzik p5-mop again, basically :P
timotimo oh
hm, do i care?
tadzik I don't know, do you do Perl 5?
timotimo nah
tadzik then no :) 14:27
timotimo OK
El_Che sings: "I am so exicited, I just can hide it..." 14:31
:)
14:32 itaipu left 14:34 itaipu joined 14:38 cale2 joined, ocbtec joined
timotimo is brrt actually in the room? :D 14:48
14:48 Cabanossi left 14:49 Cabanossi joined
El_Che she looked into the camera (I think) 14:49
timotimo oh, ok
El_Che but there are 2: the fosdem one, and one shadowcat one 14:50
timotimo ah, was probably the shadowcat camera
El_Che the didn't look at the one used in the live stream
:)
timotimo right
better idea, IMO :)
14:56 pyrimidine joined 15:01 pyrimidi_ joined 15:04 lizmat left 15:05 pyrimidine left, pyrimidi_ left
timotimo uh oh, more super dark slides ;( 15:07
El_Che timotimo: he changed it to make it readable in the room 15:08
timotimo yup, i saw 15:09
it's much better
El_Che the other video catches the slides directly
timotimo a framegrabber hopefully?
El_Che indeed 15:10
15:12 ocbtec_ joined 15:14 ocbtec left 15:17 ocbtec joined 15:18 ocbtec_ left 15:22 pyrimidine joined 15:25 cyphase left 15:27 pyrimidine left 15:28 itaipu left 15:30 cyphase joined
samcv i'm thinking about getting rid of Rakudo::Internals.PROPCODE 15:35
because it's like 5x slower than just calling the nqp op
so thinking of just totally removing the Rakudo::Internals sub. about to replace all our uses of PROPCODE with the nqp op for some nice 2x speedups for like .uniprop for the default argument
timotimo perl5 makes stuff faster. i want perl6 to have faster stuff, too :)
samcv ^ 15:36
we are making stuff faster tho!
timotimo yeah, that's true
AMIGAOS SUPPORT!
samcv he has a lot of energy
timotimo shit, i don't think we can get the libuv people to support that :(
samcv i know what VS-16 is! 15:37
samcv raises hand
El_Che hehe
timotimo apparently it's "color: red", which i assume is wrong, but funny?
samcv wrong 15:38
but idk funny? somehow?
timotimo dunno
samcv well i guess it's colored as opposed to being uncolored?
i guess it being colored is semi accurate
since it says to use emoji presentation
timotimo right
samcv or you can use perl 6 and just do one \c sequence ;)
timotimo yup.
samcv he talked about a lot of things he couldn't talk about 15:39
timotimo you can even have $ZWJ = "ZERO WIDTH JOINER" and write \c[foo, $ZWJ, bar] ... at least you should be able to
samcv hm
but you can just do ZWJ since it supports unicode aliases ;)
timotimo ooooh
samcv checkmate!
timotimo m: my $zwj = "ZERO WIDTH JOINER"; say "\c[$zwj]".encode('utf8') 15:40
camelia rakudo-moar ecb7ed: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized \c character␤at <tmp>:1␤------> 3my $zwj = "ZERO WIDTH JOINER"; say "\c[7⏏5$zwj]".encode('utf8')␤ expecting any of:␤ argument list␤ double quotes␤ term␤»
timotimo noooooo :<
samcv surely this is the most important feature and users will flock to us!
m: say "\c[ZWJ]".uninames.say
camelia rakudo-moar ecb7ed: OUTPUT«(ZERO WIDTH JOINER)␤True␤»
samcv i didn't think we allowed using $ in them either
timotimo what is this about script runs... protection against unicode look-alikes?
like how punycode would allow you to craft URLs that look benign? 15:41
avocado, indeed
samcv what did i see default collation q;uickly
go back to that slideeeee
ahh
i saw something about collation
timotimo something something locale
script extensions?
samcv we need thattttt 15:42
yeah
some characters are used it multiple scripts
15:42 ocbtec left
samcv that is on my list to add 15:42
timotimo OK, cool
samcv and the characters can have like as many script extension values as unicode says so
15:42 ocbtec joined
samcv so some have like 12 15:42
timotimo wow, indented heredocs 15:43
samcv fancy
timotimo soon there won't be a reason to get perl6 any more :P
samcv they're going to steal our STD grammar!
just watch!
heh
timotimo you can even put spaces inside char classes
samcv i really like that one
i found out myself that they were not allowed by accident 15:44
timotimo but perl6 has had that for like 10 years
samcv heh
whoever decided that spaces in charclasses should matter in /x should not have done this
tho it could have been an overlooked thing
always good to make things 2x as fast. take that perl 5! 16:02
heh. it is cool all the stuff they're adding to perl 5
need to play around with some of those sometime 16:03
moritz m: say '/'.IO.s 16:06
camelia rakudo-moar ecb7ed: OUTPUT«'/' is not a regular file while trying to do '.s'␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
moritz on Linux at least, a directory itself also takes up measurable space, not just files
(for the listing of contained files)
can I get that somehow?
samcv nice, RFC's are now allowing unicode symbols \o/ tools.ietf.org/pdf/rfc7997.pdf 16:08
the future!
before they only allowed ascii characters
moritz please don't tell me I have to use Nativecall to do a stat call... :(
samcv: nice!
samcv curious why you need the size of the directory itself 16:09
16:10 gdonald left
moritz I want to write a directory size visualizer 16:10
and I had the case in the past where a directory that used to contain many files was signficantly larger than 4k 16:11
and I'd like to show where disk usage actually goes :-)
16:11 araraloren left
samcv m: say Rakudo::Internals.FILETEST-S('/') 16:11
camelia rakudo-moar 411782: OUTPUT«136␤»
samcv there you go moritz
moritz samcv: thanks; but that's not really something I want to showcase in my book :( 16:12
samcv true
16:12 gdonald joined, itaipu joined
samcv curious what that shows on windows 16:12
we could just not have it do a failure. i don't see why we couldn't have no failure
just use the number that the OS spits back. if it's 0 hen it's zero
moritz +1
samcv will make that change after spectest run 16:14
also it seems .z also tests if it's a file 16:19
but the docs page it says it returns true if the invocant is a path and the size is 0
tho i guess less important to change that than .s i guess
16:21 noganex joined 16:22 noganex_ left
timotimo stream's over, right? 16:24
samcv yeah
no event scheduled atm
so says the site
timotimo right 16:25
i just got the player that kept apparently refreshing or something
16:26 KDr2 left, itaipu left, itaipu joined
samcv moritz, commited 16:28
16:30 noganex left
samcv hmm moritz it seems .s isn't showing the same size I see with ls 16:35
oh wait nvm false alarm :)
all is fine
16:35 jeffythedragonsl joined
jeffythedragonsl hey 16:35
samcv hey jeffythedragonsl 16:36
timotimo ohai 16:39
jeffythedragonsl i think github.com/MoarVM/MoarVM/issues/150 is fixed now too
IOninja wow. So much backlog, for a second I thought that maybe I slept through a whole day... 16:41
MasterDuke timotimo: any idea why this bit of nqp `sub a() { my int $i := 0; my int $s := 0; while $i < 10 { ++$i; ++$s; $s }; say(a())` would cause 6218 calls to the MVM_coerce_smart_numify function?
timotimo in a case like that i'd turn on MVM_SPESH_LOG and check where coerce_* is called 16:42
jeffythedragonsl i get MoarVM panic: Memory allocation failed; could not allocate 131072 bytes
timotimo also, it has a } too few
jeffythedragonsl yes
timotimo the way it is now it endlessly recurses
the extra } needs to go before say(a()) 16:43
jeffythedragonsl oh with the } before it prints nothing 16:44
timotimo i'll try
AlexDaniel buggable: LTA
buggable: tag LTA
buggable AlexDaniel, There are 147 tickets tagged with LTA; See perl6.fail/t/LTA for details
timotimo ah, yes, it needs to go before $s }; 16:45
MasterDuke whoops. with correct } placement MVM_coerce_smart_numify is called 14273 times instead
AlexDaniel … websites that use fonts.googleapis.com
samcv i gotta gotta go to bed guys 16:46
stayed up to watch the live stream. pushed some commits. time to hang my metaphorical hat
AlexDaniel I hope one day google goes down for everyone, not just me… just to see how brittle your websites are
timotimo 14k out of 15k calls go into p6int
samcv
.oO(ZZZzzzzzz...)
AlexDaniel samcv: good night!
IOninja … are awesome 16:47
timotimo gnite samcv
MasterDuke i don't see 'p6int' anywhere in the spesh log?
timotimo spesh has a piece of code in it that's supposed to turn smart numify into get_int if it's known ahead of time that it'd just do that anyway
that is correct 16:48
i meant P6int.c
IOninja AlexDaniel: but in vast majority of cases google isn't down :) That's like saying look how brittle your banking app is: just wait until power goes out and you can't use your computer.
timotimo oh 16:49
MasterDuke: there's actually a moar op smart_numify
so you can look for that
we use smart_numify to turn stuff into floats
16:49 jeffythedragonsl left
MasterDuke but i declared everything to be int 16:50
timotimo right
16:50 itaipu left
timotimo and that was nice of you 16:50
however
AlexDaniel m: say “\c[man facepalming]”
camelia rakudo-moar 411782: OUTPUT«🤦‍♂️␤»
timotimo nqp says "bad luck"
AlexDaniel IOninja: ↑
I've been suffering for 3 days and you're not trying to help
timotimo sometimes it's weird like that :(
there's some code in nqp's optimizer that tries its best to use ints whenever possible 16:51
but apparently nums are still slipping through the cracks
AlexDaniel and by help I mean just host your goddamn fonts, what's the big deal…
MasterDuke where is nqp's optimizer?
ah, ./src/NQP/Optimizer.nqp
timotimo yup
IOninja It's much easier to copy-paste a URL from google than write all the hacks yourself.
timotimo cool, when i replace 10 with a my int $target := 10, that doubles the number of calls to smart_numify 16:52
MasterDuke !!
timotimo um, okay, using islt_i doubles the number of calls another time apparently? 16:53
16:53 jeffythedragonsl joined
timotimo um, hold on a minute 16:53
nope, it was putting all my callgrind.out.* files into consideration rather than just the latest one
and so it added up all calls across all runs
MasterDuke heh
timotimo so none of the values i mentioned are correct. 16:54
anyway, you can set a breakpoint in MVM_somethingsomething_smart_numify and call MVM_dump_backtrace(tc)
can even do it with "commands"
like "break ..." "commands" "call MVM_dump_backtrace(tc)" "c" ""
or maybe it wants "end"
MasterDuke i'll try, but i think i have successfully used gdb all of one time in my entire life 16:55
timotimo time to double that! :) 16:56
16:57 pyrimidine joined
timotimo the first few K are in the compiler, moarop_return_type 16:59
i should make the breakpoint more precise
so i can get around these 1k calls that don't end up in P6int :)
i'd bet a big percentage of those calls should not be numifying an int, anyway. 17:00
huh 17:01
it kind of seems like all those calls are in the compilation
not in running the code
17:01 pyrimidine left 17:02 pyrimidine joined
MasterDuke so i did this: gdb --quiet --ex=run --args /home/dan/Source/perl6/install/bin/moar --libpath="/home/dan/Source/perl6/install/share/nqp/lib" nqp.moarvm -e 'sub a() { my int $i := 0; my int $s := 0; while $i < 10 { ++$i; ++$s; }; $s }; say(a())' 17:02
jeffythedragonsl what roast suite would be a good place to test github.com/MoarVM/MoarVM/issues/151
MasterDuke then `break MVM_coerce_smart_numify`
then run
timotimo nqp-m -e '' has 28.5k calls to smart_numify
MasterDuke then bt
timotimo how's that?
MasterDuke !!!
timotimo jeffythedragonsl: to me that's the hardest question
every time i want to add a test somewhere :( 17:03
no, it did the add stuff together again
it's just 13k calls
IOninja jeffythedragonsl: irclog.perlgeek.de/perl6/2017-02-05#i_14045231 17:04
MasterDuke jeffythedragonsl: i usually search roast for some of the relevant keywords, so test with `await`, `start`, etc might be a good place to look
jeffythedragonsl oh right
MasterDuke timotimo: still, 13k calls just to do nothing? 17:05
timotimo it does more than just nothing
it still compiles a qast tree down to mast
MasterDuke true, but why is it numifying things 13k times to do that 17:06
timotimo let me show you an output
jeffythedragonsl so plan should be updated manually...
MasterDuke jeffythedragonsl: yes
17:06 pyrimidine left 17:08 sanctusgray left
timotimo gdb enrages me. 17:08
ok cool. 17:10
timotimo scps the file up on hack
23MB, that's fine
timotimo compresses it a tiny bit
151kb, much better 17:11
hack.p6c.org/~timo/all_calls_to_coerce.txt.gz
MasterDuke No source file named coerce.c. The program is not being run. 17:12
looks like a giant nqp stack trace? 17:13
timotimo yeah, it's a few thousand stack traces
imagine a newline before every one that starts "at"
what exactly were you typing in all in all?
MasterDuke oh, every place in nqp that causes a MVM_coerce_smart_numify?
timotimo like, gdb --args moar --libpath=... blah/blah/blah/nqp.moarvm -e '' 17:14
every place in nqp -e ''
MasterDuke exactly what i pasted above
timotimo well, the same place occurs a whole bunch of times
you can probably dedup it easily, i didn't bother
what is --ex=run for?
anyway, i do it like this: 17:15
MasterDuke whoops, took that out, it ran the program immediately
timotimo gdb --args /home/timo/perl6/install/bin/moar --libpath=/home/timo/perl6/install/share/nqp/lib /home/timo/perl6/install/share/nqp/lib/nqp.moarvm -e ''
know what, i'll paste it
gist.github.com/timo/a43e7b066c6fd...caa26b146b 17:16
17:16 pyrimidine joined
timotimo if you just run "bt", you'll get the backtrace based off of the C stack, which will just be main -> run_program -> interp.c -> coerce_smart_numify 17:17
MasterDuke looks like the nqp function that causes the most is `/home/timo/perl6/install/share/nqp/lib/NQPCORE.setting.moarvm:is_narrower` 17:19
based on: grep 'at ' all_calls_to_coerce.txt | sort | uniq -c | sort -n
jeffythedragonsl ➜ integration git:(master) ✗ panda install Test::Util
resolve stage failed for Test::Util: Project Test::Util not found in the ecosystem. Maybe try "panda update" first?
in sub die at /home/jeff/.perl6/sources/582CB7486602954A4601BDCE5A0EAC54B05DA58A (Panda) line 246
in method resolve at /home/jeff/.perl6/sources/582CB7486602954A4601BDCE5A0EAC54B05DA58A (Panda) line 249
in sub MAIN at /home/jeff/panda/bin/panda line 20
in block <unit> at /home/jeff/panda/bin/panda line 165
Failure Summary
----------------
Test::Util(
*resolve stage failed for Test::Util: Project Test::Util not found in the ecosystem. Maybe try "panda update" first?)
timotimo no, test::util is inside roast
jeffythedragonsl I tried panda update no dice
timotimo other files that use Test::Util also have a "use lib" to go with it 17:20
so you can just steal that line in question and it'll work out all right
jeffythedragonsl but I'm getting this ➜ integration git:(master) ✗ perl6 weird-errors.t 17:21
===SORRY!===
Could not find Test::Util at line 5 in:
/home/jeff/roast/integration/t/spec/packages
/home/jeff/.perl6
/opt/rakudo/share/perl6/site
/opt/rakudo/share/perl6/vendor
/opt/rakudo/share/perl6
CompUnit::Repository::AbsolutePath<184206768>
CompUnit::Repository::NQP<183574520>
CompUnit::Repository::Perl5<183574544>
line 5 is "use Test::Util;"
17:22 pyrimidine left
timotimo i think you're expected to run these tests from inside the rakudo checkout 17:22
IOninja jeffythedragonsl: on IRC, it's common courtesy to not paste large chunks of text. Instead, please use a pastebin, like gist.github.com/ and past the URL to channel
timotimo that's why it's saying "/home/jeff/roast/integration/t/spec/packages"
normally the t/spec/ folder is placed off of rakudo/
you can just put -I../packages i guess 17:23
IOninja jeffythedragonsl: run it from rakudo's dir, using t/fudgeandrun: t/fudgeandrun t/spec/....
'cause there are also fudges: tests that will fail if run directly and need to be preprocessed by the fudger to change them to TODO/SKIP tests 17:24
17:25 lichtkind joined 17:28 leah2 left
MasterDuke timotimo: just saved 918 calls by making this an int: github.com/perl6/nqp/blob/master/s...ne.nqp#L65 17:30
passes `make m-test`
timotimo wonder if it'll also pass on jvm :)
it's sometimes weird what changing something to a native attribute in classes does to the jvm
though with locals/lexicals it should be fine? 17:31
MasterDuke trying it with jvm now (though don't expect a result anytime soon...) 17:32
timotimo hm 17:33
you can just push it to a branch and let travis do it
17:34 jeffythedragonsl left
MasterDuke i'm letting the *able server do it 17:35
timotimo OK
good that it's ... able :)
MasterDuke badum ching 17:36
timotimo can you find more places to intify? maybe some in the QAST parts? 17:37
because the QAST parts are basically shared between rakudo, nqp, 007, rubyish, ...
MasterDuke just got another 598 by making these github.com/perl6/nqp/blob/master/s...ne.nqp#L65 ints 17:38
timotimo that's the same link as before :) 17:39
MasterDuke github.com/perl6/nqp/blob/master/s...qp#L54-L58
and that passes `make m-test` also
timotimo BBIAB 17:40
17:44 leah2 joined 17:46 trnh joined, trnh left, trnh joined 17:49 agentzh joined 17:50 trnh left 17:53 agentzh left
MasterDuke timotimo: how did you get those backtraces into a file? 17:57
timotimo at first i thought i could use gdb's logging 17:58
but i ended up just gdb --args ... ... ... 2> output.txt
MasterDuke heh, ok
down to 9k
wait, i tried that and all i got was a couple lines of gdb output 17:59
nm, i did something wrong before i guess, working now 18:01
timotimo yeah, it'll only give you a few lines, you'll have to keep hitting the return key until it's done 18:03
18:03 girafe joined
MasterDuke down to 7618 18:06
still passes make m-test
timotimo that's not a lot! \o/ 18:07
MasterDuke 5850 18:13
18:18 pyrimidine joined 18:21 agentzh joined 18:23 pyrimidine left
MasterDuke 2m fewer MVM_coerce_smart_numify when running `make m-test` than before 18:36
18:39 sena_kun left
MasterDuke huh, but it seems to add 10s to rakudo parse time 18:45
18:46 labster joined 18:48 pyrimidine joined
Geth doc: c92441c3a3 | (Brad Gilbert)++ | doc/Type/Proc.pod6
Add info about discarding the three STD IO streams
18:53
18:53 pyrimidine left 18:57 agentzh left, sena_kun joined, darutoko left
MasterDuke or not, some other commit caused that 18:57
18:57 FROGGS left 19:00 pyrimidine joined 19:06 pyrimidine left 19:12 khisanth_ left 19:15 agentzh joined, Tonik joined 19:25 khisanth_ joined
cale2 gfldex: gfldex.wordpress.com/2017/02/02/ca...-question/ If we all forgot that "RTFM" was ever a thing, the programming community would be all the better for it :) 19:28
19:29 itaipu joined
RabidGravy cale2, I disagree otherwise the whole thing would be a one way street 19:31
someone has to make an effort
19:32 TEttinger joined
cale2 RabidGravy: It's the sentiment, not the message. The difference between saying "see this doc link for more info" vs "RTFM". Even if RTFM is taken as tongue in cheek (which it won't be by a new-comer), it still gives an aire of "us vs them" that's a bit uncouth 19:32
my 2 cents
RabidGravy some people need rtfm 19:33
cale2 If an individual does not have time to devote to answering a newbie question, then that individual should not answer rather than answer and be rude.
RabidGravy some people just want other people to do their thinking for them 19:34
cale2 Especially in the context of that blog, it is rude. As $_, $, and * are not exactly easy to search for in the docs.
timotimo MasterDuke: with the other commit out of the way, were you able to measure any improvement at all?
MasterDuke timotimo: i didn't notice a difference in parse time, but a perf record showed MVM_coerce_smart_numify was 0.43% before and 0.39% after (of a rakudo parse) 19:36
timotimo have you tried a count of calls for the rakudo core setting compile? 19:37
not only the parse, but also the mast stage?
MasterDuke not yet, but can give that a shot 19:38
timotimo is that exclusive or inclusive time? 19:39
because the smart numify function doesn't do very much ... hopefully
19:39 itaipu left
MasterDuke exclusive i think. whatever `perf report --call-graph=none --no-children` shows 19:40
timotimo that sounds like exclusive, yeah
i can callgrind it, though that'll take a while :D
don't have your patch, though?
MasterDuke i'll gist it 19:41
timotimo i guess i'll just create a somewhat accurate pre-count
MasterDuke gist.github.com/MasterDuke17/6eda8...24cec09706 19:43
timotimo i can't build nqp because it wants a newer moar version than is available
MasterDuke there was a bit of a mixup with commits, but if you get to HEAD on all you should be fine 19:44
19:45 cale2 left
japhb RabidGravy: I find it far more common that someone is trying to do some thinking about A, gets blocked by B, attempts to solve B, gets blocked by C, tries to solve C, gets blocked again by D, gets frustrated, and finally says "Could someone *please* just give me the answer to D?" Except that when they ask, no one sees that they're already 3 yaks deep in shavings. 19:45
timotimo nope, not possible to get it working 19:46
huh wtf 19:47
japhb In fact, I'd say that sequence is pretty damn common for me, actually. Except I'm usually somewhere between half a dozen and a dozen yaks deep by the time I finally just ask for a solution.
timotimo it's a dumb idea to forget to "make install" 19:48
japhb timotimo: Common mistakes probably aren't dumb. It shouldn't be that easy for so many people to make the same mistake so often. 19:49
RabidGravy I'd recommend Go, it's proponents claim it even does the washing up after the party and everything ;-p 19:51
19:52 andrzejku left 19:53 agentzh left
MasterDuke timotimo: a little more than 15m fewer MVM_coerce_smart_numify calls during a complete rakudo build after my patch 19:54
19:54 agentzh joined
RabidGravy whoah 19:54
but I bet it still makes it slower in this macine 19:55
nearly twice as slow to build now than a year ago :) 19:56
*shrug* I can do other things while it's building
I remember when Perl 5 used to take an hour and a half on a server 19:57
timotimo MasterDuke: if you measured with callgrind, what's the inclusive time?
MasterDuke no, i just stuck a print in MVM_coerce_smart_numify, sent those to a file, and counted the lines 19:58
timotimo oh, ok
that file must be pretty big 19:59
if it's 16m calls
MasterDuke 650mb
timotimo heh.
find anything salient?
maybe grep " at " | sort | uniq -c?
MasterDuke when gdbing ./perl6-m -e ''? haven't done that yet 20:00
timotimo oh, i thought you were refering to rakudo core setting compilation
MasterDuke gonna run a spectest first 20:01
timotimo callgrinding that is ... time-consuming :)
MasterDuke i was referring to that, but i wasn't logging anything useful, it just gave me number of times called 20:02
20:02 pyrimidine joined
timotimo OK 20:02
MasterDuke to be more precise, it was number of time that MVM_coerce_smart_numify chose to numify as an int 20:03
20:04 andrzejku joined
timotimo food time!^ 20:06
20:07 sena_kun left, pyrimidine left 20:11 bjz joined
MasterDuke timotimo: got a single failed test in t/spec/S03-operators/div.t. `Failed test 'large `int` values do not overflow prematurely' expected: 2500000000000000 got: 468729856` 20:13
any idea which change could have caused that?
jdv79 that's it! no more vim p6 syntax for me. the ui lag is intolerable. 20:20
feels like i'm editting over a 2400 baud modem on a noisy line
rindolf jdv79: heh, heh 20:21
20:27 sena_kun joined
geekosaur "vimpetuous" 20:28
(or: vimpatient...)
20:29 wamba joined
rindolf geekosaur: heh 20:30
RabidGravy jdv79, that's exactly why I still use something like vi - I still rememember that :) 20:41
timotimo MasterDuke: it's a recent moarvm change
changing "int" to "MVMint64" twice in interp.c in the div_i implementation
MasterDuke huh, i have that change in my moarvm though 20:42
timotimo Stage parse : 2214.158
MasterDuke m: say 10000000000000000 div 4
camelia rakudo-moar c0a907: OUTPUT«2500000000000000␤»
MasterDuke m: say (my int $ = 10000000000000000) div 4 20:43
camelia rakudo-moar c0a907: OUTPUT«2500000000000000␤»
RabidGravy whoah, that's RPi slowness
MasterDuke i get 468729856 for the second
timotimo: is that parse time while callgrinding?
timotimo yup 20:44
MasterDuke i suspect it's one of the method signatures i changed in src/vm/moar/QAST/QASTOperationsMAST.nqp 20:45
timotimo 47m calls to coerce_smart_numify
that is pre-all-patches 20:46
MasterDuke yup, that's what i had before. 32m after
timotimo callgrind says 2.58 inclusive, 1.21 self 20:47
RabidGravy not to be sneezed at then :)
timotimo so it basically spends 2x as much time all in all compared to just inside the function itself 20:48
of course it also has ripple effects
20:51 espadrine left, _28_ria left 20:53 smls joined
timotimo fwiw, coerce_istrue is called almost as often, but takes only half the time 20:53
yay
20:53 _28_ria joined
smls bisectable6: (*.sort)(<2 3 1>).^name 20:53
bisectable6 smls, On both starting points (old=2015.12 new=c0a907f) the exit code is 0 and the output is identical as well
smls, Output on both points:
timotimo forgot a .say? :) 20:54
smls right
bisectable6: say (*.sort)(<2 3 1>).^name
bisectable6 smls, Bisecting by output (old=2015.12 new=c0a907f) because on both starting points the exit code is 0
smls, bisect log: gist.github.com/be2c5772d33f3d7a90...326adae2ef
smls, (2016-07-30) github.com/rakudo/rakudo/commit/15...52bc89b7ca
jdv79 m: %(foo => <a c>, bar => <b d e>).values>>.elems.say # ok 21:03
camelia rakudo-moar c0a907: OUTPUT«(3 2)␤»
jdv79 m: %(foo => <a c>, bar => <b d e>).values>>.?elems.say # wut
camelia rakudo-moar c0a907: OUTPUT«((1 1 1) (1 1))␤»
jdv79 how is .? different from . when the meth exists? 21:04
IOninja .? isn't handling nodals it seems 21:05
timotimo oh, interesting
jdv79 that's your opinion;)
timotimo a good combination of things
smls Is it okay to commit a simple test for a fixed RT directly to perl6/roast, or should I always make a pull request?
jdv79 bug it?
IOninja m: %(foo => <a c>, bar => <b d e>).values.map(*.elems).say 21:06
camelia rakudo-moar c0a907: OUTPUT«(3 2)␤»
IOninja smls: just submit it
smls IOninja: ok
IOninja *just commit
timotimo yeah, feel free to skip the PR
21:06 Tonik left
IOninja m: %(foo => <a c>, bar => <b d e>).values».*elems.say 21:07
camelia rakudo-moar c0a907: OUTPUT«(((1) (1) (1)) ((1) (1)))␤»
IOninja jdv79: don't forget to file it :)
huggable: rakudobug
huggable IOninja, Report bugs by emailing to [email@hidden.address]
timotimo huggable: um i think IOninja already knows that! 21:08
huggable timotimo, nothing found
moritz m: say 5.fmt('%02d') 21:12
camelia rakudo-moar c0a907: OUTPUT«05␤»
21:18 bjz left, andrzejku left
nine Haha damnitstevan! 21:26
Turns out, Stevan actually showed the solution to the problem I discussed in my talk. That and the blocker for precompiling Inline::Perl5's users. 21:27
Exporting INIT blocks :)
21:27 sena_kun left 21:28 smls left
Geth Inline-Perl5: f461fabb67 | (Stefan Seifert)++ | 5 files
Pass =finish POD data to Perl 5 as DATA handle

use Foo:from<Perl5>;
  =finish
This data can be read by Foo by slurping <DATA>
21:28
21:28 smls joined, smls left
nine .tell lizmat github.com/niner/Inline-Perl5/commit/f461fabb67 is the solution :) 21:28
yoleaux nine: I'll pass your message to lizmat.
21:29 labster left
nine When I thought of this solution I was sitting at a bus station on the way to the airport and really hat to lought out loud. Probably confused some people around me :) 21:30
21:30 hartenfels left 21:34 espadrine joined
timotimo so little code! 21:40
21:41 rindolf left
Geth Inline-Perl5: 54e9c5aa62 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6
Remove unneeded import
21:42
nine Even less code now ;)
With that it's not worse regarding poking in rakudo's internals than Inline::Perl5 has been for a year 21:43
SmokeMachine Is some one selling stuffed camelias at fosdem? 21:44
nine SmokeMachine: was 21:45
SmokeMachine I'd love to buy one of those... :(
gfldex SmokeMachine: you could ask a chinese manufacturer to "appreciate" them 21:46
21:47 bjz joined
SmokeMachine Any thing from China takes almost 6 months to come to Brazil... if it arrives... 21:49
gfldex SmokeMachine: if you are from Barzil I would expect you to be able to build most colourful things yourself :-P 21:50
and then dance a little ofc
SmokeMachine Only at carnival 21:51
Almost there: www.aboutbrasil.com/modules/brazil-...mp;art=476 21:53
21:54 kurahaupo__ left
jdv79 I'm not sure moar like having a bunch of IO bound threads 21:56
my app seems to be coming to a halt slowly
21:56 pyrimidine joined
nine At dinner at the airport I had a very interesting conversation with a catholic flat earther who happens to be a (male) porn star. 21:56
21:57 bjz left, labster joined
nine Lives in Brussels, was on his way to a movie shoot in Prague and will bring the money he earns to a bank in Hungary to avoid taxes 21:58
Celelibi lolwut? 21:59
moritz sounds like an interesting combination 22:01
nine Apparently he's big into conspiracy theories. But I could stump him by asking why flights from Europe to New Zealand usually go via the US which would be a very large detour on his map. And why as a pilot I get much larger radio range at high altitude.
jdv79 hmm, strace said it was just doing a bunch of shed_yields. maybe a race in teh scheduler or soemthing?
22:03 pyrimidi_ joined
moritz nine: the highest indicator for somebody believing a conspiracy theory is the person believing in other conspiracy theories 22:03
nine: there seem to be personality traits and/or education/upbringing that make people believe all sorts of weird stuff 22:04
22:06 pyrimidine left 22:08 pyrimidi_ left
AlexDaniel rationalwiki.org/wiki/Crank_magnetism and rationalwiki.org/wiki/Fractal_wrongness 22:13
nine Oh yes, there was something about magnetism. But his English was not that good and I am quite tired, so I did not follow up on that. 22:15
IOninja pfft, the Earth *is* flat. How would the turtle holding it could balance it on its back were it round? Checkmate. 22:19
RabidGravy boom! 22:20
AlexDaniel u: EARTH 22:22
unicodable6 AlexDaniel, U+23DA EARTH GROUND [So] (⏚)
AlexDaniel, U+2637 TRIGRAM FOR EARTH [So] (☷)
AlexDaniel, gist.github.com/49188025ccfb5d9dd2...a858906cfe
AlexDaniel u: GLOBE 22:23
unicodable6 AlexDaniel, U+1F30D EARTH GLOBE EUROPE-AFRICA [So] (🌍)
AlexDaniel, U+1F30E EARTH GLOBE AMERICAS [So] (🌎)
AlexDaniel, gist.github.com/344a187d0392376c8b...a758717c47
22:25 RabidGravy left 22:27 jeffythedragonsl joined, jeffythedragonsl left
nine FOSDEM++ # they outsourced the video reviews to the speakers. So I can now check the video/audio of my talk, set the start and end points and their system will automatically create and upload the final version. 22:29
AlexDaniel NICE!
nine That's why there are already quite a lot of videos available 22:30
geekosaur re flat earthers, does this character use gps (or I guess galileo)?
AlexDaniel FOSDEM++ this year, FOSDEM-- all the previous years
geekosaur: you're making it more complicated, it doesn't have to be 22:31
geekosaur: just ask them what map they use, or what map they think is actually working
(spoiler: there's no flat earth map, most flat earthers admit they have no idea how the earth looks like) 22:33
nine AlexDaniel: this one en.wikipedia.org/wiki/Flat_Earth#/..._earth.png
AlexDaniel (also, they can't really explain why the “globe” version actually works)
pmurias moritz: is the "flat earth conspiracy" a pure joke? 22:35
AlexDaniel pmurias: when it comes to conspiracies, almost nothing is a joke… 22:36
I know at least one person who believes that the earth is flat… 22:37
stmuk that was a great FOSDEM
gfldex a great FOSDEM that got Perl 6 is a tautology :-> 22:39
22:40 chansen_ joined
geekosaur it's more a modern perversion, I think; seafarers knew thousands of years ago that if you watched a vessel heading off into the ocean, it didn't just get smaller, it was dropping away below the apparent ocean surface 22:41
nine geekosaur: there are obscure counter examples for pretty much everything.
22:41 Hotkeys left
geekosaur that was not so "obscure" back then 22:42
AlexDaniel nine: well, why this one? It is heavily distorted near the edge, people living in Australia can easily spot that there's something wrong… :) 22:43
22:46 Hotkeys joined
pmurias AlexDaniel: a lot of the conspiracy theories are about things that are hard to verify or complicated. You could convice someone non-technical that Rakudo is slow because it's mining bitcoins 22:47
stmuk the Ancient Greeks even accurately calculated the diameter of the Earth
AlexDaniel nine: for example, if you take this en.wikipedia.org/wiki/Goode_homolo...projection and fill the nothingness with water, then draw a circle around it… well, you might end up with something that is a bit more accurate 22:49
just a little bit though. It is going to fail one way or another in all cases 22:51
I mean, if I was going make people believe in this bullshit, I'd at least make sure they can't disprove it just by driving around a bit in Australia… 22:52
to*
nine AlexDaniel: just compare wiki.tfes.org/Bedford_Level_Experiment and en.wikipedia.org/wiki/Bedford_Level_experiment 22:57
IOninja One has 21 references and the other zero? :) 23:04
23:04 pyrimidine joined
AlexDaniel not just that, the text is almost identical 23:05
a bit more one-sideish though
geekosaur: ha! “It is proven that the ship does not sink behind a hill of water, but that it is actually perspective which hides it. This demonstrates that the earth is not a globe” 23:06
geekosaur: :|
IOninja lol
MasterDuke timotimo: github.com/perl6/nqp/pull/345 23:07
nine This is really all you have to read: "Most results have served to prove Flat Earth Theory, and although a few have claimed otherwise they have been soundly disproved by Flat Earthers."
23:07 pmurias left 23:10 Vynce joined 23:11 pyrimidine left 23:12 Vynce left
IOninja Fascinating this stuff really exist. People asking question on forums. "The phases of Venus constitute an advanced topic in FET." heh 23:15
NASA spends billions of dollars each year to fabricate 24/7 footage of round earth. Wonder why... 23:17
23:18 lizmat joined
AlexDaniel IOninja: “Why are you posting pictures of optical illusions?” :) 23:18
(in a response to this picture: www.fredseye.com/img/s4/v68/p1441921748-3.jpg ) 23:19
IOninja heh 23:23
23:28 OnlineCop joined
OnlineCop Does Perl6 have a whitespace boundary (similar to how \b is a word boundary)? 23:29
23:29 lep-delete left
OnlineCop As an example, something like this: (?<=^|\s)255\.255\.255\.255(?=\s|$) 23:29
If I tried just \b255\.255\.255\.255\b then something like 1.255.255.255.255.1 could match, where with the one using look-arounds would fail. 23:30
IOninja OnlineCop: « for left » for right or <wb> for any side 23:31
<< and >> can be used as well
ummm
m: /\b/
camelia rakudo-moar c0a907: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unsupported use of \b; in Perl 6 please use <|w> for word boundary (or « and » for left/right boundaries). If you meant the backspace character, quote it ("\b") or use it as inside a character class (<[\b]…»
IOninja OnlineCop: oh, it's <|w> not <wb>
23:31 lep-delete joined
OnlineCop Interesting construct. Okay, thank you. 23:32
23:34 lukaramu left
AlexDaniel m: say ‘hello 255.255.255.255 world’ ~~ / «‘255.255.255.255’» / 23:35
camelia rakudo-moar c0a907: OUTPUT«「255.255.255.255」␤»
23:45 wamba left 23:46 Rawriful left 23:56 newkidintown joined
newkidintown start react whenever Supply.interval(360) { scan(); } 23:56
Is there a shorter way of doing that?
IOninja newkidintown: Supply.interval(360).tap: {scan} 23:59