»ö« 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.
00:09 slontec joined 00:25 daniel-s left, kborer joined
jnthn sleep & 00:27
sorear What's the most idiomatic way to write "{$from}::$_" ? 00:44
00:48 sftp joined
thou ::($from)<$_> 00:48
no idea if that works
:-)
o/ hello! and, ... \o goodbye, #perl6 :-) 00:49
00:49 thou left
sorear not what I meant :) 00:51
I want $from ~ "::" ~ $) 00:52
$_
niecza v7 release on the 27th 00:57
01:01 sftp_ joined 01:02 sftp left 01:06 noganex joined
TimToady you mean more like ::($from)::{$_}, or maybe ::($from)::($_) 01:10
or ::($from ~ '::' ~ $_) 01:12
sorear No
I do not want to look up a name
I just want to construct a string
TimToady then the way you wrote it first seems pretty okay 01:13
but I don't know what you mean by 'idiomatic' 01:14
sorear "{$package}::$name" just looks a bit ugly to me
TimToady perl6: my $from = "abc"; $_ = "def"; say "$from\::$_" 01:15
p6eval pugs, rakudo 248244, niecza v6-177-g365e216: OUTPUT«abc::def␤»
TimToady that works too
but $from ~ '::' ~ $_ ain't all that bad either 01:17
01:18 sftp_ left 01:23 sftp_ joined, woosley joined
lichtkind TimToady: sorry for being little bit grumpy on that sin thing, i dont take my position to seriously only if other people suffer :) 01:40
i mean not too seriously :) 01:44
TimToady: other than that i just want to know if there are any changes in the IO sector underway, because that tablet is gona to be wrtten next 01:47
01:51 whiteknight left 01:52 gh joined 01:53 Chillance joined 01:56 cognominal_ joined 02:00 molaf joined, d4l3k_ joined, kst` joined 02:01 nsh joined, beekar joined 02:02 scottp_ joined, miso2217__ joined 02:03 uniejo_ joined, diakopte1 joined 02:04 _patch_ joined, Gruber joined, orafu joined, xinming_ joined 02:08 Helios left, Grrrr left, _patch left, nsh| left 02:09 d4l3k_ is now known as dalek, ChanServ sets mode: +v dalek 02:13 gh left 02:23 Guest42133 joined 02:27 Guest42133 left 02:29 envi_laptop joined 02:30 stepnem joined 02:34 chitragupt left 02:36 ab5tract joined 02:46 cooper left 02:47 cooper joined 02:57 molaf left 03:03 chitragupt joined
dalek p-rx: 1dc87d4 | pmichaud++ | src/stage0/ (3 files):
Update bootstrap files to take advantage of new PAST::Stmt nodes and
03:20
03:23 Su-Shee_ joined
pmichaud all parrot tests pass with new nqp-rx bootstrap... building rakudo 03:24
oops, wrong chan
03:24 agentzh joined, agentzh left, agentzh joined 03:30 JimmyZ joined 03:32 jaldhar joined 03:41 sftp_ left
colomon in a rather abrupt change in personal plans, I just booked a flight to YAPC::NA. I don't like flying, but it turns out I like the idea of driving 12 hours by myself, part of it through mountains (which I hate) even less. Plus the cost of the flight was almost the same as the gas would have cost. 04:08
afk # bed
04:16 ab5tract left
TimToady rosettacode.org/wiki/Arbitrary-prec...ed)#Perl_6 04:23
uses niecza...didn't mention it takes 2m 17s on my T61... :) 04:24
niecza: say 5 ** 262144; # this is the slow part :) 04:25
p6eval niecza v6-177-g365e216: OUTPUT«(timeout)»
04:26 satyavvd joined
sorear hehe, I can imagine :) 04:32
the ** routine is... old.
pmurias wrote it, iirc, before niecza even had bitops 04:33
TimToady it could likely be sped up by squaring 5 repeatedly and factoring out large pieces, the doing it again for the remainder 04:34
sorear yeah 04:35
wait.
262144 is a power of 2
TimToady niecza: say 4**3**2 04:36
p6eval niecza v6-177-g365e216: OUTPUT«262144␤»
TimToady yes
sorear niecza: say (5, { $^a * $^a } ... *)[18]
p6eval niecza v6-177-g365e216: OUTPUT«(timeout)»
sorear niecza: say (5, { $^a * $^a } ... *)[1]
p6eval niecza v6-177-g365e216: OUTPUT«25␤»
sorear niecza: say (5, { $^a * $^a } ... *)[8]
p6eval niecza v6-177-g365e216: OUTPUT«86361685550944446253863518628003995711160003644362813850237034701685918031624270579715075034722882265605472939461496635969950989468319466936530037770580747746862471103668212890625␤»
sorear niecza: say (5, { $^a * $^a } ... *)[18].chars 04:37
p6eval niecza v6-177-g365e216: OUTPUT«(timeout)»
sorear niecza: say (5, { $^a * $^a } ... *)[16].chars
p6eval niecza v6-177-g365e216: OUTPUT«(timeout)»
sorear niecza: say (5, { $^a * $^a } ... *)[10].chars
p6eval niecza v6-177-g365e216: OUTPUT«716␤»
sorear niecza: say (5, { $^a * $^a } ... *)[13].chars
p6eval niecza v6-177-g365e216: OUTPUT«5726␤»
sorear fail 04:38
sorear decides to forbid class MY::Foo { } 04:42
04:43 birdwindupbird joined
TimToady hmm, BigInteger has a Pow routine, but it looks like maybe you're not using it 04:52
sorear right 04:56
you want lib/CORE.setting:291 04:57
I don't really understand how ** is supposed to work, typologically
I kindof like the Haskell solution there... 04:58
I wonder things like whether -2 ** 4e0 should be Complex
rakudo: say (-2 ** 4e0).WHAT 04:59
p6eval rakudo 248244: OUTPUT«Num()␤»
TimToady niecza: say 2 ** .5 05:03
p6eval niecza v6-177-g365e216: OUTPUT«2␤»
TimToady heh
05:05 koban joined
sorear but 4e0 is often considered to have an <=epsilon (real) error 05:06
dalek p: 6e4f4db | pmichaud++ | / (3 files):
Add PAST::Want nodetype, allows selection of a PAST tree based

This will likely move into Parrot's source tree eventually; I've added it here now so we can test and iterate it more directly until it stabilizes.
sorear tries to figure out how to type lessequals again 05:08
05:12 tomize joined
dalek kudo/nom: d3bd796 | pmichaud++ | / (2 files):
Bump NQP_REVISION to get PAST::Want. Use PAST::Want on constant

going directly to pir:: opcodes.
05:13
sorear What is PAST::Want? 05:14
05:15 Trashlord joined 05:20 birdwindupbird left 05:26 kaare_ joined 05:43 Chillance left 05:44 stephanepayrard_ joined 05:47 cognominal_ left 05:50 envi_laptop left, starcoder joined 05:55 wtw joined 06:03 wamba joined 06:10 birdwindupbird joined, Sarten-X joined 06:22 Su-Shee_ is now known as Su-Shee 06:24 fhelmberger joined 06:26 tomize left, tomize joined 06:37 benabik joined 07:03 scottp_ is now known as scottp 07:17 dukeleto left, dukeleto joined 07:33 araujo joined 07:34 mj41 joined 07:39 araujo left 07:42 daxim joined 08:00 envi_laptop joined, wamba left, tzhs joined 08:05 Gruber is now known as Grrrr
moritz sorear: it's probably detecting sink context 08:19
JimmyZ Walk ant? 08:20
08:20 REPLeffect joined 08:26 dakkar joined, xinming_ is now known as xinming
sorear moritz: the pod in the commit explains it 08:32
it selects one of N children based on INSP result type
to make constants more efficient in native type code 08:33
(grr... efficient native types will set me *so far back*)
moritz sorear: no, it will set rakudo forth, not niecza back 08:37
08:39 Sarten-X left 08:43 mberends joined
mberends I recall pmichaud++ was famous for DO NOT WANT want() ;) 08:44
sorear o/ mberends 08:45
mberends o/
08:45 Shozan joined
moritz mberends: indeed, but the sink/notsink distinction can actually be made, and should (for performance and eagerness reasons) 08:45
mberends: contrary to want(), which wasn't computable 08:46
sorear I hate sink/notsink because it brazenly violates the "do not pay for what you do no use" rule
$x = foo($y,$z); # this has to call $x.sink 08:47
er wait
foo($y,$z); # this has to call .sink
I can arrange to short-circuit it by testing a flag on the STable, but still 08:48
08:48 Sarten-X joined 08:49 icwiener joined
sorear or I could add PL_sawlazylist and only generate .sink calls if lazy lists are being used. That's sure to elicit a response from TimToady:D 08:49
08:55 Sarten-X left 09:04 mberends left
sorear *out* 09:05
09:08 Sarten-X joined 09:14 saaki joined
dalek kudo: f234be6 | moritz++ | build/PARROT_REVISION:
bump PARROT_REVISION to 3.5.0
09:14
09:16 daniel-s joined
dalek kudo: 7570802 | moritz++ | docs/ChangeLog:
update ChangeLog a bit
09:19
09:22 toebu joined 09:36 kanishka joined 09:45 woosley left 10:07 agentzh left 10:18 stepnem left 10:25 fbass joined 10:27 stepnem joined 10:37 araujo joined, araujo left, araujo joined 10:40 mkramer1 joined 10:44 mkramer joined 10:46 mkramer1 left 10:56 s1n joined 11:15 xinming left 11:16 xinming joined 11:19 envi_laptop left 11:21 avar joined 11:32 wamba joined 11:40 pnu joined 11:42 satyavvd left
colomon moritz++ 11:49
12:03 stepnem left 12:04 stepnem joined 12:06 Helios joined
takadonet morning all 12:06
colomon o/
moritz \o 12:07
12:07 lichtkind joined 12:08 orafu left, orafu joined 12:12 yves joined 12:13 aloha joined
daniel-s is it bad to write the opening curly bracket on the next line, rather than as: if (a<b) { 12:18
12:18 birdwindupbird left
moritz it's much more important to put whitespace around the infix operator 12:19
and you don't need the ( ) either
so just write if a < b { and be happy :-)
moritz is great in not actually answering questions :-)
12:20 molaf joined
dalek kudo: 3fc36ba | pmichaud++ | docs/announce/2011.06:
Add a draft 2011.06 release announcement. (Still needs updates.)
12:22
JimmyZ good evening, #perl6 12:31
pmichaud JimmyZ: o/
good morning, #perl6
takadonet JimmyZ: o/
JimmyZ && good morning, pmichaud
12:32 woosley joined
moritz pmichaud: do you want to mention the nom branch in the release announcement? 12:32
pmichaud I think it would be good to mention it, yes.
JimmyZ takadonet: o
lichtkind moritz: if you would be so kind make a quick check if I did no major BS perlpunks.de/paste/show/4e00909e.9d1.4e 12:38
12:49 bluescreen10 joined
moritz lichtkind: not bullshit, but I'd like to remind you that only names and substantives are capitalized in German 12:51
lichtkind moritz: sounds plausible :)
PerlJam greetings #perl6lings 12:52
pmichaud PerlJam: o/ 12:53
PerlJam This month's release is the "hitchhikers guide to the galaxy" release :)
pmichaud yes, I believe that's why jdhore++ claimed it. :)
We should put "Don't Panic" in the announcement. :-)
moritz wonders why lue wasn't faster :-)
PerlJam indeed
had lue gotten it, there would have been too much HHGTTG 12:54
:-)
12:54 mberends joined
pmichaud oh, and all-caps. 12:54
moritz INDEED
mberends \o/ biggish int long division works: 0x906c93c2fa29608fc6f2cad3ef5 / 0x11112222333344445555 == 0x87654321 # will push after $work 12:55
12:56 JimmyZ_ joined 12:58 JimmyZ left, JimmyZ_ is now known as JimmyZ 12:59 fbass left
PerlJam I wonder if someone on the "outside" is looking at the Rakudo release announcements and wondering what happened to that Worhtington guy ... he hasn't contributed in a while ;-) 13:00
pmichaud Slacker.
13:02 birdwindupbird joined 13:03 sftp joined, Holy_Cow joined, birdwindupbird left, birdwindupbird joined 13:04 smash joined
smash hello everyone 13:04
13:05 MayDaniel joined
takadonet smash: hey 13:07
smash hmm.. i'm a bit lost in these new nqps' (my fault of course) 13:08
13:08 mberends left 13:11 woosley left
PerlJam smash: lost how? 13:12
moritz it's quite easy 13:13
there's the old-old NQP. It's dead
the next one was NQP-rx, on which rakudo master is built 13:14
it ships with parrot
smash nods.
nqp-rx was the last one i looked at
moritz then there's the new nqp, which comes with 6model, and on which rakudo/nom is being built
13:14 koban left, sunnavy joined
moritz the only really confusing thing is that the nqp-rx executable is called 'parrot-nqp' 13:14
smash moritz: thank you for the summary 13:16
moritz smash: you're welcome
13:33 aidan2011 joined 13:34 lichtkind left 13:39 tokuhirom joined 13:40 daniel-s left 13:41 daniel-s joined 13:52 wamba left 13:58 Shozan left 14:00 jasonmay joined 14:06 Holy_Cow left 14:09 kfo joined, mkramer left 14:15 Chillance joined 14:17 wtw left, leprevost joined 14:20 bluescreen10 left 14:23 jaldhar left, jaldhar joined 14:24 MayDaniel left 14:30 mkramer1 joined 14:32 molaf left 14:38 daniel-s left, daniel-s joined 14:39 slavik joined 14:51 thou joined
dalek p: bcfe1f0 | pmichaud++ | tools/build/PARROT_REVISION:
Bump PARROT_REVISION to 3.5.0 release.
14:56
p: c62322b | pmichaud++ | / (5 files):
Add initial version of nqp:: pseudo-opcode space for low-level primitives.
moritz pmichaud: do the control nqp:: opcodes take closures? 14:59
pmichaud: also you wrote that the p6 terms are prefered, but use nqp::upcase instead of nqp::uc 15:00
15:03 tokuhirom left, tokuhirom joined
moritz pmichaud: and we might want an open() opcde (?) 15:05
ah, not closures, just statements 15:06
thunks 15:07
15:07 mkramer1 left
moritz pmichaud++ 15:08
though why do we need nqp::if and nqp::: when we already have the ternary? bootstrapping thingies? 15:09
15:20 daniel-s left 15:21 toebu left 15:22 wamba joined 15:28 donri joined, kaare_ left 15:36 strider__ joined, strider__ left, strider__ joined 15:37 tzhs left 15:38 Tedd1 joined, cotto joined 15:39 strider__ left, stormcrow joined 15:47 stormcrow left, strider__ joined 15:50 strider__ left, strider__ joined
pmichaud moritz: yes, bootstrapping. 15:53
eventually ?? !! will be defined in terms of nqp::if() . 15:54
Agreed on "uc" versus "upcase" -- fixing.
15:54 slontec left
moritz pmichaud: but isn't control flow usually bootstrapped by the code emitting part? 15:54
pmichaud nqp::if() is just another way of saying PAST::Op(:pasttype<if> ... ) 15:55
moritz I mean, the PAST if-block takes care of that
ok
pmichaud all of the nqp:: "opcodes" are really just ways of requesting specific PAST nodes
it even occurred to me earlier that we can do nqp::stmts(...) and create PAST::Stmt blocks
i.e., eventually it would be possible to write all of nqp using nqp:: ops :) 15:56
(well, maybe not all, but we can get darn close)
what nqp:: really does is give us a functional syntax to map to the capabilities of whatever virtual machine we happen to be on 15:57
(as exposed by PAST)
eventually PAST will be written in nqp, at which point we'll be very self-hosted
15:58 cotto left
pmichaud About 20 minutes ago I was thinking of nqp::parrot(...), which performs an operation on Parrot but is a no-op everywhere else. 15:58
moritz might be useful, might be dangerous
pmichaud well, I was thinking of the case of something like the 'compreg' opcode. 15:59
Eventually HLL::Compiler will have its own "lookup a compiler" equivalent, that can be independent of compreg
i.e., it'll keep its own table of compilers 16:00
but if we're running on parrot, we'd like to go ahead and register the compiler via compreg anyway
so: nqp::parrot(pirop=>'compreg', ...args...) can do that for us. It lets us execute a parrot opcode, but gets ignored by non-parrot vms. 16:01
16:01 Yaakov joined
pmichaud anyway, yes, there's a lot of new capability here to be explored :) 16:01
I'm eager to start converting nom to using nqp:: instead of pir:: where we can 16:02
moritz shouldn't be too hard, once you've bootstrapped 16:03
16:03 Yaakov left
pmichaud oh, I can add nqp:: syntax to nom now :) 16:03
no bootstrap necessary, at least for the CORE.setting part
moritz ah, I misread
I thought you meant nqp
for nqp you'd need bootstrapping 16:04
pmichaud nqp already can start using nqp::
that's how it's able to test it :)
(nqp:: is already built into nqp.)
moritz but not in the stage1 compiler, is it?
pmichaud rakudo uses the stage2 compiler
anyway, "make bootstrap-files" will put it into stage 0 :) 16:05
moritz but you couldn't use nqp:: in NQP's Action.pm unless you bootstrap, right?
moritz just wants to check his sanity
pmichaud right
s/unless/until, at this point.
moritz right
pmichaud doing that now :) 16:07
the opcodes I'm not entirely happy with are nqp::bindattribute and nqp::getattribute. They feel "long", and I'm not fond of "get" either. I'm thinking of just nqp::bindattr and nqp::getattr 16:09
or even just nqp::attr instead of nqp::getattr
PerlJam whenever I see "get...", I tend to expect there to be a corresponding "set..." 16:10
(just a data point)
16:10 mj41 left, strider__ left, strider__ joined
pmichaud PerlJam: I'm the same way. I'm still stung by Parrot's over-misuse of that term. 16:11
16:11 MayDaniel joined
pmichaud and I think I'd be much more explicit by using "bind*" instead of "set*", so that means "get*" should probably disappear in favor of something else 16:12
dalek p: 3bb5b1c | pmichaud++ | / (3 files):
nqp::downcase/nqp::upcase should be nqp::lc/nqp::uc. moritz++
p: 900cf14 | pmichaud++ | src/stage0/ (6 files):
Re-bootstrap to enable nqp:: ops within NQP itself.
16:15 spq1 joined 16:16 strider__ left, strider__ joined 16:17 strider__ left
PerlJam suffers a failure of imagination on replacement candidates for "get*" 16:20
16:20 REPLeffect left 16:21 dukeleto left, dukeleto joined
pmichaud "fetch" is the best I've come up with thus far 16:22
16:23 Trashlord left
pmichaud "grab" 16:23
PerlJam "reap" might work if you're so inclined (it certainly won't have any cognitive overload in this context ;)
pmichaud "reap" implies to delete or remove, to me.
pmichaud@kiwi:~/nom$ ./perl6 16:24
> nqp::say(nqp::add_i(2,3))
5
\o/
JimmyZ \o we open the door to other vms :) 16:25
not we, I mean pmichaud++
pmichaud it's a collective effort, certainly.
JimmyZ though I don't like C# and Java :) 16:26
pmichaud well, if this goes well, then you'll be able to use Perl on the CLR without having to deal with C# :-)
16:26 Trashlord joined
PerlJam "grab" works for me (I tend to favor something with 4 letters to match "bind" in the absence of some mnemonic device) 16:27
JimmyZ never learns commercial language
pmichaud I'll brainstorm a bit more.
JimmyZ I would like fetch
PerlJam so will there be 3 variants or just 2? 16:31
pmichaud ?
PerlJam bind, fetch, and "change the thing bound" ? 16:32
or just bind?
pmichaud bind, fetch, and maybe store
where store means "put into the thing"
PerlJam ok
pmichaud i.e., we bind a lexical symbol, and we can store into a container
(also following some of the p6 terminology here :)
PerlJam You can't go too far wrong following the lead of a linguist when doing languagey things ;) 16:34
pmichaud ...how does this look to folks? gist.github.com/1038259 16:35
PerlJam less verbose than before. 16:36
JimmyZ maladjustment 16:37
PerlJam stupid question: We can't have ops that operate on boxed ints?
pmichaud in parrot, that would mean going through the vtables 16:38
which would mean creating a vtable for every type
which currently means that you either write that code in C (not portable), or you suffer an absolutely gigantonormous performance penalty as you jump through inferior runloops to get to the pir that implements your vtable 16:40
16:41 aidan2011 left
pmichaud if you mean "can we create ops that automatically unbox the ints for us"... we might be able to do that, but jnthn++ feels pretty strongly at this point that we should keep coercions a bit more explicit (I agree with him for now) 16:41
s/ops/pseudo-ops/
s/coercions/(un)boxing/ 16:42
PerlJam I was thinking ahead a little to the mythical VM that caters to Rakudo's needs and wondering how this code would change to run on both that VM (or a VM like it) and Parrot 16:45
pmichaud I think the code might be the same -- on that VM the unbox_i opcodes would be no-ops (and thus optimize out)
16:46 cdarroch joined, cdarroch left, cdarroch joined
dalek kudo/nom: 2089c06 | pmichaud++ | / (3 files):
Bump NQP_REVISION, add nqp::ops.
16:52
kudo/nom: b513e34 | pmichaud++ | src/ (2 files):
Proof of concept of Int arithmetic ops using nqp:: opcodes instead of pir:: . Win.
16:53 kst` left
pmichaud I *like* this layer of abstraction. :) 16:54
afk, lunch 16:55
16:58 kst joined, tokuhirom left, cotto joined 16:59 birdwindupbird left 17:04 daxim left 17:05 dakkar left 17:09 dual joined 17:14 Chillance left 17:16 Chillance joined 17:18 Sarten-X left
jdhore1 pmichaud, I could've done the announcement :( 17:18
PerlJam jdhore1: a) it's not finished and b) why the :( ? this is what open source and community is about. Everyone does a little bit to make the whole better. 17:19
jdhore1 True, but I sort of like writing them
PerlJam you've got the more important and difficult task though ... choosing a name :) 17:20
jdhore1 I already have that
Since it's release #42, i'm going to be making all sorts of Hitchiker's Guide references. The release name is one of them. 17:21
17:21 y3llow joined 17:25 Sarten-X joined 17:26 smash left, kanishka left
spetrea sorear: hey 17:28
phenny spetrea: 19 Jun 18:14Z <sorear> tell spetrea to check out niecza if performance is a major concern
spetrea sorear: I always wonder around, write Perl5 a lot at work and at home, but I come here from time to time because I want to know the future 17:29
PerlJam so, we have a higher concentration of the future here than other places?
JimmyZ maybe we can change the future here 17:30
error, not me
you guys
PerlJam we can change other people's future, just not our own 17:31
17:38 cotto left
pmichaud jdhore1: I only created an initial draft. 17:45
jdhore1: you're welcome to change it however you want. :)
jdhore1 :D 17:46
pmichaud I do have one more change to make
(with a hitchhiker's reference :)
17:48 JimmyZ left
jdhore1 :D 17:50
I'm going so obscure with the releasename that even i didn't get the reference till someone explained it to me...but it's perfect. 17:51
17:52 cotto joined, Chillance left
dalek kudo: 7175e54 | pmichaud++ | docs/announce/2011.06:
Add a DON'T PANIC note referencing "nom".
18:02
PerlJam pmichaud: awww, you didn't like my "contribution"? :) 18:03
18:04 cotto left
pmichaud PerlJam: I missed it, I guess 18:06
PerlJam I only added my name to the release doc to claim the Oct release :) 18:07
so that lumps me in with "and others" I guess :)
pmichaud oh, that
You're welcome to edit the announcement and add yourself if you want. I think that's worth a mention :) 18:08
18:08 masak joined
masak oh hai #perl6 18:08
pmichaud masak: oh hai!
moritz \o 18:09
PerlJam masak: greets!
masak is having laptop trouble
worse, I gave it to a computer repairman yesterday, but I had to take it back because it turns out I can't live without it... :/ 18:10
but enough about me. how are you guys doing?
pmichaud I'm preparing my #phasers report
masak ooh, thanks for the reminder! :) 18:12
18:19 kboga joined 18:33 lichtkind joined
Tene masak: I've got a spare laptop laying around; obviously you should come hang out at my place. 18:34
pmichaud I've got two or three. Of course, some of them are woefully underpowered. :) 18:37
masak I can use this one, but only with a USB keyboard plugged in. 18:38
Tene: thanks for the offer. I wish it were easier to realize :)
pmichaud I even have a spare usb wireless keyboard or two :) 18:39
masak I have a model M one, but I'll need to buy a smaller one before going to FPW. 18:40
pmichaud bbi20
18:40 colomon joined, dukeleto left 18:41 dukeleto joined
colomon sorear: I'm going to take a stab at properly implementing infix:<**> on the drive back up. (Unless I successfully manage to download a lot of useful $work stuff from this cafe in the next five minutes.) 18:41
18:49 kborer left
sorear good * #perl6 18:50
18:51 cotto joined 18:52 mberends joined 18:53 Chillance joined 18:54 colomon left 18:55 colomon joined 18:57 colomon left 18:59 jaldhar left
sorear spetrea: o/ 19:03
19:09 Woodi joined 19:25 bakedb joined
moritz std: $::a 19:27
p6eval std 37a0cdd: OUTPUT«ok 00:01 118m␤»
masak there's an OO pattern called Memento of which I've learned recently. 19:29
it uses an inner class to do serialization without breaking encapsulation/data hiding.
19:30 robinsmidsrod left
masak it's common in Java and C#, it seems. 19:30
moritz and I thought it involved reversed time (like the movie)
masak :P
I was wondering if the same could be done in Perl 6, and I think it can; if the inner class trusts the outer.
and then I got to thinking -- maybe inner (physically nested) classes should trust outer ones by default. 19:31
s/\./?/
std: $::"foo" 19:35
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/cz8DfJ2CCB line 1:␤------> $::⏏"foo"␤ expecting any of:␤ POST␤ bracketed infix␤ infix or meta-infix␤ name␤ postfix␤ postfix_prefix_meta_operator␤ statement modifier
..loop␤Parse failed␤FAILED 00:01 119m␤»
sorear std: $::("foo") 19:36
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
masak std: $::($::($::("foo"))) 19:37
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
19:38 birdwindupbird joined
pmichaud blog post draft -- comments welcome: pmichaud.com/sandbox/lists.html 19:38
moritz nice one 19:41
sorear TimToady: 'no strict; $x = 5; my $x; say $x' # What should this do in Perl 6?
pmichaud feels a little airy, but maybe I can add more down-to-earth stuff in a future post
masak pmichaud: reading that draft, I'm reminded of what I like about the Perl 6 design process: we're all building towards Perl 6, but we don't exactly know what it is yet. but "we know it when we see it" -- we know what Perl behaves like, and we often realize we have a number of expectations on Perl 6 too. 19:43
how list laziness interacts with arrays is one example.
it feels like it "falls out" of our expectations and our vague notions of what "Perlish" behavior is.
19:43 robinsmidsrod joined
pmichaud in this case it's more like "here's how we think it works, nope -- that's definitely not perlish, let's try this inste.... oops, that doesn't fit either, how about ..." 19:44
PerlJam I like the paragraph with the analogy of quantum physics and chemists
mberends pmichaud: a few short code examples (you're very good at those) would reduce the airiness
masak once I designed a chess variant. it made me realize that I have a lot of vague notions of "Chessish" behavior that made the variant "design itself" in spots. :)
19:45 ingyfoo joined
pmichaud mberends: I'm trying to decide if it's better to put this up now and concrete examples later, or to have this wait for the concrete examples. It might be a day or two before I can get the examples in, which makes me think "post now and again later" may be the better approach. 19:45
19:45 Raynes joined, Raynes left, Raynes joined
tadzik pmichaud: I'm sligthly confused by the post. It starts with "what's up in nom", and then describes what are the two branches about 19:45
19:45 sunnavy left
pmichaud tadzik: hmm, the post is really more about the state of Perl 6 list implementations :) 19:48
tadzik oh, ok :) 19:49
TimToady sorear: obviously it should say "'no strict' not allowed in strict mode" :) 19:50
PerlJam pmichaud: will S07 mention all of those listy things you talk about in this post?
pmichaud PerlJam: definitely.
it pretty much has to
TimToady sorear: seriously, rather than just throwing variables into the current package like P5, we should consider whether assuming an implicit 'our' makes more sense 19:51
pmichaud they all relate pretty tightly --- indeed, most of them were developed in response to "hey, lists don't work"
19:52 Raynes left, Raynes joined
PerlJam The only one I don't really have a firm handle on are LoLs. I'd like to see a blog post about them at some point if you're taking suggestions 19:53
pmichaud Yes, I think that's a blog post on its own. :)
19:53 sunnavy joined
pmichaud And I can write that post as soon as I have a handle on LoLs. 19:53
masak PerlJam: I think LoLs are inherently sludgy, not just for you.
pmichaud Which will probably happen just about after the time I finish the first draft implementation of them :)
thou pmichaud: i'm looking forward to your S07 rewrite; there's some stuff in S02 that is hard to understand without knowing the difference between LoL context, list context, list vs Array vs. Seq, etc., and I've still not seen a good description of how all those terms relate
pmichaud thou: as masak++ said, some of them are still fuzzy -- they're waiting for an implementation to sort them out. nom is likely to be that implementation that does the first batch of sorting :) 19:54
masak how do LoLs and captures interact? &zip takes a LoL as an argument, doesn't it?
thou yeah, it's exciting. jnthn++ pmichaud++ !
PerlJam thou: it's easy ... all you have to do is hang out on #perl6 and participate in every discussion relating to lists and then pay attention to what the collective has decided does and does not work. ;-)
thou hehe 19:55
working on it.
pmichaud zip takes a capture, its signature binds the capture into a LoL
masak PerlJam: I wish that weren't so true... :)
19:55 cbk joined
masak pmichaud: yeah, I guess that is pretty easy, actually. 19:55
pmichaud well, there's still some trickiness in that we have to make sure that &infix:<;> dtrt :-)
er, semicolon in arglists, too 19:56
thou and the relationship of get() and getarg() may be a good way to explain things, too -- dive down to that lower level with an example or two
masak pmichaud: did you catch TimToady's comment about ; not being an infix?
pmichaud there is no get() and getarg() in the new implement
thou oh, well, nevermind then
hehhe
pmichaud masak: yes, thus my correction. it's an argument separator
as well as a statement terminator
masak pmichaud: it's only the latter, but the constant folder catches it. 19:57
IIUC.
pmichaud token semiarglist {
<arglist> ** ';'
<.ws>
}
(from STD.pm6)
masak oh, ok.
PerlJam The last sentence of the 5th paragraph may come back to haunt you. "...while Perl 6 programmers can do a lot of useful chemistry without having to be aware of the gory details underneath." I'm *so* reminded of leaky abstractions there. 19:58
As long as they can be gradually aware of the gory details thought, everything is fine. 19:59
s/ght/gh/
pmichaud PerlJam: some chemists do need to know about the quantum mechanics underneath, yes. :)
masak it's hard to get a precise understanding of it without going into the gory details, probably.
pmichaud I didn't say you can do all chemistry without having to be aware of the details, just that you can do a lot.
TimToady y'all make it sound like chemistry isn't Compleatly Gory in its own right... 20:00
pmichaud anyway, it certainly wouldn't be the first statement that comes back to haunt me. :-)
I think one of my first mis-statements was: "Perl 6 compiler pumpking? Sure, why not?" :-P 20:01
masak hugs pmichaud
TimToady that wasn't a statement; it was a question
pmichaud see! that's the sort of haunting I get! :-P
masak mis-question... :)
tadzik it's just that no one answered
TimToady well, the Spirit of Christmas Future answered by pointing at your grave.. 20:02
masak no-one knows the answer.
pmichaud and if I understand correctly, it's really an "interrogatory statement".
masak it's really an interrogatory statement?
:P
PerlJam heh
TimToady it was a derogatory instatement... 20:03
pmichaud looks over the precipice of having any sort of discussion with TimToady++ on the meaning of words and language and decides to back away slowly.
TimToady
.oO(if you can't confuse 'em...er...confuse 'em...)
20:04
masak lingrist -- implementor: 1 -- 0 ;)
pmichaud I'm going back to writing code, where I don't have to deal with TimToady's ideas on langua.... er, wait. 20:05
TimToady you can rewrite the rest of the Synopses too :)
PerlJam notes that TimToady is haunted as well ;)
TimToady well, a haunted house still needs Walls 20:06
masak *groan*
mberends with broken Windows?
masak that's most houses these days... 20:07
PerlJam TimToady: speaking of which! How come www.wall.org/~larry/natural.html is disappeared?
in fact, many (if not all) of the wall.org/~larry/*.html documents that I think should be there are actually not. 20:09
pm.html -- gone. perl.html --- gone. 20:10
20:11 pochi joined
TimToady still recovering from a headcrash several months ago, and using it as an excuse not to carry over stuff that isn't neede anymore 20:12
but haven't copied over everything that I do want to carry over yet
PerlJam bummer 20:13
TimToady but natural is there now
PerlJam makes it easier to spread the good word if it's there for people to read :) 20:15
Su-Shee PerlJam: let me guess: you never throw away stuff and everyone can see for how long by looking into your garage/cellar/etc? :) 20:16
PerlJam Su-Shee: I have been conditioned to occasinally throw stuff away. I recently threw away my high school physics notes even! 20:17
Su-Shee
.oO(I know how old he is.. ;)
20:19 whiteknight joined
PerlJam Su-Shee: my wife and I go good together ... she's always pressuring to throw away old stuff, I'm always pressuring to keep it ... at some point we arrive at an equilibrium where we keep stuff for as long as needed but it eventually migrates to elsewhere (other people, junk yard, good will, whatever) 20:19
though there have been some snafus (my fishing rods were sold in a garage sale without my knowledge and once a pair of shoes I'd only had a few weeks were given to good will) 20:21
20:21 mj41 joined
Su-Shee PerlJam: ah. yes. we have the same roles here. we solved the problem by mr shee has a room for him, I have one for me. guess which one has 7 monitors and 3 printers and 5 database servers and shelves of steel? 20:21
sorear doesn't know much about oraperl and sybperl 20:27
20:29 jedai joined 20:33 Woodi left 20:38 bakedb left
masak sorear: aren't those pre-p5 "distributions" which threatened to fracture the codebase? 20:39
Perl 5 solved the original issue by having a module system.
20:41 Sarten-X left 20:46 Woodi joined, diakopte1 is now known as diakopter
mberends o/ diakopter 20:47
diakopter o
phenny diakopter: 11 Jun 20:45Z <moritz> ask diakopter any idea what's up with the appflux server? I can't seem to ssh to it, and dalek often times out
diakopter wow that was awhile ago
moritz \o diakopter. Ignore that, issue is long since gone
diakopter I wonder how long I was diakopte1 20:48
20:48 impious joined
diakopter I recall helping maintain an oraperl 20:49
*installation
TimToady: a haunted house can have a genius or two, too 20:51
20:52 Sarten-X joined, birdwindupbird left 21:02 colomon joined 21:03 leprevost left, MayDaniel left 21:15 wamba left
masak diakopter: ah, Maniac Mansion... :) 21:27
good times. 21:28
21:37 donri left, cotto left 21:40 donri joined, mj41 left
sorear diakopter: you remember oraperl? how did that work? 21:42
sorear is interested in the history of it 21:44
pmichaud: I hear you want a 'rakudo-nom:' p6eval target 21:45
benabik nom: say 'hi'; # I thought one got installed. 21:46
p6eval nom: OUTPUT«hi␤»
sorear benabik: that was supposed to be my line :(
benabik didn't mean to spoil it. :-(
21:46 Psyche^ joined, Psyche^ is now known as Patterner 21:47 MayDaniel joined
PerlJam sorear: as I recall, oraperl just baked in some custom functions that talked to an oracle database. The functions were just there like the rest of perlfunc. But that's about all I know. 21:48
I think I compiled it once to see what all of the fuss was about, but I never used it.
masak search.cpan.org/~timb/DBD-Oracle-1.16/Oraperl.pm
those seem to be the functions. 21:49
pmichaud sorear: what I'm looking for is a way to manually prod p6eval into rebuilding rakudo-nom right away instead of waiting for the next update
the next timed update
21:50 jferrero joined
pmichaud I already know about "nom: " on p6eval. 21:51
masak pmichaud: ...while avoiding race conditions and p6eval locking up... 21:53
pmichaud if it's hard or can't be done, then I can live with the current system, yes.
I figured it was an easyish sort of thing to do. If not, no biggie. 21:54
masak maybe I'm just being overly pessimistic.
pmichaud I know that I see other people restart it from time to time.
(and it seems to get the update when they do their magic) 21:55
PerlJam it's too bad there isn't some sort of smart queue that you can just inject a "rebuild nom" message or even "build nom SHA1" 21:57
masak blog post! strangelyconsistent.org/blog/june-2...11-hangman
dalek kudo/nom: 047ab6a | pmichaud++ | src/ (3 files):
More nqp:: updates. For now I've put some 'generic' nqp:: ops

migrate to the nqp repo.
21:59
22:00 tylercurtis joined
sorear hmm. might be doable 22:02
although you'd have to wait a bit
and you wouldn't know how long to wait, without login access
lichtkind thou: the article is ready if you want to look at it 22:05
sorear is looking for good shell-accessible mutual exclusion programs 22:06
felher masak++ for blog post 22:11
sorear 6model: hi 22:13
22:14 alester joined
thou hi, lichtkind. ok, sure 22:14
lue hello world! o/ 22:15
sorear would like to at least try :)
hello lue!!
22:16 daniel-s joined
masak hi lue! 22:16
'night, #perl6 22:17
22:18 masak left 22:20 [particle]1 joined
diakopter sorear: too long ago; a very distant memory 22:22
I touched only one script I think
22:23 PacoLinux left 22:25 MayDaniel left 22:29 cotto joined
sorear evalbot control restart 22:34
22:34 p6eval joined, ChanServ sets mode: +v p6eval 22:39 p6eval left 22:40 p6eval joined, ChanServ sets mode: +v p6eval
sorear niecza: say 2 + 2 # pmichaud 22:41
p6eval niecza v6-177-g365e216: OUTPUT«4␤»
sorear evalbot rebuild niecza
p6eval OK (started asyncronously)
sorear niecza: say 2 + 2
p6eval niecza v6-177-g365e216: OUTPUT«Rebuild in progress␤»
sorear niecza: say 2 + 2
p6eval niecza v6-177-g365e216: OUTPUT«4␤»
pmichaud +1 22:42
+2
benabik sorear++
kboga pmichaud: is this helpful? pastebin.com/mNwkfhTz 22:46
sorear moritz: is there anything special I have to do to push from the evalbot machine? 22:49
23:03 p6eval left, p6eval joined, ChanServ sets mode: +v p6eval 23:04 daniel-s left
dalek albot: 5e15117 | sorear++ | / (4 files):
Allow issuing restart commands, and do a bit of mutual exclusion locking
23:06
albot: 20fc7c7 | sorear++ | lib/EvalbotExecuter.pm:
Drop max_output_len a bit to stop Bot::BasicBot from making orphans
pmichaud kboga: cool, thanks for the patch! I'll review and apply shortly. 23:07
kboga also, i think commit 047ab6af0681a427d739 removed the Num's modulo infix operator
pmichaud kboga: it appears part of the patch may be missing at the end? 23:08
kboga hmm, let me see
resubmission: pastebin.com/SavXvfVU 23:10
TimToady sorear: if you happen to notice in passing where the (timeout) overwrites the output... 23:13
sorear TimToady: I'm fixing that now 23:15
mildew: say 2 + 2 23:16
p6eval mildew: OUTPUT«sh: /home/mildew/perl5/perlbrew/bin/perl: not found␤»
sorear is mildew likely to ever work again or should I just axe it now?
pmichaud reviewing... 23:17
23:17 whiteknight left 23:19 gfldex joined
pmichaud compiling 23:20
23:21 p6eval left, p6eval joined, ChanServ sets mode: +v p6eval 23:23 cdarroch left
TimToady sorear: I'd say ax it 23:23
pmichaud kboga: applied, thanks! kboga++ 23:24
kboga pmichaud: np, thanks for reviewing 23:25
pmichaud afk, fetching dinner
dalek kudo/nom: 4272fe4 | pmichaud++ | src/core/ (13 files):
Patches to convert many pir:: ops into nqp:: ops. Patch courtesy kboga++ via IRC.
23:27
sorear hehe... 23:30
rakudo: say "hi"; 1 while 1
p6eval rakudo 7175e5: OUTPUT«hi␤(timeout)»
sorear fixed? well...
rakudo: say "$_ " for 1..* 23:31
p6eval rakudo 7175e5: OUTPUT«1 ␤2 ␤3 ␤4 ␤5 ␤6 ␤7 ␤8 ␤9 ␤10 ␤11 ␤12 ␤13 ␤14 ␤15 ␤16 ␤17 ␤18 ␤19 ␤20 ␤21 ␤22 ␤23 ␤24 ␤25 ␤26 ␤27 ␤28 ␤29 ␤30 ␤31 ␤32 ␤33 ␤34 ␤35 ␤36 ␤37 ␤38 ␤39 ␤40 ␤41 ␤42 ␤43 ␤44 ␤45 ␤46 ␤47 ␤48 ␤49 ␤50 ␤51 ␤52 ␤53 ␤54 ␤55 ␤56 ␤57 ␤58 ␤59 ␤60 ␤61 ␤62 ␤63 ␤64 ␤65 ␤66 ␤67 ␤68 ␤69 ␤
sorear I don't think cutting off (timeout) is the most useful behavior.
23:32 tokuhirom joined 23:36 whiteknight joined
lichtkind thou: got it? 23:36
thou looking... 23:37
lichtkind thanks :)
kboga oh typo in 047ab6af0681a427d739: pow_n => 'mod__Nnn', (patch coming up) 23:39
TimToady sorear: nevertheless, it's more useful than overwriting the front
23:40 p6eval left
TimToady esp when you already know it's gotta be infinite 23:40
23:40 p6eval joined, ChanServ sets mode: +v p6eval
TimToady maybe s/OUTPUT/TIMEOUT/ in that case 23:41
TIMEOUTPUT«1 ␤2 ␤3 ␤4 ␤5 ␤6 ␤ :)
23:43 p6eval left, p6eval joined, ChanServ sets mode: +v p6eval
kboga small patch to fix some typo and the missing % operator: pastebin.com/Gd1kynKh 23:43
sorear rakudo: "$_ ".say for 1..*
p6eval rakudo 7175e5: OUTPUT«(timeout)1 ␤2 ␤3 ␤4 ␤5 ␤6 ␤7 ␤8 ␤9 ␤10 ␤11 ␤12 ␤13 ␤14 ␤15 ␤16 ␤17 ␤18 ␤19 ␤20 ␤21 ␤22 ␤23 ␤24 ␤25 ␤26 ␤27 ␤28 ␤29 ␤30 ␤31 ␤32 ␤33 ␤34 ␤35 ␤36 ␤37 ␤38 ␤39 ␤40 ␤41 ␤42 ␤43 ␤44 ␤45 ␤46 ␤47 ␤48 ␤49 ␤50 ␤51 ␤52 ␤53 ␤54 ␤55 ␤56 ␤57 ␤58 ␤59 ␤60 ␤61 ␤62 ␤63 ␤64 ␤65 ␤66 ␤67 ␤68
sorear rakudo: my $x; $x := $x; $x = 5
p6eval rakudo 7175e5: OUTPUT«Segmentation fault␤»
sorear wtf 23:44
I just added code to print "(signal " . ($? & 127) . "?"
oh, hmm, I didn't actually have the & there 23:45
maybe $? is a dualvar
TimToady I believe it is
or maybe not 23:46
$! is
sorear well I won't complain. :) 23:47
TimToady it would be OT :)
lichtkind what is a dualvar?
TimToady a p5 var with both a string and numeric value 23:48
dalek albot: 94a9b38 | sorear++ | / (2 files):
Fix (timeout) overwriting, generate errors for signal-exit
23:48 icwiener left
lichtkind TimToady: and both are different? 23:48
23:48 mberends left
TimToady they're not autmatically derivable from the other value 23:49
lichtkind i never noticed that, thank you
TimToady any scalar can have both a numeric and string value, but that's just caching a coercion 23:50
you can set $! to an errno, and it will give you back a string with the error message (in P5) 23:51
sorear buubot_backup: eval: (kill 9, 1), [ 0 + $!, "" . $! ]
buubot_backup sorear: [1,"Operation not permitted"]
spetrea I shaved my head i.imgur.com/MIqkW.jpg
23:51 tokuhir__ joined
sorear buubot_backup: eval: (unlink "/tmp/pies"), [ 0 + $!, "" . $! ] 23:52
buubot_backup sorear: [2,"No such file or directory"]
sorear that's how it works
TimToady: who is responsible for PerlIO? Should p6 try to offer something similar? 23:53
TimToady um, that's what all the discussion of the S32/IO has been about 23:54
sorear I think I've improved p6eval enough for today.
TimToady you could put ...⌛ on the end if it times out :)
.u ⌛
phenny U+231B HOURGLASS (⌛)
23:55 Tene joined
sorear S32/IO doesn't seem to have any STREAMSish features 23:55
at most it handles encodings
23:56 tokuhirom left
TimToady there are other possible ways to model that in p6, I suppose, anywhere from a fancy "encoding" to a variant on feed operators 23:59