»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
jnthn ah, I see... 00:00
I suspect the only way we'll really resolve things in that realm is to actually show implementations of other langauge's OO done with 6model. 00:13
I'm happy that Tene++ has done some Ruby bits in that area.
sjohnson perlapls 00:17
oops, pals*
flussence_ a single sentence can really ruin someone's day... 00:18
"# Tab-indented line: outdent from the right, with elastic tab expansion"
Tene jnthn: one thing that I'm still not understanding well is exactly what type_object_for is for. 00:22
Hmm. No, that's not my problem. I just need to read more of the code. 00:23
jnthn Tene: It takes as parameters a meta-object and a representation, and returns a type object (that can then be instantiated) that uses the meta-object and has its memory layout, attribute access etc handled by the specified representation. 00:24
Essentially, it's the point where you bring a meta-object and a REPR together to actually make an object.
00:26 [bjoern] joined
jnthn In Perl 6 that thing is what we then go and install into the package/lexpad/whatever, but for other languages that may not be the right thing. 00:26
[bjoern] Is there a quote syntax that I can use where \ are treated as literals, not an escape or anything like that? For windows file paths, say? 00:27
jnthn rakudo: say 'C:\lol\cat.txt' 00:29
p6eval rakudo e3bd9a: OUTPUT«C:\lol\cat.txt␤»
jnthn rakudo: say Q{C:\lol\cat.txt}
p6eval rakudo e3bd9a: OUTPUT«C:\lol\cat.txt␤»
[bjoern] that works no matter what goes after the \?
jnthn rakudo: say Q{\\lolserver\cat.txt}
p6eval rakudo e3bd9a: OUTPUT«\\lolserver\cat.txt␤»
jnthn That one does
flussence_ rakudo: say Q{\'} 00:30
p6eval rakudo e3bd9a: OUTPUT«\'␤»
[bjoern] the ' then does not, I take it?
jnthn rakudo: say '\\lolserver\cat.txt'
p6eval rakudo e3bd9a: OUTPUT«\lolserver\cat.txt␤»
jnthn Nope.
It does that.
[bjoern] Thank you.
jnthn So if you're quoting server paths with \\ in Q{...} is better.
TimToady Q is the mother of all quote languages 00:31
the q and qq languages are just Q with mixins :)
jnthn And someday soon I'll implement mixins in NQP and maybe Rakudo can akshually do it that way :)
sorear 13:17 < jnthn> * Planned a bit on GLOBAL merging, after discussions with TimToady++ and others
TimToady niecza: say Q{\'} 00:32
p6eval niecza v3-74-ga074df5: OUTPUT«\'␤»
jnthn nice :)
[bjoern] was just making sure he can copy and paste the file paths somehow, instead of adding everywhere while wanting to strangle language designers, as he is right now encountering it in some other language...
sorear "others" did not include the person with the most practical work on GLOBAL merging
TimToady niecza: say Q:q{\'}
p6eval niecza v3-74-ga074df5: OUTPUT«\'␤»
TimToady hmm
sorear how much longer will it be until I start being taken seriously?
good * #perl6
jnthn sorear: Where can I read the implementation you did of GLOBAL merging? 00:33
TimToady sorear: I think jnthn++ simply didn't realize your level of experience in that area
jnthn sorear: If you've already invented that wheel in a way you think will fly, I'm happy to not re-invent it :) 00:34
And what TimToady said.
00:34 GinoMan left
TimToady jnthn: that's what niecza is already doing, I expect 00:35
I had some rudimentary notions of global merging in the original STD, and he's developed it sence
*since
jnthn I was planning to look at STD for clues... 00:36
Have had to do a bunch of stuff to try and actually get to the point where implementing packages with GLOBAL will actually be sane.
TimToady sorear: anyway, the discussions in question were mostly just an accident of who was online at the moment, so you shouldn't take it personally 00:37
except maybe at me, who is bad at giving people pointers to other people's work...
sorear TimToady: ok. 00:42
TimToady the discussion in question was at irclog.perlgeek.de/perl6/2011-03-12#i_3385772
and following 00:43
sorear jnthn: most of the implementation that is specifically about GLOBAL merging is in Metamodel.pm6 from 31 to 209 00:44
[bjoern] .oO{ posting summaries and pointers to the mailing lists is usually a good approach if one feels people have missed something in realtime discussions }
TimToady one of the big problems is that both sorear++ and jnthn++ are night owls, and are living on opposite sides of the planet... 00:45
flussence_ ooh, niecza *almost* runs Text-Tabs-Wrap's tests...
(it's missing .assuming, and it doesn't like me doing @*INC.push, but I can get it to load the modules without dying now) 00:46
sorear @*INC is useless without BEGIN, no? 00:47
TimToady: a flat earth with a sun at infinity would be a much nicer place to live.
TimToady well maybe not useless for require
flussence_ it's inside a BEGIN... but I found out earlier that rakudo wasn't doing BEGIN at the right time anyway.
TimToady it'd be pretty cool if the sun were at infinity :P 00:48
jnthn sorear: Thanks.
sorear Rakudo does do BEGIN at the right time, unless you're trying to precompile stuff, which you should be pretty careful of
flussence_ I dunno, I had it after some use statements that needed it and found out it only worked when I moved it before them 00:49
sorear jnthn's ctmo is, AFAIK, the first serious attempt to make precompilation work with BEGIN
TimToady also @*INC isn't completely useless in the sense that you can modify the original env var before running
jnthn TimToady: Where does @*INC actually live?
er, the @INC we find, I mean...
sorear jnthn: I went through a few rounds on the relationship of the compiler's view of eval, etc
TimToady well, the outermost would be in PROCESS, I'd think
jnthn TimToady: If we twiddle with it at BEGIN { ... } time, that only runs in the initial compile. 00:50
sorear jnthn: in niecza currently the compiler and the user code run in very separate domains; they can't even share objects
jnthn sorear: Ah, OK...I wasn't aware of that separation.
flussence_ (I'd get rid of the @*INC stuff if the package managers have a standard way to say "-I these things when you make test or whatever")
sorear jnthn: so eval() calls-up to the compiler (passing a string), which then calls-down to the user-level code (passing compiled code to the RTS, which runs it)
jnthn sorear: Heh, we have opposite issues. I have too much shared at the moment. :) 00:51
So the compiler starts scibbling over itself when bootstrapping... :/
TimToady sure, I'm not attached to @*INC at all, except for user-local stuff maybe
jnthn Ah, I see.
TimToady mostly 'use' and such should be querying a database-ish view of which module is where
sorear jnthn: note that I'm using System.AppDomain to do most of the isolation
TimToady @*INC shouldn't be used to pull things out of the official library, long term 00:52
this is specced, even
jnthn TimToady: I guess my question is, if somebody plays with @*INC in a BEGIN, shoudl they expect @*INC to contain their twiddles when they run a pre-compiled version of the code?
PROCCESS is probably one thing we really can't serialize. :)
sorear: Are you planning to keep the isolation in place long-term, or is it something you expect to eliminate eventually? 00:53
flussence_ hm, I think I might move this include-path munging into the readme instead... 00:54
sorear jnthn: TimToady has been very clear to me that putting code with global side effects in BEGIN is a bad idea
jnthn: Keep it long term.
TimToady: Concrentely: class Foo { }; eval('class Foo { }; BEGIN say 42') # Output?
s/^/jnthn> /
TimToady jnthn: well, if you tweak a dynamic variable in the sense of 'my @*INC =', then you've created a new lexical 00:55
sorear in niecza's model, modulo BEGIN being NYI, this will output 42\nError merging stashes: MAIN and EVAL_1 have conflicting stashes for GLOBAL::Foo
TimToady but if you just push the var in PROCESS, I wouldn't expect that to serialize, no
sorear jnthn> TimToady: Noting that class Foo { }; eval('class Bar is Foo { }; BEGIN say Bar ~~ Foo;') probably should say True
works fine in my understanding
TimToady yes, 'is' and traits in general are supposed to make things known at compile time 00:56
otherwise our optimizers won't have squat to work with 00:57
jnthn sorear: I think the above will blow up for the reasons you describe.
sorear: I agree that it's a bad idea to put stuff with side-effects in BEGIN.
sorear jnthn: I see the firewall as an artefact of trying to implement Perl 6 using Perl 6. Once I'm done prototyping :), I think a C or NQNQP implemention would be semantically saner.
jnthn sorear: fwiw, I expect Rakudo will handle that BEGIN say Bar ~~ Foo example after the current set of refactors. 00:58
Today it no way will.
TimToady it seems to me that what can be merged and what can't is just something we'll have to work out over time 00:59
01:00 cxreg joined
TimToady "we" being the editorial we there :) 01:00
sorear that's been a major driving question in niecza
post-mm
another thing which quite suprised me when I first noticed it, is that in general 'my' stashes are subject to merging too 01:01
flussence_ ok, niecza can *run* 6 of these test files now. Figuring out how to pass the tests is something else... :)
sorear that's why niecza implements my stashes as being aliases to our-stashes with guaranteed unique names; it cuts out a lot of code duplication 01:02
TimToady sorear: under what conditions?
sorear TimToady: A.pm='my module A;' B.pm='my module B; use A; class A::AB {}'; C.pm='my module C; use A; class A::AC {}'; 'use B; use C;' 01:03
TimToady cool 01:05
01:06 woosley joined
TimToady though it looks a bit augmenty to me to do something like that... 01:06
01:07 knewt2_ left, knewt2 joined
TimToady but I suppose if you augment something that was pulled in as lexical aliases, you're in that situation, arguably 01:07
Tene jnthn: mind if I merge master into ctmo? 01:08
master doesn't seem to build against latest parrot.
jnthn Tene: master into ctmo or ctmo into master?
Tene master into ctmo. I wanted to play with HashAttrStore, but master doesn't build against latest parrot. 01:09
01:09 whiteknight left
jnthn Oh, I see 01:09
Tene I guess I could just cherry-pick it.
jnthn Well, try merging
If no conflicts and the same tests pass, +1
Tene just 'make test', yes?
jnthn I was careful not to update the bootstrap in master, so it should be fine
Yeah
It should fail 1 test file at the moment.
Will get to that soonish, depending on how tired teaching a class then flying to Taiwan makes me :) 01:10
Tene Yeah, t/hll/02-modules.t
merge conflict in Makefile.in; should be simple to fix 01:11
sorear jnthn> std: my class Foo { our $x; }; $Foo::x
jnthn std: my class Foo { our $x; }; $Foo::x
p6eval std 4608239: OUTPUT«ok 00:01 119m␤»
sorear jnthn> are you accepting commands? 01:12
01:12 cotto joined
jnthn sorear: No, I'm just curious what STD thought about it. 01:12
sorear ['Foo', '$x'] is interpreted as the path
there is a 'Foo' in the lexical scope, so Foo is resolved to that
jnthn sorear: Does that "work" (in the sense of, refers to the $x declared in Foo)?
sorear imo yes
jnthn OK, good. imho too :)
I figure that anything in a $Foo::x that we can resolve to a lexical at compile time, we do, and anything else we look in GLOBAL for. Does that fit with what niecza is doing? 01:13
er, I mean the Foo bit can be resolved to a lexical. 01:14
sorear jnthn> Is it actually kosher to say $Foo::Bar::x = 42; if you never declared a Foo::Bar?
it has to me, or else flussence_ will get rather annoyed when ey tries to run Text::Tabs::Wrap on Perl 6.0.0 01:15
jnthn: yes, that's basically what niecza is doing
jnthn: niecza makes a handful of exceptions for specific values of Foo (in particular, Foo = "MY"), but that's done in a rather hackish way and I need to overhaul it to get OUTER et al working properly 01:16
jnthn ($Foo::Bar::x) I think in that case it works, but it has to "auto-vivify" packages there to do so.
Which is OK, I guess.. 01:17
sorear my big remaining question is what a stub package looks like 01:18
01:18 Holy_Cow left, [bjoern] left
sorear right now niecza doesn't use stub packages; there is no .WHO because the Stash and the type object are accessed from separate names 01:19
this needs to be fixed
jnthn I was wondering if Package is basically the "stub pcakage"
sorear Package is wrong
jnthn Then if you declare a class with the same name, it just steals the .WHO
At which point any further re-declaration is wrong
sorear Package is a fossil from the days before type objects, when class A { }; A.WHAT eq 'Class'
jnthn Hm, true.
Tene Bah, should have run that make in parallel. 01:20
jnthn I suspect after doing $A::B::c = 42 then A.WHAT.say should actually say something though.
I'm not sure what that something should be.
sorear looks like I've gotten to the end of the ir clog 01:23
dalek p/ctmo: 73f5c94 | tene++ | / (4 files):
Merge branch 'master' into ctmo

