»ö« 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.
00:08 xragnar left 00:09 xragnar joined 00:20 BenGoldberg left, Ben_Goldberg joined 00:21 ajr_ left 00:24 raiph joined 00:34 rindolf left, Colby` joined 00:35 Pleiades` left, Colby` is now known as Pleiades`
avuserow m: .say for "one two".comb(/\w+/) 00:40
camelia rakudo-moar 851811: OUTPUT«one␤two␤»
Ben_Goldberg r: .say for "one two".words 00:41
camelia rakudo-jvm 851811: OUTPUT«(timeout)»
..rakudo-{parrot,moar} 851811: OUTPUT«one␤two␤»
Ben_Goldberg m: .say for "one two".comb(/'o'/) 00:42
camelia rakudo-moar 851811: OUTPUT«o␤o␤»
Ben_Goldberg m: .say for "one two".comb(/[oe]/)
camelia ( no output )
timotimo you may want <[oe]> there to get a character class 00:44
00:46 raiph left 01:07 SevenWolf left 01:19 SamuraiJack joined 01:23 FOAD left 01:35 FOAD joined 01:42 Sqirrel left 01:43 Su-Shee_ joined 01:45 Sqirrel joined 01:47 Su-Shee left 02:01 SamuraiJack left, klapperl_ left 02:02 Ben_Goldberg left 02:03 klapperl joined 02:15 xenoterracide joined 02:35 hoverboard joined 02:46 thou left 02:48 bjz joined 02:50 thou joined 02:55 bjz left 02:58 molaf left 02:59 gtodd left 03:00 BenGoldberg joined 03:21 kaare_ joined, bbkr joined, bbkr left 03:45 chenryn left 04:07 dwarring left 04:21 kaare_ left
BenGoldberg Is there any way, with a grep sub { .... } list, for that sub to indicate that it will return false (or true) for all future items? It would be a cool optimization, if it were possible. 04:43
04:43 xenoterracide left
BenGoldberg OTOH, I suppose that branch prediction might take care of that... nevermind, I guess. 04:44
04:45 SevenWolf joined 04:52 kaare_ joined 05:06 rindolf joined 05:12 anaeem1 joined 05:15 SamuraiJack joined, aindilis left 05:16 hoverboard is now known as moistcherry 05:18 anaeem1 left, SamuraiJack left 05:20 SamuraiJack joined 05:23 anaeem1_ joined 05:27 anaeem1_ left, BenGoldberg left 05:33 xinming joined 05:36 anaeem1_ joined, xinming_ left 05:58 denis_boyun_ joined, kaleem joined 06:03 FROGGS left 06:10 jack_rabbit joined 06:23 jack_rabbit left 06:24 jack_rabbit joined 06:26 moistcherry is now known as icanteven, icanteven is now known as hoverboard 06:34 bjz joined 06:42 grondilu joined 06:43 dmol joined 06:51 hoverboard left 07:17 fhelmberger joined 07:21 zakharyas joined 07:28 [Sno] joined 07:29 darutoko joined
sergot morning! :) 07:30
moritz \o 07:31
07:34 pdcawley joined 07:45 zakharyas left 07:51 jack_rabbit left
lizmat good *, #perl6! 07:54
Timbus if i define a BUILD in a role to init some private vars, it will break the implementing class' default build if it hasn't defined that 07:56
any workarounds? 07:57
07:57 zakharyas joined
lizmat BUILD is usually a submethod in a class 07:58
Timbus yeah, i can turn the role into a class and inherit
lizmat you mean, pun the role? yes
Timbus are you saying.. TIOOWTDI :o 08:01
08:03 bowtie left 08:08 Su-Shee_ is now known as Su-Shee
tadzik Timbus: oh, it's tricky 08:08
you have to put the ones you expect to be defaultly-set in BUILD's signature 08:09
so, submethod BUILD(:$!x, :$!y) etc
then your 'has $.x = foo; has $.y = bar' will work
08:09 bowtie joined
dalek kudo/nom: c04c790 | (Elizabeth Mattijsen)++ | src/core/Distro.pm:
Must check against lowercased name
08:15
Timbus tadzik, ah no, i mean i am setting some private attributes for a role, not a class. I'm doing it in BUILD because the private vars are hashes and i need a loop, but composing a role will attach the BUILD to the class and break the classes' default BUILD 08:27
tadzik ah, yes
well, is your build a submethod? 08:28
lizmat Timbus: if a class provides a method, it should have precedence, no?
Timbus if a class does not provide a method, it doesnt work
is what the issue is
and yes, its a submethod 08:29
m: role A { submethod BUILD {} }; class B does A { has $.thing }; say B.new(thing => 5).thing 08:30
camelia rakudo-moar 851811: OUTPUT«(Any)␤»
dalek kudo/nom: edcfe2d | (Elizabeth Mattijsen)++ | src/core/Kernel.pm:
Don't need to lc what is already lc
08:31
lizmat afk&
Timbus eh, i guess i can use %!stuff = Hash.new.push: ...; 08:35
08:40 zlurker left
masak antenoon, #perl6 08:42
moritz \o masak 08:43
masak Timbus: shorter way to spell 'Hash.new': '{}' 08:46
moritz beware, {} is an *itemized* hash 08:47
Timbus ah of course 08:48
masak moritz: good point. but the .push should cancel that out, methinks.
moritz masak: yes, probably 08:49
09:00 donaldh_ joined, denis_boyun_ left 09:16 virtualsue joined
virtualsue o/ 09:17
moritz \o virtualsue 09:18
09:19 zakharyas left, rindolf left 09:20 pecastro joined 09:24 thou left 09:37 donaldh_ left 09:40 anaeem___ joined 09:42 SevenWolf left, anaeem1_ left 09:45 denis_boyun_ joined 09:47 Psyche^_ joined 09:50 fhelmberger left 09:51 Psyche^ left 10:05 [Sno] left 10:06 [Sno] joined
masak nwc10: medium.com/p/2a7af4788b10 -- news.ycombinator.com/item?id=7801834 10:18
nwc10 oh, curious thanks 10:19
will read aftet I've done my rain dance
(heading outside to find a Post Office. Hopefully before it rains)
masak I'm starting to dislike the expression "[language X] is eating [language Y]'s lunch". 10:20
nwc10 while on the subject of futurology, is there anything interesting about PHP?
masak it implies that the zero-sum grabbing of mindshare is some kind of very important goal.
virtualsue i've disliked it for awhile. it was particularly galling at yapc::eu last year. 10:21
nwc10 yes. And ignores the fact that competant programmers know multiple languages, and, properly, more than one paradigm
masak virtualsue: who was (allegedly) eating whose lunch at YAPC::EU last year? 10:22
nwc10: that's what perhaps frustrates me the most about any kind of language turf war-ish discussions. multidimensional things get crammed into one dimension. gray areas get rounded off to black and white. 10:23
virtualsue perl6 was killing perl5, according to some people based in london who are having trouble recruiting for other reasons
masak virtualsue: oh, that.
virtualsue: I think many of us here were concerned about the vibes those sent off.
virtualsue: some of us went to their talks. (I didn't, but I watched them afterwards.) they came off as not so knowledgeable, and not so coherent. 10:24
whether the sharpness of their criticism had been cut off at knee height by TimToady++'s keynote, or whether they were simply not that coordinated from the beginning, I can't really tell. 10:25
virtualsue eventually they started talking to p5p and stopped whining as much 10:26
10:26 telex left
masak virtualsue: in short, I expected a major-ish confrontation at that conf. instead, I found cutely confused quarrelers with bigger problems than Perl 6. 10:26
virtualsue their problem is obvious -- a big gnarly legacy codebase 10:27
masak something that Perl 6 isn't going to swoop in and solve anyway :)
virtualsue at any rate p5 is still going strong so how p6 affects them is a big mystery :-) 10:28
masak it's an architecture problem, hopefully solvable by design and gradual asset capture
10:28 telex joined
virtualsue is off to lunch 10:28
10:29 virtualsue left
masak .oO( virtualsue is eating Perl 6's lunch! ) 10:29
"Seriously — if Python 3 had enough enticing new features, more people would migrate to it (at least for new projects), and more people would be inclined to port their Python 2 libs/projects." -- from medium.com/p/2a7af4788b10 10:30
also of note: Perl 6 does 1, 2, and 3 on the list of 5 things that would make py3 interesting. 10:31
arguably number 4, too.
we should probably consider number 5.
lizmat you could argue that jnthn's code golfer is just that :-) 10:36
sergot masak: do you mean the REPL? 10:37
lizmat yes :-) 10:38
tadzik that sounds like a fun task 10:39
nwc10 large legacy codebase isn't their only issue. They also have a somewhat excentric development environment. To put it mildly
In that anyone sane runs a mile after their tech test
masak: on ycombinator, "Ironing out the warts is good, but this was not the right time. This should have happened 7-10 years ago." -- but py3k *started* 8 years ago, and shipped 6 years ago 10:44
I took an umbrella. This prevented it from raining. However, nearest Post Office is out to lunch from 12:00 to 14:00
yay
10:45 kivutar joined 10:57 donaldh_ joined
nwc10 masak: original author wants "proper closures" - what is wrong with Python's current closure implementation? I thought it was only PHP that had LTA closures 10:58
tadzik no, Python's are broken too 10:59
nwc10: github.com/django/django/pull/2692 #6
whoops, wrong link
www.toptal.com/python/top-10-mistak...mmers-make
this one
nwc10 oh gosh. So this is something that Perl 5 got right over a decade ago? 11:01
and Python 3 didn't fix?
tadzik yep 11:02
nwc10 I assume that the current approach is consistent and Pythonic
tadzik but I've found that in Python culture FP is generally discouraged
"don't use lambdas, they're making the code confusing"
maybe they wouldn't if they got them right
11:04 chenryn joined
moritz afaict you can only get closures right if you explicitly declare lexicals 11:04
everything else gives a WAT in one case or another
masak +1 11:05
how does the situation look in CoffeeScript? 11:06
nwc10 sigh. HOP was probably the most useful Perl book I ever read 11:07
(or failed to review)
placeholder review remains "Don't just buy this book, read it"
masak oh, interesting. CoffeeScript does the *other* thing compared to Python.
moritz nwc10: aye, HOP is awesome 11:08
masak (it doesn't shadow the outer declaration, but instead allows you to assign to the variable from the closure)
nwc10 wibbles
masak it's easy to confirm at "Try CoffeeScript" over at coffeescript.org/ 11:09
moritz: what WAT falls out of that configuration? I mean, apart from the usual of "any typo and you're toast" related to declaring lexicals but not specifically to closures.
moritz masak: currently I'm not aware of any 11:11
11:12 anaeem___ left
moritz masak: (I wasn't aware of coffeescript's solution so far) 11:12
masak me neither.
but it seems to me Python could've done that from the start and been in a better situation.
I can see why they're not changing the semantics *now*. 11:13
moritz: one slight problem even with CoffeeScript's version: if you start moving closures and inner functions around, lexical variables may be created or destroyed without you noticing. 11:14
moritz: not sure what practical problems that would lead to, and if the extra safety of declaring the variable is "worth it". it's probably hard to quantify. 11:15
11:17 donaldh left 11:18 donaldh_ is now known as donaldh 11:22 kivutar left
moritz masak: having heavily refactored (190+ commits) a legacy codebase in the last two months, I'm incredibly thankful for every bit of compiler check that perl gives me, most notable strict variable declarations 11:25
masak *nod* 11:31
11:31 sivoais left
masak moritz: I'm currently toying with thoughts of what a language would look like which took refactorings and static knowledge about the code into account from the start. 11:32
train &
moritz masak: for one, some kind of escape analysis would be great 11:33
masak: one of the questions I asked myself most often was "do modifiations of $variable ever need to escape from this scope?"
masak: because that kinda determines how easy or hard it is to break out a chunk of code into a separate routine 11:34
11:37 skids left 11:39 cooper left
dalek Heuristic branch merge: pushed 74 commits to rakudo/eleven by lizmat 11:39
11:43 cooper joined
lizmat FROGGS, jnthn: I'm thinking about merging eleven into nom tomorrow 11:56
so that we have some weeks to find out about problems in the ecosystem before the next release 11:57
is that a plan?
11:59 cooper left
dalek ast: 63897c2 | (Elizabeth Mattijsen)++ | S17-supply/ (3 files):
Unfudge flapping tests

It is either that or mark them as skip. We need more data-points. Marking them as todo is not going to help :-)
11:59
timotimo i don't feel confident praising perl6's multithreaded capabilities as long as we're running into trouble as soon as someone uses promises :\ 12:02
lizmat timotimo: I agree... I also see too many unreproducible test failures 12:04
timotimo at least our syntax and helper classes and stuff are neat 12:06
i'm not sure what the semantics will look like in the future for things like concurrently accessing lexicals; do we get transactional memory-like behavior automatically, or locks or whatever 12:07
lizmat no, jnthn is very clear on that
no locks on variables
timotimo OK, that's good 12:08
lizmat if you need to write to something from multiple threads, you will need to serialize
timotimo because that would be hell :)
another thing i just thought of
lizmat that's where Perl 5 ithreads went
serialize the access the writes
by using on e.g.
on()
12:08 cooper joined
timotimo sometimes you use a module to share a "data cache" between multiple "users"; if we have explicit versions pulling in different instances/versions, those will not see the same data cache ... so ... 12:09
not sure where i was going with that
lizmat S17:856
synopsebot Link: perlcabal.org/syn/S17.html#line_856
lizmat timotimo: well that's a generic problem 12:10
timotimo i suppose so
lizmat there is no generic solution :-(
timotimo searching for "on" in S17 is not a good idea %)
414 matches, mostly inside words %)
lizmat (hence my link) 12:11
12:11 kivutar joined
moritz belives that over-sharing tends to be a bigger problem than under-sharing 12:11
lizmat one of the big mindset changes that Perl 5 developers will need to make when moving to Perl 6
timotimo mhh
lizmat is that multiple versions of the same module will co-exist during execution 12:12
this is great from a maintainability point of view
but it does have its issues from a development point of view
timotimo lizmat: when you held your "how the camel is de-coccooning" talk, was rakudobrew already released?
because that's an even shorter way to get started :)
lizmat timotimo: good point! 12:13
I'm not a rakudobrew user myself... will add to the slides!
timotimo is running around praising rakudobrew to everyone everywhere
i don't use it myself, either, but it's certainly a great tool :)
tadzik++ # rakudobrew
tadzik :} 12:14
lizmat afk for a bit& 12:15
colomon is heavily using rakudobrew these days. 12:16
tadzik and there are not many bugs reported for it, so it must work pretty well :) 12:17
masak hello from a train! \o/
moritz: interesting. hadn't thought so much about escape analysis of modifications.
moritz: have you read featherweightmusings.blogspot.se/20...rowed.html ? what's your opinion of it? 12:18
moritz masak: sound very interesting, but I can't tell how well it works without trying it on a big-ish project 12:22
masak moritz: same here. 12:29
moritz: I'm very curious about Servo, the big-ish web browser project that's driving much of the evolution of Rust.
moritz: in my view, what they're doing is awesome, both (a) pushing the envelope of safe, threaded browsers, and (b) using their language for something real, a "killer app" to make sure the language works. 12:30
moritz masak: aye, I'm in violent agreement 12:31
12:33 dayangkun left, dayangkun joined
masak .oO( agreement is asymptotically heading towards the ultraviolent ) 12:35
12:40 user3 joined, user3 left 12:46 cooper left 12:53 kaare_ left, cooper joined 12:55 kivutar left, jnap joined 12:58 virtualsue joined 13:05 Ven joined 13:14 guru joined, guru is now known as ajr_ 13:16 sivoais joined 13:23 Tene left, djanatyn left, xalbo left 13:27 colomon left 13:34 Ven left 13:41 kaare_ joined, fhelmberger joined 13:43 fhelmberger left
lizmat commute to AmsterdamX meeting& 13:43
13:46 fhelmberger joined 13:47 colomon joined 13:49 fhelmberger left 13:54 btyler joined 13:57 fhelmberger joined 13:58 treehug88 joined 13:59 thou joined 14:00 fhelmberger left 14:06 xenoterracide joined
Ulti is there a specific baggy type that is numeric keys only? 14:07
because I was just thinking if there is it would be nice to have some basic stats functions on it like mean/media/mode/stddev 14:08
*median
masak Ulti: no, but there's nothing to prevent you from writing subs that take a Bag and assume it to have numeric keys only. 14:12
Ulti well I can make my own NumBag or something too 14:13
or StatsBag
MagicBag 14:14
its just I wrote some stats code for z-scores in Perl5 and basically used a hash in the same way bags operate in Perl6 14:15
masak it doesn't really feel like a new named type to me, for some reason.
colomon I'm with masak here
masak well, you could express it as a subset relation, I guess.
Ulti yeah I agree but you want to know for sure the keys are numeric though
masak but subset kind of implies *checking* for the condition all the time, and I'm not sure you want to do that either.
Ulti well I guess they dont need to be for mode
you can have that for categorical things
colomon More precisely, it could certainly be a new named type, but that's a lot of work for the tiny (as far as I can see) benefit of having the stats functions be methods rather than subs.
Ulti like the average animal in a bag of zoo animals is probably 'ant' 14:16
colomon finds programming is often balancing theoretical beauty with practical simplicity.
Ulti well if there was already a numeric bag type it makes sense to add them there 14:17
14:17 anaeem1 joined
Ulti since they are general functions on that type of datastructure and actually a lot nicer than when you just have a list of observations 14:17
colomon but there isn't; there is simply a Bag type which can have numeric keys 14:18
(I think, didn't lizmat++ make that work?)
Ulti yeah
masak I like how we keep raising the water level of theoretical beauty in our languages. back when I started programming in the 80s, BASIC was par for the course, but it feels terribly ad-hoc and disorganized now, syntactically and semantically.
these days Haskell still feels pretty theoretical, but wait a few decades and you'll see lots of languages having drifted in the Haskell direction. 14:19
moritz it felt terribly disorganized even back then :-)
masak yeah, maybe I just didn't notice :) 14:20
colomon yeah, switching to Forth from Basic back in '85 was a huge relief
14:21 jnap left
Rounin Hm... With Perl 6, you can restrict the type of parameters in fairly arbitrary ways anyway, right 14:21
So you might be able to restrict the type that way 14:22
As long as it's passed to a function somewhere
14:22 anaeem1 left, jnap joined
Rounin Ah right... You thought of that already 14:22
colomon sure, something like Bag $b where { all($b.keys) ~~ Real } 14:23
Rounin Problem solved, then
colomon is pretty sure there is a better way of writing what he just wrote
14:24 bluescreen10 joined 14:28 colomon left 14:29 skids joined
Woodi hey, guys ! It's Perl ! you can be sure one day someone will write NumBags and push it to CPAN ;) 14:29
tadzik Numbahs!
Woodi AllWaysShouldBeAllowed or something like that :) 14:30
14:31 bjz left
Rounin Perhaps someone will write a UniversalBag, which is a NumericBag which takes any object as a key, by taking the hash of the object... 14:32
14:34 liztormato joined
liztormato Rounin: You can already do that with Sets, Bags and Mixes 14:35
14:35 zakharyas joined
Woodi btw. how many 'read' functions are in C ? all of them are a bit different and we probably want to have access to all of them. generally: we probably want to have all low-level functions available and build some bigger, MRUs blocks out of them. 14:36
liztormato It actually uses the .WHICH as the key internally
Rounin liztormato: That was the joke. 14:37
14:37 liztormato left 14:38 liztormato joined, anaeem1 joined
liztormato Ah ok. ;-) 14:39
Woodi read, fread, reads via mmapped file, others ?
14:40 zakharyas left
tadzik well, if anyone needs access to low level stuff they can always NativeCall it 14:41
liztormato sysread? Or is that a P5ism?
tadzik I thinkit is
14:43 anaeem1 left
Woodi and async reads probably. I wonder how to put them logically into Perl6. I have impression that Parrit have them a bit scattered inside... 14:43
Parrot, of course... 14:44
liztormato Async reads in Moar come as supplies
Woodi chicken bones in the hands are not best friends of keyboard :)
14:44 FROGGS joined
Woodi ppls will wont them anyway :) 14:45
14:45 molaf joined
liztormato FROGGS: Any objections against merging eleven tomorrow? 14:46
FROGGS liztormato: did jnthn agree? 14:47
liztormato Basically yes. Just not before the Bajor release 14:48
14:49 rindolf joined
FROGGS okay... let me check one more time that nothing breaks when we do that, okay? 14:49
liztormato Ok
14:51 anaeem1 joined
liztormato Fwiw, I also checked already ;-) 14:53
14:53 colomon joined, zakharyas joined
jnthn evening, #perl6 14:55
FROGGS hi jnthn
liztormato jnthn: o/ 14:56
jnthn
.oO( bajor bajor bajor bajor mushroom mushroom )
FROGGS O.o 14:57
liztormato Emissary!
colomon \o 14:58
virtualsue snake!
14:59 zakharyas left
donaldh bump github.com/rakudo/rakudo/pull/269 15:05
15:05 kaleem left 15:06 zakharyas joined
donaldh would like to do more housekeeping but doesn't want to leave a pile of pull requests. 15:07
huf what's a bajor? (apart from a person from bavaria) 15:08
liztormato DS9 15:09
huf oh.
15:12 kivutar joined, liztormato left 15:15 guru joined, ajr_ left, guru is now known as Guest21315 15:16 Guest21315 is now known as ajr_
jnthn donaldh: I'm +1 to that, but it needs a manual merge by now... 15:18
donaldh jnthn: yes I saw commits to IO.pm :-/ 15:19
Ulti yeah I will probably make NumBag or StatsBag :S just because a check of every value being a number is kind of expensive for dispatching
15:20 anaeem1 left, anaeem1_ joined
Ulti though I guess I only really need to check for List or Baggy 15:20
and just assume its numbers and fail as soon as it's not
15:21 denis_boyun_ left 15:30 dayangkun left 15:31 pdcawley left 15:36 pdcawley joined 15:39 zakharyas left 15:41 SamuraiJack left, zakharyas joined 15:43 spider-mario joined
TimToady is vaguely amused that our terminology has become "wrong clone of the same closure", when it should probably be "wrong closure of the same function" or some such 15:46
since closing over the context is what the clone is all about
masak aye 15:48
jnthn Just make them work right, then we can have closure on the issue :P
masak meanwhile, Doug Crockford seems to be using "closure" as some kind of mass noun. 15:49
15:49 dayangkun joined
masak as in, "JavaScript has closure". 15:49
jnthn That sounds weird to my ears... 15:50
As if I'm listening to a non-native speaker who doesn't the plurals...
TimToady Closure is one of the properties of JavaScript. 15:51
jnthn I guess I can see it. It's just not how I'd say it.
TimToady I think it's the mathematical use of "closure", like "associativity"
masak jnthn: same. 15:52
TimToady
.oO(I'll have a pint of closure, please.)
masak TimToady: yeah. it would feel less weird if not for the fact that he's the *only* one using it like that.
Ulti cognominal I was wondering where do I need to shove github.com/cognominal/sublime-perl6 for Sublime to see it? 15:53
I'm just adding a SublimeLinter extension for Perl6 and wanted to hook it on to an actual Syntax type that wasn't Perl
TimToady masak: perhaps the real problem is "has". would you be happier with "JavaScript supports closure."? 15:54
15:54 zakharyas left
FROGGS lizmat: I cannot rebootstrap panda atm, so I'd like to fix that before we merge 15:54
masak TimToady: ...not really. 15:55
TimToady: it's not so much about right usage or wrong usage, even. 15:56
TimToady: I think it's simply a matter of in which context people tend to use the word.
TimToady: for example, I totally agree with what you said about "wrong closure of the same function"
15:57 hoverboard joined
TimToady linguistically we often use the specific to refer to the generic, so I can see how this came about: it's really the wrong specific closure of a generic closure 15:59
so basically it's kinda like "new Closure" vs "Closure" 16:00
so maybe we need to say "It's the wrong closure:D of the closure:U" :) 16:01
masak so, it's a typical case of martinfowler.com/bliki/TypeInstanceHomonym.html ? 16:02
donaldh "javascript has closure" sounds a lot like "javascript has achieved closure" which makes it sound like it is complete, finished.
masak donaldh: yes, you sort of have to squint to see past that everyday meaning.
donaldh whereas I have to try really hard to see this meaning: "javascript has closures as a language feature" 16:03
16:08 donaldh left 16:13 molaf_ joined 16:16 molaf left 16:19 fhelmberger joined 16:23 fhelmberger left, denis_boyun_ joined 16:30 kivutar left, Rotwang joined 16:38 hoverboard left
slava-wr0k would it be fair to say that perl6 spec is done and over with? or are there still expected changes? 16:39
PerlJam slava-wr0k: no and yes
slava-wr0k: (also note that the C spec is still changing. Any language that is still "alive" will change) 16:40
slava-wr0k would it be accurate to say that vast majority of it is set in "adjustable stone"?
PerlJam slava-wr0k: that sounds reasonable to me.
16:41 rindolf left
FROGGS I'd expect that NFG specific stuff will chance at least slightly when it going to be implemented 16:42
it is*
slava-wr0k PerlJam: just trying to gauge how likely it is that code from today will totally break in 3-6 months time
NFG?
FROGGS normalization form grapheme 16:43
like NFC but cool :o)
slava-wr0k what's nfc?
jnthn like NFD but cool 16:44
PerlJam slava-wr0k: unicode stuff :)
slava-wr0k jnthn: ...
timotimo .o( and some time soon moarvm will not suck at strings any more )
jnthn ducks to avoid getting smacked :)
slava-wr0k: It's different ways to normalize strings in Unicode.
slava-wr0k jnthn: I am bringing shears and cutting your beard off for such things :P
jnthn slava-wr0k: Well, it could use a trim... :P 16:45
PerlJam slava-wr0k: btw, I'd wager that a good bit of the code from the 2009 advent calendar still runs today.
FROGGS lizmat: panda rebootstrap does not work out of the box, because site/lib is in the first compunitrepo and I installed panda before
lizmat: so, removing site/lib does it, as well as cleanup up site/lib before doing the rebootstrap
jnthn slava-wr0k: consider a char like "ö"
FROGGS lizmat: this is only needed once, at least it looks like it is working that way 16:46
jnthn slava-wr0k: In Unicode it can be represented by a single code point, or as on "o" + a combining character that adds the umlaut.
slava-wr0k: this happens for many chars. If you try to compare a string with one representation against a string with the other, you'll get bogus answers.
slava-wr0k jnthn: does unicode at all account for this or is it the job of the 'implementer' ? 16:47
jnthn slava-wr0k: Well, it's what normalization forms are for. NFC chooses the single-codepoint form when it's available, squashing an o + combiner into the single ö.
slava-wr0k: NFD is the opposite: if it sees a codepoint ö it will break it up into its pieces.
slava-wr0k ahh, I see 16:48
jnthn The problem is that there are many ways to form char + combining char that do not have a single codepoint.
So NFC kinda falls apart at this point.
NFG addresses this by making up imaginary codepoints to represent such cases 16:49
So that .chars can consistenlty give a "how many things a human would count" rather than somtimes giving weird answers because that's how many codepoints exist.
dalek kudo/nom: 070e6d5 | (Donald Hunter)++ | src/core/IO.pm:
Refactor readfh, seek, tell to use nqp ops on parrot. Remove backend specifics.
16:50
masak .oO( ümläüt ) 16:54
FROGGS .tell lizmat would it be okay if I change eleven to use @*INC for ordering instead of the .prio before we merge?
yoleaux FROGGS: I'll pass your message to lizmat.
timotimo do we get properly lexically scoped "use lib" from the eleven branch? 16:55
FROGGS timotimo: not yet 16:56
(I think)
timotimo OK
16:56 pecastro left
slava-wr0k is there some sort of FAQ/list of all the magic vars like @*INC and $/ and others? 17:02
17:02 kaleem joined 17:03 treehug8_ joined
PerlJam slava-wr0k: S28 17:03
timotimo S28:10
synopsebot Link: perlcabal.org/syn/S28.html#line_10
17:05 jnap1 joined, jnap left
slava-wr0k ty 17:05
17:06 FROGGS left
jnthn dinner & 17:06
17:06 treehug88 left 17:09 treehug88 joined, rjbs joined 17:10 hoverboard joined 17:11 denis_boyun_ left, treehug8_ left 17:21 ajr_ left 17:27 kaleem left 17:31 markov joined, jnap1 left 17:41 anaeem1_ left 17:53 zakharyas joined 17:58 zakharyas left, Alula left 18:03 pdcawley left 18:05 jnap joined 18:07 pdcawley joined 18:10 denis_boyun_ joined 18:11 guru joined 18:12 guru is now known as Guest48047, Guest48047 is now known as ajr_ 18:13 Rotwang left 18:14 itz joined
grondilu Hi. I was looking at rosettacode.org/wiki/Window_creation/X11#Perl_6 and I got a segmentation fault just after the window shows up. Thought that was worth signaling. 18:22
(this used to work)
18:23 Alula joined
timotimo jnthn: what exactly is the reasoning behind the integer constants you compare against for &infix:<..> in the optimizer? 18:28
when i have ^ on either side, should i change that number by 1, too?
masak m: .say for 4 .. 8; 18:37
camelia rakudo-moar 851811: OUTPUT«4␤5␤6␤7␤8␤»
masak m: .say for 4 ^..^ 8;
camelia rakudo-moar 851811: OUTPUT«5␤6␤7␤»
masak timotimo: I must be misunderstanding your question -- surely the number changes by 2, as above?
timotimo i mean the end point number 18:38
masak ok, that answer tells me I am indeed not following. :)
nevermind.
18:49 pdcawley left, pdcawley joined 18:53 beastd joined
timotimo making prefix:<^> a pure op means it'll get compile-time evaluated to a parcel before the optimization that tries to turn for + range into loops ... :\ 18:53
18:55 stux|away|away is now known as stux
masak tadzik: did you see the p6u thread "Is passing excess parameters while creating object legal?" -- seems like someone would be happy to know about github.com/tadzik/ClassX-StrictConstructor ? 18:57
tadzik oh, yes :)
done 19:04
dalek kudo/nom: 3094a76 | (Timo Paulssen)++ | src/Perl6/Optimizer.nqp:
don't trip over custom range operators
19:11
masak tadzik++ 19:12
19:12 xenoterracide left 19:17 darutoko left
timotimo tadzik: would you revert "is pure" for range operators? 19:17
or should i try to come up with something to prevent that from happening in the wrong way?
19:20 kivutar joined 19:21 xenoterracide joined 19:23 treehug8_ joined 19:24 treehug88 left, virtualsue_ joined 19:27 virtualsue_ left 19:28 SevenWolf joined
tadzik timotimo: I didn't commit them 19:34
timotimo oh! 19:35
itz n00b Question my \foo='bar' , what's the \foo called? 19:40
timotimo it's a sigil-less variable 19:41
dalek kudo/nom: cf46d41 | (Timo Paulssen)++ | src/core/Range.pm:
this prevented an optimization later on.

