»ö« 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:05 mtk left
dalek ecza: 977ee15 | sorear++ | docs/DIRECTIONS:
Remove outdated statements from DIRECTIONS
00:12
ecza: 58e6749 | sorear++ | / (3 files):
Add S03-operators/overflow.t
ecza: efa9b51 | sorear++ | tools/unrun_tests:
Add a little script to find unrun test files
ast: e7d9d8f | sorear++ | S03-operators/overflow.t:
Fudge S03-operators/overflow.t for niecza
00:13 cdarroch left
sorear TimToady: Is it legal for niecza's $?FILE to return an absolute path? 00:13
A spectest doesn't like it, I'm wondering if I can fix the test :) 00:14
00:15 icwiener left
TimToady I suppose. maybe that means we need to make it easier to distinguish the original argv[0] from 1) a calculated absolute path or 2) the last component 00:17
then an error message can choose how specific it wants to be 00:18
that particular area has always been a source of non-portability though
certainly there's a sense in which an abs path is safer, though no file name is perfectly safe 00:20
an abs path can become wrong if the directories change; a rel path goes wrong when you chdir, and a short name is always wrong outside of its directory
I tend to think the original argv[0] name is best for error messages, neither too much information nor too little, usually 00:22
I'm always a bit amused when niecza emits a completely mundane error message and then sends it off my screen with an unnecessary stack trace... 00:24
sorear not helping is the ~5 lines of useless (above {YOU_ARE_HERE}) lines, and the fact that absolute file names make most of them wrap... 00:26
TimToady 'course, if $?FILE is going to be the original source file of a program compiled long ago in a galaxy far away, we probably need even more info than the abs path...
sorear I think niecza used note;exit for errors once, but that broke eval
I've been tempted to add $?SHA1 00:27
TimToady I coulda used $?ORIG for rosettacode.org/wiki/Narcissist :) 00:29
00:29 Limbic_Region joined
sorear is $?ORIG generally useful? 00:30
TimToady well, if you need to translate positions to line numbers, you can get it from there :) 00:31
and it makes it easier to do &foo.perl :)
sorear seems a bit extravagant
TimToady I think the average size of programs with respect to memories is shrinking rapidly
it also gives you ready access to any $=POD vars 00:32
the pod vars could all be synthetic, based on $?ORIG, in fact
and you can always give error messages by pointing to the source code :) 00:33
so I think it's a Good Default
even if people want 'use cloak;'
Limbic_Region . o O ( we don't need no stinkin Romulans ) 00:34
TimToady it might be particularly important for errors coming from eval
Limbic_Region may have imbibed voracious amounts of potent potables and should be summarily ignored
TimToady you'd think it was a Friday night or sump'n... 00:35
sorear I've lost all contact with the calendar lately 00:36
TimToady btw, To Whom It May Concern, rosettacode.org/wiki/Natural_sorting is a pretty good start for a natural sorting spec
sorear gee, that looks a lot like the Unicode Collation Algorithm 00:40
TimToady we just need to suck in all the Unicode algoritms, translate them to P6, and then given them all simple APIs...oh wait... 00:42
01:01 noganex_ joined
thou hmmm, i'm seeing chinese ideographs on the rosetta code new account page's captcha 01:01
lichtkind good night
thou hmmm, actually might be japanese 01:03
01:04 noganex left, lichtkind left
thou reloading the captcha got me by -- i started looking a lists of kanji and so forth, but ... pretty challenging for me when i don't have any context for it 01:06
01:20 jaldhar joined
TimToady cool! pity I already have an account.... 01:26
I can't do the Romanian granny, but I could do the California grampa if you send me a photo :) 01:29
probably times out though...
Limbic_Region @TimToady - have you ever used Rosetta Stone?
TimToady yes 01:30
Limbic_Region Thoughts?
TimToady it seemed pretty fine, though I got sidetracked somewhere in the middle
it seemed good for my weakness, which is actually understanding what was said 01:31
Limbic_Region as an employee of *mumble*, I have unlimited access and have been spending an hour a night learning Tagalog but despite score 96 or above on every lesson don't feel like I am getting any closer to speaking the language 01:32
Having a great memory allows me to isolate and associate without comprehension
was just wondering if it was me or the program 01:33
TimToady I don't have much trouble speaking, but then I'm a phoneticist/phonologist by training :)
thou TimToady: postimage.org/image/49qp6938/ # Screenshot of the captcha if you're curious 01:34
TimToady you probably need to live in .ph for six months or so
just like I need to live in .jp for a while
Limbic_Region finds the phonetics like ng and mga of Tagalog a little difficult but for the most part it is a simple language 01:35
but I am used to learning foreign languages the classical way - this is a verb, this is how you conjugate it, this is a noun, this is how you modify it, etc
Rosetta Stone takes the approach of teaching as though you were an infant - total immersion with no instruction which I find frustrating because if I knew the rules without having to reverse engineer them - I would be much further along 01:36
*shrug*
TimToady thou: 度初探 01:37
degree first probe 01:38
thou ;-)
TimToady or times begin search
but they're also valid Chinese 01:39
and mean much the same there
thou the third one is pretty neat, like a Whatever hanging out under an umbrella
TimToady the whatever is a tree, and the umbrella is really a variant of net 01:40
if it had a tick on top it'd be "hole"
to the left of that is "hand"
the first one is Roof.o Ubar.it dex.ib
the second is clothes.l Sword.r
I can pretty easily look up any character by knowing all the radicals and pseudo-radicals 01:41
including many of the simpler ones in Extension B
thou and i'm sure that's how the brain organizes them, too, for reading comprehension
well, no, i'm not sure 01:42
it'd be my first guess :-)
TimToady I suspect most people do "whole word" pattern matching
and don't really think about the bits, anymore than we think about the letters
thou does rakudo or niecza handle Q :to('HERE')? I can't seem to find a here-doc syntax that they'll swallow. 01:43
TimToady I did one earlier in niecza
niecza: say q :to "EOF"␤alive␤EOF␤
p6eval niecza v6-191-gefa9b51: OUTPUT«alive␤␤»
TimToady niecza: say Q :to "EOF"␤alive␤EOF␤ 01:44
p6eval niecza v6-191-gefa9b51: OUTPUT«alive␤␤»
TimToady niecza: say Q :to "EOF"␤$alive␤EOF␤ 01:45
p6eval niecza v6-191-gefa9b51: OUTPUT«$alive␤␤»
TimToady niecza: say qq :to "EOF"␤$alive␤EOF␤
p6eval niecza v6-191-gefa9b51: OUTPUT«===SORRY!===␤␤Variable $alive is not predeclared at /tmp/JXFUqrOTT8 line 2:␤------> <BOL>⏏$alive␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤ at /home/p6e…
TimToady looks pretty functional to me
thou yeah. i was misled by a mistake elsewhere in my program, sorry 01:46
TimToady called to 夕食 01:47
that's evening and food
&
thou niecza: say qq :to('EOF')␤alive␤EOF␤
p6eval niecza v6-191-gefa9b51: OUTPUT«===SORRY!===␤␤Any()Alphanumeric character is not allowed as delimiter at /tmp/RhZyDrqswb line 2:␤------> <BOL>⏏alive␤␤Parse failed␤␤»
thou ok, good night 01:49
01:55 JimmyZ joined 02:19 whiteknight left 02:26 JimmyZ left 02:52 jaldhar left 02:53 jaldhar joined 02:56 Limbic_Region left 03:09 jdhore1 left 03:16 cotto joined 03:17 jdhore1 joined 03:23 Su-Shee_ joined 03:27 Su-Shee left 03:35 woosley joined 03:36 woosley left, Bzek joined 03:44 lue left 03:51 cooper left
sorear Where is the spec for the stuff S02-magicals/submain.t tests? 04:02
04:03 s1n left
dalek ecza: 1466178 | sorear++ | src/niecza:
constant $?FOO must be my-scoped, not our
04:08
ecza: ddfc6a3 | sorear++ | src/niecza:
Fix &?BLOCK et al
ecza: b835604 | sorear++ | t/spectest.data:
3 new passing test files
04:15 bkolera joined 04:30 cognominal joined 04:51 Chillance left 05:00 cooper joined 05:04 s1n joined 05:08 benabik left 05:12 kaare_ joined 05:32 thou left 05:45 frew left 05:48 wamba joined 06:01 bkolera left, bkolera joined 06:13 wamba left 06:15 wamba joined 06:26 cooper left 06:42 molaf joined
pmichaud rakudo: my Num $a; $a = 1; 06:47
p6eval rakudo b2bc99: OUTPUT«Type check failed for assignment␤ Container type: Num␤ Got: Int␤ in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in main program body at line 22:/tmp/bLJLIhbeMh␤»
pmichaud rakudo: my Num $a; $a++; 06:49
p6eval rakudo b2bc99: OUTPUT«Type check failed for assignment␤ Container type: Num␤ Got: Int␤ in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in main program body at line 1:src/gen/core.pm␤»
dalek ecza: bdfdf1c | sorear++ | lib/Kernel.cs:
After discussion with pmichaud++, allow rw parameters to bind to variables with looser type constraints
07:06
07:13 bakedb joined, bkolera1 joined, bkolera left
moritz pmichaud: what's the correct fix? change src/core/Num.pm line 114 to Num:D ? 07:19
pmichaud master doesn't understand :D yet
moritz oh, that's master 07:20
pmichaud if you're asking about nom, I have an unpushed fix already committed
pmichaud pushes.
moritz nom: my Num $x; $x++; say $x
p6eval nom: OUTPUT«1␤»
moritz fix for what? :-)
pmichaud yeah, the previous nom has the undefined handling in the wrong place, I think
pushed.
github.com/rakudo/rakudo/commit/1d...2c4514a489 07:21
handling of undefined increment is part of ++/--, not succ/pred, I think.
rakudo: say Any.succ
p6eval rakudo b2bc99: OUTPUT«Method 'succ' not found for invocant of class ''␤ in main program body at line 22:/tmp/y0uD0LDwpI␤»
pmichaud that's correct.
moritz niecza: say Any.succ 07:22
p6eval niecza v6-194-gb835604: OUTPUT«1␤»
pmichaud I believe that's wrong.
moritz wouldn't surprise me if the spec was silent on that nuance
pmichaud it's not.
it's pretty clear that it's the increment/decrement that has the magic, at least to my reading.
because it says "increment of an undefined bare value" 07:23
as opposed to .succ
niecza: say List.succ
p6eval niecza v6-194-gb835604: OUTPUT«1␤»
pmichaud I'm pretty sure that's wrong. :) 07:24
dalek kudo/nom: 1d685b7 | pmichaud++ | src/core/ (3 files):
Update ++/-- handling for undefined values.
07:26
07:28 geekosaur joined
moritz should $filehandle.print use .gist too= 07:30
s/\=/?/
pmichaud not .print
.say, maybe. 07:31
07:31 daniel-s joined
pmichaud .gist is for .say 07:31
moritz huh
pmichaud say does gisting, print doesn't.
daniel-s hi
pmichaud (unless the spec changed again :-)
although the spec doesn't actually mention that :) 07:32
07:32 buubot_backup left
pmichaud say() is basically defined as sub say(|$args) { print gist(|$args), "\n" } 07:33
moritz pmichaud: is there a reason why print() doesn't unbox_s its arguments? 07:34
pmichaud the one that is there now is basically a "get it working" print
jdhore1 Can I ask a possibly loaded question?
07:34 daniel-s left, daniel-s joined
moritz pmichaud: asked differently, should it unbox_s(@list.shift.Stringy) ? 07:35
or is that .Str?
jdhore1 Is nom going to be the last rakudo "start over from scratch"?
pmichaud jdhore1: how would we know? ;-)
moritz: not sure which it will end up being, either .String or .Str should work fine for now. I'd go with .Str, I think. 07:36
*.Stringy
jdhore1 pmichaud, Which question was that an answer to?
pmichaud jdhore1: either or both (but primarily the second) :-P
jdhore1: do we have another rakudo rewrite planned? definitely not.
jdhore1 Though I suppose, after/during the former rewrites, was nom "planned"? It'd surprise me. 07:37
pmichaud jdhore1: but I don't know to what extent we expected nom to be a rewrite. we expected it to be a much less of a rewrite than alpha->ng was (and that's turned out to be correct thus far)
jdhore1 ah 07:38
pmichaud ng was really a total rewrite. nom has a lot of rewriting of the p6libs, but the actual compiler itself didn't get a do-over. We're still using the same grammar and actions as master, for the most part.
jdhore1 ah 07:39
nom also seems to be moving significantly faster than most project rewrites which is a good sign :) 07:40
pmichaud yeah
it's not a total rewrite. mostly the setting is getting a thorough review/rewrite, and it needed it
also, we're doing a lot of "rewriting" of the parts that were previously written in PIR
and we're paying a lot more attention to efficiency issues, in some pain points (like lists/iterators) 07:41
moritz nom: sub f(:$x) { say $x }; f :x
p6eval nom: OUTPUT«Bool::True␤»
moritz jnthn++
jdhore1 ah, nice 07:42
pmichaud yes, jnthn++. after I saw the patch for that one I said "oh, I should've seen that one".
moritz if we had :nqpop along with :pirop in PAST, we could make the actions much more portable 07:45
pmichaud that's the plan.
just haven't gotten there yet.
ETOOMUCHLHF
07:47 Mowah joined
pmichaud I keep typing ?? || instead of ?? !! for some reason. 07:49
TiMBuS ive done that so many times 07:55
:/
pmichaud I think it's because I often start thinking of an or-test, and then switch to using ?? when I decide it's really an if-else 07:59
sorear pmichaud: the spec also talks about magical increment of strings 08:03
however, strings are magical on .succ
so I took "increment" to mean ".succ" rather than "++"
pmichaud sorear: that's reasonable
sorear I agree that the increment spec is badly worded 08:04
if you think there's a good argument for Any.succ dying, I'll go along with that
but now...sleep
pmichaud List.succ is the one I can think of 08:05
actually, any type derived from Any that isn't numeric feels like it shouldn't have a magical .succ
08:08 bakedb left, JimmyZ joined 08:19 x19290 joined
x19290 hello. 08:19
I know this is not the right place, but please let me continue. 08:20
tadzik hello
x19290 hello
I want to know about good old days (~v3) of Perl.
Where should I go? 08:21
moritz the perl5 git repo has the old versions 08:23
x19290 perl3?
moritz 1, 2, 3, 4 08:24
x19290 oh!
But what I know is that:
In old days Perl was a package of GNU. Yes or No? 08:25
moritz what does "a package of GNU" mean?
x19290 perl was downloadable from prep.ai.mit.edu. 08:26
moritz that's merely a mirror location
08:26 buubot_backup joined
x19290 Oh, I misunderstood. 08:27
some Linux people say,
because "definition of free software" is so strict that perl cannot be packaged in GNU. 08:28
pmichaud www.gnu.org/software/perl/perl.html # fwiw
dalek kudo/nom: a1b813c | pmichaud++ | NOMMAP.markdown:
Some NOMMAP updates.
kudo/nom: a7fa958 | pmichaud++ | src/ (9 files):
Change the argument ordering for perl6_list_from_rpa so that the rpa is always the first argument/operand.