Conflicts: build/Makefile.in
01:27
p/ctmo: 26d43ed | tene++ | / (14 files):
Merge branch 'ctmo' of github.com:perl6/nqp into ctmo
01:31 jmedinar joined, jmedinar left
dalek p/ctmo: a6496e3 | jonathan++ | src/ (2 files):
Make lexical package declarations kinda work (symbol installation is lexical, though a bunch of other bits to do to have real leixcal packages). First actual use of the static lexpad stuff.
01:37
jnthn Oops, it's late. 01:39
Ah well, can do the next pieces tomorrow.
night o/
colomon \o 01:42
01:43 noganex_ left 01:48 alester joined
sorear oops, I was a little too late to give jnthn my last example 01:49
phenny: tell jnthn Consider: 「module Foo; sub glob($n) is rw { OUR::{$n} }; BEGIN glob('$x') = 12; INIT say glob('$x')」 01:50
phenny sorear: I'll pass that on when jnthn is around.
sorear phenny: OUR:: needs to refer to two different objects - the unmerged stash during BEGIN, and the final runtime stash by INIT 01:51
phenny: tell jnthn OUR:: needs to refer to two different objects - the unmerged stash during BEGIN, and the final runtime stash by INIT
phenny sorear: I'll pass that on when jnthn is around.
sorear phenny: tell jnthn I have a vague notion that GLOBAL:: and friends should actually be contextuals.
phenny sorear: I'll pass that on when jnthn is around.
01:53 Helios` left, ascent_ left 01:54 ascent_ joined 01:55 Helios` joined 02:11 Helios` left 02:13 LoRe left, ascent_ left 02:15 GinoMan joined 02:38 ascent_ joined 02:46 LoRe joined 02:47 risou_ joined, Helios` joined 02:48 risou left 03:03 stkowski left 03:12 wooden left 03:18 alester left, plobsing joined, donri left 03:20 Sarten-X left 03:27 GinoMan left, Sarten-X joined 03:28 GinoMan joined 03:46 risou joined 03:47 risou_ left 04:05 Helios` left, LoRe left 04:06 Holy_Cow joined
dukeleto does anybody know if any hackathons are planned for YAPC::NA 2011? 04:06
04:07 ascent_ left
perigrin_ There is space for them around YAPC::NA 04:11
but I'd need someone to step up and help organize it
04:12 Helios` joined 04:14 ascent_ joined, benabik left 04:23 Su-Shee_ joined 04:24 nymacro left 04:25 Su-Shee left, plobsing left 04:36 GinoMan left 04:38 LoRe joined 04:42 woosley left 04:44 Helios` left 04:46 LoRe left, noganex joined, risou_ joined 04:47 Helios` joined 04:49 satyavvd joined, risou left 04:50 plobsing joined 04:56 Holy_Cow left 05:05 sufrostico joined 05:08 LoRe joined 05:32 mtk left 05:40 mtk joined 05:41 orafu left 05:42 orafu joined 05:54 mkramer left 05:55 mkramer joined 05:57 mberends left 06:05 sufrostico left 06:11 Helios` left 06:13 LoRe left 06:14 bacek left 06:15 ascent_ left 06:17 kaare_ joined, Helios` joined 06:20 sftp left, agentzh joined 06:21 ascent_ joined 06:46 LoRe joined 06:50 wtw joined 07:04 nymacro joined 07:10 Mowah joined 07:13 alim joined 07:18 alim left 07:19 alim joined 07:23 alim left 07:24 justatheory left 07:32 cjk101010 joined
jdhore moritz_, ping 07:47
07:52 Su-Shee_ is now known as Su-Shee 07:53 fhelmberger joined 07:54 cosimo joined 07:56 cosimo left, _jaldhar left 07:57 _jaldhar joined
TiMBuS does perl6 have any kind of.. '//==' operator? 07:57
07:57 apejens joined
moritz_ jdhore: pong 07:58
TiMBuS: what would that do?
jdhore moritz_, could I get a commit bit to the rakudo stuff for tomorrow's release? 07:59
TiMBuS compare a value if it is defined
moritz_ jdhore: you already have
jdhore: pmichaud++ took care of that yesterday
jdhore ah, I didn't think i did
ah, thanks pmichaud++
Also, is there any release "time" or just before midnight localtime?
moritz_ do it however it suits you best 08:00
jdhore OK, cool, i'll probably have it released by like 4PM EST :D
moritz_ deviations +- 1 day are ok 08:01
dukeleto: there will be a Perl 6 hackathon at YAPC::Russia 08:02
08:03 dual left 08:13 Chillance joined
jdhore Well i'll definetly release it on the day (I *HATE* being late for anything and being early can be annoying), I just have work today, tomorrow and Friday so Thursday's just as good and it fits the Rakudo schedule perfectly so :D 08:20
08:33 cosimo joined 08:37 cosimo left 08:54 alim joined 09:04 f00li5h left 09:17 mj41_nb joined 09:24 f00li5h joined 09:25 dakkar joined 09:28 jww left
colomon dukeleto: I 09:33
dukeleto: I'll be at YAPC::NA and happy to hackathon.
dukeleto: haven't heard anything in the way of formal plans yet, however. 09:34
09:39 _twitch joined 09:46 icwiener joined 09:47 risou joined 09:49 risou_ left 09:56 _twitch left
jnthn o/, #perl6 09:58
phenny jnthn: 01:50Z <sorear> tell jnthn Consider: 「module Foo; sub glob($n) is rw { OUR::{$n} }; BEGIN glob('$x') = 12; INIT say glob('$x')」
jnthn: 01:51Z <sorear> tell jnthn OUR:: needs to refer to two different objects - the unmerged stash during BEGIN, and the final runtime stash by INIT
jnthn: 01:51Z <sorear> tell jnthn I have a vague notion that GLOBAL:: and friends should actually be contextuals.
10:08 am0c joined 10:14 mj41_nb left 10:22 daxim joined
colomon \o 10:39
10:40 bacek joined 10:43 kfo_ joined 10:46 kfo left 10:48 risou_ joined 10:50 risou left 11:07 mj41_nb joined 11:13 coldhead left 11:23 _twitch joined 11:48 leprevost joined 11:49 risou joined 11:51 risou_ left
jnthn -> stockholm 11:55
phenny: tell sorear I'd pondered that GLOBAL lives in UNIT::GLOBAL really. 11:56
phenny jnthn: I'll pass that on when sorear is around.
12:15 satyavvd left
dukeleto colomon: awesome! very interested to hear your talk 12:25
colomon awwww....
12:28 nsh- joined, nsh| joined, Koven joined, mdxi_ joined 12:29 Raynes_ joined, meraxes_ joined, Brandon_W_ATS joined, sorear_ joined, szbalint_ joined, p6eval left, nsh left, Raynes left, nsh_ left, Woody4286 left, mdxi left, Kovensky left, pmichaud_ joined, Raynes_ is now known as Raynes, Raynes left, Raynes joined 12:30 phenny joined, jerome joined, p6eval joined, ChanServ sets mode: +v p6eval 12:34 athomason joined 12:45 mj41_nb left 12:49 agentzh left 13:06 kaare_ left 13:16 tzhs joined 13:18 mtk left 13:24 mj41_nb joined 13:25 mtk joined, sftp joined 13:30 Holy_Cow joined 13:32 benabik joined 13:40 mj41_nb left 13:41 plainhao joined 13:47 bluescreen10 joined 14:00 kaare_ joined 14:03 donri joined 14:09 alester joined 14:23 bluescreen10 left 14:36 bluescreen10 joined 14:40 jerome left, tzhs left, jerome joined 14:42 dsouza joined 14:49 risou_ joined 14:53 risou left 15:12 justatheory joined 15:13 Koven is now known as Kovensky 15:14 hercynium joined
tadzik hello perl6 15:21
moritz_ \o tadzik
15:23 mj41_nb joined 15:28 mtk left 15:29 mtk joined 15:33 mj41_nb left 15:34 mj41_nb joined 15:38 ymasory left, [particle] left 15:47 wtw left 15:50 risou joined 15:52 risou_ left 16:00 am0c left 16:01 [hercynium] joined, [hercynium] left, [hercynium] joined 16:02 jedai left 16:04 hercynium left, am0c^ joined 16:05 hercynium joined, hercynium left, hercynium joined 16:07 cjk101010 left, [hercynium] left 16:18 _jaldhar left, Patterner left, JimmyZ_ joined 16:19 jaldhar joined 16:20 Psyche^ joined, Psyche^ is now known as Patterner, daxim left
JimmyZ_ msg NickServ 16:23
tadzik password: 16:26
16:29 vladik joined, JimmyZ_ left, JimmyZ_ joined, JimmyZ_ left 16:30 JimmyZ_ joined
JimmyZ_ odd, why my name is used :( 16:30
[Coke] freenode is big. 16:31
[Coke] points to the [] on Coke.
16:31 _twitch left
perigrin is happy to have snagged perigrin when he did. 16:31
16:31 daxim joined
JimmyZ_ my name was registered. 16:31
and I can't use it :(
benabik Unfortunately, dupli-nicks happen. :-/ Benabik seems rare enough that I rarely have problems, but it has been known to happen. 16:32
16:32 dsp_ left
tadzik I've used tadzik_ for some time, then I asked freenode staff to kick out that guy, as he wasn't using that anyway 16:32
JimmyZ_ my name was registered by myself, but I can't use it now... 16:33
vladik good day, I have this website that I wrote in php, it is a simple registration page where the user enters some information and we store it in mysql db, and use it later in other forms.. I was thinking of trying to do the same but using pure perl6.. Just for fun and education.. is it doable? 16:34
JimmyZ_ yes
tadzik I think so, yes
vladik is there a mysql module for perl6?
benabik JimmyZ_: In that case, freenode staff might be able to help.
tadzik vladik: I think so. Look through modules.perl6.org 16:35
vladik JimmyZ_: it happened to me once.. just contact freenode guys..
JimmyZ_ vladik: see github.com/jnthn/zavolaj
16:36 JimmyZ_ left, JimmyZ_ joined
vladik zavolaj, nice name, ok will check it. 16:37
benabik I see a sqlite interface, but no MySQL. DBDI exists, but I don't know how useful it is yet.
plobsing looks like DBDI has DBDI::p5dbi. does that mean it can connect to anything Perl 5 DBI does?
JimmyZ_ vladik: and github.com/perl6/modules.perl6.org 16:38
vladik looks interesting 16:39
16:39 simcop2387 joined
plobsing that readme.png takes precedence over README on the github page is odd 16:40
benabik plobsing: Looks like it, but I don't know how to get "using DBI:from<perl5>" to work... 16:41
*use
benabik is probably writing too much C++ to discuss Perl 6 properly. 16:42
plobsing Parrot has a Perl 5 interop module called blizkost
16:43 vladik left
plobsing that could be used to make it work 16:43
16:43 jaldhar left
benabik Ah. My google-fu was weak. Will have to look into that. 16:43
16:44 alim left 16:49 plobsing left 16:51 risou left, risou joined 16:55 JimmyZ_ left, dsp_ joined 16:57 am0c^ left 17:03 cdarroch joined, cdarroch left, cdarroch joined 17:14 plobsing joined 17:15 sorear_ is now known as sorear 17:18 benabik left
sorear good * #perl6 17:30
phenny sorear: 11:56Z <jnthn> tell sorear I'd pondered that GLOBAL lives in UNIT::GLOBAL really.
colomon \o 17:31
17:32 dsp_ left, sufrostico joined, sufrostico is now known as Guest31989 17:33 Guest31989 left
sorear phenny: tell jnthn Just putting GLOBAL in UNIT:: isn't enough since GLOBAL seems to want different values in different dynamic scopes. 17:33
phenny sorear: I'll pass that on when jnthn is around.
sorear phenny: tell jnthn under &MAIN or the mainline, GLOBAL should be the real global, but in the dynamic scope of a BEGIN, it ought to be the nascent GLOBAL. 17:34
phenny sorear: I'll pass that on when jnthn is around.
sorear phenny: tell jnthn Alternatively, GLOBAL merging can be destructive, making all nascent GLOBALs into synonyms of the true one. But I don't like that one bit. 17:35
phenny sorear: I'll pass that on when jnthn is around.
17:35 sufrosti1o joined
sorear ducks back out. 17:35
17:37 sufrosti1o left, sufrosti1o joined 17:40 dsp_ joined 17:46 impious joined 17:54 dsp_ left 17:56 dsp_ joined 18:00 mj41_nb left 18:01 dsp_ left 18:04 dakkar left 18:05 masak joined
masak \o/ 18:05
tadzik o/ 18:06
18:08 mberends joined
mberends o/ 18:10
18:10 dsp_ joined 18:16 justatheory left 18:18 justatheory joined
Tene The "Multiple versions" section of blog.izs.me/post/1675072029/10-cool...m-could-do reminded me of Perl 6. 18:24
masak except that no Perl 6 implementation does that yet :P 18:26
18:26 fhelmberger left
mberends either it's impressive, or the author's hubris levels are a tad beyond decent 18:34
18:34 rhr left
masak just skimmed and didn't read the hubris 18:34
18:35 justatheory left 18:37 rhr joined
tadzik is the whole node community like this guy? 18:40
or, whatever
mberends thinks the latter 18:41
tadzik yeah, probably 18:42
18:42 justatheory joined
PerlJam A little hubris is fine when it's deserved. 18:44
Tene tadzik: According to hacker news comments, no they're not, and neither is this guy usually: news.ycombinator.com/item?id=1945297 18:45
PerlJam But, Larry sets a good example of humbleness even when he should have more hubris.
(IMHO)
tadzik Tene: makes sents 18:46
* sense
Tene It does rather irk me that he's so dismissive of package managers, though. He's also factually incorrect. Most distro package managers can handle multiple concurrent versions of packages just fine. At least, both rpm and dpkg can.
Just make sure that your packages always put things in version-dependent paths, so the files don't conflict, and you're fine. 18:47
plobsing what I got from that is that you can have 2 versions of the same module *loaded into your program*, without problems. which seems cool. I guess it kinda falls out of how JS doesn't use globals. 18:49
PerlJam maybe perl6 should steal whatever good ideas Isaac has too :)
Tene plobsing: Yes, that's the part that reminded me of Perl 6. 18:51
18:54 risou left 18:55 risou joined 18:58 nymacro left
masak seems if you put things in version-dependent paths, you either need to keep an index, or you can't find things linearly on @*LIB. 18:58
TimToady which is why we're largely moving away from @*LIB 18:59
PerlJam masak: I've been thinking we'll need a good index for a long while now.
TimToady S11 basically requires an index for any official modules
masak nod 19:02
it's a sufficiently large step away from Perl 5 that I just automatically find myself in "I'll believe it when I see it" mode.
19:03 bluescreen10 left
TimToady maybe you should see it when you believe it instead 19:03
PerlJam masak: an advantage Perl 6 may have is laziness :) (lazy indexes)++ 19:04
It's like GC but we get better control on when we pay the build penalty I think
19:18 daxim left
flussence_ tadzik: is there/will there be a way to tell Pies to install from a local directory even when its META.info has a git URL in it? It was confusing the hell out of me yesterday until I realised what was going on 19:21
tadzik flussence_: oh, it should be working, doesn't it? When installing from a local dir, it should simply ignore the original git url and stuff 19:22
flussence_ I was playing around with "panda install ./Text-Tabs-Wrap" then noticed there's no way the tests in my current workdir could've passed at the time 19:23
tadzik wtf why is chromium eating all urls
oh wait, I see it 19:24
let me examine the code for a while 19:25
okay, that's quite a stupid one. I'll fix it in a second
flussence_: wklej.org/id/494012/ could you check if that fixes the issue? 19:27
so bootstraping on rakudo-star is probably broken too
flussence_ yep, that works 19:29
tadzik cool, pushing 19:30
masak tadzik++ 19:31
PerlJam: the other day I downloaded Math::Combinations from CPAN, and did permute(1..20). the computer just froze. only then did I realize "oh right, Perl 5 doesn't have lazy lists!" 19:33
tadzik :) 19:34
I like how git push pushes all the branches
19:38 benabik joined
masak tadzik: only if you didn't do -u when you pushed your branch the first time. 19:39
then it pushes to the corresponding upstream branch.
tadzik I see that gitub encourages using -u recently 19:40
masak that's how I discovered it ;)
colomon masak: if you load List::Utils, @a := permute(1..20) works fine in Rakudo. ;) 19:45
masak \o/ 19:48
colomon++
right. the point was that I didn't realize I'd come to take list laziness so much for granted nowadays.
though it's certainly good not to have to write &permute. :) 19:49
I tend to find it just above the complexity threshold when I have to do some small bit of design, rather than just jump in and think with my fingers. 19:50
19:54 risou_ joined 19:55 plobsing left
tadzik flussence_: any missing features in panda that should get it to the top of my todo? 19:55
19:55 risou left
flussence_ works for me :) 19:55
some way of keeping track of what owns which files, that'd be nice 19:56
masak oh! today at $dayjob I found www.perlmonks.org/index.pl?node_id=181655 (from 2002) with the wonderful quote "I for one am glad that thread support in Perl is progressing, and that it will be fully realized in Perl 6." :P
tadzik every time I want to move add some feature that neutro had, I stumble upon this "ew, that should be done properly, not quick-and-dirty"
flussence_: with a way to remove modules, yes :) 19:57
masak tadzik: Second System Syndrome :)
tadzik that's what "installed-dep" state is for :)
masak: done right :)
19:57 ymasory joined
tadzik pff, I miss working DESTROY 19:58
masak you can only remove a module if no other installed module (transitively) depends on it.
tadzik: I doubt we'll ever have DESTROY on Parrot. there's simply not enough collaboration going on across the abstraction layers.
tadzik rather "after removing a module, remove all installed-dep modules that are not neeeded anymore"
19:58 benabik left
tadzik the triggering-gc thing? 19:59
masak tadzik: also, the GC in Parrot is such that you shouldn't depend on DESTROY being called before the program exits normally. just like Java.
tadzik masak: hmm. So say I have something like a database driver, and on DESTROY I really want to flush everything to disk. What would be the way to do it then? 20:00
rakudo: say [1, 2, 3] eqv [1, 2, 3]; say [1, 2, 3] eqv [4, 5, 6];
flussence_ possibly an END block
p6eval rakudo e3bd9a: OUTPUT«Bool::True␤Bool::False␤»
tadzik oh, wfm 20:01
at least in this case
masak yes, things like END or LEAVE et al. 20:02
KEEP and UNDO. 20:03
tadzik flussence_: well, keeping track of files becomes tricky if they get installed to some temporary location, like with creating a package
so DESTDIR=ext panda install foobar
I need a TODO
flussence_ docs! 20:07
tadzik docs what? 20:08
20:08 plainhao left
tadzik oh, pandadocs? 20:08
masak panda docs! <3 20:09
tadzik META.info docs/specs go first
masak pictures a bunch of pandas with Ph.D.s
tadzik oh wow. I need an artwork
20:10 dual joined, stkowski joined
tadzik what is the name of that, uhm, ph.d hat? 20:10
the square one
okay nvm 20:11
masak no idea. 20:14
mberends it's a mortarboard, because it looks like what bricklayers use to carry mortar (cement) 20:19
masak ah. 20:20
unless your Ph.D. is in CS; then it's a motherboard...
20:21 impious left
tadzik congratulations masak, you provoked a panda docs logo 20:23
imgur.com/xFSQF 20:24
masak and here I thought I was just provoking groans...
tadzik: nice :) 20:25
tadzik the next quest: an ascii art, for `panda --docs`
masak \o/
tadzik :)
too bad I'm late to set this as a gci task :> 20:26
20:28 ymasory left
tadzik now, how do I embed a picture in pod... 20:28
20:31 alester left
masak you've now discovered why the Perl 6 spec prefers ASCII art to real images. you level up one level. 20:31
20:32 Rotwang joined
tadzik \o/ 20:33
so all my gimp work is for nothing? :(
20:34 coldhead joined, plobsing joined
sjohnson the gimp! 20:34
20:36 Helios` left
masak sjohnson: hi! 20:36
sjohnson yo masak 20:38
brb
20:39 Helios` joined 20:44 jedai joined
masak rakudo: role R[::T] { multi method foo(::T $x) { say $x } }; class C does R[Str] does R[Int] {}; C.new.foo("OH HAI") 20:44
p6eval rakudo e3bd9a: OUTPUT«OH HAI␤»
masak rakudo: role R[::T] { multi method foo(::T $x) { say $x } }; class C does R[Str] does R[Int] {}; C.new.foo(42)
p6eval rakudo e3bd9a: OUTPUT«42␤»
masak \o/
tadzik rakudo: class A { method !foo { say "foo!" }; method bar { self!foo } }; my $a = A.new but role { method !foo { } }; $a.bar
p6eval rakudo e3bd9a: ( no output )
masak rakudo: role R[::T] { multi method foo(::T $x) { say $x } }; class C does R[Str] does R[Int] {}; C.new.foo(5.5)
p6eval rakudo e3bd9a: OUTPUT«5.5␤» 20:45
tadzik rakudo: class A { method !foo { say "foo!" }; method bar { self!foo } }; my $a = A.new but role { method !foo { say "yep" } }; $a.bar
masak :/
p6eval rakudo e3bd9a: OUTPUT«yep␤»
masak late binding. we haz it.
rakudo: class C { multi method foo(Str $x) { say "Str" }; multi method foo(Int $x) { say "Int" } }; C.new.foo(5.5) 20:55
p6eval rakudo e3bd9a: OUTPUT«No candidates found to invoke for method 'foo' on object of type 'C'; available candidates have signatures:␤:(Mu : Str $x;; *%_)␤:(Mu : Int $x;; *%_)␤␤ in main program body at line 22:/tmp/h4cL0DkRVI␤»
20:55 risou_ left, risou joined
masak submits rakudobug 20:55
21:00 nwellnhof joined 21:01 benabik joined, benabik left 21:04 mtk left 21:06 stkowski left
masak rakudo: say 2 ** 3 ** 4 21:07
p6eval rakudo e3bd9a: OUTPUT«2.41785163922926e+24␤»
masak rakudo: say [**] 2, 3, 4
p6eval rakudo e3bd9a: OUTPUT«2.41785163922926e+24␤»
masak :)
rakudo: my ($a, $b, $c); $c = 42; [=] $a, $b, $c; say ($a, $b, $c).join("|") 21:08
p6eval rakudo e3bd9a: OUTPUT«Any()|Any()|42␤»
masak huh.
that isn't what I expected... 21:09
flussence_ rakudo: say [>=] 5, 4, 3
p6eval rakudo e3bd9a: OUTPUT«Bool::True␤»
flussence_ rakudo: say [>=] 3, 4, 5
p6eval rakudo e3bd9a: OUTPUT«Bool::False␤»
flussence_ seems sane there...
masak right, but not for assignment.
flussence_ it seems to be evaluating them one at a time in LTR order there 21:10
masak std: my ($a, $b, $c); [=] $a, $b, $c
p6eval std 4608239: OUTPUT«===SORRY!===␤Can't reduce with = because list assignment operators are too fiddly at /tmp/RWFak4j4Wz line 1:␤------> my ($a, $b, $c); [=]⏏ $a, $b, $c␤Check failed␤FAILED 00:01 124m␤»
flussence_ (just a guess)
masak ah. it should give a "too fiddly" error.
masak submits rakudobug
21:13 mtk joined 21:14 stkowski joined 21:15 Holy_Cow left 21:16 Holy_Cow joined
masak rakudo: class Animal { method Str { self.WHAT.perl } }; class Cow is Animal {}; my Cow $cow .= new; role Holy { method Str { "Holy {callsame}" } }; $cow does Holy; say ~$cow 21:18
p6eval rakudo e3bd9a: OUTPUT«Holy ␤»
masak aww :/
rakudo: class Animal { method Str { self.WHAT } }; class Cow is Animal {}; my Cow $cow .= new; role Holy { method Str { "Holy {callsame}" } }; $cow does Holy; say ~$cow 21:19
p6eval rakudo e3bd9a: OUTPUT«Holy ()␤»
21:20 spq joined
masak rakudo: class Animal { method Str { self.WHAT.Str } }; class Cow is Animal {}; my Cow $cow .= new; role Holy { method Str { "Holy {callsame}" } }; $cow does Holy; say ~$cow 21:23
p6eval rakudo e3bd9a: OUTPUT«maximum recursion depth exceeded␤ in 'Str' at line 22:/tmp/opLNpn6UQN␤ in 'Str' at line 22:/tmp/opLNpn6UQN␤ in 'Animal::Str' at line 22:/tmp/opLNpn6UQN␤ in 'Str' at line 22:/tmp/opLNpn6UQN␤ in 'Animal::Str' at line 22:/tmp/opLNpn6UQN␤ in 'Str' at line 22:/tmp/opLNpn6UQN␤
.. in …
masak oh, right.
:) 21:24
jnthn o/ from Stockholm
phenny jnthn: 17:33Z <sorear> tell jnthn Just putting GLOBAL in UNIT:: isn't enough since GLOBAL seems to want different values in different dynamic scopes.
jnthn: 17:34Z <sorear> tell jnthn under &MAIN or the mainline, GLOBAL should be the real global, but in the dynamic scope of a BEGIN, it ought to be the nascent GLOBAL.
jnthn: 17:35Z <sorear> tell jnthn Alternatively, GLOBAL merging can be destructive, making all nascent GLOBALs into synonyms of the true one. But I don't like that one bit.
masak jnthn: \o!
21:24 spq left
jnthn Swedes are REALLY competent at running railways, so I got here two hours late :/ 21:24
On the other hand, I'm from England, so... :) 21:25
masak jnthn: late for something? :/
jnthn masak: Dinner!
masak jnthn: they... serve food on the train... :P
jnthn But nothing that mattered to anyone else :)
:P
masak meekly waves the Swedish flag
jnthn At least they had good internets onboard. :) 21:26
masak ah, right. premiere classe...
jnthn Aye :)
Internets and coffee included. It's quite geek-compatible really. 21:27
diakopter sanfrancisco.cbslocal.com/2011/03/1...shortages/
masak geeks are naturally 1-st class-compatible :P
jnthn "I like my train tickets like my functions...first class!" 21:28
tadzik :>
I'd rather have cheap calling conventions though
masak speak for yourself :P 21:29
tadzik (:
masak diakopter: it feels... odd... to let "sushi shortage" be the piece of news to highlight in the present situation. :/ 21:35
21:36 colomon left
diakopter masak: ah, my posting of that URL should be viewed as a commentary on the news article itself (likewise your comment) 21:38
masak diakopter: I feel better now.
tadzik flussence_: pushed some docs for ya 21:39
masak diakopter: I notice the effect even more on Twitter, where referring often is interpreted as agreeing.
flussence_ tadzik++
masak diakopter: quite a few people have been flamed on Twitter for failing to distance themselves clearly from some insane quote. 21:40
flussence_ I've got my .indent code to the point where the only thing I need now is a tab-aware .substr()... which is pretty much where I was two days ago, but at least now I know what to call it :) 21:43
masak flussence_: yay 21:45
21:46 szbalint_ is now known as szbalint
flussence_ (which, as far as I can tell from trying to implement it, is going to be a complete nightmare...) 21:46
masak sounds like you'd want to compute the "actual" indexes from the "distorted" ones somehow, and then just defer to the regular .substr(), no? 21:48
of course, the coordinate transformation there is the tricky bit, I see that. tab characters have a slightly variable width depending on their position. 21:49
flussence_ yeah, that's the hard part...
masak and depending on $?TABSTOP...
'night, #perl6 21:52
flussence_ o/
21:52 masak left
flussence_ rakudo: say ("\t ." ~~ /^((\t)? \s*) (.*)$/).perl 21:53
p6eval rakudo e3bd9a: OUTPUT«Match.new(␤ from => 0,␤ orig => "\t .",␤ to => 3,␤ positional => [␤ Match.new(␤ from => 0,␤ orig => "\t .",␤ to => 2,␤ positional => [␤[␤ Match.new(␤ from => 0,␤ orig => "\t .",␤ to => 1,␤ ),␤ ],␤ ],␤ ),␤
..Match.new(␤ …
flussence_ rakudo: say (" ." ~~ /^((\t)? \s*) (.*)$/).perl
p6eval rakudo e3bd9a: OUTPUT«Match.new(␤ from => 0,␤ orig => " .",␤ to => 4,␤ positional => [␤ Match.new(␤ from => 0,␤ orig => " .",␤ to => 3,␤ positional => [␤[␤ ],␤ ],␤ ),␤ Match.new(␤ from => 3,␤ orig => " .",␤ to => 4,␤ ),␤ ],␤)␤»
sjohnson ikes 21:54
flussence_ hmm
tadzik worr's new build system is called Puma and is on GH: github.com/worr/Puma 21:59
22:18 pmichaud_ left, pmichaud joined 22:19 kaare_ left, sufrosti1o left 22:29 Holy_Cow left 22:34 whiteknight joined 22:39 colomon joined
colomon mberends: see justrakudoit.wordpress.com/2011/03/.../#comments 22:42
22:43 leprevost left 22:50 jevin joined 22:52 nwellnhof left 22:58 hercynium left 23:04 cdarroch left
PerlJam wow. 23:09
"I just wanted to thank you for your “Gentle Introduction to Perl 6 Regex,” which has helped me enormously. " 23:10
That's the kind of thanks that makes me happy and bashful at the same time :)
sjohnson perljam == hero 23:11
23:15 dsouza left 23:34 Solarion_ joined, fisted left 23:35 Solarion left 23:37 Chillance left 23:39 Mowah left 23:55 fisted joined 23:56 stkowski left