»ö« 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. |
|||
Woodi | everything can happen :) | 00:00 | |
TimToady | just as some folks stuck with Perl 4... | ||
Woodi | do not met personally... | ||
TimToady | anyway, private methods are really just sugar for subroutine calls, so you can always just write them that way | 00:01 | |
presuming you actually declare them as subs | |||
00:01
mattp_ joined
|
|||
Woodi | but there is many experiments in perl6 with operators but what with threads/concurency ? | 00:01 | |
TimToady | there have been some experiments, but mostly we're just trying to design it cleanly enough that there will be few unexpected interactions | 00:02 | |
Woodi | but develpment is up the way and changing something can be hard... | 00:03 | |
TimToady | nearly everything is now lexically scope, so it's obvious whether it belongs inside or outside a thread, for instance | ||
Woodi | k | ||
TimToady | and we de-emphtasized local semantics, which force shared state to be too global | ||
in favor of dynamic vars, which work more like Unix env vars | |||
since they're declared lexically, it's obvious again whether a given dynvar belongs to the thread or is shared | 00:04 | ||
local is a huge problem for threading in p5 | |||
Woodi | but i read STM probably will be used ? | ||
threads will be nice too | 00:05 | ||
TimToady | pugs played with it, and it seems to work as far as we took it | ||
but a lot of people think STM is still in the toy stage | |||
it requires some VM support to do efficiently | |||
and it really needs to tie into some larger transaction model beyond memory access | 00:06 | ||
we're also trying to make it possible to write in an Erlangish message passing style, which is a different approach to concurrency | |||
Woodi | thread alone will be fine for few years :) | ||
TimToady | niecza: async { say "hi" }; async { say "lo" } | 00:07 | |
p6eval | niecza v9-32-g380d891: OUTPUT«===SORRY!===Action method statement_prefix:async not yet implemented at /tmp/0PJPidDCEp line 1:------> async { say "hi" }⏏; async { say "lo" }Action method statement_prefix:async not yet implemented at /tmp/0PJPidDC… | ||
Woodi | it is Actor model ? | ||
TimToady | hmm, I thought niecza had async | ||
Woodi | actor model is more theoretical then STM... | 00:08 | |
but nice to read on Wiki :) | |||
00:10
localhost left
|
|||
Woodi | k, late for me. gn TimToady++ | 00:10 | |
diakopter | o/ | ||
TimToady | night | 00:12 | |
benabik | Actor model, a la Erlang isn't very theoretical. | 00:13 | |
Woodi | just was my impression - i think more STM implementations | 00:15 | |
00:15
replore_ joined
|
|||
TimToady | btw, the answer is more or less "yes"; my "one owner" and "capabilities" discussions are essentially an Actor model | 00:16 | |
but I'm trying to reinvent it all myself without reference to prior art :) | |||
Woodi | and what if perl6 will have some feature for distributed computing built in ? :) to be first choice when someone want to choose ? :) | 00:20 | |
cannot find some article about something... | 00:21 | ||
00:21
tty234 joined
00:28
pmichaud left,
hugme left,
jrockway_ left
|
|||
TimToady | hypers and feeds are existing parallel constructs in p6 | 00:28 | |
plus gather/take is essentially co-routines, if not threads | |||
multi-sig matching will be useful for receiving events and dispatching them | 00:29 | ||
00:33
pmichaud joined,
hugme joined,
jrockway_ joined,
zelazny.freenode.net sets mode: +v hugme
00:35
eternaleye joined
00:36
Chillance left
|
|||
Woodi | found... Commitment ordering (CO) (patented) ? but i mean something distributed and little futuristic in CORE :) | 00:37 | |
00:38
PZt left
|
|||
Woodi | Perl6 is... like google-translated technical manual for greys (aliens) :) compared to C :) | 00:39 | |
that <()> ** ^ must be about maintaing ufo :) | 00:40 | ||
00:41
PZt joined
|
|||
Woodi | late, gn & | 00:41 | |
01:03
colomon left
01:11
woosley joined
|
|||
woosley | good morning perl6 | 01:20 | |
01:20
packetknife joined
01:24
george_z0rwell joined,
Gruber_ joined
01:25
mattp_ left,
mattp_ joined,
sftp joined
01:26
Reaganomicon left
01:58
tokuhir__ left
02:00
tokuhiro_ joined
02:06
wolfman2000 joined
|
|||
dalek | ast: 91a5e7a | Coke++ | S32-list/ (2 files): rakudo nom fudging. |
02:14 | |
kudo/nom: f1c805a | Coke++ | t/spectest.data: run fudged tests. |
02:15 | ||
02:17
colomon joined
02:21
packetknife left,
envi_laptop joined
02:34
uasi_ joined
02:36
envi_laptop left
02:37
uasi left
02:48
tokuhir__ joined,
tokuhiro_ left
02:53
tokuhiro_ joined,
tokuhir__ left
02:56
replore_ left
03:07
envi_laptop joined
03:15
satyavvd left
|
|||
[Coke] | so, why did you change the style from Release to release? | 03:17 | |
ww | 03:18 | ||
japhb | Anyone happen to know what the modern (nom) version of the old alpha-era 'use Foo::Bar:from<parrot>;' is? | 03:19 | |
benabik | japhb: Horribly broken, I think... | 03:20 | |
japhb | D'oh! | 03:21 | |
benabik | Non 6model objects don't play well in nom-land, I think... | ||
japhb | And here I was hoping for a two-fer and getting the Perl 6 OpenGL examples working as well as the PIR ones. | ||
benabik | Probably can write a wrapper... | ||
japhb | benabik, where would I look to see how to do that? | 03:34 | |
benabik | japhb: I dunno. | ||
japhb | hmmm, maybe jnthn will know | ||
phenny, ask jnthn Is there a replacement in nom for the old alpha-era 'use Foo::Bar:from<parrot>;' syntax? If not, where should I start looking to figure out how to bring that functionality back? | 03:35 | ||
phenny | japhb: I'll pass that on when jnthn is around. | ||
japhb | An idea for the compiler features table: a section for 'Interoperability', with (at least) entries for system-level native libraries, VM-level foreign libraries, other languages on same VM, and Perl 5. | 03:41 | |
03:45
jdv79_ left
|
|||
japhb | How difficult would it be to change nom's +- rating for Misc:MAIN (because there is 'no help yet', which I assume means no usage info generated) to a full '+'. Is that a LHF task for an outsider or something that requires a core developer? | 03:48 | |
Hmmm, it would be nice to get clarity for the remaining '?' items in the compiler features table ... | 03:55 | ||
phenny, ask jnthn Could you take a look at the remaining '?' items for nom in the compiler features table? There are only three left, and to an outsider they *appear* to be the kind of things that would have a definitive answer ... | 03:58 | ||
phenny, ask sorear Can you fill in any status entries for the remaining Niezca '?' entries in the compiler features table? | 04:00 | ||
The problem with being out of sync with all the core developers' timezones is having to post a pile of questions, rather than being able to have conversations. :-/ | 04:01 | ||
04:04
pmichaud left,
hugme left,
jrockway_ left,
jfried left,
DarthGandalf left,
Grimnir_ left,
jlaire left,
tty234 left,
wooden_ left,
Gothmog_ left,
buubot_backup left,
slavik1 left
04:05
LoRe_ left,
eiro left,
colomon left,
Gruber_ left,
PZt left,
yath_ left,
apejens left,
Maddingu1 left,
[Coke] left,
odoacre left,
worr left,
Patterner left,
orafu left,
breinbaas left,
arthur-_ left,
drbean left,
sorear left,
lue left,
wolfman2000 left,
dukeleto left,
y3llow left,
cosimo left,
abercrombie left,
kshannon left,
PacoLinux left,
Woodi left,
Vlavv left,
_ilbot left,
nebuchadnezzar left,
uasi_ left,
mattp_ left,
pernatiy left,
phenny left,
daemon left,
araujo left,
skangas left,
BooK left,
Trashlord left,
Exodist left,
jferrero left,
bloonix left,
jevin left,
felipe left,
Caldrin left,
tokuhiro_ left,
woosley left,
molaf_ left,
bbkr left,
ruz left,
TimToady left,
szabgab_ left,
JodaZ_ left,
dalek left,
Sarten-X left,
bbkr1 left,
soh_cah_toa left,
jaldhar left,
mtk left,
sbp left,
nsh left,
_sri left,
arnsholt left,
[particle]1 left,
miso2217 left,
f00li5h left,
sjn left,
BinGOs left,
ranguard left,
betterworld left,
fhelmberger left,
envi_laptop left
04:08
birdwindupbird joined
04:17
KindOne joined
|
|||
ledrug | Hello? | 04:27 | |
04:33
japhb left
|
|||
plobsing | ledrug: hi | 04:33 | |
ledrug | Hi | 04:36 | |
Just curious, do you know which was the bot that logs this channel? | |||
Tene_ | ledrug: ilogger2 | 04:37 | |
benabik | Ledrug: footer of irclog.perlgeek.de/ says ilbot ( moritz.faui2k3.org/en/ilbot ) | ||
ledrug | It went with the split, I guess | 04:38 | |
plobsing | oh noes, we're off the record | 04:44 | |
Tene_ | Hahaha, I can say whatever I want, and nobody wille ver know! | 04:45 | |
04:53
plobsing left
05:01
packetknife joined
05:03
_ilbot joined
05:15
ledrug left
05:21
woosley joined
|
|||
woosley | perl6: say 1,3,5 ... 8 | 05:26 | |
benabik | Are we still netsplit? | ||
p6eval | rakudo f1c805, niecza v9-32-g380d891: OUTPUT«(timeout)» | 05:27 | |
..pugs: OUTPUT«***  Unexpected "8" expecting operator, ":" or "," at /tmp/Qy_CdOcKCm line 1, column 15» | |||
benabik | Ah, there it is. | ||
woosley | perl6: say 1,3,5 ... 17 | 05:28 | |
p6eval | rakudo f1c805, niecza v9-32-g380d891: OUTPUT«1 3 5 7 9 11 13 15 17» | ||
..pugs: OUTPUT«***  Unexpected "17" expecting operator, ":" or "," at /tmp/K_46Z9YLIw line 1, column 15» | |||
woosley | looks like ' ... ' is not smart enough. On my computer, say 1,3,5 ... 8 will hang | 05:29 | |
05:33
ZapZ joined
|
|||
benabik | Does … require an exact match to stop? | 05:38 | |
Yes, S03 says the sequence is smart matched against the limit. | 05:39 | ||
perl6: say 1,3,5 … { * >= 8 } | 05:40 | ||
p6eval | rakudo f1c805: OUTPUT«===SORRY!===Confused at line 1, near "say 1,3,5 "» | ||
..niecza v9-32-g380d891: OUTPUT«===SORRY!===Confused at /tmp/KwXXHrndff line 1:------> say 1,3,5 ⏏… { * >= 8 }Parse failed» | |||
..pugs: OUTPUT«decodeUTF8': bad data: '\8230'***  Unexpected "\8230" expecting operator, ":" or "," at /tmp/t3OxEkWtuj line 1, column 11» | |||
benabik | Bah. | ||
perl6: say 1,3,5 … { * >= 8 } | |||
p6eval | niecza v9-32-g380d891: OUTPUT«===SORRY!===Confused at /tmp/NoRipXB_Qx line 1:------> say 1,3,5 ⏏… { * >= 8 }Parse failed» | ||
..rakudo f1c805: OUTPUT«===SORRY!===Confused at line 1, near "say 1,3,5 "» | |||
..pugs: OUTPUT«decodeUTF8': bad data: '\8230'***  Unexpected "\8230" expecting operator, ":" or "," at /tmp/e9WmJLJLha line 1, column 11» | |||
benabik | Bah! Stupid autocorrect. | ||
perl6: say 1,3,5 ... { * >= 8 } | 05:41 | ||
p6eval | pugs: OUTPUT«***  Unexpected "{" expecting operator, ":" or "," at /tmp/T5lY3XIH4n line 1, column 15» | ||
..rakudo f1c805, niecza v9-32-g380d891: OUTPUT«1» | |||
benabik | perl6: say 1,3,5 ...^ { $_ >= 8 } | 05:42 | |
p6eval | rakudo f1c805, niecza v9-32-g380d891: OUTPUT«1 3 5 7» | 05:43 | |
..pugs: OUTPUT«(timeout)13one(VList [VInt 5,VInt 6,VInt 7,VInt 8,VInt 9,VInt 10,VInt 11,VInt 12,VInt 13,VInt 14,VInt 15,VInt 16,VInt 17,VInt 18,VInt 19,VInt 20,VInt 21,VInt 22,VInt 23,VInt 24,VInt 25,VInt 26,VInt 27,VInt 28,VInt 29,VInt 30,VInt 31,VInt 32,VInt 33,VInt 34,VInt 35,VInt 36,V… | |||
woosley | brillant ! | 05:44 | |
benabik | woosley: perlcabal.org/syn/S03.html#line_1943 | ||
woosley | perl6: my @odd = 1,3,5 ... 8; say @odd[^4] | 05:46 | |
p6eval | rakudo f1c805, niecza v9-32-g380d891: OUTPUT«(timeout)» | 05:47 | |
..pugs: OUTPUT«***  Unexpected "8" expecting operator or "," at /tmp/TUO8j__u5k line 1, column 21» | |||
benabik | ^4? | ||
woosley | perl6: my @odd = 1,3,5 ... 15; say @odd[^4] | ||
p6eval | rakudo f1c805, niecza v9-32-g380d891: OUTPUT«1 3 5 7» | ||
..pugs: OUTPUT«***  Unexpected "15" expecting operator or "," at /tmp/5D4DO9LL3c line 1, column 21» | |||
woosley | ^4 = 0 .. 3 | 05:48 | |
benabik | (1,3,5 ... *)[^4] might actually work some day, if sufficient laziness is added. | ||
I would think sequences would be lazy... | 05:49 | ||
woosley | I think laziness is implemented now? | ||
benabik | rakudo: say (1,3,5…*)[^4] | ||
p6eval | rakudo f1c805: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1» | ||
benabik | rakudo: say (1,3,5...*)[^4] | ||
p6eval | rakudo f1c805: OUTPUT«1 3 5 7» | ||
benabik | Ah. The assignment is eating the sequence. | 05:50 | |
woosley | rakudo: my @a = 1,3,5 ... *; say @a[^4] | ||
benabik | rakudo: my @odd := 1,3,5...* ; say @odd[^4] | ||
p6eval | rakudo f1c805: OUTPUT«1 3 5 7» | ||
woosley | hmmm~~~ | ||
it's not | 05:51 | ||
benabik | rakudo: my @odd := 1,3,5...8 ; say @odd[^4] | ||
p6eval | rakudo f1c805: OUTPUT«1 3 5 7» | ||
benabik | rakudo: my @odd = 1,3,5...8 ; say @odd[^4] | ||
p6eval | rakudo f1c805: OUTPUT«(timeout)» | ||
benabik | I bet infix:<…> has a multi with Whatever on the right. | ||
woosley | := ? | ||
benabik | binding | 05:52 | |
@odd is the sequence, not store the sequence in @odd | |||
benabik wants … to act as ... | |||
woosley | but my @a = 1,3,5 ... * works | ||
benabik | Probably because it's a slightly different object somewhere… Possibly a bug. | 05:53 | |
(Bug that it acts different.) | 05:54 | ||
nom: say (1,3,5...*).WHAT ; say (1,3,5...8).WHAT | |||
p6eval | nom f1c805: OUTPUT«List()List()» | ||
benabik | Bah. | ||
nom: say (1,3...*).WHAT ; say (1,3...8).WHAT | 05:55 | ||
p6eval | nom f1c805: OUTPUT«List()List()» | ||
benabik | Bah I say. | ||
06:02
kaleem joined
|
|||
woosley | rakudo: say ^4.WHAT | 06:09 | |
p6eval | rakudo f1c805: OUTPUT«Use of uninitialized value in numeric context0..^0» | ||
woosley | rakudo say (^4).WHAT | ||
06:09
packetknife left
06:10
masak joined
|
|||
woosley | rakudo: say (^4).WHAT | 06:10 | |
p6eval | rakudo f1c805: OUTPUT«Range()» | ||
masak | morning, p6. | ||
woosley | morning, masak | ||
rakudo: say (^4).perl | 06:11 | ||
p6eval | rakudo f1c805: OUTPUT«0..^4» | ||
06:27
f00li5h joined
|
|||
jnthn | morning, #perl6 | 06:27 | |
masak | jnthn: morning! | 06:31 | |
you're up early :) | 06:32 | ||
jnthn | masak: I know :( | ||
sucks. | |||
.oO( I do optimism well on a morning... ) |
|||
masak | :P | 06:33 | |
hm... there doesn't seem to be a way to set the attributes of a DateTime in Rakudo... | 06:36 | ||
jnthn | Wasn't DateTime immutable, and you just constructed the right thing? | 06:38 | |
masak | not when I made the spec :) | ||
masak goes back to his commit to see what happened to that idea | 06:39 | ||
jnthn | moritz++ and tadzik++ were working on that stuff in nom of late, so may have some ideas too :) | ||
masak | I always understood it as DateTime being mutable, but Date being immutable. | 06:41 | |
though I remember having to do some compromise or other in Rakudo, because real setters a la '$obj.attr = $value' couldn't be combined with validation, at least not a year ago. | 06:42 | ||
huh! seems *I* made DateTime immutable :P | 06:43 | ||
github.com/perl6/specs/commit/3d7d...3c12fb7622 | |||
fair enough. who am I then to argue against that decision? :P | |||
it does make a lot of sense. one problem with setting a DateTime through accessors would've been that of triggering out-of-range exceptions even though the initial and final states were OK. | 06:45 | ||
jnthn | Yeah, I don't argue with myself. | ||
Wait, yes I do! | |||
masak | autopun :P | 06:46 | |
*and* a direct self-reference. | |||
oh, it was Kodi who proposed and carried through the immutabilization of DateTime. that's why I can't remember having done it myself. ;) | 06:48 | ||
Kodi++ | |||
jnthn | commute & | 06:49 | |
cotto | What characteristics are desirable in a language subset like nqp used for building a full compiler of that language? | 06:50 | |
I know that the subset should compile to something static and should be more expressive than a low-level language. Is there anything else? | |||
06:58
japhb joined
|
|||
masak | well, it's nontrivial for me as a bystander to tell what's primary reasons and what's consequences. maybe pmichaud will have better answers. | 06:59 | |
but it seems to me one of the points is to streamline things a bit; to remove conveniences in the full language that aren't strictly needed. | |||
japhb | (original msg via phenny lost, and phenny doesn't appear back yet, so hoping jnthn backlogs ...) jnthn, Could you take a look at the remaining '?' items for nom in the compiler features table? There are only three left, and to an outsider they *appear* to be the kind of things that would have a definitive answer ... | 07:00 | |
cotto | Yeah. | ||
masak | cotto: for example, it's terribly convenient to be able to do 'say 42', but it doesn't really offer any new semantics on top of 'say(42)' | ||
cotto | I'll be trying to catch pmichaud at some point. | ||
masak | cotto: ditto explicit/implicit type casts. | ||
so nqp seems to me to be a kind of "minimal subset" of Perl 6 -- where "minimal" is a moving target as we scale up the stack in complexity -- without much of the DWIM that we like in Perl 6 but don't need for a bootstrapping step. | 07:01 | ||
to me as a Perl 6 dev, nqp often looks like Perl 6's spartan, strict cousin. | 07:02 | ||
a bit like someone took a look at Perl 6 and went "well, I *like* it, but lets get rid of all this implicit, dwimmy crap". | |||
cotto | masak, that's helpful. Thanks. | ||
masak | rakudo: say now | 07:43 | |
p6eval | rakudo f1c805: OUTPUT«Instant:1316591040.30722» | ||
masak | rakudo: say DateTime.now | ||
p6eval | rakudo f1c805: OUTPUT«DateTime.new(year => 2011, month => 9, day => 21, hour => 7, minute => 43, second => 34, timezone => $*TZ)» | ||
masak | huh. that last value isn't too informative. | ||
rakudo: say DateTime.now.Date | 07:44 | ||
p6eval | rakudo f1c805: OUTPUT«Date.new(2011, 9, 21)» | ||
jnthn | cotto: NQP is allowed to make a lot more assumptions too | ||
masak | rakudo: say Date.now | ||
p6eval | rakudo f1c805: OUTPUT«Method 'now' not found for invocant of class 'Date' in <anon> at /tmp/A5UzmmzLJG:1 in <anon> at /tmp/A5UzmmzLJG:1» | ||
masak | rakudo: say Date.today | ||
p6eval | rakudo f1c805: OUTPUT«Date.new(2011, 9, 21)» | ||
masak | rakudo: say DateTime.today | ||
p6eval | rakudo f1c805: OUTPUT«Method 'today' not found for invocant of class 'DateTime' in <anon> at /tmp/q2S44LHkiu:1 in <anon> at /tmp/q2S44LHkiu:1» | ||
jnthn | cotto: Which makes it a bunch easier to analyze, and thus optimize. | ||
cotto: The NQP optimizer, when it lands, will be able to be quite aggressive in various ways that a full-blown Perl 6 would could not be without a bunch more analysis. | 07:45 | ||
masak | it would be inneresting to list those assumptions, and try to figure out how to apply them to Perl 6 in "some cases". | ||
jnthn | For example, NQP has no eval that can see lexicals. | 07:46 | |
So we can just demote lexicals that we know aren't captured in closures down to registers/locals. | |||
In Perl 6, we have to hope we can inline stuff in hot paths, at which point there's no function or method calls left, at which point we know we're not calling eval, at which point we can demote lexicals to registers. | 07:47 | ||
That said, lexicals should really be cheaper than they are today... | |||
masak .oO( 4 lexicals for the price of 3 ) | 07:48 | ||
jnthn | :P | ||
07:49
BinGOs joined,
plobsing joined,
uasi_ joined,
mattp_ joined,
pernatiy joined,
phenny joined,
daemon joined,
araujo joined,
skangas joined,
BooK joined,
Trashlord joined,
Exodist joined,
jferrero joined,
bloonix joined,
jevin joined,
felipe joined,
broquaint joined,
zostay joined,
ruoso joined,
revdiablo joined,
mdxi_ joined,
stepnem joined,
Bucciarati joined,
gfldex joined,
yahooooo joined,
tomaw joined,
literal joined
|
|||
jnthn | japhb: using then is "phenny: tell jnthn beer is awesome" | 07:49 | |
japhb: I'll try and look this evening, after $dayjob | 07:50 | ||
phenny | jnthn: 03:35Z <japhb> ask jnthn Is there a replacement in nom for the old alpha-era 'use Foo::Bar:from<parrot>;' syntax? If not, where should I start looking to figure out how to bring that functionality back? | ||
jnthn | oh, japhb++ did use phenny right for that one... | ||
07:51
bakedb joined,
AAAHDUP joined,
mberends joined,
donri joined,
daniel-s joined,
molaf_ joined,
bbkr joined,
ruz joined,
TimToady joined,
szabgab_ joined,
JodaZ_ joined,
dalek joined,
Sarten-X joined,
bbkr1 joined,
jaldhar joined,
mtk joined,
sbp joined,
nsh joined,
_sri joined,
arnsholt joined,
[particle]1 joined,
miso2217 joined,
sjn joined,
ranguard joined,
betterworld joined,
fhelmberger joined,
snarkyboojum joined,
jdhore joined,
yves_ joined,
zelazny.freenode.net sets mode: +v dalek,
colomon joined,
Grrrr joined,
PZt joined,
yath joined,
apejens joined,
Maddingue joined,
[Coke] joined,
odoacre joined,
worr joined,
Patterner joined,
breinbaas joined,
arthur-_ joined,
drbean joined,
sorear joined,
lue joined,
renormalist joined,
senobmeht joined,
Util joined,
ingy joined,
diakopter joined,
moritz joined,
itz_ joined,
Yappoko___ joined,
hillu joined,
jfried joined,
imarcusthis joined,
donri left,
DarthGandalf joined,
jlaire joined,
Grimnir_ joined
07:52
KindOne left,
nebuchadnezzar joined,
mj41 joined,
replore joined,
dukeleto joined,
y3llow joined,
cosimo joined,
kshannon joined,
PacoLinux joined,
Woodi joined,
Vlavv joined,
takesako joined,
cxreg joined,
flussence joined,
Lorn joined,
Helios joined,
pmichaud joined,
hugme joined,
jrockway_ joined,
zelazny.freenode.net sets mode: +v hugme,
donri joined,
orafu joined,
tty234 joined,
Gothmog_ joined,
buubot_backup joined,
slavik1 joined,
LoRe_ joined,
eiro joined,
ashleydev joined,
nsh- joined,
risou_awy joined,
mls_ joined,
mux joined
07:54
tty234_ joined,
donri left,
tty234 left
07:55
bakedb left
07:57
wooden joined
08:00
KindOne joined
08:02
replor___ joined
08:03
replore left
08:04
kiffin joined
08:08
kiffin left
08:11
KindOne left
08:12
KindOne joined
08:22
JimmyZ joined
08:25
satyavvd joined,
satyavvd left
08:26
satyavvd joined,
satyavvd left
08:29
donri joined,
donri left,
donri joined
08:34
KindOne left
08:41
dakkar joined
08:43
daniel-s left,
daniel-s joined
08:51
locsmif joined
08:56
yass5 joined
09:16
yass5 left
|
|||
renormalist | asdasda | 09:16 | |
wrong channel, kids typing, sorry | |||
locsmif | :) | 09:17 | |
masak | was there a right channel that the kids should've been typing that in? :P | 09:20 | |
phenny | masak: 20 Sep 23:43Z <TimToady> tell masak the negative quantification has been there a long time; it just got relocated to stay near the ** text | ||
masak | oh! | ||
well, that doesn't change my gut feeling about it being not very useful and too complex. | 09:21 | ||
we already have <!after> | 09:22 | ||
09:28
envi_laptop joined
09:31
REPLeffect left
|
|||
masak | ooh, ?? !! ended up as an *infix* operator in Perl 6, not as a special-case trinary thing. | 09:35 | |
tadzik | good morning | 09:41 | |
jnthn | o/ tadzik | 09:42 | |
09:45
REPLeffect joined
|
|||
Woodi | hallo | 09:51 | |
jnthn: just architecture queston: is it possible/appropriate to have "filters" in perl6, eg for filtering IO for pluggable encryption on language level ? | 09:53 | ||
or for implementing permissions checks on resources acces, IO | 09:54 | ||
eg. put explicit barrier betwin code with resource acces and code doing www/network stuff ? | 09:59 | ||
everything can be writed outside language core but i ask about possible internal feature | 10:01 | ||
10:02
daxim joined
|
|||
Woodi | maybe permission for "operations" not only resources too | 10:04 | |
10:06
daniel-s left,
daniel-s joined
10:29
mishin_ joined
|
|||
cognominal | [08:45] <jnthn> Yeah, I don't argue with myself. | 10:32 | |
you are not TimToady who usually can ague everything both ways :) | |||
10:38
kfo_ joined,
grondilu joined
|
|||
grondilu | perl6: perl6: say 3.14159_26535_89793; #just want to see if there is arbitrary precision here | 10:41 | |
p6eval | niecza v9-32-g380d891: OUTPUT«3141592653589793/1000000000000000» | ||
..pugs: OUTPUT«3.141592653589793» | |||
..rakudo f1c805: OUTPUT«===SORRY!===Confused at line 1, near "perl6: say"» | |||
10:41
kfo left
10:46
rhr left,
mishin_ left
10:48
rhr joined
10:53
espadrine joined
10:55
daniel-s left
10:56
daniel-s joined
11:04
grondilu left
|
|||
tadzik | rakudo: say 3.14159_26535_89793; | 11:04 | |
p6eval | rakudo f1c805: OUTPUT«3.14159265358979» | ||
flussence | rakudo: printf('%.25f', 3.14159_26535_89793); | 11:07 | |
p6eval | rakudo f1c805: OUTPUT«3.1415926535897931159979635» | 11:08 | |
flussence | erk. | ||
JimmyZ | rakudo: say 3.14159_26535_897932.perl | ||
p6eval | rakudo f1c805: OUTPUT«7853981633974483/2500000000000000» | ||
11:37
Patterner left,
pernatiy left
11:41
Psyche^ joined,
Psyche^ is now known as Patterner,
uasi joined
11:44
uasi_ left
11:45
pmurias joined
|
|||
pmurias | erlang style message passing will be supplied in a module or builtin? | 11:45 | |
phenny | pmurias: 20 Sep 11:03Z <ingy> tell pmurias alias TOP to a rule called something else and start on that rule? Realize that I am writing language grammars where I almost always want to parse an entire text. requiring ^$ is not only annoying, it is going to cause problems when people forget it. | ||
masak | pmurias: I don't think anyone can answer that until the whole concurrency/parallelism/events thing has been mapped out in a consistent and solid manner. | 11:47 | |
11:47
uasi_ joined
|
|||
moritz | "yes" would probably a good guess :-) | 11:47 | |
masak | it's the term "builtin" that makes me unsure. | 11:49 | |
maybe there'll be a more fundamental builtin that'll support it? | |||
pmurias | masak: builtin meaning in CORE | 11:50 | |
masak | right. | ||
11:51
uasi left
11:52
uasi_ left
|
|||
pmurias | masak: what i would like to avoid is having a copy of the erlang mechanism in CORE | 11:54 | |
11:55
uasi joined
|
|||
JimmyZ | parrot wants a actor model in core | 11:55 | |
11:57
uasi_ joined
11:58
jimmy1980 joined
12:01
uasi left
12:03
ZapZ left
12:06
woosley left
|
|||
snarkyboojum | join #aws | 12:08 | |
eek | |||
12:09
aindilis joined
12:14
bakedb joined
|
|||
masak | std: my $op; my $ck; $op = $op.$ck | 12:17 | |
p6eval | std c22b2ee: OUTPUT«ok 00:01 121m» | ||
12:17
espadrine left
|
|||
masak | nice. I thought one needed quotes around $ck. apparently not. | 12:18 | |
mls_ | hi perl6! | 12:21 | |
tadzik | hi mls_! | 12:22 | |
mls_ | S04 contains: class Naughty is Exception {}; die Naughty("error"); | ||
What contstructor type is that? | |||
I thought one had to write Naughty.new("error") or something like that | 12:23 | ||
Wait, I don't mean S04, but t/spec/S04-exception-handlers/catch.t | |||
12:24
bluescreen10 joined
|
|||
masak | hi mls_ | 12:31 | |
mls_ | hello masak! | ||
masak | mls_: I discuseed this with moritz the other day. | ||
I maintained that there's a difference between the above syntax, a cast, and the syntax for a constructor. | 12:32 | ||
moritz seemed to opine they're equivalent. | |||
mls_ | How does Naughty("error") work? | 12:33 | |
I can't find anything in the spec (but the spec is quite big...) | 12:34 | ||
masak | syntactically, it's a conversion. like Int("42"). | 12:38 | |
std: Int("42") | |||
p6eval | std c22b2ee: OUTPUT«ok 00:01 119m» | ||
12:38
im2ee joined,
uasi joined
|
|||
mls_ | NYI in rakudo | 12:38 | |
where is that in the spec? | 12:39 | ||
masak | ISTR it used to be spelled that way in Rakudo, but was deprecated. that seems odd, though. | ||
nowadays, I tend to do "42".Int | |||
mls_ | yes, that's what I also use | 12:40 | |
masak | I'm not sure the spec has a section on type casting. | 12:41 | |
12:41
uasi_ left
|
|||
mls_ | niecza: Int("42") | 12:42 | |
p6eval | niecza v9-32-g380d891: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in class Int at /tmp/Rn_vf2oREP line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2060 (CORE C968_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2061 (CO… | ||
masak | my guess is that the NewType($value) syntax is dead, and that the thing you found in the spec is a fossil. | 12:43 | |
or maybe s/guess/hope/ ;) | |||
mls_ | yeah, probably. I'll ask TimToady++ | 12:44 | |
I probably could define postcircumfix:<( )> in Exception, though ;) | |||
12:46
benabik left,
woosley joined
12:47
bakedb left
12:48
bakedb joined
12:51
sayu joined
|
|||
masak | yes. but I think it's a better idea to use .new | 12:54 | |
tadzik | +1 | ||
12:56
jimmy1980 left
|
|||
cognominal | what is the way to get the parse tree of a perl6 program? | 12:58 | |
12:59
wamba joined
|
|||
cognominal | ...so as to be able to do syntax highlighting | 12:59 | |
13:01
pernatiy joined
|
|||
flussence | hm, Date.t hangs on 32bit for me. That's a new one... | 13:02 | |
cognominal | I was hoping that ack-ing the source with "Perl6::Grammar" would give me a clue | ||
masak | cognominal: run STD's viv on it? | ||
cognominal: or maybe co-opt Niecza to emit a parse tree? | |||
cognominal | I would be more confortable doing that with rakudo | 13:03 | |
I already have some of the code to process the parse tree written in rakudo. | |||
pmurias | cognominal: what do you intent to do with the parse tree? | 13:04 | |
13:04
bluescreen10 left
|
|||
cognominal | github.com/cognominal/code-viewer # stuff like that | 13:05 | |
but I do it with grammars different than Perl 6 grammar. | |||
pmurais, Well that's old stuff I am rewriting from scratch, but that to give you an idea | 13:07 | ||
masak | I'd also like to be able to get parse trees of programs easily. | 13:12 | |
13:13
mykhal joined
|
|||
flussence | something like $=POD, but for code? | 13:13 | |
cognominal | that's $/ :) | 13:14 | |
masak | flussence: no, just Perl6::Grammar.parse($code). | ||
cognominal | when parsing using Perl::Grammar | ||
masak | (with the appropriate handwaving for how to handle the World that parsing Perl 6 code generates) | 13:15 | |
cognominal | but last time, I tried, one cannot do what masak said because the parsing is dependant on a lot of setup. | ||
masak | yeah. | 13:16 | |
well, STD can. | |||
cognominal | I would like to avoid using too many tools (I already use rakudo, coffeescript, jquery…). | 13:17 | |
moritz | nom: say nqp::box_i(pir::can(Any, 'Bool')) | 13:18 | |
p6eval | nom f1c805: OUTPUT«===SORRY!===Unrecognized nqp:: opcode 'nqp::box_i' at line 1, near ""» | ||
moritz | nom: say nqp::p6box_i(pir::can(Any, 'Bool')) | ||
p6eval | nom f1c805: OUTPUT«1» | ||
moritz | nom: say nqp::p6box_i(pir::can(Any, 'Fool')) | ||
p6eval | nom f1c805: OUTPUT«0» | ||
cognominal | I am doing a presentation friday and I would like to demonstrate my tool with the parse of Perl 6 code instead of pseudo javascript. code. | ||
13:18
Holy_Cow joined,
Holy_Cow left
13:19
bluescreen10 joined
|
|||
masak | good luck! | 13:24 | |
13:27
maguro joined
|
|||
jnthn | The coercions are maybe defined as multi postcircumfix that wants a :U | 13:32 | |
Or syntactic. | |||
13:32
Base__ joined
13:33
wtw joined
|
|||
jnthn is only vaguely keeping up...actually having quite a busy day at $dayjob today :P | 13:33 | ||
im2ee | hi! :) | 13:34 | |
masak | im2ee: hej! | 13:35 | |
tadzik | hej im2ee | 13:38 | |
flussence | I'm writing a thing that doesn't currently work properly, but here it is anyway: github.com/flussence/Pod-Tree-Walker | ||
(and if anyone can explain why I get an ambiguous-multi error there, it'd be much appreciated...) | |||
tadzik | looks fun | ||
dalek | p: 3faca64 | moritz++ | tools/build/PARROT_REVISION: bump PARROT_REVISION to 3.8 release |
13:39 | |
flussence | (hm, maybe I want to use something other than ".?") | 13:40 | |
dalek | kudo/nom: e7ed52f | moritz++ | t/02-embed/01-load.pir: TODO 02-embed test |
13:43 | |
kudo/nom: 0cbc528 | moritz++ | src/Perl6/Compiler.nqp: use .gist instead of prefix:<~> to stringify REPL autoprint output Now when the return value of an expression is a type object, you get Int() or so, and no warning |
|||
13:43
locsmif left
|
|||
dalek | kudo/nom: 28f0696 | moritz++ | tools/build/NQP_REVISION: bump NQP revision to get some testing on released parrot |
13:43 | |
13:45
mishin_ joined
13:47
bluescreen10 left
|
|||
moritz | is there anybody for whom t/spec/S19-command-line/dash-e.rakudo has NOT two passing TODO tests? | 13:54 | |
(might need ICU) | |||
flussence checks... | |||
looks ok today, though I have had that one fail in the past... | 13:56 | ||
jnthn | moritz: Fails for me | ||
moritz: Also args.t | |||
moritz: I was thinking they were win32 specific and wanted to check that first before I yelped...but didn't get to it. | |||
moritz | jnthn: do you have ICU available? | 14:00 | |
jnthn: and can you use non-ASCII chars on the command line with -e? | |||
jnthn | no, and guess not | 14:02 | |
14:02
bluescreen10 joined
|
|||
jnthn | moritz: That may be my crappy console's fault though ;) | 14:02 | |
ooh, YAPC::EU talk feedback arrives :) | 14:06 | ||
tadzik | huh? | ||
oh | |||
jnthn | apparently my talks were fine :) | 14:07 | |
tadzik | wow, somebody actually liked my lightning talk :) | ||
14:08
bakedb_ joined
14:09
Base__ left,
bakedb left
|
|||
pmurias | cognominal: what is that usefull for? | 14:09 | |
masak | tadzik: I liked your lightning talk. | 14:10 | |
but I was too lazy to fill in evaluations this year :/ | |||
tadzik | masak: I had a feeling it went terrible, mostly due to speedspeaking and lack of rehearsals, but I'm still the only one who thought it was terrible, so maybe it was pretty good after all ;) | 14:11 | |
flussence: em, don't you want your DOC INIT to be INIT in s26.t? DOC INIT won't run when you run your tests with prove | 14:12 | ||
or maybe no phasers at all | |||
flussence | AIUI I've got to run it as -e 'perl6 --doc' either way to get the $=POD variable... | 14:14 | |
tadzik | flussence: and the dispatch bug seems to have roots in Rakudo rather than your code, methinks | ||
flussence: nah, $=POD is always there | |||
and I think that's what the spec wants | |||
jnthn | Dispatch bug? | 14:15 | |
14:15
woosley left
|
|||
tadzik | S26 doesn't say anything about $=POD being not always there | 14:15 | |
jnthn: in Pod::Tree::Walker | |||
flussence | jnthn: my code was complaining about two identical multis, even though there's definitely only one with the signature there | ||
cognominal | pmurias, my tool ties the parse code to the reduced rules. From a rule, it could eventually open the documention a the right page. If we link each rule to the spec it implements. | 14:17 | |
flussence | rakudo: class A { method foo { self.?bar } }; class B is A { method bar { say 'baa' } }; B.new.foo | ||
p6eval | rakudo 28f069: OUTPUT«baa» | ||
jnthn | flussence: Odd. Would be very interested to see a golfed example. | 14:18 | |
14:18
maguro left
|
|||
cognominal | litterate programming would be quite illiterate compared to such a tool :) | 14:18 | |
flussence | rakudo: my $abc = [1, 2, 3]; class A { method foo { self.?bar($abc) } }; class B is A { method bar($) { say 'blah' }; method bar(@) { say 'baa' } }; B.new.foo | ||
p6eval | rakudo 28f069: OUTPUT«===SORRY!===Package 'B' already has a method 'bar'; did you mean to declare a multi-method?» | ||
flussence | whoops | ||
rakudo: my $abc = [1, 2, 3]; class A { method foo { self.?bar($abc) } }; class B is A { multi method bar($) { say 'blah' }; multi method bar(@) { say 'baa' } }; B.new.foo | |||
p6eval | rakudo 28f069: OUTPUT«baa» | ||
cognominal | well, to be honest litterate programming document the purpose of the code. My tool would explains the code itself. | 14:19 | |
flussence | hm, it seems a bit more involved than this... | ||
cognominal | I firmly believe that we need to invent a nurturing environment around Perl 6. | 14:21 | |
Apparently there is a hook to write once parse tree dumper. But --target=parse is still broken | 14:24 | ||
14:24
wtw left
|
|||
cognominal | perl6 --target=parse --dumper=toto t.pm | 14:24 | |
===SORRY!=== | |||
Could not locate compile-time value for symbol StaticLexPad | |||
…in nom. | |||
jnthn | makes sense | 14:25 | |
I suspect getting --target=parse to work reliably is going to need some effort. | |||
Though it probably fails for everything at the moment. | 14:26 | ||
pmurias | cognominal: moritz was planning on creating a code explainer | 14:27 | |
14:28
kaare_ joined
|
|||
jnthn | Working over the AST may well make more sense than the parse tree, fwiw | 14:29 | |
moritz | ... and I still think it's a good idea, but I have way too many good ideas and way too little time | ||
jnthn | Maybe I should blog about how people can write tools that get an AST and then do stuff with it. :) | 14:30 | |
pmurias | jnthn: why would the ast be better? | ||
jnthn | pmurias: Because it encodes semantics, has symbol tables from which you can go and introspect the symbols, and so forth. | ||
14:30
mishin_ left
|
|||
cognominal | currently my tool shows the reductions from TOP to the code token your mouse hovers. | 14:30 | |
jnthn | ah, if you want that then maybe parse tree is useful... | 14:31 | |
pmurias | jnthn: does it expose the full syntax info? | ||
cognominal | My tool could be a complement to jnthn grammar debugger. | ||
jnthn's grammar debugger shows the process in real time, mine show the result. | 14:32 | ||
pmurias | jnthn: what i would be most usefull to be would be a tool which for a given bit of code will show me where the construct is specced, the test for it etc. | ||
14:33
kaleem left
|
|||
cognominal | I agree with jnthn, that if someday we want to do incremental recompiling of editing code like v8 does, ones needs access to some serialization of the AST. | 14:33 | |
but my goal is more modest | |||
Anyway, I already succeeded in being somewhatt proficient in coffeescript and jquery. :) | 14:34 | ||
pmurias | v8 does incremental recompiling of code? | ||
cognominal | pmurias: it spent a lot of time doing that. :) | 14:36 | |
it recompiles polymorphic code to generate native code according to the argument types. | |||
pmurias | i thought you meant it did incremental reparsing | 14:37 | |
flussence | jnthn: gist.github.com/1232212 | ||
this breaks if you uncomment that line | |||
jnthn | pmurias: You should be able to get to the match object, I think. | ||
pmurias: Or at least some information about location. | 14:38 | ||
Otherwise we can't give good errors for problems the optimizer finds. | |||
14:38
BinGOs left
|
|||
cognominal | pmurias: Apparently, it is faster for rhem to reparse the source code for the polymorphic function that is to be executed. | 14:38 | |
14:39
benabik joined
|
|||
jnthn | flussence: whoa, ouch | 14:39 | |
flussence: Thanks. | |||
Will look this evening. | |||
jnthn is kinda confused | |||
cognominal | There is very little litterature about v8 but it is a knock-off of the Self compiler. some of the programmars are the same. | ||
14:40
BinGOs joined
|
|||
cognominal | the relevant papers are here : labs.oracle.com/self/papers/papers.html | 14:40 | |
especially this one : labs.oracle.com/self/papers/pics.html | 14:41 | ||
And someone is some interesting blogging about v8 : wingolog.org/tags/v8 | 14:42 | ||
s/is/is doing/ | 14:43 | ||
moritz only knows the v8 javascript engine that is used in chrome | 14:45 | ||
cognominal | moritz: that's this one, it is used by node.js too. | 14:46 | |
JimmyZ | and MongoDB ? | ||
dalek | kudo/nom: c2194d6 | moritz++ | docs/ChangeLog: copy ChangeLog from 2011.07 |
14:47 | |
cognominal | JymmyZ: Apparently it uses the same technology to compile into native code. But unlike, v8, I have not looked into it. | 14:48 | |
nosql.mypopescu.com/post/409039261/...th-mongodb …or spider monkey according to this post. | 14:49 | ||
www.howsthe.com/blog/2010/feb/22/mongodb-and-v8/ … or both. | 14:50 | ||
masak | perl6: grammar G { regex TOP { 'foo' { say ~$/ } } }; G.parse("foo") | 14:51 | |
p6eval | niecza v9-32-g380d891: OUTPUT«G()<instance>» | ||
..rakudo 28f069: OUTPUT«foo» | |||
..pugs: OUTPUT«*** No such method in class G: "&parse" at /tmp/Q31nig35XR line 1, column 48 - line 2, column 1» | |||
jnthn | rakudo++ | 14:52 | |
masak | sorear: I think Rakudo's output is correct here. | ||
jnthn | ...G()<instance>?! | ||
benabik | moritz++ # REPL gisting | ||
jnthn | I'd at least expect $/ to have a Match object in... | ||
masak | sorear: want me to file a nieczabug? | ||
moritz | niecza: grammar G { }; say G ~~ Match | 14:53 | |
p6eval | niecza v9-32-g380d891: OUTPUT«Bool::False» | ||
jnthn | The cursor should be of type G, but the thing in $/ should be a match object. | 14:54 | |
moritz | right | ||
cognominal | jnthn: would it possible to get at the parse tree using code accessing $COMPILING::/ at the end of the code to be parsed ? | ||
jnthn | niecza: grammar G { regex TOP { 'foo' { say $/.WHAT } } }; G.parse("foo") | ||
p6eval | niecza v9-32-g380d891: OUTPUT«G()» | ||
jnthn | rakudo: grammar G { regex TOP { 'foo' { say $/.WHAT } } }; G.parse("foo") | 14:55 | |
p6eval | rakudo 28f069: OUTPUT«Match()» | ||
jnthn | cognominal: I don't think COMPILING does that... :) | ||
cognominal | I was hanwaving... | ||
*handwaving. | |||
rakudo: grammar G { regex TOP { 'foo' { say $/ } } }; G.parse("foo") | 14:56 | ||
p6eval | rakudo 28f069: OUTPUT«foo» | ||
cognominal | so I would need to get the $/ at the right callframe :) | 14:57 | |
moritz | .parse returns $/ | 14:58 | |
cognominal | moritz: I know, but the Perl6 .parse is very deep in the compiler code. | 14:59 | |
jnthn | decommute & | ||
cognominal | and as I said, I can't just call Perl6::Grammar.parse() | ||
moritz | cognominal: method .parse in HLL::Compiler... you might want to override that in Perl6::Compiler | 15:00 | |
or inject a stage after 'parse' | 15:01 | ||
cognominal | indeed. I am not too comfortable with PIR but I will give it a try. | 15:02 | |
moritz | PIR? it's written in NQP these days | ||
cognominal | cool, that would be more tractable. | 15:03 | |
moritz | it does :-) | ||
15:04
thou joined
|
|||
dalek | kudo/nom: 313b687 | moritz++ | docs/ChangeLog: add some few ChangeLog entries This just scratches the surface of all the nom changes; feel free to add many more |
15:06 | |
cognominal | btw, I wrote a toy oneliner stackframe dumping : gist.github.com/1226296 | 15:07 | |
tadzik | someone may want to answer that: stackoverflow.com/questions/7501581...-in-perl-6 | 15:08 | |
it may be possible with niecza and CLR interop | |||
moritz is already typing an answer | |||
15:10
mberends left
|
|||
moritz | jnthn: while writing the ChangeLog entry I noticed that I had no idea how much of the parametric role stuff is new in comparison to 2011.07 | 15:11 | |
jnthn: maybe add a few lines for new features to changelog | |||
sorear | good * #perl6 | ||
masak | hi, sorear | 15:12 | |
sorear | masak: I am not convinced that $/ should be a Match. What is your use case? | 15:14 | |
moritz | same as ordinary regex matches | ||
15:15
itz_ left
15:16
wamba left
|
|||
ingy | tadzik: cdent has vala now | 15:16 | |
we never actually wrote the code | |||
15:16
wamba joined
|
|||
ingy | cdent/emitter/vala.py | 15:17 | |
masak | sorear: my use case is "inspect what's been matched so far in the rule". | 15:19 | |
15:19
itz_ joined
|
|||
masak | sorear: but maybe I wasn't clear enough. I think Rakudo is to spec here, and Niecza isn't. | 15:19 | |
moritz | (and if it's not clearly spec yet, we should make it spec) | 15:20 | |
sorear | masak: if the spec says $/ should be a Match, then I am dubious of the spec unless I see a proper use case | ||
PerlJam | sorear: what do you think $/ should be? | 15:21 | |
sorear | I agree that Niecza's handling of .gist on Cursor objects is LTA at the moment | ||
masak: STD makes extensive use of the ability to get at the current Cursor object and call methods on it | 15:22 | ||
masak | well, sure. | ||
but what does that have to do with $/ being a partially constructed Match, or something similar enough? | |||
feels like we're talking past each other somewhat. | |||
sorear | Cursor *is* a partially constructed Match | 15:23 | |
15:23
lichtkind joined
|
|||
lichtkind | cheers good people of perl 6 | 15:23 | |
moritz | are we talking about the return value from G.parse, or about $/ inside a closure inside a regex? | ||
masak | sorear: then what's the problem? | ||
cognominal | coffeekup++ | ||
masak | lichtkind: greetings. | ||
15:23
espadrine joined
|
|||
masak | moritz: the latter. | 15:24 | |
lichtkind | jnthn: my talk sucked and let me know :) | ||
masak | moritz: well, regex or rule-in-grammar. | ||
15:24
bluescreen10 left,
wamba left
15:25
envi_laptop left
|
|||
moritz | then it's pretty clear that $¢ is the cursor and $/ the Match | 15:25 | |
PerlJam | S05:916 fwiw | ||
masak | moritz: but what about $0? we even use that inside procedural parts of a rule... | 15:26 | |
and it means $/[0] | |||
masak always disliked the variable $¢ | |||
moritz | masak: it doesn't have to mean $/[0] inside the regex | 15:27 | |
15:27
mberends joined
|
|||
moritz | masak: it's OK if it just means 'text of the first () capture' | 15:27 | |
cognominal | I have yet to understand the difference between $¢ and $/ within a rule. | 15:28 | |
moritz | cognominal: basically $¢ is more in flux, and $/ is a snapshot | ||
in an ordianry regex or grammar, there's not much reason to access $¢ at all | 15:29 | ||
PerlJam | $¢ will tell you where you're at in the middle of a parse. | 15:30 | |
($/ can only tell you where you ended up as I understand it) | |||
cognominal | and what $/ tells you in the middle of a parse? | ||
the part of the parse, the parser is committed to? | 15:31 | ||
meaning it wil not backtrace over. | |||
*will | |||
moritz thinks it might even backtrack over it | 15:32 | ||
rakudo: say 'aaaab' ~~ /^(a+) { say $0 } aab / | 15:33 | ||
p6eval | rakudo c2194d: OUTPUT«Nil» | ||
moritz | b: say 'aaaab' ~~ /^(a+) { say $0 } aab / | ||
p6eval | b 1b7dd1: OUTPUT«aaaaaaaaaaaaab» | ||
moritz | there it backtracked over a closure, so $/ had a new value in the subsequent executions | 15:34 | |
sorear | S05:921 says that $¢ and $/ start out the same in closures | ||
moritz | a difference is that the cursor needs to keep track of where to retry in case of a failure | ||
sorear: I don't understand "the same" as meaning "the same object", but rather "with the same information" | 15:35 | ||
masak | moritz: my point is that if $0 has a modified meaning inside of a regex closure, then $/ should have a similar modified meaning, by symmetry. | 15:36 | |
15:37
bakedb_ left,
bakedb_ joined
|
|||
moritz | masak: I was talking about $0 as in (\d+)$0 or so when I talked about modified meaning | 15:38 | |
not about regex closures | |||
hzhnh z7 | |||
masak | why would there be a difference? in both case I want to talk about the match-created-so-far. | 15:39 | |
PerlJam | S05:4504 has some interesting information | ||
particularly that last paragraph | 15:40 | ||
cognominal | S05 is not that long :) | ||
PerlJam | But I still don't quite grok $¢ | ||
cognominal: my copy is. It has 4528 lines | 15:41 | ||
masak | I grok Cursors by now. I don't get why it needs to have such an ugly variable name. :/ | ||
PerlJam | masak: because ¢ looks like a C and that's to remind you it's a Cursor | 15:42 | |
cognominal | it is an ackward smiley. Quite appropriate given our perplexity :) | ||
15:43
mberends left
|
|||
cognominal | $/ smiley with frowned eyebrows | 15:43 | |
PerlJam | masak: the only reason the match object isn't called $₥ or something is because / is so tightly bound to regex matches in historic perl | 15:44 | |
:-) | |||
masak | PerlJam: everything -- *everything* -- else in Perl 6 that has characters in Latin 1 but outside of ASCII, has ASCII fallbacks. except for $¢. | 15:46 | |
not that I'm sure that it'd improve the ugliness of $¢ if it did have a fallback. | 15:47 | ||
PerlJam | does it make a difference that it's so ugly? You almost never need to use it. | 15:48 | |
tadzik | ingy: heh | ||
masak | PerlJam: it's only because it's so rare that I complain about it so rarely :P | 15:49 | |
PerlJam: I'd much prefer to have it be called $*CURSOR or something. | |||
$¢ reminds me of the worst parts of Perl 5 variable naming. | 15:50 | ||
cognominal | ¢ | ||
pmurias thinks $¢ looks cute | |||
tadzik | ingy: so how did it pass the tests? | ||
sorear | masak: I don't understand your problem. Cursors *are* partially built Matches. | 15:54 | |
15:55
mberends joined
|
|||
masak | sorear: my problem, concretely, is that Niecza's output doesn't match Rakudo's for the p6eval code I entered. | 15:57 | |
masak decommutes | |||
15:57
masak left
15:58
daxim left
15:59
lichtkind left
|
|||
cognominal blames emacs for not automtically updateding the S05 buffer | 15:59 | ||
16:02
bakedb__ joined
16:05
bakedb_ left
16:06
mberends left
|
|||
im2ee | How to get length of a string? :) | 16:06 | |
mls_ | perl6: my $ex = Exception.new(); say $ex | 16:07 | |
pmurias | perl6: say "123".chars | ||
p6eval | niecza v9-32-g380d891: OUTPUT«===SORRY!===Undeclared name: 'Exception' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 685 (CORE die @ 2)  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) … | ||
..rakudo 313b68: OUTPUT«get_pmc_keyed_str() not implemented in class 'Mu' in method Str at src/gen/CORE.setting:5710 in method perl at src/gen/CORE.setting:616 in method gist at src/gen/CORE.setting:613 in sub say at src/gen/CORE.setting:4729 in <anon> at /tmp/cj1NTKUUjV:1 in … | |||
..pugs: OUTPUT«*** No such subroutine: "&Exception" at /tmp/fO6bUuwq4R line 1, column 5-25» | |||
pugs, rakudo 313b68, niecza v9-32-g380d891: OUTPUT«3» | |||
PerlJam | im2ee: in bytes? code points? characters? what? ;) | 16:08 | |
im2ee | PerlJam, characters :) | ||
pmurias | im2ee: .chars for characters | ||
im2ee | pmurias++, thanks | ||
:) | |||
tadzik | nom: say "ziąb".bytes | 16:09 | |
p6eval | nom 313b68: OUTPUT«5» | ||
jnthn home | 16:10 | ||
moritz: OK, will look over changelog | 16:11 | ||
16:12
MayDaniel joined
|
|||
sorear | perl6: say "ziąb".bytes | 16:13 | |
p6eval | niecza v9-32-g380d891: OUTPUT«8» | ||
..pugs: OUTPUT«decodeUTF8': bad data: '\261'5» | |||
..rakudo 313b68: OUTPUT«5» | |||
bbkr | niecza response is interesting... | 16:19 | |
tadzik | niecza: say "ąśćźż".bytes | 16:20 | |
p6eval | niecza v9-32-g380d891: OUTPUT«10» | ||
tadzik | niecza: say "ąśćźz".bytes | ||
p6eval | niecza v9-32-g380d891: OUTPUT«10» | ||
tadzik | as if it was in utf-16 | ||
bbkr | indeed. whch is IMO not a bug, spec does not force internal string representation, or does it? | 16:21 | |
cognominal | I see a file named SAFE.setting, I expected that would define the default in the command line and S19 seems to say so. So how to enable that safe mode | 16:24 | |
16:24
Kivutarrr joined
16:27
mj41 left
|
|||
JimmyZ | --setting=SAFE ? | 16:28 | |
16:28
mberends joined
|
|||
im2ee | b: say "abc".split(//); | 16:28 | |
p6eval | b 1b7dd1: OUTPUT«===SORRY!===Null regex not allowed at line 22, near ");"» | ||
im2ee | So, how can i do this? :) | ||
JimmyZ | rakudo: say "abc".split(/''/); | 16:29 | |
p6eval | rakudo 313b68: OUTPUT« a b c » | ||
im2ee | Ehh.. Right, thanks. :) | ||
JimmyZ++ | |||
JimmyZ | rakudo: say "abc".split(''); | ||
p6eval | rakudo 313b68: OUTPUT«a b c» | ||
jnthn | rakudo: say "abc".comb | 16:31 | |
p6eval | rakudo 313b68: OUTPUT«a b c» | ||
16:31
pmurias left
|
|||
jnthn | cognominal: --setting=SAFE, as JimmyZ++ mentioned | 16:31 | |
[Coke] | +1 on renaming $c^H/ to something more verbosely ascii. | ||
jnthn | [Coke]: $/.CURSOR :) | ||
jnthn always types that rather than figuring out how to type...the other thing :) | |||
[Coke] | "why do we even HAVE that variable?" | 16:32 | |
</emperor's new groove> | |||
mls_ | jnthn: is there a pirop to test if a PMC is a sixmodelobject? | ||
16:32
dakkar left
|
|||
JimmyZ | there are two, but I forgot which is better | 16:33 | |
cognominal | JimmyZ++, jnthn++ | 16:35 | |
jnthn | mls_: No, though pir::isa($obj, 'SixModelObject') will work. Where do you need to do taht though? | ||
mls_: I've been trying quite hard to not ever do that so far. | 16:36 | ||
mls_ | I want to test if $!ex has been set in an exception. | ||
There's probably a better way to do it | |||
it get's initialized with Mu and later overwritten with the parrot exception | |||
jnthn | mls_: Does if $!ex { ... } not do it? | ||
16:37
MayDaniel left
|
|||
[Coke] | I could use some manual uploads of rakudo smoke test files. (feather.perl6.nl:2653/rakudo) | 16:37 | |
jnthn | nom: if pir::new('Exception') { say "yes" } | ||
p6eval | nom 313b68: OUTPUT«yes» | ||
mls_ | That didn't work for some reason | ||
jnthn | nom: if Mu { say "yes" } | ||
p6eval | nom 313b68: ( no output ) | ||
jnthn | mls_: Hm...it'd be good to know what the reason is ;) | ||
mls_ | Hmm. I'll investigate | ||
jnthn | mls_: It kinda should. | ||
sorear | tadzik: exactly, niecza uses utf-16 (doesn't handle supplemenaries very well at all yet, though) | ||
jnthn | Unless Exception PMC's get_bool is very interesting. | ||
sorear | #phasers in 53? | ||
[Coke] | (the rakudo_test_run.tar.gz file generated by "spectest_smolder") | 16:38 | |
16:39
JimmyZ left,
alester joined,
mykhal left
16:41
packetknife joined
|
|||
[Coke] | sorear: that sounds familiar. (report) | 16:41 | |
sorear++ | 16:42 | ||
jnthn | "Making Niecza work more like Rakudo" :P | ||
jnthn is happy to see some convergence there. | |||
sorear | "Hey, I can't be doing it better ALL the time" :P | 16:43 | |
but yes, convergence++ | |||
jnthn | :) | 16:44 | |
16:48
birdwindupbird left
|
|||
flussence | (I hope uploading 50 of these tar.gz files doesn't break that server...) | 16:51 | |
[Coke] | flussence: heh. it might. | 16:53 | |
mls_ | jnthn: arhg, the code tricked me. $!ex works like it should | ||
[Coke] | please let me know if anything goes wonky. Obviously the GUI is just a shell at this point. | ||
I hate my $!ex | |||
flussence++ | 16:54 | ||
flussence | it's giving me a server error now and again, most are going through though | ||
[Coke] | whoa, holy crap. thanks. ;) | ||
hopefully I can make some pretty pictures now ;) | |||
flussence | there you go, a bunch of files for commit IDs ~~ /^f/ | 16:56 | |
16:58
mykhal joined
|
|||
[Coke] | ^f ?> | 17:00 | |
flussence | I couldn't be bothered coming up with a clever way to upload only a few of them, and the files are all named $commit_id.tar.gz :) | ||
17:07
REPLeffect left
|
|||
mls_ | jnthn: do you know of any problems with classes and eval? | 17:11 | |
17:12
mberends left
|
|||
jnthn | mls_: Not off hand. | 17:12 | |
mls_: I fixed all the ones I did know about already. :) | |||
mls_ | In t/spec/S04-exception-handlers/catch.t line 106... there's an "eval '..." | 17:13 | |
I need to add a declaration of "class Naughty" into it so that the test works | |||
Otherwise I get a "Missing block at line ..." error | 17:14 | ||
jnthn | mls_: That does sound a little adrift. | ||
17:15
MayDaniel joined
|
|||
TimToady | phenny: tell masak you can't simultaneously argue that it's too complex and that it's easy to do with <?after> :) | 17:17 | |
phenny | TimToady: I'll pass that on when masak is around. | ||
jnthn | nom: class Foo { }; eval 'say Foo' | ||
p6eval | nom 313b68: OUTPUT«Foo()» | ||
jnthn | nom: { class Foo { } }; eval 'say Foo' | 17:18 | |
p6eval | nom 313b68: ( no output ) | ||
jnthn | aha | ||
diakopter | lol "you are not TimToady who usually can ague everything both ways :)" | 17:19 | |
17:19
REPLeffect joined
|
|||
TimToady | I can argue things both ways, but masak++ can't. :) | 17:19 | |
jnthn | mls_: I fear eval is making itself a fresh view of GLOBAL. | 17:20 | |
Hm, wonder what we're meant to do there. | |||
:) | |||
diakopter | I'll ague you | ||
mls_ | yes, seems so. | ||
;) | |||
jnthn | Guess eval should just grab the GLOBAL already in effect. | 17:21 | |
TimToady | eval can probably just use the existing GLOBAL; it doesn't have to make a GLOBALish to be linked later, like separately compiled units need | ||
buubot_backup | TimToady: ERROR: "use" not allowed in expression at (eval 20) line 1, at end of line syntax error at (eval 20) line 1, near "just use the " | ||
jnthn | TimToady: wfm | 17:22 | |
TimToady | eval die | ||
buubot_backup | TimToady: ERROR: Died at (eval 20) line 1. | ||
jnthn | eval unlink $0 # :P | ||
buubot_backup | jnthn: 0 | ||
diakopter | eval "alive" | 17:23 | |
buubot_backup | diakopter: alive | ||
diakopter | eval: use v6; | 17:24 | |
buubot_backup | diakopter: ERROR: Perl v6.0.0 required--this is only v5.14.1, stopped at (eval 20) line 1. BEGIN failed--compilation aborted at (eval 20) line 1. | ||
17:25
Chillance joined
|
|||
mls_ | ok, current state of exception patch: gist.github.com/1232725 | 17:28 | |
I've resurrected my old rethrow_skipnextctx patch (the one pm didn't like) | |||
seems to work well, it doesn't catch it's own exceptions and CATCH works like iy should | 17:29 | ||
(i.e. when {} and the automatic rethrow works) | |||
I'm currently playing with die() and exception payloads. | 17:30 | ||
TimToady: did you backlog the discussion about exception object creation | |||
S04-exception-handlers/catch.t contains 'die Naughty("error")'. Is that some old relict or supposed to work? | 17:31 | ||
sorear | jnthn: er. { class Foo { } }; eval 'say Foo' # SHOULD fail, imo | ||
17:32
mberends joined
|
|||
sorear | jnthn: within the eval, GLOBAL::Foo would be valid, but Foo is a lexical alias and only valid within the braces | 17:32 | |
dalek | kudo/nom: a979ded | jnthn++ | docs/ChangeLog: Add some ChangeLog entries. |
17:33 | |
jnthn | sorear: I think for packages we're allowed to go looking in GLOBAL too | ||
sorear: Sub dispatch is lexical only | |||
sorear: But the packages can be resolved by looking in GLOBAL at compile time. | |||
mls_ | perl6: { class Foo { } } ; class Foo {} | ||
p6eval | niecza v9-32-g380d891: OUTPUT«===SORRY!===Two definitions found for symbol ::GLOBAL::Foo first at /tmp/Vbk7JocepZ line 1 second at /tmp/Vbk7JocepZ line 1 at /tmp/Vbk7JocepZ line 1:------> { class Foo { } } ; class Foo ⏏{}Nominal type check … | ||
..pugs: ( no output ) | |||
..rakudo 313b68: OUTPUT«===SORRY!===Illegal redeclaration of class 'Foo' at line 1, near "{}"» | |||
jnthn | sorear: TimToady may feel differently of course. :) | 17:34 | |
std: { class Foo { } }; Foo.new | |||
p6eval | std c22b2ee: OUTPUT«ok 00:01 118m» | ||
jnthn | That comes back as OK in STD though. | ||
sorear | jnthn: I like to think of dispatch and name resolution as orthogonal things | ||
jnthn | Which is what I was going on there. | ||
sorear | Sub dispatch starts with a Sub or MultiSub object, not a Str | ||
jnthn | sorear: That's an excessively restricted view. | 17:35 | |
sorear | wha? | ||
jnthn | Method dispatch certainly starts (v-table optimizations aside) with a string method name. | ||
sorear | yes but that's method dispatch | ||
17:36
masak joined
|
|||
masak | #phasers in 128? | 17:36 | |
phenny | masak: 17:17Z <TimToady> tell masak you can't simultaneously argue that it's too complex and that it's easy to do with <?after> :) | ||
jnthn | masak: #phasers NOW! | ||
sorear | masak: -6, iirc | ||
masak | o.O | ||
masak is so totally unprepared! | |||
jnthn | Or so I was told ;) | ||
masak: Just make stuff up :P | |||
mls_ | afk -> home... (enjoy phasers!) | 17:37 | |
masak | what kind of starting time is that? UTC 17:46? | ||
sorear | 1730 | ||
masak | ah. | ||
jnthn | mls_: Thanks...will look over the patch :) | ||
mls_ | work in progress, mind you | ||
thanks | 17:38 | ||
sorear | jnthn: it seems to me that foo(1,2,3) should always mean the same as my $v = &foo; $v.(1,2,3) | 17:39 | |
jnthn | sorear: I don't disagree :) | ||
sorear | I don't like the idea that dispatch influences name resolution | ||
jnthn | I'm really not sure what you're getting at :/ | 17:40 | |
masak | TimToady: "too complex" as in "too complex a feature to provide in the grammar engine". the fact that it's easy to do with <?after> just makes the complex feature less necessary. | ||
17:40
pernatiy left
|
|||
sorear | 10:34 < sorear> Sub dispatch starts with a Sub or MultiSub object, not a Str | 17:40 | |
10:35 < jnthn> sorear: That's an excessively restricted view. | |||
I'm trying to figure out what your view is | |||
17:41
jfried left,
jfried joined
|
|||
jnthn | sorear: I think it's fair to include looking up &foo as part of the process called "dispatch". But I'm not sure it's an important distinction really. | 17:41 | |
17:41
bakedb__ left
17:47
packetknife left
|
|||
masak | TimToady: but yeah, I see what you mean. maybe it's trivial to map from ** -$N to <?after>. in which case I simply won't care about the feature :P | 17:47 | |
17:51
mj41 joined
|
|||
moritz | nqp: say 'foo'.encoding | 17:55 | |
p6eval | nqp: OUTPUT«Confused at line 1, near "say 'foo'."current instr.: 'nqp;HLL;Grammar;panic' pc 23698 (src/stage2/gen/NQPHLL.pir:6361) (src/stage2/gen/NQPHLL.pm:329)» | ||
moritz | nqp: say('foo'.encoding) | ||
p6eval | nqp: OUTPUT«Method 'encoding' not found for invocant of class 'String'current instr.: '_block1000' pc 36 ((file unknown):36) (/tmp/Y8x1oHyWHs:1)» | ||
17:56
Kivutarrr left,
jaldhar left
18:01
frhodes_ joined
18:03
frhodes left
18:06
mkramer joined
|
|||
moritz | nqp: set__vPII(1, 1, 1, 1) | 18:10 | |
p6eval | nqp: OUTPUT«Could not find sub set__vPIIcurrent instr.: '_block1000' pc 33 ((file unknown):34) (/tmp/mnpyek54YG:1)» | ||
moritz | nqp: pir::set__vPII(1, 1, 1, 1) | 18:11 | |
p6eval | nqp: OUTPUT«error:imcc:The opcode 'set_p_i_i_i' (set<4>) was not found. Check the type and number of the arguments in file '(file unknown)' line 45» | ||
moritz | nqp: pir::set__vPII(1, 1, 1) | ||
p6eval | nqp: OUTPUT«error:imcc:The opcode 'set_p_i_i' (set<3>) was not found. Check the type and number of the arguments in file '(file unknown)' line 40479050» | ||
[Coke] | flussence: did you write a script to do the upload? | 18:12 | |
(back from meetings) | |||
18:12
Trashlord left
|
|||
im2ee | Ehh, i forger - what i should use instead of # in perl5 ( to know last index of array)? :) | 18:13 | |
jnthn | .end | ||
im2ee | jnthn++, thanks. :) | ||
flussence | [Coke]: just a curl one-liner | 18:14 | |
18:14
packetknife joined
|
|||
[Coke] | sweet | 18:14 | |
18:15
espadrine left
18:16
Trashlord joined
|
|||
colomon | doh, missed #phasers | 18:16 | |
moritz | colomon: not yet | 18:17 | |
colomon | is it in 11 min? | 18:19 | |
tadzik | I thought I'm late | ||
sorear | colomon: it started 49 minutes ago but it's not quite over | ||
PerlJam | #phasers starts at 1730 UTC, it's currently 1820 | 18:20 | |
colomon now has to track EDT, Newfoundland time, and UTC on Wednesdays. :) | 18:21 | ||
sorear | Newfoundland time, why? | ||
and is tracking UTC on Wednesdays that much harder than tracking it on Tuesdays? | |||
colomon | sorear: music lesson with a Newfoundlander via Skype. | 18:23 | |
18:27
am0c joined
|
|||
[Coke] | does rakudo transcode a lot? | 18:28 | |
18:28
am0c left
|
|||
[Coke] | #parrot is asking. | 18:28 | |
.. music lessons over skype? huh. | |||
colomon | [Coke]: works quick nicely | 18:30 | |
tadzik | interesting | ||
colomon | *quite | ||
18:34
kaleem joined
|
|||
[Coke] wonders if calling his 14 year old nemo is going to stick. (broke his collarbone this week, so he has a gimpy arm.) | 18:36 | ||
TimToady | masak: re irclog.perlgeek.de/perl6/2011-09-21#i_4458695, $op.$ck is hard ref only, while $op."$ck" is soft ref only | ||
18:37
am0c joined
|
|||
TimToady | s/soft/sym/ | 18:37 | |
masak | ok. makes sense. | 18:39 | |
18:41
risou_awy is now known as risou
18:45
birdwindupbird joined
|
|||
ingy | tadzik: it didn't! | 18:45 | |
tadzik | eek | ||
18:45
donri left
18:46
donri joined,
birdwindupbird left
|
|||
ingy | moritz: I had a great idea. Pegex::Compiler::Emitter::P6Rules | 18:46 | |
should be trivial to write | |||
18:48
wamba joined
|
|||
pmichaud | sorry I've missed #phasers -- I was unexpectedly commandeered for the afternoon :-| | 18:48 | |
18:54
sayu left
|
|||
[Coke] | pmichaud: o/ . o O (Hope everything's OK!) | 18:55 | |
pmichaud | things are overall fine; just very hectic around the house at the moment | ||
18:56
MayDaniel left
19:05
kaleem left
|
|||
moritz | rakudo: say (102, 111, 111).chrs | 19:10 | |
p6eval | rakudo a979de: OUTPUT«Method 'chrs' not found for invocant of class 'Parcel' in <anon> at /tmp/xX_DUeeBSW:1 in <anon> at /tmp/xX_DUeeBSW:1» | ||
moritz | rakudo: say (102, 111, 111).list.chrs | ||
p6eval | rakudo a979de: OUTPUT«foo» | ||
moritz | nqp: say(pir::find_encoding__is('UTF-8')) | 19:11 | |
p6eval | nqp: OUTPUT«encoding 'UTF-8' not foundcurrent instr.: '_block1000' pc 24 ((file unknown):34) (/tmp/EB3mumY1_0:1)» | ||
moritz | nqp: say(pir::find_encoding__is('utf-8')) | ||
p6eval | nqp: OUTPUT«encoding 'utf-8' not foundcurrent instr.: '_block1000' pc 24 ((file unknown):34) (/tmp/5FscBLnqSf:1)» | ||
moritz | nqp: say(pir::find_encoding__is('utf8')) | ||
p6eval | nqp: OUTPUT«3» | ||
19:14
risou is now known as risou_awy
19:15
risou_awy is now known as risou
19:24
am0c left
19:27
pernatiy joined
|
|||
masak | rakudo: my @dict = <a b c>; say (@dict X @dict X @dict)».join | 19:28 | |
p6eval | rakudo a979de: OUTPUT«a a a a a b a a c a b a a b b a b c a c a a c b a c c b a a b a b b a c b b a b b b b b c b c a b c b b c c c a a c a b c a c c b a c b b c b c c c a c c b c c c» | ||
masak | hm. | ||
rakudo: my @dict = <a b c>; say .join for @dict X @dict X @dict | |||
p6eval | rakudo a979de: OUTPUT«aaaaabaacabaabbabcacaacbaccbaababbacbbabbbbbcbcabcbbcccaacabcaccbacbbcbcccaccbccc»… | ||
masak | ah. | ||
TimToady | you're looking for lol maybe? | 19:29 | |
masak | seems like. | ||
TimToady | by the evidence, lol seems to be HHF | ||
masak | :/ | 19:30 | |
TimToady | if someone would just implement .tree, it'd be LHF :) | 19:31 | |
19:31
risou is now known as risou_awy
|
|||
moritz | .tree? | 19:31 | |
TimToady | S02:4553 | 19:32 | |
might be misnamed | 19:33 | ||
masak | rakudo: multi combs(@, 0) { "" }; multi comb { combs(@^dict, $^n - 1) X~ @dict }; .say for combs(<a b c>, 4) | ||
p6eval | rakudo a979de: OUTPUT«No applicable candidates found to dispatch to for 'combs'. Available candidates are::(Positional, Int) in sub combs at /tmp/fqPfCLCp36:1 in <anon> at /tmp/fqPfCLCp36:1 in <anon> at /tmp/fqPfCLCp36:1» | ||
masak | rakudo: multi combs(@, 0) { "" }; multi combs { combs(@^dict, $^n - 1) X~ @dict }; .say for combs(<a b c>, 4) | ||
p6eval | rakudo a979de: OUTPUT«aaaaaaabaaacaabaaabbaabcaacaaacbaaccabaaabababacabbaabbbabbcabcaabcbabccacaaacabacacacbaacbbacbcaccaaccbacccbaaabaabbaacbabababbbabcbacabacbbaccbbaabbabbbacbbbabbbbbbbcbbcabbcbbbccbcaabcabbcacbcbabcbbbcbcbccabccb… | ||
masak | \o/ | 19:34 | |
im2ee | \o/ | ||
masak | im2ee: want me to walk you through it? | ||
TimToady | rakudo: my $x = "aaaa"; .say for $x++ | ||
p6eval | rakudo a979de: OUTPUT«aaaa» | ||
im2ee | masak, wait, i'm reading :) | ||
masak | ok :) | ||
TimToady | rakudo: my $x = "aaaa"; .say for $x ... * | ||
p6eval | rakudo a979de: OUTPUT«aaaaDecrement out of range in method pred at src/gen/CORE.setting:2706 in sub coro at src/gen/CORE.setting:3821 in method reify at src/gen/CORE.setting:3790 in method reify at src/gen/CORE.setting:3594 in method reify at src/gen/CORE.setting:3594 in me… | 19:35 | |
TimToady | heh | ||
rakudo: my $x = "aaaa"; .say for $x ... 'zzzz' | |||
im2ee | masak, yes.. Could You? | ||
p6eval | rakudo a979de: OUTPUT«(timeout)» | ||
masak | im2ee: gladly :) | ||
TimToady | something looks unlazy | ||
masak | im2ee: so, 'multi' means that I can have several subs with the same name, but different signatures. | ||
im2ee: here, I have two of them. the first takes an array and the Int 0. | 19:36 | ||
TimToady | rakudo: $_ = "aaaa"; .++.say while 1 | ||
p6eval | rakudo a979de: OUTPUT«===SORRY!===Method 'unshift' not found for invocant of class 'Undef'» | ||
masak | im2ee: the second has an implicit signature. that's what the '^' characters are doing. | ||
TimToady | o_O | ||
masak | im2ee: now, this is a simple recursion. the first multi represents the base case: all combinations of length 0 of some alphabet is the empty string. | 19:37 | |
TimToady | b: $_ = "aaaa"; .++.say while 1 | ||
p6eval | b 1b7dd1: OUTPUT«===SORRY!===Method 'unshift' not found for invocant of class 'Undef'» | ||
TimToady | niecza: $_ = "aaaa"; .++.say while 1 | ||
p6eval | niecza v9-32-g380d891: OUTPUT«(timeout)aaaaaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabaaabbaabcaabdaabeaabfaabgaabhaabiaabjaabkaablaabmaabnaaboaabpaabqaabraabsaabtaabuaabvaabwaab… | ||
moritz | gist.github.com/1233070 # fake Buf class for nom, for your consideration. | 19:38 | |
TimToady | pugs: $_ = "aaaa"; .++.say while 1 | ||
masak | im2ee: to get all combinations of strings of length $n, just generate all combinations of length one character shorter, and then append all possible characters from the dictionary to all possible such strings. | ||
p6eval | pugs: OUTPUT«(timeout)aaaaaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabaaabbaabcaabdaabeaabfaabgaabhaabiaabjaabkaablaabmaabnaaboaabpaabqaabraabsaabtaabuaabvaabwaabxaabyaabzaaca… | ||
19:38
daniel-s left
|
|||
TimToady | looks like rakudo has a long-standing bug here... | 19:38 | |
masak | im2ee: the 'X~' operator means "concatenate all against all". | ||
im2ee: is this making any sense? | 19:39 | ||
19:39
zby_home joined
|
|||
TimToady | rakudo: $_ = "aaaa"; $_++.say while 1 | 19:40 | |
moritz | I'm sure tehre's a advent claendar post that explains meta ops in more details | ||
p6eval | rakudo a979de: OUTPUT«(timeout)aaaaaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabaaabbaabcaabdaabeaabfaabgaabhaabiaabjaabkaablaabmaabnaaboaabpaabqaabraabsaabtaabuaabvaabwaabxaabya… | ||
im2ee | masak, it is awesome! It's clear now. but i have some questions. :) | ||
masak | moritz: at least one. | ||
im2ee | Can I? :) | ||
Woodi | do sub with optional params is slower then with declared ? | ||
TimToady | I guess rakudo doesn't like .++ | ||
masak | im2ee: yes, go ahead :) | ||
rakudo: $_ = 4; .++; .say | 19:41 | ||
p6eval | rakudo a979de: OUTPUT«===SORRY!===Method 'unshift' not found for invocant of class 'Undef'» | ||
masak submits rakudobug | |||
tadzik | Woodi: what do you mean by "declared"? | 19:42 | |
im2ee | So. my program goes from a up to ccc :) | ||
19:42
am0c joined
|
|||
masak | oh! | 19:42 | |
im2ee | a, b, c, aa, ab, ac, ba,bb,bc and so on | ||
masak | I see. | ||
Woodi | known: sub a( $p1, $p2 ) | ||
tadzik | and, I don't think it's what you should think about, even given the current performance on most of the implementations | ||
im2ee | So it's something else, but it's awesome! :) | ||
b: say "aaaa".."aaad"; | |||
19:42
perlygatekeeper joined
|
|||
p6eval | b 1b7dd1: OUTPUT«aaaaaaabaaacaaad» | 19:42 | |
im2ee | b: say "aaaa".."aabb"; | 19:43 | |
p6eval | b 1b7dd1: OUTPUT«aaaaaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabaaabb» | ||
tadzik | seems that there's pretty many of us, Poles on this channel these days | ||
masak | rakudo: multi combs(@, 0) { "" }; multi combs { combs(@^dict, $^n - 1) X~ @dict }; (.say for combs(<a b c>, $_)) for 1..4 | ||
p6eval | rakudo a979de: OUTPUT«abcaaabacbabbbccacbccaaaaabaacabaabbabcacaacbaccbaababbacbbabbbbbcbcabcbbcccaacabcaccbacbbcbcccaccbcccaaaaaaabaaacaabaaabbaabcaacaaacbaaccabaaabababacabbaabbbabbcabcaabcbabccacaaacabacacacbaacbbacbcacca… | ||
masak | im2ee: there :P | ||
Woodi | :) but my Righe Alt not working as expected here :) | ||
masak | fixed it. | ||
im2ee | masak, so.. My question is. Could You show me some examples of how works ^? | 19:44 | |
masak | im2ee: sure! | ||
im2ee | masak, fantastic. :) | ||
masak | rakudo: .say for <a b c> X~ <d e f> | ||
p6eval | rakudo a979de: OUTPUT«adaeafbdbebfcdcecf» | ||
tadzik | im2ee: I see you capitalizing You, as you'd do with Cię :) | ||
masak | im2ee: look at that output. | ||
im2ee: do you see how it works? | |||
im2ee | tadzik, right :) | ||
tadzik | im2ee: been there, done that too :P | 19:45 | |
masak | rakudo: .say for "OH", "AH" X~ " " X~ "HAI", "NOES" | ||
p6eval | rakudo a979de: OUTPUT«OH HAIOH NOESAH HAIAH NOES» | ||
im2ee | masak, i see, but why .say instead of say? :) | ||
masak | im2ee: $_.say | ||
im2ee | Oh! right! | ||
masak | im2ee: in Perl 5, you just go "say". | ||
in Perl 6, you have to be more exact :) | |||
we don't like to do implicit $_ | 19:46 | ||
im2ee | tadzik, is it wrong here? :) | ||
masak | well, except in the sense of .say :P | ||
tadzik | im2ee: seems so, English people don't capitilize Ci or Cię | ||
seemed weird to me too ;) | |||
I think one of my blogs posts is still full of those | |||
masak | im2ee: it's technically correct to say "You", but it's neither common nor necessary. | ||
the familiarity it projects isn't called for, more or less. | 19:47 | ||
er, s/familiarity/formality/ | |||
im2ee | masak, so, i understand .say. Whats next? :) | ||
19:47
wallberg joined
|
|||
tadzik | ttjjss.wordpress.com/2010/08/09/so-...-6-module/ this one :P | 19:47 | |
masak | im2ee: placeholder variables, probably. | ||
im2ee | I know how works X and Z operators. | ||
19:47
am0c left
|
|||
masak | rakudo: sub foo($a, $b) { say "$a is $b!" }; foo "cake", "tasty" | 19:48 | |
p6eval | rakudo a979de: OUTPUT«cake is tasty!» | ||
masak | rakudo: sub foo { say "$^a is $^b!" }; foo "cake", "tasty" | ||
p6eval | rakudo a979de: OUTPUT«cake is tasty!» | ||
masak | im2ee: so you see, I can put the parameters to &foo "inside". | ||
they're picked up and populated alphabetically. | 19:49 | ||
im2ee | rakudo: sub foo { say "$^a is $^b and $^c" }; foo "cake", "tasty", "so on"; | ||
p6eval | rakudo a979de: OUTPUT«cake is tasty and so on» | ||
masak | :) | ||
rakudo: sub foo { say "$^c is $^a and $^b" }; foo "cake", "tasty", "so on"; | |||
p6eval | rakudo a979de: OUTPUT«tasty is cake and so on» | ||
masak | o.O | ||
Woodi | tadzik: and where to put stuf like scripts for performance testing (but not to install like in bin) ? | ||
masak submits rakudobug | |||
TimToady | rakudo: sub foo { say "$^first is $^second and $^third" }; foo "cake", "tasty", "so on"; | 19:50 | |
p6eval | rakudo a979de: OUTPUT«cake is tasty and so on» | ||
tadzik | Woodi: wherever you want them. Unknown directories, like 'donkey' will simply be ignored | ||
Woodi | k, just will be skipped | ||
tadzik | also, the article is a bit outdated, you use META.info these days | 19:51 | |
im2ee | masak, you used $^dictonary and $^n in You one liner :) | ||
So i can use any name for them? | |||
jnthn | rakudo: ({ say "$^b $^a" })(1, 2); | ||
p6eval | rakudo a979de: OUTPUT«2 1» | ||
TimToady | rakudo: sub foo { say "$^first is $^second and $^third" }; foo "cake", "tasty", "so on"; | ||
p6eval | rakudo a979de: OUTPUT«cake is tasty and so on» | ||
masak | im2ee: yes, as long as the order is right. | 19:52 | |
19:52
packetknife left
|
|||
jnthn | rakudo: ({ say "$^c $^b $^a" })(1, 2, 3); | 19:52 | |
p6eval | rakudo a979de: OUTPUT«3 2 1» | ||
jnthn | rakudo: ({ say "$^b $^a $^c" })(1, 2, 3); | ||
p6eval | rakudo a979de: OUTPUT«2 1 3» | ||
im2ee | masak, alphabetic order, right? | ||
jnthn | Yup | ||
TimToady | unicodabetical, but yeah | ||
im2ee | Ok, so it's clear i think. | ||
jnthn | rakudo: ({ say "$^c $^a $^b" })(1, 2, 3); | 19:53 | |
p6eval | rakudo a979de: OUTPUT«2 1 3» | ||
im2ee | rakudo: say <a b c> Z <d e f>; | ||
p6eval | rakudo a979de: OUTPUT«a d b e c f» | ||
im2ee | rakudo: say <a b c> X <d e f>; | ||
p6eval | rakudo a979de: OUTPUT«a d a e a f b d b e b f c d c e c f» | ||
jnthn | er...huh. | ||
TimToady | * vs ** | 19:54 | |
masak | jnthn: yeah. submitting that one now. | ||
TimToady | is .++ in there yet? | ||
masak | aye. | 19:55 | |
want the URL? | |||
TimToady | nope :) | ||
masak | :) | ||
TimToady | I just like bugging you | ||
jnthn | .++ ? | ||
masak | oh, come on! | ||
:P | |||
TimToady | rakudo: $_ = "aaaa"; .++.say while 1 | ||
p6eval | rakudo a979de: OUTPUT«===SORRY!===Method 'unshift' not found for invocant of class 'Undef'» | 19:56 | |
jnthn | rakudo: $_ = "aaaa"; $_.++.say while 1 | ||
p6eval | rakudo a979de: OUTPUT«Could not find sub &postfix:<.> in <anon> at /tmp/572iM_2DAt:1 in <anon> at /tmp/572iM_2DAt:1» | ||
jnthn | hm | ||
b: $_ = "aaaa"; $_.++.say while 1 | |||
p6eval | b 1b7dd1: OUTPUT«Could not find sub &postfix:<.> in main program body at line 22:/tmp/w_RVbwa2Qw» | ||
jnthn | ah, not a regression. | ||
TimToady | a transgression :P | 19:57 | |
im2ee | Hmm, what does .++? ;> | ||
TimToady | pugs: $_ = "aaaa"; .++.say while 1 | ||
p6eval | pugs: OUTPUT«(timeout)aaaaaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabaaabbaabcaabdaabeaabfaabgaabhaabiaabjaabkaablaabmaabnaaboaabpaabqaabraabsaabtaabuaabvaabwaabxaabyaabzaaca… | ||
benabik | .++ looks odd to me. It seems to mean that ++ is a method. | 19:58 | |
Which I can dig, I've used Scala. | |||
TimToady | any postfix may be written with a dot | ||
masak | im2ee: $_++ | ||
TimToady | (except alphabetic ones) | ||
masak | TimToady: instead of 'while 1', there should be a statement-modifying 'loop' :P | 19:59 | |
TimToady | no | ||
masak | prolly not. | ||
jnthn | Just call it "forever" | ||
masak | ooh | ||
jnthn | $_++ forever; | ||
masak | there will be modules! | 20:00 | |
TimToady | someone needs to write macros | ||
jnthn | beer() forever; | ||
PerlJam | heh | ||
masak | -Ofun forever; | ||
benabik | Ah. methods have to start with <alpha>, so .++ can never be a method. (Yes?) | ||
20:01
mkramer left
|
|||
TimToady | correct, and .i is a method, not the i postfix | 20:01 | |
perl6: my $real = 42; say $real\i | 20:02 | ||
p6eval | niecza v9-32-g380d891: OUTPUT«0+42i» | ||
..rakudo a979de: OUTPUT«0 + 42i» | |||
..pugs: OUTPUT«***  Unexpected "i" expecting "(" or "." at /tmp/7vZDu5oWr8 line 1, column 26» | |||
TimToady | that works though | ||
benabik | I've been doing too much set theory… I read that as "set difference of real and i" | ||
TimToady | .oO(the set of all subsets of set theory that are too much...) |
20:04 | |
tadzik | what is that backslash doing in there? | ||
masak | rakudo: multi fac(0) { 1 }; multi fac(Int $n) { $n * fac $n - 1 }; say fac 5 | ||
p6eval | rakudo a979de: OUTPUT«120» | ||
TimToady | it's very short unspace | ||
tadzik | I see | ||
jnthn | literally un- | ||
benabik | nom: my $real = 42; say $real i # does this parse? | ||
tadzik | un'' | ||
p6eval | nom a979de: OUTPUT«===SORRY!===Confused at line 1, near "say $real "» | ||
TimToady | perl6: my $real = 42; say $real\ i | 20:05 | |
benabik | Didn't think so. | ||
p6eval | niecza v9-32-g380d891: OUTPUT«0+42i» | ||
..rakudo a979de: OUTPUT«0 + 42i» | |||
..pugs: OUTPUT«***  Unexpected "i" expecting "." at /tmp/vT6E4da7kU line 1, column 33» | |||
benabik | Poor pugs. I'm seeing more and more errors from it these days. | ||
TimToady | spec rot :) | ||
masak | yeah. it's a red queen situation. | 20:06 | |
TimToady | nap & | 20:09 | |
masak | rakudo: say (<a b c> X <d e f>).perl | 20:10 | |
p6eval | rakudo a979de: OUTPUT«(("a", "d"), ("a", "e"), ("a", "f"), ("b", "d"), ("b", "e"), ("b", "f"), ("c", "d"), ("c", "e"), ("c", "f")).list» | ||
masak | rakudo: say (<a b c> X~ <d e f>).perl | ||
p6eval | rakudo a979de: OUTPUT«("ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf").list» | ||
benabik | masak: red queen? | 20:14 | |
masak | benabik: en.wikipedia.org/wiki/Red_Queen%27s_Hypothesis | 20:15 | |
benabik | Ooh, wikipedia. I don't need to get work done this afternoon… Wait, I do. Drat. | 20:16 | |
masak | :P | ||
benabik | masak++: Hadn't heard that one. Very interesting. | ||
masak | benabik: basically, if you stand still, you lose the race. | ||
because everything else is moving forwards. | 20:17 | ||
oh dang, that was a really bad explanation :P | |||
benabik | masak: I did skim it. That's just my first response to WP links. I get lost in encyclopedias. | ||
masak | you have to *run* just to keep your place. that's better. | ||
this is why trees are tall, for example. because all the other trees are. | 20:18 | ||
jnthn | oh meh | ||
colomon shakes his head at these kids today who don't know their Lewis Carroll. ;) | |||
tadzik | well | ||
benabik | Red Queen's Hypothesis does lead to Philosophy. | ||
tadzik | if you're eating all the time, you get fat | ||
masak | colomon: I could've found the quote, true. | ||
benabik | colomon: I've read it, it just doesn't pop to mind when I'm doing networking homework. | ||
jnthn | Turns out iterating an RPA and changing it at the same time causes issues. | ||
20:21
bbkr1 left
|
|||
jnthn | Like...being given back an undef instead of the expected value... :/ | 20:22 | |
It then auto-vivs, gets an empty variable name, and thus the placeholder insert gets screwed up. | |||
jnthn just changes it to use splice | 20:23 | ||
benabik | modifying collections you're iterating on is generally hazardous. | ||
jnthn | yeah | ||
It's more efficient the splice way. | |||
masak | rakudo: my &c = { return "" if !$^a; @^d X~ c $a - 1, @d }; (.say for .&c <a b c>) for ^5 | ||
p6eval | rakudo a979de: OUTPUT«===SORRY!===Confused at line 1, near "(.say for "» | ||
masak | rakudo: my &c = { return "" if !$^a; @^d X~ c $a - 1, @d }; (.say for .&c: <a b c>) for ^5 | 20:24 | |
p6eval | rakudo a979de: OUTPUT«Too many positional parameters passed; got 4 but expected 2 in block <anon> at /tmp/bmCTWPHqtY:1 in method dispatch:<var> at src/gen/CORE.setting:670 in block <anon> at /tmp/bmCTWPHqtY:1 in method reify at src/gen/CORE.setting:3690 in method reify at src/… | ||
masak | rakudo: my &c = { return "" if !$^a; @^d X~ c $a - 1, @d }; (.say for .&c(<a b c>)) for ^5 | ||
p6eval | rakudo a979de: OUTPUT«Too many positional parameters passed; got 4 but expected 2 in block <anon> at /tmp/WqAqG1KJ9F:1 in method dispatch:<var> at src/gen/CORE.setting:670 in block <anon> at /tmp/WqAqG1KJ9F:1 in method reify at src/gen/CORE.setting:3690 in method reify at src/… | ||
masak | rakudo: my &c = { return "" if !$^a; @^d X~ c $a - 1, @d }; (.say for .&c([<a b c>])) for ^5 | ||
p6eval | rakudo a979de: OUTPUT«» | ||
masak | hm. | ||
jnthn | o.O | ||
20:24
pmichaud left,
hugme left,
jrockway_ left
|
|||
benabik wonders if he can update Colloquy's style CSS to make p6eval's text smaller for less scrolling. | 20:24 | ||
tadzik | oh, nqp doesn't build | 20:25 | |
jnthn | Just built for me. | 20:26 | |
tadzik | on the fresh parrot? | ||
jnthn | yeah | ||
tadzik | get_pointer() not implemented in class 'GLOBALish' | ||
benabik | parrot merged a branch that breaks NQP. the kill-useless-defaults branch in nqp.git fixes it. | ||
tadzik | odd | ||
jnthn | tadzik: Oh, by fresh you mean, bleeding edge? | ||
tadzik | oh, thanks | ||
jnthn | Not release one? | ||
tadzik | jnthn: yep | ||
20:26
Tene_ is now known as Tene___________
|
|||
jnthn | Right, but we don't apply that pull request just yet. | 20:26 | |
benabik | Release is fine. There was a small batch of "we can break things now!" post-release. :-D | 20:27 | |
jnthn | As we probably want the compiler release against the Parrot one. | ||
tadzik | troo | ||
20:27
mykhal left
|
|||
dalek | kudo/nom: 3b1fe55 | jnthn++ | src/Perl6/Actions.pm: Fix placeholder parameter sorting bug. |
20:30 | |
jnthn | masak: ^ | ||
If somebody could do a test and close the ticket... :) | |||
masak | jnthn++ | 20:31 | |
jnthn: so the bug was iterating (with while) and modifying at the same time? | 20:32 | ||
because otherwise the code looks identical! | |||
20:33
mykhal joined
|
|||
jnthn | masak: Doing shit in a for loop | 20:34 | |
... | |||
doing SHIFT in a for loop | |||
tadzik | jnthn: you think you'll be able to convince anybody that you didn't write that intentionally :P | 20:35 | |
jnthn | tadzik: Probably freudian :P | ||
tadzik | :P | 20:36 | |
jnthn typo'd freudian at the first attempt :S | |||
benabik | froodian slip = falling down, but looking cool while you doo. | ||
do. Bah. | |||
jnthn | :) | ||
masak | jnthn: New explanation for structural programming: "Doing shit in a for loop" :P | 20:37 | |
benabik: A Freudian slip is saying one thing but meaning your mother. | |||
20:38
wallberg left
|
|||
tadzik | doo | 20:38 | |
jnthn | .oO( If I'd typo'd *any other word* in that sentence... ) |
||
oh | |||
Rakudo day tomorrow | |||
Anybody got anything they especially want me to look at? | |||
tadzik | jnthn: we will sit silent because there'd be no topic for a conversation? :) | ||
jnthn: Buf | |||
? | |||
jnthn | Ah | 20:39 | |
tadzik: pmichaud++ has a plan for Buf. I'm happy to task steal it. But I want to find out what he had in mind first. I may be able to do that tomorrow though. | |||
tadzik | okay | ||
20:40
tomaw is now known as 5EXAAAB0J,
pmichaud joined,
hugme joined,
jrockway_ joined,
zelazny.freenode.net sets mode: +v hugme
|
|||
tadzik | I don't have anything blocking on this, I'm just pointing things out :) | 20:40 | |
20:40
5EXAAAB0J is now known as tomaw
|
|||
tadzik | jnthn: how about blizkost/zavolaj? | 20:40 | |
jnthn | tadzik: Yeah, I should really look at zavolaj soon. | ||
Actually that'd be quite a decent thing to look at tomorrow. | 20:41 | ||
tadzik | as for blizkost, I maybe mean more like :from<parrot> than anything else | ||
so basically, auto-sixmodelizing stuff I suppose | |||
jnthn | hm | 20:42 | |
Yeah | |||
There's some tricky design stuff to do there, I suspect. | |||
tadzik | I was thinking about that some time ago | ||
I believe turning every single thing passing in into a full-blown Perl 6 object could be quite slowish | |||
jnthn | Probably, and maybe not feasible in general. | 20:43 | |
tadzik | a weird idea of a lazy SixModelObject came to my mind, something that will know of its repr, but will fill out the other bits when asked for them | ||
benabik | Maybe it would be possible to have a kind of "default HOW" that translates lookups into the appropriate PMC operations and modifications into errors. | 20:44 | |
jnthn | Well, any solution is probably going to want to be based on delegation. | ||
tadzik | yep | 20:45 | |
or maybe some sort of a generic ParrotHOW | |||
Parrot being ParrotObject | |||
jnthn | yeah | ||
benabik | I guess the important thing there is the "Default" part… Something returned for anything that doesn't have an explicit HOW (which should just be Parrot PMCs.) | ||
tadzik | hence ParrotObjHOW | 20:47 | |
make: *** [blib/Perl6/Pod.pbc] Segmentation fault | |||
fun | |||
jnthn | brb | 20:48 | |
benabik | tadzik: fsvo fun | 20:53 | |
tadzik | and now it's make: *** [blib/Perl6/SymbolTable.pbc] Segmentation fault | 20:54 | |
so it's not about Pod, yay :) | |||
im2ee | if $line ~~ any( %!funcs.keys ) # is it correct? | 20:55 | |
or == instead of ~~? :) | 20:56 | ||
tadzik | ~~ should work fine | ||
== is numeric comparison | |||
im2ee | Ok, so it's correct. thanks tadzik :) | ||
tadzik | and if those are strings, and I suppose they are, ~~ will be just eq | ||
im2ee | Parcel() is array, right? | 20:59 | |
21:03
perlygatekeeper left
|
|||
tadzik | not really | 21:04 | |
Parcel is just a comma-separated thing, whatever it is | |||
it more syntactical than semantical | |||
21:05
benabik left
|
|||
im2ee | rakudo: my @tab = 1, 2, <a b c>, 3; say @tab.WHAT; | 21:05 | |
p6eval | rakudo 3b1fe5: OUTPUT«Array()» | 21:06 | |
im2ee | rakudo: say <a b c>.WHAT; | ||
p6eval | rakudo 3b1fe5: OUTPUT«Parcel()» | ||
im2ee | Hmm, right. | ||
21:07
araujo left,
soh_cah_toa joined
21:08
kaare_ left
|
|||
im2ee | So.. It's time for me. | 21:08 | |
Good night everyone! :) | |||
tadzik | 'night! | 21:09 | |
masak | 'n | ||
dobranoc | |||
im2ee | :) | ||
tadzik | so, me being in the same timezone, should be probably going to sleep as well | ||
21:09
im2ee left
|
|||
masak | :) | 21:09 | |
cotto_work | Am I correct in understanding that nqp's kill-useless-defaults branch will be merged after the Rakudo release on Friday? | 21:12 | |
tadzik | I think so | 21:17 | |
[Coke] | I would love to see a reply to Andy D.'s message re: get_pointer. | 21:18 | |
masak | 'night, #perl6 | 21:22 | |
jnthn | 'night o/ | ||
cotto_work | 'night | 21:23 | |
21:23
mj41 left,
pmichaud left,
hugme left,
jrockway_ left
21:24
araujo joined
|
|||
cotto_work | [Coke]: there you go | 21:24 | |
two for the price of one | |||
or the price of four | 21:25 | ||
21:25
perlygatekeeper joined
21:31
wamba left
21:32
tomaw is now known as 5EXAAAB0J
21:34
5EXAAAB0J is now known as tomaw
21:36
pmichaud joined,
hugme joined,
jrockway_ joined,
zelazny.freenode.net sets mode: +v hugme
21:59
gfldex left
22:01
gfldex joined
22:08
athomason joined
22:11
bakedb__ joined
|
|||
dalek | kudo/nom: a26660d | jnthn++ | src/Perl6/Metamodel/ (2 files): Fix diamond role composition. |
22:21 | |
kudo/nom: b0b9b78 | jnthn++ | src/Perl6/Actions.pm: Ensure that we compose a ParametricRoleHOW before adding it to the group, so the group gets the fully composed view of it. |
|||
22:28
alester left
|
|||
dalek | ast: cdb3f48 | jnthn++ | S14-roles/composition.t: Improve test for role composition conflict error; don't require it uses the word collides, but do require it mentions the names of the roles. |
22:40 | |
ast: ebdee8d | jnthn++ | S14-traits/attributes.t: Start to de-bitrot traits tests. |
|||
22:44
replor___ left
|
|||
dalek | kudo/nom: 1dd4914 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Oops, a26660d made us accidentally miss some real conflicts. Fix that. |
22:45 | |
kudo/nom: b72d678 | jnthn++ | src/Perl6/Metamodel/ (4 files): Roles pass any classes they're made to inherit along. |
|||
kudo/nom: df4db06 | jnthn++ | t/spectest.data: We now pass S14-roles/composition.t. |
|||
Woodi | jnthn++ nightly work :) | 22:54 | |
tadzik | make spectest seemed so fast that I stopped it and started timing it | 22:56 | |
jnthn | heh :) | 22:57 | |
tadzik | well, it'll take longer for we now pass more tests | ||
jnthn | Yeah | ||
tadzik | cheating | ||
jnthn | It's crept back up to the 3 minute mark here now. | ||
22:59
whiteknight joined
|
|||
dalek | kudo/nom: e606bec | jnthn++ | src/binder/bind.c: Toss dead code. |
23:03 | |
kudo/nom: 5440fde | jnthn++ | src/pmc/perl6lexpad.pmc: Add a write barrier. |
|||
jnthn | Almost up to running 15000 tests, it seems. | 23:04 | |
mmm. This beer is really nice. | 23:06 | ||
23:06
japhb_ joined
23:09
molaf__ joined
|
|||
japhb_ | jnthn, did you have a chance to think about my two questions? (1. What' the correct status of the 3 remaining '?' items for nom in the features chart? 2a. How much work would it be to finish the MAIN feature for nom, presumably by autogenerating usage info? 2b. Could that task be done by a non-core developer?) | 23:09 | |
dalek | atures: 6a65d1d | jnthn++ | features.json: Update features to fill out blank spots for Rakudo. Also add 'Overriding dispatch' feature. |
23:11 | |
jnthn | japhb_: I just did 1 ;) | ||
Thanks for prodding me...was a bit preoccupied with $dayjob last time. | |||
japhb_ | jnthn++ # Action first | ||
jnthn, np, thanks for doing it! | 23:12 | ||
jnthn | tadzik: I think you worked on MAIN last (or recently)...is there more to USAGE than Just Doing It? | ||
23:13
molaf_ left
|
|||
jnthn | japhb_: In theory, it's writable in Perl 6, just by using signature introspection. | 23:13 | |
tadzik | jnthn: I don't think USAGE is Even Doing It | ||
and I believe it's moritz++ who worked on it recently | |||
jnthn | tadzik: Oh, I thought you did some bits. Sorry :) | ||
japhb_ | I also posted an idea to the channel at large for a new Interoperability section for the features table (minor extra details at irclog.perlgeek.de/perl6/2011-09-21#i_4456725 ) | ||
tadzik | I did some bits yes :) | ||
japhb_ | comments welcome | ||
tadzik | but moritz worked around of the lack of signature comparison, or what was that | 23:14 | |
the-thing-that-made-you-unable-to-find-the-best-matching-MAIN | |||
jnthn | tadzik: Well, I think we made the spec more sane in the process of that :) | ||
23:15
envi_laptop joined
|
|||
japhb_ | So in theory spec, implementation, and reality are convergent? :-) | 23:15 | |
jnthn | In theory ;) | ||
japhb_: src/core/Main.pm is where to look fwiw | 23:16 | ||
tadzik | jnthn: in process of what? | ||
japhb_ | jnthn, in both nom and beijing? | ||
tadzik | yes | ||
jnthn | In nom: | ||
# TODO: check if a dispatch is possible, and if not, | |||
# do some USAGE magic. | |||
return $m(|@($p), |%($n)); | |||
japhb_ | heh | ||
jnthn | Hmm. It looks like it kinda blocks on knowing whether that disatch is going to work out or not. | ||
23:17
bakedb__ left
|
|||
japhb_ | jnthn, Is that still a difficult question? | 23:17 | |
jnthn | moment, checkin' | 23:18 | |
japhb_ | nom: .say for Signature.^methods | ||
p6eval | nom df4db0: OUTPUT«Unmarshallable foreign language value passed for parameter '$_' in block <anon> at /tmp/HDYX441Vmc:1 in method reify at src/gen/CORE.setting:3690 in method reify at src/gen/CORE.setting:3595 in method reify at src/gen/CORE.setting:3595 in method gimme at src… | ||
japhb_ | wheee | ||
jnthn | ugh. | ||
tadzik | heh | ||
jnthn | Bootstrapping for the fail... | ||
tadzik | jnthn! jnthn! | 23:19 | |
Method 'foo' must be resolved by class DD because it exists in multiple roles (DC, DB) | |||
in t/spec/S14-roles/composition.t | |||
jnthn | tadzik: huh, that's what I just fixed... | ||
tadzik: Did you pull? | |||
tadzik | when? | 23:20 | |
I just pulled the last 2 | |||
jnthn | Hm. | ||
That's...really weird. | |||
tadzik | binder, and perl6lexpad | ||
jnthn | yeah, I meant the earlier patches. :S | ||
tadzik: Wait, which Parrot are you running? | |||
tadzik: The NQP_REVISION/PARROT_REVISION one? | 23:21 | ||
tadzik | jnthn: blead | ||
jnthn | Or latest + the patch? | ||
oh, you applied the NQP patch locally? | |||
tadzik | I'm on the branch | ||
i nnqp | |||
jnthn | aha | ||
OK, then I'm not surprised. | |||
I can't really do much about that until we merge the branch. | |||
But we can't do that before the release... | 23:22 | ||
japhb_: I'm guessing there should be a way to take a multi and ask it for all matching candidates. | |||
japhb_: I've got all the primitives in place to do that... | |||
japhb_: Checking the spec to see if there's a defined way. | 23:23 | ||
23:28
Tene___________ is now known as Tene
23:29
frhodes_ left
23:30
vlixes joined
23:31
uasi left
|
|||
japhb_ | jnthn, thank you. | 23:33 | |
23:33
envi_laptop left
|
|||
vlixes | 23:33 | ||
/bye | |||
23:33
vlixes left
23:35
maguro joined
|
|||
jnthn | japhb_: Don't see anything off hand, so adding one...should unblock doing stuff. | 23:43 | |
japhb_ | jnthn, OK. Am I correct in reading your previous comments that this will be relatively easy for you to add? | 23:45 | |
jnthn | japhb_: Yeah, we already have the primitives there to support deferral. | 23:47 | |
Got a patch, testing it. | |||
23:47
mkramer1 joined,
uasi joined
23:49
ZapZ_ joined
23:50
donri left,
frhodes joined
23:56
uasi_ joined
23:57
uasi_ left
23:59
uasi left
|