»ö« 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«onetwo» | ||
Ben_Goldberg | r: .say for "one two".words | 00:41 | |
camelia | rakudo-jvm 851811: OUTPUT«(timeout)» | ||
..rakudo-{parrot,moar} 851811: OUTPUT«onetwo» | |||
Ben_Goldberg | m: .say for "one two".comb(/'o'/) | 00:42 | |
camelia | rakudo-moar 851811: OUTPUT«oo» | ||
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«45678» | ||
masak | m: .say for 4 ^..^ 8; | ||
camelia | rakudo-moar 851811: OUTPUT«567» | ||
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? |