»ö« 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.
Moukeddar i'm stuck too, i have an OSS freak teaching us, what a pain 00:00
00:09 Moukeddar left 00:17 dorlamm joined
Timbus sorear, that's a good point. I was going to use gtk and anyevent, maybe with coro, but since I need serial port communication, it might be a serious blocker 00:20
what a terrible unintended pun
sorear Timbus: if it's all going with serial ports anyevent should work fine 00:22
Timbus I'm only used to working with Device::Serialport, which is terrible. and it blocks. 00:24
and with the possibility that this will need to run on windows, can I access the serial like it was a normal filehandle? I don't know 00:25
00:29 silug joined
sorear on Linux there is nothing special about accessing the serial port; it's just /dev/ttyS0, open it and access it as a filehandle 00:31
you'll need to use POSIX::tcsetattr and friends to set up I/O parameters
I don't know about Windows serial port access, but the existance of System.IO.Ports makes me doubt you can just treat the serial port as a file under Windows 00:32
because if you could, people would just use the ordinary classes in System.IO... 00:33
00:37 replore joined
Timbus probably the wrong words. 'as a file' => 'as an IO handle' 00:37
specifically one that I can wait on
because a GUI shouldnt freeze waiting for IO 00:39
sorear AnyEvent will definitely work with serial port FDs on Unixes 00:40
it has to, because serial ports are considered a kind of terminal, and when you run irssi on a terminal it has to wait for either a key press or socket input 00:41
Timbus good point 00:42
guess I'll convince my work to run an ubuntu box
won't be hard to do
00:47 tokuhirom left 00:51 dorlamm left
sorear Timbus: I'm not saying it's hard to do on Windows, only that I have no experience 00:53
01:02 hypolin joined 01:09 woosley joined, woosley left 01:10 woosley joined, woosley left 01:13 packetknife joined 01:24 mkramer joined 01:25 pluto_ joined, mkramer left, mkramer joined 01:26 woosley joined 01:31 daniel-s joined 01:36 mkramer left 01:48 packetknife left 02:10 overrosy left 02:11 overrosy joined 02:43 cooper left 02:46 benabik joined 03:08 Guest74144 left
diakopter in case anyone wants to see method quant for NFA.nqp (it won't be committed unless we get some good tests for it by tomorrow) gist.github.com/1372240 03:10
WFM though
03:19 wolfman2000 joined 03:56 mkramer joined 03:57 mkramer left 04:12 packetknife joined 04:20 birdwindupbird joined 04:29 satyavvd joined 04:31 packetknife left 04:35 replore left, replore__ joined 04:42 envi_|2 joined 04:48 sili joined 05:02 _jaldhar joined 05:13 kaleem joined, hypolin left 05:22 risou_awy is now known as risou 05:23 twinshadow joined 05:28 envi_|2 left 05:33 hypolin joined 05:37 sftp left 05:51 hypolin left 05:54 Exodist left
Woodi do Perl allows load modules at runtime ? 06:12
sorear yes
require Foo; 06:13
both 5 and 6
06:23 risou is now known as risou_awy
Woodi right, checked only eval( use ... )... anyway strange question :) 06:24
06:29 fsergot left 06:35 koban joined 06:40 mkramer joined 06:45 Exodist joined 06:50 fsergot joined 06:51 molaf joined
sorear Woodi: it needs to be eval(" use ... ") 06:51
06:54 mkramer left, wtw joined, flussence left 06:55 mkramer joined, mberends left 07:07 fsergot left 07:08 sivoais left, molaf left 07:09 woosley left
Woodi say nothing 07:13
07:22 flussence joined 07:29 fsergot joined, mishin joined 07:31 flussence left 07:32 flussence joined 07:40 Sarten-X joined 07:42 koban left 07:54 fsergot left 07:56 wolfman2000 left 08:05 sili left 08:07 mishin left 08:14 fsergot joined 08:17 mj41 joined 08:18 am0c left 08:30 fsergot left
masak morning, #perl6 08:31
ok, follow-up to Woodi's question: is there a way to re-require a module, in the event its file changed on disk? module hotswapping, in effect. 08:32
ISTR buubot_backup does it, and is written in Perl 5. I have no idea how to go about it in Perl 6. 08:33
08:51 fsergot joined 09:05 fsergot left 09:20 mkramer left 09:22 mkramer joined
moritz masak: I think the solution is to assign the new module a new version, and load that 09:22
09:24 mkramer1 joined, mkramer left 09:26 fsergot joined
masak fair enough. 09:27
has there been a parrot release yet this week? 09:29
I don't see any release announcement.
moritz #parrot topic says 3.10.0
moritz disappears again 09:30
09:35 mkramer1 left 09:43 mkramer joined 09:45 replore__ left 09:47 mkramer1 joined, replore_ joined 09:48 mkramer left 09:49 dakkar joined 09:50 pluto_ left 09:51 mkramer1 left, bazqux joined, mkramer joined 09:52 replore_ left 09:59 fsergot left 10:02 mkramer left 10:06 Trashlord joined 10:07 daxim_ joined 10:08 BooK left, BooK joined, daxim left 10:15 kfo joined 10:16 worr joined 10:18 kfo_ left 10:22 fsergot joined 10:25 kst` joined 10:26 kst left 10:28 envi_|2 joined 10:35 fsergot left 10:37 envi_|2 left 10:38 envi_ joined 10:40 risou_awy is now known as risou 10:57 heleana joined 10:58 heleana left 11:15 mtk left 11:20 fsergot joined
felher just noticed there is a new protoregex branch o/. jnthn++ 11:29
11:29 fsergot left
jnthn felher: Plan to merge it this evening. 11:30
felher jnthn: great :)
jnthn: then i can test a few of my old programs on nom rather than on ng :)
jnthn felher: Yeah. There's still other regex engine stuff that'll need looking at too. 11:33
But, I'll be picking them off best I can.
bbkr awesome news, JSON::Tiny should work again with proto 11:35
felher jnthn: nice. great work :) 11:36
jnthn bbkr: Not sure how well that's going to work yet...but yeah, that's what I'm shooting for.
11:37 worr left 11:40 JimmyZ joined, satyavvd left 11:51 mkramer joined 11:53 worr joined 11:54 Je joined
Je Say 3 11:55
11:56 mkramer left 11:57 Je left, mkramer joined 12:05 mkramer1 joined, mkramer left 12:07 benabik left 12:10 HarryS left 12:12 HarryS joined, Psyche^ joined 12:15 icwiener joined 12:16 Patterner left, Psyche^ is now known as Patterner 12:36 bluescreen10 joined 12:37 mkramer1 left 12:38 [Coke] left, [Coke] joined, pmichaud left, masak left, pmichaud joined 12:39 mkramer joined 12:40 masak joined, PerlJam left 12:41 PerlJam joined 12:45 worr left, worr joined 12:51 worr left 12:58 benabik joined, JimmyZ_ joined, JimmyZ_ left 12:59 JimmyZ left 13:16 kaleem left 13:20 mkramer1 joined, mkramer left 13:22 colomon left 13:23 kaleem joined
[Coke] jnthn: how's protoregex going? 13:37
jnthn++ # unblocking modules
13:37 JimmyZ joined 13:39 mkramer1 left 13:42 colomon joined 13:44 mkramer joined
jnthn [Coke]: At $dayjob for the next couple of hours. But the branch passes all tests nom does, plus protoregex.t. :) 13:48
[Coke]: So plan to merge it ahead of tonight's release
Bit last minute but the release manager didn't scream at me :) 13:49
...though that could be because we don't have one ;)
colomon ;)
jnthn Generally though, I'm all for getting it into people's hands if they follow compiler releases. 13:50
13:53 mtk joined
[Coke] Agreed. in general, star releases we should be more careful of (except the next one which we know will be a jolt because of nom) 13:56
14:00 vmspb joined 14:03 sivoais joined
arnsholt nom: sub foo(*@args) { say @args.join(", "); }; my @a = <a b c>; foo(|@a); 14:04
p6eval nom 8f1f5d: OUTPUT«a, b, c␤»
arnsholt nom: sub foo(*@args) { say @args.join(", "); }; my @a = <a b c>; foo(d, |@a); 14:05
p6eval nom 8f1f5d: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&d' called (line 1)␤»
arnsholt nom: sub foo(*@args) { say @args.join(", "); }; my @a = <a b c>; foo('d', |@a); # Oh, do understand what I mean :p
p6eval nom 8f1f5d: OUTPUT«d, a, b, c␤»
arnsholt Huh. Must be something else wrong with my code then
[Coke] paypal-- 14:06
14:10 mkramer left 14:12 mkramer joined 14:18 mkramer left 14:20 mkramer joined, Sarten-X left 14:24 mkramer left
jnthn [Coke]: Yeah, but I'm hoping to make it a softish jolt :) Or at least a "ooh, it's faster at least" one :) 14:24
arnsholt Is it possible to have both the default constructor and a constructor that takes positional arguments? 14:25
multi method new($a, $b) { ... } doesn't seem to do the trick 14:26
jnthn arnsholt: yes, just multi it
arnsholt Then I'm doing something else wrong =)
14:26 mkramer joined
jnthn nom: class A { has $!a; has $!b; multi method new($a, $b) { self.bless(:$a, :$b) } }; say A.new(1,2).a; say A.new(:a(1), :b(2)).a 14:27
p6eval nom 8f1f5d: OUTPUT«Not enough positional parameters passed; got 1 but expected at least 2␤ in method bless at src/gen/CORE.setting:533␤ in method new at /tmp/aYxTBROcFM:1␤ in block <anon> at /tmp/aYxTBROcFM:1␤ in <anon> at /tmp/aYxTBROcFM:1␤»
jnthn oh, yes
14:27 bazqux left
jnthn bless needs a candiate 14:27
nom: class A { has $!a; has $!b; multi method new($a, $b) { self.bless(*, :$a, :$b) } }; say A.new(1,2).a; say A.new(:a(1), :b(2)).a
p6eval nom 8f1f5d: OUTPUT«Method 'a' not found for invocant of class 'A'␤ in block <anon> at /tmp/biq5LAHKm1:1␤ in <anon> at /tmp/biq5LAHKm1:1␤»
jnthn oh, and I meant .
nom: class A { has $.a; has $.b; multi method new($a, $b) { self.bless(*, :$a, :$b) } }; say A.new(1,2).a; say A.new(:a(1), :b(2)).a
p6eval nom 8f1f5d: OUTPUT«1␤1␤»
jnthn arnsholt: Like ^ 14:28
Your new just transforms nameds into positionals for bless to use.
14:28 mkramer left
arnsholt Coll 14:28
Or, cool
14:29 mkramer joined 14:31 Sarten-X joined 14:33 mkramer left 14:35 tokuhirom joined, sftp joined 14:37 mkramer joined, mkramer left
felher Is map eager in current nom? 14:43
masak nom: my @a := map { say "OH HAI" }, 1, 2, 3; say "alive!" 14:44
p6eval nom 8f1f5d: OUTPUT«alive!␤»
masak doesn't seem like it.
nom: multi foo($a) { say "OH HAI" }; multi foo(:$a) { say "OH named HAI" }; foo(5); foo( :a(5) )
p6eval nom 8f1f5d: OUTPUT«OH HAI␤OH named HAI␤»
masak nom++ 14:45
colomon niecza: multi foo($a) { say "OH HAI" }; multi foo(:$a) { say "OH named HAI" }; foo(5); foo( :a(5) )
p6eval niecza v11-24-gcdd4e66: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/W8DtKGd0og line 1:␤------> multi foo(⏏$a) { say "OH HAI" }; multi foo(:$a) { s␤␤OH HAI␤Unhandled exception: Ambiguous dispatch for &foo␤ at <unknown> line 0 (&foo @ 0) ␤ at …
colomon ah, not caught up with the spec changes yet, eh?
felher Hm.. 'why does for (1..*) { .say; }' work as expected but 'for ((1..*).map({$_ + 1})) { .say; }' doesn't? 14:46
The first print all the numbers, the second doesn't print anything here. 14:47
s/as expected/as i expected/ :) 14:48
masak colomon: frankly, I expected some kind of ambiguous dispatch when I tired it in nom as well...
colomon that is the latest spec, though, right? You can't call positional arguments by name anymore. 14:49
jnthn The positional one was ruled out on arity.
14:49 sayu joined
jnthn That left one candidate 14:49
Well, the multi-dispatcher was, iirc, never spec'd to do named to positonal mapping.
masak nom: .say for 1..Inf
p6eval nom 8f1f5d: OUTPUT«(timeout)1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤50␤51␤52␤53␤54␤55␤56␤57␤58␤59␤60␤61␤62␤63␤64␤65␤66␤67␤68␤69␤70␤71␤72␤73␤74␤75␤76␤77␤78␤79␤80␤81␤82􏿽xE2 14:50
masak nom: .say for map * + 1, 1..Inf
PerlJam felher: insufficient eager on the second one?
p6eval nom 8f1f5d: OUTPUT«(timeout)»
jnthn That looks rong.
masak PerlJam: more like too eager.
colomon insufficient laziness
PerlJam yeah, that's what I meant
:)
felher :)
PerlJam (insufficent caffiene for me at the moment) 14:51
felher afk 14:53
mux too eager/ insufficient laziness - I swear to god I thought I was in #haskell just now 14:54
PerlJam you know what the neat thing is about not messing with perl 6 for about a month? ... Rakudo seems much faster than I remember :)
masak PerlJam: as you get older, time appears to speed up :P 14:55
or rather, mental perception points get sparser. 14:56
PerlJam masak: yeah, and back when I was a kid, pi was just 3 :)
masak those were the days.
14:56 shinobicl joined
masak circles looked like hexagons. 14:56
PerlJam The perceptual resolution of reality increases with time 14:57
mid-life crisis is when you become aware of the fractal nature of everything. 14:58
masak oh, that's what it is?
14:59 am0c joined
masak .oO( omg, it's full of crises ) 14:59
PerlJam I think there's a relativity principle in play here. While rakudo's execution speed seems much faster, compilation still seems to take forever 15:00
masak well, remember the November stats from 2008: we brought the time for a GET request down from 17 seconds to 3 seconds by precompiling everything to PIR.
so, nihil novo. 15:01
arnsholt If I may pick a nit, it's novi. =) The classic example of partitive genitive (which is quite cool) 15:05
jnthn ...which language are we in? :)
masak arnsholt: much appreciated. I did hesitate, but didn't check. :/
jnthn: Latin.
jnthn ah :)
masak arnsholt: partitive genitive because "nothing of new"? 15:06
jnthn (compile time) well, step 1 is parse faster. step 2 is build ast nodes faster :)
PerlJam And then when you get older people start speaking funny languages and you think that you're having an aneurism
;)
15:08 wtw left 15:09 simcop2387 left
masak PerlJam: here in Europe we're pretty used to people speaking "funny languages" :) 15:10
jnthn Nikdy nehovorim komicke jazyky! :P 15:11
15:12 simcop2387 joined
arnsholt masak: Yeah, nothing of the new kind under the sun 15:18
15:21 kaleem left
masak arnsholt: I feel like each time I encounter the partitive genitive, I understand it but it feels like the first time I learn it. I should learn it for real some time. :) 15:22
15:23 alester joined 15:29 ethndbst joined, ethndbst left, ethndbst joined
arnsholt It's a bit tricky to remember. But learning French is useful, since they still use it (sort of) 15:29
masak I learned French long ago, but I'm pretty sure they didn't mention partitive genitive. 15:33
arnsholt Yeah, it's a bit hidden 15:35
mux I'm french and I have no idea what partitive genitive is
arnsholt "une bouteille d'eau" is partitive genitive, essentially 15:36
cognominal partitive genetive, hidden, that's sound like private parts to the average french pervert
arnsholt It's the de and something without an article
mux oh, that has a name? ;-)
arnsholt Yeah, us foreigners need to name things to remember them properly =D
mux this "d'" (contraction of de) here is just like the "of" in english to me - like in a bottle of water 15:37
arnsholt Yeah, that's the same use case 15:38
mux okay then
masak so "a bottle of water" is partitive genitive too? :)
mux it would seem so
arnsholt But IIRC the article or no article decision is a bit fiddly for foreigners
At least it is for me as a Norwegian
masak: You might be able to call it that 15:39
But the article de in French is a very direct successor of the genitive case. Not sure if it's that straightforward in Germanic
mux cannot think of a better way to spend the last hour of his working day than to research grammatical constructs on wikipedia
arnsholt Indeed! 15:40
mux if only there wasn't the face of Jimmy creepy Wales up there, it creeps the shit out of me
arnsholt Yeah, that's a bit unnerving
mux this guy would make a very successful stalker
15:41 Gothmog_ left
masak his face looks stranger the more you stare at it. 15:42
kind of assymetrical.
15:43 JimmyZ left
mux i.imgur.com/bZKqt.png -- I thought you guys would enjoy that as much as I did 15:44
arnsholt Ah, the internet. Helping me procrastinate, as always =D 15:45
Speaking of which, writing abstracts is hard (let's go shopping?) 15:46
15:46 PlusYan joined 15:47 tokuhirom left
masak shopping abstracts is hard too. 15:47
arnsholt True, true =D 15:48
Util FYI: nom regression 15:49
While pondering rosettacode.org/wiki/Hofstadter_Q_sequence , I reduced it to:
my @h := 1, 1, { @h[*-@h[*-1]] + @h[*-@h[*-2]] } ... *; say @h[^10];
which works with Niecza and Rakudo_2011.04, but fails with Rakudo_2011.10 .
This reduced case also fails with Rakudo_2011.10:
my @h := 1, 1, { @h[*-1] } ... *; say @h[^5];
This case hangs forever with Rakudo_2011.10, but generates `1 1 Any Any Any` on Niecza and Rakudo_2011.04:
my @h := 1, 1, { @h[2] } ... *; say @h[^5];
EOR
jnthn If anyone wants to turn that into an RT, please do 15:50
15:50 plobsing_ joined
benabik Is * supposed to be "current position" when building an infinite list? 15:51
colomon benabik: errr... no? 15:52
Util benabik: @foo[*-3] is the new way to say Perl 5's $foo[-3], or "third element from the end" 15:53
benabik Util: And the end of an list defined as … * is?
colomon but (for instance) if you pass a Whatever (thing that we used to call curry) to @a[ ], then it evaluates it using the current number of elements as the argument
Util Since inf lists have no end, a useful interpretation would be "third element from the end of what we have generated so far"
colomon ... * means "go on forever"
15:53 plobsing left
colomon oooo, yeah, I see what benabik is getting at 15:54
that does seem kind of dodgy
masak agree about the dodgy. 15:55
colomon rakudo: my @h := 1, 1, -> @h2 { @h2[*-@h2[*-1]] + @h2[*-@h2[*-2]] } ... *; say @h[^10];
p6eval rakudo 8f1f5d: OUTPUT«Nominal type check failed for parameter '@h2'; expected Positional but got Int instead␤ in block <anon> at /tmp/NWHOaGZz7p:1␤ in sub coro at src/gen/CORE.setting:4154␤ in method reify at src/gen/CORE.setting:4129␤ in method reify at src/gen/CORE.setting:3914␤ …
colomon b: my @h := 1, 1, -> @h2 { @h2[*-@h2[*-1]] + @h2[*-@h2[*-2]] } ... *; say @h[^10];
masak is that spec'd at all? what does the * refer to when indexing a not-fully-evaluated lazy list?
p6eval b 1b7dd1: OUTPUT«Nominal type check failed for parameter '@h2'; expected Positional but got Int instead␤ in <anon> at line 22:/tmp/NnA517xBbT␤ in <anon> at line 872:src/gen/core.pm␤ in 'List::at_pos' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in 'Any::postcircumfix:<[ ]>' at…
colomon masak: pretty sure that's not spec'd at all 15:56
or at least, we definitely want it to refer to the fully-evaluated list
otherwise it would break all sorts of normal usages
Util Since you can never generate element# N without already having element# N-1, I think it is safe to allow the generating function to access the size of the bound array so far (when the generating func is referencing the bound array). 15:57
colomon it's safe to allow, sure. 15:58
Util I just want this use of * to work *within* the generating function. colomon: point taken on normal use *outside* the generating function.
colomon but * has the same meaning in either place 15:59
Util Not usefully so.
colomon If I understand you correctly, you're asking that the generating closure containing @h[ ] know that it is a generating closure and therefore change the meaning of @h[ ] 16:00
b: my @h := 1, 1, -> *@h2 { @h2[*-@h2[*-1]] + @h2[*-@h2[*-2]] } ... *; say @h[^10]; 16:01
p6eval b 1b7dd1: OUTPUT«1123345566␤»
Util colomon: I *think* so; I had not thought of it in those terms until this conversation. 16:02
colomon rakudo: my @h := 1, 1, -> *@h2 { @h2[*-@h2[*-1]] + @h2[*-@h2[*-2]] } ... *; say @h[^10];
p6eval rakudo 8f1f5d: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤ in method Numeric at src/gen/CORE.setting:614␤ in sub infix:<-> at src/gen/CORE.setting:1976␤ in whatevercode <anon> at /tmp/ZnhUJVAHrU:1␤ in method postcircum…
jnthn decommute
16:02 bluescreen10 left
colomon I believe that code I just tried definitely represents a nom-bug 16:02
niecza: my @h := 1, 1, -> *@h2 { @h2[*-@h2[*-1]] + @h2[*-@h2[*-2]] } ... *; say @h[^10]; 16:03
p6eval niecza v11-24-gcdd4e66: OUTPUT«1 1 2 3 3 4 5 5 6 6␤»
Util But what is the alternative? Force finite-but-lazy lists to generate their entire sequence whenever anything outside the gen.func. uses [*-5]?
colomon Util: yes
I mean, consider my @a := $str.comb; say @a[*-1] 16:04
shouldn't that return the same value as my @a = $str.comb; say @a[*-1]
?
Util colomon: hmmm. Yes. And, ($fh.lines)[*-5] would have to read the whole file to work as expected. 16:06
colomon right
16:07 jnthn left, vmspb left
Util colomon: I see your point. Can you think of any situation where a generating function could usefully access * where * is the last element? 16:08
colomon Util: the real last element? not really. 16:09
benabik Hm. Rakudo doesn't like slurpy blocks for generators.
nom, at least.
colomon but remember, there's nothing at all special about a generating function.
benabik: yeah, that would be a nom bug.
benabik It's a useful trick though. 16:10
Util I think that having * mean "size so far" withing a sequence's code block (gen.func.) is agreeable, given that *'s usual meaning is not useful (and maybe even nonsensical) there. 16:11
benabik But would you transform every * inside the generator? Or do you want to spec that generator functions have to know what variable they're operating on?
niecza: my @x := 0,1,-> *@x { +@x } ... *; say @x[10] # works, but you have to be explicit 16:12
p6eval niecza v11-24-gcdd4e66: OUTPUT«10␤»
colomon I really think that, as much as it would be elegant, having @h[ ] behave specially if you are generating @h at the time seems like a very bad idea. 16:14
16:14 bluescreen10 joined, sayu left
colomon I mean, what if instead of saying 1, 1, { @h[*-@h[*-1]] + @h[*-@h[*-2]] }, you said sub generate() { @h[*-@h[*-1]] + @h[*-@h[*-2]] }; 1, 1, &generate 16:15
colomon is imagining the nightmare of trying to implement this... 16:16
sorear what is @h?
16:16 am0c left
colomon b: my @h := 1, 1, -> *@h { @h[*-@h[*-1]] + @h[*-@h[*-2]] } ... *; say @h[^10]; 16:16
p6eval b 1b7dd1: OUTPUT«1123345566␤»
sorear @h doesn't even exist until ... returns 16:17
Util colomon: What nightmare? It *used* to work! (and still does in Niecza) :)
masak sure it exists.
sorear you have to use the temp value that ... gives you, via the slurpy param
Util sorear: it is bound, not assigned.
masak it exists from the point of its declaration.
sorear my @h := 1, 1, { @h[*-1] } will never work
colomon Util: that would be what is known as an accident
sorear masak: the variable exists, but the array that will become known as @h doesn't
s/variable/name/ 16:18
benabik The two "simple" ways I see to do it is to special case generators on the RHS of bindings or to set a flag in the list before calling the generator.
Util BTW, The Q sequence (as opposed to Fibonacci) needs this because each next element does not rely on the last element, nor the last two, nor even the last N elements. It uses the last two elements to *find* which two elements to add together to get the next number.
Now that I write that, I see that it could shorten the solution to:
my @h := 1, 1, { @h[*-$^a] + @h[*-$^b] } ... *; say @h[^10];
colomon niecza: my @h := 1, 1, { @h[*-1] } ... *; say @h[^10]
p6eval niecza v11-24-gcdd4e66: OUTPUT«1 1 1 1 1 1 1 1 1 1␤»
16:18 kaare_ joined
masak sorear: you can bind infinite lazy lists to array variables in Perl 6. 16:18
sorear cute accident 16:19
cognominal: pong
masak sorear: the question here is only whether @h[*-1] means "length so far" or "infinite length" for such an array.
benabik I wonder why it works.
masak er, whether the '*' means that.
sorear masak: I'm suprised it works, I thought I implemented * to be eager. 16:20
colomon Util: If you just add -> *@h to your generator function, it should work fine (not the latest version).
masak sorear: yes, eagerness was what I assumed as well.
cognominal sorear? I did not ping you.
benabik It seems to be eager outside the generator and lazy inside. Somehow. 16:21
niecza: my @x := 1, { @x[*-1] } ... *; say @x[1]; say @x[*-1]
p6eval niecza v11-24-gcdd4e66: OUTPUT«(timeout)1␤»
sorear cognominal: oh, hmm 16:22
colomon Going off at a slight angle here: it seems to me what is really wanted is a way to find out how many elements currently exist in a lazy list/array. That would provide a potential solution here and enable other useful code, too.
sorear cognominal: I got an email from github with the From: line munged to Stéphane Payrard. github--
masak: having re-checked the code, eagerness looks like it's correctly implemented. WTF? 16:23
Util colomon: hmmm. interesting (re: -> *@h). Would that also require a special case, since a slurpy array would change the lazy list to eager?
benabik Util: I believe the generator isn't passed the full list. It's explicitly passed "the list so far". 16:24
colomon Util: no, because in a generating function, -> *@h gets everything generated so far, by spec
benabik (Or rather, the last N elements of the list so far, which is all of them in the slurpy case)
colomon right, -> $a { } gets the last element, -> $a, $b { } gets the last two, -> *@a { } gets everything so far 16:25
sorear gotta go now, sorry
cognominal sorear, I understand, I played with the note interface but I never confirmed anything. Strange because I have never looked the nieca sources. 16:26
*niecza 16:27
colomon I should add, that's not something special about the generating closure; rather, that's how ... calls it.
benabik It's odd that the list currently reacts differently to *-1 inside and outside the generators. I wonder what's causing it. 16:28
masak decommutes 16:29
Util colomon, benabik: aha! I missed that in the spec. Thanks!
benabik It's not just @x[*-1], it's also (perhaps unsurprisingly) +@x that changes. 16:30
niecza: my @x := 0, { +@x } ... *; say @x[1]; say +@x
p6eval niecza v11-24-gcdd4e66: OUTPUT«(timeout)1␤»
benabik Apologies to whatever machine that's running p6eval.
[Coke] I don't think *'s meaning changing depending on how far you happen to have gotten is useful. 16:38
I could see having some sort of "are you sure you meant to do that eagerly?" warning (similar to a stack depth error) 16:40
benabik [Coke]: The special case seems obnoxious to add to spec. I'm mostly curious about how it happened by accident in b and niecza.
16:40 sftp left
benabik I do like that warning though. 16:40
16:41 sftp joined
benabik With lists that are explicitly infinite. Detecting it in the accidentally infinite case may be difficult. 16:41
16:41 mj41 left 16:50 jnthn joined 16:51 bluescreen10 left 16:54 vmspb joined 16:56 sftp left
Util [Coke]: Now that I know the spec allows for passing the array-so-far, I no longer need * to mean anything special within a sequence's code block. 17:00
17:01 Gothmog_ joined, sftp_ joined
colomon just noticed it has started to snow... 17:01
jnthn ooh
none here yet
17:02 donri left
colomon This is actually our second snowfall of the season. The first was very, very wet snow, and melted instantly on contact with the ground. :) 17:02
17:04 bluescreen10 joined
colomon jnthn: where should I add uniq in nom? List.pm? 17:04
[Coke] we had 2 snowstorms before Halloween.
arnsholt jnthn: I think the first snow is rapidly approaching though
At least here in Oslo
[Coke] Can we spell it unique? :P
17:05 birdwindupbird left
jnthn arnsholt: Yeah, I'm a little south of that... ;) 17:05
arnsholt Yeah, I remembered =)
(The benefits of thinking after talking)
colomon [Coke]: if you want to change the spelling in roast and the spec, I don't mind changing it. ;) 17:06
jnthn colomon: Yes, and probably a coercer in Any, as with the other list things 17:09
17:12 cognominal left 17:20 MayDaniel joined, MayDaniel left, MayDaniel joined
dalek p/nfa: 6395eaf | jnthn++ | tools/build/Makefile.in:
Don't build nqpq by default for now.
17:20
p/nfa: 1a0cd9f | jnthn++ | t/nqp/50-regex.t:
Revert changes to a test so it works with nqp, rather than nqpq.
17:23 mj41 joined
dalek p: 46e0f9e | jnthn++ | src/QRegex/Cursor.nqp:
Fix an LTM tie-breaking bug; diakopter++ for spotting.
17:29
nqp: cecd970 | diakopter++ | src/QAST/ (2 files):
nqp: move node() from QAST::Regex to QAST::Node; add $!node to QAST::Node
17:29 dalek left
jnthn heuristic merge detekshun fail 17:29
17:29 dalek joined, ChanServ sets mode: +v dalek
dalek kudo/nom: 88f6945 | jnthn++ | src/Perl6/Grammar.pm:
Parse current protoregex syntax; keep older deprecated ones for now, though we'll put a warning in the next * release about them.
17:33
kudo/nom: 829f9d3 | jnthn++ | src/Perl6/Actions.pm:
Update actions so we can, in theory, handle protoregexes, though the NFA construction explodes for some reason.
kudo/nom: a8b2873 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Add nqpattr cheat used for now by protoregexes implementation, so the NFA builder can get at NFAs for subrules. And with this, we seem to have workingish protoregexes - to the limit of the NFA engine (which still means more powerful than the literal only we had before).
kudo/nom: e41953a | jnthn++ | src/Perl6/Grammar.pm:
Ensure that regex compiler sees the name of the regex. Fixes use of <sym> in protoregexes, and protoregex.t now passes all but one test (which seems to be unrelated to protoregexes themselves).
kudo/nom: 1f3e863 | jnthn++ | tools/build/NQP_REVISION:
Bump to NQP revision with protoregex support.
17:33 sftp_ left 17:34 sftp_ joined 17:35 orafu left 17:37 orafu joined
dalek ast: 4418dc5 | jnthn++ | S05-grammar/protoregex.t:
Todo one test in protoregex.t for Rakudo.
17:40
kudo/nom: 0fa6613 | jnthn++ | t/spectest.data:
Turn on protoregex.t.
17:41
kudo/nom: de79bac | jnthn++ | docs/ChangeLog:
ChangeLog entry for protoregexes.
p: e8e4511 | jnthn++ | src/QRegex/ (2 files):
Don't emit debug data when doing protoregexes.
colomon dang, nom compiles slowly 17:46
17:51 dakkar left
dalek p: d2b7838 | jnthn++ | tools/build/PARROT_REVISION:
Bump to Parrot 3.10 release.
17:52
kudo/nom: f50f538 | jnthn++ | tools/build/NQP_REVISION:
Bump to NQP revision which targets the relesae Parrot.
17:53
colomon go jnthn! 17:54
17:54 Chillance joined
jnthn colomon: Relesae won't be for several hours yet. 17:57
dalek kudo/nom: 9bc820b | jnthn++ | docs/ChangeLog:
Case consistency fix in ChangeLog.
kudo/nom: 98d8d9e | jnthn++ | docs/announce/2011.11:
Start to sketch out the 2011.11 announce.
jnthn I'm still open to offers to do it, but I've made a start on the process. :) 17:58
tadzik so we have like, nfa and LTM now? 17:59
jnthn tadzik: We have limited NFA/LTM support for protoregexes.
tadzik: I have a patch from diakopter++ that adds quantifier support.
colomon tadzik: I'm working on uniq for you.
tadzik great!
I'll have to do my sql homework first, but then I'm back on panda probably 18:00
jnthn tadzik: There's probably some weird bugs and certainly various missing declarative constructs.
18:00 mberends joined
jnthn tadzik: Will get onto those post-release. 18:00
18:00 mantovani left
jnthn My plan for up to the release is 18:00
1) Fix bigint boolification bug that moritz++ found
colomon tadzik: IO.copy will be trickier, I think, as the old version calls into pir
jnthn 2) Some tests for the protoregex LTM stuff that works so far 18:01
tadzik jnthn: is JSON working now?
jnthn 3) More protoregex LTM stuff all being well, probably diakopter++'s patch if I can
tadzik: Not had chance to try it yet.
tadzik I'll try it after nom
jnthn tadzik: There are still other regex issues though
I'd be surprised if it works right off.
But I'm optimistic we can get it working in the near future. 18:02
(I've got most of tomorrow and the weekend available for Perl 6 stuff :))
tadzik o/
\o/
18:02 cognominal joined
jnthn colomon: Lemme know if you run into trouble with copy 18:04
colomon jnthn: will do. not even sure if I'll get that far today, probably depends on how fast I can finish off uniq at this point.
tadzik most of the brokeness in panda is, suprisingly or not, $! not being inherited and not being set by the default .new
I didn't test stuff that it breaks, I thought roast does :> 18:05
jnthn tadzik: er, both of those are Rakudo conforming to the current Perl 6 spec :)
18:05 mantovani joined
colomon jnthn: what does proto pick(|$) { * } mean, anyway? 18:05
tadzik jnthn: I know that :) 18:06
colomon I mean, I think I understand the proto idea, but the |$ and { * } are unclear to me
jnthn colomon: * means "call into the multi-dispatcher"
tadzik I wouldn't mind .new doing callsame, tbh
oh, that's not the case
jnthn colomon: |$ means "I take whatever arguments and don't care about binding them"
colomon ah
jnthn colomon: Outside of the setting, we auto-generate a proto 18:07
colomon: Within the setting we need to write them explicitly for now, iirc.
colomon auto-generation++
18:07 shinobicl left 18:08 sftp_ left 18:09 sftp_ joined
tadzik oh, I usually used *@a for that 18:09
jnthn tadzik: That only eats positionals though, not names 18:10
And if you name it, it actually has to allocate an array.
tadzik I see
I use it only for the EVIL 'BUILD-like-moose' hack anyway :)
colomon > my @array = <a b b c d e b b b b f b> 18:12
a b b c d e b b b b f b
> @array.uniq
a b c d e f
> @array .= uniq
splice() not implemented in class 'Mu'
??????
jnthn hm 18:13
colomon: does @array = @array.uniq work?
colomon no
tadzik oh, I've seen this bug 18:14
18:14 ethndbst left
jnthn colomon: OK. I doubt it's your .uniq method's fault 18:14
colomon splice isn't called by .uniq
tadzik nom: my @a = 1, 2, 3; @a = @a.map: { $_ + 1 }
p6eval nom 8f1f5d: OUTPUT«splice() not implemented in class 'Mu'␤ in method reify at src/gen/CORE.setting:3914␤ in method gimme at src/gen/CORE.setting:4276␤ in method eager at src/gen/CORE.setting:4251␤ in method STORE at src/gen/CORE.setting:4690␤ in block <anon> at /tmp/Rgchn2mGoe:1␤ …
18:14 daniel-s left
jnthn tadzik: nqp::splice 18:14
tadzik: The Parrot level op
dalek ast: 500ac96 | (Solomon Foster)++ | S32-list/uniq.t:
Fudge for nom.
18:16
tadzik I suppose so 18:17
18:21 PlusYan left 18:29 sftp_ left 18:31 sftp_ joined 18:32 imarcusthis left 18:34 molaf joined 18:36 imarcusthis joined, sftp joined
tadzik t/01-parse.t ...... Failed 1/85 subtests 18:39
not bad, json
18:39 sftp_ left
tadzik it fails all the other tests though 18:39
jnthn Only passes parse?
But fails actions?
OK, probably due to capturing bugs.
tadzik dunno
yes, it seems so 18:40
also, it seems to have parsed '{' :) 18:41
18:41 localhost left
dalek kudo/nom: 813c6ae | (Solomon Foster)++ | src/core/ (2 files):
Bring uniq over from b.
18:41
tadzik colomon++
jnthn tadzik: Just '{' ?
Hm
tadzik jnthn: so say the tests
jnthn tadzik: Does it ever fail to parse when it should? :) 18:42
tadzik jnthn: nope
jnthn As in, it's not just saying everything is ok?
18:42 localhost joined
dalek kudo/nom: aa25165 | (Solomon Foster)++ | t/spectest.data:
Turn uniq.t back on.
18:42
tadzik out of 50 tests that ought to parse, 50 parse 18:43
dalek p: 4ec1bdf | jnthn++ | / (3 files):
Boolification support for bigints.
kudo/nom: 21fcfa3 | jnthn++ | / (2 files):
Switch Int to use bigint boolification, to fix bug found my moritz++.
18:44
jnthn er, by :)
tadzik :)
dalek kudo/nom: adb4caa | jnthn++ | docs/ChangeLog:
Note uniq() in ChangeLog (colomon++).
18:47
masak (my moritz)++
jnthn OK, dinner time, then more regexy stuffs 18:48
colomon jnthn: is there a nom/nqp equivalent to pir::new__PS('File').copy($.path, $dest) ? 18:51
18:51 risou is now known as risou_awy
colomon (Shoot, wish I'd seen he was going to dinner the second he posted that...) 18:51
jnthn colomon: no
colomon: You want something like 18:52
18:52 ethndbst joined
jnthn pir::new__Ps('File').copy(nqp::unbox_s($.path), nqp::unbox_s($dest)) 18:52
colomon jnthn++
jnthn er, be sure that $.path and $dest are already Str before you do that
If not, coerce them first
~
colomon yeah
okay, I can probably make some sense of this, with those terrific clues. :) 18:53
18:54 sftp left 18:55 sftp joined
colomon are there tests for copy somewhere? 19:02
tadzik: you're using copy something like "source-file".IO.copy("destination-filename"), right? 19:03
tadzik colomon: I think so, yes 19:04
colomon Are you doing error checking on the results? I don't seem to have the return value working yet. :) 19:05
tadzik doesn't matter :>
(for me)
it's non-specced anyway
colomon okay, I can commit what I've got, then.
tadzik wfm 19:06
jnthn Maybe just try nqp::p6bool around the the thing I gave you for the return value for a start
Though should probably fail
colomon it's doing a try right now, and then looking at $!
same as in b
jnthn ah, that's probably ok too :) 19:08
19:08 MayDaniel left
jnthn er, right even. :) 19:08
(since Parrot probably throws)
colomon except I tried "not a file".IO.copy("hah!"), and it dutifully returned True. 19:09
benabik Did it create hah!?
colomon so something in there isn't signaling an error properly.
nope
dalek kudo/nom: c294ae6 | (Solomon Foster)++ | src/core/IO.pm:
Add IO.copy.
19:11
19:13 eiro_ left, sjn left, geekosaur left, Khisanth left, Grrrr left, Util left, nsh_ left, shachaf left, breinbaas left, Bucciarati left, diakopter left, charsbar__ left, LoRe left, kranius left, chitragupt left, Grrrr joined, diakopter joined, sjn joined, breinbaas joined, shachaf joined, Bucciarati joined, kranius joined, nsh_ joined, Khisanth joined, Util joined, LoRe joined, charsbar__ joined, chitragupt joined 19:14 geekosaur joined
colomon tadzik: okay, you have uniq and IO.copy. :) 19:14
tadzik colomon: thanks you :)
now panda/builder.t hangs :) 19:15
colomon progress! 19:18
[Coke] we have a hanging spectest in t/spectest.data also (that's commented out and not normally run)
[Coke] will find which one... 19:19
19:19 molaf left
[Coke] .... whoops. no, just super slow. ;) 19:19
jnthn: t/spec/S05-grammar/protos.t is now running (but failing 3/4 tests.) 19:20
[Coke] will hold off on fudging that one just yet. 19:23
19:38 pyrimidine joined 19:54 mj41 left
jnthn [Coke]: Yeah, the underlying bug there really needs fixing 19:54
20:08 fsergot joined
fsergot hi o/ 20:08
:)
jnthn hi, fsergot
20:09 Transformer joined 20:12 Transformer left
masak hi, fsergot 20:12
dalek ast: 8917946 | jnthn++ | S05-grammar/protoregex.t:
A few basic protoregex LTM tests.
20:15
p: 89ecefb | jnthn++ | src/QRegex/NFA.nqp:
Apply patch from diakopter++ that adds support for ?, + and * quantifiers to LTM.
20:23
tadzik nom: try { die; CATCH {} }
p6eval nom c294ae: OUTPUT«␤ in block <anon> at /tmp/yWJWrwcd6v:1␤ in block <anon> at /tmp/yWJWrwcd6v:1␤ in <anon> at /tmp/yWJWrwcd6v:1␤»
dalek ast: 31d0182 | jnthn++ | S05-grammar/protoregex.t:
Some basic LTM plus quantifier tests.
tadzik huh?
hangs locally 20:24
20:24 ksi joined
tadzik also, eats CPU like crazy 20:24
jnthn tadzik: You are running Parrot 3.10, not Parrot head, yes?
tadzik head
jnthn that's why
tadzik I shouldn't
?
jnthn mls++ landed a branch related to exceptions 20:25
and Rakudo needs a patch for it
But we can't apply it until post release.
tadzik I understand
damn, I created the 'list' tag again
jnthn heh
tadzik I fall for that one all the time 20:26
jnthn has created the 'delete' branch at least twice by now ;)
tadzik I shouldn't drink and read IRC at the same time
another words, I lol'd ;0 20:27
:)
20:27 cooper joined
colomon as long as that doesn't involve beer coming out of your nose, no worries, I figure! 20:28
dalek p: 1db768d | jnthn++ | src/QRegex/NFA.nqp:
Add missing handling in NFA engine of CODEPOINT_NEG and CHARLIST_NEG.
20:31
20:38 snearch joined 20:40 eiro joined
dalek p: 131f8e7 | jnthn++ | src/QRegex/NFA.nqp:
Handle CHARCLASS and CHARCLASS_NEG case in NFA engine, so things like \d and \W work with LTM.
20:41
kudo/nom: 6178be7 | jnthn++ | tools/build/NQP_REVISION:
Bump to NQP revision with latest NFA bits.
20:43
ast: e3a23f0 | jnthn++ | S05-grammar/protoregex.t:
Couple more LTM tests.
20:44
20:48 MayDaniel joined
tadzik t/panda/builder.t t/panda/fetcher.t and t/panda/tester.t all pass :) 20:48
colomon++ # picking up LHF 20:49
jnthn \o/
tadzik some failungs in installer.t, plus the lack of Test::Mock
masak phenny: de "failung"? 20:50
phenny masak: "failung" (de to en, translate.google.com)
masak :)
tadzik :)
does that mean anything in german?
jnthn OK so...the release
Anybody want it? :)
masak jnthn++ # volunteering
jnthn :P 20:51
tadzik lol
jnthn I was asking if anybody wanted to do it :)
masak jnthn: it's great of you to just step up like that.
jnthn OK, I'll take that as a "no, jnthn, go ahead and find out how the release process doesn't work on Windows"
er
If somebody wants to help me
Please could they run tools/contributors.pl
masak oh, it's your first release? nice! 20:52
PerlJam When was the last time anyone did a release on windows?
jnthn Since that doesn't seem to work out here
PerlJam: er, Inf ago I suspect ;)
tadzik jnthn: I can pick it up after I finish my sqls
jnthn tadzik: OK
hmm...and we need a Pm group too :)
er
PM group
:)
PerlJam That's always the hardest part about the release -- choosing the name 20:53
tadzik make it Warsaw :)
jnthn oh
London.pm hasn't had one named for it
And the LPW was pretty good :)
tadzik oh, and someone could run the spectests for me, it'll take like 45 minutes here 20:54
jnthn And there were Perl 6 talks
tadzik ...on linux too, if you could :)
can be London
jnthn +1
tadzik but first, oraclefun
jnthn will udpate stuffs
tadzik: -Oenterprise ;)
Or -Oevil ;)
arnsholt I can run the spectests on Linux if it's needed
jnthn arnsholt: the more the merrier :)
arnsholt I've some cores to spare, now I'm just writing stuff
tadzik jnthn: -Ohomework :) 20:55
PerlJam Hmm. distributed release ... "construction" is interesting.
arnsholt Just test on HEAD, or some particular revision?
ethndbst Perl makes me laugh. </random>
tadzik arnsholt: HEAD I suppose
jnthn PerlJam: ?
arnsholt M'kay
tadzik as in, the release'd be on HEAD
oh, and nqp release 20:56
gah
PerlJam jnthn: doing the individual parts of a release on different machines.
jnthn tadzik: I can take care of the NQP one
tadzik: well, maybe :)
The tagging at least
tadzik (:
would be great
well, I'll start that in an hour at best
depending on the bugability of my ENTERPRISE SQL QUERIES 20:57
PerlJam It would also be interesting if we had a "release machine". A box (virtual or otherwise) somewhere that you could issue a single command and it would run through the automatable parts of the release process, then submit a package for a human to okay. Once the human checks off, it automatically creates the release, updates wikipedia, rakudo.org, etc. 20:59
might make a good gsoc project :)
moritz \o 21:00
jnthn o/ moritz
tadzik PerlJam: maybe the individual scripts would be a good gci projects
dalek kudo/nom: d0f6d27 | jnthn++ | docs/ (2 files):
Update release guide and announce with choice of London.pm.
PerlJam tadzik: could be.
moritz quick note re JSON::Tiny: it relies on ~ in a few places, so protoregex suport alone won't make it run
(though it's easy-ish to patch not to rely on it) 21:01
moritz disappears again 21:04
jnthn tadzik: The ChangeLog and announce should be largely in shape-ish 21:07
Everyone: feel free to check the announce
dalek kudo/nom: 5390ac6 | jnthn++ | docs/ChangeLog:
Note copy in the ChangeLog.
jnthn github.com/rakudo/rakudo/blob/nom/...ce/2011.11
tadzik jnthn: thanks
21:08 daxim_ left
jnthn NQP release tagged 21:09
dalek kudo/nom: b9526c6 | jnthn++ | tools/build/NQP_REVISION:
Set NQP_REVISION to 2011.11.
21:10
masak "amongst the schedule" -- it's fine English, but I just want to point out how silly English is to allow "amongst" to mean "in" :P
jnthn :P 21:11
arnsholt jnthn: Linux spectest is pass on HEAD
masak jnthn: you could also fill yourself in as the release manager for #46 in the release guide.
jnthn masak: er, I think tadzik++ intends to finish it up :) 21:12
masak oh, ok.
tadzik++
jnthn Yeah, the remaining bits are...er...not so fun on Windows ;)
evalbot rebuild nom 21:13
p6eval OK (started asynchronously)
benabik Rakudo passes basic tests on OS X 10.7. Starting spectest. 21:14
tadzik oh, we pass basic test :)
benabik: did that run podtest? 21:15
benabik tadzik: Whatever make test runs.
I'll run podtest too, but it'll be a bit slow with the parallel spectest in the other Terminal.
tadzik: It passes other than t/pod/why.t which failed to parse. 21:17
tadzik oh! 21:20
works locally 21:21
benabik The extra 4GiB of memory really help out running spectest in parallel.
tadzik benabik: can you paste the output?
benabik Hm. GC failure now... 21:22
tadzik not this shit again
jnthn :/
jnthn thought we'd caught those
benabik: Got a bt?
benabik gist.github.com/1374579 <-- failures under prove and directly. 21:23
21:23 buubot_backup left
tadzik the parsefails are new, I didn't see that yet :) 21:25
also, it seems to be running under Perl 5
benabik That would probably do it. :-D
tadzik te errors are too readable :P
jnthn benabik: grr...it passes here
Under the debugger too 21:26
benabik :-/ Spectest is clean so far. 21:27
colomon benabik: prove -e ./perl6 -v t/pod/why.t works fine for me. 21:28
jnthn benabik: Platform? bitness?
er, I mean, wordsize :)
benabik OS X 10.7, x86_64
System libffi, icu4c 4.8.1 from perlbrew 21:29
homebrew, not perlbrew
tadzik ok, sqls done 21:31
on to the release
benabik I compile parrot with --ccflags=-DPARROT_GC_VALIDATE, --optimize, and --debugging=0. Don't know if those make a difference.
spectest passed. 21:32
tadzik I do just --optimize
[Coke] ISTR trying a release on windows and giving up.
benabik rebuilds without PARROT_GC_VALIDATE. Probably doesn't help the point of "being faster" with optimize. 21:33
21:35 MayDaniel left
tadzik Michael Schroeder is mls? 21:38
jnthn tadzik: yes
tadzik I assume coto is cotto. Hrm 21:39
moritz: ping
benabik t/pod/why.t runs fine without PARROT_GC_VALIDATE 21:40
tadzik odd
benabik Not unexpected. It failed at a GC assertion. 21:41
jnthn should try building with that at some point
benabik I like using it because it's caught some "interesting" _before_ segfaults. 21:42
*interesting behavior
dalek kudo/nom: 617fef9 | tadzik++ | docs/ (2 files):
Add a new release announcement, update release_guide
21:43
tadzik look through if interested 21:44
dalek kudo/nom: 90347c1 | tadzik++ | VERSION:
[release] bump VERSION
21:45
21:45 buubot_backup joined
jnthn nom: grammar yay { proto token TOP { * }; token TOP:sym<x> { proto }; token TOP:sym<y> { \w+ } }; say '\o/ ' ~ yay.parse('protoregexes'); 21:48
p6eval nom b9526c: OUTPUT«\o/ protoregexes␤»
diakopter \o/
21:51 fsergot left 21:55 kaare_ left
tadzik release done 22:04
jnthn yay! 22:05
tadzik++
tadzik jnthn++ 22:06
oh, LHF: IO.chmod
colomon: still looking for some? :)
22:07 ksi left 22:13 fsergot joined
colomon tadzik: maybe tomorrow. got 4 hours of musical activities ahead of me at the moment. :) 22:19
tadzik++
\
tadzik colomon: almost done here, np :)
dalek kudo/nom: ecc46f4 | tadzik++ | src/core/IO.pm:
Copy non-specced IO.chmod from b
22:21
tadzik aaand installer.t passes :) 22:22
jnthn \o/
tadzik: Guess we're blocking on the JSON bits?
tadzik: I'll see what I can do about that tomorrow.
tadzik jnthn: well, I plan on starting a branch using eval and use it for now :)
jnthn: how many tadzik-hours is fixing Test::Mock?
jnthn tadzik: Well, the problem is mostly that $cap ~~ $sig isn't yet re-implemented in nom 22:23
tadzik: Once that's done, Test::Mock is probably only a tadzik hour or so
:)
tadzik :) how is MAIN working around this?
(or is it? :))
jnthn It's relying on the sig being attached to a sub. Or something. :) 22:24
tadzik (:
jnthn After a few more regex bits, I'll probably start looking at NCI too 22:25
tadzik hmm, that blocker should only apply when using :$with
which I don't
jnthn Oh.
In that case
You probably just have to change the meta-object stuff 22:26
tadzik I suppose so
jnthn A .new probably needs to become .new_type, for example
tadzik anything special about add_method? 22:27
as in, how should it cope with $!stuff? 22:28
self.stuff maybe
masak $cap ~~ $sig stopped working? oh noes :/ 22:29
tadzik err
how is the sub in github.com/jnthn/test-mock/blob/ma...ock.pm#L76 supposed to have access to private methods?
jnthn my $mocker = ClassHOW.new; # Metamodel::ClassHOW.new_type; 22:30
tadzik: her, I guess we cheated back then ;)
tadzik :P
jnthn *er
tadzik: Remove that for now
tadzik the privateness I guess? 22:31
jnthn tadzik: yeah
oh!
Or remove the method entirely
And use attribute introspection
tadzik sounds fun
jnthn $mock.^attributes(:local)[0].get_value($mock)
You know it's [0] because you only added one :)
That is, use that in place of $mock!mock_log 22:32
You can do a similar trick for replacing the broken $!log access I suspect
But s/$mock/self/
tadzik ===SORRY!=== 22:33
Could not find sub 226_1321569184.58398
promising :)
jnthn masak: If you knew how it was implemented in ng, you'd be less "oh noes" :/
tadzik: whoa!
tadzik also, $!log needs to be $.log so we can initialize it in .new 22:34
but then, has_accessor => False looks odd ;)
jnthn you leave it as $!log 22:35
But just pass True instead
Well, or initialize it differently :)
If you're going to give it an accessor you needn't do all the .^attributes rigmarole
But OTOH if the thing has a log method that you're trying to mock, it'll be a problem 22:36
So I'd call it something a bit less likely ;)
tadzik :)
well, we callsame in it anyway, don't we?
jnthn callsame? 22:37
22:37 kent\n left
tadzik or not 22:37
jnthn No, we don't callsame :)
tadzik no, I mixed up
nom: my $a = Metamodel::ClassHOW.new_type
p6eval nom b9526c: OUTPUT«Type check failed in assignment to '$a'; expected 'Mu' but got '<anon>'␤ in block <anon> at /tmp/uiRioQjnYj:1␤ in <anon> at /tmp/uiRioQjnYj:1␤»
jnthn whee
Use binding :)
And file a Rakudo bug. :) 22:38
tadzik :)
jnthn really needs to write a meta-programming test suite or something
tadzik then dispatch:<.^> fails on it
just .?
jnthn Do 22:39
.HOW.
e.g. $a.HOW.add_method($a, ...)
Both of those are the same issue in a sense
It doesn't know it's a Mu by default.
well
tadzik I see
jnthn It's meant ot be an Any
At the moment a newly created type is still "outside of the type system" 22:40
Probably need to fine an elegant way to lie, in order to make meta-programming unpainful.
tadzik hmm, cannot dispatch Foo === Mu 22:43
nom: class Foo {}; say Foo === Mu 22:44
p6eval nom ecc46f: OUTPUT«No applicable candidates found to dispatch to for 'infix:<===>'. Available candidates are:␤:(Any $a)␤:(int $a, int $b)␤:(num $a, num $b)␤:(Int $a, Int $b)␤:(Num $a, Num $b)␤:(Str $a, Str $b)␤:(Any $a, Any $b)␤␤ in block <anon> at /tmp/nNNWxkheDY:1␤ in <anon> at /tmp…
tadzik b: class Foo {}; say Foo === Mu
p6eval b 1b7dd1: OUTPUT«Bool::False␤»
jnthn nom: class Foo {}; say Foo =:= Mu
p6eval nom ecc46f: OUTPUT«Bool::False␤»
jnthn nom: class Foo {}; say Mu =:= Mu
p6eval nom ecc46f: OUTPUT«Bool::True␤»
tadzik is that a regression, or was it wrong?
jnthn I suspect we'd want it to auto-thread, so we probably shouldn't define it for Mu. 22:45
jnthn vaguely recalls a discussion on this not so long ago
Pretty sure the outcome was === should auto-thread.
(and so it's defined up to Any === Any) 22:46
22:46 envi_ left 22:54 ethndbst left
masak 'night, #perl6 23:01
diakopter o/ 23:02
tadzik o/ 23:03
nom: my $a := Metamodel::ClassHOW.new_type(); $a.HOW.add_attribute($a, Attribute.new(name => '$!foo', has_accessor => True)); my $b = $a.HOW.compose($a); $b.new;
p6eval nom ecc46f: OUTPUT«(signal SEGV)»
tadzik in-field I get Cannot look up attributes in a type object in Attribute.compose 23:04
I suppose I'll leave it for jnthn++ :)
jnthn tadzik: Will give it a look.
(though tomorrow) 23:05
tadzik great, thanks 23:06
felher perl6: my $whatevercode = (*-1); say (1,2,3,4)[$whatevercode]; 23:16
p6eval rakudo ecc46f, niecza v11-24-gcdd4e66: OUTPUT«4␤»
..pugs b927740: OUTPUT«1␤»
23:16 sivoais left
felher nom++, niecza++ 23:16
Thats nice :)
23:21 icwiener left
tadzik g'night #perl6 23:25
felher o/ tadzik
jnthn 'night, tadzik++
colomon tadzik++ indeed 23:33
diakopter why is there no way to download parrot 3.10 23:37
benabik: ^^ 23:38
23:38 whiteknight joined
diakopter whiteknight: why is there no way to download parrot 3.10 23:38
benabik ftp://ftp.parrot.org/pub/parrot/releases/devel/3.10.0/
whiteknight ...there isn't?
23:38 whiteknight is now known as Guest5617
diakopter it's not linked from www.parrot.org/download 23:38
Guest5617 hmmm...weird. 3.9.0 directory doesnt seem to be there either 23:39
benabik It's linked to from the release announcement, but the download page still points at 3.8.0!
3.9.0 is ftp://ftp.parrot.org/pub/parrot/releases/supported/3.9.0
diakopter I need to 3.10.0 to work on nqpq
diakopter ftps it
Guest5617 Okay, I verified the tarball is on the server. I'm going to re-trigger the sync 23:40
ftp://ftp.parrot.org/pub/parrot/releases/devel/3.10.0/
23:41 Guest5617 is now known as wknight8111 23:42 wknight8111 left, wknight8111 joined
benabik I updated the link on /downloads. diakopter++ 23:42
dukeleto what is nqpq ? 23:45
felher is there a way to increase the maximum recursion depth in nom? 23:46
jnthn dukeleto: A (temporary) version of nqp we build with the new regex engine.
dukeleto: We can't build it as the actual nqp yet since it's not capable of building itself yet.
dukeleto also, is the London release cut from nom ?
jnthn: good to know
jnthn dukeleto: It's all in the same repo as nqp, it's not some big nqp-rx => nqp style transition again. :) 23:47
dukeleto diakopter: in case this happens in the future, there is always: github.com/parrot/parrot/tags
jnthn dukeleto: yes, tadzik++ did it a couple of hours ago :)
dukeleto tadzik++ # nom.London() 23:48
wknight8111 actually, the only file there is the .bz2. I know I definitely uploaded the other archive too
something strange is afoot
benabik I see a 3.10 .tar.gz as well. 23:50
23:50 tokuhirom joined
wknight8111 I just re-uploaded it 23:50
diakopter jnthn: what blocks nqpq from building itself?
jnthn diakopter: regex engine incompleteness :) 23:51
diakopter: And then probably a few grammar updates to handle us having real LTM.
diakopter waits patiently for broken tests from jnthn++ 23:52
jnthn diakopter: Didn't do them as actual tests, just a file of fail output with a bunch of comments. 23:53
diakopter: Here you go: gist.github.com/1375006 23:54
:)
23:55 benabik_ joined
diakopter jnthn: one way to do ** would be to explode out all the states for each repetition from 0 to min as mandatory then from min+1 to max as optional 23:56
jnthn diakopter: Yeah, explode is perhaps the operative word there ;)
But it would indeed work :)
diakopter: I didn't put that one in the file, fwiw.
diakopter I mean, who's going to do repetition ranges of 65536..1048576 23:57
jnthn I suspect that 1, 3, 4, 7 and 8 don't need to actually do anything in the NFA itself, but rather just cope with some extra stuff that can appear in the QAST tree for the regex and know not to bail out and say it's fate. 23:58
23:58 benabik left
diakopter QRegex is so fatalist 23:59
jnthn (e.g. the NFA builder needs to be made aware that some consturcts shouldn't cause nodes to be put in the NFA, but can be safely ignored)
diakopter k