Otherwise I keep forgetting the order in which the arguments need to appear
  (rpa-first means it matches perl6_iter_from_rpa). Also update most of src/core
to use nqp::p6list instead of the much longer opcode name.
x19290 freedom0 ~ freedom3 08:29
I thought the definition is so simple that it is loose. 08:30
but some linux persons say it's not right.
I'm a very bad English speaker, sorry. 08:31
huf x19290: perl license is listed as a gpl compatible free software license on gnu.org 08:32
x19290: www.gnu.org/licenses/license-list.h...leLicenses
i'd say that settles it
x19290 rms says, for example, X is not a GNU software but it is part of GNU. 08:33
right?
moritz doesn't understand what "GNU software" means 08:34
if it means "part of the linux userland", I agree
tadzik it's GNU/Linux! :)
x19290 yes. 08:35
GNU software means,
it is a product of GNU project.
pmichaud I think fsf uses "GNU package" for that.
x19290 Yes. 08:36
I will use the word "GNU package" from now.
Krunch Perl has been distributed within GNU/Linux distributions for a long time but AFAIK it has never been a GNU project
08:36 drbean joined
x19290 abount X, same thing can be said. 08:37
Again, rms says, X is not GNU package but X is part of GNU 08:38
GNU operating system, his ideal OS.
Abount TeX, same thing can be said. 08:39
Why not Perl? 08:40
moritz thinks the discussion is kinda pointless
you can say whatever you want about any software
and if you want to discuss GNU naming conventions, the FSF would be better than the perl people
x19290 I'm very sorry. 08:41
I was not in the right place. 08:42
I have not been in the right place. 08:43
bye.
moritz nom: say gist("foo", "bar")
p6eval nom: OUTPUT«foo bar␤»
moritz pmichaud: I'm trying to IO.say, and I don't know what exactly to .gist 08:44
08:44 sjn left
moritz method say(*@list) { self.print(@list.map({ .gist}).join) } 08:44
08:44 sjn joined
pmichaud can't be *@list because that will flatten. 08:44
say needs to accept a Parcel/Capture and .gist that 08:45
moritz trouble is, I can't use the |$ thing easily that the say() sub uses 08:46
because that includes the invocant
pmichaud shift the invocant
method say(|$) {
my Mu $args := pir::perl6_current_args_rpa__P();
nqp::shift($args);
# now you can use $args
jnthn++ and I agreed that this would be the canonical way to handle it for now :) 08:47
daniel-s does IO::Socket::INET work in perl6 the same way as it does in perl 5? 08:50
tadzik I don't think so
daniel-s pastebin.com/fhbTh0RU 08:51
line 7 doesn't seem to be working correctly
no sever responds to whatever I send it
huf that's not a proper http request at all 08:52
daniel-s if I telnet to google.com on port 80, it seems to be enough to get it to spit heaps of HTML back
huf dont you also press enter twice?
or at least once 08:53
daniel-s :( 08:54
thanks huf
tadzik daniel-s: $socket.send("GET /\r\n\r\n"); works fine here
huf daniel-s: read up on http
daniel-s yea, no \r\n fixed it
I mean, putting \r\n fixed it 08:56
08:59 Katibe joined
dalek kudo/nom: 4923896 | pmichaud++ | / (2 files):
Re-enable list (Parcel) assignment, although my() declarations still have a bug.
09:04
kudo/nom: 29d34b5 | pmichaud++ | NOMMAP.markdown:
Add "my ($a, $b)" to NOMMAP todo list.
09:06 x19290 left 09:11 Su-Shee_ is now known as Su-Shee 09:14 araujo left 09:29 daniel-s left 09:31 nymacro joined 09:38 Tedd1 left 09:47 bakedb joined
dalek kudo/nom: e99c15d | moritz++ | src/core/IO.pm:
IO.say and .print
09:51
kudo/nom: e91f49f | moritz++ | src/core/IO.pm:
open("-", :w) opens STDOUT
kudo/nom: ffb46dc | pmichaud++ | src/core/Str.pm:
Add Str.pred and Str.succ (the magical forms).
kudo/nom: 6fd1046 | pmichaud++ | src/core/IO.pm:
Merge branch 'nom' of github.com:rakudo/rakudo into nom
moritz nom: my $*IN; 09:53
p6eval nom: OUTPUT«Rebuild in progress␤»
pmichaud I don't think we have dynamic vars yet 09:54
moritz that's right
pmichaud I can put that on my lhf for today :)
moritz my plans for $*IN/$*OUT world domination are srsly blocked :-)
pmichaud can we assign to namespaces yet? 09:55
moritz has no idea
pmichaud "our scoped variables not yet implemented..." 09:56
dalek kudo/nom: bd5e60e | moritz++ | NOMMAP.markdown:
add dynamic variable to NOMMAP
moritz pmichaud: when you added IO to the LHF file, what did you have in mind? 09:58
pmichaud ummmmm
moritz I've done IO.{open,print,say,close} now
pmichaud I didn't put IO in LHF 09:59
looks like jnthn++ did that
moritz oh :-)
pmichaud I'd think IO open/print/say/close/get/lines would be a good start
maybe the file test operators could be worked on... not sure how LHF that would be
moritz ah yes, lines() is also done (though not yet $limit yet) 10:00
10:01 MayDaniel joined
pmichaud even if 'our' declarations don't work -- just being able to get to packages via the package or hash interface would be useful 10:03
e.g. $PROCESS::IN = or PROCES::<$IN> = ...
don't know what jnthn has in mind for package namespaces there yet.
pmichaud pokes around source code a bit. 10:04
10:08 MayDaniel left
moritz nom: say $Inf 10:08
p6eval nom: OUTPUT«Inf␤»
moritz nom: say 1 < $Inf 10:09
p6eval nom: OUTPUT«Bool::True␤»
pmichaud nom: say 1e0 < $Inf 10:10
p6eval nom: OUTPUT«Bool::True␤»
pmichaud weird.
nom: say $Inf.WHAT
p6eval nom: OUTPUT«Num()␤»
pmichaud nom: pir::say(nqp::unbox_n($Inf))
p6eval nom: OUTPUT«Inf␤»
pmichaud nom: pir::say(nqp::islt_n(1, nqp::unbox_n($Inf))) 10:11
p6eval nom: OUTPUT«1␤»
pmichaud oh, I guess that's all right. I definitely need sleep.
moritz nom: say $Inf.Int 10:12
p6eval nom: OUTPUT«-9223372036854775808␤»
pmichaud rakudo: say Inf.Int # checking
p6eval rakudo b2bc99: OUTPUT«-9223372036854775808␤»
pmichaud I don't mind it doing that too much... but I wish it was at least positive. 10:13
for 32-bits I think that Inf.Int used to give MAXINT 10:14
10:14 daniel-s joined
dalek kudo/nom: 77be43f | moritz++ | src/core/IO.pm:
add $limit to IO.lines
10:17
10:20 bkolera1 left 10:23 Trashlord left 10:24 nymacro left
gfldex nom: say $Inf.WHAT; 10:28
p6eval nom: OUTPUT«Num()␤»
gfldex nom: say Inf.WHAT; 10:30
p6eval nom: OUTPUT«Num()␤»
gfldex nom: say $Inf === Inf;
p6eval nom: OUTPUT«Could not find sub &infix:<===>␤current instr.: '_block1002' pc 82 ((file unknown):70) (:1)␤»
felher morning folks. Can one instantiate class B if B does role A but A has stub-method m() { ... } and B does not override that method? Does that fail by instantiation or only if one calls $b.m() and executes the stub? 10:31
pmichaud afk # nap 10:39
gfldex felher: since one could define m at runtime the compiler can only warn and even that is questionable 10:41
unless you use :final or :closed
moritz: re: github.com/rakudo/rakudo/commit/77be43fcb8 are you sure you want $Inf and not Inf? 10:42
felher gfldex: I see. Big thnx. :) 10:43
dalek kudo/nom: 703dd98 | pmichaud++ | / (3 files):
Dynamic vars -- stub in dynamic variable lookups.

