»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
camelia rakudo-moar 368750: OUTPUT«(timeout)» 00:00
colomon hmmm, locally that needs the end to be want-three-arg-function(&x); wants-three-arg-function(&wants-three-arg-function); 00:01
but then it works as desired.
00:01 b2gills joined
timotimo right, if you write just wants-three-arg-function, that's a call to wants-three-arg-function 00:05
you need that to be &wants-three-arg-function
00:07 mauke left 00:08 mauke joined 00:10 vendethiel left 00:11 bjz left 00:20 avuserow left, smls left, araujo left, Alula left, grondilu left, cognominal left, grettis left, nebuchadnezzar left, carlin left, camelia left, rmgk left, esaym153 left, frew left, TuxCM left, djanatyn left, pierrot left, brother left, ivanshmakov left, yogan left, ggherdov left, mattp_ left, wk_ left, Woodi left, itz left, skarn left, Celelibi left, notfix left, grep0r left, [Tux] left, dylanwh left, sorear left, flussence left, DarthGandalf left, baest left, stux|RC-only left, PZt left, tardisx left, cibs left, mauke left, [Sno] left, khisanth_ left, jac50 left, aindilis left, sivoais left, ilbot3 left, kurahaupo left, Tene left, odc left, thou left, pdcawley left, retupmoca left, Akagi201 left, _sri left, noganex left, erkan left, silug left, kshannon left, peteretep left, davido_home left, MilkmanDan left, robinsmidsrod left, abraxxa left, yakudza left, ChoHag left, BenGoldberg left, Alina-malina left, japhb left, leont left, cxreg left, firefish5000 left, gtodd left, Exodist left, lue left, timotimo left, sftp left, colomon left, haroldwu left, kst left, epochbell left, yukko left, slavik left, ggoebel11111116 left, bartolin left, vukcrni left, hobbs left, j4jackj left, SHODAN left, muraiki left, Rounin left, raydiak left, yeltzooo left, BinGOs left, jtpalmer left, mst left, jdv79 left, diegok left, Guest50117 left, xinming_ left, nickpatch left, Grrrr left, funjon left, Pleiades` left, hugme left, synopsebot left, Maddingue left, ingy left, lestrrat left, revdiablo left, coffeeyy_ left, smash left, dg left, ugator left, dwarring left, ibo2perl6 left, Meteo__ left, b2gills left, woshty left, wtw left, Tekk_ left, Possum left, ruoso left, betterwo1ld left, risou left, jantore left, avar left, yoleaux left 00:27 yukko joined, tinita_ joined, epochbell joined, renormalist joined, geekosaur joined, kst joined, haroldwu joined, colomon joined, sftp joined, timotimo joined, erkan joined, jantore joined, vendethiel- joined, mauke joined, b2gills joined, avuserow joined, BenGoldberg joined, frew joined, [Sno] joined, cognominal joined, carlin joined, funjon joined, ugator joined, Alula joined, Alina-malina joined, khisanth_ joined, grondilu joined, dwarring joined, smls joined, grettis joined, jac50 joined, slavik joined, nebuchadnezzar joined, araujo joined, ibo2perl6 joined, thou joined, Meteo__ joined, Guest50117 joined, camelia joined, pdcawley joined, muraiki joined, itz joined, japhb joined, Rounin joined, retupmoca joined, Akagi201 joined, rmgk joined, wolfe.freenode.net sets mode: +v camelia, TuxCM joined, kurahaupo joined, davido_home joined, skarn joined, esaym153 joined, MilkmanDan joined, ggoebel11111116 joined, Celelibi joined, _sri joined, cxreg joined, notfix joined, noganex joined, firefish5000 joined, Tene joined, djanatyn joined, aindilis joined, Tekk_ joined, pierrot joined, grep0r joined, odc joined, brother joined, xinming_ joined, bartolin joined, ivanshmakov joined, robinsmidsrod joined, woshty joined, abraxxa joined, [Tux] joined, vukcrni joined, gtodd joined, yogan joined, Exodist joined, ggherdov joined, dylanwh joined, hobbs joined, nickpatch joined, sorear joined, mattp_ joined, silug joined, flussence joined, DarthGandalf joined, cibs joined, wk_ joined, j4jackj joined, lue joined, baest joined, Grrrr joined, sivoais joined, yakudza joined, Woodi joined, ilbot3 joined, wtw joined, kshannon joined, peteretep joined, stux|RC-only joined, sunnavy joined, krunen joined, leedo joined, erdic joined, danaj_ joined, rjbs joined, atta joined, [particle] joined, broquaint joined, oetiker_ joined, huf joined, petercommand joined, TimToady joined, oskie joined, integral joined, mathw joined, isacloud______ joined, jepeway joined, mephinet joined, cotto joined, btyler_ joined, ugexe joined, Util joined, simcop2387 joined, eternaleye joined, labster joined, mtj joined, ntln- joined, hoelzro joined, Juerd joined, nine_ joined, jercos joined, bonsaikitten joined, dagurval_ joined, apejens joined, Ulti joined, lucs joined, bcde joined, clkao joined, ClarusCogitatio joined, \00 joined, daxim joined, Bucciarati joined, Gothmog_ joined, cosimo joined, breinbaas joined, mls joined, moritz joined, awwaiid joined, zoosha joined, ribasushi joined, dalek joined, m_athias joined, Guest12380 joined, rhr joined, Timbus joined, exixt joined, [Coke] joined, tadzik joined, sergot joined, pmichaud joined, Possum joined, Pleiades` joined, ChoHag joined, raydiak joined, ruoso joined, betterwo1ld joined, hugme joined, dg joined, smash joined, coffeeyy_ joined, revdiablo joined, lestrrat joined, ingy joined, Maddingue joined, synopsebot joined, jdv79 joined, risou joined, yeltzooo joined, BinGOs joined, SHODAN joined, diegok joined, avar joined, yoleaux joined, jtpalmer joined, tardisx joined, wolfe.freenode.net sets mode: +vvv dalek hugme yoleaux, mst joined, charsbar____ joined, BooK joined, ivan`` joined, tony-o joined, arnsholt joined, mtj_ joined, nhayashi joined, go|dfish joined
frew so how do I say, "this function takes a coderef that takes two args and returns an int?" 00:34
00:36 haroldwu left
timotimo you would be able to write --> Int into the piece of the signature restricting thingie 00:36
with the hacky workaround, you can also write (&f where &f.args == 2 and &f.returns eqv Int)
eqv wouldn't allow int subtypes or roles applied to an Int, i believe 00:37
frew huh 00:38
timotimo explain your confusion? 00:40
frew I'm not confused 00:41
timotimo oh, ok
frew I just think it needs sugar ;)
timotimo yes, it does
it's supposed to have sugar, too
frew ah ok
so if the sugar worked, what would it look like?
timotimo sub very_picky_eater(&foo(Any, Any --> Int)) { ... } 00:42
frew beautiful
timotimo i'm not 100% sure about the syntax, though
frew sure 00:43
timotimo could be more like &foo[...] or &foo:(...)
00:44 smls left
frew timotimo: that where clause doesnt pares 00:46
parse
frew tries && 00:47
yeah that fixes it
looks like where clauses are not compile time 00:48
timotimo that is true 00:49
frew I suspect that it can be done somehow, since clearly arity can be verified at compile time 00:50
timotimo well, that way lies madness :)
frew how so? 00:51
timotimo it's a rabbit hole that goes deeper than you might think
frew what I mean is
timotimo especially if you have things that do method calls
frew the belief lies madness or persuing it does
timotimo in theory i could subclass Routine or something and give it a truly nasty .arity for example :P
frew all I want is to be able to statically validate coderefs and their arities basically 00:52
00:52 Alina-malina left
frew I'm ok with the answer being perl6 can't now 00:52
timotimo the sugared way is totally going to be compile time
frew but it's something I miss a lot
right
that's what I figured
timotimo the non-sugared way ... much harder to pull off 00:53
frew right, cause it's code
00:53 Alina-malina joined
frew and running code at compile time is a good way to never compile 00:53
timotimo well, we do have BEGIN blocks, but there the programmer knows she's exposing herself to danger 00:57
frew right
timotimo also, we're not doing very deep type analysis yet; like, we hardly infer types when assignments or calls are done
frew sur 00:58
timotimo i don't think we ever use the specified return type of a subroutine to figure out if the value we get from it is an acceptable type to put into a variable or call something else with
but that's something that we (or at least I) would like to have
and the language specs surely allow for it 01:00
01:09 bcde is now known as bcode 01:15 Mso150 joined 01:20 fhelmberger joined
timotimo i'm going to sign off for the night 01:23
01:25 fhelmberger left 01:31 dayangkun joined 01:45 slavik left 01:47 Mso150 left 01:48 grettis left 01:50 jack_rabbit joined 01:57 slavik joined 02:04 kurahaupo left 02:15 leont joined 02:47 noganex_ joined 02:50 noganex left 02:57 dayangkun left 03:04 chenryn joined 03:10 Exodist left 03:13 Exodist joined 03:31 mauke_ joined 03:34 mauke left 03:38 mauke_ is now known as mauke 03:58 kurahaupo joined 04:28 Guest50117 is now known as ponbiki 04:31 BenGoldberg left 04:38 sftp left 04:42 sftp joined 04:43 virtualsue joined 04:46 ggoebel11111117 joined 04:49 ggoebel11111116 left 04:50 chenryn left 04:53 Blizzy joined 04:59 Blizzy left 05:12 chenryn joined 05:19 kurahaupo1 joined 05:21 fhelmberger joined 05:22 araujo left, araujo joined 05:25 fhelmberger left 05:49 masak joined 05:50 masak is now known as Guest62323 05:53 Guest62323 is now known as masak_grr 06:02 kurahaupo1 left
masak_grr rurban++ FROGGS++ usev6++ # Parrot committers this month 06:07
06:08 gfldex joined
masak_grr bartolin++ # RT 06:14
dalek ast: 0e579ae | usev6++ | S02-magicals/dollar-underscore.t:
Extend tests for RT #113904
06:19
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=113904
06:25 gfldex left 06:45 jack_rabbit left 06:47 Mso150 joined 06:49 FROGGS joined 06:52 Mso150 left, Mso150_z joined 06:53 kaare_ joined 06:56 kaleem joined 07:05 zakharyas joined
Tekk_ tadzik: any suggestions for how I should handle testing of this? 07:07
this being the MPD module
tadzik unsure
I'd look at how Perl 5 does it :)
Tekk_ fair enough
it's pretty usable now 07:08
has more stuff than the old one at least; you can actually control mpd :)
tadzik cool :) 07:09
07:10 wk_ left
Tekk_ parsing is nasty atm though, just a bunch of regexes lined up 07:13
probably a much nicer way to do it
dalek ast: 14144ac | usev6++ | S19-command-line-options/02-dash-n.t:
Rewrite S19-command-line-options/02-dash-n.t
07:15
nda: 8148bf2 | (David Warring)++ | bin/panda:
Don't install deps when just 'look'ing

