pugscode.org/ | nopaste: sial.org/pbot/perl6 | ?eval [~] <m oo se> | We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by diakopter on 11 July 2007.
TimToady_ that was weird; wonder why I got knocked off freenode... 00:05
allbery_b one of the servers fell over, if the quits/joins/etc. in my scrollback can be believed 00:30
(kubrick?)
diakopter egads: 18:31:27(CDT:UTC-05) -!- NickServ: No such nick/channel 03:09
sunnavy is it `a rvalue' or `an rvalue', `a lvalue' or `an lvalue'? 03:29
diakopter depends if you pronounce them luh-value or ell-value and ruh-value or arr-value 03:30
sunnavy thanks, diakopter ;-) 03:31
sunnavy TimToady: I think I found a typo in S03:2833, "you'd have the add" should be "you'd have to add"? 03:34
TimToady sunnavy: fixed, thanks 03:36
sunnavy NP, :-) 03:38
TimToady: oh, and another one, in S03:3635, is "my \$capture := func();" correct? seems a little wield :P 03:40
diakopter polysemous etymons reticulate lambently 04:59
moritz_ good morning ;) 05:51
Aankhen`` S05: "If the first character is a plus or minus, the rest of the assertion […]" seems to be at odds with "A leading C<+> causes a named assertion not to capture what it matches […]", though I could be missing something obvious. 08:05
Ah, read a little further and that seems to be clarified. 08:07
sbp waves with one hand, holding a question behind his back with the other 08:18
is there a way to do tentative regexp matching in p6? 08:19
by which I mean:
regex N tentatively matches string M iff a) N doesn't match M, but b) N could match M if further characters were appended to M 08:20
the use case I have is matching tokens in buffered input. it's not so much the tentative matching that's important as the fact that I don't want to have to *restart* the automaton when I read some more stuff into the buffer
moritz_ sbp: you mean like applying a regex as a monitor to a string?
sbp so what I'm really after is a partially completed regex
a monitor? I'm not familiar with the term... got some breadcrumbs? 08:21
sbp Googles meanwhile
moritz_ it's not a technical term
a regex that watches a stream?
sbp hmm. I think that probably accords to what I need, yes 08:22
moritz_ sbp: what you can do in any case is to specify a starting position for the match
$string ~~ m:pos($starting_position)/$regex/ 08:23
sbp I don't see how that'll help if you have something with delimiters
I mean, say it's a really long "string literal" token for example
but I've only read '"string li' into the buffer so far 08:24
I can't start again from the 't' in literal
because my token regex will be expecting " as the first character
moritz_ if it's really buffered input, you can match against a stream from the iterator
sbp ...ooh 08:25
moritz_ =*IN.cat ~~ m/ <string_literal> /
perlcabal.org/syn/S05.html#Matching...on-strings
sbp great, I think that's what I'm after. thanks! 08:26
moritz_ you're welcome ;)
Juerd dalek: What's the bot's purpose? 09:20
rgs to exterminate, of course
Juerd Ah!
Then it's ok 09:21
rgs sees that /whois dalek returns Caan and giggles
Gothmog_ "A leading + may also be supplied to indicate that the following character class is to matched in a positive sense" 09:48
Isn't there a "be" missing?
Like, s/is to matched/is to be matched/ 09:49
andara Juerd: could it be that the svn server is down? I get 09:53
svn: PROPFIND request failed on '/pugs'
svn: PROPFIND of '/pugs': could not connect to server (svn.pugscode.org)
moritz_ andara: not down, just a bit shaky
try it again 09:54
Juerd andara: It's not down
andara moritz_: I've been trying for three days now
Juerd Components for feather v2 are on their way
andara Juerd: cool
moritz_ andara: it just worked for me
Juerd andara: traceroute feather.perl6.nl
andara Juerd: there is a route, I can ssh 09:55
Juerd Then svn should also work!
What happens if you connect to svn.pugscode.org/ manually? 09:56
(Hm, doesn't work for me...)
andara Juerd: I tried this on feather:
svn co svn.pugscode.org/pugs -r 17058 .
Juerd: and it fails
Juerd It appears that https is broken 09:57
moritz_ andara: just use http
andara moritz_: That works on feather, but on my desktop I get permission denied :-( 09:58
moritz_ always uses http
Juerd https is back up
Shouldn't differ from http though
andara Juerd: could be our firewall, but when I use http I get: 09:59
svn: PROPFIND of '/pugs': 403 Forbidden (svn.pugscode.org)
Juerd: anyway, https works again now, thanks!
Juerd I don't support any connections through firewalls ;) 10:00
If you have a firewall, you're always on your own for debugging :) 10:01
andara Juerd: no worries, https is not firewalled/proxied, nor is ssh
agentzh andara: *nod* i always use https to access external svn repos when i'm behind a firewall :) 10:03
andara: in the past, neither pugs nor jifty's repos supported https though :)
andara agentzh: well, lucky me then :-) 10:04
diakopter Juerd: dalek's source was the ircbot framework on which I was going to build all those ircop ... functionalities. 10:22
moritz_ diakopter: is that worth the trouble? 10:25
diakopter moritz_: (months ago)
Juerd diakopter: OK
moritz_ diakopter: you might have noticed that I implemented some things from your TODO list ;) 10:26
diakopter moritz_: yup. :D
moritz_ evalbot for kp6 and p6 on parrot, web frontend for searching pugs commit messages
got to get some food & 10:28
diakopter rgs: dalek is even identified to services 10:30
moritz_: did you end up changing the calleval syntax for your evalbot? (to what I suggested - kp6: 'evalThisByKp6'.say \ perl6: 'evalThisByAll'.say \ etc ) 10:33
[OT] anyone here know offhand how the various FTP client distributions on CPAN simulate RFCconforming/broken/nonRFC FTP servers in their tests (if any do)? 10:36
moritz_ diakopter: no, I didn't - I forgot 10:37
but I can change it know if you want 10:38
diakopter well, I think the merits of the change should be discussed first... My reasoning was thus: # is too reminiscent of comments. the entity: contextfree message syntax is already very familiar/easy for irc users to parse. also, the colon denotes associativity or explanation, which fits when using an eval to answer a question. Someone asks, "how does kp6-on-kp6 handle x?" or "how does perl6 handle x?" or "how do you translate perl5x to 10:43
... perl6?".... someone here can show the answer by "sending" the message to the proper implementation. So the personification metaphor of the language/implementations is extended.
moritz_ diakopter: good point 10:46
pugs_svnbot r17709 | fglock++ | [mp6] added newlines to output, in order to have smaller diffs in future commits 10:49
diff: dev.pugscode.org/changeset/17709
pugs_svnbot r17710 | fglock++ | [kp6] make forcerecompile 10:57
diff: dev.pugscode.org/changeset/17710
agentzh PCR is completely out of date regarding the latest S05 :( 11:00
moritz_ agentzh: time to change it ;)
agentzh moritz_: *nod*
moritz_: but i've been mostly hacking on T::D these days 11:01
moritz_ T::D?
agentzh will try to get back to PCR soon :)
Template::Declare
moritz_ ok
agentzh supper & 11:02
diakopter #eval 'said'.say 11:07
exp_evalbot kp6: OUTPUT[said␤]
..pugs: OUTPUT[said␤]
..p6: OUTPUT[Method 'say' not found␤current instr.: 'parrot;Perl6::Compiler;main' pc 138 (perl6.pir:98)␤]
..nqp: OUTPUT[Statement not terminated properly at line 1, near ".say"␤current instr.: 'parrot;PGE::Util;die' pc 123 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;NQP::Grammar;statement_list' pc 3535 (src/Grammar_gen.pir:1272)␤called from Sub 'parrot;NQP::Grammar;TOP' pc 498
..(src/Grammar_gen.pir:100)␤called from Sub 'parrot;PCT::HLLCompiler...]
diakopter #eval 'said'.say; 11:08
exp_evalbot kp6: OUTPUT[said␤]
..pugs: OUTPUT[said␤]
..p6: OUTPUT[Method 'say' not found␤current instr.: 'parrot;Perl6::Compiler;main' pc 138 (perl6.pir:98)␤]
..nqp: OUTPUT[Statement not terminated properly at line 1, near ".say;"␤current instr.: 'parrot;PGE::Util;die' pc 123 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;NQP::Grammar;statement_list' pc 3535 (src/Grammar_gen.pir:1272)␤called from Sub 'parrot;NQP::Grammar;TOP' pc 498
..(src/Grammar_gen.pir:100)␤called from Sub 'parrot;PCT::HLLCompile...]
moritz_ diakopter: nqp only supports sub(arguments) calling convention 11:09
pugs_svnbot r17711 | moritz++ | [evalbot] changed calling convention to 11:12
r17711 | moritz++ | \A(kp6|pugs|nqp|p6): $program\z diakopter++
diff: dev.pugscode.org/changeset/17711
moritz_ pugs: say "hi"; 11:13
exp_evalbot OUTPUT[hi␤]
pugs_svnbot r17712 | moritz++ | evalbot: use 'perl6:' to eval with all backends 11:14
diff: dev.pugscode.org/changeset/17712
moritz_ perl6: "I'm here".say 11:14
exp_evalbot kp6: OUTPUT[I'm here␤]
..pugs: OUTPUT[I'm here␤]
..p6: OUTPUT[Method 'say' not found␤current instr.: 'parrot;Perl6::Compiler;main' pc 138 (perl6.pir:98)␤]
..nqp: OUTPUT[Statement not terminated properly at line 1, near ".say"␤current instr.: 'parrot;PGE::Util;die' pc 123 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;NQP::Grammar;statement_list' pc 3535 (src/Grammar_gen.pir:1272)␤called from Sub 'parrot;NQP::Grammar;TOP' pc 498
..(src/Grammar_gen.pir:100)␤called from Sub 'parrot;PCT::HLLCompiler...]
moritz_ I was just wondering... can tainting be implement by making all input methods returing '$value but tainted'? 11:25
pugs_svnbot r17713 | fglock++ | [kp6] (AST) started adding Var.namespace 11:35
diff: dev.pugscode.org/changeset/17713
pugs_svnbot r17714 | fglock++ | [kp6] more namespace infrastructure 12:57
diff: dev.pugscode.org/changeset/17714
masak that email posted by wim vanderbauwhede on p6u today 13:10
I suppose all those bugs can be attributed to the commits audreyt++ made a few months ago in anticipation of the MO patch
moritz_ probably ;) 13:11
masak should I refer him to the logs you linked me to yesterday?
or is there a better answer to give him? 13:12
moritz_ you could ;)
andara hi masak: I'm wim
masak andara: oh, hi
andara masak: shoot
masak then you know
andara: hold on, I'll get the link
moritz_ andara: btw I didn't mean to reply ooff list, damned mail client
s/oo/o/
masak moritz_: oh, you replied already?
andara moritz_: no bother, I hadn't noticed 13:13
moritz_ masak: it wasn't complete at all
masak maybe one of us should write something to the list
just to give the impression of activity and aliveness
andara masak: I checked the svn log and traced it back to the move to ghc 6.6.1
moritz_ masak: do you know if the first example is valid perl 6?
masak andara: ah
moritz_: no idea
masak I thought backslashes had been replaced by captures 13:14
moritz_ it looks weird to me
masak but I'm not sure that goes for thunks, too
andara masak: I think the backslashes are redundant. if you do $a={...} yoy get a Code object, so I guess the backslash doesn't do anything 13:15
masak: but I didn't know that yesterday :-)
masak andara: I think you're right
pugs is in a somewhat inconsistent state right now 13:16
andara masak: yes, but unfortunately I can't build r17041 anymore, as it assumes ghc 6.6 and doesn't build with ghc 6.6.1
masak andara: pity. 13:17
install 6.6?
andara in parallel with 6.6.1? hmm, I could try. Or I could backport the changes required for 6.6.1, it's the filepath package I think 13:19
masak andara: might be easier
andara fsdo easy :-D
masak ;) 13:20
alternative1() orelse alternative2(); 13:21
moritz_ andthen wait()
masak hehe
andara && see() ;-)
pmurias hi 13:45
masak hello, pmurias 13:46
fglock_ kp6: say ( \( 1, 2, 3 ) ).WHAT 13:54
exp_evalbot r17714: OUTPUT[Capture␤] 13:55
moritz_ kp6: say (1, 2, 3).WHAT 14:05
exp_evalbot r17714: OUTPUT[Syntax Error␤␤]
moritz_ kp6: say ((1, 2, 3)).WHAT
exp_evalbot r17714: OUTPUT[Syntax Error␤␤]
fglock_ moritz_: List is not implemented, try Array 14:11
kp6: say [1,2,3].WHAT
exp_evalbot r17714: OUTPUT[Array␤]
moritz_ kp6: say [1,2].HOW 14:14
exp_evalbot r17714: OUTPUT[::Class(...)␤]
moritz_ kp6: say [1,2].HOW.methods
exp_evalbot r17714: OUTPUT[no method 'methods' in Class 'Bit'␤::Class(...)␤]
fglock_ precedence
say ( [1,2].HOW ).methods
kp6: say ( [1,2].HOW ).methods
exp_evalbot r17714: OUTPUT[int elems true HOW map array grep INDEX unshift new WHAT str FETCH STORE join perl sort push shift pop␤]
moritz_ pugs: say [1,2].HOW.methods 14:16
exp_evalbot OUTPUT[*** No such method in class Class: "&methods"␤ at /tmp/UWsDxA7cEy line 1, column 5 - line 2, column 1␤]
moritz_ pugs: say "foo".HOW.methods
exp_evalbot OUTPUT[["reverse","chop","index","quotemeta","join","chars","bytes","split","LIST","ITEM","bless"]␤]
moritz_ why does that work (in pugs) for strings but not for lists?
anyway, I'm impressed by kp6 ;)
fglock_ moritz_: thanks :) 14:17
there is still a lot of work to do :P
PerlJam fglock_++ fighting the good fight er something 14:18
:-)
fglock_ orelse something 14:20
pugs_svnbot r17715 | fglock++ | [kp6] var names are parsed as @namespace+$name
diff: dev.pugscode.org/changeset/17715
moritz_ these two kp6 branches scare me 14:22
I mean that's good for bootstrapping, but many enhancements and bugfixes just go into one of them 14:23
[particle] do they share a test suite? that's one way to keep them similar 14:25
moritz_ [particle]: they do, but the "bootstrapped" version doesn't pass all of it 14:26
[particle] how can i run tests on windows? 14:28
looks like trac is down 14:29
fglock_ [particle]: run_tests_kp6_mp6.pl seems to be pure perl
moritz_: scares me too
but svn merge seems to keep it working 14:30
moritz_ (version control)++
pmurias fglock: Match dosn't have LOOKUP, what should it do? 14:40
pass it on to hash? 14:41
* $.hash
fglock_ the compiler should compile match lookups to $/.hash.{'thing'} 14:42
or we could declare that .LOOKUP is handled by $.hash
but this is not implemented yet 14:43
moritz_ why should the compiler know that, and not the class?
pmurias handles is just syntax sugar
fglock_ .hash should probably ba called postcircumfix:<{ }> 14:48
be
(S13) 14:49
and this would also replace .LOOKUP
[particle] doesn't ${} desugar to $/.{} ? 14:50
or shouldn't it? 14:51
fglock_ [particle]: not sure 14:52
[particle] i believe this is what nqp does 14:53
[particle] actually, nqp uses $<...> for $/<...> 14:56
moritz_ that's specced
pugs_svnbot r17716 | fglock++ | [kp6] more namespace fixes 15:27
r17717 | pmurias++ | [kp6] a test for a bug which breakes code from Token
diff: dev.pugscode.org/changeset/17717
TimToady STD complains that ${} should be written $() to catch attempts to use p5 syntax 15:33
fglock_ hmm - but an empty $() means a different thing 15:39
TimToady sure, but empty ${} in p5 is pretty useles 15:42
andara TimToady: there seems to be a subtle difference between $r=\{...} and $r={...}, can you clarify that? 15:47
TimToady I don't know what \{...} is supposed to mean 15:51
unless it means to put the Code object into a Capture 15:52
TreyHarris andara: "\{" isn't specified anywhere in synopses, but...
nevermind, TimToady beat me
TimToady whois andara
TreyHarris (hi, TimToady, I'm back to the land of the living, maybe)
andara TimToady: I try to evaluate arguments to a function in parallel after they are passed to the function body: 15:53
my @args=(\{$i1.f1()},\{$i2.f2()},\{\{$i3.f3()}}); sub unquote($a) {return $a()}; my @evargs=@args.>>.unquote;
moritz_ wtf?
szbalint looks tasty
:)
moritz_ it looks like something a haskell coder would write ;) 15:54
andara moritz_: you are right, i'm writing a runtime for a functional language with parallel evaluation of the arguments 15:55
moritz_ ;)
andara moritz_: it really looks like (f0 (f1 ) (f2 ) '(f 3)) 15:56
but every function is an object method, so (f1 ... ) becomes $i.f1(...) 15:57
TimToady so, who defined $i1, $i2, $i3?
TreyHarris TimToady: the closure gnomes 15:58
andara TimToady: they are object instances, e.g. I have an ALU object with methods add, mult etc
TimToady yes, but from p6u I suspect andara is trying to pull those in from the dynamic scope rather than the lexical scope 15:59
TreyHarris use ClosureGnome <hairy>; 16:00
andara TimToady: the scope is a different issue. What I want to do is defer evaluation of the function arguments to the function body. 16:02
TimToady it looks to me like you're just trying to curry the invocant 16:03
moritz_ andara: why not just use 'lazy { ... }'? 16:04
TreyHarris moritz_: even a lazy block is compiled immediately, isn't it?
andara moritz_: is that implemented in pugs?
moritz_ TreyHarris: but not evaluated 16:05
andara: seems not
TimToady but the compilation would bring us back to scoping issues
TreyHarris right. you need a macro with substitution. which is definitely not there yet.
andara TreyHarris: why? 16:07
pugs_svnbot r17718 | fglock++ | [kp6] fixed Grammar.token_P5
diff: dev.pugscode.org/changeset/17718
TreyHarris andara: if you want to refer to variables that don't exist yet, but you're making a promise that they will by the time at which the code is executed, that's a macro. not a closure. 16:08
moritz_ TreyHarris: isn't that evil[tm]?
andara TreyHarris: I see, that's what I mentioned on p6u. But I can easily do without that
TreyHarris moritz_: isn't what evil? making a promise that will make perl go boom if you don't live up to it? that's not evil, that's programming :) 16:09
moritz_ TreyHarris: promising that you will declare variables ;) 16:10
TreyHarris no more evil than a forward declaration. if you never use the macro, you never have to declare the variables in the dynamic scope that the macro referred to 16:12
TimToady anyway, I don't see why you don't just use a parameter -> $i1 { $i1.f1() } or { $^i1.f1 } 16:13
diakopter or string eval.
TimToady lambda arguments have to be good for something... 16:14
(assuming the definition of $i1 really is coming from the dynamic scope) 16:15
pugs_svnbot r17719 | fglock++ | [kp6] cleanup unused code, test names 16:21
diff: dev.pugscode.org/changeset/17719
pugs_svnbot r17720 | moritz++ | Kwid::Event::Parser: removed obsolete unless...else 16:27
diff: dev.pugscode.org/changeset/17720
lambdabot Title: Changeset 17720 - Pugs - Trac
[particle] there's no @^var, is there? 16:29
{ $^head(@^tail) }
masak that's reminiscient of that "slurpy" feature I've never quite taken the time to understand... 16:31
the one written @*tail in param lists
TimToady you mean *@tail, and @^tail would currently map to @tail instead 16:33
an argument could be made for autoslurping a final @ I suppose
masak TimToady: ah, yes, *@tail 16:34
TimToady I guess if you want to capture an array as a single item you can always use $^tail 16:34
masak autoslurping certainly seems more DWIMmy than mapping to @tail
TimToady so maybe it makes sense
masak question is what happens if one uses a $^var Unicode-betically after that 16:35
TimToady compiler barfs, maybe
masak likely
it's easy to check, at least
[particle] that'd be fine with me
masak would it make sense to write it *@^tail, too? 16:36
TimToady not unless we recognized *@ as a token
since * means Whatever
masak even in param context? 16:37
TimToady the param context would have to be retroactive with @^
masak ok, maybe not worth the trouble
TimToady the only other place we do retroactive is => quoting currently
and even that's a bit of a pain in the grammar
masak yes 16:38
let's concentrate on going forward :)
TimToady well, and the two places we officially do backtracking in STD
TreyHarris hwat is STD? 16:39
TimToady src/perl6/STD.pm, the old Perl-6.0.0-STD.pm
TreyHarris ahhh, right
TimToady which is the standard grammar definition for p6
szbalint hm I might need a little linguistical help, what do you think would be a fitting name for a module that is a subclass of WWW::Mechanize and basically allows a user to come up with his own way of actually executing the request that WWW::Mechanize assembles, instead of letting LWP take care of it? (I know it is not strictly Perl 6 related, not yet at least).
I'm currently thinking of WWW::Mechanize::Detached and WWW::Mechanize::Passive, any other suggestions? 16:40
TimToady Defer or Dont or Capture or Lazy 16:41
szbalint Defer actually sound good. Thanks! 16:42
wolverian Don't
;)
pugs_svnbot r17721 | fglock++ | [kp6] initial implementation of autovivification of globals 16:57
diff: dev.pugscode.org/changeset/17721
lambdabot Title: Changeset 17721 - Pugs - Trac
fglock_ home &
pugs_svnbot r17722 | fglock++ | [kp6] t/kp6/47-global.t pass 17:42
diff: dev.pugscode.org/changeset/17722
lambdabot Title: Changeset 17722 - Pugs - Trac 17:43
pugs_svnbot r17723 | fglock++ | [kp6] t/kp6/48-do.t pass 17:52
diff: dev.pugscode.org/changeset/17723
lambdabot Title: Changeset 17723 - Pugs - Trac
fglock ferreira: hi! 17:53
ferreira fglock: hi 18:01
ludan hola 18:35
ferreira exit 19:08
moritz_ in perl5 configure, how do I add a flag for the linker? 19:19
moritz_ -Dldflags 19:37
found it ;)
pugs_svnbot r17724 | pmurias++ | [kp6] match_p5rx returns a Match object 19:43
diff: dev.pugscode.org/changeset/17724
pugs_svnbot r17725 | pmurias++ | [kp6] a simple Test.pm 20:38
diff: dev.pugscode.org/changeset/17725
lambdabot Title: Changeset 17725 - Pugs - Trac
Juerd I haz feather2 parts 21:06
szbalint nice Juerd, is it going to be upgraded then? :) 21:13
diakopter now! 21:18
Juerd szbalint: Absolutely 21:41
The components fit together :0
:)
It's booting knoppix now
Help me out here 21:42
What should I do - raid 1 with 3 drives, or raid 1 with 2 drives and 1 hot spare?
The former has the benefit of not losing redundancy during the first hour after failure, and perhaps some performance improvement 21:43
diakopter votes for the former
Juerd The latter has the benefit of not wearing the disk head
TimToady the disk head isn't supposed to be touching anything anyway when it's flying 21:44
Juerd s/disk head/whatever the arm is called/
TimToady: Oh, this reminds me... does Perl 6 have "regex context"? 21:45
s[foo] = @bar
Or is that just item context
Hm, I had this nice trick in mind for a regex context but I forgot
TimToady just item context. 21:46
it desugars to something like .subst(rx/foo/, { $_ = @bar })
or $() = @bar, or something 21:47
diakopter o&o 21:48
amnesiac wicked 21:50
Shillo Hullo all 23:16
Tene Hi! 23:18