This only handles the lookup portion of dynvars; as yet dynamic variable declarations (my $*abc) don't work and afaik there's not a way to create package-scoped variables (e.g. in PROCESS). But the stub code is here anyway. (Use pir::say($*AUTOPRINTPOS) in interactive mode to see that dynvars are actually searching the dynamic context. :-)
kudo/nom: 8703efe | pmichaud++ | src/core/IO.pm:
Merge branch 'nom' of github.com:rakudo/rakudo into nom
moritz gfldex: Inf doesn't work in the setting (yet?) 10:49
10:49 woosley joined
gfldex i c 10:50
10:58 cognominal left
daniel-s in the perl book, is there something I can put so that two lines don't seperate across page? 11:00
moritz no, don't worry about typography for now 11:03
11:04 karupanerura joined 11:05 Trashlord joined 11:08 mberends joined 11:12 cognominal joined, cognominal left 11:13 Moukeddar joined 11:20 Holy_Cow joined, Holy_Cow left 11:33 awoodland left 11:49 donri joined 11:53 mikehh joined 11:58 buubot_backup left 12:01 kfo_ joined 12:04 kfo left 12:11 orafu left 12:13 orafu joined 12:16 araujo joined
jnthn afternoon, #perl6 12:18
jnthn sees pmichaud++ and moritz++ have been a-patchin'.
nom: my $*abc 12:21
p6eval nom: OUTPUT«Method 'scope' not found for invocant of class 'PAST;Op'␤current instr.: 'nqp;Perl6;Actions;_block1142' pc 11817 (src/gen/perl6-actions.pir:3411)␤»
12:23 envi joined
jnthn nom: my ($a, $b, $c) 12:23
p6eval nom: OUTPUT«Method 'get_declarations' not found for invocant of class 'ResizablePMCArray'␤current instr.: 'nqp;Perl6;Actions;_block2357' pc 42045 (src/gen/perl6-actions.pir:14457)␤»
jnthn aha
12:35 buubot_backup joined
daniel-s if somebody wouldn't mind answering for me: 12:41
pastebin.com/HazLn1tf
why is line 29 not say anything?
*does
I expected it to have caught 'http' 'foo' and 'bar' 12:42
12:44 jt_ joined 12:47 woosley left
daniel-s I think I got it, the round brackets! 12:47
perl6: say hex(0xff); 13:02
p6eval pugs: OUTPUT«*** No such subroutine: "&hex"␤ at /tmp/f0dGHbkyp8 line 1, column 5-14␤»
..rakudo b2bc99: OUTPUT«Could not find sub &hex␤ in main program body at line 22:/tmp/mGQtDj9Tro␤»
..niecza v6-195-gbdfdf1c: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'hex' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1133 (STD P6.comp_unit @ 30) ␤ …
daniel-s perl6: say hex("0xff");
p6eval rakudo b2bc99: OUTPUT«Could not find sub &hex␤ in main program body at line 22:/tmp/D6GJoZuZ_b␤»
..pugs: OUTPUT«*** No such subroutine: "&hex"␤ at /tmp/ikvjjYoWSx line 1, column 5-16␤»
..niecza v6-195-gbdfdf1c: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'hex' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1133 (STD P6.comp_unit @ 30) ␤ …
daniel-s perl 5 has a hex function 13:04
is there an equivalent in perl6?
flussence rakudo: say :16('1fc') 13:05
p6eval rakudo b2bc99: OUTPUT«508␤»
daniel-s flussence++ :) 13:08
flussence also works for 2, 8 and 10 IIRC
daniel-s rakudo: say :10('100');
p6eval rakudo b2bc99: OUTPUT«100␤»
daniel-s rakudo: say :10('0xff'); 13:09
p6eval rakudo b2bc99: OUTPUT«255␤»
daniel-s rakudo: say :16('ff');
p6eval rakudo b2bc99: OUTPUT«255␤»
daniel-s rakudo: say :10('ff');
JimmyZ rakudo: say :2('100');
p6eval rakudo b2bc99: OUTPUT«Invalid character (F)! Please try again :) ␤ in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
rakudo b2bc99: OUTPUT«4␤»
flussence rakudo: say '0xFF'.Int 13:10
p6eval rakudo b2bc99: OUTPUT«255␤»
flussence :\d+ is just an alternative to having a radix prefix in the string itself
jnthn ooh, masak++ live at FPW! cite-sciences.ubicast.eu/lives/thd-live/ 13:23
13:36 karupas joined, karupanerura left 13:37 nebuchadnezzar joined, jt_ left 13:44 fhelmberger joined 13:53 MayDaniel joined
sjn rakudo: sub foo(Int :$n = 1) { say $n }; foo() 14:01
p6eval rakudo b2bc99: OUTPUT«1␤»
sjn rakudo: sub foo(Int :$n = 1) { say $n }; foo(23)
p6eval rakudo b2bc99: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in 'foo' at line 1:/tmp/04D3ScUIjo␤ in main program body at line 22:/tmp/04D3ScUIjo␤»
jnthn sjn: Did you really want the colon there? 14:05
sjn doesn't know
jnthn :)
rakudo: sub foo(Int $n = 1) { say $n }; foo(23) 14:06
p6eval rakudo b2bc99: OUTPUT«23␤»
jnthn rakudo: sub foo(Int $n = 1) { say $n }; foo()
p6eval rakudo b2bc99: OUTPUT«1␤»
jnthn : makes it a named param
sjn mm
this is what I have: sub MAIN(Str $prefix, Str $suffix, Int $maxchars=12) { ... } 14:07
mikemol I'll cast a vote in favor of divmod. At least a couple times a month, I find myself needing to do / and % in my day-job stuff (which, sadly, involves no Perl6). Most recent cast: "Ok, with a chunk size of X, how many chunks will I get out of this many bytes, and how many bytes will I have left over? 14:08
sjn I want $maxchars to show up in the usage text as [--maxchars=something]
well, I expected it to :-P
that's how I put in the :
pmichaud good morning, #perl6 14:09
sjn o/
daniel-s rakudo: my %stuff = (one => "1", two => "2"); for %stuff {say .key; say .values}; 14:12
p6eval rakudo b2bc99: OUTPUT«one␤1␤two␤2␤»
daniel-s rakudo: my %stuff = (one => "1", two => "2"); for %stuff {say .keys; say .value}; 14:13
p6eval rakudo b2bc99: OUTPUT«one␤1␤two␤2␤»
daniel-s is there no difference between singular .key and plural .keys
pmichaud for Pair objects, no 14:14
daniel-s is there a way to confirm what the key is
jnthn o/ pmichaud
daniel-s if .key == "one" doesn't work
pmichaud well, that's a numeric comparison
I think you meant if .key eq 'one' 14:15
jnthn++ # very nice work yesterday
daniel-s oh yea, thanks
pmichaud oh, the other difference is likely that .key is an item while .keys is a list 14:16
jnthn pmichaud: :)
pmichaud: Looking over your latest nommap additions.
pmichaud rakudo: my %stuff = <one 1 two 2 >; for %stuff { say .key.WHAT; say .keys.WHAT }
p6eval rakudo b2bc99: OUTPUT«Str()␤Array()␤Str()␤Array()␤»
pmichaud jnthn: I suspected (and hoped) that you would :) 14:17
14:28 jimmy1980 left 14:34 jimmy1980 joined 14:36 Moukeddar_ joined, Moukeddar left 14:38 Moukeddar_ left, Chillance joined
TimToady ooh, maybe divmod should be a listop: my ($sec, $min, $hr, $days) = divmod $num, 60, 60, 24 14:42
thought maybe that should be called moddiv :) 14:43
or modmod
flussence div-and-show-your-working would still make that line shorter than how I'm used to doing it :) 14:44
TimToady I suppose people would recognize the divmod concept, though returning the results in the "other" order is a problem 14:45
flussence Rdivmod?
oh wait, that's for *input* bits 14:46
TimToady the problem is if someone writes ($quo,$rem) = divmod $big, $little
when you're really wanting to pulling a series of mods out, followed by the final quotient 14:47
the right side has to be that order so you can write divmod $n, 60 xx *
or divmod $n, 1000 xx * 14:48
but it's the result that will surprise people used to traditional divmod 14:49
so we should probably call it something else, modmod or some such 14:50
14:50 Mowah left
TimToady there's probably some higher-order functional pattern I'm missing here in my pre-caf state, but it seems more complicated the the usual op vs [op] 14:53
since primitive divmod returns two results
JimmyZ contiguous div ? 14:54
pmichaud nom: say '⚀' ...^ { $_.chars > 2 } # I never tire of this :-) 14:57
p6eval nom: OUTPUT«⚀ ⚁ ⚂ ⚃ ⚄ ⚅ ⚀⚀ ⚀⚁ ⚀⚂ ⚀⚃ ⚀⚄ ⚀⚅ ⚁⚀ ⚁⚁ ⚁⚂ ⚁⚃ ⚁⚄ ⚁⚅ ⚂⚀ ⚂⚁ ⚂⚂ ⚂⚃ ⚂⚄ ⚂⚅ ⚃⚀ ⚃⚁ ⚃⚂ ⚃⚃ ⚃⚄ ⚃⚅ ⚄⚀ ⚄⚁ ⚄⚂ ⚄⚃ ⚄⚄ ⚄⚅ ⚅⚀ ⚅⚁ ⚅⚂ ⚅⚃ ⚅⚄ ⚅⚅␤»…
TimToady well, in this case '⚀' ... '⚅⚅' would be rather more readable, methinks 15:00
nom: say '⚀'...'⚅⚅' 15:01
p6eval nom: OUTPUT«⚀ ⚁ ⚂ ⚃ ⚄ ⚅ ⚀⚀ ⚀⚁ ⚀⚂ ⚀⚃ ⚀⚄ ⚀⚅ ⚁⚀ ⚁⚁ ⚁⚂ ⚁⚃ ⚁⚄ ⚁⚅ ⚂⚀ ⚂⚁ ⚂⚂ ⚂⚃ ⚂⚄ ⚂⚅ ⚃⚀ ⚃⚁ ⚃⚂ ⚃⚃ ⚃⚄ ⚃⚅ ⚄⚀ ⚄⚁ ⚄⚂ ⚄⚃ ⚄⚄ ⚄⚅ ⚅⚀ ⚅⚁ ⚅⚂ ⚅⚃ ⚅⚄ ⚅⚅␤»…
15:01 MayDaniel left
pmichaud sure, but then I'd have to type '⚅⚅' (or copy/paste it from somewhere like I just did here :) 15:01
TimToady nom: say 1..3
p6eval nom: OUTPUT«1..3␤»
TimToady nom: say 1...3
p6eval nom: OUTPUT«1 2 3␤»
TimToady nom: say (1,2,3) 15:02
p6eval nom: OUTPUT«123␤»
TimToady ^^ buglet?
pmichaud I don't know
1...3 produces a list... (1,2,3) is a Parcel
currently gist treats them differently
should they be the same? should parcels join with spaces?
TimToady probably, since it's not a list context really 15:03
pmichaud that would mean that say 1,2,3 would also have spaces
well, it doesn't have to mean it in that case
I guess we could distinguish between Parcel and arglist
TimToady you don't .gist the whole parcel
say's whole parcel 15:04
pmichaud .gist each element of the capture, then?
TimToady just its bits
pmichaud okay. the spec is a little weak on say + gist atm :)
fixing
what about gist 1,2,3 ? 15:06
spaces or no?
pmichaud guesses no.
TimToady I'd been thinking of that as say without the "\n" 15:07
pmichaud right... and "gist" simply returns the string, as opposed to doing any sort of output?
TimToady yeah, though one could argue it the other way I suppose 15:08
but this is how I thought of it first, so it must be right :)
pmichaud I've been working from the hypothesis that say is defined as sub say(|$args) { print gist(|$args), "\n" } or something close to that. This would fit that. 15:09
TimToady It's a bit of a disconnect form (1,2,3).gist I guess 15:10
*from
but we always have that disconnect
well, sometimes
I guess we've flattened the diconnect on map etc. 15:11
*dis
pmichaud yes, now that map is .flat a lot of disconnects seem to have gone away
it definitely feels cleaner than before from an implementation perspective
15:12 masak joined
TimToady well, what if we said that gist listop is like .gist, then we could use gist 1,2,3 to put spaces, arguably a feature 15:12
masak oh lol hai talks done
(and went well, I think)
TimToady and say would then iterate its args and .gist each one
masak also, I've cracked BooK's recursion problem :) gist.github.com/1045125
and written slides for a lightning talk about it. 15:13
pmichaud TimToady: I can certainly do it that way as well.
TimToady and then gist and .gist would work similarly
jnthn masak: yay :)
pmichaud say and print would have more of a disconnect... but that's probably okay.
masak jnthn: check it out; the mutual recursion is quite nice.
pmichaud say 1,2,3; not same as print gist 1,2,3;
masak: o/ 15:14
jnthn masak: najs!
masak jnthn: I can easily sympathise with gregyoung who said he didn't want to debug his eight mutually recursive methods. debugging two was mind-bending enough :P
it was all "wait... so the actual thing happens where exactly?" :) 15:15
(turns out the actual thing happened in the base case)
pmichaud: you did get a few mentions in my first talk ;) 15:16
pmichaud masak: should I be worried? ;-) ;-) 15:17
masak pmichaud: I quoted the IRC logs where you said that I usually embarrass you in some way or other :P
pmichaud (no, I'm not, even if you say I should be)
lol
I can handle that. :)
masak thought you might like that :P
pmichaud I can't wait to see the video of the talk
masak the corner of that slide says "(how meta)"
pmichaud are slides online? 15:18
masak no, but at first opportunity.
might even do that now, in fact.
masak does it
nope, it appears I don't have FTP on this wifi net. 15:19
TimToady lets make gist work like .gist, and say is print $args».gist, "\n" # note the hyper 15:22
pmichaud that's what I just did :)
testing
TimToady otoh, if we used map *.gist we could output say's args lazily, which might be an advantage if they are infinitudinous 15:23
or maybe it doesn't matter 15:24
pmichaud ..except map flattens.
TimToady right
we need an infix "call" operator :) 15:25
masak jnthn: I'm happy to report that your talk still works very well. I still think it's the most effective talk ever made for making people interested in Perl 6.
jnthn++
15:25 zby_home__ joined
masak a good example of "keep to the specifics, and let people generalize". 15:26
15:26 zby_home_ left
jnthn masak: Yeah, I think it's all too easy to get lost in awesome abstract possibilities, and leave people awed but equally unable to see where to start. 15:26
masak aye. 15:27
TimToady that's one of the nice things about RC too
masak I did a talk here last year -- in the same room, in fact -- which fell into exactly that trap.
jnthn wonders what masak said about *him* in his first talk :)
masak jnthn: in the first talk? just that you have been working on 6model and are now driving the nom branch to completion. 15:28
jnthn: in the second talk I pointed out that many of your examples were about alcohol... :P
pmichaud TimToady: gist.github.com/1046587
(hey look! a gist about gist!) 15:29
jnthn masak: They are? :P 15:31
masak: I...wonder how that coulda happened :P
TimToady I'd tell you that's cool but it says that comments aren't allowed on anonymous gists...
15:31 wamba left
pmichaud nom: say (1,2,3).gist ~~ Cool; # nom thinks .gist is Cool also :-) 15:31
p6eval nom: OUTPUT«Bool::True␤»
masak jnthn: yes. the class is called "Product", but the attribute values make it very clear what kind of product we're talking about :P
TimToady nom: say gist Cool 15:32
p6eval nom: OUTPUT«Cool()␤»
masak .oO( "klockan Product" )
pmichaud evalbot rebuild nom
p6eval OK (started asyncronously)
pmichaud oops, forgot to push
masak p6eval++
pmichaud oh, wait, I pushed. should rebuild shortly.
nom: say (1,2,3).gist ~~ Cool; # nom thinks .gist is Cool also :-) 15:33
p6eval nom: OUTPUT«Rebuild in progress␤»
pmichaud sorear++
moritz pmichaud: you could configure the rakudo repo to use push mode for dalek
TimToady you should borrow the 'make snap' semantics from some other makefile
masak nom: what's in progress?
p6eval nom: OUTPUT«Rebuild in progress␤»
moritz pmichaud: see misc/dalek-push.txt in mu repo
TimToady then you can keep running while it's in progress
pmichaud looking
moritz TimToady: nom isn't installable yet, I fear 15:34
15:34 whiteknight joined
TimToady nor was STD, but it used 'make snap' I believe 15:34
pmichaud nom *can* be installable, though. that shouldn't be all that hard.
dalek kudo/nom: 0cde9b8 | pmichaud++ | src/core/ (2 files):
Update gist/.gist/say with latest specifics from TimToady++.
15:35 tokuhirom joined
tadzik pmichaud: I tried that, it has some tricky bits 15:35
one of the files depends on ./Something.pbc. When you remove the ./ part, it works when installed, but stops working when not installed
TimToady anyway, point is you can build in a subdir and then do a dir rename to "commit" the transaction 15:36
15:36 rhr joined
pmichaud is 'make install' sufficient to "build in a subdir and dir rename'? 15:36
(for snap semantics)
the subsequent make shouldn't affect install until the next make install takes place
TimToady well, make install doesn't usually do a dir rename, but copies several files into the install dir 15:37
moritz pmichaud: 'make install' was sufficient for rakudo master
TimToady but might be close enough
pmichaud 'make install' just puts a copy of the latest rakudo (and all of its runtime files) into another dir :-)
TimToady it's a very small race condition
pmichaud yes, it is.
TimToady and the stakes are low here :)
if this were mission critical I'd insist on a directory rename :) 15:38
pmichaud anyway, I'll fix up "make install"
moritz pmichaud: in fact I could even use the same trick that I use for rakudo master: have two separate directories, and when the rebuild in one is finished, switch over to the other by changing a symlink
rakudo: say get
p6eval rakudo b2bc99: OUTPUT«Land der Berge, Land am Strome,␤»
TimToady a symlink redirect is also pretty snappy
pmichaud moritz: that works for me also, if you prefer to do that
TimToady still thinks like an old Unix guy, pre symlink... 15:39
moritz pmichaud: I prefer a working 'make install' over no working 'make install' any time :-)
masak it's nice to see you reimplementing transactions. :)
pmichaud I'm still going to update 'make install'
masak: why not, we're reimplementing everything else.
now all we need is a good wheel to reimplement :)
masak a killer app wheel. 15:40
15:42 daniel-s left
dalek kudo/nom: d2095a0 | jnthn++ | src/Perl6/ (2 files):
Get my ($a, $b) style declarations to work.
15:45
kudo/nom: 8579dcc | jnthn++ | src/Perl6/Actions.pm:
Unbust declaration of dynamics.
kudo/nom: 1e1fab5 | jnthn++ | NOMMAP.markdown:
Update nommap.
ecs: 0a75c8b | larry++ | S29-functions.pod:
document gist better
15:54
moritz what's the correct way to pass one functions argument on to another in nom?
pmichaud argument? or argument list?
moritz ie I want to make say() a shortcut for $*OUT.say
argument list
pmichaud the standard would be to use |$args -- I don't think that works quite yet.
moritz or capture, for that matter :-)
pmichaud easier for now is simply copy the code for say() into method say() 15:56
it's only 3-4 lines long, so live with the duplicate until we have captures in place
jnthn |@pos and |%nameds
both now work
tadzik oh, so .gist is the new .pretty
masak and .pretty is dead? 15:57
jnthn So you can always do it that way for now too.
tadzik masak: there is no .pretty I know of
pmichaud jnthn: yes, but does sub xyz(|$args) { ... } work to put a capture into $args ?
S02 talks about ".pretty"
tadzik ah, pun ruined
TimToady there can be a .pretty too, since I don't think .gist worries much about indentation
moritz pmichaud: it's not about code reuse, it's about making say() act on $*OUT, so that you can redefine it 15:58
pmichaud moritz: ah
moritz: just a sec
(writing code snippet) 15:59
jnthn pmichaud: Not yet. 16:00
pmichaud moritz: gist.github.com/1046615 # maybe this
16:00 rokoteko left
pmichaud I'll have to think about 'make install' a bit more -- it involves getting @INC to work right. 16:01
moritz pmichaud: thanks, will try 16:02
pmichaud and/or getting a proper factoring for module loading between nom/nqp
jnthn: PROCESS fallback is already implemented -- we just need to be able to store things into the PROCESS package :) 16:04
jnthn pmichaud: Yeah, I knowz :)
pmichaud okay, the nommap makes it sound like there's more to be done there
jnthn pmichaud: Just need to implement our-scoped variables and stuff. :)
pmichaud even being able to do PROCESS::{...} would be helpful :-) 16:05
(and shouldn't require "our")
TimToady Real Globals™
16:06 estrabd left
TimToady actually, http:// and friends are the only real globals 16:06
pmichaud surprisingly, realglobals.com is available :) 16:07
moritz on my machine, 127.0.0.1/ shows a different page than on yours
TimToady ooh, sounds like a .com business plan
moritz so much for "Real Globals" :-) 16:08
TimToady none of this mushy cloud stuff for us
jnthn pmichaud: Just making Stash subclass Hash at the moment
pmichaud: ah, yay
> module Foo { our sub bar { say 100 } }; Foo.WHO<&bar>()
100
pmichaud yes. everyone remember this time to get out of the tech bubble before it bursts :-)
TimToady one could argue that github is a Real Globals site
jnthn and 16:09
> module Foo { }; Foo.WHO<$OUT> = 42; say $Foo::OUT
42
pmichaud \o/
now we can start to put back $*IN, $*OUT, %*ENV, @*INC, etc. 16:10
jnthn Feels good that Stash isa Hash :) 16:11
pmichaud that's the way it should be :)
jnthn Though we've well and truely tied ourselves up with circularity sticky tape now :)
dalek kudo/nom: 2301d8c | jnthn++ | src/Perl6/Metamodel/ (2 files):
Make it so Stash ~~ Hash, so we can introspect and install stuff into it from Perl 6 land.
pmichaud jnthn: well, we couldn't delay those bindings too much longer :)
16:11 karupanerura joined
TimToady Ducts are often circular... 16:11
jnthn :P
TimToady Ducks are sorta oval...
pmichaud Ducks lay oval-shaped eggs (or is that egg-shaped ovals?) 16:12
jnthn I suspect that we'll always need something at the start of the setting that pieces things together. I just hope that we can shove it in a BEGIN at some point and have it all get serialized.
TimToady isn't that what they make Ovaltine out of?
we could rename BEGIN to BREAKFAST and you could have a BREAKFAST serial 16:13
jnthn *groan*
pmichaud: Remember that dynamic should look in GLOBAL before PROCESS.
16:14 karupas left
pmichaud okay, no problem. for some reason master doesn't seem to have it that way. 16:14
TimToady wonders if we should rename GLOBAL to INTERP or some such 16:15
nah...
should rename it to DUCKPOND or some such
16:21 Mowah joined 16:24 zby_home__ is now known as zby_home_
masak time for a lightning talk. see y'all later. 16:26
16:26 masak left 16:28 jaldhar left 16:29 jaldhar joined
dalek kudo/nom: d024ee6 | pmichaud++ | src/core/Str.pm:
Assignment to my ($a, $b) declarations now works -- let's use it.
16:32
kudo/nom: 561a88b | pmichaud++ | src/Perl6/Metamodel/ (2 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
jnthn pmichaud: Done the fix so you should be able to implement GLOBAL now. :) 16:34
pmichaud jnthn: yes, I'm getting there. ETOOMUCHLHF here :)
jnthn :)
pmichaud: ooc, do you conciously avoid --rebase when pulling? 16:37
pmichaud no
dalek kudo/nom: 451e80b | jnthn++ | src/Perl6/SymbolTable.pm:
Make mentions of GLOBAL.WHO work out (so DYNAMIC will be able to look in there).
kudo/nom: 089cb09 | pmichaud++ | src/core/operators.pm:
Argument list interpolation now works (jnthn++) -- eliminate some Q:PIR by using it!
kudo/nom: f26a237 | pmichaud++ | src/Perl6/SymbolTable.pm:
Merge branch 'nom' of github.com:rakudo/rakudo into nom
jnthn OK :)
pmichaud I just think that if --rebase is desirable it ought to be the default :)
TimToady that's why I have a gp alias :)
jnthn Well, it does avoid the merge messages
They don't really bother me though :) 16:38
pmichaud yeah, same here
I figure they're going to happen, so okay.
I wonder when someone would *not* want to --rebase, though.
jnthn heh, I love how the above commit lost the comment "# TODO: Why?" :)
pmichaud since I no longer need to worry about it, yes :) 16:39
you might want to figure it out someday, though :)
jnthn yeah, I'm a little curious about it
pmichaud there's still a similar Q:PIR in MapIter if you want to look at it. I briefly tried removing the Q:PIR in MapIter also but performance went way down and it failed besides, so that one isn't LHF and I'll deal with it a bit later 16:40
also need to figure out how to make Parcel interpolation a bit more efficient
jnthn |@foo isn't going to be as efficient for now as the Q:PIR
It's kinda a mess to handle that stuff at the moment. :/ 16:41
16:41 wamba joined
jnthn Parrot is too helpful on the caller side. 16:41
pmichaud interesting how "too helpful" translates to "not helpful" :)
I'll leave the Q:PIR in place, then -- map iteration speed is hugely important still. 16:42
I'm a little less concerned about the speed of generating sequences at this point -- code clarity is probably better there.
jnthn *nod* 16:43
pmichaud where is GLOBAL:: defined?
(maybe I should look at the commits.)
jnthn pmichaud: We just shove GLOBAL into the Parrot ns, because those actually *are* global, which we actually want for once. ;) 16:44
pmichaud: Elsewhere there's code to make sure the current view of GLOBAL is put there.
All I fixed was making sure GLOBAL was recognized as a type name.
GLOBAL::foo already worked
pmichaud I'm wondering where PROCESS:: should go, then. 16:45
jnthn Yeah, that one is kinda magical too...
sorear good * #perl6 16:46
jnthn Right now we don't have a case where GLOBAL and PROCESS would be different.
pmichaud oh, I'm certain they're different, though. Can we just set up PROCESS to be side-by-side with GLOBAL?
jnthn pmichaud: Oh, they're different. I just mean that we don't currently have any cases where they'd not want to be installed in the same kinda place. 16:47
pmichaud right
so, side-by-side then?
jnthn Yeah
wfm
Probably wants to be factored a bit different from GLOBAL 16:48
Oh
Actually I can construct a case where they'd be different today.
pmichaud: Want me to set up the PROCESS bits?
pmichaud jnthn: yes please. I could figure out how to do it, but I'll learn more by seeing the patch from you I think. 16:49
16:49 tokuhirom left
pmichaud I'll get &DYNAMIC working for PROCESS and GLOBAL in the meantime 16:49
16:50 jaldhar left 16:51 jaldhar joined 16:52 Pathin left
dalek kudo/nom: 0bd5420 | jnthn++ | src/Perl6/Actions.pm:
Apply routine and method traits.
16:53
16:53 Pathin joined 16:54 Pathin_ joined 16:58 fhelmberger left
dalek kudo/nom: 1383361 | pmichaud++ | src/core/stubs.pm:
Update dynamic variables to look in GLOBAL.WHO and PROCESS.WHO namespaces (jnthn++).
17:03
jnthn pmichaud: I'm guessing the PROCESS bit doesn't actually work yet? 17:04
17:04 Pathin left 17:05 Pathin joined
pmichaud jnthn: it should work as soon as you do your PROCESS magic :-) 17:07
17:07 tokuhirom joined
pmichaud but since the result of not finding the var in PROCESS is a fail anyway, I'm not too worried about catching ENOPROCESS 17:07
afk for a short while -- lunch 17:08
jnthn > PROCESS.WHO<$IN> = 42; say PROCESS.WHO<$IN> 17:09
42
JimmyZ \o
17:12 Pathin left 17:13 Pathin joined
jnthn hi JimmyZ :) 17:13
17:14 Pathin left, Pathin_ left
JimmyZ hello jnthn 17:14
17:14 Pathin joined, Pathin_ joined
sorear hello JimmyZ 17:15
JimmyZ hello sorear
sorear wonders how much longer niecza will be able to get away with having typeglobs
JimmyZ will go to sleep soon, it's 1:15am here ;)
jnthn JimmyZ: :) 17:17
sorear nom: my %foo; %foo<bar> := 5; %foo<bar>++
p6eval nom: OUTPUT«Cannot use bind operator with this LHS at line 1, near " 5; %foo<b"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23569 (src/stage2/gen/NQPHLL.pir:6311)␤»
JimmyZ knows that sorear is working hard on niecza on his own.
jnthn JimmyZ: Only a few days until I'll be in your timezone too ;) 17:18
JimmyZ good, welcome to china again(or beijing again) 17:19
17:20 fhelmberger joined, fhelmberger left 17:23 Pathin_ left 17:24 pochi left, pochi joined, Moukeddar joined 17:25 Pathin_ joined
jnthn JimmyZ: Yes, will be nice to be back. Even if the weather will be very hot for me. :) 17:26
17:29 jaldhar left
pmichaud moritz: want me to go ahead and add the dalek post-receive hook? 17:30
17:30 jaldhar joined
moritz pmichaud: yes please 17:31
pmichaud when it says "remove the entry from dalek-conf.json -- what do I do there exactly? just remove the "url" entry?
no, that doesn't seem right 17:32
moritz the hash that contains the url
pmichaud dalek will still be aware of the branches?
oh yes, I guess it will
moritz yes, of all 17:33
pmichaud okay, working.
17:34 Pathin_ left
dalek : d9cc647 | pmichaud++ | misc/dalek-conf.json:
[dalek]: Update rakudo in dalek-conf.json to use the github post-receive hook.
17:35
17:35 Pathin_ joined
dalek kudo: 4f47105 | (JD Horelick)++ | docs/announce/2011.06:
Update 2011.06 announcement with the releasename and another Douglas Adams reference.
17:35
kudo: 70c5ca4 | (JD Horelick)++ | docs/release_guide.pod:
Update release_guide.pod for 2011.06 release.
kudo: b2bc994 | (JD Horelick)++ | VERSION:
[release] bump VERSION
pmichaud should be done. I used host04.appflux.net:5000/dalek?t=fre...net,parrot as the url -- think that's correct. 17:36
moritz++ # thanks for pointers
afk, lunch again
jnthn In Texas, lunch is so big they have it twice. :P
JimmyZ \o, rakudo commit reports are in #parrot again 17:37
dalek kudo/nom: 7bfc64f | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Get PROCESS in place. Should only ever have one of these.
kudo/nom: baf7677 | jonathan++ | src/Perl6/ (2 files):
Make things like $PROCESS:IN = ... work.
jnthn oops, we compile GLOBAL.WHO a load too statically... 17:38
JimmyZ must sleep 17:40
17:40 JimmyZ left 17:44 Pathin_ left 17:46 Pathin_ joined 17:53 cbk joined 17:55 Pathin_ left 17:56 Pathin_ joined
dalek kudo/nom: 2c533ea | jonathan++ | src/Perl6/Actions.pm:
Fix GLOBAL lookups.
17:57
kudo/nom: de38225 | jonathan++ | src/Perl6/SymbolTable.pm:
Was a little to eager in lexical => lexical_6model; still need to look for lexical in the odd place. Unbusts some lookups.
jnthn pmichaud: Can now do:
> $PROCESS::IN = 42; say $*IN
42
moritz looks into setting up $*IN etc.
17:59 Moukeddar left
jnthn Time for a break. 18:03
sorear jnthn: nice 18:04
18:06 Pathin_ left 18:07 Pathin_ joined
sorear I wonder how to represent "Mu, but initialize to Any" as a type constraint. 18:07
Perhaps I should separate "type constraint" and "initial value" on variable metaobjects 18:08
pmichaud jnthn: ping 18:10
18:16 Pathin_ left
jnthn pmichaud: pong 18:17
18:17 Pathin_ joined 18:20 karupanerura left
moritz $*IN and $*OUT work now 18:21
locally
sorear jnthn: I'm having a crazy idea to make all Packages use the same STable 18:23
dalek kudo/nom: c66a42a | moritz++ | src/core/IO.pm:
update IO.say
18:25
kudo/nom: a67ebc3 | moritz++ | src/core/IO.pm:
set up $*IN and $*OUT
pmichaud jnthn: where's a good (canonical?) place to put initializations that need to occur asap at startup. for example, PROCESS::IN and PROCESS::ENV ? 18:26
18:27 Pathin_ left
jnthn pmichaud: Well, think with PROCESS::IN is that you can't do it until IO is defined 18:27
*thing
pmichaud okay, ENV then :-) 18:28
jnthn pmichaud: So "somewhere in the setting" is as good a bet as anything
18:28 Pathin_ joined
pmichaud that seems workable. 18:28
jnthn Well, same story for ENV apart from s/IO/Hash/ :)
pmichaud I'll start with that then.
we'll try it there and see if it's "soon enough" :-)
jnthn If you like, feel free to create a special place in the setting where we collect these things.
Well, I suspect it is.
Even BEGIN block comes after loading of the setting. 18:29
pmichaud for now I'll go with setting them in the file where the needed type is defined. for example, where moritz++ currently has $*IN and $*OUT
if we decide to centralize it, it'll be globals.pm or process.pm or something like that
jnthn Loading the setting (unless --setting=NULL) is close to the first thing we do when compiling something.
pmichaud wfm 18:30
jnthn sorear: I'm mostly confused by that.
sorear: OTOH, you did say it was crazy... :)
18:30 Mowah left 18:38 karupanerura joined, Pathin_ left 18:39 Pathin_ joined
sorear jnthn: I'm thinking that since packages are never instantiatable, we could give them storage without causing too much confusion 18:46
jnthn: then store WHO and HOW in the type object, and avoid allocating a STable
jnthn sorear: eww. 18:47
sorear: Not worth the mess and extra checks whenever doing get_who, etc. 18:48
It's hardly like an STable is big.
18:48 Pathin_ left
sorear How big is a 6model STable? 18:48
18:49 Pathin_ joined
jnthn sorear: Not sure off hand. 16ish pointers. 18:50
sorear: With room for shrinkage.
Could probably quite easily slash it to 10. 18:51
So, 40 bytes or so.
TimToady on a 32 bit machine... 18:52
jnthn Sure
18:56 karupas joined, karupanerura left 18:58 Moukeddar_ joined 18:59 Pathin_ left 19:00 Pathin_ joined 19:09 Pathin_ left 19:10 Pathin_ joined 19:18 karupanerura joined 19:20 Pathin_ left, karupas left 19:21 Pathin_ joined 19:25 whiteknight left, whiteknight joined
moritz $PROCESS::ERR = IO.new; 19:26
nqp::bindattr($PROCESS::ERR, IO, '$!PIO', pir::getstderr__P());
what's wrong with that?
I get
P6opaque attributes NYFI 4 (attribute '$!PIO' not found)
19:27 Moukeddar_ left
jnthn moritz: bindattr needs explicit decontainerization of the target object. 19:28
moritz jnthn: ah
TimToady I hope that F stands for "fully" :) 19:29
jnthn TimToady: Yes!
moritz what else could it stand for? :-)
19:29 envi left
jnthn TimToady: I...shoulda seen the other interpretation. :) 19:29
TimToady to the pure, all things are pure... :) 19:30
moritz jnthn: that you didn't honors you
19:30 Pathin_ left
jnthn I need to clear that up at some point, but happily nobody tried to do MI with attributes yet. ;) 19:30
moritz jnthn: well, I knew about that liimtation :-) 19:31
19:31 Pathin_ joined
jnthn moritz: At the moment that error really means "I don't have that attribute" and/or "no MI yet" 19:32
It's not that it's especially hard to implement. It just never hit the critical path of tasks yet. :)
moritz nom: sub f(|$) { say |pir::perl6_current_args_rpa__P() }; f 3, 4 19:34
p6eval nom: OUTPUT«Method 'ARGLIST_FLATTENABLE' not found for invocant of class 'ResizablePMCArray'␤current instr.: 'f' pc 278 ((file unknown):52219245) (:1)␤»
dalek kudo/nom: 4f8a6d9 | moritz++ | src/core/IO.pm:
set up $*ERR, jnthn++
moritz nom: sub f(|$) { say |pir__perl6_box_rpa__P(pir::perl6_current_args_rpa__P()) }; f 3, 4 19:35
p6eval nom: OUTPUT«Could not find sub &pir__perl6_box_rpa__P␤current instr.: 'f' pc 278 ((file unknown):76216813) (:1)␤»
jnthn pir::
moritz src/core/Parcel.pm 19:36
100:sub pir__perl6_box_rpa__PP(|$) {
jnthn Also PP
er, huh
O.O
jnthn looks at pmichaud++ :)
moritz I just don't see why it's not available to userland 19:37
jnthn nom: pir__perl6_box_rpa__P
p6eval nom: OUTPUT«Could not find symbol '&pir__perl6_box_rpa__P'␤current instr.: 'fail' pc 190872 (src/gen/CORE.setting.pir:0) (:138)␤»
jnthn nom: pir__perl6_box_rpa__PP
p6eval nom: OUTPUT«ResizablePMCArray: Can't shift from an empty array!␤current instr.: 'pir__perl6_box_rpa__PP' pc 192016 (src/gen/CORE.setting.pir:48073) (:459)␤»
jnthn moritz: You did P, not PP
moritz nom: sub f(|$) { say |pir__perl6_box_rpa__P(pir::perl6_current_args_rpa__PP()) }; f 3, 4
p6eval nom: OUTPUT«Could not find sub &pir__perl6_box_rpa__P␤current instr.: 'f' pc 278 ((file unknown):73951725) (:1)␤»
moritz jnthn: ah, thanks 19:38
still no luck
jnthn ?
moritz oh
jnthn oh, no
moritz my bad
jnthn heh :)
moritz nom: sub f(|$) { say |pir__perl6_box_rpa__PP(pir::perl6_current_args_rpa__P()) }; f 3, 4
p6eval nom: OUTPUT«Method 'ARGLIST_FLATTENABLE' not found for invocant of class 'Parcel'␤current instr.: 'f' pc 289 ((file unknown):51612144) (:1)␤»
jnthn OK, that one is fixable :)
moritz: In Parcel.pm 19:39
method ARGLIST_FLATTENABLE() { $!storage }
19:40 Pathin_ left 19:41 [particle]1 joined 19:42 Bzek left, Pathin_ joined
moritz jnthn: thanks, will try 19:43
19:43 [particle] left 19:45 whiteknight left, whiteknight joined
pmichaud 19:39 <jnthn> method ARGLIST_FLATTENABLE() { $!storage } 19:46
probably not right, since $!storage is an RPA
oh, it might work 19:47
hmmm
oh, the problem is that it won't flatten
moritz with that, calling with the same argument as |pir__perl6_box_rpa__PP(pir::perl6_current_args_rpa__P()) "works"
ie seems to work, after an initial test :-) 19:48
pmichaud how should: foo(|(2,3,(4,5),6)) end up in the argument list?
is it four arguments or five ?
jnthn pmichaud: That's the point 19:49
pmichaud: We need an RAP or Parrot doesn't know what to do with it.
pmichaud same for foo(|(2,3,@a,5))
jnthn *RPA
pmichaud getting an RPA is easy -- I just am not sure it's should be Parcel's RPA :)
*it
jnthn pmichaud: Ah, OK
pmichaud what happens with foo(|(2,3,(4,5),6)) ? Is that four arguments to foo, or five? 19:50
19:50 whiteknight left
pmichaud rakudo: sub foo($a, $b, $c) { say "$a $b $c"; }; foo(|(1,2,(3,4))) 19:51
p6eval rakudo b2bc99: OUTPUT«1 2 3 4␤»
pmichaud rakudo thinks it's three.
19:51 Pathin_ left
pmichaud (or in my example above, it'd be four arguments) 19:51
TimToady I'd think it would depend on what the (4,5) is bound to 19:52
it's an embedded parcel
pmichaud I'm excluding slurpies for the moment
TimToady so it's 2 args in to list binding but 1 to an item binding
19:52 Pathin_ joined
TimToady | only does one level 19:52
pmichaud okay
then RPA's $!storage is fine
sorry, Parcel's $!storage RPA is fine 19:53
jnthn pmichaud: The other option is we try to teach Parrot how to cope with more stuff with its :flat 19:54
pmichaud: Though I think we may need to anyway.
pmichaud: Unless we want to have a big mess around with |$capture again.
pmichaud I'm fine with the way it is now, at least for a while.
jnthn I'm not happy with how |$cap is handled in master. :/
pmichaud even |$capture shouldn't be too hard -- just put ARGLIST_FLATTENABLE method onto Capture
jnthn pmichaud: Which returns what? 19:55
pmichaud an rpa.... or are you worried about named captures?
jnthn named
oh, darn
nom: sub foo(:$a) { say $a }; my %h = a => 42; foo(|%h)
p6eval nom: OUTPUT«42␤»
jnthn huh 19:56
OK, it works, I dunno how ;)
moritz magic[tm]
jnthn I thought you had to :flat :named things
But seems Parrot figures it out...somehow. :)
pmichaud I thought you were doing that.
moritz :-)
pmichaud re-checks the patch.
jnthn I...don't think so.
If I am, the beer last night was stronger than I remember... 19:57
tadzik yay, I has the flight tickets to yapceu :)
moritz \o/
moritz jealous
jnthn nom: sub foo(:$a) { say $a }; foo(|{ a => 42 })
p6eval nom: OUTPUT«42␤»
jnthn tadzik: yay, see you there!
tadzik I'll be there on 11th too, the flight ticket for 11th was >50% cheaper than for 12th 19:58
moritz I guess Riga is well worth it :-)
tadzik jnthn: yeah, looking forward to it :)
yes, that opens some opportunities
moritz tadzik: you can see if soembody wants hackathon or so :-) 19:59
pmichaud jnthn: I'm not sure how/why that's working... but it's not something that worries me atm for some reason. 20:00
jnthn pmichaud: I'm mostly scared about what Parrot is doing that means it works :)
tadzik moritz: there's even a scheduled hackathon on 12th, so that'd be a heck-athon :P 20:01
pmichaud find_lex $P101, "%h"
$P102 = $P101."ARGLIST_FLATTENABLE"()
$P103 = "&foo"($P102 :flat)
you're right... no :named flag. I have no idea what Parrot is up to there, then. :)
jnthn Some questions are better left unasked. :) 20:02
20:02 Pathin_ left
pmichaud maybe parrot isn't doing anything with it, and its the binder code that is seeing it correctly (because of the :flat flag?) 20:02
jnthn No, the flattening is caller side
Which is why you can't |@foo is @foo is infinite.
pmichaud tests.
20:03 Pathin_ joined
dalek kudo/nom: 348b506 | moritz++ | src/core/ (2 files):
make say() and print() redispatch to the methods on $*OUT
20:03
moritz would like to mention that not all IO was very LHF-ish 20:04
tadzik moritz++ # non-trivial patches )
:)
pmichaud jnthn: parrot automatically puts a flattening hash into the slurpy hash: gist.github.com/1046845 20:05
jnthn pmichaud: ah :)
pmichaud bet they don't even realize that :)
jnthn Yes, that's my worry.
20:07 wooden joined 20:12 Pathin_ left 20:13 cbk left, Pathin_ joined
pmichaud starts taking an axe to obsolete parts of HLL::Compiler 20:14
20:15 karupas joined 20:17 karupanerura left 20:19 cbk joined
dalek ecza: 4d8c2a8 | sorear++ | lib/ (5 files):
Attributes and aggregate elements default to Any with a Mu constaint
20:20
TimToady wonders why people keep spelling it axe when ax is perfectly acceptable 20:22
20:22 Pathin_ left 20:23 Pathin_ joined
pmichaud It's a "Texas ax" 20:23
TimToady I thought that was a chainsaw 20:24
pmichaud Kind of like an Idaho potatoe
TimToady keeps thinking "axe" should be pronounced like "aches"
pmichaud at least I'm not using "axe" in place of "ask", as in "Don't axe me that again!" 20:25
TimToady no, you're not an ax murderer :)
or would that be an ask murderer? 20:26
phenny: tell daniel-s "http%3A%2F%2Ffoo%20bar%2F".subst(/'%' (<[0..9A..F]> ** 2)/, -> $/ { chr(:16($0)) }, :g).say 20:27
phenny TimToady: I'll pass that on when daniel-s is around.
20:28 bakedb left, pochi_ joined, pochi left, tyatpi joined 20:29 pochi_ left, pochi joined 20:32 Pathin_ left 20:34 Pathin_ joined 20:37 pernatiy left
sorear subst's second argument takes a parameter? 20:39
moritz sorear: that's a rakudo hack. $/ should be automagically available in it 20:40
20:40 kaare_ left 20:43 Pathin_ left 20:44 bitpart joined, Pathin_ joined
jnthn gets curious what pmichaud is going to axe :) 20:47
20:48 wooden left
jnthn std: our Int $x; our Int $x; 20:51
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
jnthn std: our Int $x; our Str $x;
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
jnthn What do type constraints on an "our" variable actually mean?
Of note, what if: 20:52
$Foo::x = 42; module Foo { our Str $x; }
20:52 karupanerura joined
jnthn Should we have set the variable in Foo's stash up at BEGINish time? 20:53
20:53 karupas left
jnthn If so, what do multiple our's refering to it mean? 20:54
:)
20:57 Pathin_ left
sorear niecza: our Int $x 20:57
p6eval niecza v6-196-g4d8c2a8: OUTPUT«===SORRY!===␤␤Common variables are not unique definitions and may not have types at /tmp/yUopoyDe_L line 1 (EOF):␤------> our Int $x⏏<EOL>␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setti…
20:57 Pathin_ joined
sorear consider that my vote 20:58
20:58 fhelmberger joined 21:02 bitpart left
dalek ecza: 9fa31a8 | sorear++ | / (3 files):
my-variables default to Any but with Mu constraint
21:04
mikemol TimToady: I like 'moddiv' ... sounds like "Muad'dib" 21:05
21:06 Pathin_ left 21:07 Pathin_ joined 21:09 dual left 21:10 masak joined
masak \o/ 21:10
jnthn lolitsmasak! 21:11
tadzik lawlitsCarl!
masak resumes uploading today's slides
jnthn Vive le masak!
21:11 whiteknight joined
masak today has been a satisfying day. 21:12
jnthn :)
masak I did my second lightning talk, ever. 21:13
jnthn How'dit go?
masak well, for such a dry topic.
jnthn Mutually recursive triangle making thingies is dry? :)
masak "How to mutually recurse yourself to a sierpinski DAG using Perl 6." :)
sorear masak! 21:14
masak sorear!
21:15 dual joined 21:16 Pathin_ left 21:17 Pathin_ joined
dalek kudo/nom: b9b7f54 | jonathan++ | NOMMAP.markdown:
Remove a completed entry from nommap.
21:19
kudo/nom: f83b81d | jonathan++ | / (2 files):
First simple cut at our-scoped variables.
21:25 Pathin_ left 21:26 Pathin_ joined
dalek p: 2f91679 | pmichaud++ | src/HLL/Compiler.pm:
Remove long Q:PIR section from HLL::Compiler.command_line().
21:29
p: 21aa0e4 | pmichaud++ | / (4 files):
Merge branch 'master' of github.com:perl6/nqp
masak my first and last talk from today: masak.org/carl/fpw-2011-excited/talk.pdf masak.org/carl/fpw-2011-sierpinski/talk.pdf 21:32
21:35 Pathin_ left
pmichaud oops, that commit broke something 21:35
(odd because it worked earlier)
fixing.
jnthn masak: is "merci bcp" the french "kthxbai"? :)
masak++ # slides 21:36
pmichaud ... "have to put food on the family"?
21:36 Pathin_ joined
pmichaud dumps a load of baguettes on his kids 21:36
jnthn
.oO( that'll give them a breadache... )
21:37
mikemol jnthn: You run a site? (I somehow missed it) 21:38
Granted the appropriate response to a question like that in a crowd like this is "which one do you mean?" 21:39
It was mentioned earlier in the context of masak's second talk, or something like that.
pmichaud looks like the problem was that I needed to rebuild Parrot. I need to add mberends++ super-useful "you need to update Parrot" script to NQP 21:40
jnthn mikemol: You may be looking for my slides at www.jnthn.net/articles.shtml or my Perl 6 blog at 6guts.wordpress.com/
masak pmichaud: it's a Bushism.
jnthn: yes. :)
jnthn: well, not really. but I like it for its brevity. it feels French.
pmichaud masak: wow, so it is! (Bushism)
mikemol Something about aweing people, but not leaving them without a clue where to go. :)
tadzik as in George Bush?
mikemol I think I've seen the blog in the p6 planet. *reads the slides* 21:41
Ok, there are a lot of slides. Heh.
pmichaud I hadn't heard that particular one before.
masak :) 21:42
silly old George.
pmichaud Hard to believe he lives only 18 miles away from me. :-)
tadzik that's like 1 ranch? :) 21:43
pmichaud it can be, yes. Although there aren't many ranches that size in this part of Texas (that I know of) 21:44
21:45 Pathin_ left, Patterner left 21:46 Pathin_ joined
masak my talk generated questions after. jnthn's talk generated questions during. interesting how that worked. 21:46
jnthn "WTF was the author of these slides thinking?!" 21:47
21:47 Psyche^ joined, Psyche^ is now known as Patterner
dalek p: faf34e9 | pmichaud++ | src/HLL/Compiler.pm:
Eliminate obsolete "astgrammar" stuff from HLL::Compiler,
21:47
21:55 Pathin_ left 21:56 Pathin_ joined
pmichaud afk for a bit, errands 21:57
22:04 Pathin_ left 22:05 lue joined 22:06 Pathin_ joined 22:14 pochi left 22:15 Pathin_ left 22:16 Pathin_ joined
sorear masak: Do you know who started the "Perl 6 has not yet been released" meme? 22:22
22:22 masak left 22:23 phluks_ joined 22:25 Pathin_ left 22:26 phluks_ left, Pathin_ joined
dalek kudo/nom: 706682b | jonathan++ | src/ (3 files):
Fix roles in pre-compiled situation, so they work as well as in immediate-run mode.
22:32
kudo/nom: dbdb675 | jonathan++ | / (6 files):
Add empty Associative and Positional roles; make List/Parcel/EnumMap do them appropriately.
kudo/nom: cc24038 | jonathan++ | NOMMAP.markdown:
Remove done items from nommap.
22:35 Pathin_ left
sorear jnthn: Why is it STORE_AT_KEY and not bind_key? 22:35
22:36 Pathin_ joined
jnthn sorear: Where? :) 22:36
sorear: Also, probably wrong person to ask. :)
pmichaud++ is working on the details of those things 22:37
store and bind sound like different operations though
nom: try { die 'omgz' }; say 'ok' 22:38
p6eval nom: OUTPUT«Method 'blocktype' not found for invocant of class 'PAST;Op'␤current instr.: 'nqp;Perl6;Actions;statement_prefix:sym<try>' pc 37226 (src/gen/perl6-actions.pir:0)␤» 22:39
jnthn *sigh* guess exceptiony stuff needs sorting out soon 22:40
pmichaud in the case of Arrays, we're storing a value into a container, not binding a value. 22:41
same for Hashes
22:43 pjcj_ left
jnthn pmichaud: It looks like Parrot only lets us throw a Parrot exception PMC :/ 22:44
pmichaud jnthn: yes, we'll have to wrap it up.
jnthn ffs
pmichaud but it's not so bad -- we have to do similar things with hashes and arrays
jnthn Well, it's more the inverse this time
pmichaud I was going to work on that a bit later tonight/tomorrow
jnthn Wrap the 6model Exception object up in a Parrot Exception just to throw it.
And unwrap it again later.
Talk about wasteful.
22:44 Pathin_ left
pmichaud hmmmm 22:45
I'm not sure I follow
jnthn pmichaud: We can't have Parrot Exception objects leaking into Perl 6 land.
pmichaud I understand that part
jnthn pmichaud: But throw needs a Parrot exception.
pmichaud why would we be throwing a 6model object, though? 22:46
jnthn pmichaud: So if we actually want to communicate the real Perl 6 exception object, we need to bundle it inside the Parrot one.
pmichaud just put the Perl6 exception object as the payload of a Parrot exception
jnthn Yeah
22:46 Pathin_ joined
pmichaud or just attach the 6model object to the parrot exception's property hash :) 22:47
jnthn Just a waste of a PMC every time we need to throw an exception...
Parrot's entire exceptions implementation seems optimized to be as slow and unhelpful as possible.
22:48 masak joined
pmichaud ugh, HLL::Compiler needs a big refactor of its names. 22:49
people have confused "interactive mode" and "commandline"
"commandline_banner" is really "interactive_banner" 22:50
s/is/should be/
jnthn OK, I cba to fight the exception stuff tonight. I either leave it for pmichaud++ or I look tomorrow :) 22:51
pmichaud yes, I want to work on fail() also, so I can look at exceptions too.
also I want to fix up ll-backtrace in HLL::Compiler a bit
so tonight may just be an exceptional night for me :)
jnthn \o/
sorear how does fail work? 22:52
masak it just returns a Failure object, no?
sorear masak: it also twiddles CALLER::CALLER so that it will die on return if the failure isn't handled 22:53
pmichaud and if the Failure is used, it throws an exception
sorear masak: S04:1277 22:54
pmichaud sorear: I think that's somethign different than what I'm describing.
sorear I'm also confused by the "can be stored in any container whose type allows the Failure role to be mixed in" language
22:55 Pathin_ left 22:56 Pathin_ joined, masak left 22:58 sivoais joined 23:01 mattp_ joined 23:04 Pathin_ left 23:06 Pathin_ joined 23:14 Pathin_ left, colomon left 23:15 pjcj joined, Pathin_ joined 23:17 wamba left 23:24 Pathin_ left 23:25 Pathin_ joined 23:28 daniel-s joined
daniel-s good morning 23:29
phenny daniel-s: 20:27Z <TimToady> tell daniel-s "http%3A%2F%2Ffoo%20bar%2F".subst(/'%' (<[0..9A..F]> ** 2)/, -> $/ { chr(:16($0)) }, :g).say
daniel-s wow 23:32
23:34 Pathin_ left 23:35 Pathin_ joined
TiMBuS decoding urls huh 23:36
daniel-s rakudo: "http%3A%2F%2Ffoo%20bar%2F".subst(/'%' (<[0..9A..F]> ** 2)/, -> $/ { chr(:16($0)) }, :g).say 23:38
p6eval rakudo b2bc99: OUTPUT«foo bar/␤»
daniel-s rosettacode.org/wiki/URL_decoding
I was trying to solve that last night
I want to put his solution up there next to mine 23:39
33 lines, vs 1 line 23:40
TiMBuS cpansearch.perl.org/src/GAAS/URI-1..../Escape.pm scroll to bottom 23:43
23:44 Pathin_ left 23:45 Pathin_ joined 23:52 molaf_ joined 23:54 Pathin_ left 23:55 Pathin_ joined
sorear good morning daniel-s 23:55
23:55 molaf left