may want to revisit this at some point.
19:43
kudo/nom: 4cfd984 | (Timo Paulssen)++ | src/Perl6/Optimizer.nqp:
optimize all kinds of ranges for for loops.
timotimo that "is pure" is from february last year %)
itz sig-less variables :O how is such a thing possible 19:47
^ sigil-less
19:48 zakharyas joined
timotimo hehe. 19:48
vendethiel itz: it's \possible.
timotimo well, it has its use; sigils usually imply a context; @ for list, % for hash, $ for item
19:48 FROGGS joined
timotimo with a \ you can have a value that does not imply its own context 19:48
FROGGS o/
moritz timotimo: what's wrong with 'is pure' on prefix:<^>? 19:49
timotimo: it *is* a pure function, no? 19:50
timotimo yes
but purity is only important for the optimizer so far
and now we have a more powerful optimization that relies on the call to infix:<^> to remain intact until it hits the analysis
moritz and "is pure" breaks that?
timotimo yes, unfortunately
moritz how? why? 19:51
timotimo well, in the "visit op" stage, the first thing it does is visit its children
after that, it checks for a .sink that contains a .map that contains an infix:<,> that contains any of the infix<..> variants
however, at that point, the infix:<^> is already turned into a WVal 19:52
20:11 hoverboard left 20:15 jnap left 20:16 jnap joined
tadzik timotimo: I still feel uneasy seeing inlining preventing optimizations 20:20
maybe an optimizer needs a different ordering of things
20:21 eMBee left, eMBee joined 20:22 hoverboard joined
masak as far as I know, the order in which to do optimizations is an open problem, with no real answer in sight. 20:23
20:23 itz left 20:24 pippo joined
timotimo sometimes we want to recurse first, sometimes not 20:24
any optimization that simplifies the tree before the for->loop one, for example, would be good in theory
for example, for (1 .. 100) will result in a different AST, this one has a no-op Stmts around the &infix:<..> 20:25
that's enough to trip the optimization up
20:32 spider-mario left
vendethiel i still reading $! as !$ 20:41
masak yeah, don't do that. :) 20:45
20:51 kaare_ left 20:57 rurban joined
dalek rl6-roast-data: a9d5a27 | coke++ | / (5 files):
today (automated commit)
20:58
rl6-roast-data: 27bac78 | coke++ | / (6 files):
today (automated commit)
21:00 kivutar left 21:10 pdcawley left 21:14 pdcawley joined 21:20 beastd left
jnthn back 21:22
21:23 zakharyas left, skids left, pdcawley left 21:25 donaldh joined 21:27 pdcawley joined, grondilu left 21:30 aindilis joined 21:33 bluescreen10 left
timotimo not exactly sure what the API of the grid should look like :\ 21:33
it could just take flattened lists of widget, x, y, w, h, widget, x, y, w, h, ...? 21:34
for the constructor
it would be nice to be able to write the constructors in one bunch like with HBox and VBox
21:35 treehug8_ left 21:36 hoverboard left
jnthn timotimo: Wonder if something involving a pair could look nice 21:38
$widget => [x,y,w,h]
Actually probably other way around
[x,y,w,h] => $widget
timotimo oh, that's not a bad idea actually 21:39
jnthn that'll line up way more neatly
timotimo yes!
jnthn And thus make editing easier.
timotimo maybe we should prefer gtk_widget_show_all over gtk_widget_show-ing everything by ourselves 21:40
21:44 treehug88 joined
jnthn Hm :) 21:45
Quite possibly
<-- hacked the module up in 4 hours on a train journey with no prior gtk experience :)
So it ain't a surprise if some things can be done better ;) 21:46
timotimo :)
timotimo is just following the tutorial, too
21:49 bbkr joined
masak 'night, #perl6 21:51
timotimo gnite masak 21:59
22:03 virtualsue left 22:05 cognominal left 22:06 cognominal joined
dalek k-simple: e9c5c4e | (Timo Paulssen)++ | / (2 files):
add GTK::Simple::Grid and an example showing it off
22:07
bbkr hi. what is the easiest way to grep hash AND still have hash after the operation? what %hash.grep does is returning list of Pairs and apparently it is impossible to simply (%hash.grep: {...}).Hash 22:11
22:11 Alula left, treehug88 left, Alula joined
timotimo can you get it to work with %(...)? 22:14
it would be pretty poor if pythons dict comprehensions worked better than our builtins grep and stuff
retupmoca m: my %h = a => 1, b => 2, c => 1; (%h.grep: { .value == 1 }).hash.perl.say 22:15
camelia rakudo-moar 851811: OUTPUT«("a" => 1, "c" => 1).hash␤»
22:15 xenoterracide left
timotimo oh, it's .hash not .Hash 22:15
bbkr timotimo: thanks! 22:17
timotimo well, retupmoca figured it out :) 22:18
jnthn Also if you want to mutate, .=
22:18 panchiniak joined
timotimo just accidentally opened the .moarvm file for GTK::Simple in vim and it's got pages and pages of redundant symbols 22:19
i wonder what's up with that
jnthn dunno; string constant table is meant to be interned at bytecode writing time 22:21
timotimo that's not it 22:23
interestingly some stuff that really shouldn't be needed in there is in there
pod_string_character?
why does that end up in there?
22:28 bbkr left
jnthn Probably something gets modified at startup and then repossessed. 22:31
timotimo the whole Perl6 grammar perhaps? :P 22:32
22:34 Pleiades` left 22:38 jlaire left
jnthn That would be unfortunate :P 22:38
I suspect if we were doing that, we'd get way more collisions.
22:39 Pleiades` joined, jlaire joined
timotimo may be 22:39
22:43 jnap left
lizmat is back from AmsterdamX meeting 22:44
yoleaux 16:54Z <FROGGS> lizmat: would it be okay if I change eleven to use @*INC for ordering instead of the .prio before we merge?
jnthn lizmat: It's now an X-meeting? :P
lizmat .tell FROGGS please use @*INC for ordering, note that it now lives in src/core/Inc.pm
yoleaux lizmat: I'll pass your message to FROGGS.
lizmat hehe... unfortunately mostly X-men :-) 22:45
for those not in the know: Amsterdam basically has *two* PM groups with meetings: Amsterdam.pm (also NL.pm) as almost nobody actually lives in Amsterdam
and the Amsterdam X meeting, for expats actually living in Amsterdam 22:46
the former is usually Dutch spoken, the latter is mostly English spoken 22:47
although mix forms have known to occur
22:47 bbkr joined
lizmat and some people actually visit both meetings :-) 22:47
22:55 BenGoldberg joined, donaldh left 22:59 xenoterracide joined 23:08 FOAD left 23:12 BenGoldberg left 23:15 rurban left 23:17 skids joined 23:22 BenGoldberg joined
lizmat m: say { for ^1 {} }() 23:25
camelia rakudo-moar 851811: OUTPUT«Nil␤»
lizmat $ perl6 -e 'say { for ^1 {} }()'
0
timotimo: seems your last patches changed this behaviour 23:26
23:26 denis_boyun_ left
lizmat I feel Nil would be correct, so I would consider this a regression 23:26
jnthn lizmat: that might be my opts to loops in general 23:27
lizmat: uh, for range { } loops I mean.
lizmat well, this didn't fail earlier today
jnthn lizmat: Yeah, ^1 didn't hit the opt though
star: say { for 1..2 {} }() 23:28
lizmat but isn't ^1 a one element range ?
camelia star-{m,p} 2014.04: OUTPUT«Nil␤»
jnthn m: say { for 1..2 {} }()
camelia rakudo-moar 851811: OUTPUT«0␤»
jnthn See. I broke the lot.
lizmat ok, not sure who broke it, but it's broken
jnthn Me
But really, a spectest shoulda existed to tell me this...
lizmat but on the matter of ^1 that should be equivalent to 0..0 and ergo a one element list, no? 23:29
a spectest exists!
jnthn For the 1..2 case?
Or just the ^1 case?
lizmat t/spec/S04-statements/for.rakudo.moar (Wstat: 0 Tests: 78 Failed: 2)
Failed tests: 63, 70
jnthn ^1 is 0..0
lizmat no, for the ^1 case
jnthn Ah, then that's why I didn't see it
But yeah, too bad timotimo missed that spectst fail.
Still, the patch to blame is my one.
timotimo whoops, my apologies 23:30
lizmat ok, should I rakudobug it ?
jnthn lizmat: Or patch the optimizer.
timotimo would the correct fix be to only do the opt if there's two or more between start and end?
jnthn No
The opt is nothing to do with that.
uh, the problem is...
lizmat isn't the problem that the for is the last statement in the block
jnthn Right
Well
lizmat and now it's returning something other than Nil ? 23:31
jnthn the real issue is the opt doesn't take care to evalute to Nil.
Was just an oversight.
timotimo oh!
jnthn So the fix is in Optimizer.nqp
timotimo goes to sleep first
lizmat as well :-)
driving another ~300km makes one tired :-) 23:32
.oO( actually closer to 400... see I'm tired :-)
23:33
jnthn untested patch: 23:34
gist.github.com/jnthn/e9263006684a566d6992
I need to sleep now
lizmat will test
jnthn And if you have a moment, a test for the "1..2" regression I showed above would also be great. 23:35
That woulda told me about my fail sooner.
Anyways, rest before final day of teaching for a bit :)
23:35 hoverboard joined
jnthn 'night 23:35
lizmat gnight jnthn!
23:37 rurban joined 23:40 ajr_ left 23:41 FOAD joined 23:44 thilp left
lizmat m: say { for 1..2 {} }() 23:44
camelia rakudo-moar 851811: OUTPUT«0␤»
lizmat m: say { for ^0 {} }() 23:45
camelia rakudo-moar 851811: OUTPUT«Nil␤»
lizmat m: say { for ^1 {} }()
camelia rakudo-moar 851811: OUTPUT«Nil␤»
lizmat m: say { for ^2 {} }()
camelia rakudo-moar 851811: OUTPUT«Nil␤»
lizmat m: say { for 0..2 {} }()
camelia rakudo-moar 851811: OUTPUT«0␤»
23:46 xenoterracide left
dalek kudo/nom: e0592d7 | (Elizabeth Mattijsen)++ | src/Perl6/Optimizer.nqp:
Fix { for 1..2 {} }() regression

Untested patch supplied by jnthn++
23:49
kudo/nom: 04fe6d7 | (Elizabeth Mattijsen)++ | t/spectest.data:
Add more advent tests
23:49 dmol left, pippo left 23:50 bbkr left
dalek ast: 42714e1 | (Elizabeth Mattijsen)++ | S04-statements/for.t:
Adjust some for loop tests
23:54
lizmat and on that note, /me is getting some sleep& 23:55
23:56 lowbitrate joined
lowbitrate Hello, good night. 23:56
What is the current status of perl 6's web development? 23:57
Viable or I should wait a little more?