»ö« 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! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
00:07 Kovensky joined 00:14 buubot joined 00:19 Chillance left 00:22 hercynium joined 00:24 Infinoid joined 00:31 orafu left 00:33 __david__ joined 00:34 orafu joined
jnthn sleep & 00:41
01:01 mavrc left 01:15 risou joined 01:18 risou__ left 01:20 TypeNameHere_ is now known as TypeNameHere____ 01:26 ch3ck3r joined 01:29 ch3ck left
kthakore jnthn: NOOoooOooOOoOooOOooooo 01:53
01:58 kanishka joined 02:25 TypeNameHere____ left 02:30 jferrero left 02:45 alc joined
sorear kthakore: ? 02:45
allbery_b silliness, I'm pretty sure 02:47
dalek ecza: b312ffc | sorear++ | v6/tryfile:
[v6] Optimize regex use in getsig a bit
02:55
ecza: af5fde9 | sorear++ | / (2 files):
Use a slightly faster Hash.at_key
ecza: cb623ff | sorear++ | / (3 files):
Abstract vivification away from simply subs
ecza: 115676a | sorear++ | / (4 files):
Use specialized WHENCE for Hash.at-key
02:55 cdarroch joined, cdarroch left, cdarroch joined
dalek ecza: 78f0696 | sorear++ | / (4 files):
Implement explicit invocant syntax
03:21
03:24 alc left
dalek odel: 06a55fd | diakopter++ | dotnet/compiler/PAST2DNSTCompiler.pm:
[dotnet] finish/enable failure path for pasttype literal
03:30
odel: 2e8b472 | diakopter++ | dotnet/compiler/DNST (2 files):
[dotnet] implement DNST::JumpTable, a syntax tree of switch/case Computed Goto (uses an Assigned Goto jumptable in the C# emitter) control structures.
sorear diakopter: assigned goto? 03:33
diakopter I dunno; that's what the wikipedia article said
en.wikipedia.org/wiki/Goto#Assigned_GOTO
at compile-time, the labels in pmichaud's regex compiler are strings, and I wanted to preserve that representation 03:34
sorear that looks more like a switch statement than a real assigned GOTO 03:35
I would *love* an assigned goto in C#
diakopter in the code generated from his compiler (PIR) it's an assigned goto.
sorear if it wasn't horribly inefficient
diakopter ok ok, you caught me being handwavy with the terminology; it's assigned-goto at JnthnNQP compile-time. and a zero-indexed int switch/case in C#, which should be JIT to machine code as a jumptable 03:37
so, at compile-time in nqp: 03:38
diakopter pauses that last sentence indefinitely 03:42
$statements.push($jumptable.mark("some marker_34xxxx")); more code here $statements.push($jumptable.jump(ZZZ)); 03:43
where ZZZ is some expression returning an int, and code that's generated to make that expression hold different int values (an array lookup/pop usually) knows to use that jumptable to convert the names to integers. 03:44
(unpaused)
then of course $statements.push($jumptable); at some point into the same CLR method. 03:46
03:55 TypeNameHere____ joined 03:56 envi joined 04:25 nymacro joined 04:32 joyer joined
joyer play the latest rakudo.. help, plz. How to do pack/unpack in perl6?? 04:32
sorear I do not understand that sentence. 04:34
kthakore sorear: you did seen kthakore ... I thought you wanted to talk to msimple old me
04:35 alc joined, alc left
sorear kthakore: I think masak wanted us to talk 04:37
joyer: Sorry, I don't understand you.
joyer: Are you talking about 'perldoc -f pack'? 04:38
kthakore sorear: I was telling him about the memory proplem of the current perl6, for writing game. So he suggested to talk to you about memory stuff in perl6 (for slimming it down)
joyer sorear: no, I mean -- perl6 -e 'my $m = "abc"; unpack("A2")' get an error 04:41
I want to do binary pack/unpack in perl6 04:42
sorear rakudo: say unpack("i", "abcd")
p6eval rakudo : OUTPUT«Could not find sub &unpack␤ in main program body at line 22:/tmp/XPQoIXArt7␤»
04:42 dd-sphere joined
sorear unpack isn't implemented yet 04:42
I think masak was working on it
joyer is there any workaround? 04:43
here : rakudo.org/announce/rakudo-star/2010.08 it says `* Initial implementations of .pack and .unpack` 04:45
I thought it may be done after 3m.
04:46 ch3ck3r left
sorear oh 04:49
"." pack
04:49 justatheory left
sorear rakudo: say "abcd".unpack("i") 04:49
p6eval rakudo : OUTPUT«Method 'unpack' not found for invocant of class 'Str'␤ in main program body at line 22:/tmp/42eLOSSx6C␤»
sorear rakudo: say "abcd".Buf.unpack("i") 04:50
p6eval rakudo : OUTPUT«Method 'Buf' not found for invocant of class 'Str'␤ in main program body at line 22:/tmp/9uifT41ET1␤»
sorear rakudo: say "abcd".encode.unpack("i")
p6eval rakudo : OUTPUT«Unrecognized directive i␤ in <anon> at line 4495:CORE.setting␤ in 'unpack' at line 1␤ in main program body at line 22:/tmp/Elq7lbrSBN␤»
sorear rakudo: say "abcd".encode.unpack("c")
p6eval rakudo : OUTPUT«Unrecognized directive c␤ in <anon> at line 4495:CORE.setting␤ in 'unpack' at line 1␤ in main program body at line 22:/tmp/s3TF32Yn1A␤»
sorear rakudo: say "abcd".encode.unpack("n")
p6eval rakudo : OUTPUT«24930␤»
sorear so that's how you make it work
TimToady rakudo: say 97*256 + 98 04:52
p6eval rakudo : OUTPUT«24930␤»
04:52 saaki joined
sorear joyer: still here? 04:55
joyer yes 04:56
trying to get the idea.
rakudo: say "abc".encode.unpack("A2") 04:57
p6eval rakudo : OUTPUT«ab␤»
sorear any questions? 04:58
joyer how about pack?
sorear rakudo: say "n".pack(123456) 05:04
p6eval rakudo : OUTPUT«Method 'pack' not found for invocant of class 'Str'␤ in main program body at line 22:/tmp/CNpFkvYMn8␤»
sorear rakudo: say 123456.pack("n")
p6eval rakudo : OUTPUT«Method 'pack' not found for invocant of class 'Int'␤ in main program body at line 22:/tmp/EXYMF2Jml2␤»
sorear rakudo: say pack("N", 123456) 05:05
p6eval rakudo : OUTPUT«Buf()<0x71b43f0>␤»
joyer .encode.unpack vs pack ? a bit odd.
sorear rakudo: say pack("N", 123456).decode("ISO-8859-1")
p6eval rakudo : OUTPUT«Malformed UTF-8 string␤␤ in 'decode' at line 4412:CORE.setting␤ in main program body at line 22:/tmp/L3mwCZfyHf␤»
sorear rakudo: say pack("N", 123456).contents 05:06
p6eval rakudo : OUTPUT«0122664␤»
sorear rakudo: say pack("N", 123456).contents.perl
p6eval rakudo : OUTPUT«[0, 1, 226, 64]␤»
joyer I see. Thanks a lot. 05:09
05:16 cdarroch left 05:25 ch3ck3r joined
sorear std: True ?? die "Foo" !! 2 05:25
p6eval std a194beb: OUTPUT«===SORRY!===␤Ternary !! seems to be missing its ?? at /tmp/80cGbPuxh4 line 1:␤------> True ?? die "Foo" !!⏏ 2␤Parse failed␤FAILED 00:01 120m␤»
05:29 dd-sphere left 05:34 lopnor joined
joyer std: my Str @s = <a b c>; @s.sort; 05:36
p6eval std a194beb: OUTPUT«ok 00:01 121m␤»
joyer rakudo: my Str @s = <a b c>; say @s.sort;
p6eval rakudo : OUTPUT«maximum recursion depth exceeded␤ in 'at_pos' at line 5:CORE.setting␤ in 'at_pos' at line 5:CORE.setting␤ in 'Any::postcircumfix:<[ ]>' at line 1742:CORE.setting␤ in 'at_pos' at line 5:CORE.setting␤ in 'at_pos' at line 5:CORE.setting␤ in 'Any::postcircumfix:<[ ]>' at line 174…
joyer Why does the last input die?
std: my Str @s = <a b c>; say @s.sort; 05:37
p6eval std a194beb: OUTPUT«ok 00:01 122m␤»
sorear joyer: because you're using a type on an array 05:39
there's a bug of some kind that makes my Type @array die 05:40
my @array works fine
joyer so, .sort can't be use on a typed array?
ok, so this is a wellknown bug. 05:41
sorear .sort isn't the problem, typed arrays are
joyer In python's interactive shell. One can inspect an object with "dir(obj)" or "help(obj)". What is the perl6 way of doing that thing? 05:44
05:45 redicaps1 joined
sorear rakudo: Sub.^methods.say 05:47
p6eval rakudo : OUTPUT«assumingwrapunwrapcandocandidatesaritycountACCEPTSnewassumingcallwithmultinameperlsignaturedoStrofreturnsNumericRealIntRatNumabsexploglog10sqrtrootsto-radiansfrom-radiansfloorceilingroundtruncatesigncisunpolarchrrandsincostanseccoseccotansinhcoshtanhsechcosechcotanhasinacosatanatan…
sorear rakudo: say [Sub.^methods]
p6eval rakudo : OUTPUT«assuming wrap unwrap cando candidates arity count ACCEPTS new assuming callwith multi name perl signature do Str of returns Numeric Real Int Rat Num abs exp log log10 sqrt roots to-radians from-radians floor ceiling round truncate sign cis unpolar chr rand sin cos tan sec cosec cot…
sorear rakudo: say [Sub.^methods(:local)] 05:48
p6eval rakudo : OUTPUT«␤»
sorear rakudo: say [Sub.^parents(:all)]
p6eval rakudo : OUTPUT«Routine() Block() Code() Cool() Any() Mu()␤»
joyer what is the semantic of the magical []
sorear it's the same [] you know from Perl 5
changes a raw list of values into an anonymous array
say prints arrays with spaces, but doesn't for raw lists 05:49
joyer that is wonderful
sorear TimToady: How do I predeclare a constant? I'd like to return False from a method in Any 05:57
06:01 lopnor is now known as lopaway 06:04 __david__ left 06:09 Woodi joined 06:13 jhuni joined 06:16 risou left, risou joined 06:17 bjarneh joined 06:18 bjarneh left
dalek odel: 3307a45 | diakopter++ | dotnet/compiler/ (3 files):
[dotnet] fix bugs in the last commit
06:26
06:52 Woodi left 06:54 __david__ joined
joyer pugs: say "are you there"; 06:56
p6eval pugs: OUTPUT«are you there␤»
06:59 Axius joined, Woodi joined 07:09 _twitch joined 07:10 satyavvd joined 07:12 satyavvd_ joined 07:14 satyavvd left, satyavvd_ is now known as satyavvd 07:16 risou left 07:17 risou joined
dalek ecza: 6250090 | sorear++ | / (3 files):
Give responsibility for vivifying the container to at-key
07:19
07:20 redicaps1 left
ch3ck3r !seen masak 07:25
!seen ch3ck
!seen dalek
!seen ch3ck3r 07:26
07:26 Woodi left
sorear aloha, seen ch3ck3r 07:26
aloha sorear: ch3ck3r was last seen in #perl6 25 seconds ago saying "!seen ch3ck3r".
sorear what made you think !seen would work?
ch3ck3r it does work 07:27
!seen sorear 07:28
-dalek- ch3ck3r: sorear (~root@209.9.237.164) was last seen saying "what made you think ..." on #perl6 on freenode on Sat Nov 27 07:26:49 2010, that was 1m 26s ago
chatting as root, hm 07:29
07:35 Axius left 07:36 Axius joined 07:41 alc joined 07:45 dd-sphere joined, dd-sphere is now known as ch3ck 07:48 ch3ck3r left 07:50 Woodi joined 08:06 wallberg joined
sorear $ary[$i] = $i until ($i++) == 1_000_000; # 0.66 us Perl 5 08:08
08:13 _kaare joined
sorear 22637 us Rakudo. I wonder if I should file a bug for this, it's by far the largest perl 5 / rakudo speed difference I've seen 08:15
er, 2637 08:16
2263
messed up my division there
factor of 3000 is much more reasonable
08:17 risou_ joined 08:19 risou left 08:20 ch3ck3r joined 08:22 ch3ck left 08:31 Chillance joined 08:32 kanishka left 08:36 kanishka joined 08:38 kanishka left 08:45 nymacro_ joined 08:51 ch3ck3r left 08:56 Axius left
dalek ecza: a7608c4 | sorear++ | / (2 files):
Move Array, Hash, List into bootstrap class list
09:17
ecza: 009826c | sorear++ | / (3 files):
Extend hash optimizations to arrays
09:19 nymacro_ left 09:28 mavrc joined
dalek ecza: cafc254 | sorear++ | v6/tryfile:
[v6] Remove conflicting code
09:52
10:02 lichtkind joined
lichtkind hai 10:04
10:05 jferrero joined 10:07 mj41 joined 10:10 wallberg left
sorear hi 10:10
lichtkind sorear: thanks now i can better show the grantmanager that iv done something :) 10:17
karma HerbertBreunung 10:20
aloha HerbertBreunung has karma of 0.
lichtkind karma Herbert Breunung
aloha Herbert Breunung has karma of 93.
10:26 jferrero left 10:31 MayDaniel joined 10:43 pjcj left 10:44 jhuni left 10:54 MayDaniel left
dalek ecza: 80a8307 | sorear++ | lib/ (2 files):
Use a Bloom filter to speed up contextual processing
10:58
11:13 rurban joined 11:25 rurban left 11:32 pjcj joined 11:44 pjcj left 11:45 pjcj joined 11:50 PacoLinux left 11:57 newbie joined 11:59 alc left 12:00 alc joined 12:01 MayDaniel joined 12:12 thelazydeveloper joined 12:18 risou joined 12:19 risou_ left 12:24 satyavvd left 12:29 newbie left
ingy sorear++ # niecza build so easy 12:36
12:36 lichtkind left 12:37 satyavvd joined 12:39 PacoLinux joined, MayDaniel left 12:46 pmurias_ joined 12:47 pmurias_ left 12:48 pmurias joined, araujo joined, araujo left, araujo joined 12:49 satyavvd left, satyavvd joined 13:13 wamba joined 13:16 kanishka joined 13:24 Patterner left 13:32 araujo left, araujo joined, araujo left, araujo joined 13:34 satyavvd_ joined, satyavvd left, satyavvd_ is now known as satyavvd 13:36 Psyche^ joined, Psyche^ is now known as Patterner 13:37 nymacro left 13:53 lichtkind joined 13:59 nymacro joined 14:06 drake1 joined
drake1 dynamic evaluation in perl6, how does that work? 14:06
and what about local globals? 14:07
jnthn rakudo: my $x = 'say(42)'; eval($x) # you mean this? 14:08
p6eval rakudo : OUTPUT«42␤»
drake1 yes
jnthn rakudo: my $x = 'say($y)'; my $y = 69; eval($x)
p6eval rakudo : OUTPUT«69␤»
jnthn It can see the outer lexical scope where eval was called.
*scopes
And $*foo vars too.
drake1 ok 14:10
perl6 doesn't have global variables like $/ and $. ? 14:17
14:21 nymacro left
jnthn $/, $! and $_ remain but are now lexical, not global. 14:22
drake1 ok. thats pretty clean 14:23
jnthn Yeah. There is a way to put stuff in to a global scope, but afaik Perl 6 puts nothing of its own there. 14:24
drake1 then it's faster to learn 14:25
like in C where a block can have local objects that hide away the globals 14:28
simply be redeclaration 14:29
(not to mention implicit / restrict pointers to temporary objects) 14:33
14:36 ashleydev left, ashleydev joined, frew joined 14:39 alc left 14:40 [hudnix] joined 14:42 MayDaniel joined
drake1 does perl6 use getc, putc, fread and fwrite from the local C library? 14:51
14:51 maluco joined 14:53 gabiruh joined
drake1 C library / stdio object. sry 14:53
14:56 frew left, frew joined 14:59 alc joined
tadzik drake1: it uses Parrot opcodes, not the C library itself 14:59
Parrot may use C under the hood
drake1: if by Perl 6 you mean Rakudo 15:00
drake1 fine heheh
tadzik Niecza for example uses .NET stuff, IIRC
drake1 up to the Parrot then
sometimes I have to ponder whether regular ascii strings are a slower base encoding than binary 15:04
of course with a optimized type system, things have to turn a bit faster 15:05
15:08 toebu joined
drake1 depends the amount of evaluation 15:08
15:14 nymacro joined
drake1 not for rapid meta-programming, probably 15:15
15:16 nymacro left
drake1 can perl5 modules be used in perl6? 15:18
15:19 risou_ joined 15:20 risou left, whiteknight joined
drake1 for example, I just updated a PSF module for console fonts in perl5. could that be used directly in perl6? 15:21
tadzik you cantry. Blizkost runs some of the modules 15:23
drake1 good idea
15:25 jferrero joined 15:29 simon left 15:31 colomon left
drake1 maybe a few include(``'')'s could ease the pain. heh 15:36
15:36 wamba left
tadzik hm? 15:37
drake1 in a build system for both perl5 and 6
tadzik that's exactly what's wrong with the build system 15:40
drake1 this one has: cat common $(version_specific) common ... alike rules 15:41
without a proper viewer, the include(`') style is probably the most comprehensive 15:43
tadzik I don't think I understand your poing 15:46
s/poing/point/
drake1 when the cat concatenates the individual version according to macro options, some kind of viewer is needed to be able to see the whole thing 15:47
since the source is fragmented into version specific and common files 15:48
(that comprise the individual sections) 15:51
15:53 bluescreen joined, wamba joined, bluescreen is now known as Guest54855 16:01 whiteknight left
drake1 although # file_name headers could provide for the achor points, from a preprocessed version specific source 16:01
s/preprocessed/concatenated 16:02
16:06 toebu left
drake1 does perl6 use the source files in the library files? 16:10
or Parrot bytecode?
TimToady define "use"
jnthn In general, source files are authoratitive and any compiled versions are "cash" 16:11
er
cache
TimToady source files are treated hygienically though, not like includes
jnthn aye 16:12
drake1 when a program is going to use / load a library in the beginning, are the library files taken from their source stage or parrot byutecode?
TimToady perl6 officially doesn't care
jnthn drake1: Implementation dependent.
drake1 ok 16:13
16:14 joyer` joined
drake1 jnthn: sounds close to perl5 with a boost 16:15
16:16 joyer left
drake1 just what if someone wanted to make cach on a library, would that someone have to provide the source to authorize the cache 16:19
16:20 satyavvd left
drake1 cash 16:20
hopefully, the parrot bytecode stage wont require an authoritative parent source 16:24
TimToady for official modules Perl 6 requires only an unspoofable and immutable identity 16:26
drake1 does that even exist? 16:27
TimToady it will
drake1 maybe so
TimToady once you have a universal naming scheme for immutable objects, you can get copies of those objects from anywhere
this solves most of the module scaling issues 16:28
drake1 good point
TimToady essentially the same approach as git and .NET
drake1 for all the hosts that are your friends
TimToady the cryptochecksum can be recalculated against the source, if you're paranoid 16:29
drake1 some hosts should be allowed to provide a variety of compositions imo
TimToady dunno what you mean
drake1 like with individual contents and hashes 16:30
TimToady dunno what you mean
drake1 or else the identity scheme won't allow decentralized dynamic distributions
only in the master / slave sense 16:31
TimToady thinks that's someone else's problem :)
Perl 6's responsibility stops at identifying the desired module uniquely. 16:32
drake1 like everyone should trust the same authority
as long as it's just the path name, then you're right. completely left to the package manager 16:33
16:34 cognominal joined
TimToady sure, except maybe there's no path 16:35
drake1 yeah 16:36
/usr/perl is a fine authority 16:37
TimToady but to the abstract database lookup to find the actual module contents, it's just a stringy part of the universal module indicator. 16:38
in fact, we might as well call them UMIs 16:39
drake1 whatever they like
might work with the HAT hash
TimToady as long as a given module longname (UMI) always maps to the same immutable chunk of code (or its derivatives), P6 is happy 16:40
flussence module name + version + sha256 would be a good start...
drake1 fine
TimToady wildcard "use" is a step before that to translate a short name to a long name 16:41
+ auth
drake1 no need for sha
maybe in the package manager
flussence yeah, that sounds about right
TimToady yes, at least there
drake1 the HAT is only to look them up fater
faster* 16:42
TimToady ENOCARE
flussence doesn't the Encode module in p5 work a bit like this already?
with encoding alias lookups and stuff
TimToady EDUNNO 16:43
drake1 I used it for file handle ties, so characters written were local to the mode of interpretation
flussence that was the first thing that came to mind, I had to do charset translation for some horrible embedded hardware a while back :)
TimToady any number of shortname schemes can be layered on top of a longname scheme, but the converse is not true 16:45
drake1 with the utf8 flag or not, basically
moritz_ there is not UTF8 flag, and Juerd is its prophet. 16:46
TimToady so the best approach is if there is a good 1::1 correspondence between longnames ("URI") and immutable identity, and all shortname schemes are considered customizations or intentionally declared generic code 16:48
accidentally generic (underspecified) code is what tends to break as we go forward 16:49
to the extent that the entire system (including runtime support) is specified using immutable code, it tends to be unbreakable 16:51
breakages happen if the code is not immutable 16:52
they also happen if you don't actually have the code anymore, but borken proxy links to it
so the source code is important in that respect
16:53 mila__ joined
TimToady if the entire semantics of a program can be expressed bootstrappishly in Perl 6 (modulo a few primitives), then a snapshot of that entire code set is quite stable 16:54
of course, that will run very slowly, and optimizers also break code regularly :) 16:55
Juerd moritz_: Prophet of the UTF8 flag?! :)
16:56 mila_ left
TimToady so which newspaper will be the first to publish cartoons of Juerd? 16:57
16:58 MayDaniel left
Juerd It's best to pretend the flag doesn't exist. Something that doesn't exist may very well have prophets, but I'm certainly not one of them. 16:58
drake1 piston coffee is quite a bit more instant than made by regular machines 16:59
17:00 alc left
jnthn Doesn't it taste bad if it's been piston? 17:00
jnthn duck 17:01
s
TimToady Juerd: so from that I can deduce that you don't care to differentiate between something not existing and you pretending it doesn't exist :)
drake1 quite the same
Juerd TimToady: Entirely correct
dalek odel: 5c00aa5 | jonathan++ | dotnet/compiler/ (2 files):
[dotnet] Make DNST::Local behave a little more like other nodes. Also, now we have it, use it in a couple of places that I shoulda before.
17:02
TimToady must be convenient...
drake1 perl5 wouldn't work with the CTYPE environment afaik 17:03
17:03 jferrero left
drake1 equivalence classes and sh** would need explicit `use ..' statements etc. 17:05
17:08 jferrero joined
drake1 no great wonder since glibc uses wicked locale files 17:16
allbery_b l10n is hard, let's go shopping 17:18
drake1 perl wouldn't easily be able to compile the pattern engine nor specify something sane
yeah, thats my own conclusion, allbery 17:19
TimToady it should be possible to ask for braindamaged semantics, but it shouldn't be the default 17:22
allbery_b sadly, I think that while that's a nice idea in principle, it limits interoperability with pretty much everything 17:23
17:25 colomon joined
drake1 until they turn straight, local compensations might be the best 17:25
17:26 joyer` left, joyer` joined 17:31 lichtkind left
drake1 when you can't change the whole world; then at least show a good example 17:32
TimToady all is fair if you predeclare, including "use StupidStuff;" 17:33
drake1 only a little bit cumbersome 17:34
17:35 mikehh joined
drake1 like the read ends of the `tee' needs duplication 17:36
17:37 MayDaniel joined 17:38 envi left 17:40 mila_ joined 17:42 maluco_ joined 17:43 mavrc left 17:44 colomon_ joined 17:45 thelazydeveloper left 17:46 colomon left, mila__ left, maluco left, colomon_ is now known as colomon
drake1 Im off to add a todo to a PSF module. bye 17:50
17:50 drake1 left 17:51 ch3ck joined
tadzik seen mberends? 17:59
aloha mberends was last seen in #perl6 3 days 11 hours ago saying "masak: o/".
18:08 nadim left 18:15 mavrc joined
dalek odel: d253bff | jonathan++ | dotnet/compiler/DNST.pm:
[dotnet] Oops, :name for DNST::Local is required.
18:15
odel: 7f69a02 | jonathan++ | dotnet/compiler/PAST2DNSTCompiler.pm:
[dotnet] Refactor emit_op that diakopter++ added, and then use it in various places in PAST2DNST.pm, which makes things neater/shorter.
18:17 justatheory joined 18:19 lamstyle left
dalek odel: f1d5648 | jonathan++ | dotnet/compiler/PAST2DNSTCompiler.pm:
[dotnet] A similar refactor for emit_call.
18:19
jnthn afk, noms 18:22
tadzik rakudo: class A { has $.method; }; say A.can('method') 18:24
p6eval rakudo : ( no output )
tadzik rakudo: class A { has $.method; }; say A.can('method'); say 'alive'
p6eval rakudo : OUTPUT«alive␤»
18:39 joyer`` joined, jql_ joined, moritz__ joined, Infinoid_ joined, sftp_ joined, Sarten-X2 joined, PacoLinux_ joined, kanishka left, sbp joined, kfo left, zby left, PacoLinux left, mila_ left, PacoLinux_ is now known as PacoLinux, nperez_ joined, kfo joined, drbean_ joined, kst` joined, Sarten-X left, `26 left, nsh left, mj41_ joined, Helios- joined, knewt2 left, ch3ck left, Chillance left, clkao left, shabble left, cotto left, simcop2387 left, f00li5h left, pothos left, sunnavy left, robinsmidsrod left, florz left, nperez left, szbalint_ joined, _jaldhar joined, Infinoid left, cookys left, jasonmay left, diakopter joined 18:40 cookys_ joined, jferrero left, __david__ left, colomon left, MayDaniel left, mavrc left, sftp left, mikehh left, hercynium left
tadzik hmm, any PSGI-familiar person? 18:40
18:40 zby_ joined, joyer` left, __david__ joined, explorer__ joined, mikehh_ joined, mila__ joined, slavik2 joined, TypeNameHere____ left, cosimo left, BinGOs joined, BinGOs left, BinGOs joined, dalek joined, ChanServ sets mode: +v dalek, ch3ck joined, Chillance joined, clkao joined, shabble joined, cotto joined, simcop2387 joined, f00li5h joined, pothos joined, sunnavy joined, nsh- joined, cosimo joined, y3llow joined, allbery_b joined, tylerni7 joined, tylerni7 left, tylerni7 joined 18:41 lamstyle joined, jedai joined
TimToady tadzik: try again not in the middle of a major netsplit :) 18:41
18:41 mj41 left 18:42 dual left, mj41_ is now known as mj41 18:43 robins joined, hercynium joined, florz joined, kolibrie joined 18:44 nsh joined, bbkr joined, knewt2 joined, ch3ck3r joined, solarion joined, hercynium left, hercynium joined, lamstyle left, lamstyle joined, jasonmay joined 18:45 spacebat joined, sjn_ joined 18:46 ch3ck left 18:47 frettled joined, d4l3k_ joined 18:48 breinbaa1 joined, dual joined, tadzik1 joined, breinbaa1 left, solarion left, solarion joined 18:49 zby joined, ironcame1 joined 18:50 betterwo1ld joined, __david__ left, zby_ left, dalek left, betterworld left, __david__ joined, chitragupt joined 18:51 d4l3k_ is now known as dalek, ChanServ sets mode: +v dalek 18:52 pmeursault joined, tadzik1 is now known as tadzik 18:55 breinbaas joined 18:56 `26 joined 19:04 jedai left, cognominal left, Kovensky left 19:05 mavrc joined, dd-sphere joined, BooK_ joined, Koven joined
tadzik loliblogged! ttjjss.wordpress.com/2010/11/27/gra...p-further/ 19:05
19:05 jedai_ joined, exodist_ joined, cognominal_ joined
moritz__ Juerd: more like "prophet of ignoring the UTF8 flag" 19:06
19:06 ch3ck3r left
Juerd :) 19:06
19:07 PZt joined 19:08 moritz__ is now known as moritz_ 19:13 nadim joined 19:17 sftp_ left, sftp_ joined
tadzik oh, the advent calendar is close 19:20
19:22 jnthn_ joined 19:23 Eevee_ joined, Eevee left, jnthn left 19:25 mavrc left 19:27 jnthn_ left 19:28 jnthn joined, drake1 joined
drake1 look www.gangsterfreak.com/vcfed - Now with Perl6 / Rakudo directions 19:28
19:30 Gruber joined 19:31 d4l3k_ joined, Maddingue left, jferrero joined, kst`` joined 19:32 sjn_ left, sjn joined, MayDaniel joined, `26 left, xinming left 19:33 mikehh__ joined 19:34 exodist_ left, zby_ joined, risou joined, shelling_lab joined, wolveria1 joined, hercynium_ joined, y3llow_ joined 19:35 rokoteko_ joined, mila_ joined, risou_ left, Kovensky joined 19:36 exodist joined
tadzik nice 19:36
19:36 pmeursault left, mikehh_ left, hercynium left, Trashlord left, Koven left, mila__ left, allbery_b left, slavik2 left, drake1 left, BinGOs left, Trashlord joined, BinGOs joined, kolibrie left, cosimo left, allbery_b joined 19:37 slavik1 joined, tadzik left, dalek left, kst` left, phenny joined, kolibrie_ joined, Maddingu1 joined, y3llow left, cosimo_ joined, orafu left, explorer__ left, zby left, diakopter left, diakopter joined, y3llow_ is now known as y3llow, Juerd_ joined, tadzik joined, Juerd_ is now known as Juerd, lue joined 19:38 zb joined, OuLouFu joined, d4l3k_ is now known as dalek, ChanServ sets mode: +v dalek, OuLouFu is now known as orafu, xinming joined, `26 joined, `26 left, `26 joined 19:39 jdv79 joined
sorear good * #perl6 19:53
tadzik hello sorear 19:55
19:57 szbalint_ is now known as szbalint
sorear TimToady: How do I go from STD:auth<perl.org>:ver<6.0.0> to <xdigit>**64 ? 19:59
TimToady don't much care, as long as STD:auth<perl.org>:ver<6.0.0> always means the same thing everywhere 20:04
I've excapsulated library issues :) 20:05
`26 I've mental issues :)
20:14 rindolf joined
rindolf Hi all. 20:14
20:14 MayDaniel left
tadzik hi rindolf 20:14
20:14 ch3ck3r joined
sorear Hello rindolf 20:14
tadzik while the netsplit is gone, and everyone's up again:
loliblogged! ttjjss.wordpress.com/2010/11/27/gra...p-further/ 20:15
rindolf tadzik: , sorear : What's up?
tadzik rindolf: fun :) 20:16
20:18 dd-sphere left 20:20 hillu joined
oha is it possible to declare a Q:FOO{foo $bar cuz} so that the user defined function is called with ("foo ", \$bar, " cuz") or something similar? are there plans for? 20:21
moritz_ oha: I'm sure you can do that with macros... eventually
oha are macros available on rakudo? 20:22
moritz_ no
that's why I said "eventually" :-) 20:23
sorear niecza: my $bar = 123; my @foo = do { sub infix:<~>(*@x) { @x }; "foo $bar cuz" }; say @foo.dump
p6eval niecza 80a8307: OUTPUT«["foo ", 123, " cuz"]␤»
sorear I'm not sure if this counts as a bug
but it's possibly relevant
moritz_ that's... evil. And cute. 20:24
oha sorear: i've tried with rakudo, but was not able to. 20:25
moritz_ rkaudo probably uses a lower-level concatenation for string interpolation
oha moritz_: yep, i've checked the grammar and it seems so to me. 20:26
moritz_ I think the specification is silent about that aspect. 20:28
oha moritz_: but i get lost and i was not sure
would be nice to have a Q:SOMETHING{ ... }
moritz_ rakudo: my $bar = 123; my @foo = do { our sub infix:<~>(*@x) { @x }; "foo $bar cuz" }; say @foo.perl 20:29
p6eval rakudo : OUTPUT«["foo 123 cuz"]␤»
sorear where did the space after 123 come from
moritz_ rakudo: my $bar = 123; say (do { our sub infix:<~>(*@x) { @x }; "foo $bar cuz" }).split(/\s+/).perl 20:30
p6eval rakudo : OUTPUT«("foo", "123", "cuz")␤»
moritz_ :-)
oha moritz_: but sorear is right, isn't there an unwanted space?
moritz_ oha: maybe the returned array is stringified, and that adds a space between the elements 20:32
oha rakudo: my $bar = 123; my @foo = do { our sub infix:<~>(*@x) { say "dbg> "~@x.perl; @x }; "foo $bar cuz" }; say @foo.perl 20:34
sorear but there's only the one space in foo $bar
p6eval rakudo : OUTPUT«(timeout)»
oha emh... i'm stupid :)
rakudo: my $bar = 123; { our sub infix:<~>(*@x) { say @x.perl; @x }; "foo $bar cuz" } 20:35
p6eval rakudo : OUTPUT«["123", " "]␤»
oha the trick which put back the space captured after $bar?
i've read it in the grammar
rakudo: my $bar = 123; { our sub infix:<~>(*@x) { say @x.perl; @x }; "foo[$bar]cuz" } 20:36
p6eval rakudo : ( no output )
oha interesting... 20:37
20:38 Gruber is now known as Grrrr 20:39 pmeursault joined
oha my @v; my $x=12; my $y='ab'; { our sub infix:<~>($a,$b) { push @v, $a; '?' }; say "select * from table where x = $x and y = $y ;", @v } 20:39
sorear .perl uses ~
oha (i'm sorry for the CPU which host p6eval :) 20:40
sorear you're not using any CPU now
oha rakudo: my @v; my $x=12; my $y='ab'; { our sub infix:<~>($a,$b) { push @v, $a; '?' }; say "select * from table where x = $x and y = $y ;", @v }
p6eval rakudo : OUTPUT«select * from table where x = ?and y = ?;12ab␤»
oha (forgot rakudo)
nice! 20:41
20:41 y3llow_ joined, pothos_ joined
oha rakudo: my @v; my $x=12; my $y='ab'; { our sub infix:<~>($a,$b) { push @v, $a; '? ' }; say "select * from table where x = $x and y = $y ;", [@v] } 20:41
p6eval rakudo : OUTPUT«select * from table where x = ? and y = ? ;12 ab␤»
20:42 rindolf left, pothos left 20:43 pothos_ is now known as pothos, y3llow left 20:44 y3llow_ is now known as y3llow 20:49 misterme joined 20:54 misterme left 21:03 pmurias left 21:16 jferrero left 21:25 masak joined
masak ahoj! 21:26
phenny masak: 26 Nov 23:07Z <eternaleye> tell masak Hey! I read HP & the methods of rationality too! I prticularly like how Draco was absolutely floored by muggles being the first humans on the moon.
masak eternaleye: :)
jnthn o/ masak 21:27
masak \o
tadzik ahoj masak! 21:29
masak if you haven't seen this, you probably should. interview with Grace Hopper. www.youtube.com/watch?v=57bfxsiVTd4 21:32
21:34 jql_ is now known as jql 21:42 dd-sphere joined
tadzik lovely lady 21:45
21:46 ch3ck3r left
sorear hello masak! 21:48
masak good evening. 21:49
rakudo: say 4.roots.perl 21:52
p6eval rakudo : OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in 'roots' at line 3414:CORE.setting␤ in main program body at line 22:/tmp/1G2Mb1llu_␤»
masak oh, right. 21:53
rakudo: say 4.roots(2).perl
p6eval rakudo : OUTPUT«(Complex.new(2, 0), Complex.new(-2, 2.44929359829471e-16))␤»
masak submits rakudobug
thanks to VienosNotes++ on twitter. twitter.com/VienosNotes/status/8632485453766656
tadzik masak: seen my blog toast? 21:57
21:57 gbacon joined
masak tadzik: no; haven't backlogged yet. 21:57
is it about .roots?
tadzik no, about PSGI and grammars
masak ah; looks promising :) 21:58
I'll get to it. right now I need to focus on Web.pm
tadzik I thought about writing a dispatcher for Web in grammars, if that's possible 22:05
masak might well be. 22:06
22:06 wamba left
sorear perl 6 PSGI ? 22:12
lue ohai o/ 22:14
masak hilue.
dd-sphere godkväll masak \o
masak god afton dd-sphere.
22:14 dd-sphere is now known as ch3ck
masak thought so :) 22:14
ch3ck :D
tadzik sorear: ttjjss.wordpress.com 22:15
masak rakudo: my $answer = [] but role { method postcircumfix:<( )>( ($arg) ) { say "You called me with argument $arg" } }; $answer(5) 22:18
p6eval rakudo : OUTPUT«You called me with argument 5␤»
masak rakudo: my $answer = 42 but role { method postcircumfix:<( )>( ($arg) ) { say "You called me with argument $arg" } }; $answer(5)
p6eval rakudo : OUTPUT«invoke() not implemented in class 'Integer'␤ in main program body at line 22:/tmp/4wO4WdYY7v␤»
masak submits rakudobug
22:19 ch3ck3r joined
masak rakudo: my $x = [] but role {}; say "alive" 22:19
p6eval rakudo : OUTPUT«alive␤»
masak rakudo: my $x = class {} but role {}; say "alive"
p6eval rakudo : OUTPUT«Attempt to use rebless_subclass where the new class was not a subclass␤ in 'infix:<does>' at line 7294:CORE.setting␤ in 'infix:<does>' at line 582:CORE.setting␤ in 'infix:<but>' at line 609:CORE.setting␤ in main program body at line 22:/tmp/i4TLL1ncR2␤»
masak submits rakudobug
jnthn Two bugs that couldn't happen in 6model... 22:20
masak :)
talk is cheap :P
masak hides
diakopter :P 22:21
jnthn calls up an Uppsala polar bear to go chase masak a bit
masak I think I may have deserved that. 22:22
the sad thing? I was just toying around trying to recall what to put in the parameter list of postcircumfix:<( )>
jnthn a capture
I'm a bit surprised that doesn't work... 22:23
22:23 ch3ck left
jnthn OTOH I fear the way we handle overriding v-table invoke in Parrot is...weird. 22:23
masak I was surprised too.
jnthn I don't know that it shoudl matter though.
Hm
masak I've mixed other stuff into integers, and it worked fine.
rakudo: role R {}; my $x = class {} but R; say "alive" 22:24
p6eval rakudo : OUTPUT«Attempt to use rebless_subclass where the new class was not a subclass␤ in 'infix:<does>' at line 7294:CORE.setting␤ in 'infix:<does>' at line 582:CORE.setting␤ in 'infix:<but>' at line 609:CORE.setting␤ in main program body at line 22:/tmp/Q5q96Y3ZP0␤»
jnthn masak: That one is because of the way type objects are done. 22:25
masak rakudo: role R {}; my $x = (class {}).new but R; say "alive"
p6eval rakudo : OUTPUT«alive␤»
masak ah.
jnthn Yeah.
Trying to fix that was one of the things that told me, "OK, we need type objects to REALLY be the same type"
masak rakudo: my $x = (role {}) but role {}; say "alive"
p6eval rakudo : OUTPUT«Attempt to use rebless_subclass where the new class was not a subclass␤ in 'infix:<does>' at line 7294:CORE.setting␤ in 'infix:<does>' at line 582:CORE.setting␤ in 'infix:<but>' at line 609:CORE.setting␤ in main program body at line 22:/tmp/hhrZMRYBT_␤» 22:26
22:26 ch3ck joined
masak jnthn: same as what? 22:26
ah.
as their instantiated cousins.
yeah, that sounds like a good idea.
22:26 Guest54855 left
jnthn Right :) 22:28
sorear jnthn: care to elaborate? I was about to do the opposite
22:28 ch3ck3r left
masak like how his demolishing things can contribute to developer discussion :) 22:28
jnthn sorear: Mixing a role into something means that it's had an in-place change of type.
diakopter rakudo: say (role role { say (role role { }).WHAT }).WHAT.perl.eval
p6eval rakudo : ( no output )
jnthn sorear: Which it turns out gets awkward at times. 22:29
masak and diakopter is his same old evil self, I see :P
jnthn sorear: er, I mean...
sorear: It gets awkward if you make the type object an instance with a role mixed in.
I argued it was OK for a while too, then saw myself having to put in a bunch of special cases. 22:30
SMOP called that one right. 22:31
lue Is there a nifty way to see if a string is valid pair notation? [writing a looong regex would be fine with me, but it doesn't seem like the smart way] 22:34
22:36 mila_ left
TimToady rakudo: say eval(':foo<bar>') ~~ Pair 22:38
p6eval rakudo : OUTPUT«1␤»
TimToady for some definition of "nifty" that isn't very
masak alternatively, run it through the built-in Perl 6 grammar and see what AST node pops out :) 22:39
TimToady rakudo: use STD;
p6eval rakudo : OUTPUT«===SORRY!===␤Unable to find module 'STD' in the @*INC directories.␤(@*INC contains:␤ lib␤ /home/p6eval/.perl6/lib␤ /home/p6eval/p1/lib/parrot/2.10.0-devel/languages/perl6/lib␤ .)␤»
lue that's pretty nifty. 22:40
jnthn rakudo: if Perl6::Grammar.parse(':foo<bar>', rule => 'colonpair') { say "yes" }
p6eval rakudo : OUTPUT«===SORRY!===␤Malformed regex at line 22, near "=> 'colonp"␤»
jnthn ffs
masak huh?
jnthn rakudo: if Perl6::Grammar.parse(':foo<bar>', :rule<colonpair>) { say "yes" }
masak ah!
p6eval rakudo : OUTPUT«yes␤»
masak 'rule'
jnthn rakudo: if Perl6::Grammar.parse(':foo<bar', :rule<colonpair>) { say "yes" }
p6eval rakudo : OUTPUT«yes␤»
jnthn Oh.
oh yeah
:foo *is* a colonpair.. :) 22:41
masak std: rule => 'colonpair'
p6eval std a194beb: OUTPUT«ok 00:01 119m␤»
jnthn rakudo: if Perl6::Grammar.parse('foo<bar', :rule<colonpair>) { say "yes" }
p6eval rakudo : ( no output )
jnthn Yeah, works.
masak we already have a similar RT ticket about things that don't autoquote correctly in pairs.
jnthn yeah
22:42 bluescreen joined
lue rakudo: say eval('foo => 1') ~~ Pair 22:42
p6eval rakudo : OUTPUT«1␤»
22:42 bluescreen is now known as Guest24421
lue rakudo: say eval('Pear') ~~ Pair 22:42
p6eval rakudo : OUTPUT«0␤»
TimToady rakudo: say eval(':foo<bar') ~~ Pair 22:43
p6eval rakudo : OUTPUT«0␤»
TimToady we oughta have a parse primitive that uses the current language
jnthn $*LANG.parse ...?
TimToady $?LANG maybe
jnthn ah, yeah 22:44
compy time.
TimToady but it would be nice to have access to the various bits of eval
lue if only I could get that in a regex...
sorear %*LANG surely 22:47
sigil invariance
TimToady %?LANG then
sorear $~MAIN anyway
when are constants run?
TimToady but sub parse wants to be able to get at CALLER::<$~MAIN> 22:48
constant definitions always run at compile time
an enum is their prophet
all declarations are funny constant declarations, really 22:49
22:50 jhuni joined
sorear what should I do about constant FOO = ... if my compiler doesn't have a Perl 6 interpreter available 22:52
TimToady re type objects, I've always thought of them as a kind of photon/gluon that carries a "type charge" on a massless object 22:53
sorear: write one
it is a requirement of Perl 6 compilers to be able to run code at compile time
constants are just a way to name a constant folding 22:54
in any case, it is required that BEGIN run as soon as parsed 22:55
masak due to BEGIN, a compiler needs to have a runtime. due to eval, a runtime needs to have a compiler. 22:56
TimToady yes, they are both extreme safety valves that we use to discover places where we haven't designed other, safer ways to do it 22:58
dalek odel: 40db931 | jonathan++ | dotnet/compiler/PAST2DNSTCompiler.pm:
[dotnet] Implement viviself for PAST::Var scope attribute.
TimToady so we see that, in theory, we can avoid the eval above with a sufficiently advanced parser interface
sorear hasn't figured out how to make BEGIN work sanely with a precompiler 22:59
TimToady likewise, suffiently advanced declarative magic prevents the need for most BEGINs
masak any sufficiently advanced parser interface is indistinguishable from Perl 6 :)
sorear if I'm running user code at compile time, I need to account for the possibility of module B changing module A's serialized data
TimToady just so
well, I've gotta decommute from SoCal now 23:00
jnthn sorear: That one worries me a lot too.
sorear: Before long, we've had to write an object version control system. :)
sorear or what if I load module B at runtime, but the main program has made significant changes to module A's serialized data and it no longer matches what B was linked against?
TimToady you mean you used MONKEY_TYPING on B? 23:01
then you get what you deserve
23:01 nrr joined
TimToady somewhere it's specced that the meaning of B should not depend on the main program 23:02
sorear more like
lue can you match pair notation inside a regex?
sorear module A { our $x = 1; }; module B { $A::x = 2 };
the precompiler runs the assignments
now use A; use B; say $A::x; 23:03
TimToady you used globals. you lose.
masak lue: you should be able to call the <colonpair> rule from inside a regex, yes.
jnthn The module body doesn't run at BEGIN time? 23:04
So that one ain't an issue...
dalek ecza: 670df6e | sorear++ | / (5 files):
Extend primitivization to most scalar operators
TimToady anyway, BEGIN is what it is, and I gotta run
well, drive...
sorear aww I missed you 23:05
TimToady bbl & # ~7 hours
sorear oh
if it's only 7 hours you weren't quite So enough, nm
\o/ parsed STD.pm6 in 59 seconds 23:06
diakopter wow 23:07
23:12 starcoder left 23:13 Eevee_ is now known as Eevee, _kaare left 23:19 starcoder joined
masak starcoder: where were you when we released Rakudo Star? :) 23:31
starcoder hehe 23:32
masak blog post! strangelyconsistent.org/blog/novemb...n-planning 23:33
23:35 cotto left
masak goes home 23:38
23:38 masak left, pmeursault left
dalek odel: e3468dd | diakopter++ | common/NQP/P6Objects.pm:
[common] fix regression due to jnthn++ 's real fix in Op.repr_defined
23:39
23:42 robins left 23:44 robinsmidsrod joined 23:47 robinsmidsrod left 23:48 robinsmidsrod joined
diakopter jnthn++ writing the tests that make my brain boil to think about writing 23:52
23:52 TypeNameHere____ joined
dalek odel: b2c6bf9 | jonathan++ | dotnet/runtime/Runtime/Ops/Metamodel.cs:
[dotnet] Simply repr_defined now that we have attr viviself and needn't work around NREs.
23:53
odel: 0094141 | jonathan++ | t/nqp/57-attributes.t:
[t] Add test to cover attribute auto-viv.
odel: 7bbf3f8 | jonathan++ | t/nqp/45-smartmatch.t:
[t] Add a muchly simplified version of 45-smartmatch.t. It's enough to make sure that I don't break the regex impl as it stands so far again, hopefully. :)
sorear what exactly is viviself? 23:55
jnthn sorear: It's an attribute on PAST::Var nodes that says what to do if the thing the lookup produces is null 23:56
diakopter while compiling, a way to track what sigil...yeah
sorear you can't use defined-or for that/ 23:58
diakopter but that's what it's compiling.. the way to test definedness
jnthn null = should never leak into userland
defined-or tests .defined 23:59
Well
sometimes we use repr_defiend directly but...
...that unless overridden boils down to repr_defined