Refinement to last PR. Set :nodeps flag to stops panda installing dependent modules when just looking.
nda: 3db0fd2 | (Tobias Leich)++ | bin/panda:
Merge pull request #108 from dwarring/patch-1

Don't install deps when just 'look'ing
07:23 darutoko joined 07:25 thou left 07:26 SamuraiJack joined 07:31 kurahaupo left
dalek kudo/nom: 76d75de | usev6++ | t/spectest.data:
Run now-passing test file
07:31
kudo/nom: 315ec62 | (Tobias Leich)++ | t/spectest.data:
Merge pull request #323 from usev6/nom

Run now-passing test file
07:41 ghostlines joined 07:42 chenryn left, chenryn joined 07:46 firefish5000 left
dalek ast: 1345d8b | usev6++ | S12-attributes/class.t:
Add test for RT #114230
07:47
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=114230
07:49 kjs_ joined 07:51 fhelmberger joined 08:01 _slade_ left
tadzik Tekk_: you probably want grammars sooner or later :) 08:02
08:02 [Sno] left, looper joined, looper is now known as uniqueloop
uniqueloop Hi there, am trying code that includes a once { } block that is only meant to be executed a single time. But Niecza is saying 'once' is an undeclared routine. But I see many examples of P6 supporting it.. What gives? 08:03
08:04 [Sno] joined 08:05 ptc_p6 joined 08:10 ptc_p6 left 08:11 ptc_p6 joined
Tekk_ tadzik: I'm not sure 08:11
because the format is so simple, I mean
08:12 dayangkun joined 08:16 mauke_ joined 08:18 mauke left 08:20 mauke_ is now known as mauke
dalek ast: eae2dc7 | usev6++ | S04-blocks-and-statements/pointy.t:
Add test for RT #115372
08:24
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115372
08:25 kjs_ left
timotimo uniqueloop: hi there 08:28
uniqueloop: niecza has fallen behind with regards to features
can you tell me where you read about niecza that made you think it'd be a better choice than rakudo for trying perl6? i'd like to rewrite whatever text that was 08:29
08:29 PZt joined 08:30 virtualsue left, aristotle joined
tadzik Tekk_: I think that grammars, apart from making complex things simplier, are also very useful for making simple things readable 08:31
they seem scary at first, but I think they're well worth taming :)
aristotle I want to concat a list with intermediate results, which would be [\~] -- except, I want to fold from the right instead of the left. but I can’t figure out any way to say something like [\(infix:<~> but assoc<right>)] -- is it just me, or is it Rakudo, or isn’t that doable in Perl 6 at all? 08:33
also while I’m at that, but of separate interest -- is there a way to declare that infix:<~r> is infix:<~> except it’s assoc<right> other than spell it out fully as sub infix:<~r> is assoc<right> { $^a ~ $^b } ? 08:35
timotimo hm, does the reduce operator actually understand right-associative operators?
aristotle yes
timotimo ah, neat
aristotle if I do the latter and say [\~r], it works 08:36
timotimo i think you can only use assoc and looser/tighter at the moment when you're declaring a new operator
rather than with a but or does "after the fact"
uniqueloop timotimo: ah, okay thank you. That makes sense since it seems to have been a oneman initiative...
timotimo not 100% sure if the specs would allow you to do it that other way
uniqueloop timotimo, i just watched an old talk that Larry gave in Japan where he was using it instead Rakudo because it gave better error messages
timotimo uniqueloop: yeah, i'm sad it's abandoned
rakudo's error messages have had a significant amount of improvement done to them, too :) 08:37
uniqueloop and became interested in P6... have to say, niecza was easy to setup... git pull ; make and i was away to the races
aristotle at this moment, but is it going to stay that way i.e. by design? (hence my “is it just Rakudo”)
uniqueloop i'll give rakudo a go now... thanks again 08:38
timotimo right; in terms of necessary commands, rakudo is also easy to install, all you need is to git pull rakudo, perl Configure.pl --gen-moar and make, make install
but it probably takes a bit longer than niecza
uniqueloop timotimo: perfect, thanks for the pointer
timotimo aristotle: that's what i tried to say with my poorly formulated sentence up there %)
aristotle uniqueloop: I used rakudobrew last night to install Rakudo first time. it was very nearly as easy 08:39
timotimo rakudobrew has the added benefit of being able to build panda for you as well
uniqueloop aristotle: cool thanks... will go that way then
08:40 SamuraiJack left
uniqueloop timotimo: justrakudoit.wordpress.com/2012/01/...ece-of-pi/ is the blog that got me to go niecza way.. it was crowing about how both implementations could run the code now. 08:40
is the problem with the web... there's no big red flag when something has bit rotted
aristotle uniqueloop: did you mean: Matt’s Script Archive 08:41
what is Niecza’s status anyway
timotimo ah, i believe that blog belongs to lue 08:42
aristotle uniqueloop: there *is* one big marker even on the URL in that case, tho
08:42 flaviusb joined, flaviusb left
aristotle it says 2012 08:42
that’s a long, long time in Perl 6 08:43
timotimo it may be a long, long time in perl 6, but not everywhere else
uniqueloop aristotle: yeah, although I wouldn't have twigged onto it anyway.. because it was saying "this code now works in niecza"!
but... obviously it was just a link to code that had changed since way back then 08:44
aristotle it’s before MoarVM even existed I think
Tekk_ uniqueloop: oh, what does your code smell like?
the talk
uniqueloop Tekk_: yes
08:44 Mso150_z left
aristotle timotimo: well that’s why I said it that way :) 08:45
08:45 hypolin joined, hypolin left
Tekk_ I am kinda disappointed with parrot 08:45
does it actually have much of a reason for existing now that perl has abandoned it?
aristotle . o O ( who ain’t? )
timotimo we haven't fully abandoned it 08:46
rurban and some others have put in some nice work for this release
and there was a nice GSoC project, too
but ... yeah :(
Tekk_ yeah
I like the idea of it
but the implementation is...hardly ideal
although 08:47
I guess you could take a very liberal interpretation and say that it helped push sun/oracle and MS into improving the dynamic capabilities of their VMs
08:48 rindolf joined
Tekk_ their wiki ssl cert expired over 3 years ago.. 08:49
dalek ast: 18a47ab | usev6++ | S06-operator-overloading/sub.t:
Add test for RT #115724
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115724
timotimo whose wiki's cert? 08:50
Tekk_ parrot's
also worth noting that 2/3 of the languages listed as active on parrot's site haven't had any real work done in at least 2 years :/ 08:51
lua hasn't been touched in what looks like 4 years, winxed had some tests updated a year ago, some examples updated 8 months ago, but no work on the language in 2 years..
timotimo well, winxed is kind of sort of "finished", no? 08:52
Tekk_ dunno
I've never looked at it until right now
I don't like js
tadzik lua was actually a complete implementation at some point, so it may not need to be touched :) 08:54
Tekk_ hm, fair point with that 08:55
it's .1 behind now (5.1 vs 5.2), but the 5.3 alpha isout 08:56
Tekk_ is installing parrot to play around with implementing a toy language
08:57 kjs_ joined 08:58 thou joined
Tekk_ I guess it's probably still useful for language prototyping 08:59
but I'm nowhere near an expert on such things
09:03 thou left
timotimo i think prototyping a language with nqp is a bit better; you also get to run it on jvm and moarvm in addition to parrot 09:04
09:11 chenryn left 09:12 bjz joined 09:18 rmgk is now known as Guest10121, rmgk_ joined, Guest10121 left, rmgk_ is now known as rmgk 09:21 pmurias joined
pmurias Tekk_: nqp + MoarVM is a much better platform to prototype your language on 09:21
09:22 cognominal left, kjs_ left
pmurias Tekk_: I think it's best currently to generate QAST instead of pir 09:23
timotimo aye, moarvm lets you develop faster 09:26
09:27 chenryn joined
Tekk_ alright 09:28
I'll look into that then
uniqueloop timotimo / aristotle : p6/moar now running and i'm once {block}'ing all over the place ;o) thanks for the help 09:30
timotimo yw :)
uniqueloop startup time for an empty program is 1/5 of what it was for niecza. very nice. 09:32
09:34 virtualsue joined
timotimo moarvm has quite a few tricks up its sleeve nowadays 09:40
09:40 rindolf left
moritz with ~150ms, startup time is not a burden anymore when used interactively 09:42
09:43 vladtz joined 09:45 rindolf joined 09:46 masak_grr is now known as masak 09:47 masak is now known as Guest98996
timotimo and the repl itself is up after just ~20ms 09:48
09:48 Guest98996 is now known as masak_grr
masak_grr yes, startup time for scripts and the REPL basically doesn't bother me anymore. 09:51
timotimo uh oh, masak is in grr mode again
masak_grr I think it was stormy on the IRCs last night.
went and lost my nick again.
all will be normal, soon.
TIL that the opposite of "equivalence relation" is "apartness relation". it's used in some constructive mathematics. 09:55
uniqueloop apartness relation sounds like something gweneth paltrow would call her ex
masak_grr uniqueloop: hey, I don't believe I have said hi to you. hi. 09:56
uniqueloop hi there masak_grr :o)
masak_grr uniqueloop: welcome to #perl6. sorry for camelia being down. the rest of us are ready to help, though. 09:57
09:57 cognominal joined
uniqueloop already been nudged in the right direction, and am playing with p6 for first time. 09:57
masak_grr \o/ 09:58
uniqueloop __/\_____\o/____ <<< oh oh.. shark in the water
FROGGS *g*
masak_grr it's me. sorry. 09:59
they told me to bring this fin.
uniqueloop heh
FROGGS phew ________o______________)\____
uniqueloop only took your arms
masak_grr FROGGS: oh no, shark took your arms!
masak_grr hands FROGGS his arms back
FROGGS :o) 10:00
10:05 [Sno] left 10:06 kurahaupo joined 10:17 erkan left 10:18 erkan joined, erkan left, erkan joined 10:26 kurahaupo left 10:28 kjs_ joined 10:32 denis_boyun_ joined
timotimo .o( hands, arms, back ... ) 10:38
10:42 dayangkun left 10:45 rurban joined 10:47 thou joined 10:49 kaleem left 10:51 thou left 10:52 kurahaupo joined 10:56 dayangkun joined 11:00 [Sno] joined, denis_boyun__ joined 11:01 denis_boyun_ left 11:04 Perl6newbie joined
Perl6newbie I found the feature comparison of the various compilers and I must say that they don't seemed to have changed much. Are those sites being updated regularly? 11:06
I checked that we page long ago and it doesn't seem like anything has changed when I just checked it again. 11:07
Sorry for the spelling errors. I am using an iPad.
It is difficult to tot and it auto-miscorrects things
See^ 11:08
That meant type.
tadzik Perl6newbie: any particular things you're missing?
Perl6newbie: there's a been a lot of work on polishing the little things lately, no big news like "we now have concurrency" anymore 11:09
colomon tadzik: please see your ClassX::StrictConstructor pull requests. ;)
tadzik colomon: oh, right on it
I swear it, one of these weekends I'll write a tool in perl 6 that uses github api to poke me about outstanding bugs and pull requests 11:10
colomon: wow, thanks. No idea how it worked before that
(maybe it did not :o)
Perl6newbie Don't you guys think you are getting bogged down in the details? How many years has it been? Groovy Ceylon etc were in development well after perl6 and they are done. 11:12
The VIM guy will probably finish his one man show programming language before perl6 Is done. 11:14
tadzik wake me up when C99 has a complete implementation 11:15
colomon tadzik: My guess is it never worked. :)
(ClassX::StrictConstructor, that is, not C99.) 11:16
11:16 smls joined
tadzik (both) :P 11:16
masak_grr Perl6newbie: thank you for your unsolicited opinion about the Perl 6 development process. 11:19
Perl6newbie: I can only answer for myself. no, I don't think we're getting "bogged down in the deatils".
colomon Perl6newbie: the thing is, Perl 6 development is *not* bogged down. It's slow, but there's clear, regular progress in spec, tests, and implementation.
masak_grr what colomon said.
we're following some kind of path to some kind of completion.
vladtz for some definition of some :-) 11:20
abraxxa Perl6newbie: what is Groovy Ceylon?
some sort of English breakfast tea? 11:21
11:21 yeahnoob joined
smls moritz, Mouq, anyone else interested in Perl 6 documentation/teaching resouces: What do you think of this way to visualize Perl 6 data structures? imgur.com/a/An3k4 11:22
(inspired by the diagrams on www.dlugosz.com/Perl6/web/info-model-1.html -- but I wanted to come up with something more compact & newbie-friendly) 11:24
rurban smls: there exist such automatic graph tools for data, forget the name
abraxxa i like it
rurban but looks very nice
vladtz yes, looks good. 11:26
smls thanks 11:27
abraxxa smls: is the list inside list example correct? what does the $? 11:28
the legend says the violet border means item container 11:29
is this a pointer to a list?
smls it puts the list in an item container
same as calling the .item method on it 11:30
although in current Rakudo those would be Parcels not List's, but I'm already thinking post-GLR... :)
abraxxa what to in perl5 land does an item container compare too?
i've read taht Parcels (whatever they are) go away
the simpler the better
i remember i had a hard time to understand why a list element can't be a list/array itself but only a reference (pointer) to one 11:31
11:31 chenryn left
smls abraxxa: item containers are sort of like P5 references, but less explicit 11:32
they prevent flattening of what's inside them
11:32 dakkar joined 11:34 lizmat joined
smls rurban, others: Superficial prettyness aside though, is this a sensible way to present P6 data structures?Does it help readers to form the right mental image of how P6 works? Will it run into problems with more complex cases? 11:35
11:37 bjz left 11:39 Perl6newbie left 11:43 bjz joined
smls abraxxa: More important than preventing flattening, is that an item container's content can be replaced at any time, which is what makes it possible to do imperative programming in Perl 6 despite the fact that most of the basic types (Str, Int, ...) are immutable. 11:49
lizmat smls: without looking at the nitty gritty of the presentation, I like it 11:50
wonder though how native variables, arrays would look like
"my int $foo = 42" for instance 11:51
smls TBH I'm not clear on the semantics of that 11:52
11:52 aristotle left
lizmat TBH, I'm not either... and wonder how much change NSA will bring 11:53
masak_grr smls++ # imgur.com/a/An3k4 11:54
smls: any chance that could be "productized" into something that can run automatically on some variable or data? 11:55
dalek ecs: 5a5d4e0 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Add lemma for NSA
11:55 masak_grr is now known as masak 11:57 pmurias left
smls masak: I was thinking more along the lines of having it generated from text written in a custom DSL (see the SVG file linked at the end for my ideas on that so far) 11:58
Generating it from live P6 objects would be theoretically possible I suppose, though it would have to be made very robust then :) 11:59
Also, can you introspect which lexpad entries are linked to a given data structure?
moritz smls++ 12:00
12:02 raiph joined
lizmat was nudged by woolfy to fill in her APW Hackathon achievements: act.useperl.at/apw2014/wiki?node=Ha...chievments 12:02
have you done yours?
smls++ indeed!! 12:03
12:03 SamuraiJack joined
colomon Hmmm. On my system, Compress::Zlib fails with Cannot locate native library 'libz.so.1.so' 12:04
seems like that's one too many .so
lizmat
.oO( that's only so-so }
12:05
moritz smls: the difficulty with generating such things is that you don't know the width of rendered text at the time you write the SVG
masak that tends to be the one stumbling block when I generate SVG. 12:06
timotimo smls: beautiful!
masak it's possible to get around if you're willing to shell out to an SVG renderer, for example Inkscape.
raiph imaginary-m: say 1, [2, 3] # does that currently flatten the 2,3? after the GLR? 12:08
moritz no, and no 12:09
masak is of the opinion that it's a mistake to stringify arrays as we currently do in Perl 6
for more on this, see github.com/masak/data-pretty 12:10
smls moritz, masak: Is there no existing layout engine that can render to SVG and take care of calculating widths and applying margin/padding?
masak smls: sure there is.
smls: if you do it all in JavaScript in the browser, for example, all the information is available at runtime. 12:11
the DOM nodes in the SVG have appropriate properties and methods.
lizmat masak: so why don't we just import Data::Pretty into the settings ?
masak lizmat: because (as far as I know) this remains my personal opinion, and not consensus. 12:12
moritz would be +1
masak I'd particularly like explicit agreement from TimToady, who I'm sure has thought about the stringification of things once or twice.
or, heck, a nod would be enough :> 12:13
lizmat fwiw, I would go for forgiveness 12:14
case in point: recent Supply.drip/item changes
12:14 chenryn joined 12:15 kaleem joined
raiph moritz: thx. and cool. that's what I thought. 12:15
masak: thanks, and nice module, and +1 12:17
colomon Ah, looks like github.com/jnthn/zavolaj/commit/97...889d84b60e broke native call's handling of Compress::Zlib
masak lizmat: it's a bit of a level difference, methinks. API naming vs differences in every output ever
lizmat masak: is there much spectest breakage with this? 12:18
masak ooh, good question. 12:19
I might have time to find out tonight.
12:20 haroldwu joined
masak but it might also break the ecosystem in unforseen ways 12:20
lizmat ok, so at least something for after tomorrow's release
masak aye. 12:22
12:22 bartolin left
masak then we have a whole month to test fallout of the change, too 12:22
12:27 xinming joined, bartolin joined 12:30 xinming_ left 12:32 dayangkun left 12:35 JimmyZ joined, thou joined 12:38 haroldwu left, haroldwu joined 12:40 thou left
colomon do we have an "edit file in place" command line option for rakudo? 12:41
-p close enough, I guess 12:42
12:42 JimmyZ left
moritz no -i option though 12:45
12:45 JimmyZ joined
masak ooh, an -i option would be nice to have 12:46
smls
.oO( for $file.lines-rw { $_ ~~ s/foo/bar/ } )
12:49
moritz Tile::File! 12:51
erm
Tie::File
12:53 Ven joined
Ven colomon: really? damn! 12:53
it fixed a failure on gtk::simple for me :( 12:54
tadzik :o
Ven :o to you too, tadzik
colomon Ven: it's okay, I'm fixing Compress::Zlib right now
Ven colomon: I might very well have broken it, y'know
that'sprobably what happened...
12:55 SamuraiJack left
colomon as far as I can tell, it's Zlib that's wrong 12:55
it was doing is native('libz.so.1')
Ven ah, maybe then :P
fair enough. I fixed it for supporting stuff like foo-1.2.3 (DOT NUMBER) 12:56
colomon your patch (it was yours?) stopped recognizing .so.1 as a "use this exactly" extension
JimmyZ well. on ubuntu ,it 's all *.so.1
colomon but I don't see why native('zlib') isn't used
12:56 rurban left
colomon and that works great on my Linux and OS X machines 12:56
JimmyZ and no *.so
Ven colomon: yes, it was mine 12:57
(I'm not more nami-doc on github,though!)
(FROGGS++)
colomon it seems to me expressing the lib's full name instead of the short name is the wrong thing to do. I mean, zlib.so.1 is never going to work on Windows, is it? 12:58
Ven not even on osx
it's .dylib on osx
colomon hmmm, yes 12:59
right 13:00
cognominal Apparently Ven is now github.com/vendethiel on github
Ven apparently
cognominal breaking links is a way of web life
Ven not really. 13:01
github.com/nami-doc/nephrite click on that ;-)
13:02 woolfy joined
colomon retupmoca: Just issued a pull request for P6-Compress-Zlib-Raw 13:02
cognominal Ven, how do you/github pull that magic?
Ven cognominal: github has redirects. has had them for a while :)
cognominal does not work for github.com/Nami-Doc though 13:03
13:03 chenryn left
Ven yep 13:03
13:06 SamuraiJack joined, Meteo__ left 13:07 bjz left
FROGGS Ven++! 13:08
dalek rlito: 579f6b2 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - add standard tests for split() - failed 49/81
Ven FROGGS: I wanted a brighter future for your kids. A future where people have better pseudos! :P
FROGGS *g* 13:09
13:10 Exodist left
moritz that's the disadvantage of big networks like freenode and githu 13:12
b
Ven: in Norwegian, "venn" means "friend", so I have a hard time not to read "Ven" and "buddy" or so :-) 13:13
Ven moritz: I'm fine with being your buddy!
13:14 cognominal left 13:16 SamuraiJack left, notfix is now known as xfix
baest moritz: Ven means friend in Danish (and actually spelled 'ven') so even more reason to read it like that 13:18
moritz baest: :-) 13:20
Ven now I like this nick even more :P 13:24
dalek rlito: b98de35 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - standard tests for split() - failed 18/81
13:25
osystem: 9875d68 | colomon++ | META.list:
Move IoC to perl6-community-modules

