»ö« 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»: 10987654321 | ||
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«10987654321» | ||
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«hellogoodbye» | ||
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/blob/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 1Actually 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«1hey» | ||
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 TABat <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: Moreunicmp: 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: Moreunicmp: 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 characterat <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 1Actually 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 |