»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:04 Pathin_ left 00:05 Pathin_ joined 00:09 cooper joined 00:10 mberends left, jaldhar left 00:11 jaldhar joined 00:13 Pathin_ left 00:15 Pathin_ joined 00:18 brainproxy joined
brainproxy anyone know of a paper or something that explains how perl6's junctions are related to "join calculus"? 00:19
well in any case, I'm trying to explore the concepts and they seemed related; they may not be 00:20
00:23 Pathin_ left 00:25 Pathin_ joined
jnthn brainproxy: Not seen anything about that. 00:26
00:27 tyatpi left
dalek kudo/nom: 1357b60 | jonathan++ | src/ (5 files):
Map Parrot RPA and Hash into Perl 6 types after method calls, so we can call a bunch more stuff from NQP land. Makes the various intropsection methods that didn't work previously now do so. A few things relied on this not happening in list guts; patched them.
00:27
kudo/nom: ab2b93b | jonathan++ | / (2 files):
Implement .+ and .*.
kudo/nom: 8c0cbc0 | jonathan++ | / (2 files):
Make literal values in signatures work again.
jnthn sleep & 00:28
00:29 [Coke] joined
lue just out of curiosity, could I take the results of compiling rakudo (i.e. ./perl6, Test.pir, and all the other stuff) and use them on another computer, provided parrot is there? 00:31
00:34 Pathin_ left 00:35 Pathin_ joined
brainproxy jnthn: okay, maybe it's an unexplored connection 00:36
00:43 Pathin_ left 00:44 Pathin_ joined 00:50 tyatpi joined 00:53 Pathin_ left 00:54 Pathin_ joined 01:02 Pathin_ left 01:03 Pathin_ joined 01:05 noganex_ left
Util lue: eventually, yes. Right now, provided you place the migrated files in *exactly* the same pathnames that they were compiled with... Maybe. 01:06
Please try it and tell us!
01:06 noganex joined
TiMBuS anyone know how to make perl5 'safe', ie no open, no backticks, no exec, fork, etc 01:12
01:12 Pathin_ left
TiMBuS in the same way p6eval is 01:12
theres gotta be a cpan module for it...
01:13 jaldhar left, Pathin_ joined 01:14 jaldhar joined 01:22 Pathin_ left, donri left 01:23 Pathin_ joined 01:31 Pathin_ left 01:33 Pathin_ joined 01:37 screencast joined
screencast hi! everyone ! I am new to perl6. 01:40
01:41 Pathin_ left 01:42 Pathin_ joined 01:44 tyatpi left
sorear screencast: hell 01:47
o
TiMBuS: you mean Safe?
01:49 screencast left
TiMBuS yeah i found that 01:50
01:51 Pathin_ left 01:52 Pathin_ joined 01:58 vonph joined 02:00 vonph left, Pathin_ left 02:01 Pathin_ joined 02:09 Pathin_ left 02:11 Pathin_ joined 02:14 gbacon joined 02:15 daniel-s left 02:17 gbacon left 02:19 Pathin_ left 02:21 Pathin_ joined 02:30 Pathin_ left 02:31 Pathin_ joined 02:34 colomon joined 02:39 daniel-s joined, Pathin_ left
colomon /me is at the airport hotel, with five hours of sleep and then a flight to Asheville in the cards. 02:40
02:40 Pathin_ joined 02:43 jaldhar left 02:44 jaldhar joined
[Coke] colomon: have fun in asheville! 02:47
whiteknight pmichaud or jnthn around?
or, anybody who could answer some questions about the lexicals implementation? 02:48
02:49 Pathin_ left 02:50 Pathin_ joined
colomon [Coke]: are you not going? :( 02:50
sorear whiteknight: ask em 02:52
me
whiteknight sorear: I'm trying to figure out why we need the LexInfo PMC
or, more importantly, why we need the LexInfo/LexPad pair, when it seems like only one object would be good enough
02:52 cotto left
whiteknight the only use I can find for LexInfo is to limit the number of lexicals to ones explicitly declared at compile time, which seems like an unnecessary restriction 02:53
that is, the only reason we can't define lexicals dynamically at runtime is because LexInfo exists, and it serves no other apparent purpose
sorear LexPad is a concession made for languages like Tcl that can create arbitrary locals at runtime 02:54
whiteknight LexPad holds the values of the Sub's lexicals at runtime, but the keys that it can create are limited by what is in the LexInfo
sorear for most languages, LexInfo is what matters
really? once upon a time, values were stored in the CallContext, and Things Were Good 02:55
whiteknight values for registers are stored in CallContext. values for lexicals are stored in LexPad
sorear lexicals in the non-Tcl case canonically lived in specific P registers; the LexInfo was a crutch for runtime introspection, $CALLER::foo et al 02:56
whiteknight okay, I'm signing off for the night. I think I'm going to have to read more code to really understand this system 02:57
thanks sorear
02:58 Pathin_ left 02:59 whiteknight left, Pathin_ joined 03:01 arnsholt_ joined 03:05 Katibe left 03:08 Pathin_ left 03:09 Pathin_ joined 03:15 karupas joined 03:17 karupanerura left 03:18 Pathin_ left 03:19 Pathin_ joined 03:21 karupas left 03:23 Su-Shee_ joined 03:24 Su-Shee left 03:27 envi joined
[Coke] colomon: Î am absolutely not going, yes. 03:27
03:28 Pathin_ left
[Coke] (cannot really justify paying for the travel out of pocket when I don't get paid to perl.) 03:28
03:28 Pathin_ joined 03:36 [Coke] left 03:37 Pathin_ left 03:38 [Coke] joined, Pathin_ joined 03:43 Trashlord left 03:47 Pathin_ left 03:48 Pathin_ joined 03:54 cotto joined 03:57 Pathin_ left 03:58 Pathin_ joined 04:06 Pathin_ left 04:07 Pathin_ joined 04:16 Pathin_ left 04:17 Pathin_ joined 04:22 kaare_ joined, tokuhirom left 04:23 tokuhirom joined 04:25 Pathin_ left 04:26 jaldhar left, _jaldhar joined, Pathin_ joined 04:34 jaldhar_ joined
TiMBuS [Coke], i feel that. i dont get paid to perl even when i do it for work :< 04:34
04:35 Pathin_ left, _jaldhar left
TiMBuS if it was any other language itd be slave labour D: 04:35
dalek kudo/nom: 1cb0fb2 | pmichaud++ | src/ (5 files):
Avoid need for nqp::find_method calls on RPAs.
04:36 Pathin_ joined 04:44 Pathin_ left 04:45 Pathin_ joined 04:53 Pathin_ left 04:55 Pathin_ joined 04:59 kanishka joined 05:03 Pathin_ left 05:04 Pathin_ joined 05:06 spacebat joined
spacebat hi, its been a while since I checked out rakudo, and the last post on rakudo.org along with the release is from april 05:07
compiling it now
there was something I read about work going on with it and/or parrot to make the internals all one language for better optimisation 05:08
has that delayed the release of a new rakudo? is there a better place to read up than rakudo.org? thanks 05:09
sorear No
Rakudo Star releases are quarterly 05:10
spacebat cool
:)
sorear Rakudo monthly releases still happen, but they're not announced because we think it would just confuse people
spacebat fair enough
perhaps I should get on a mailing list if I want to be informed
sorear it's true that there aren't many changes in Rakudo 2011.06; most developer work is going into the nom branch 05:11
spacebat googles that 05:12
05:13 Pathin_ left
sorear wonders if spacebat has heard of sorear's new implementation 05:13
05:14 Pathin_ joined
TiMBuS 6guts.wordpress.com/ 05:15
spacebat I have not heard of this new implementation 05:16
nom is what must have read about back in february
TiMBuS sorear's making niecza 05:18
im sure you've heard of it, its just better now
05:23 Pathin_ left, Pathin_ joined 05:30 Chillance left 05:32 Pathin_ left 05:33 Pathin_ joined, cotto left 05:37 _twitch joined 05:41 Pathin_ left 05:42 Pathin_ joined 05:51 Pathin_ left
dalek kudo/nom: 0b11f42 | pmichaud++ | src/core/ (2 files):
Temporarily revert 348b506 -- something about $*OUT.say doesn't work more than once in the interactive REPL.
05:51
05:52 Pathin_ joined 05:56 karupanerura joined 06:00 Pathin_ left 06:01 Pathin_ joined
dalek ecza: dd5cde5 | sorear++ | / (4 files):
Rename the indexing core methods to postcircumfix:<...>
06:03
06:04 [particle] joined 06:05 [particle]1 left 06:10 Pathin_ left, Bzek joined 06:11 Pathin_ joined 06:20 Pathin_ left, Pathin_ joined 06:25 _twitch left, jaldhar_ left 06:28 Pathin_ left 06:29 jaldhar_ joined 06:30 Pathin_ joined 06:38 Pathin_ left 06:39 Pathin_ joined
dalek kudo/nom: e333382 | moritz++ | / (3 files):
implement .chop, update LHF
06:41
pmichaud moritz: ''.chop
moritz pmichaud: works
sorear good morning moritz 06:42
moritz good morning sorear, good morning rest of the world :-)
pmichaud moritz: .substr() should fail on a negative length, I think. 06:43
"The function fails if either the start position or length is negative
or undefined. "
[Coke] pmichaud: you're up late.
dalek ecza: 90117b3 | sorear++ | lib/ (3 files):
Implement :BIND_VALUE adverb on accessors
pmichaud Str.pod:549 06:44
[Coke]: yes, but I suspect you're up later :)
moritz pmichaud: I suspect it might make sense to internally expose a .substr that doesn't make such extra checks, to keep other builtins like chom?p cheap 06:45
pmichaud if you want chop to be cheap, just use the pir:: instruction then :)
moritz nqp: say(pir::chop("foo"))
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P100')␤ in file '(file unknown)' line 34␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 102␤syntax error ... somewhere␤»
moritz nqp: say(pir::chomp("foo")) 06:46
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P100')␤ in file '(file unknown)' line 34␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 102␤syntax error ... somewhere␤»
pmichaud have to make it a string
moritz ah, did you mean pir::substr?
pmichaud nqp: nqp::say(pir::chop__Ss("foo"))
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected SREG, expecting '(' ('$S100')␤ in file '(file unknown)' line 32␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 100␤syntax error ... somewhere␤»
pmichaud hmmm
ah, it's chopn 06:47
nqp: nqp::say(pir::chopn__Ss("foo",1))
p6eval nqp: OUTPUT«error:imcc:The opcode 'chopn_s_sc_s' (chopn<3>) was not found. Check the type and number of the arguments␤ in file '(file unknown)' line 35␤»
pmichaud nqp: nqp::say(pir::chopn__Ssi("foo",1))
p6eval nqp: OUTPUT«fo␤»
sorear substr has to make those checks anyway...
06:48 Pathin_ left 06:49 Pathin_ joined
moritz pmichaud: I'll try it with pir::chopn later, now I'm going to sleep again, given that $daughter did the same too :-) 06:51
pmichaud moritz: wfm
06:52 Aridai joined
dalek kudo/nom: aa21eb7 | pmichaud++ | / (3 files):
Get a basic try { ... } working -- catches exceptions and puts them into $!.
06:52
pmichaud time for sleep here also 06:53
dalek kudo/nom: bdbd8d7 | pmichaud++ | src/core/Str.pm:
Add a XXX note to Str.chop since it ends up sending negative lengths to .substr
06:54
06:56 wamba joined 06:58 Pathin_ left, Pathin_ joined
[Coke] zzz 07:02
07:07 Pathin_ left 07:08 Pathin_ joined
moritz ENOSLEEP 07:08
dalek kudo/nom: 3fe16cb | moritz++ | src/core/Str.pm:
fix chop, pmichaud++
07:10
colomon o/ 07:15
tadzik o/ 07:16
moritz \o
07:16 Pathin_ left 07:17 Pathin_ joined 07:18 Mowah joined 07:19 Aridai left 07:21 zby_home_ left 07:22 cooper left 07:26 Pathin_ left 07:27 Pathin_ joined 07:29 tyatpi joined 07:35 Pathin_ left 07:37 Pathin_ joined 07:45 Pathin_ left 07:46 Pathin_ joined 07:48 bakedb joined 07:55 Pathin_ left, jaldhar_ left 07:56 Pathin_ joined 07:57 jaldhar_ joined 08:04 Pathin_ left 08:05 Pathin_ joined 08:09 colomon left 08:14 Pathin_ left 08:15 Pathin_ joined 08:23 Pathin_ left 08:25 Pathin_ joined 08:33 Pathin_ left 08:34 Pathin_ joined
daniel-s rakudo: my @list = (1,2,3,4,5); say ~@list; 08:40
p6eval rakudo b2bc99: OUTPUT«1 2 3 4 5␤»
daniel-s rakudo: my @list = (1,2,3,4,5); say (~@list).perl; 08:41
p6eval rakudo b2bc99: OUTPUT«"1 2 3 4 5"␤»
daniel-s rakudo: my @list = (1,2,3,4,5); say (@list).perl;
p6eval rakudo b2bc99: OUTPUT«[1, 2, 3, 4, 5]␤»
daniel-s rakudo: my @list = (1,2,3,4,5); say @list;
p6eval rakudo b2bc99: OUTPUT«12345␤»
08:43 Pathin_ left
daniel-s something I've noticed of the rosetta code examples, people seem to be trying very hard to create over elaborate or complicated examples 08:43
moritz example? 08:44
08:44 cognominal joined, Pathin_ joined
cognominal be maude 08:45
daniel-s rosettacode.org/wiki/Hailstone_sequence#Perl_6 08:48
08:49 bakedb left 08:52 Pathin_ left
moritz daniel-s: what's overly complicated in there? How would you simplify it? 08:53
08:54 Pathin_ joined
tadzik I guess that'd use an explanation, re the series operator used 08:57
TiMBuS i find that leagues easier to read than the perl5 example
tadzik yeah, when you see '...' you see the point of the logic 08:58
08:59 masak joined
masak morning, #perl6 09:00
tadzik lawlitsCarl! \o/
masak would zavolaj work with a C++ library?
TiMBuS if it exports C yea
masak ok. 09:01
09:01 tyatpi left
sorear masak: what would you say the average number of current implementations known by your talk attendees was? 09:02
09:02 Pathin_ left 09:03 Pathin_ joined
daniel-s 3: pugs, rakudo and nom :P 09:03
09:04 buubot_backup left
TiMBuS yapsi... 09:05
poor, poor yapsi 09:06
09:08 jaldhar_ left
sorear daniel-s: pugs isn't a current implementation. 09:08
I chose that word carefull.y
masak sorear: virtually everyone knows rakudo, though perhaps not always by name. (it's "Perl 6" or "Parrot" to some people.) 09:09
moritz so the median was 1 :-)
masak sorear: a few people had tried Niecza, IIRC. some people had run Pugs back in the day.
no wait. maybe I didn't ask about Niecza. I did ask who had heard of/tried Rakudo, though. 09:10
TiMBuS can i petition for niecza to have the c and z reversed so i stop mispronouncing/mispelling it
tadzik you should've asked about "nieeezzkka" :)
TiMBuS nizz-ka
tadzik I can only imagine why it would be difficult for someone to spell "niecza" 09:11
masak the "cz" is pronounced like in "church", at least I've always thought so.
tadzik yes
masak but it doesn't matter. it's a strange name, and I'm mostly to blame for it. :)
tadzik though I'm the one raised on the films starring Grzegorz Brzęczyszczykiewicz
TiMBuS explodes
masak I explained the Czech origins during the talk, and someone came up afterwards and said "that doesn't look like Czech". 09:12
I said "yeah, I know" :)
tadzik TiMBuS: see www.youtube.com/watch?v=ftrqO-jkMpE
09:12 Pathin_ left
TiMBuS it. it wasnt even a joke 09:13
tadzik well, it was
09:13 Pathin_ joined
tadzik the guy in the film is actually named Franek Dolas, he's just pulling the soldiers' legs 09:14
TiMBuS :I i have been now double trolled thru three mediums at once 09:15
blast
masak it's a rough medium, the internet. 09:16
tadzik three sub-mediums at once!
masak even the concept of "trolling" presupposes an impersonal enough channel of communication.
TiMBuS masak, when is yapsi going to compile itself :D 09:17
masak that's always been the (far-off) goal. 09:18
tadzik yapsi running on yapsi running on... ohwow
masak the bottleneck is currently my tuits and limited brain power.
TiMBuS llvm backend would be actually quite nice
masak tadzik: calm down, it's just another strange loop :)
TiMBuS just like pypy
tadzik ;)
TiMBuS wait if python on python is pypy, perl on perl is.. 09:19
tadzik pepe!
TiMBuS lol
masak the thing that sets Yapsi apart is that it's been pure Perl 6 from the start. otherwise, it's no different from Rakudo or Nytska.
Nicca
tadzik or PerlSixczczykiewicz
masak Niecza. :P
TiMBuS: what makes you expect "zc" rather than "cz"? the former looks odd to me. 09:20
tadzik niezca is like agniezka, which is almost Agnieszka, which is Polish for Agnes :) 09:21
09:22 Pathin_ left
TiMBuS masak, not even sure. i guess its how i parse words. 'niezka' just instantly pops into my head 09:22
tadzik flees 09:23
09:23 tyatpi joined, Pathin_ joined
TiMBuS then i think 'niekza' and my brain falls over a hurdle before i remember its ch 09:23
masak ah.
09:23 tyatpi left
masak guess seeing enough of those z-ending digraphs helps. 09:24
TiMBuS im australian. i only speak loose flowing drawling english
masak :)
TiMBuS i pause for no syllables! 09:25
jnthn morning, #perl6 09:28
sorear masak: reddit thinks I need a new name for it too. 09:31
masak lolitsjnthn!
sorear tries sleeping again
09:31 Pathin_ left
masak sorear: "Niecza" is very ethnic in a way that rhymes well with the rest of Perl 6. but I agree it's not exactly convenient. 09:32
sorear: maybe make the decision after you find a name that is an obvious improvement.
also, never base big decisions solely on Reddit. :P 09:33
s/Reddit/the basis of what Reddit thinks/
09:33 Pathin_ joined
masak rakudo: role A { method foo { say "OH HAI" } }; A.foo 09:36
p6eval rakudo b2bc99: OUTPUT«OH HAI␤»
jnthn Hmm. I need to teach nom to pun yet. :) 09:37
nom: role A { method foo { say "OH HAI" } }; A.foo
p6eval nom: OUTPUT«No method cache and no find_method method in meta-object␤current instr.: '_block1002' pc 28 ((file unknown):0) (:1)␤»
jnthn Ah, not an insane failure mode. :) 09:38
09:42 Pathin_ left
masak rakudo: role A { method foo { say "A" } }; role B { method foo { say "B" } }; class C does A does B {} 09:42
p6eval rakudo b2bc99: OUTPUT«===SORRY!===␤Method 'foo' collides and a resolution must be provided by the class␤»
09:42 Pathin_ joined
masak would be nice to know which roles are colliding... 09:42
rakudo: role A { method foo { say "A" } }; role B { method foo { say "B" } }; class C does A does B { method foo { self.A::foo } }; C.foo 09:43
p6eval rakudo b2bc99: OUTPUT«A␤»
masak \o/
that's a *slight* misuse of the Package::routine syntax, since A::foo isn't our-scoped. but it's forgivable because it's so convenient :P 09:44
jnthn nom: role A { method foo { say "A" } }; role B { method foo { say "B" } }; class C does A does B {} 09:45
p6eval nom: OUTPUT«Method 'foo' must be resolved by class 'C' because it exists in multiple roles (B, A)␤current instr.: '_block2493' pc 32375 (src/gen/perl6-metamodel.pir:9953)␤»
jnthn masak: ^
TiMBuS \( ' - ')c[~][~]כ( o . O)/ 09:47
masak jnthn: cool. 09:48
jnthn: why the reversed order of (B, A)? 09:49
masak is apparently never satisfied
jnthn masak: Luck.
masak: Roles are inherently unordered.
masak fair enough.
nom: role A { method foo { say "OH HAI" } }; role B does A {}; class C does B {}; B.foo; C.foo 09:50
p6eval nom: OUTPUT«Rebuild in progress␤»
masak aww
the suspense!
jnthn :P
masak: Still in Paris?
09:51 Pathin_ left
masak jnthn: yes, in a hackathon. 09:52
jnthn masak: oh, nice!
09:52 Pathin_ joined
masak jnthn: we're trying to use Zavolaj to hook up Panda3D. 09:53
09:55 whiteknight joined, Pathin_ left 09:57 Kivutarrr joined
masak Kivutarrr: \o 09:57
Kivutarrr o/
masak: deb ppa.launchpad.net/panda3d/ppa/ubuntu maverick main
09:57 eiro joined
masak Kivutarrr: oh! 09:57
Kivutarrr eiro: o/
masak eiro: \o
Kivutarrr: was following instructions from www.panda3d.org/download.php?platfo...mp;runtime 09:58
eiro hello! i head perl6 comes for christmass so i'll give it a try :)
masak will try this other URL.
eiro Kivutarrr, masak \o/
masak eiro: hello. you're right about the christmas thing. we're working hard and expect to be done even a bit before :)
Kivutarrr masak: this url was for the runtime, we need the SDK
masak ahah 09:59
just as well, because mine didn't work :P
Kivutarrr masak: do you have a minimalist cpp lib in mind? 10:00
masak Kivutarrr: hm, not really.
10:00 Su-Shee_ is now known as Su-Shee
masak Kivutarrr: not very familiar with C++ in general. 10:01
maybe someone here is.
Su-Shee: \o
Su-Shee good morning :)
Kivutarrr finally i'm recompiling with --gen-parrot 10:02
10:03 JimmyZ joined
masak Kivutarrr: fwiw, I'm not using --gen-parrot, and it works here. but might be worth trying anyway. 10:04
10:05 kanishka left
Kivutarrr i'm trying to compile zavolaj now 10:07
10:07 mj41 joined
masak I just ran it. 10:08
TiMBuS peers at panda3d
.. oh boy 10:09
it doesnt have any C interface does it 10:11
Kivutarrr I got this error, an idea? pastebin.com/P8HZxsmm
masak TiMBuS: ok, so this is essentially a fool's errand? :/ 10:13
TiMBuS no, just a big errand
id need to look at the python bridge, it might be a c lib 10:14
masak oh, good idea. 10:15
moritz Kivutarrr: did you make install in rakudo? 10:16
Kivutarrr moritz: it was that, thanks
masak moritz: we just discovered that here too :)
moritz++
eiro moritz, next French Perl Workshop will take place at Strasbourg ... so close to germany ... hope there will be some german mongers there 10:17
TiMBuS apparently panda3d uses 'interrogate' to generate a C bridge to python 10:18
Kivutarrr masak: pastebin.com/N9pgNN4S 10:19
masak TiMBuS: ah, yes: www.panda3d.org/manual/index.php/Interrogate 10:20
moritz eiro: I'll do my very best 10:21
masak heh, "Geburtstag" reference :P 10:22
TiMBuS masak, maybe you can extend or modify it to make zavolaj friendly
masak that's probably both a good idea and our only option :) 10:23
jnthn: any idea why this might happen with Zavolaj? pastebin.com/N9pgNN4S
jnthn masak: No...that looks odd :/ 10:24
masak: But looks like an issue in Zavolaj itself rather than the thing using it...
masak: Does it work for anything?
masak jnthn: Rakudo seems to work, but this example fails. 10:25
jnthn masak: No, I meant, does Zavolaj work for anything? 10:26
10:26 daniel-s_ joined
Kivutarrr all the other exemples gave me the same error 10:26
masak jnthn: I tried it here and it works for me. 10:27
so I suspect something's wrong with the Rakudo or Parrot setup.
but that's strange, because Kivutarrr just did a fresh build of everything.
daniel-s_ rakudo: my ($a, $b, $c) >>=<< 1;
p6eval rakudo b2bc99: OUTPUT«Sorry, lists on both sides of non-dwimmy hyperop are not of same length:␤ left: 3 elements␤ right: 1 elements␤␤ in 'hyper' at line 192:src/gen/core.pm␤ in 'hyper' at line 236:src/gen/core.pm␤ in main program body at line 1:src/metamodel/RoleToInstanceAppl…
daniel-s_ rakudo: my ($a, $b, $c) X= 1; 10:28
p6eval rakudo b2bc99: ( no output )
daniel-s_ rakudo: my ($a, $b, $c) X= 1; say $b;
p6eval rakudo b2bc99: OUTPUT«Any()␤»
jnthn masak: And it's certainly the first time they built this? No left-over NativeCall PIR file from a previous installation? 10:29
masak oh! 10:30
Kivutarrr jnthn: it may be, I installed parrot first, then I installer rakudo with --gen-parrot
masak Kivutarrr: you should remove any .pir files from before you rebuilt Rakudo.
it's probably incompatible.
daniel-s_ exit
10:30 daniel-s_ left
jnthn masak: hey wait...looking at the error... 10:30
masak: It's the same one you'd get if the Perl 6 code ahd been put into a .pir file 10:31
masak: Like, directly
masak yeah.
I can't explain that.
jnthn kitteh the .pir file and see what's in there :) 10:32
er, cat :)
masak Kivutarrr: still have the NativeCall.pir file around? 10:34
Kivutarrr /home/kivutar/code/rakudo/parrot_install/lib/3.5.0-devel/languages/perl6/lib/NativeCall.pir
/home/kivutar/code/zavolaj/lib/NativeCall.pir
10:34 mj41 left 10:35 weer joined 10:36 weer left
masak Kivutarrr: and PERL6LIB contains which directory? 10:36
Kivutarrr: does either of them look like it contains Perl 6 code? 10:37
Kivutarrr yes, the zavolaj/lib directory
kivutar@macbook:~/code/zavolaj/examples$ echo $PERL6LIB 10:38
../lib
it contains NativeCall.pm6
10:39 Zapelius joined
masak that's... wrong. 10:39
nuke it.
er, wait.
you meant it contains that file, not that the NativeCall.pir file contains the same as the .pm6 file? 10:40
Kivutarrr yes, the path contains that pm6 file
masak ok.
that's fine.
Kivutarrr :) 10:41
masak it works now!
Kivutarrr rm ../lib/NativeCall.pir saved us
masak jnthn++'s analysis was on the spot. 10:42
Kivutarrr it was containing perl6 code
eiro moritz, cool! masak said the same! it could be great to have a perl6 workshop/hackthlon during the conference
Kivutarrr jnthn++
masak++
eiro as jnthn proposed at OSDc
masak Kivutarrr: I've been looking at interrogate but I haven't learned much.
Kivutarrr: apparently it's possible to extend it to other languages, so one could perhaps write a Zavolaj backend for it. 10:43
lunch & 10:46
10:46 masak left 10:48 awoodland joined, dobie_gillis left 10:49 dobie_gillis joined
JimmyZ good evening, #perl6 10:55
11:06 cognominal left 11:07 cognominal joined 11:16 woosley joined 11:22 awoodland left 11:32 woosley1 joined 11:33 jferrero left 11:35 woosley left 11:48 buubot_backup joined 11:50 ggoebel_ joined
ggoebel_ sorear: fwiw, I too have been pronouncing it neez-ka. Now that my ignorance has been cured... I'm saying something pretty close to Nietzsche 11:57
11:57 molaf_ left
ggoebel_ www.wonderhowto.com/how-to-pronounc...et-175118/ 11:57
12:00 jaldhar_ joined 12:01 jaldhar_ left, jaldhar_ joined
jnthn It's kinda curious the name Niecza came out of a joke video involving the Czech language, but that sound is written č in Czech, not cz :) 12:02
12:06 jaldhar_ left 12:07 cognominal left 12:08 orafu left, orafu joined
moritz wonders if niecza has CZECH blocks :-) 12:09
jnthn ;) 12:10
12:11 jaldhar_ joined, jaldhar_ left, jaldhar_ joined 12:14 mikemol is now known as shortcircuit, shortcircuit is now known as mikemol, icwiener joined 12:16 jaldhar_ left, PhatEddy joined
PhatEddy Anyone able to "make" single test file to run a test file under windows? It doesn't work for me in the current code base but I think I might have a workaround that makes it usable. 12:18
12:22 wamba left
ggoebel_ connecting sounds and words led me through niecza => Nietzsche => nihilism ...and to the wikipedia article (en.wikipedia.org/wiki/Nihilism#Nietzsche) 12:23
the last paragraph of that section on nihilism reminds me very much of Perl6 12:24
one that does not stop after the destruction of all value and meaning and succumbs to the following nothingness. This alternate, 'active' nihilism on the other hand destroys to level the field for constructing something new.
...
PhatEddy jnthn or JimmyZ - I think you both use windows - do you have this working - any interest in a (somewhat partial) fix?? 12:25
ggoebel_ This wilful destruction of values and the overcoming of the condition of nihilism by the constructing of new meaning, this active nihilism could be related to what Nietzsche elsewhere calls a 'free spirit'[35] or the Übermensch from Thus Spoke Zarathustra and the Antichrist, the model of the strong individual who posits his own values and lives his life as if it were a work of art.
12:26 jaldhar_ joined
ggoebel_ Perl 6... Perl deconstructed, rationalized, and reconstructed again... A work of art... 12:26
12:27 colomon joined
colomon Hello from North Carolina! 12:27
ggoebel_ o/
JimmyZ what? 12:28
PhatEddy: what fix?
PhatEddy For doing gmake t/00-parrot/10-regex.t or mingw32-make t/00-parrot/10-regex.t on windows and having the test run ... 12:30
JimmyZ: on windows you would normally use '\' backslashes in the path name to separate directories but I am using forward slash '/' here for a reason - or does this work for you already? 12:34
JimmyZ / should works on windows 12:35
PhatEddy have you tried with a single test file?
12:38 eebrah joined
colomon is taking advantage of layover time in airport to work on his talk for Wednesday 12:39
JimmyZ PhatEddy: so what's your problem?
12:49 eebrah left
PhatEddy JimmyZ and I seem to have resolved this on private chat - thanks ... 12:51
JimmyZ PhatEddy: yes, forward slashes works 12:53
PhatEddy An actual patch should also have the makefile document that you need forward slashes in the test name since this won't be obvious under windows ... will try to submit something soon ... 12:55
13:08 aloha left 13:09 aloha joined 13:11 eebrah joined 13:15 colomon left
dalek kudo/nom: 1d7e3cd | jonathan++ | Test.pm:
Sprinkle protos through Test.pm to get us a bit further with compiling it.
13:24
kudo/nom: 7555814 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Missing decontainerize.
kudo/nom: 0018881 | jonathan++ | src/Perl6/SymbolTable.pm:
Few tweaks so using Perl6::SymbolTable from Perl 6 code works out better.
kudo/nom: 1c5e0dd | jonathan++ | src/Perl6/Actions.pm:
Fix issue where we set name too late, so the compile time created Code object's .name didn't work.
kudo/nom: 9cc88cc | jonathan++ | src/ (3 files):
First cut of 'is export' trait; just implemented for routines for now.
13:28 birdwindupbird joined 13:33 kanishka joined 13:35 Helios left
dalek kudo/nom: ec37e1b | jonathan++ | / (3 files):
Add Callable role; make Code do it.
13:37
13:49 Helios joined
pmichaud good morning, #perl6 13:51
jnthn hi, pmichaud 13:53
dalek kudo/nom: 4fbc478 | jonathan++ | src/Perl6/Actions.pm:
Fix modifier handling crash and eliminate another bit of Q:PIR as a bonus.
kudo/nom: 810c3b9 | jonathan++ | Test.pm:
Comment out a few small bits of Test.pm that causes us problems at the moment. Now it compiles and seems to kinda work ('use Test; ok(1); done;' is fine).
pmichaud jnthn: I had a question on github.com/rakudo/rakudo/commit/13...3c6c480be1 13:54
(er, *have a question)
I'm thinking that RPA should become Parcel or maybe List, but probably not Array.
Array's pretty heavyweight and has lots of other semantics we likely shouldn't include 13:55
14:00 Trashlord joined
jnthn pmichaud: I could go either way. 14:01
pmichaud: You know the list stuff better. If you think Parcel will be corrector, I can go with that. 14:02
pmichaud let's try Parcel, then. Generally Parcels are what get returned from functions.
jnthn k
pmichaud (it also defers flattening/containerizing to the caller context, which is usually what we want I think) 14:03
jnthn export/import now work enough for Test.pm
Unlike in master, EXPORT is lexical in UNIT, as per spec. 14:04
pmichaud yes, I'm looking at the commits now
looks very good
jnthn phone
dalek kudo/nom: 97c00e5 | pmichaud++ | src/core/Str.pm:
Avoid extra box/unbox of constant integer literal to pir::chopn.
14:14
14:15 cognominal joined
pmichaud do we still need to be trapping Null PMC access messages in Test.pm? I'm guessing they should be a lot less frequent than they were in alpha/master. 14:16
14:20 mberends joined
jnthn back 14:21
pmichaud: Not sure
pmichaud: They're probably less common but maybe still worth it.
pmichaud I'm thinking Test.pm becomes less-Parrot-centric if we include them.
Or, at any rate, we could search for them using Str.index instead of a regex. 14:22
mberends hi jnthn, pmichaud, how nice that nom can now nom Test.pm :-)
jnthn pmichaud: if we...exclude them? 14:24
pmichaud yeah, exclude
(still waking up here :)
jnthn :) 14:25
mberends: Yes :)
14:25 PhatEddy left
pmichaud we can start to attack the spectests :) 14:26
should we start calling them "roast tests", ooc? 14:27
(since that's what the repo calls them?)
and it's always nice to have a fully-cooked roast for Christmas dinner :)
jnthn mmmm :)
mberends roast parrot doesn't do it for me :P 14:28
jnthn pmichaud: In t\01-sanity\07-isa.t any objections to changing that to non-string isa? 14:29
pmichaud looking
the question is whether any of the spectests pass a string argument to isa_ok in Test.pm. 14:30
(and last time I checked, quite a few did.)
in other words, sanity probably needs to check both the string and non-string forms of .isa as long as the spectests use both 14:32
jnthn ah, ok
tsk, that means I need to implement the string form :P
pmichaud I don't know that it means .isa needs the string form, itself.
just that isa_ok needs to handle it for now.
jnthn It's OK, it's not so hard to do.
pmichaud unless .isa really does need the string form as per the spec. 14:33
jnthn Hm
Well, it's easy enough to make it handle the string form for now.
pmichaud okay, wfm
mberends \o/ nom full passes t/spec/S02-builtin_data_types/parsing-bool.t
pmichaud \o/
jnthn Really?!
pmichaud that's 1!
jnthn How? :)
pmichaud only 500 or so more to go! :-) 14:34
jnthn I didn't think we had Bool yet :)
pmichaud it fails for me
jnthn yeah, same here 14:35
mberends I'll cross-check. It's just worked explicitly here, 1..4 etc 14:36
pmichaud
.oO(mberends' copy of nom is from the future? Quick, clone that repo!)
14:37
mberends does a 'git backport' 14:38
gah, the SHA-65536 hashes don't work with git 1.7 :( 14:40
tadzik ooh, we can Test.pm 14:42
mberends: hola
mberends ohla tadzik
dalek kudo/nom: 76d1efc | pmichaud++ | src/ (2 files):
Move exception creation code for <try> into a

catch anything.
14:45
14:46 zby_home_ joined 14:48 kanishka left
dalek ecs: eea6822 | (Felix Herrmann)++ | S06-routines.pod:
[S06] convert "We Know Which One It Is" to lc
14:51
14:56 Kivutarrr left
pmichaud jnthn: I can't figure out why ModuleLoader.pm:42 is there... is that a buglet/fossil ? 15:00
seems like it would just undo whatever was done by the for loop above it.
pmichaud eliminates it to see what happens. 15:01
15:01 jaldhar_ left
jnthn pmichaud: Rakudo's one? 15:01
pmichaud nom's
jnthn ah, I see 15:02
yeah, looks dubious
15:02 woosley1 left
daniel-s rakudo: sprintf('%02x', 15) 15:02
p6eval rakudo b2bc99: ( no output )
daniel-s rakudo: sprintf('%02x', 15).say
p6eval rakudo b2bc99: OUTPUT«0f␤»
daniel-s rakudo: my $a = sprintf('%02x', 15); say; say; say $a; 15:03
p6eval rakudo b2bc99: OUTPUT«␤␤0f␤»
pmichaud jnthn: how are you getting "use Test;" to work? Are there some unpushed changes, or am I missing something?
are you manually creating a Test.pbc ? 15:04
jnthn pmichaud: Manually create Test.pir 15:06
pmichaud .pbc? 15:07
jnthn pmichaud: Didn't do the "compile the .pm" bit yet
pmichaud okay, I have a patch for the .pm bit.
jnthn pmichaud: Either Test.pir or Test.pbc will do.
pmichaud ModuleLoader looks like it only looks for .pbc files
jnthn Right.
ModuleLoader is mostly "make something work" :)
pmichaud I'm confused, but okay.
jnthn Oh 15:08
I see why you're confused
hm
Yeah, I don't know why it works then :)
I certainly only compiled to Test.pir
pmichaud fwiw, it doesn't work on my system, afaict
but I'll check
oh!
maybe that bit of try code is what is making it work
jnthn :) 15:09
pmichaud no, that's not it. Maybe Parrot is somehow automatically looking for the .pir file as well.
I'm building a fresh copy of nom, we'll see what happens there.
daniel-s rakudo: :16(15) 15:11
p6eval rakudo b2bc99: ( no output )
daniel-s rakudo: :16(15).say
p6eval rakudo b2bc99: OUTPUT«21␤»
15:11 awoodland joined
jnthn pmichaud: Parrot does look for .pir also. 15:11
daniel-s rakudo: :16(0d15).say
p6eval rakudo b2bc99: OUTPUT«21␤»
daniel-s rakudo: :16(0x15).say
p6eval rakudo b2bc99: OUTPUT«33␤»
pmichaud somehow I thought it did that only if ".pbc" wasn't in the filename.
i.e., if one did load_bytecode "Module" it would look for Module.pbc and Module.pir 15:12
looking
huh. Interesting. 15:16
daniel-s rakudo: :10(0x0f) 15:17
p6eval rakudo b2bc99: ( no output ) 15:18
daniel-s rakudo: :10(0x0f).say
p6eval rakudo b2bc99: OUTPUT«15␤»
daniel-s rakudo: :10(10).say
p6eval rakudo b2bc99: OUTPUT«10␤»
JimmyZ daniel-s: what're you looking for?
pmichaud looks like we pass t/01-sanity/99-test-basic.t 15:21
jnthn pmichaud: nice! 15:23
daniel-s want to convert number to hex
pmichaud daniel-s: use .fmt 15:24
daniel-s :x() all convert to decimal
pmichaud :x() all convert to *integer*
15:24 wamba joined
pmichaud rakudo: say 15.fmt('%02x') 15:24
p6eval rakudo b2bc99: OUTPUT«0f␤»
15:25 donri joined, donri left
daniel-s thanks, pmichaud++ 15:25
15:25 donri joined, Chillance joined, pernatiy joined
pmichaud should we use #?nom for skips in the spectests to begin with? 15:26
I forget how we handled it in the alpha->ng transition
moritz we used #?rakudo
pmichaud okay.
moritz and commented stuff out in t/spectest.data 15:27
pmichaud looks like whatever-currying is becoming more important -- a lot of the tests use that.
tadzik t/spec/S02-builtin_data_types/parsing-bool.t ................... ok
:)
pmichaud it's a false pass.
mberends I was going to ask if it's ok to comment out the files in nom/t/spectest.data?
jnthn er...how is everyone getting that one thinking it's passing? :)
pmichaud I think the test has some spurious try { } blocks that hide the errors. 15:28
jnthn ah 15:29
07-isa.t passes
dalek kudo/nom: 5ee2639 | jonathan++ | src/Perl6/Actions.pm:
Fix bug involving inline blocks not being executed.
kudo/nom: fe6f8cf | jonathan++ | src/ (2 files):
Mu.isa and Mu.does.
15:29 daniel-s left
dalek kudo/nom: 7006946 | pmichaud++ | src/ (3 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
15:30
jnthn nom: END { say 1 }; END { say 2 }
p6eval nom: OUTPUT«1␤2␤»
jnthn rakudo: END { say 1 }; END { say 2 }
p6eval rakudo b2bc99: OUTPUT«2␤1␤» 15:31
pmichaud END is LIFO
15:31 Moukeddar joined
jnthn ah 15:31
moritz nom: END { say 3 }; say 1
tadzik pmichaud: have you considered git pull --rebase?
p6eval nom: OUTPUT«1␤3␤»
pmichaud END and CHECK are LIFO, BEGIN and INIT are FIFO 15:32
jnthn pmichaud: ah, k
fixin'
pmichaud (istr that many other phasers are also lifo.)
15:33 wamba left
jnthn We only have those 4 so far. 15:33
Though maybe I should implement ENTER so we can gain on Yapsi. ;-) 15:34
pmichaud "two blocks ENTER! one block LEAVES! Fight!"
dalek kudo/nom: 0d75a77 | jonathan++ | src/Perl6/SymbolTable.pm:
CHECK and END are LIFO (pmichaud++).
15:37
jnthn That's another t/01-sanity
15:40 kanishka joined
dalek kudo/nom: fb649ae | pmichaud++ | src/core/Mu.pm:
Add prefix:<defined>.
15:40
kudo/nom: 196d776 | pmichaud++ | src/Perl6/SymbolTable.pm:
Merge branch 'nom' of github.com:rakudo/rakudo into nom
ast: 77fde07 | pmichaud++ | S02-builtin_data_types/array_extending.t:
Add some temporary #?rakudo skips for nom.
15:41
pmichaud ...and with that, we now pass S02-builtin_data_types/array_extending.t
moritz oh, the hunt for spectests is open now? 15:42
jnthn S06-signature\named-placeholders.t fully passes :)
pmichaud it's getting there, yes :)
make sure you have your hunter's license.
would whatever-currying be lhf? 15:43
moritz "I went and shot the maximum the game laws would allow, Two game wardens, seven hunters, and a cow."
pmichaud lol
I had forgotten about that verse.
moritz (Tom Lehrer)++ 15:44
jnthn pmichaud: Well, we kinda already have it, so it's "just" fixing the code that does it.
pmichaud: Well, ish :)
It looks like meta-ops are another needed thing 15:45
moritz doesn't sound like material for LHF.markdown
jnthn especially += ones
moritz: Maybe we need a FRWAL (Fruit Reachable With A Ladder) :)
moritz jnthn: I thought that was NOMMAP :-)
jnthn moritz: no, no, that's the "drink beer then tackle" list :) 15:46
mberends jnthn should not drink beer and then climb a ladder 15:47
moritz jnthn, pmichaud: in master, 'make' built Test.pir... any objections against restoring that behavior? 15:49
pmichaud no objection
tadzik now that we can build it... :) 15:50
jnthn +1 15:51
moritz consider it done 15:52
... and pushed :-)
dalek kudo/nom: 57a6c7d | moritz++ | tools/build/Makefile.in:
[build] include Test.pir in the default make target
mberends I'm commenting out all the tests in t/spectest.data except those that now pass 15:53
tadzik what is the makefile target for 'try everything'? 15:54
15:54 thou joined
moritz fulltest or so 15:54
tadzik okay 15:55
15:56 Trashlord left
tadzik will that tell me what was expected to fail, but didn't? :) 15:57
dalek kudo/nom: d248aa4 | jonathan++ | src/Perl6/Actions.pm:
Fix calls to post-declared listops. Means diag call in Test.pm works now.
jnthn pmichaud: ping 16:05
pmichaud jnthn: pong 16:07
mberends nom make spectest: Files=1, Tests=3, ... Result: PASS \o/
jnthn pmichaud: Dunno if you have a C profiler handy and can verify this, but in my profile a LOAD of time in compiling CORE.setting is spent in utf8_skip_forward 16:08
pmichaud jnthn: that's pretty normal
is CORE.setting not being transcoded down to iso-8859-1, I wonder?
jnthn pmichaud: I dunno
pmichaud it won't transcode down if there are any non-latin-1 characters in it..... oh, wait. 16:09
16:09 colomon2 joined
pmichaud yeah, I put one in. I'll fix it. 16:09
moritz mberends: I'm pretty sure I saw at least 3 passing test files
jnthn pmichaud: I'd really like a second profile on this though because if mine is true...we spend 40% of tuneime in there.
*time
pmichaud jnthn: that's been my experience.
jnthn Which is ridiculous. :)
16:09 tokuhir__ joined
pmichaud utf8 is evil. 16:09
jnthn well, yeah, we should get out of it into utf-32 ASAP really.
.oO( Or NFG )
16:10
colomon2 anyone know spec on what the components of a Complex are? a complex? danke
jnthn complex is almost certainly num and num
pmichaud getting substrings from a utf8 takes longer the farther we get from the beginning
moritz nom num?
16:11 MayDaniel joined
pmichaud i.e., if I do $S0 = substr utf8, 3000, 3 16:11
sorear good * #perl6
pmichaud then it has to scan from the beginning of utf8 to find the 3000th character.
mberends moritz: S06-signature/named-placeholders.t passes, 07-isa.t is not spec and S02-builtin_data_types/parsing-bool.t is bogus, that's all that has been said here so far. 16:12
jnthn pmichaud: Right, I grok the problem. I'm just quite horrified by it.
moritz mberends: ok
pmichaud jnthn: the problem with going to one of the other encodings in Parrot is that they're incomplete.
jnthn pmichaud: Oh.
:|
pmichaud and, of course, we run into problems on systems that don't have icu
although we could try it out and see what happens 16:13
dalek kudo/nom: b1eb40e | (Martin Berends)++ | t/spectest.data:
[t/spectest.data] comment out everything but the one script that passes
16:13 tokuhirom left
pmichaud i.e, we could set transcode to iso-8859-1, fall back to utf32 or some fixed-width unicode-capable encoding, and only then fall back to something else 16:13
jnthn: on another topic, is there a good way to locate a type object ('Parcel' in this case) from within a perl6 op? 16:14
do I have to put it into BOOTSTRAP and stuff like we do for List, etc?
sorear jnthn: non-utf8 encodings in Parrot are implemented using ICU calls 16:15
pmichaud .u ▶
phenny U+25B6 BLACK RIGHT-POINTING TRIANGLE (▶)
sorear jnthn: they won't work at all without ICU
jnthn sorear: That kinda sucks.
16:15 tokuhir__ left
sorear colomon2: Release tomorrow! Will ** be ready? 16:15
16:16 tokuhirom joined
jnthn pmichaud: If Parrot provides a way to do find_lex from code 16:16
pmichaud: I'm guessing it does...check out the find_lex op
pmichaud hmmm. that sounds potentially icky.
jnthn pmichaud: nod
pmichaud I could pass it as an argument, but that seems icky also.
jnthn And slow.
(the find_lex thing)
pmichaud well, it's no slower than what I'm doing now. I guess the best thing to do is just to put Parcel into BOOTSTRAP. It seems "core enough". 16:17
16:17 colomon2 left
pmichaud I can also give you a Rakudo_parcel_from_rpa call to use for binder, too :) 16:17
16:17 colomon2 joined
jnthn ooh 16:17
Well, I'd use it in types.c for the type mapping, as we mentiond earlier. 16:18
pmichaud right.
that's why I'd go ahead and do it there instead of purely in the op.
.u ∞
phenny U+221E INFINITY (∞)
colomon2 sorest: will try to get it done once the yapc mob settles on a room 16:19
16:19 kanishka left
colomon2 *sorear 16:19
16:20 tokuhirom left
pmichaud jnthn: just pushed fix to CORE.setting -- should speed things up again. 16:20
16:20 kanishka joined
dalek kudo/nom: 41ae351 | pmichaud++ | src/core/ (3 files):
Replace some non-latin1 characters with "\x" equivalents, to prevent poor parsing speed of CORE.setting.
16:21
jnthn github.com/perl6/roast/blob/master...rity.t#L32 16:22
Hmm
Does the spec anyway say whether .arity and/or .count should care for named parameters?
Or just positional ones?
I can't find anything either way.
pmichaud just positional ones, I think
jnthn Right, then the spectest needs an update
pmichaud and slurpy positional makes .count infinite
oh, required named parameters might increase arity 16:23
not sure... I doubt it
16:27 tokuhirom joined
dalek ast: fc90fd1 | jonathan++ | / (2 files):
.arity and .count ignore nameds.
16:28
jnthn pmichaud: I doubt it too. 16:29
pmichaud: Imagine things like map that rely on .count/.arity
dalek kudo/nom: c54ff34 | jonathan++ | t/spectest.data:
Uncomment a test we pass.
jnthn Anyway, we now pass all arity.t :) 16:30
pmichaud: Awesome, you just cut setting compilation time in half. :) 16:33
pmichaud well, since I was reponsible for doubling it in the first place... that's not much of an accomplishment :) 16:35
tadzik » will be a problem too, no?
pmichaud that one is latin-1
16:35 Trashlord joined
tadzik ok 16:35
pmichaud Perl 6 has been pretty good about making sure that whatever unicode it uses in the core is latin1
tadzik latin1 is the first 7 bits? 16:36
pmichaud latin1 is codepoints 0 to 255
tadzik right
16:37 MayDaniel left
mberends S02-builtin_data_types/array_extending.rakudo passes (with fudging) 16:40
S02-builtin_data_types/nested_pairs.t passes fully 16:41
pmichaud I'm working on the array_extending one
colomon2 sorear: if I have pow, how to hook up to n? 16:43
16:48 karupanerura left
pmichaud need lunch, will continue fixing up Parcel when I return 16:48
16:49 JimmyZ left 16:53 Moukeddar left 16:59 eebrah left 17:08 Trashlord left, tokuhirom left 17:11 Trashlord joined 17:16 colomon joined
colomon o/ 17:17
that's better
17:17 colomon2 left 17:19 colomon_ joined
colomon_ and that's even better. 17:19
errr, except for my name 17:20
now at yapc::na!
moritz waves 17:21
tadzik looks forward to the yapc
bah, I often catch myself thinking I much more want the exams to end than to pass the exams
gsoc is waiting, dozens of plans are waiting... 17:22
17:23 colomon left, colomon_ is now known as colomon
colomon sorear: Q:CgOp { (pow {$num, $power}) } doesn't seem to be right... 17:26
colomon is going to grab a bit of sleep...
17:29 Gothmog_ joined, ggoebel_ left 17:33 wamba joined
pmichaud jnthn: ping 17:34
jnthn pmichaud: pong 17:36
(here for another 10 mins, then afk for an hour or so)
pmichaud I'm trying to move Parcel into BOOTSTRAP and I'm forgetting a step ro doing something wrong
jnthn Usual mistake is to not put it in the export list.
pmichaud I'm pretty sure I included it there
error I'm getting is
No method cache and no find_method method in meta-object 17:37
jnthn That's...a nasty error.
pmichaud here's my patch
gist.github.com/1047788
jnthn I'm not sure how you're getting it...need to se...yes, that. :)
dalek kudo/nom: f21cf10 | jonathan++ | src/core/Bool.pm:
prefix:<not>
17:38
kudo/nom: 13e487b | jonathan++ | src/core/control.pm:
eval, with outer lexicals visible. Means eval_lives_ok and eval_dies_ok used in tests should work again.
jnthn pmichaud: OK, I'm still not sure... 17:39
pmichaud yeah, I'm a little surprised I'm having trouble with this one; I've not had trouble moving others to bootstrap before.
oh
I think I know the problem
well, not really 17:40
nm
jnthn pmichaud: Unless it's a missing entry in the "give it a stash" list
pmichaud: But we're missing quite a few others in there too..
pmichaud well, unlike others, Parcel is one of those that gets used before it's declared (in core) 17:41
jnthn pmichaud: I see you moved it around in the makefile too
pmichaud yes, because Parcel is Cool it should probably come afterwards
I can try moving it back earlier...
no difference.
jnthn Can I have the stacktrace for when you get that error?
pmichaud gist.github.com/1047793 17:42
jnthn yowser 17:43
That's...a weird place to blow up.
hm
Wish I knew what we were compiling at the time.
pmichaud I'm wondering if it's Any 17:44
just a sec
I tried comment out the instance of Parcel in Any -- still the same error.
jnthn add_multi_method doesn't have anything that looks even vaguely suspect either. 17:46
pmichaud I can probably find out what we're compiling when it blows up.. just a sec
nope, --rxtrace isn't quite working properly in nqp :( 17:50
jnthn patch applied locally 17:51
reproduced error 17:53
17:54 jaldhar_ joined 17:56 birdwindupbird left
jnthn pmichaud: OK, weird. It blows up on adding the various first multi-method in the setting... 17:57
pmichaud the first multimethod? in Mu? 17:58
jnthn ACCEPTS 18:01
yes
seems so
18:04 george_z0rwell left 18:05 jaldhar_ left
pmichaud you had said you had somewhere else to go -- this isn't a huge blocker for me and can wait 18:05
18:05 Reaganomicon joined
pmichaud I can work on tracking it down elsewhere a bit 18:05
jnthn it's ok, elsewhere was nom and I nommed while debugging ;)
18:06 jaldhar_ joined
tadzik ...nom :) 18:07
...so we put your nom near your nom so you can nom while you nom :)
pmichaud ...nominally, yes. 18:08
jnthn :P
pmichaud: This is a *very* confusing failure. 18:10
pmichaud I've got another data point for you 18:11
gist.github.com/1047814 # this also causes the same failure
It looks like adding *any* new class to BOOTSTRAP.pm (at that particular point) is enough to cause the failure 18:12
i.e,. the fact that it's "Parcel" is not important. 18:13
are we reaching the limit of some internal array, perhaps?
(not likely, I know, but worth asking) 18:14
jnthn SC "corruption" of some kind is what's bothering me a bit.
But it's hard to know where that'd happen.
pmichaud with the 1047814 patch, we end up with 30 stubs in BOOTSTRAP.pm (just another data point that might help) 18:15
sorear colomon: don't suppose you're still up ? 18:16
jnthn pmichaud: Yeah. And 248 items in the SC. Not really a magical go-wrong number. 18:24
18:25 kanishka left 18:42 awoodland left 18:43 awoodland joined 18:51 [particle]1 joined 18:53 [particle] left
dalek kudo/nom: 75e02f2 | (Martin Berends)++ | t/spectest.data:
[t/spectest.data] mining spectest_full wins another 337 tests in 41 files
18:53
mberends what the tests cried most often was: Could not find sub &exit 18:56
pmichaud oh, we can do that :)
I'll do it when I return if it doesn't happen sooner 18:57
afk, errands
moritz nqp: pir::exit(0); say("alive")
p6eval nqp: ( no output )
moritz patches 18:58
mberends that's pretty soon :) 18:59
tadzik funny how t/spec/S01-perl-5-integration/hash.t passes :)
jnthn That sounds...bogus.
tadzik that's probably Perl5-accidentally-being-a-subset-of-Perl6 19:00
jnthn And use v5 being ignored. I suspect.
moritz aye, I commented out the "use <version>" code
dalek kudo/nom: c1d7529 | moritz++ | src/core/IO.pm:
exit()
19:01
jnthn tries to track down $really_weird_bug 19:03
cognominal jnthn, we did not let masak go without drinking Chartreuse :)
jnthn mwahaha! 19:04
cognominal: Did he...survive? :)
cognominal to be on the safe side, I took the subway with him from the Villette to the Gare du Nord 19:05
Some of us did an all night hackathon session fuelled by Chartreuse (BooK, eiro, dolmen and me). 19:06
Eiro is writing a Perlude. And a typo ("perl dude") gave us ideas for (offensive) T-shirts 19:07
sorear jnthn/pmichaud: ping 19:08
cognominal (the big Lebowsky)++
jnthn sorear: gotta afk for a bit now...will be back later 19:11
pmichaud: No joy on getting to the bottom of $issue :/
colomon sorear: I'm back up again, but heading out soonish. what's up? 19:21
19:21 jaldhar_ left 19:23 dual left
sorear colomon: I was going to ask jnthn/pmichaud about its plans for handling $*PID and company in nom 19:24
colomon: as for you, (pow {$x} {$y})
colomon sorea++
sorear++
sorear colomon: note that the definitions of infix operators in the setting have changed a bit
karma sorea 19:25
aloha sorea has karma of 1.
colomon sorear: where should I look to find the example of, say, how infix:<+> is implemented? 19:26
niecza> 2.Num ** .5 19:27
1.4142135623731
so, some progress here. now for the tricky cases. :)
sorear colomon: I've gotten infix:<+> down to only two places! 19:31
(was 4+ earlier)
colomon \o/
sorear CORE.setting line 424 19:32
colomon for some reason, my ack in textmate really doesn't like searching Niecza's source.
sorear Builtins.cs line 509
probably because of the .setting extension
colomon that may be it indeed
19:33 cooper joined
colomon what does the ,2,2 mean in the Niecza::builtin statements mean? 19:33
sorear I like git-grep. it doesn't try to second-guess "is this a source file", it goes directly to the VCS instead
min and max argument count
also, infix:<**> has a precedence definition in the source now 19:34
:<+> is missing one only because %additive is the default
colomon I don't mind the second-guessing, but I certainly wish it was easier to fix it when it goes wrong.
right, is Niecza::absprec<w=> is assoc<right>
groovy, let me try doing this the "right" way, then 19:35
sub infix:<**> is Niecza::builtin('pow',2,2) is Niecza::absprec<w=> is assoc<right> ($l,$r) { $l ** $r } 19:36
does that look right to you?
compiles and seems to work. :) 19:37
19:37 PacoLinux left
sorear looks right to me 19:37
the hard part should be figuring out the type rules
colomon now I guess need to get all the cases implemented.
sorear e.g. -2 ** 4e0
colomon rakudo: say -2 ** 4 19:38
p6eval rakudo b2bc99: OUTPUT«-16␤»
19:38 prammer_ joined
sorear I think that should be Complex, since 4e0 can be considered to have infinitesimal (real) error, and raising a negative number to an infinitesimal power results in a complex infinitesimal 19:38
rakudo: say (-2 ** 4e0).WHAT 19:39
p6eval rakudo b2bc99: OUTPUT«Num()␤»
19:39 bakedb joined
sorear I don't consider rakudo's behavior here to be spec, unless a lot of code relies on it 19:39
sorear hopes that %hash.exists("foo") goes away or becomes standard soon 19:40
pmichaud correct behavior here will be defined by the spectests, then, not rakudo :)
colomon sorear: I think that may require more thought that I can give to it today. It will be bad enough just getting the basic routines to work.
19:40 prammer left 19:42 jimmy1980 left
moritz sorear: 4e0 is a Num and has no imaginary component 19:42
erm 19:43
and 4e0 == 4
there are lots of numbers you can represent exactly as floating point
no need to assume an error everywhere
19:44 envi left
pmichaud jnthn: sorry, didn't realize that moving Parcel into BOOTSTRAP was going to be a trial :/ 19:48
(but of course we'll have the problem no matter what class we next want to add to BOOTSTRAP, Parcel or not :)
jnthn pmichaud: I suspect you've uncovered a deepish bug that we'd have hit at some point anyway. 19:49
pmichaud jnthn: right, that's my guess also
jnthn pmichaud: I founnd and fixed one issue along the way but not The Issue
dalek kudo/nom: a104026 | jonathan++ | src/Perl6/Actions.pm:
Fix issue with re-stubbing something we stubbed already in BOOTSTRAP (should never happen in real Perl 6, mind).
19:50
jnthn pmichaud: It turns out though that if you apply your patch and then right below the stubbing of Parcel add just some "class Dummy { }" the problem goes away :/
pmichaud ouch. sounds heisenbugish
jnthn Yeah
It's not GC-ish though. -G doesn't help at all.
Gotta deal with a $errand that I forgot about earlier...bbiab 19:53
pmichaud syiab
or maybe that's "cuiab"
sorear pmichaud: How do you plan to handle, say, $*PID in nqp:: land? 19:55
19:56 prammer_ left
colomon sorear: I'm heading away for noms and tunes now. should be back at infix:<**> by 9 est or so unless the pub has really good hard cider... 19:56
pmichaud sorear: don't know yet about $*PID in nqp:: land. We'll probably just do it in rakudoland for a while using pir:: and then figure it out in more detail as we start looking at other VMs
sorear est? I thought you were Europe-based 19:57
colomon sorear: est. Michigan-based usually, in NC for YAPC atm
sorear ah 19:58
19:59 prammer_ joined
colomon sorear: I've never even visited Europe, alas. 20:00
afk
moritz sorear: not every cool Perl 6 hacker is in Europe :-)
20:00 PacoLinux joined
sorear moritz: heh, but I'm familiar with pmichaud's "yes, I am familiar with the other 49 countries" line :D 20:01
dalek kudo/nom: 998c18a | pmichaud++ | src/ (3 files):
Move &exit into src/core/control.pm, add a nqp:: opcode for it.
20:02
kudo/nom: 92fa053 | pmichaud++ | src/Perl6/Actions.pm:
Merge branch 'nom' of github.com:rakudo/rakudo into nom
20:10 prammer_ left 20:11 whiteknight left 20:16 masak joined
masak hi #perl6! 20:16
moritz o/
masak is back home
oh noes what happened to my daily blogging! o.O
I forgot to get someone to feed it while I was away... 20:17
20:17 prammer_ joined
sorear hello, masak. 20:17
masak \o
jnthn o/ masak 20:18
masak ahoj, jnthn
jnthn Bra flyg?
masak toppenbra flyg.
inga vingar föll av, och bra utsikt :) 20:19
pmichaud
.oO( why are jnthn and masak writing rot13? :)
jnthn bra utsikt = söta flickor? ;)
masak jnthn: you sir, have a one-track mind... :P 20:20
jnthn oh! this is #perl6, not privmsg!
masak *lol*
not that jnthn and I talk about girls all the time over privmsg... :P
I mean, surely not.
20:20 bakedb left
pmichaud ...tmi, I think. 20:20
jnthn :P 20:21
20:21 PacoLinux left
jnthn pmichaud: Done $errand...will see if I can figure out a bit more on the bug. 20:21
lue hello world! o/ 20:22
pmichaud jnthn: okay, good.
jnthn pmichaud: It's...bewildering that we'd end up writing something into the wrong SC at some point. :/
But it's my only guess at what might be going on.
lue has half a mind to use google translate on that conversation, but the other half is screaming "NO! YOU DON'T WANT TO KNOW!" 20:24
masak lue: it's safe. 20:25
for work, I mean.
jnthn It looks worse in English than in Swedish. :P 20:26
masak we managed to insinuate more than we actually said. :)
oh wait, that's what "insinuate" means.
lue masak->Masaka (sweedish to english) 20:28
20:28 mj41 joined
lue (Yeah, when you tried to convince us you guys don't always talk about girls over privmsg, the sweedish suddenly looked very bad to an englishman...) 20:30
jnthn lue: There were a few Swedish words that it took me a while to stop laughing at every time I saw them after moving here. :)
masak in Sweden, everything is "bra". 20:31
(it means "good")
jnthn Apart from when it's dåligt. :P
sorear gut. 20:32
jnthn holy crap, an internal class in Metamodel winds up appearing to be a ParametricRoleHOW O.O
How...on...earth...
jnthn goes to read reams of PIR 20:33
jnthn gets very confused 20:35
pmichaud: It's starting to smell of memory corruption. 20:36
sorear joy
masak dun-dun-DUN
lue I wonder, will the nom branch remove the core.pm > core.pir bit? (or does get replaced with a similarly lengthy procedure?)
jnthn Somehow, a type object ends up referencing a different s-table 20:37
That should never, ever be able to happen unless that bit of memory gets re-used.
OTOH, -G didn't make the issue go away.
pmichaud could be memory corruption unrelated to gc
lue: we don't have any plans to eliminate the Perl 6 core :) 20:38
jnthn pmichaud: True
pmichaud: That's the only way that'd immediately make sesnse to me though. 20:39
masak was the commit github.com/perl6/specs/commit/eea68226d4 commit motivated purely by "specs aren't supposed to be tongue-in-cheek"? or something deeper?
jnthn pmichaud: Unless the FSA gives us the same chunk of memory twice. :/
lue That takes a good hour or two on my computer though :( [and that's if I just started up the computer. If it's been running for a while core.pm > core.pir will never finish] 20:40
jnthn pmichaud: OTOH at least it's an NQPParametricRoleHOW, so not one from Perl 6 land 20:41
pmichaud: So it's not cross-SC issue
lue and I'm finding more and more of my project ideas need a good Perl6 compiler on my own machine.
jnthn oh, also...the class *is* enclosed in a role. 20:42
masak lue: the bottleneck is RAM. that's because the setting needs to be compiled in one go. that's because everything is in the same scope (and that's kinda the point of it).
lue: have you thought of cross-compiling Rakudo?
lue I actually asked earlier if I could just compile Rakudo remotely and copy it over locally. [Parrot compiles just fine on its own] 20:43
jnthn pmichaud: Good news. 20:44
masak lue: you could also empty out the setting and then compile it. would be much faster.
jnthn pmichaud: I don't think it's memory corruption. It *is* exceptionally weird. And may be a lexpad screwup
20:45 wamba left
jnthn Or something in the fixups 20:45
It's probably a golfable, obscure NQP bug.
pmichaud that's good
jnthn Roles generally play games with lexical scopes in hairy ways.
pmichaud maybe we should have either roles or lexical scopes then, but not both. :-P
jnthn That's a little hard when lexical scope = parametric role type environment... :P 20:46
pmichaud D'oh!
lue the setting, thats... src/core/ , right?
pmichaud lue: yes.
20:47 loloiiiijj joined
masak rakudo: sub foo($a: $b) { say "OH HAI" }; foo(1, 2) 20:47
p6eval rakudo b2bc99: OUTPUT«Lexical 'self' not found␤ in 'foo' at line 1:/tmp/zYAZq7Mi1N␤ in main program body at line 22:/tmp/zYAZq7Mi1N␤» 20:48
lue so you're saying I should dump src/core/, then compile it, and it'll work just fine?
pmichaud in theory, we could bundle a core.pir in the repository I bet. 20:49
and it gets used as long as none of the other dependencies have been violated
might be a problem with timestamps, though.
jnthn pmichaud: Want me to push your patch also? 20:50
pmichaud jnthn: I'd prefer to do it here
the patch is very incomplete
it was just enough to show the issue I was having.
20:50 amkrankruleuen joined, loloiiiijj left
jnthn k 20:51
dalek kudo/nom: 4e224d9 | jonathan++ | src/Perl6/Metamodel/MultiMethodContainer.pm:
Avoid a really obscure NQP bug. Nesting packages inside roles may well just be something we want to outlaw anyway, though...
20:52
jnthn pmichaud: OK, your patch seems to apply cleanly now
pmichaud: And not bust the build
masak nom: sub foo($a: $b) { say "OH HAI" }; foo(1, 2) 20:53
p6eval nom: OUTPUT«Rebuild in progress␤»
masak awww!
jnthn std: sub foo($a: $b) { say "OH HAI" }; foo(1, 2)
p6eval std 37a0cdd: OUTPUT«Potential difficulties:␤ $b is declared but not used at /tmp/UKYCAwuX_8 line 1:␤------> sub foo($a: ⏏$b) { say "OH HAI" }; foo(1, 2)␤ $a is declared but not used at /tmp/UKYCAwuX_8 line 1:␤------> sub foo(⏏$a: $b) { say "OH HAI" };…
jnthn std: sub foo($a: $b) { say "OH HAI" }; foo(1, 2) # OK don't panic...
masak huh.
p6eval std 37a0cdd: OUTPUT«Potential difficulties:␤ $b is declared but not used at /tmp/GMDNoRGFNa line 1:␤------> sub foo($a: ⏏$b) { say "OH HAI" }; foo(1, 2) # OK don␤ $a is declared but not used at /tmp/GMDNoRGFNa line 1:␤------> sub foo(⏏$a: $b) { say "O…
jnthn std: sub foo($a: $b) { say "$a $b" }; foo(1, 2) 20:54
p6eval std 37a0cdd: OUTPUT«ok 00:01 125m␤»
pmichaud afk for a bit
masak std: sub foo($a: $b) { say "OH HAI" }; foo(1, 2) #OK
p6eval std 37a0cdd: OUTPUT«ok 00:01 124m␤»
jnthn ah, that's it
20:54 prettyrobots joined
masak prettyrobots! \o/ 20:54
prettyrobots perl6: say 3
p6eval pugs, rakudo b2bc99, niecza v6-199-g90117b3: OUTPUT«3␤»
jnthn nom: say "alive"
p6eval nom: OUTPUT«alive␤»
prettyrobots per6: say 3;
masak nom: say "dead" 20:55
p6eval nom: OUTPUT«dead␤»
jnthn nom: sub foo($a: $b) { say "$a $b" }; foo(1, 2)
p6eval nom: OUTPUT«Lexical 'self' not found␤current instr.: 'foo' pc 308 ((file unknown):38884163) (:1)␤»
jnthn LTA
masak yeah
prettyrobots Anyone using Perl6 in production anywhere yet?
jnthn rakudo: sub foo($a: $b) { say "$a $b" }; foo(1, 2)
masak prettyrobots: I am.
p6eval rakudo b2bc99: OUTPUT«Lexical 'self' not found␤ in 'foo' at line 1:/tmp/V6vcuSrsSS␤ in main program body at line 22:/tmp/V6vcuSrsSS␤»
prettyrobots masak: Yeah? Having fun with it?
Getting a lot done?
jnthn masak: We may already have an RT for that.
prettyrobots Or is it slow going.
masak prettyrobots: it builds my blog entries since a year back now. 20:56
prettyrobots: the speed is not much of an issue since it's done once, statically.
prettyrobots Is perl6 slow?
masak prettyrobots: but you're right, it would suck for speed-intensive things. people are working on it.
jnthn++ sorear++
prettyrobots Okay. Fine.
masak prettyrobots: the whole nom branch thing is aimed at performance and memory consumption.
prettyrobots Cool. 20:57
masak it lands this summer, in a distribution near you :)
prettyrobots Is there anything like Event Machine or Twisted?
20:57 PacoLinux joined
tadzik prettyrobots: perl6 is not, some of the implementations are. Is English slow? 20:57
prettyrobots Evented I/O bindings? I'd build something with that.
20:57 kaare_ left
masak prettyrobots: I took a quick look at eventmachine. it's not 100% clear to me what it does. 20:58
care to explain a bit further?
sorear lue: why aren't you playing with niecza yet? 20:59
prettyrobots A binding to kqueue or epoll.
masak hm, the Reactor pattern seems to presuppose concurrency. Niecza has that, I think, but I haven't seen an event framework on top of Niecza.
sorear lue: anti-Mono zealotry? 21:00
lue no, lemme see (I remember searching for Mono in portage yesterday, don't know why I didn't go ahead and install it.) 21:01
felher x/go 1 21:04
lue I'll finally give niecza a try, first I have to install Mono... 21:10
sorear lue: ppc linux right? what Gentoo version?
pmichaud jnthn: I'm planning to work on whatever currying next, unless you wanted to do it (or need me to work on something else)
jnthn pmichaud: wfm
pmichaud: Now we've got spectestability back there's loads of LHF to attack 21:11
pmichaud then I'll come back to parcels and arrays with holes
yes, most of the spectest I've been playing with fail on whatever
jnthn That and things like meta-ops
pmichaud hmmm, meta-ops
sorear plans to do '@foo[2] := $x', '$*PID etc', 'correcter $/' today
jnthn pmichaud: Question. Where should the generating meta-ops be installed? 21:12
pmichaud heh
sorear lue: I can help with Mono installs. I've done too many of them.
jnthn pmichaud: At the moment we shove them in UNIT
pmichaud I was just about to ask you the same question.
jnthn Where "at the moment" means "in master"
pmichaud I think UNIT is fine with me for now.
jnthn It seems like that's a reasonable place.
OK
did I do...
pmichaud for a first cut, at least.
sorear perl6: if 1 { sub infix:<@>($x,$y) { $y ~ $x }; say [@] 1..5 } 21:13
jnthn nom: sub a($b, $c) { say "$b $c" }; my $bar = &a.assuming(1); $bar(2)
p6eval rakudo b2bc99: OUTPUT«===SORRY!===␤Could not find sub &infix:<@>␤»
..pugs, niecza v6-199-g90117b3: OUTPUT«54321␤»
nom: OUTPUT«Method 'assuming' not found for invocant of class 'Sub'␤current instr.: '_block1002' pc 87 ((file unknown):40526012) (:1)␤»
sorear I think master's metaop implementation is overcomplicated and broken. 21:14
jnthn Rakudo I am disappoint.
sorear: Well, the issue in that case is mostly the scoping thing, I think.
pmichaud: Shall we want to use meta-ops in the setting? 21:15
pmichaud much of what ails master is broken lexical scoping
jnthn: I'd prefer to avoid it unless there's a big reason to use them there.
masak I'm now suspecting gist.github.com/1045125 is actually flawed in some way. my calculations consistently give that the size-4 sierpinski should have 16 nodes, not 11. :/
sorear jnthn: what's the scoping problem? just have [@] 1..5 mean reduce(&infix:<@>, :left, 1..5) 21:16
pmichaud sorear: that's essentially what we do, but we also install &infix:<[@]>
sorear pmichaud: why? the installation is the reason your metaops aren't working 21:17
in this case
lue Gentoo 10.0 I believe [ not that version numbers mean much in Gentooland :) ] It's going fine so far.
masak aha! oeis.org/A067771
sorear pmichaud: because anything installed at the UNIT level cannot see &infix:<@> 21:18
21:18 eebrah joined
jnthn pmichaud: UNIT is probably an issue in so far as if we do the currying thing we may curry the wrong multi 21:19
jnthn tries to remember the situation where we need the symbol installed...
(e.g. rather than compiling to a bunch of function calls...)
sorear masak: 3, (* * 3 - 3) ... * # the natural Perl 6 is more concise than the Mathematica, wow 21:20
masak sorear: :)
sorear jnthn: I just assumed it was premature optimization
masak sorear: are the parens needed there? 21:21
jnthn sorear: I don't think it was optimization.
21:21 jaldhar_ joined
jnthn sorear: I think it was because you could do something like &[>>+<<] or such 21:21
sorear jnthn: niecza does whateverlike currying in that case 21:22
in particular this includes stuff like »+=«
jnthn Feels a bit icky to have two code paths for it. 21:23
pmichaud partially it's also that we didn't want to construct a separate closure for each instance of += that occurs in code.
yes, we could probably do it without closures to some extent. 21:24
also, istr that at one time the spec made noises to the effect that metaoperators were generated and installed... the specs may not say that any longer.
masak gives up trying to blog tonight and saves his strength for tomorrow 21:25
pmichaud jnthn: if you want to do an implementation along the lines of what sorear-suggests (just a macro translation), I'm not opposed to trying that either. 21:27
would save some lexical nastiness
s/would/could/ 21:28
jnthn pmichaud: Since they're all subs, I suspect the inliner may have a good shot at inlining at least the first level of a meta-op also.
pmichaud right 21:29
so, I think let's try that.
we can generate the closure in the &[>>+<<] case. And it's perhaps only one level of clousre anyway.
if it doesn't work out long term, at least we have += and friends working soonish. 21:30
21:36 cooper left, cooper joined
sorear hmm. problem with using multi methods in the niecza compiler, they require types to be visible at compile time 21:38
which interferes with my dependency injection stuff
nom: 1 := 1 21:39
p6eval nom: OUTPUT«Cannot use bind operator with this LHS at line 1, near " 1"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23569 (src/stage2/gen/NQPHLL.pir:6311)␤»
21:42 Psyche^ joined 21:45 Patterner left, Psyche^ is now known as Patterner 21:46 wamba joined
jnthn nom: my %h; say ?%h 21:49
p6eval nom: OUTPUT«Bool::True␤»
jnthn nom: my @a; say ?@a
p6eval nom: OUTPUT«Bool::False␤»
jnthn pmichaud: Empty hash should be false, iiuc?
pmichaud nyi, I think.
jnthn ah 21:50
can do it
perl6: my %h = a = 1, b => 2; say %h.elems
p6eval pugs: OUTPUT«*** No such subroutine: "&a"␤ at /tmp/91bEx7MO1y line 1, column 9-22␤»
..rakudo b2bc99: OUTPUT«Could not find sub &a␤ in main program body at line 22:/tmp/7xZMjAFzW5␤»
..niecza v6-199-g90117b3: OUTPUT«===SORRY!===␤␤Any()Preceding context expects a term, but found infix = instead at /tmp/jbc3oEe4xG line 1:␤------> my %h = a ⏏= 1, b => 2; say %h.elems␤␤Parse failed␤␤»
pmichaud method Bool() { nqp::p6bool(nqp::elems($!storage)) } or somesuch
jnthn perl6: my %h = a => 1, b => 2; say %h.elems
p6eval pugs, rakudo b2bc99: OUTPUT«2␤» 21:51
..niecza v6-199-g90117b3: OUTPUT«Unhandled exception: Unable to resolve method elems in class Hash␤ at /tmp/rxCQidDg_z line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1790 (CORE C847_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1791 (CORE module-CO…
jnthn yeah, just checking if I should add a .elems while I'm there :)
jnthn is still learning his nqp:: op set :) 21:52
sorear jnthn: in nom, how deep is an our alias? 21:56
nom: our $x = 3; say $GLOBAL::x; $x := 5; say $GLOBAL::x 21:57
p6eval nom: OUTPUT«Cannot use bind operator with this LHS at line 1, near " 5; say $G"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23569 (src/stage2/gen/NQPHLL.pir:6311)␤»
21:57 y3llow_ joined, pothos_ joined
sorear jnthn: can't bind package vars ever? 21:57
jnthn: or just NYI?
jnthn sorear: I suspect that one should be made to work.
sorear: We don't handle any binding to aggregates yet.
21:58 wamba left
sorear $x isn't an aggregate, is it? 21:58
jnthn Hm
Guess not, though a stash is ;)
sorear or is each occurence of $x expanded to GLOBAL::.<$x> ?
jnthn But I guess that doesn't apply here
No, I don't do it like that
It's an lexical alias set up at block entry for now. 21:59
*a
21:59 bitpart joined
sorear What kind of lexical alias? 21:59
jnthn Anyway, I think binding should work there.
Just NYI
sorear Does it point to the hash slot, or to the Scalar?
jnthn To the Scalar at the moment.
21:59 pothos left, y3llow left
jnthn Binding is syntactic though, so that can go hunt down the hash slot if need be. 22:00
22:00 pothos_ is now known as pothos
sorear But I take it you plan to change this? 22:00
22:00 y3llow_ is now known as y3llow
sorear ah. 22:00
jnthn TMTOVTII :)
I could go either way at the moment.
sorear What about our $x; sub_that_rebinds_GLOBAL_x(); say $x ?
jnthn Making it work the same way $foo::bar::baz := ... works could be tempting though. 22:01
Yeah, right now that'd be an issue.
Maybe we need to alias deeper.
sorear niecza's solution basically involves typeglobs
jnthn slurps his beer harder
:)
sorear which is slightly uck, so I'm asking you
jnthn Maybe it wants a deeper binding.
Or maybe we make the alias more syntactic. 22:02
22:02 PacoLinux left
jnthn Though that may not be wise 22:02
our $x; eval(' ...uses $x.... ')
sorear Why not wise?
jnthn The eval case. 22:03
nom: my %h = a => 1, b => 2; say %h<b a>.join('|') 22:04
p6eval nom: OUTPUT«duplicate named argument in call␤current instr.: '_block1002' pc 125 ((file unknown):24240768) (:1)␤»
jnthn nom: my %h = a => 1, b => 2; say %h<b a>
p6eval nom: OUTPUT«duplicate named argument in call␤current instr.: '_block1002' pc 125 ((file unknown):28577520) (:1)␤»
sorear I don't see what eval matters here 22:06
22:06 mj41 left
pmichaud jnthn: ping 22:07
I don't have hash slices implemented in nom yet. 22:09
22:09 Kivutarrr joined
pmichaud I need to redo slicing now that we have Positional and Associative working again. 22:10
jnthn pmichaud: oh, ok
pmichaud I've got a draft for whatever_curry, but I don't know what I need to do to create an anonymous closure from Actions.pm (more)
here's what I have so far:
gist.github.com/1048049
i.e., I don't know how we create lexical pads and blocks now. 22:11
or signatures and parameters, for that matter :)
jnthn pmichaud: a PAST::Block has the familiar 2-node structure. 22:13
pmichaud: That is, first for decl-y stuff, second for the rest
pmichaud: You'd need to put a PAST::Var.new( :name($pname), :scope('lexical_6model'), :isdecl(1) ) into [0] for each of the parameters
pmichaud as well as creating the entry in @params, yes? 22:14
jnthn Yes
Your entry in params looks correct
pmichaud it would go into [0] of the newly created block? 22:15
jnthn Yes
create_signature_object call looks right, as does add_signature_binding_code
You then need to create a code object. 22:16
pmichaud okay
just a moment
jnthn $*ST.create_code_object($block, 'WhateverCode', $signature)
Where I presume WhateverCode is the type of code object you want.
It should be a subclass of Code (directly or indirectly)
pmichaud ah yes, I need to create that type also. no problem :-) 22:17
jnthn Note that what you get back from create_code is actually going to be a WhateverCode, *not* a PAST tree :)
pmichaud right, so then I create a reference_to_code_object from that? 22:18
jnthn If you want closure semantics, do like:
my $closure := block_closure(reference_to_code_object($code, $block));
pmichaud yes, closure semantics here
jnthn Drop the block_closure call if you don't need closure semantics.
That gives you a PAST node that will dtrt.
Note that you also should probably install your PAST::Block in the appropriate lexical scope. 22:19
$*ST.cur_lexpad()[0].push($block);
(creating code objects is fairly divorced from handling the PAST tree; generally, you can put the code object wherever you like, and your outer chain is handled by getting things right in the PAST tree.) 22:20
22:21 jaldhar_ left
dalek kudo/nom: ace0918 | jonathan++ | src/ (6 files):
Fix up attributive parameter finding somewhat.
22:21
kudo/nom: 9d200e0 | jonathan++ | src/core/EnumMap.pm:
EnumMap.Bool, EnumMap.elems.
pmichaud jnthn: second draft: gist.github.com/1048055
22:23 jferrero joined
dalek ast: 1b8dee3 | jonathan++ | S12-methods/attribute-params.t:
Re-fudge attribute-params.t for nom. We win a test we used to get wrong, but lose two for hash slicing.
22:23
22:24 Reaganomicon left
dalek kudo/nom: 49a6622 | jonathan++ | t/spectest.data:
Another passing test file.
22:24
pmichaud third draft: gist.github.com/1048058
pmichaud (second draft forgot to pass the WhateverCode params to the WhateverCode) 22:25
jnthn pmichaud: Installing block seems to be missing too
22:25 wolfman2000 left
jnthn < jnthn> $*ST.cur_lexpad()[0].push($block); 22:25
pmichaud immediately after block is created
jnthn oh 22:26
yeah, I missed it
see it now
pmichaud line 15
:)
jnthn yeah
Looks sane
But...does it work? :)
pmichaud okay, I'll play with this a bit and see if I can get it to work.
if not, I'll just leave what I have thus far and maybe you'll be able to hack it into place later/tomorrow or something :) 22:27
22:27 jaldhar_ joined
pmichaud tries compiling 22:28
masak 'night, #perl6 22:29
22:29 masak left
sorear jnthn: what happens if you try to call a code object from within the compiler? 22:29
jnthn sorear: It runs it. 22:32
sorear: Though outer lexical scopes are still not sorted out yet.
BEGIN uses the same mechanism, though, so once I fix it for one, I fix it for both. 22:33
dalek kudo/nom: 813e46c | jonathan++ | src/ (2 files):
Fix my Dog $fido .= new() style things, which show up in quite a few spectests.
22:44
22:45 Kivutarrr left
sorear jnthn: how does calling a code object from the compiler arrange to run PAST::Compiler? 22:46
22:47 bluescreen10 joined 22:49 lichtkind joined, jaldhar_ left 22:52 jaldhar_ joined, wolfman2000 joined 22:53 Mowah left
pmichaud > say (*+*)(4,5) 22:55
9
> say 1,1,(*+*)...{$_ > 100}
1 1 2 3 5 8 13 21 34 55 89 144
\o/
jnthn++
jnthn pmichaud++
sorear: We stick a "thunk" in the $!do that knows to do that. 22:56
22:57 bitpart left
lichtkind pm can always be ++ed :) 22:59
jnthn: o/ 23:01
dalek kudo/nom: 6a3bb07 | pmichaud++ | src/ (2 files):
Restore whatever currying.
23:02
23:04 mikehh left 23:14 daniel-s joined
dalek kudo/nom: 6885197 | jonathan++ | src/Perl6/Actions.pm:
our and my scoped methods.
23:21
kudo/nom: c55e033 | jonathan++ | src/core/traits.pm:
Stub in returns trait.
kudo/nom: 91c3937 | jonathan++ | t/spectest.data:
Two more passing tests.
kudo/nom: f0b4aea | jonathan++ | / (2 files):
Correct Code.ACCEPTS sig, winning another test file.
23:24
23:24 flatwhatson joined 23:26 prettyrobots left 23:31 prettyrobots joined
sorear hello, prettyrobots 23:31
prettyrobots hello 23:32
23:32 pernatiy left
sorear lue! 23:32
dalek ecza: 9850df9 | sorear++ | src/ (3 files):
Refactor binds to improve error messages, implement @foo[5] := @foo[2] syntax
prettyrobots Looking forward to playing with Perl6. Need to fine an appropriate project. 23:33
pmichaud ...I'm going to be reviewing a lot of commits in the next two days, I see :)
jnthn pmichaud: oh? :)
sorear prettyrobots: heehee
23:33 tokuhirom joined
prettyrobots I'm doing all my development now in CoffeeScript. 23:33
sorear prettyrobots: I was planning to write an irc client in Perl6, but I wound up writing Perl6 instead...:) 23:34
prettyrobots So, I'm happy to use new languages.
Yeah, I don't have time for that kind of a commitment.
pmichaud afk for a bit -- break 23:36
dalek kudo/nom: dc3f6cf | pmichaud++ | Test.pm:
Make sure isa_ok properly reports the type object.
23:39
kudo/nom: 4f6bb1c | pmichaud++ | src/core/Array.pm:
Add Array.new().
kudo/nom: 16c2f0d | pmichaud++ | src/ (2 files):
Clean up for -> map translation, add Parcel.item.
ast: 2c98722 | sorear++ | S02-magicals/file_line.t:
Make $?FILE testing more tolerant of odd paths
23:42
ast: 0ef3a04 | sorear++ | S03-operators/binding-arrays.t:
Fudge binding-arrays for Niecza and fix obsolete slurpy syntax
sorear rakudo: say { :a, :b }.Str.perl 23:47
p6eval rakudo b2bc99: OUTPUT«"a\tBool::True\nb\tBool::True\n"␤»
jnthn pmichaud: In S04-statements, no-implicit-block.t and return.t are both one test of passing, with some little list fixes. 23:48
OK, time for sleep & 23:55
dalek kudo/nom: e6459bc | jonathan++ | src/Perl6/Actions.pm:
Fix setting of PAST::Block.arity so if $foo -> $x { ... } style things work.
ecza: 4024e22 | sorear++ | / (3 files):
Add a bunch of binding tests to spectest.data
23:56