This lets us get needed fixes into the ecosystem. (No objection to returning control to Jason May if he fixes his version!)
13:31
tadzik heh, perhaps I should move all mine there too :| 13:32
masak tadzik: I had the same thought.
colomon I dunno if there's a lot of point to moving yours if you are responsive to pull requests. :) 13:34
13:35 fhelmberger left 13:36 kaleem left
masak I knew there was a backside to responding to those pull requests! :P 13:37
13:37 bjz joined
tadzik colomon: I'm responsive if I'm poked about it on the IRC 13:38
sometimes I accidentally see a bug report opened by someone I don't know half a year ago 13:39
probably they just waited, waited and said "screw it, this is hopeless"
and it makes me sad
colomon tadzik: on the flip side, rakudobrew and panda are important enough it might make sense to give them to the community.
tadzik yep
Ven right 13:40
13:45 Akagi201 left 13:57 Exodist joined
dalek rlito: ee5b3b7 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - standard tests for split() - failed 15/81
14:00
14:00 abraxxa left, cognominal joined 14:07 ptc_p6 left
dalek rlito: b9343ae | (Flavio S. Glock)++ | / (2 files):
Perlito5 - standard tests for split() - failed 13/81
14:16
retupmoca colomon: merged
colomon retupmoca++
retupmoca colomon++ :) 14:17
14:28 cognominal left 14:29 kjs_ left 14:35 thou joined
colomon reckons that if we can duplicate today's improvement in the number of passing modules tomorrow, we'll hit 200+ passing modules. 14:37
timotimo colomon: how many of those modules have next to no tests? :( 14:39
colomon timotimo: no easy way for me to tell
timotimo: if you want to go through the module list... 14:40
14:43 virtualsue left
timotimo should be able to hack something up with panda look 14:46
.o( not saying i'm going to ) 14:47
14:47 spider-mario joined
timotimo maybe the emmentaler script could be taught a tiny bit of TAP, so that it can record the number of tests run 14:47
FROGGS I'd like to see Panda::Reporter though 14:48
timotimo that sounds like a nice thing to have 14:49
is that supposed to report all installations you do?
or just when you give it the "permission"
FROGGS in case you enable it, yes
14:54 treehug88 joined, PZt left
FROGGS though, I'd like it to ask on first use, ala: Generate and submit test reports (yes/no/ask)? [yes] 14:57
14:58 treehug88 left 14:59 treehug88 joined
timotimo (but only if isatty ...) 15:00
15:03 virtualsue joined 15:04 kjs_ joined 15:06 kaleem joined, bjz left 15:07 bjz joined 15:08 yeahnoob left 15:11 cosimo left
dalek rlito: de0910b | (Flavio S. Glock)++ | / (2 files):
Perlito5 - js - refactor split()
15:11
Tekk_ timotimo: You know of any simple langs built on nqp+moar? 15:15
Tekk_ is out of class so he has some time to play around with that now :P
timotimo yeah 15:16
we have a rubyish and the Rakudo and NQP Internals Workshop material teaches you how to implement a phpish 15:17
Tekk_ cool 15:18
github.com/edumentab/rakudo-and-nq...als-course this? 15:19
timotimo yes
15:19 cosimo joined, cosimo left 15:20 cosimo joined
raiph Tekk_: irclog.perlgeek.de/perl6/2014-10-20#i_9536912 15:25
15:28 denis_boyun__ left
Tekk_ raiph: hm? 15:31
oh
a python implementation on moar :P 15:32
timotimo ah, yeah
but it does almost nothing
it can if and else, but not elif
:P
Tekk_ oh good 15:33
15:33 pyrimidine joined, treehug8_ joined
colomon arnsholt++ 15:33
Tekk_ can it chain else and if?
that's one of those really small things in languages that annoys me
FROGGS probably not 15:34
or... perhaps it can...
should Just Work™, depending on how it is implemented 15:35
bbiab
15:35 FROGGS left, treehug88 left
Tekk_ hmm 15:38
can someone pull the latest nqp and see if it builds with just moar? I'm getting an error in make. pastebin.com/DErszT4d 15:39
moar build via rakudobrew yesterday or the day before, nqp pulled right now
my arguments to Configure.pl were --backends=moar --prefix=$home/.rakudobrew 15:40
15:42 Ven left
PerlJam Tekk_: you didn't also --gen-moar ? 15:43
moritz Tekk_: seems $home didn't get expanded
Tekk_: did you mean $HOME?
Tekk_ moritz: yeah 15:44
and I didn't use --gen-moar
I thought htat it would just use the installed one
that*
Tekk_ is trying with --gen-moar now 15:45
15:45 ghostlines left 15:50 JimmyZ left 15:53 FROGGS[mobile] joined 15:56 kaleem left 15:57 immortal joined, immortal left, immortal joined
dalek ake: af5f6f7 | (Arne Skjærholt)++ | / (3 files):
Implement elif.
15:58
arnsholt timotimo: It actually knows how to elif too
I'd just forgotten to push the commit, due to intermittent internet
=D
Now I need to implement variables though, which is another slightly annoying part of Python 15:59
15:59 erkan left
geekosaur "slightly" 15:59
arnsholt Yeah 16:00
16:01 raiph left
timotimo %) 16:04
arnsholt I'll probably fib some of the more annoying bits initially
Like def actually being a covert *assignment* operation 16:05
16:05 census joined
arnsholt Thankfully I can probably steal jnthn++'s Rubyish variable stuff from the RaNIW slides 16:08
16:08 Akagi201 joined 16:09 thou left 16:11 thou joined 16:12 raiph joined 16:13 smls left 16:14 smls joined 16:19 dwarring left 16:20 kjs_ left
Tekk_ anyone know of a decent emacs mode for nqp? 16:23
perl-mode kinda works, but it kinda breaks when you start writing a language using it and need stuff like ["]
since it then considers the entire file after to be in quotes
16:27 treehug8_ left 16:32 treehug88 joined 16:35 Mso150_z joined
leont wonders what ["] would mean, given " is not an infix operator􏿽x85 16:36
TimToady suspects regexen 16:37
Tekk_ yeah
it's a character class
TimToady you could double it in p5 to suppress that, but in p6 you'd get a warning from <[""]> 16:38
m: /<[""]>/
TimToady predicts the "timeout" warning :)
camelia rakudo-moar 8102da: OUTPUT«(timeout)»
Tekk_ TimToady: nah, just seems that nqp-m just says it's unexpected but still works :)
Tekk_ moves on to looking at rubyish-2.nqp 16:39
16:39 virtualsue left, raiph left 16:45 prevost joined 16:46 prevost left, _slade_ joined 16:47 FROGGS joined
smls TimToady, can you give me a quick primer on "read-only"-ness? 16:49
In this case it looks like "read-only" is an attribute of a Scalar container:
my @a := $(1, 2), 3; say @a[0] = 10;
In this case, it looks like it's a property of a variable, since both $x and $y refer to the same Scalar container (correct?) but only one of them is allowed to assign to it: 16:50
sub foo ($y) { $y++ }; my $x = 2; foo($x);
Both examples die with "Cannot assign to a readonly variable or a value" btw
So do I understand it correctly that "read-only" exists both as a flag on Scalar objects, and as a flag on lexpad entries?
Or am I thinking about it all wrong?
timotimo try using .DUMP on things? 16:52
16:53 ezra1 joined
smls doesn't seem to tell me much 16:53
jnthn waves tiredly from Melbourne airport
ezra1 is there any documentation beyond jnthns presentation about perl6 jvm interop? 16:54
jnthn ezra1: Not really :/
Uh, that I know of...
jnthn isn't all knowing :)
ezra1 examples?
maybe?
16:54 camelia left
ezra1 me either :) 16:55
jnthn smls: Typically the structure is lexpad -> Scalar -> value
16:55 pyrimidine left
jnthn A Scalar is something you can assign into if it's rw flag is set 16:56
But another way to end up with readonlyness is
lexpad -> value
This is how it works in all cases really 16:57
ezra1 ok thats helpful
giving it a go. trying to do a libgdx example
if im successful ill put it up for others
16:58 camelia joined
smls jnthn: How about the case of subroutine paramter aliasing (2nd example I gave above)? 16:58
jnthn ezra1: That'd be great. Also, while I forget exactly how it's done, there is a way to take a JVM class and get all the signatures you could possibly use
smls Doesn't the variable inside the routine refer to the same Scalar as the variable at the callsite? 16:59
16:59 ChanServ sets mode: +v camelia
jnthn smls: That either ends up being lexpad -> value or lexpad -> Scalar' -> value. We do the first when we can get away with it. 16:59
16:59 dwarring joined
jnthn No, you only get that if you write "is rw" 16:59
Or use the \foo syntax 17:00
dalek albot: dc7fb70 | moritz++ | README:
update README
albot: b9ab238 | moritz++ | lib/EvalbotExecuter.pm:
bump time limits

yes, speeding up the host would be nicer; I know
17:00 camelia left
jnthn Both of which retain the original thing so it can be assigned within the routine 17:00
17:00 camelia joined
smls So, a new Scalar (without "rw" set) is created when calling the function? 17:01
jnthn Yes, if needed. (more)
These days we mostly just decontainerize the incoming value and put that in the lexpad, so avoid creating a new Scalar. BUT Scalar also plays the role of a "this doesn't flatten" indicator. 17:02
17:02 ChanServ sets mode: +v camelia, ugator left
jnthn So if we get someting in that would flatten, we still need the Scalar 17:02
Either way provides the "can't assign" semantics we need. 17:03
And the cheaper one is the better one, naturally. :) 17:04
The only way I know of to actually spot that the optimization happens if with using uppercase thingies to go introspecting...
17:05 [Sno] left
smls Is that behavior (creating a new non-rw-Scalar if needed) specced and conceptually part of the language, or is it just an implementation detail and it's ok to think of the whole thing in a more high-level sense as "read-only alias"? 17:06
( asking for imgur.com/a/An3k4 )
jnthn Well, the alias language to me has always been more about contrasting it with the more copy-ish semantics in Perl 5. 17:07
The exactly thing Rakudo does isn't spec'd. 17:08
But I think it's an acceptable optimization.
smls ok, thanks 17:11
17:11 grettis joined
TimToady well, actually, P5 is purely ref semantics at the @_ level, it's the my ($a,$b,@c) = @_ that typically does the copy 17:17
the spec language is such that if you can prove that nothing is trying to modify the ref arg or use its item nature, it doesn't need to be itemized 17:18
but it also allows pass by value 17:19
so if you already have something that is a value, and bind to normal parameter, it can just pass it "raw"
vendethiel- ezra1: that's all there is (jnthn's slides) 17:20
there's a *VERY* short article somewhere, but that's about it
TimToady moritz: how hard would it be to set up a temporary camelia on the 6-core in my house? 17:21
vendethiel- arnsholt: ooh, you're back on snake :D?
smls with "something that is a value" do you mean just things like Int and Str object that are known to be immutable value types?
17:21 ugator joined
smls or objects of custom types as well? 17:21
17:22 ptc_p6 joined
TimToady I'm not sure how it introspects that currently, but the intent is to treat user-defined value types as value types, in addition to the builtins 17:22
functionally, a value type as a WHICH that doesn't depend on its locatoin 17:23
*has
PerlJam
.oO( why don't we have several machines backing camelia yet? )
vendethiel- concurrent camelias
TimToady but that's an operational definition, not a reflective one
17:24 pyrimidine joined
jnthn TimToady: At the moment it actually looks at the nominal type constraint. 17:27
timotimo jnthn, TimToady, a word on the role Callable with a signature as its arguments? 17:28
it kind of seems like Sub, Block and friends should do that role, eh?
TimToady someday
jnthn TimToady: And if it's it !~~ Iterable and it !~~ Parcel, and Iterable !~~ it and Parcel !~~ it, then it figures a flattening thing could never be bound there.
(Note it's a compile time check.) 17:29
17:29 dakkar left
dalek rl6-roast-data: f9b458a | coke++ | / (5 files):
today (automated commit)
17:31
jnthn timotimo: Probably possible, I just wonder how easy/cheap the check can be. 17:32
timotimo: The sub-typing relation probably gets fun. It may just fall out of what we already have, though...
The whole parametric stuff is getting a good going over when I get back from vacation, though. 17:33
So we can get rid of a load of those "Expected Array[Int] but got Array[Int]" WTFs.
And cache mixins. 17:34
timotimo that sounds good :)
jnthn And have the two work out properly with serialization stuff, which means some kind of interning.
I have a design sketched out.
timotimo how do you feel about the two goals on moarvm.org's roadmap? 17:35
better optimization around closures and the stability improvements for threads/async
jnthn The GLR might be helped by #1.
#2 is really needed.
Won't have much for this release :( 17:36
The roadmap really needs an update though
So it can be focused on the moar aspects of things we need for 6.0.0
So, NSA, GLR, and NFG.
And I think the N bit of NSA is going to come before NFG at this point. 17:37
leont Yeah, "Expected Array[Int] but got Array[Int]" hit me too at some point
(well, its brother at least) 17:38
17:38 Mso150_z left, Mso150_z joined
jnthn Yeah. It wants fixing. 17:38
I managed to get a design that lets me solve 5 or so differnet problems with a single mechanism. 17:39
leont To the point where I gave up making that type parametric and rewriting that part of my framework
Sounds good
jnthn Think it should cover us for some aspects of coercion types too.
leont Yes please! 17:40
jnthn Anyway, that's what I hope to be working on post-vacation...
leont I like typed programming, but I keep running into various issues there :-/ 17:41
jnthn Yeah...well, some of them are real bugs (like the bogus error), and then some are mis-placed at the boundary of typed and untyped code. 17:42
*mis-placed exceptations
e.g. thinking that sub foo(Int @a) { }; foo([1, 2, 3]) is going to work out because it's an Array that happens to contain Int 17:43
leont I'd like some way to make that work
jnthn At best, you'll get some sugar.
leont e.g. some kind of coercion
jnthn (For Array[Int].new(1, 2, 3))
But yeah, it'll have to be a coercion, which means copying, which means it should be weighty enough to not look like it's "free" 17:44
[Coke] LHF: github.com/coke/perl6-roast-data/b....out#L1726 - this test is failing because it assumes the suggestions are in a particular order when they are not. 17:45
smls jnthn: Maybe a general mechanism for saying "Do not apply this type check to the input directly; instead, try to coerce the input to the required type and only throw an exception if that fails" 17:47
17:47 ptc_p61 joined
jnthn The reason it actually has to be an Array[Int], to be clear, is because a [...] thingy is mutable, and so even if you did go looking at "what does it contain" at the point of a type check, then proceed onwards assuming that's what you really have (or the optimizer assumes), something could at-a-distance add a thingy of a different type into the array. 17:48
smls: Yeah, I wonder if sub foo(Int() @a) { ... } can be made to work.
17:48 ptc_p6 left
jnthn But it'll have to be special-cased, I think... 17:49
To imply "is copy" I guess...
leont Couldn't 􏿽xABInt @a is copy􏿽xBB be enough? 17:50
jnthn Hm
Well, it'd mean something else I guess...
(as in, actually check the values)
And somehow we'd have to make it suppress the check on what is coming in. 17:51
Which feels a little off. But it's 5am here so I probably shouldn't be trying to design type stuff. :)
smls «To imply "is copy" I guess...» - or simply fail at compile time if it is used without "is copy", requiring the user to be explicit (and making sure they know what they're doing)
jnthn smls: That'd be more conservative, yes 17:52
17:52 rurban joined
leont 􏿽xABwithout "is copy"􏿽xBB is a bit harsh, but demanding some kind of "is ro/rw/copy" might work 17:53
jnthn *nod*
It still means a sort of special case though 17:54
17:54 danaj_ left
jnthn I mean, it's more that you want to convey Array[Int]() rathe rthan Array[Int()] 17:55
But it's not too easy to know where to dangle the () when writing it as Int @arr
And Int @arr() already means something. :) 17:56
timotimo @arr is Array[Int(Any)]? 17:57
jnthn timotimo: That does it, yes
17:57 Mso150_z_z joined
jnthn timotimo: Though not so prettily I guess ;) 17:58
17:58 Mso150_z left
jnthn Note that Int @foo is really Positional[Int] rather than Array[Int] too. 17:58
Grr. Still an hour until my flight is boarding. 17:59
18:01 pyrimidine left 18:05 Mso150 joined
timotimo :\ 18:05
dalek ast: 82d502c | usev6++ | S04-statement-modifiers/for.t:
Add test for RT #118769
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118769
18:06 Mso150_z_z left 18:08 danaj_ joined
jnthn added some stuff to act.useperl.at/apw2014/wiki?node=Ha...chievments 18:08
I've got a feeling I did more
18:08 ivanshmakov left
jnthn But that's the ones I can remember :) 18:08
timotimo you inspired people :)
moritz m: say 'timeout?' 18:10
camelia rakudo-moar 8102da: OUTPUT«(timeout)» 18:11
18:12 [Sno] joined 18:13 pyrimidine joined
masak m: say "\c[INTERNATIONAL SIGN OF TIMEOUT]" 18:15
camelia rakudo-moar 8102da: OUTPUT«(timeout)»
masak m: say time ** out 18:16
camelia rakudo-moar 8102da: OUTPUT«(timeout)»
18:16 zakharyas left
masak m: say ")tuoemit(".backwards 18:16
moritz meh, adding a new tmux window and starting the bash therein takes ~10s 18:17
camelia rakudo-moar 8102da: OUTPUT«(timeout)»
moritz nine_: did you say you have linux box lying around that we could use?
nine_: I'd have a very good use case righ now :-)
nine_ moritz: indeed
moritz: and unbelievably epic timing. Right now was the first time that I looked at my IRC client in two days 18:18
18:18 ivanshmakov joined
PerlJam moritz: irclog.perlgeek.de/perl6/2014-10-22#i_9549312 18:18
jnthn moritz: I think TimToady mentioned he had some compute resources that could go on camelia earlier too? 18:19
PerlJam aye, that's what I linked to
jnthn ah, k
dalek ast: 489ebb2 | usev6++ | S04-phasers/begin.t:
Add test for RT #119749
18:20
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=119749
PerlJam moritz: see also irclog.perlgeek.de/perl6/2014-10-22#i_9549330 :-)
masak today I thought: what if quasiquoting looked less like this: `quasi { 2 + {{{$val}}} }` and more like this: `QQ" 2 + $val "` ? 18:24
moritz I don't care who provides the computer
I just want to run camelia somewhere where it doesn't time out 18:25
masak still just a thought. syntax just an approximation.
moritz and it's not too much effort (1h to get the most important stuff running)
masak moritz++ # thanks for doing this
18:28 pyrimidine left 18:31 brrt joined
masak (that is, the important part of the above syntax is that variables are quasi-spliced by default. if you wanted to avoid that (and just represent a regular variable in the code), you'd have to `\$val`) 18:33
vendethiel- masak: I feel a bit... uneasy about current "scoping" things, btw 18:34
like, macro { $a = 1; quasi { say $a } }; #kind of surprised it works 18:35
masak vendethiel-: you are? why?
vendethiel- I'd expect something non-unquoted to be "from outside"
18:37 virtualsue joined
masak if I get what you're saying, you're suggesting a kind of non-hygiene. 18:38
jnthn thought hygiene by default was a Good Thing :)
18:39 FROGGS_ joined
masak too 18:39
vendethiel- erm, not really
masak then, explain yourself ;)
vendethiel- I'm suggesting I should have to unquote stuff from outside the quasi
*even if they're not parameters*
yes, just leave me some time to write it down :P
masak breathes down the neck of vendethiel- :P
18:40 FROGGS left
masak whether something is a parmeter or not is kinda beside the point. you can unquote any AST object, no matter where it came from. 18:40
jnthn notes that his only real use of macros in a module relied on the current semantics ;) 18:41
masak yeah, I'm not convinced at all.
the current semantics feels like one of the conceptually solid points of the macro implementation. 18:42
vendethiel- ..it did not
I'm just suggesting you need
my $a = 1; quasi { say {{{$a}}} };
jnthn In general, lexical scoping (and its visual nature) have served us quite well already
vendethiel- ... I'm not arguing against it. Or against hygiene 18:43
jnthn vendethiel-: But 1 is a literal Int, not an AST, so no need to AST inrepolate it.
vendethiel- moving a parameter to a local shouldn't have you change the use
masak vendethiel-: that... looks so wrong to me.
vendethiel-: are you *sure* you're not misunderstanding how macros currently work?
vendethiel- I am
masak I am strongly suggesting you should be less sure ;)
jnthn :P 18:44
OK, time to ponder moving gate-wards, methinks...
o/
masak \o
colomon o/
vendethiel- I know how macros work. 18:45
masak yes, you do.
vendethiel- this is not about implementation details, more about semantics
macros have "level". I can (or should be able to, I guess) have macro generating macros, etc. Not choosing at which level it's "unquoted" makes me very uneasy 18:46
masak vendethiel-: here's the invariant your proposal is breaking: whenever we do {{{$x}}}, then $x ~~ AST
vendethiel-: 1 !~~ AST
vendethiel- I know that 18:47
masak you still haven't really motivated to me how that isn't a problem with your proposal...
or if you did, it went by me.
vendethiel- because I'm not talking about technical "details" here
I'm just talking about consistency
if I have, say...
macro foo($bar) { my $a = 1; quasi { macro somename { quasi { say {{{$bar}}} + $a; } } } } 18:48
this feels terribly wrong.
masak *not to me*.
what you're proposing feels terribly wrong. 18:49
18:49 treehug88 left
masak seems we're at an impasse, though, where neither of us can manage to explain our viewpoint to the other... 18:49
mauke how do I interpolate a value of type AST under the new proposal?
vendethiel- masak: I can manage to explain my viewpoint...
It's just that I'm taking next to *every single macro system in existence* and trying to get the same... consistency 18:50
well, we're probably the only ones with that kind of "AST nodes" thingies
moritz huh? 18:51
vendethiel- huh?
moritz in lisp, the AST nodes are simply lists
vendethiel- .. which also applies to variables assigned
not here
18:51 treehug88 joined
moritz so we're hardly the only ones 18:51
masak we're definitely not the only ones. 18:52
vendethiel- changing `macro ($foo) { }` to `macro { my $foo; }` makes you change every single appearance of $foo in the quasi
masak though I do confess I haven't found two macro systems yet that work exactly alike.
vendethiel-: no, you're missing the point.
vendethiel-: you don't have to change anything if `my $foo` contains an AST. 18:53
vendethiel- right.
18:53 gfldex joined
moritz the problem is just that currently, ASTs only come from parameters 18:53
we need to change that
vendethiel- yes.
timotimo yes please
vendethiel- I'd be very happy with some kind of quoting, actually
masak vendethiel-: if that's *not* the case, then whatever you're doing with that refactor that makes something not be an AST, you must be *very* confused.
vendethiel- so I can do like, my $a = }}}1{{{; 18:54
*g* # syntaxes++
masak .oO( because {{{ }}} wasn't horrible enough... )
vendethiel- *g*² 18:55
masak re "ASTs only come from parameters" -- wrong.
they also come from quasis.
timotimo masak: don't forget to never make it impossible to have higher order macros!
vendethiel- m: macro { my $a = quasi { 1 } }
nonono what? what timo?
.oO( there's a bug in my timo )
18:56
dalek ast: 49ce219 | (David Warring [email@hidden.address] | integration/advent2010-day08.t:
added test descriptions and another "flip" test
camelia rakudo-moar 8102da: OUTPUT«(timeout)»
18:56 [Tux] left
vendethiel- macros generating macros are great =( 18:57
masak vendethiel-: timotimo was asking for that to stay possible.
mauke ... is anything arguing against that?
er
anyone*
vendethiel- masak: ooh, never make it impossible
>_>
masak vendethiel-: are you having a reading comprehension problem tonight? :P
just curious.
vendethiel- ... I might be doing something else taking all my brain. 18:58
18:58 [Tux] joined
vendethiel- Right. "never make it impossible" is a weird way to say it, though. 18:58
okay, booting up my laptop. 18:59
18:59 pyrimidine joined, pyrimidine left
timotimo well 19:00
masak is going to change a lot of stuff, probably
i wanted him to keep in mind that maybe, just maybe, you want to nest quasis and unquotes :P
moritz well, composability is a big concern for Perl 6 in general 19:01
so it would be very weird if macros didn't compose/nest
19:02 Ven joined
vendethiel- mmh. 19:02
masak rest assured that I am aiming for a macros design that will force-multiply well with other Perl 6 features, including macros and quasis.
Ven trying my stuff now...
vendethiel- ooh. it works 19:03
masak looks at both Ven and vendethiel- 19:04
whoa.
vendethiel- hello!
Ven hello!
masak o.O
vendethiel- he's quite surprised...
Ven I didn't realize I could store quasi{} result in variables
vendethiel- It's very useful
masak of course you can; they're just first-class values. 19:05
Ven I can actually do more than I first expected with the current macros...
vendethiel- I guess I only need introspections of AST nodes now...
19:05 Mso150 left
masak won't get that until we get Qtrees. 19:05
19:05 Mso150_c joined
Ven I still feel very strange about the fact that I can use a variable "just like that", but I guess I should find it nice and use it... 19:06
vendethiel- right, of course.
mauke macro foo() { my $x = quasi { 42 }; quasi { $x } } # is this code?
masak you should find it nice and use it.
vendethiel-
.oO( where is vende )
mauke: won't work - you're not unquoting $x
timotimo hmm
mauke I expect uses of foo to create AST values 19:07
masak mauke: a use of `foo()` simplifies down to `quasi { 42 }`
timotimo now that we have async sockets and multithreading, maybe hoelzro will work on xmpp again
mauke masak: good
masak mauke: you can do that in a normal sub!
no need for a macro.
mauke sure
masak sub foo() { quasi { 42 } }
mauke but I want to make sure my understanding is correct
vendethiel- m: sub foo { quasi { 42 } }; macro x { my $ast = foo; quasi { say {{{$ast}}} } }; x;
it woorks :o)
camelia rakudo-moar 8102da: OUTPUT«42␤» 19:08
masak yep.
Ven jumps around happily
masak I'm mainly surprised this is news
Ven: can I take your suggestion above as moot now? please? :)
vendethiel- I'm used to late-binding languages :)
timotimo m: say "i'm aliiiivveeeee"
vendethiel- yes. I'll still find it weird everytime someone does that, but i guess yes.
moritz timotimo: don't stretch it :-)
vendethiel- I'll need to think more about nested macros though 19:09
camelia rakudo-moar 8102da: OUTPUT«(timeout)»
timotimo ;(
masak vendethiel-: please do.
19:09 mauke_ joined 19:10 darutoko left 19:12 mauke left
vendethiel- masak: does it currently work? 19:13
dalek ast: 238cd55 | (David Warring [email@hidden.address] | S32-exceptions/misc.t:
don't assume ordering of suggestions [Coke]++
masak vendethiel-: could you be more specific?
vendethiel- may the odds be in my favour... 19:14
m: macro foo { quasi { macro x { quasi {say 1 } } } }; say x # strict checking?
camelia rakudo-moar 8102da: OUTPUT«(timeout)»
vendethiel- m: macro foo { quasi { macro x { quasi {say 1 } } } }; say x # strict checking? 19:15
camelia, I'm trusting you with this!
19:15 mauke_ is now known as mauke
camelia rakudo-moar 8102da: OUTPUT«(timeout)» 19:15
vendethiel- well. 19:16
masak vendethiel-: `x` is not in scope in the mainline.
moritz psycho tricks don't work on bots :-)
masak so no, that doesn't work.
vendethiel- masak: yah, strict checking :(.
moritz checking? just scoping
masak I have no idea what you mean by "strict checking".
it's just lexical scoping. 19:17
vendethiel- I guess name(/variable) existence needs to be done after macros have been extended
masak it's hard to discuss things with you when you just keep making up terms like that. :)
you're not even calling `foo`!
vendethiel- erm, compile-time checking of existing names
but I guess I need COMPILING to introduce the macro to an outer scope?
dalek ast: 2ad0fbe | (David Warring [email@hidden.address] | integration/advent2010-day08.t:
remove possible hash-key order dependency
hoelzro timotimo: after that deserialization bug is fixed, maybe
masak vendethiel-: you're not even calling `foo`!!!
vendethiel- I know. I've read you :P. You're suggesting it's gonna fail either way because the x macro is lexically-scoped under foo 19:18
masak vendethiel-: how could that possibly work, even in a world without "strict checking"?
yes, I am suggesting that.
19:19 rindolf left
vendethiel- so even if I called foo, it wouldn't work 19:19
masak no, not without something like COMPILING
moritz $ perl -wE 'sub foo { sub bar { 42 } }; say bar' 19:20
42
19:20 ezra1 left
moritz that's how it could possibly work :-) 19:20
just with s/sub/macro/
vendethiel- :P
masak avoids thinking of what the macro equivalent of that would do
moritz not saying that it should, mind you
vendethiel- m: our macro masak {}
moritz our-socped macros!
uhm
camelia rakudo-moar 8102da: OUTPUT«===SORRY!===␤First child of a 'bind' op must be a QAST::Var␤» 19:21
mauke sub foo { ... } == BEGIN { *foo = sub { ... }; }
moritz are packge variables consulted at compile time?
vendethiel- camelia: ??
moritz if no, our-scoped macros can be forbidden outright
vendethiel-: you asked, she answered
vendethiel- I'm surprised she did. 19:22
"I chose to have these authors write JavaScript because it's the coding language that most resembles natural language."
ugh.
I'm gonna need a shower now... brb
masak if by "natural language" you mean cussing, babbling, and saying "this" a lot. 19:28
mauke f(this);
tony-o javascript is far and away the least natural sounding language 19:29
of the ones that aren't intentionally obscure
moritz "this."
though I disagree 19:30
tony-o javascript, where 'this' can be literally anything
moritz 'defun' sounds a lot less naturally to me than 'function'
tony-o you can pick things out where it works, sure, it's not something i'd consider natural language though 19:32
mauke en.wikipedia.org/wiki/Black_Perl#.2...ck_Perl.22 19:33
brrt moritz: what about define? 19:34
brrt has always had a weak spot for scheme
tony-o i love js and perl - i just don't think js resembles natural language 19:36
geekosaur depends. if your qualification is "idiosyncratic"...
19:37 pyrimidine joined
tony-o geekosaur: lol 19:37
19:38 Ven left
masak 'night, #perl6 19:39
brrt sleep well masak 19:40
19:41 SamuraiJack joined
dalek ast: 03f5fc7 | (David Warring [email@hidden.address] | S05-mass/charsets.t:
refudged parrot blank chars - still failing, e.g.:
19:41
rlito: b7a305d | (Flavio S. Glock)++ | / (2 files):
Perlito5 - js - split() with LIMIT
19:43
moritz perl ./viv --boot --noperl6lib --compile-setting CORE.setting 19:44
Unknown warnings category 'experimental' at /home/camelia/std/boot/Cursor.pm line 31.
this is with perl 5.16 19:45
mauke too old
moritz seems like 19:47
moritz perlbrews a newer one
nine_ simply removing the 'no warnings "experimental"' would fix it on 5.16
but of course lead to warnings on 5.18
mauke that's what 'use experimental' is for 19:48
19:53 raiph joined 19:54 raiph left, pyrimidine left 19:55 Ven joined
Ven masak: really, the only thing bugging me is that, in lisp, this: 19:56
"let ((a 1)) `(a ,a))" gives me "(A 1)" (in CL) 19:57
19:57 _slade_ left
Ven and "(let ((a '(1 2))) `(a ,a))" gives "(A (1 2))". You don't have to use a different syntax or anything because it's from a let. 19:58
But of course, our non-homoiconicity bites us.
(elixir mostly gets away with not being homoiconic by having a very "simple" ast format 19:59
mauke my $a = 1; eval "a($a)" 20:00
20:01 pyrimidine joined, pyrimidine left
Ven mauke: it's EVAL :P 20:01
..and the day you'll see me using it has not come yet.
mauke it's homoiconic! see, code is made of strings and strings are also a data structure 20:02
Ven Strings are probably the worst kind of data structure :)
along with integers and booleans
mauke ok, so in lisp 1 == quasi { 1 }
20:03 FROGGS_ left
Ven erm... ... yes and no? 20:03
20:04 FROGGS[mobile] left
mauke that's how lisp gets away with only having {{{ }}} 20:04
Ven i.e., `(,'1) is just (1)
but if you try to do `(,(1 2)) instead of `(,'(1 2)) you're gonne be in trouble :P 20:05
dalek ast: 32699ba | (David Warring [email@hidden.address] | S05-mass/charsets.t:
removed debugging
20:07
brrt when's the next big conference, by the way?
Ven okay, I should go ahead and write some code...
brrt FOSDEM?
moritz has a working niecza again 20:08
brrt \o/ 20:09
20:11 SamuraiJack left
colomon moritz++ 20:11
timotimo cool 20:12
20:14 grettis left
moritz STD and rakudo compiling 20:14
20:15 colomon left
timotimo i'm liking the sound of that 20:16
20:17 census left
moritz STD done. 20:17
Ven okay, writing some tests for Text::Nephrite 20:20
20:22 camelia left, camelia joined
moritz m: say 'test test test' 20:23
20:23 Mso150_c left 20:24 ChanServ sets mode: +v camelia
camelia rakudo-moar : OUTPUT«Can't exec "./rakudo-inst/bin/perl6-m": No such file or directory at lib/EvalbotExecuter.pm line 185.␤exec (./rakudo-inst/bin/perl6-m --setting=RESTRICTED /tmp/UV16dR5bCu) failed: No such file or directory␤Lost connection to server irc.freenode.org.␤» 20:24
moritz n: say 42
camelia niecza v24-109-g48a8de3: OUTPUT«Rebuild in progress␤»
20:24 smls left
moritz n: say 42 20:24
camelia niecza v24-109-g48a8de3: OUTPUT«Rebuild in progress␤»
20:25 ptc_p61 left
Ven TUUUT... TUUUT... TUUT :P 20:25
brrt afk
20:25 brrt left 20:26 azawawi joined
moritz std: say 42 20:26
azawawi hi #perl6
yoleaux 20 Oct 2014 15:40Z <timotimo> azawawi: i can run farabi6 when i clone it manually and run bin/farabi6
20 Oct 2014 15:59Z <timotimo> azawawi: i'm not really doing anything with farabi6, but it maxes out a single cpu on my machine :\
camelia std 14ad63b: OUTPUT«ok 00:00 136m␤»
azawawi waves
Ven \o
azawawi found a 100% cpu usage scenario for a Perl 6 script :) 20:27
20:28 mauke left
[Coke] moritz: is it running on mono 3? 20:30
20:30 rurban left
dalek ast: 698a635 | usev6++ | / (3 files):
Add test for RT #76606
20:30
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76606
[Coke] guess not, as I see no new commits on niecza. 20:31
20:31 rurban joined
moritz [Coke]: nope; just a new box to play with 20:31
20:32 mauke joined, mauke left, mauke joined
dalek albot: a857d10 | moritz++ | lib/EvalbotExecuter.pm:
Disable locking for now
20:32
20:32 camelia left, camelia joined
azawawi paste.debian.net/128194/ # 100% CPU usage due to trying to trap Ctrl-C on rakudo moar 20:32
timotimo++ 20:33
20:34 ChanServ sets mode: +v camelia
moritz std: 1 20:34
camelia std 14ad63b: OUTPUT«ok 00:00 135m␤»
moritz n: say 42
camelia niecza v24-109-g48a8de3: OUTPUT«42␤»
moritz \o/
perlito: say 42
azawawi should signal(SIGINT).tap({}) cause such high cpu usage like maxing one core... 20:35
# signal(SIGINT).tap({ say "Got it" }); 20:37
20:37 kaare_ left
azawawi # 100% cpu usage 20:37
20:37 colomon joined, mauke left
azawawi profiles it 20:38
moritz m: say 42 20:39
camelia rakudo-moar 315ec6: OUTPUT«42␤»
20:40 camelia left
bartolin moritz++ 20:40
20:41 camelia joined
timotimo my lord ... it's beautiful! 20:41
20:41 mauke joined 20:42 ChanServ sets mode: +v camelia 20:43 spider-mario left
azawawi timotimo: it is the cursed Ctrl-C signal trapping that is causing the 100% cpu usage ... 20:44
timotimo: and hi :)
20:45 mauke_ joined
nine_ moritz: MAKEFLAGS="-j 4" might speed things up a bit 20:45
20:46 mauke left
moritz nine_: ... except in the star build, where it messes things up :-) 20:47
20:48 mauke joined
moritz anyway, star building now, cron jobs etc. coming tomorrow 20:48
nine_++ # hosting
sleep&
20:48 kurahaupo left 20:50 mauke_ left
timotimo hi azawawi 20:50
that's annoying ;(
nine_++ # machinez
20:52 grettis joined
colomon nine_: hosting? 20:54
20:58 grettis left
azawawi so basically a --profile of a signal tap is practically useless 20:59
is that done in libuv?
21:00 dalek left, mauke_ joined, Util left, erdic left 21:01 mauke left 21:02 denis_boyun joined
Ven ended up reading about canada news and not writing code 21:02
world :(
21:02 Ven left, erdic joined 21:03 treehug88 left, dalek joined, ChanServ sets mode: +v dalek, mauke_ is now known as mauke 21:04 rindolf joined, grettis joined 21:06 Util joined
dalek ast: 8a07d59 | usev6++ | S03-binding/ro.t:
Add test for RT #65900
21:06
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=65900
21:09 grettis left 21:10 jack_rabbit joined 21:11 mauke_ joined 21:13 mauke left 21:14 colomon left, azawawi left 21:15 rurban left 21:16 bbkr joined, mauke_ is now known as mauke
bbkr Just got Segmentation fault while building rakudo on MoarVM under OS X 10.10 Yosemite. Has anyone experienced this? 21:17
2014.09 Star 21:18
21:25 BenGoldberg joined 21:33 rindolf left
tony-o bbkr: i'll give it a shot after work 21:34
21:35 grettis joined, ive joined 21:36 mauke_ joined
bbkr I've tried rakudobrew and it compiled "This is perl6 version 2014.09-258-g315ec62 built on MoarVM version 2014.09-54-g03ac9a7" fine 21:36
21:39 mauke left, colomon joined 21:40 cognominal joined, denis_boyun left, mauke_ is now known as mauke
bbkr tony-o: when you build rakudo moar on OS X can you try to reproduce this - rt.perl.org/Ticket/Display.html?id=122803 - and see if it crashes randomly? I cannot reproduce it outside OS X. 21:45
21:46 raiph joined
tony-o bbkr: i don't have rakudo brew, i always build from the git repo - is that where you got this? 21:47
bbkr yes, i think rakudo brew just do the same 21:48
21:48 ive left 21:49 mauke_ joined 21:51 mauke left 21:52 mauke_ is now known as mauke
bbkr I mean - SegFault occured when i compiled 2014-09 Star from tarball. I have a feeling that something is broken with concurrency under OS X causing this SF. Thats why I asked you also if you can reproduce RT bug on any recent rakudo. 21:52
21:59 gfldex left 22:08 virtualsue left 22:11 bbkr left 22:18 raiph left 22:21 lizmat_ joined, lizmat left 22:23 djanatyn left, djanatyn joined 22:37 kurahaupo joined 23:04 thou left 23:19 kjs_ joined 23:30 kjs_ left 23:33 vike joined