perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ Set by mncharity on 25 March 2009. |
|||
00:09
LylePerl left
00:18
orafu left,
orafu joined
00:21
DemoFreak left
00:22
wknight8111 left
00:30
hercynium joined
00:32
orafu left,
orafu joined
00:33
sri_kraih left
00:34
sri_kraih joined
00:38
LimbicRegion joined
|
|||
pugs_svn | r26509 | lwall++ | [STD] allow traits on subset, enum | 00:41 | |
r26509 | lwall++ | [STD] non-declarative enum listop now parsed as normal listop | |||
TimToady | dduncan: generally such language nestings are handled via context variables, which can either be tested directly with <?$*VAR>, or used to convey a derived language inward | 00:44 | |
as with $*LANG in STD | |||
a derived language can enforce whatever restrictions it likes, though often the result is "syntax error", whereas explicitly testing can give better error messages | 00:45 | ||
00:57
LimbicRegion left
01:02
eternaleye joined
01:07
Limbic_Region left
01:11
Auzon left
01:12
km2 joined
01:13
kimtaro left
01:16
hercynium left,
FurnaceBoy left
|
|||
PhatEddy | std: class A{ our $.x is rw = 12 } ; say $A::.x | 01:18 | |
p6eval | std 26509: OUTPUT«ok 00:05 43m» | ||
PhatEddy | rakudo: class A{ our $.x is rw = 12 } ; say $A::.x | ||
p6eval | rakudo 467ade: OUTPUT«Scope not found for PAST::Var '$A' in current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:105)» | ||
PhatEddy | I'm guessing the problem is on the rakudo side but not 100% sure ... | 01:19 | |
01:19
LylePerl joined
01:20
aindilis left,
aindilis joined
|
|||
s1n | rakudo: %*ENV<TEST> := 'foo'; %*ENV<TEST>.say | 01:29 | |
p6eval | rakudo 467ade: OUTPUT«rtype not setcurrent instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:105)» | 01:30 | |
s1n | hmm, seems ENV is just busted | ||
01:30
nihiliad joined
|
|||
pmichaud | assignment to %ENV doesn't work yet. | 01:33 | |
s1n | pmichaud: there's a ticket that said binding did though | ||
pmichaud | that was probably before binding was broken. | ||
s1n | heh okay | ||
pmichaud: okay thanks, where would i find the ENV code? | 01:34 | ||
pmichaud | the ENV stuff is based on Parrot's Env PMC | ||
what rakudo will have to do is to create its own Env type, and then override postcircumfix:<{ }> for that type. | 01:35 | ||
s1n | there is no Env type in rakudo? | ||
01:36
kimtaro joined
|
|||
pmichaud | the postcircumfix:<{ }> for Rakudo's env type will have to return proxy objects that know how to rebind the underlying Env PMC objects whenever a value is stored into them. | 01:36 | |
PhatEddy | rakudo: class A{ our $x is rw = 12; my $x = 4 } ; say $A::x | 01:37 | |
p6eval | rakudo 467ade: OUTPUT«12» | ||
pmichaud | although, I suppose it might be sufficient to define postcircumfix:<{ }> directly on Parrot's Env PMC | ||
but we still need the proxy values. | |||
PhatEddy | pmichaud: I wonder if that last might not talk back more ... | 01:38 | |
pmichaud | PhatEddy: yes, that looks like a redeclaration error to me. | 01:39 | |
dduncan | TimToady, I hear that | 01:44 | |
01:45
nbrown joined
01:46
orafu left
01:47
orafu joined
01:51
japhb left
01:53
hercynium joined,
dalek left,
dalek joined
01:58
PhatEddy left
02:09
orafu left,
orafu joined
02:17
spx2 left,
spx2 joined
02:32
orafu left
02:33
orafu joined
02:44
simcop2387 joined
02:57
payload left
03:18
orafu left,
orafu joined
03:37
orafu left,
orafu joined
04:04
hercynium left
04:06
sri_kraih_ joined
|
|||
pugs_svn | r26510 | lwall++ | [STD] allow «...» on enums, per S12 | 04:11 | |
r26511 | lwall++ | [S12] doc syntax for exporting subset and enum | 04:14 | ||
r26511 | lwall++ | [S12] enum uses (...) rather than [...], since <...> is defined as ()-like | |||
r26511 | lwall++ | [S03] mention temp and let as named unary ops | |||
04:22
sri_kraih left
04:34
jhorwitz_ joined
04:37
drbean joined
04:45
japhb joined
04:47
jhorwitz left
04:54
drbean_ left
|
|||
pugs_svn | r26512 | pmichaud++ | [t/spec]: Use isa_ok instead of WHAT to test types. (more to come) | 04:59 | |
05:01
meppl joined
|
|||
pugs_svn | r26513 | pmichaud++ | [t/spec]: Use isa_ok instead of WHAT to test types. | 05:04 | |
r26514 | pmichaud++ | [t/spec]: Use isa_ok instead of WHAT to test types. | 05:15 | ||
r26515 | pmichaud++ | [t/spec]: Use isa_ok instead of WHAT to test types. | 05:21 | ||
05:24
aindilis left,
aindilis joined
|
|||
pugs_svn | r26516 | pmichaud++ | [t/spec]: Use isa_ok instead of WHAT to test types. | 05:35 | |
r26517 | pmichaud++ | [t/spec]: protoobjects stringify to shortname plus parens (S12) | 05:36 | ||
05:45
orafu left,
orafu joined
|
|||
pugs_svn | r26518 | pmichaud++ | [t/spec]: protoobjects stringify to shortname plus parens | 05:45 | |
06:12
skids_ left
06:19
azawawi joined
|
|||
moritz_ | with parrot r38385 rakudo fails t/spec/S02-builtin_data_types/catch_type_cast_mismatch.t | 06:24 | |
oh wait, I didn't update the test... | |||
06:25
mberends joined
06:28
iblechbot joined
06:36
amoc joined
|
|||
pugs_svn | r26519 | pmichaud++ | [t/spec]: More protoobject stringification updates. | 06:37 | |
arnsholt | Where are the arguments to a grammar's parse method specced? I've grepped through S05, but can't see anything | 06:38 | |
moritz_ | pmichaud: did you see my patch for the test suite in RT? | ||
pmichaud | moritz_: alas, didn't see it until just now. | 06:41 | |
anyway, I think everything's all cleared up again -- spectests are passing on my box. | 06:42 | ||
moritz_ gives it another try | 06:43 | ||
pmichaud: on parrot HEAD t/spec/S02-builtin_data_types/catch_type_cast_mismatch still fails | 06:44 | ||
pmichaud | moritz_: did you update rakudo? | ||
06:45
orafu left
|
|||
moritz_ | ah no | 06:45 | |
06:45
orafu joined
|
|||
moritz_ | (missing dalek)-- | 06:45 | |
06:48
dalek left,
dalek joined
|
|||
pmichaud | time for sleep here | 06:51 | |
be back in a few hours | |||
moritz_ | good night | 06:53 | |
07:06
rewt left,
rewt joined
07:10
DemoFreak joined
07:16
masak joined
07:19
wollmers joined
07:24
dduncan left
07:32
justatheory left
|
|||
mberends | masak: top o' the mornin' to you, sir. | 07:38 | |
lambdabot | mberends: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
mberends | @massage | ||
lambdabot | masak said 17h 10m 33s ago: check out the new dotty progress bars when proto installs Rakudo :) | ||
masak | mberends: and a very fine one to you, good sir. | ||
mberends | dotty.................. c.o.o.l. | ||
masak | still primitive, but it's a good start. | 07:39 | |
and only for 'proto' so far, none for 'installer'. | |||
07:40
payload joined
07:41
cognominal left
|
|||
mberends | ok. did a bit a reading about .deb file format etc last night. It may suit Perl 6 as a package format. Windows lacks the essential building blocks ar, tar and gzip, so those would become dependencies :( | 07:41 | |
masak | maybe we can implement small versions of them in Perl 6 :) | 07:42 | |
mberends | gzip might be tough. it would probably need PIR to be fast enough. | 07:43 | |
moritz_ | or a dynpmc for parrot that wraps the C library | ||
mberends | moritz_: that would still be a massive dependency on Windows :( | 07:44 | |
masak | package management systems are hard! | ||
moritz_ | mberends: whatever you do, you can assume that windows can't handle it out of the box | 07:45 | |
07:45
km2 left
|
|||
pugs_svn | r26520 | azawawi++ | [S:H:P6] Bundled latest STD in 0.47 | 07:46 | |
07:46
amoc left
07:47
amoc joined
|
|||
mberends | moritz_: yes. maybe the gzip library is simple enough to call in via NCI. probably, I hope. | 07:48 | |
07:49
km2 joined
|
|||
mberends | are the rumours that sockets are br0k3n true? | 07:49 | |
masak | mberends: seems not. | 07:50 | |
mberends | phew. I have a testing plan in the back of my mind, will try later today. | 07:51 | |
masak | moritz_: I was going to debug the problem with sockets this morning. but when I did bin/run-nibbler, everything worked fine. | ||
mberends++ | |||
azawawi | @karma | 07:53 | |
lambdabot | You have a karma of 135 | ||
azawawi | :) | ||
mberends | @karma | ||
lambdabot | You have a karma of 33 | ||
mberends | keep hacking, then :) | ||
moritz_ | masak: so, do you know what I did wrong? | 07:54 | |
masak: I cargo-culted it straight from HTTP::Daemon | |||
masak | moritz_: will re-try your code later today. | 07:56 | |
it definitely should work. | |||
mberends | moritz_: can I help you with HTTP::Daemon? | ||
07:56
orafu left,
orafu joined
|
|||
moritz_ | mberends: see my mail to perl6-users | 07:59 | |
mberends: I tried to create a simple test for the test suite, and failed miserably | |||
masak | :/ | 08:00 | |
moritz_: you did use the HTTP::Daemon in Web.pm, didn't you? | |||
oh, wait. you must've. | |||
mberends | oops. no email here currently. is there a URL? | ||
masak | www.nntp.perl.org/group/perl.perl6....g1050.html | 08:01 | |
mberends | first thought is that listen() is missing. | 08:02 | |
08:02
kidd_` joined
|
|||
moritz_ | ooh | 08:03 | |
mberends | it all depends on BSD Sockets, and the specs I used for that were perldoc perlipc (P5) | ||
not the truest source, but practical for a perl programmer. | 08:04 | ||
moritz_ | I'll take a closre look tonight, thank you | 08:05 | |
08:05
amoc left,
amoc joined
|
|||
azawawi | moritz_: so .HOW or ^ methods are static class methods, right? | 08:15 | |
moritz_: and good morning first :) | |||
08:16
Eevee left
|
|||
moritz_ | azawawi: it's a method on an instance of the method class | 08:16 | |
08:16
riffraff joined
|
|||
azawawi takes a look at t/spec | 08:17 | ||
wollmers | Good morning. | 08:20 | |
08:25
pmurias joined
08:26
|Jedai| joined
08:27
bacek left,
xinming_ is now known as xinming
08:28
mberends left
08:32
bacek__ left
|
|||
pmurias | azawawi: would it be hard to make padre run mildew on F5? | 08:33 | |
08:35
sri_kraih_ left
|
|||
azawawi | pmurias: NOP :) | 08:35 | |
pmurias: i can its support if you need | |||
pmurias: s/can/can add/ | 08:36 | ||
pmurias: you can do it by making a plugin that override the F5 behavior... | |||
pmurias: or you can fake it by renaming your mildew to perl6.exe and use Padre::Plugin::Perl6 | 08:37 | ||
pmurias | what would i would like most is to map different F* keys to running mildew with different options | 08:39 | |
so it could show the ast... | |||
azawawi | pmurias: let me check | 08:40 | |
08:41
xinming left,
bacek__ joined
|
|||
azawawi | pmurias: i can add it now for you if mildew builds on win32... | 08:42 | |
08:42
Jedai left
|
|||
azawawi | pmurias: in Padre::Document::Perl6.pm you need to modify subroutine 'get_command' | 08:43 | |
pmurias | azawawi: i haven't tried building mildew/smop on win32 | ||
azawawi: i see that place | 08:46 | ||
azawawi | pmurias: no problem; so you need to customize the executable to run along with its arguments in Perl6 plugin | ||
pmurias: you're using Padre over linux right? | 08:49 | ||
pmurias | azawawi: yes | 08:50 | |
azawawi starts installing a linux vm :) | 08:51 | ||
pmurias: use $ENV{MILDEW_DIR} or MILDEW_HOME ? | 08:52 | ||
08:55
orafu left
|
|||
pmurias | maybe $ENV{MILDEW_EXEC}? | 08:55 | |
08:55
orafu joined
|
|||
azawawi | pmurias: ok | 08:57 | |
moritz_ | somehow the signatures in S16 and in Rakudo don't match at all | ||
08:57
iblechbot left
|
|||
moritz_ | s/S16/S32::IO/ | 08:58 | |
for example in the spec it's Int read(Buf, Int), in Rakudo it's Str read(Int) (which seems much saner to me) | |||
09:00
payload left
|
|||
azawawi | pmurias: i will add it today once i get Padre and mildew running on my linux vm here. | 09:02 | |
09:04
ejs joined
|
|||
szabgab | what is mildew ? | 09:14 | |
pmurias | szabgab: the Perl 6 compiler for smop | ||
szabgab | ic | 09:15 | |
moritz_ | how much does smop actually run? | ||
s/smop/mildew+smop/ | |||
szabgab | IMHO the Perl6 plugin should have an option to select which is the perl6 executable (from a list) | ||
pmurias | moritz_: the refactored smop runs very little | 09:17 | |
moritz_ | and the old one? | ||
pmurias | v6/mildew/t | 09:19 | |
the feature set was more concept oriented like like return implemented as control exceptions rather then having user feature like &infix:<*> | 09:21 | ||
azawawi | szabgab: sure in a preferences dialog or something... | 09:23 | |
azawawi finished installing a kubuntu vm... | 09:24 | ||
moritz_ | pmurias: right, it looks rather impressive, but as you said, not very user-oriented | ||
09:32
lambdabot left
09:35
lambdabot joined
09:37
aindilis left
09:38
aindilis joined
|
|||
jnthn | morning | 09:44 | |
azawawi | good afternoon :) | 09:45 | |
09:52
payload joined
10:01
azawawi left
10:03
azawawi joined
|
|||
azawawi | pmurias: ping | 10:04 | |
jnthn | std: constant $answer is export = 42; | ||
p6eval | std 26520: OUTPUT«ok 00:02 36m» | ||
jnthn | std: constant answer is export = 42; | 10:05 | |
p6eval | std 26520: OUTPUT«ok 00:02 35m» | ||
pasteling | "azawawi" at 212.38.130.254 pasted "mildew failure on kubuntu" (34 lines, 2.6K) at sial.org/pbot/36250 | 10:06 | |
azawawi | pmurias: i could not get mildew to compile on kubuntu... | 10:07 | |
10:07
pancake joined
10:20
orafu left,
OuLouFu joined,
OuLouFu is now known as orafu
10:26
synthetic56565 joined
10:29
synthetic56565 left,
synthetic56565 joined
|
|||
pancake | is $fh.readline deprecated or it is just not yetd implemented in rakudo? | 10:30 | |
jnthn | deprecated; use .get | ||
synthetic56565 | rakudo: say 5+5; | 10:32 | |
p6eval | rakudo 931d23: OUTPUT«10» | ||
10:33
kidd_` left
|
|||
masak | rakudo: say [*] 1..10 | 10:33 | |
lambdabot | masak: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
p6eval | rakudo 931d23: OUTPUT«3628800» | ||
masak | @massage | ||
lambdabot | frettled said 1d 11h 48m 42s ago: (expt masak 2) for that blog post | ||
masak | @clear | ||
lambdabot | Messages cleared. | ||
masak | frettled: I didn't ask the last time around -- is that a Lisp sexpr? | 10:34 | |
synthetic56565 | rakudo: say 1..9.map:{ rand }.sort; | 10:39 | |
p6eval | rakudo 931d23: OUTPUT«Statement not terminated properly at line 1, near ":{ rand }."current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | ||
masak | rakudo: (1..9).map({rand()}).sort.perl.say | 10:41 | |
p6eval | rakudo 931d23: OUTPUT«[0.0160124356198175, 0.12060063819807, 0.308289916295585, 0.427930465290906, 0.458597140425024, 0.467302533926233, 0.493214739157647, 0.630845762879716, 0.973159495965238]» | ||
synthetic56565 | thanks ;) | 10:42 | |
masak | np. | ||
synthetic56565 | why doesn't the : syntax work? | ||
masak | synthetic56565: there's an RT ticket about it. | ||
something to do with parsing, I think. | |||
synthetic56565 | ah, k | ||
masak | (or was that just for @array.sort:{...} ? hm, don't remember.) | ||
pancake | rakudo: say (open "/etc/issue",:r).get | 10:45 | |
p6eval | rakudo 931d23: OUTPUT«Debian GNU/Linux 5.0 \n \l» | ||
10:45
frodwith_ joined
|
|||
pancake | uhm, that can be dangerous O:) | 10:45 | |
10:46
frodwith left
|
|||
masak | pancake: feel free to write a sandbox environment for Rakudo before someone does something destructive with p6eval. | 10:46 | |
pancake | i hope nobody does, i just wanted to ensure if it was possible/secure | 10:47 | |
10:47
payload left
|
|||
pancake | i have some perl scripts to prepare minimal chroot environments | 10:48 | |
but we should probably run this in a virtual machine to have better control on the network | |||
masak | rakudo: sub by($s, $f is copy, $t) { gather while $f<=$t { take 0+$f; $f += $s } }; "Jpuesrtl a6n ohtahcekre r".split("")[by(2,0,24),by(2,1,25)].join.say | 10:54 | |
p6eval | rakudo 931d23: OUTPUT«Just another perl 6 hacker» | ||
pmurias | azawawi: pong | 10:56 | |
azawawi: run make in perl6-snapshot | |||
also mildew is going to be replaced by re-mildew (the refactored version) soon | 10:58 | ||
wollmers | std: my $a'a = "foo"; | ||
p6eval | std 26520: OUTPUT«ok 00:04 36m» | 10:59 | |
masak | std: my $a'_'a = "foo"; | 11:05 | |
p6eval | std 26520: OUTPUT«ok 00:04 36m» | ||
wollmers | std: my $a-_-a = "foo"; | 11:06 | |
p6eval | std 26520: OUTPUT«ok 00:04 36m» | ||
moritz_ | rakudo: my $a'_'a = "foo"; say $a'_'a; | ||
p6eval | rakudo 931d23: OUTPUT«foo» | ||
jnthn | eww. | 11:07 | |
masak | rakudo: my $_-_'-_ = 5; say $_-_'_-_ | ||
p6eval | rakudo 931d23: OUTPUT«Statement not terminated properly at line 1, near "'-_ = 5; s"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | ||
jnthn | phew. | ||
masak | oops. | ||
rakudo: my $_-_'_-_ = 5; say $_-_'_-_ | 11:08 | ||
p6eval | rakudo 931d23: OUTPUT«5» | ||
jnthn | eww. | ||
masak | :) | ||
and people worry about Perl 6 being too readable. | |||
wollmers | rakudo: my $a'a = "bar"; | ||
p6eval | rakudo 931d23: ( no output ) | ||
wollmers | hmm, need a newer version of rakudo - $a'a fails here | 11:09 | |
jnthn | rakudo: ::_'_ := Int | 11:10 | |
p6eval | rakudo 931d23: ( no output ) | 11:11 | |
wollmers | masak: readability does not depend on language - most is naming | ||
jnthn | rakudo: ::_'_ := Int; my _'_ $x = 42; say $x; $x = "hi"; say $x; | ||
masak | wollmers: I know. I wasn't 100% serious. | ||
p6eval | rakudo 931d23: OUTPUT«42Type mismatch in assignment.current instr.: 'die' pc 17540 (src/builtins/control.pir:225)» | ||
jnthn | omfg. | ||
jnthn hopes people do not use this too much... | |||
otoh it'll be great for obsfucation. | |||
moritz_ | indeed | 11:12 | |
masak | jnthn: that 'type mismatch' error... couldn't it be extended to says which two types mismatched? | ||
moritz_ should blog about it | |||
masak | s/says/say/ | ||
moritz_ | that would be *really* great | ||
masak | feels like Rakudo must've just figgered out that there were two types not matching, so it should have them handy anyway in some form. | 11:13 | |
jnthn | masak: It probably can. | ||
masak: Should be easy-ish. | |||
masak | jnthn: do you want an RT ticket about it? | 11:14 | |
arnsholt | Is there something that could stop action methods in grammars from being run? | ||
masak | arnsholt: not including the {*} in the rule? :) | 11:15 | |
moritz_ | arnsholt: when you forget the {*} it won't run | ||
:-) | |||
arnsholt | Yeah. Not that simple though =) | ||
masak | arnsholt: also, not attaching an action class to it. | ||
moritz_ | also if the {*} is in a branch that didn't match | ||
masak | arnsholt: alternatively, not calling the grammar at all :) | ||
there are many possibilities. | |||
jnthn | masak: It should be easy enough...let me get the current stuff I'm doing on constant done and then I'll take a look. | 11:16 | |
arnsholt | I get a successful match, and actions at the lower levels run (I know this because calling say gives output there), but the two top rules just don't happen | ||
moritz_ | arnsholt: nopaste it? | ||
masak | jnthn: oki. jnthn++ | ||
11:19
ejs left,
broquaint left,
samlh left,
lumi left,
cls_bsd left,
c9s left,
kimtaro left,
SamB left,
s1n left,
m-i-l-a-n left,
|Jedai| left,
wollmers left,
japhb left,
lisppaste3 left,
hcchien left,
scook0 left,
amoc left,
dalek left,
spx2 left,
eternaleye left,
kidd_ left,
phenny left,
pancake left
|
|||
pasteling | "arnsholt" at 129.240.72.206 pasted "Action weirdness" (58 lines, 1.9K) at sial.org/pbot/36251 | 11:20 | |
pugs_svn | r26521 | pmurias++ | [re-mildew] | ||
r26521 | pmurias++ | say works (with inlined return) | |||
r26521 | pmurias++ | the default CONTROL block get an $_ | |||
r26521 | pmurias++ | [re-smop] added .FETCH,.STORE to capture, fixed capture.elems | |||
11:20
dalek joined
|
|||
arnsholt | There. Some of the stuff isn't intended to work, but I can't see why it doesn't say "TOP" and "query", when it does say all the other stuff | 11:21 | |
11:21
xinming joined,
diakopter joined,
ejs joined,
|Jedai| joined,
amoc joined,
wollmers joined,
japhb joined,
spx2 joined,
kimtaro joined,
eternaleye joined,
lisppaste3 joined,
broquaint joined,
SamB joined,
m-i-l-a-n joined,
samlh joined,
lumi joined,
cls_bsd joined,
kidd_ joined,
s1n joined,
hcchien joined,
scook0 joined,
c9s joined,
phenny joined,
ascent_ joined,
estrabd joined,
gfldex joined,
rhr joined,
frettled joined,
Woody2143 joined,
irc.freenode.net sets mode: +o diakopter
|
|||
wollmers | std: my $9 = 42; | 11:22 | |
p6eval | std 26520: OUTPUT«ok 00:02 36m» | ||
wollmers | std: my $a9'9 = 42; | ||
p6eval | std 26520: OUTPUT«##### PARSE FAILED #####Syntax error (two terms in a row?) at /tmp/oUkjZx3J8K line 1:------> my $a9'9 = 42; expecting any of: POST infix or meta-infix infix stopper postfix postfix_prefix_meta_operator shape definition standard | ||
..stopper statement modifi... | |||
wollmers | std: my $a9'9a = 42; | ||
p6eval | std 26520: OUTPUT«##### PARSE FAILED #####Syntax error (two terms in a row?) at /tmp/O7Py8MOp3B line 1:------> my $a9'9a = 42; expecting any of: POST infix or meta-infix infix stopper postfix postfix_prefix_meta_operator shape definition standard | ||
..stopper statement modif... | |||
wollmers | std: my $a9-9a = 42; | ||
p6eval | std 26520: OUTPUT«##### PARSE FAILED #####Syntax error (two terms in a row?) at /tmp/170gc2dvsq line 1:------> my $a9-9a = 42; expecting any of: POST infix or meta-infix infix stopper postfix postfix_prefix_meta_operator standard stopper | 11:23 | |
..statement modifier loop terminat... | |||
moritz_ didn't know that you can nest classes inside grammars | |||
jnthn | moritz_: I think that should work. | ||
Or should be possible. | |||
masak | it's just namespaces. | ||
jnthn | The only things you can't nest things inside are roles. | ||
arnsholt | moritz_: Well, in that case, why are some of the methods being called, but not others? | ||
11:24
cognominal joined
|
|||
masak | arnsholt: does the whole SQL.parse call match? | 11:24 | |
11:25
wayland76 joined
|
|||
moritz_ | it does not, and that's the problem | 11:25 | |
arnsholt | Oh, right. Stupid strikes again >.< | ||
moritz_ | because there's no final ; | 11:26 | |
arnsholt | Yeah, so I noticed | ||
There we go. Thanks for the help | 11:27 | ||
wayland76 | Well, if the actions are working, then we can call moritz_..... | ||
(please don't hit me for saying "Action man" :) ) | |||
masak | I like the name. | 11:28 | |
wayland76 | But not the joke? :) | ||
masak | wayland76: oh, was it a joke? :P | ||
11:29
nbrown left
|
|||
baest | arnsholt: cool with a SQL grammar, I was doing one myself but got distracted by other stuff. Are you putting it somewhere public? | 11:29 | |
wayland76 | I bet we end up with a namespace on 6PAN called "Grammar::...." | 11:30 | |
baest | wayland76: that would be nice :) | ||
arnsholt | baest: I will, eventually. Assuming I get fer enough for it to be reasonably useful | ||
masak | someone better write 6PAN first. | ||
wayland76 | Then again, maybe not. Maybe they should be under XML::Grammar, SQL::Grammar, etc | ||
arnsholt | Indeed. 6PAN is a cool name though. I like it | ||
masak | arnsholt: release early and often. | ||
arnsholt: I like DPAN better. :) | |||
moritz_ | arnsholt: I just add a 'or die "no match"' after the .parse, that ususally helps | 11:31 | |
wayland76 | well, I'm going to rough up the outlines of a software packaging system sometime | ||
Why DPAN? | |||
Dead Parrot Archive Network? | |||
arnsholt | masak: That reminds me of what Jaguar did after they made the C-type (for competition type). What would be more natural than the D-type? =p | ||
wayland76 | (excuse Monty Python reference) | ||
masak | wayland76: I guess that could be one of its expansions. | 11:32 | |
arnsholt | But for grammars, I think I'd prefer Grammar::*, rather than *::Grammar. Although one could make an argument for both. Maybe, if we're lucky, we'll get an unholy mix of both =) | ||
wayland76 | Well, at least with the Dead Parrot/Monty Python reference, we might be able to build support for Python on Parrot :) | 11:33 | |
baest | arnsholt: well, if you do, maybe somebody will help you (if you want that). I will be needing a SQL grammar at somepoint and will rather not start from scratch | ||
arnsholt | baest: I'll probably put it on github when I get that far | 11:34 | |
wayland76 | arnsholt: I think we'll end up with *::Grammar, because people looking for an XML Grammar will be more likely to want to do other XML stuff than other Grammar stuff | ||
arnsholt | wayland76: Good point that | ||
wayland76 | afk 5-10 minutes. Will backlog | ||
baest | arnsholt: ok, cool. Which db are you doing it for? | 11:35 | |
11:35
nihiliad left
|
|||
baest looks forward to just subclassing a grammar for making it specific for some db | 11:35 | ||
arnsholt | baest: While listening to masak's talk at NPW it struck me that Perl 6 will need a DBI. So I figured I could start on that | 11:37 | |
So I'm doing this so that I have some kind of "DB" to test with | |||
baest | it is possible to do grammar roles? I guess it should. That will be very cool for defining certain stuff like type parsing og commments or whatever | ||
arnsholt | I'll probably pilfer code and design liberally from DBI at CPAN, and DBDI from parrot | 11:38 | |
ascent_ | btw, how is work on 6PAN? | ||
jnthn | baest: You can put rule/regex/token in a role and then compose them into a grammar, sure. That should already work. | ||
baest | arnsholt: oh, I was thinking the same thing. I wuold very much like some compile time checking of sql in p6, kinda like linq should do, but without the weird order of things | 11:39 | |
moritz_ | arnsholt: www.nntp.perl.org/group/perl.perl6....22054.html | ||
baest | jnthn: very nice. Wouldn't that be more obvious than subclassing PCT::Grammar? | ||
arnsholt | moritz_: Oooh. Thanks | 11:40 | |
jnthn | baest: You think PCT::Grammar could become a role instead? Not sure... | ||
moritz_ | arnsholt: that's a bit old, but likely still interesting... somebody wrote a *very* basic DBI think for rakudo with mysql and pg backends... forget where... | 11:41 | |
jnthn | I think it was posted on PerlBuzz | ||
IIRC it was Simon Cozens that wrote it. | 11:42 | ||
moritz_ | perlbuzz.com/2008/12/database-acces...icely.html | ||
wayland76 | Quick question. DBI (v1) takes a database engine as a parameter, and then uses that in an eval to create a driver class | ||
Is there a better way to achieve that in Perl 6? | 11:43 | ||
moritz_ | eval? string eval? | ||
well | |||
wayland76 | IIRC. I haven't looked at DBI for a while | ||
moritz_ | you can of course pass in a reference to a proto object | 11:44 | |
baest | jnthn: yes something like that. Well it works so no reason to rewrite. But I don't see any reason for having to subclass (maybe I'm not looking enough :) ) and it could be nice to rewrite names and picking the methods you wan't in your own grammar | ||
moritz_ | but that requires that you 'use' the DBD-class yourself first | ||
wayland76 | Yes. I'm looking for something that's as simple for the interface user as the DBI setup | 11:45 | |
baest | whoops, maybe it was thinking about delegating in that last comment. Hmmm | ||
wayland76 | But I've always felt that there should be a way to do the interface/implementation split where you could pass your desired implementation in as a parameter, without having to do an eval, etc | ||
jnthn | baest: Part of it is probably just that at the time this was all done, roles weren't an option (unimpl) | 11:47 | |
I'm not sure if it wins us a huge amount over subclassing. | 11:48 | ||
baest | jnthn: no, I think I was mixing roles and delegating in my head | 11:49 | |
jnthn | baest: Ah. | ||
11:49
ruoso joined
|
|||
ruoso | Hello! | 11:50 | |
wayland76 | I notice that S17 still languishes. Is this because the P6 community lacks experience with threads? If so, should we be trying to find some Perl Threads people to help us? | 11:51 | |
moritz_ | wayland76: I don't know if that's a very good idea, given the state of Perl 5 threads :-) | 11:52 | |
wayland76 | Well, I see your point. How about if we make that "carefully guided Perl Threads people"? | ||
(Well, maybe I don't see your point, but I know from hearsay that P5 threads changed from one model to the other, and some people are unhappy with both models) | 11:54 | ||
pmurias | ruoso: hi | 11:55 | |
wayland76 | Anyway, assuming the answer was that we lacked the relevant expertise, my next question was going to be, does anyone know where we would find people like that? | ||
ruoso | hi pmurias | ||
moritz_ | wayland76: my point is that we don't have working and robust implementations anywhere in Perl 5 land | 11:56 | |
ruoso | wayland76, Perl 6 is probably having a implicit threading model instead of a explicit threading model | ||
wayland76 | Do the Parrot people have or need threads? What about the POE and AnyEvent people? Those sorts of things | ||
moritz_ | the java people did a good job with threads | ||
wayland76: parrot has threads, but I don't know how good they are | |||
ruoso | moritz_, not in terms of syntax ;) | ||
moritz_ | POE and AnyEvent are asynchronous, not threaded | ||
ruoso: right. | |||
ruoso | wayland76, there is certainly going to be a event engine at the core of the Perl 6 interpreters | 11:57 | |
wayland76 | EventEngine++ :) | ||
ruoso | and I tend to think that the threading will occour implicitly from the event engine | ||
moritz_ | yes, that's Larry's master plan | ||
pmurias | ruoso: return doesn't work properly | ||
ruoso | i.e.: you define how many working threads you want... | ||
jnthn | std: constant Num baz = 42; | ||
p6eval | std 26521: OUTPUT«ok 00:02 35m» | ||
ruoso | pmurias, what's the problem? | 11:58 | |
wayland76 | I've skimmed over that white paper that describes threads on top of events | ||
But I still don't feel that I have any working expertise in threads | |||
ruoso | the erlang people has a good design | ||
so does the IO language | |||
wayland76 | And I thought maybe we could find someone with the relevant experience, point them at that paper, and redirect the output into S17 :) | 11:59 | |
pmurias | return seems to be a noop | ||
when i extracted it's content it worked | |||
ruoso: i'm removing capturize maybe it was the root of the problem | 12:02 | ||
12:03
xinming_ joined,
xinming left
|
|||
wayland76 | Some guy came through on the 18th, complaining about threads in both P5 and P6. I asked him who he thought did threads well, and he said "C++ with POSIX threads, python" | 12:03 | |
moritz_ | I've heard that jruby does a decent job | 12:04 | |
ruoso | pmurias, can it be made to work without capturize? | ||
wayland76, moritz_, both C++ and python use explicit threading... I'm not sure that's what we're going to see in Perl 6 | 12:05 | ||
wayland76 | But I have no experience with threads, other than some minor project at Uni over 10 years ago; I wish I could work on S17, but I think it would take me months just to get some sensible experience | ||
ruoso: Fine by me, although the guy the other day wasn't happy without it :) | |||
pmurias | ruoso: we have capture.new now | ||
moritz_ | ruoso: I'm more concerned about that backend for now... | ||
ruoso | pmurias, ah... ok... | 12:06 | |
moritz_, the problem with p5 was the excessive use of globals and magic variables | |||
that was what made p5 threading a nightmare | |||
wayland76 | But I guess I don't mind about threads so much -- what I really want is a finite state machine and event-based programming. Combined with grammars, protocols will almost write themselves :) | ||
ruoso | wayland76, the idea of using implicit threading is that you can write event-based programming as if you were programming a regular transactional flow... | 12:07 | |
but instead of blocking the whole program, | 12:08 | ||
it just blocks that continuation | |||
and other continuations can take place | |||
moritz_ | ruoso: that's not the only problem... for example it's nearly impossible to share something other than a scalar | ||
wayland76 | sounds good to me :) | ||
ruoso | moritz_, that's because you need to have the share-nothing model | 12:09 | |
and the share-nothing model is only required because of the excessive use of globals and interpreter-wide variables | 12:10 | ||
which, thankfully, were sanitized in P6 | |||
jnthn | rakudo: sub foo { 42 }; my $x = foo == 42; say $x; | 12:11 | |
p6eval | rakudo 095f9b: OUTPUT«get_iter() not implemented in class 'Integer'current instr.: 'prefix:=' pc 22295 (src/builtins/misc.pir:17)» | ||
moritz_ | ruoso: so what share model will Perl 6 use? | ||
jnthn wonders how on earth we end up parsing prefix:= instead of infix:= there. | 12:12 | ||
ruoso | moritz_, for starts, everything is lexically bound... | ||
then you have GLOBAL:: and PROCESS:: | |||
and that's all | |||
much simpler | |||
moritz_ | jnthn: you can simply remove prefix:= :-) | ||
so in my $x; async { 1 }; asnyc {2 }; will $x be shared between the async blocks? | 12:13 | ||
12:14
sri_kraih joined
|
|||
jnthn | rakudo: sub foo { 42 }; my $x = (foo == 42); say $x; | 12:14 | |
ruoso | moritz_, yes | ||
p6eval | rakudo 095f9b: OUTPUT«get_iter() not implemented in class 'Integer'current instr.: 'prefix:=' pc 22295 (src/builtins/misc.pir:17)» | ||
moritz_ | ruoso: so we have 'share everything' and try to keep the 'everything' small | ||
jnthn | rakudo: sub foo { 42 }; my $x = (42 == foo); say $x; | ||
p6eval | rakudo 095f9b: OUTPUT«1» | ||
jnthn | ...ok srsly wtf | 12:15 | |
ruoso | jnthn, that's probably being treated as list assignment | ||
jnthn | Oh! | ||
ruoso | moritz_, basically, that's it... | ||
jnthn | Yes, that'd explain it. Rakudo doesn't do item assignment parsing properly yet... | ||
ruoso | jnthn, but a lot of things that doesn't have a list in the rvalue should be parsed as list assignment | 12:16 | |
basically, TimToady said that list assignment is actually "i don't know which context"-assignment | |||
12:16
orafu left,
orafu joined
|
|||
wayland76 | So, back to my original question, am I right in guessing that we have people with the appropriate experience, and we just have to wait for them to get around to it? | 12:17 | |
ruoso | wayland76, I think none of the implementors got to that issue yet... | 12:19 | |
that's why it's mostly not spec yet | |||
ascent_ | I think S17 should be discussed as whole... Maybe post discussion about that on perl.poe? Model described at S17 is rather AnyEvent model than POE, but AnyEvent is only one person. | 12:20 | |
wayland76 | Ok. Well, I won't go around encouraging random threading types to work on S17 then :) | ||
ruoso | ascent_, S17 is a very early draft at this moment | 12:21 | |
wayland76 | The first thing we need is someone with a clue to go through and make it vaguely coherent, in line with the few decrees that have come down from above | ||
My problem is that I don't have a clue. So I gave it about as much as I felt competent for, and then stopped. That means that I added a little about events and IPC, and then left it | 12:22 | ||
ascent_ | I write some POE apps and looked at AnyEvent model. AnyEvent is good for small apps really... If you got something more complicated it's very hard to use it. | 12:23 | |
ruoso | ascent_, AnyEvent in S17 is more like an engine than a programming model | ||
as I said above, the idea is not to have explicit event-based programming, but implicit | 12:24 | ||
wayland76 | The thing I liked about AnyEvent was that it supported non-POE event loops. But when I actually wanted to write something, I went with POE, because I wanted a FSM :) | 12:25 | |
ruoso | ok... let me expose my view of things... | ||
basically, both events and threading are going to be implicit in the language... | |||
which means that, in terms of programming, you're going to write a regular transactional algorithm | 12:26 | ||
BinGOs | "non-POE event loops" ? | ||
ruoso | BinGOs, using other event engines | 12:27 | |
like... EV | |||
wayland76 | BinGOs: Ie. the GTK event loop, or someone else's | ||
BinGOs | Yes, like POE can. | ||
12:28
mberends joined
|
|||
ruoso | BinGOs, but as I said, none of the implementors got there yet... so every ideas are yet on the table... | 12:29 | |
BinGOs | I have no idea what you are talking about, I just spotted 'POE' | 12:30 | |
ruoso | BinGOs, heh... well... we're discussing concurrency model of Perl 6 | ||
and one thing that is already given, is that we're going to have an event loop in the core of Perl 6 | 12:31 | ||
(as if POE got merged inside p5 interpreter) | |||
BinGOs | As a complete lay-person here, it would make sense not to tie yourself to a specific event loop. | 12:32 | |
literal | POE is a lot more than an event loop... :P | ||
ruoso | BinGOs, that was why AnyEvent came to table | 12:33 | |
pmurias | ruoso: how was the subroutine return a capture problem solved? | ||
literal | ruoso: POE itself isn't even tied to one | ||
BinGOs | POE does the same, we abstract in POE::Loop, so you can plug any event loop in. | 12:34 | |
ruoso | literal, that's why we^WI usually see POE as a reference model... but in a more generic sense... | ||
pmurias, it returns a capture... and capture does both .[] and .{} | |||
pmurias, but a capture with only one argument, named or positional, return it in item context | |||
BinGOs | I have no problems with AnyEvent | ||
apart from the attitude of the author. | 12:35 | ||
12:35
wayland_ joined
|
|||
ruoso | BinGOs, literal, basically... I see something like AnyEvent + Worker Threads in the core | 12:35 | |
pmurias | ruoso: item context = FETCH here? | ||
12:35
kimtaro_ joined
|
|||
ruoso | pmurias, yes | 12:35 | |
BinGOs | That'll work if you have a decent thread model | 12:36 | |
12:36
abra joined
|
|||
wayland_ | I understand the plan is to follow the PDF that says to build threads on top of events, rather than the other way around | 12:37 | |
ruoso | BinGOs, that's why we're talking about implicit threading in the language, rather than explicit | ||
pugs_svn | r26522 | pmurias++ | [re-smop] removed capturize, fixed return and ritest | ||
BinGOs | you are going to be at mercy of the underlying OS' threads support as well. | ||
ruoso | BinGOs, of course, yes... | 12:38 | |
wayland_ | BinGOs: I didn't know about the Gtk/POE linkup. Thanks! | ||
12:38
sri_kraih left
|
|||
BinGOs | wayland_: there is a Glib loop as well. | 12:38 | |
literal | yeah, that's what you'd use for Gtk2 | 12:39 | |
12:39
iblechbot joined
|
|||
BinGOs | Or if you want to run POE in irssi. | 12:39 | |
mberends | wayland76: I suggested the DPAN name to pmichaud during the Oslo hackaton, as meaning Distributed or Decentralised, seeing the peer nature of the many repositories, and being the letter after C. pmichaud replied that he would look into registering some suitable domains, so it may go that way. The tough part is supporting 'use ABC:ver<1.2.3>:auth<jbloggs>;' on all file systems. | ||
wayland_ | Stop it! My Netbook doesn't cope with drool on the eyboard | 12:40 | |
12:40
abra left
|
|||
wayland_ | s/eyboard/keyboard | 12:40 | |
the drool must've landed on the K :) | |||
12:41
synthetic56565 left
|
|||
wayland76 | Anyway, my server that crashes when it gets cold has revived, so I can go back to not using my netbook :) | 12:41 | |
ruoso | but basically... in my view... we're going to have a ControlExceptionWouldThread that's going to put this continuation in a pool of waiting threads, while also scheduling an event of some sort... | ||
s/ControlExceptionWouldThread/ControlExceptionWouldBlock/ | |||
pmurias | ruoso: say "hello world" now works in re-mildew | ||
ruoso | cool | 12:42 | |
pmurias, I think the last step on the refactoring would then port the missing tests to re-smop | |||
12:42
wollmers left
|
|||
wayland76 | Anyway, I'll stop talking about threads -- don't want to waste the developers' time :) | 12:42 | |
12:42
nihiliad joined
12:43
wayland_ left,
fridim_ joined,
fridim_ left
|
|||
pmurias | ruoso: s/missing/failing/ ? | 12:44 | |
wayland76 | I can't stay up late this week; my parents arrive home 5:30am on Thursday, and I have to get them at the airport | ||
ruoso | pmurias, missing from being ported from smop to re-smop | ||
wayland76 | night all o/ | ||
12:44
wayland76 left
|
|||
pmurias | ruoso: the ones left in smop/test aren't of much value | 12:45 | |
ruoso | pmurias, ah... ok then... | 12:46 | |
pugs_svn | r26523 | jnthn++ | [t/spec] Fudge constant.t for Rakudo; in a couple of places tweak the way we get at sigil-less constants to avoid a Rakudo parse bug, but leave it in place in other tests so we don't miss that there's a problem. | 12:48 | |
12:48
abra joined
|
|||
ruoso | pmurias, ok... last thing of the refactoring now... let's get the smop tests passing without leaks and the mildew tests passing as well.. | 12:50 | |
then we close it, and merge it back... | |||
12:51
kimtaro left
|
|||
pmurias | merge being rm'ing the old one and renaming re-smop to smop ;) | 12:51 | |
ruoso | pmurias, well.. basically yes... but let's just make sure it doesn't screw svn metrics (i.e. ohloh) | 12:52 | |
pugs_svn | r26524 | pmurias++ | [re-smop] an 1 element capture returns that element in item context | 12:53 | |
ruoso | oh... we're still missing p6opaque and friends | ||
12:53
kimtaro_ left
|
|||
pmurias | food& | 12:54 | |
13:01
wollmers joined
|
|||
Matt-W | Hello! | 13:02 | |
mberends | Matt-W: Hello! | 13:03 | |
Matt-W is back from holiday, with code! | 13:05 | ||
mberends | \o/ # working code? | ||
Matt-W | yes | 13:06 | |
should be anyway | |||
just pushed it | |||
you can actually call Form::form() with certain subsets of parameters and it Works | |||
although my local copy is currently broken pending me figuring out what went wrong with trying to implement verbatim fields | 13:07 | ||
13:07
abra left
13:09
eric256 joined
|
|||
BinGOs | ruoso: also read the docs for AnyEvent::Impl::POE sometime for unsubstantiated twaddle. | 13:09 | |
mberends | Matt-W: ./proto test form splutters: Malformed routine definition at line 26, near "fit-in-wid" :( | 13:10 | |
Matt-W | bum | ||
it worked before :'( | |||
possibly of course a rakudo update broke it while I was offline | |||
13:11
km2 left
13:12
awarefish joined
|
|||
Matt-W updates rakudo | 13:12 | ||
mberends updates rakudo too | |||
afk & # @life() | 13:14 | ||
13:16
wollmers left
13:19
ispy_ joined
13:23
skids_ joined
13:26
ejs1 joined
13:27
azawawi left
13:28
alanhaggai joined
|
|||
TimToady | rakudo: sub foo { 42 }; my $x = foo() == 42; say $x; | 13:34 | |
lambdabot | TimToady: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
p6eval | rakudo 095f9b: OUTPUT«1» | ||
TimToady | jnthn: the problem has nothing to do with list/item assignment | ||
only with foo being parsed as a listop, so expecting a term at == | |||
13:35
ejs left
|
|||
jnthn | TimToady: Yeah, I realized that bit after lunch... | 13:35 | |
pugs_svn | r26525 | pmurias++ | [re-smop] fix memory leak | ||
jnthn | TimToady: How should Rakudo be parsing it? | ||
masak | Matt-W: welcome back! I will now pore over your new code for a while. | ||
TimToady | well, it would parse like std does if you remove prefix:<=>, I expect | 13:36 | |
Matt-W | rakudo: class A {}; my $a = A.new; say A.WHAT; | ||
p6eval | rakudo 095f9b: OUTPUT«A()» | ||
Matt-W | what's with the ()? | ||
TimToady | protoobjects are supposed to stringify with parens | ||
been specced for some time now | |||
Matt-W | rakudo: class A {}; my $a = A.new; say $a.WHAT; | ||
p6eval | rakudo 095f9b: OUTPUT«A()» | ||
Matt-W | that's actually the example I was supposed to write :) | 13:37 | |
skids_ | @tell wayland76 RE:S17 I did start doing stuff on it catch me later for a URL, but decided the best thing for S17 is to wait for feeds and hypers to be implemented, and see what issues crop up on the inside of those. | ||
lambdabot | Consider it noted. | ||
Matt-W | As I understand it, $a there is not a protoobject | ||
TimToady | no, but .WHAT returns the protoobject | ||
Matt-W | ah | 13:38 | |
so actually I'm doing something wrong here | |||
excellent | |||
masak | rakudo: class A {}; my $a = A.new; say $a | ||
p6eval | rakudo 095f9b: OUTPUT«A()<0xb66a63b0>» | ||
skids_ | @tell wayland76 you can get my work in progress URL from backlogs or catch me later for it. | ||
lambdabot | Consider it noted. | ||
ruoso | Matt-W, remember... .WHAT is not supposed to be used to do type identity (that is usually what people expect) | ||
skids_ | @tell wayland76 at least I managed to kick coroutines out to S07 :-) | ||
lambdabot | Consider it noted. | ||
Matt-W | ruoso: yeah bit of a stupid thing to try. Now I need to make it work the proper way | 13:39 | |
woohoo | |||
pugs_svn | r26526 | pmurias++ | [re-smop] native booleans are installed in the lexical prelude as False and True | 13:40 | |
Matt-W | form passes all tests again | 13:41 | |
pmurias | ruoso: .shift'ing an capture is an error? | ||
skids_ | Captures are immutable | ||
ruoso | pmurias, yes... capture is immutable | ||
pugs_svn | r26527 | pmurias++ | [re-mildew] fixed test as captures are immutable | 13:44 | |
TimToady | @messages | 13:46 | |
lambdabot | perlmonkey said 2d 20h 29m 5s ago: got a chemistry question for you larry | ||
ruoso | pmurias, I think we need to get the defaultblocksignature ported... | ||
TimToady | @clear | ||
lambdabot | Messages cleared. | ||
TimToady | (again) | ||
pugs_svn | r26528 | pmurias++ | [re-smop] added Package to lexical Prelude | 13:47 | |
TimToady | it's getting close to time to scrap lambdabot and write our own in p6 | ||
pugs_svn | r26529 | pmurias++ | [re-mildew] removed excess \n from test | ||
pmurias | ruoso: what for? | ||
ruoso | pmurias, there's one test failing for missing it | ||
pmurias | fixing... | 13:48 | |
sbp | phenny: tell TimToday that phenny has a messaging service that you don't have to @clear all the time after messages are delivered. good luck getting rid of the @tell reflex amongst #perl6 users though | ||
phenny | sbp: I'll pass that on when TimToday is around. | ||
sbp | also you need to be able to spell correctly | ||
skids_ | heh. | 13:49 | |
sbp | and I'm vaguely planning on trying to write a perl6 version with Tene | 13:50 | |
masak | phenny: pleased to meet you. I will use you for @telling next time. | ||
sbp: ah, that's what you'd like the POE clone for. :) | |||
sbp | yeah, heh | 13:51 | |
to be quite honest, doing it at the socket level wouldn't be so bad | |||
irc is not rocket science | |||
masak | .oO( socket science ) |
13:52 | |
sbp | ehheh | ||
13:52
orafu left,
orafu joined
|
|||
TimToady | .oO(a phenny for your thoughts...) |
13:52 | |
frettled | heh | 13:53 | |
skids_ wonders what the "big file of messages to mispelled usernames" in long running bots looks like. | 13:57 | ||
13:58
ejs2 joined
|
|||
literal | maybe it gets pruned after a certain time.... | 13:58 | |
skids_ | maybe... | ||
but considering inebriation is a leading cause of typos, it might actually be amusing. | 13:59 | ||
masak | phenny: tell TomToody *hic*! | ||
phenny | masak: I'll pass that on when TomToody is around. | ||
pugs_svn | r26530 | szabgab++ | update some of the smartlinks | 14:01 | |
sbp | on IRC, nobody knows whether you're drunk or just correcting someone's Latin | 14:02 | |
pugs_svn | r26531 | jnthn++ | [t/spec] Couple of unfudges. | 14:04 | |
14:05
ejs1 left
14:06
km2 joined
|
|||
skids_ | what's a good rakudo-centric parrot speed test? | 14:09 | |
masak | skids_: that's a very general question. | 14:11 | |
skids_: what do you want to test the speed of? tight loops, file I/O, arith...? | |||
skids_ | Well, I want a general test :-) | ||
masak | rakudo: my $t1 = time; sleep(3); my $t2 = time; say $2 - $1 | 14:12 | |
p6eval | rakudo ae5e29: OUTPUT«Use of uninitialized valueUse of uninitialized value0» | ||
masak | oops "_ | ||
skids_ | I see a reference to a "rakudo building" test in Parrot svn logs... | ||
masak | rakudo: my $t1 = time; sleep(3); my $t2 = time; say $t2 - $t1 | ||
p6eval | rakudo ae5e29: OUTPUT«3.00701594352722» | ||
jnthn | skids_: That's just "how long does it take to build Rakudo". | 14:13 | |
skids_: Or maybe better is "how long does it take to compile actions.pm" | |||
skids_ | Thanks. That might do. Can't use t/ because it's mostly perl5 wrapping and scripting taking time. | 14:14 | |
14:15
pmurias left
|
|||
pugs_svn | r26532 | pmurias++ | [re-smop] log10(0) when stringifing 0 isn't a very good idea | 14:15 | |
14:16
pmurias joined
|
|||
pmurias | re defaultsignature it's just a matter of changing the signature mildew emits for that block | 14:16 | |
ruoso | pmurias, but I mean... isn't it better to have a lower-level implementation of that instead of initializing the same signature over and over again? | 14:17 | |
pmichaud | in addition to "how long to compile actions.pm" we now have "how long to comple gen_setting.pir" | 14:19 | |
lambdabot | pmichaud: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
pmichaud | @messages | ||
lambdabot | masak asked 2d 4h 37m 22s ago: no www.pmichaud.com/perl6/rakudo-2009-04.tar.this month? | ||
pmichaud | (already answered.) | ||
good morning, #perl6 | |||
jnthn | morning pm | 14:20 | |
14:22
ejs2 left
|
|||
pmurias | ruoso: i try to avoid C+m0ld RIs but writing signatures as mildew AST is also annoying | 14:24 | |
masak | pmichaud: @clear | ||
ruoso | pmurias, I think we don't need to avoid C+m0ld | ||
masak | pmichaud: (oh, and good morning) | ||
ruoso | pmurias, soon enough it will be easier to write in Perl 6 than in m0ld | 14:25 | |
pmurias, and initializing the same signature over and over is probably a bad idea | |||
pmichaud | @clear | 14:27 | |
lambdabot | Messages cleared. | ||
pmichaud | masak++ | ||
13:47 <TimToady> it's getting close to time to scrap lambdabot and write our own in p6 | |||
yes, please. | |||
14:27
LylePerl left
|
|||
masak | anyone contemplating that would be well advised to start by talking to Tene, who is writing a POE clone in Perl 6. | 14:29 | |
14:36
payload joined
|
|||
literal | oooh | 14:38 | |
has he put any code online? | 14:39 | ||
masak | I don't believe so. | 14:40 | |
but poke him when he wakes up, and maybe he will. | |||
rakudo: grammar A { regex TOP { foo } }; A.parse("foo").say; say "bar"; A.parse("foo").print; say "bar" | 14:41 | ||
p6eval | rakudo ae5e29: OUTPUT«foobarbar» | ||
masak submits rakudobug | |||
pugs_svn | r26533 | jnthn++ | [t/spec] Re-fudge some things Rakudo ain't going to handle just yet. | 14:42 | |
14:42
frodwith_ is now known as frodwith
|
|||
pmichaud | rakudo: grammar A { regex TOP { foo } }; A.parse("foo").say; say "bar"; A.parse("foo").say; say "bar" | 14:43 | |
p6eval | rakudo ae5e29: OUTPUT«foobarfoobar» | ||
jnthn | std: constant foo = 42; my foo $x; | 14:44 | |
p6eval | std 26532: OUTPUT«ok 00:02 36m» | ||
[particle]- | rakudo: grammar A { regex TOP { foo } }; A.parse("foo").print; | ||
p6eval | rakudo ae5e29: ( no output ) | ||
[particle]- | wasn't that easier? | ||
masak | std: constant foo = Int; my foo $x; | ||
p6eval | std 26532: OUTPUT«ok 00:02 36m» | ||
jnthn thinks STDbug | 14:45 | ||
[particle]- | rakudo: grammar A { regex TOP { foo } }; A.parse("foo").print; print "\n"; | ||
masak | [particle]-: yes, but I didn't know if buffering played into it. | ||
p6eval | rakudo ae5e29: OUTPUT«» | ||
pmichaud | std generally does syntax, not semantics. | ||
masak | [particle]-: that last one is easier. | ||
pmichaud | at the syntax level, "a name is as good as any other" | ||
jnthn | OK, but I'd argue that introducing a typename affects the parse and that they thus shouldn't be confused with things that are not typenames. | ||
masak | [particle]-: but I also wanted to show that .say works. | ||
pmichaud | introducing a typename affects the parse? | ||
differently than a constant name? | 14:46 | ||
ruoso | jnthn, it doesn't | ||
actually... it depends | |||
jnthn | ruoso: it does | ||
my something_undeclared $x; # error | |||
ruoso | it doesn't affect the parsing itself | ||
jnthn | as in, parse error | ||
pmichaud | ruoso: declaring a type definitely modifies the parse of that word later. | ||
arnsholt | What ways are there to modify Rakudo's search path? | 14:47 | |
jnthn | foo ~~ TypeName # parses as a typename | ||
foo ~~ notatypename # parses as a listop | |||
pmichaud | here's the specific case | ||
ruoso | I mean there is no ambiguity in the parsing caused by that being a type name or not | ||
moritz_ | arnsholt: @*INC.push('path') | ||
arnsholt: and you have to do it in a BEGIN { ... } block... | |||
because 'use' happens at compile time | |||
pmichaud | say foo 1 # valid | ||
ruoso | ok... smart match is an exception... | 14:48 | |
pmichaud | module foo { }; say foo 1 # syntax error (two terms in a row) | ||
arnsholt | moritz_: Thanks | ||
jnthn | no, smart match is nothing special in this case | ||
pmichaud | declaring a typename causes that name to be no longer treated as a listop | ||
(in parsing) | |||
std: say foo 1; | 14:49 | ||
p6eval | std 26533: OUTPUT«Undeclared routine: foo used at 1 ok 00:02 35m» | ||
pmichaud | std: module foo { }; say foo 1; | ||
p6eval | std 26533: OUTPUT«##### PARSE FAILED #####Syntax error (two terms in a row?) at /tmp/iQgaevyYbe line 1:------> module foo { }; say foo 1; expecting any of: infix or meta-infix infix stopper standard stopper statement modifier loop terminatorFAILED 00:02 | ||
..35m» | |||
ruoso | ok... | ||
pmichaud | jnthn: my point is that constant foo = 42; just enters foo as a name the same way a type declaration would | 14:50 | |
and thus affects the parse in the same way | |||
moritz_ agrees with pmichaud | |||
[particle]- | it registers foo as a term | ||
pmichaud | correct. | 14:51 | |
so it's no longer a bareword listop. | |||
jnthn | I'm agreeing it affects the parse. I'm disagreeing that typename should match on it. | ||
pmichaud | you're saying we should have separate tables for typenames versus other terms | ||
masak | rakudo: grammar A { regex TOP { foo } }; (~A.parse("foo")).print; print "\n" | ||
p6eval | rakudo e9f631: OUTPUT«foo» | ||
[particle]- | the typename match happens during semantic analysis. std doesn't fully do that yet. | 14:52 | |
masak | that's a workaround. | ||
jnthn | pmichaud: Yes. | ||
pmichaud | jnthn: I'm thinking .... what particle said | ||
jnthn | We have to differentiate them at some point. | ||
pmichaud | semantic analysis would work | ||
it can also be a flag on the entry in the symbol table "this is a typename" | |||
jnthn | And differentiating them during the parse seems simpler to me. | ||
True, we already do have such a flag. | 14:53 | ||
TimToady | my foo $x is perfectly valid | ||
and would require $x to only be assigned that value | 14:54 | ||
jnthn | TimToady: if foo is a constant? | ||
TimToady | yes | ||
pmichaud | I wondered about that :-) | ||
TimToady | any value is also a type, in that sense | ||
my True $x | |||
jnthn | std: my 42 $x; | ||
p6eval | std 26533: OUTPUT«##### PARSE FAILED #####Malformed my at /tmp/3Mw5nHWln5 line 1:------> my 42 $x; expecting scoped declaratorFAILED 00:02 35m» | ||
TimToady | but not in that sense :) | ||
[particle]- | std: constant five = 5; my $x is five; | ||
p6eval | std 26533: OUTPUT«ok 00:02 36m» | ||
[particle]- | rakudo: constant five = 5; my $x is five; say $x; | ||
14:55
cspencer joined
|
|||
p6eval | rakudo e9f631: OUTPUT«Use of uninitialized value» | 14:55 | |
jnthn | Heh, in that case may as well just register it as a type then. | ||
TimToady | well, it's a type with a defined value, is all... | ||
14:55
pancake joined
|
|||
TimToady | just like any enum | 14:55 | |
pmichaud | afk (inspecting trees) | 14:56 | |
TimToady | enums and constants are indistinguishable | ||
pancake | how can i count the elements in a Range? | ||
masak | moritz_: ping | ||
pmichaud | pancake: .elems ? | ||
pancake | is there a way to instrospect in perl6? | ||
pmichaud: i was looking for .elements . ok | |||
jnthn | TimToady: constant foo = 42; say foo() == 42 # should this work too? | ||
or just say foo == 42 ? | |||
If just the second, that makes things easier... | |||
TimToady | foo() is calling function &foo, not bare 'foo' there | ||
just use bare foo | 14:57 | ||
jnthn | OK, good. I seemed to remember reading somewhere but constant foo introduced a unary sub foo | ||
But I musta been wrong. | |||
urm, nullary | |||
TimToady | we have explicitly broken the notion that named values are 0-ary functions | ||
jnthn | pl | ||
*ok | |||
pancake | is "for(1..3)->$n{say $n}" failing because of its invalid syntax (missing spaces) or it is a bug in rakudo? | 14:58 | |
[particle]- | missing spaces | ||
TimToady | must have spaces | ||
otherwise you're calling a function and subscripting $n | |||
[particle]- | rakudo: for(1..3)->$n{say $n} | ||
p6eval | rakudo e9f631: OUTPUT«Statement not terminated properly at line 1, near "->$n{say $"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | 14:59 | |
[particle]- | rakudo: for (1..3) -> $n {say $n} | ||
p6eval | rakudo e9f631: OUTPUT«123» | ||
[particle]- | rakudo: for 1..3 -> $n {say $n} # no need for parens | ||
p6eval | rakudo e9f631: OUTPUT«123» | ||
TimToady | std: for(1..3)->$n{say $n} | ||
p6eval | std 26533: OUTPUT«##### PARSE FAILED #####Obsolete use of -> to call a method; in Perl 6 please use . instead at /tmp/iwpFpumIKV line 1:------> for(1..3)->$n{say $n}FAILED 00:02 35m» | ||
TimToady | std: for 1..3 ->$n {say $n} | 15:00 | |
15:00
Eevee joined
|
|||
p6eval | std 26533: OUTPUT«ok 00:03 42m» | 15:00 | |
masak | rakudo: for (1..3)->$n {say $n} | ||
p6eval | rakudo e9f631: OUTPUT«123» | ||
TimToady | bogus | ||
masak | hm, did I report that one already? | ||
masak checks | |||
TimToady | std: for (1..3)->$n {say $n} | ||
p6eval | std 26533: OUTPUT«##### PARSE FAILED #####Obsolete use of -> to call a method; in Perl 6 please use . instead at /tmp/U6rKFMT7BF line 1:------> for (1..3)->$n {say $n}FAILED 00:02 35m» | ||
amoc | rakudo: for(1..3) -> $n { say $n } | ||
masak | exactly. | ||
p6eval | rakudo e9f631: OUTPUT«Statement not terminated properly at line 1, near "-> $n { sa"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | 15:01 | |
TimToady | std: for(1..3) -> $n { say $n } | ||
p6eval | std 26533: OUTPUT«##### PARSE FAILED #####for() interpreted as function call at line 1 ; please use whitespace instead of parensUnexpected block in infix position (two terms in a row) at /tmp/zL4jjJsty9 line 1:------> for(1..3) -> $n { say $n } expecting any of: infix or | ||
..me... | |||
15:01
orafu left
|
|||
masak | hm, seems I didn't. | 15:01 | |
masak submits rakudobug | |||
amoc | rakudo: if(1) { say "hey" } | 15:02 | |
p6eval | rakudo e9f631: OUTPUT«Statement not terminated properly at line 1, near "{ say \"hey"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | ||
TimToady | std: if(1) { say "hey" } | ||
p6eval | std 26533: OUTPUT«##### PARSE FAILED #####if() interpreted as function call at line 1 ; please use whitespace instead of parensUnexpected block in infix position (two terms in a row) at /tmp/ePgBVjtfHv line 1:------> if(1) { say "hey" } expecting any of: infix or | ||
..meta-infix... | |||
pancake | std is for pugs? | ||
TimToady | no | ||
it happens to live in the pugs repo though | |||
15:02
orafu joined
|
|||
TimToady | STD.pm is the standard parser written in Perl 6 | 15:03 | |
std is running a version of that translated to p5 | |||
pancake | ah ok | ||
15:04
Psyche^ joined
15:15
ejs joined
15:17
hercynium joined
|
|||
masak | what's the difference between .ast and .text on a Match object, really? in my .perl outputs, they are always the same. | 15:18 | |
jnthn | masak: have you used make anywhere? | 15:19 | |
I suspect that's what makes the difference. | |||
masak | nope. | ||
ok. | |||
jnthn | .ast will return what was set with make. | ||
masak | oh, right. | ||
jnthn | While .text should always be the matched text. | ||
pmichaud | .text is deprecated | 15:20 | |
it's now .Str, I think. | |||
masak | pmichaud: it's still in .perl | ||
15:20
Patterner left,
Psyche^ is now known as Patterner
|
|||
moritz_ | masak: feel free to patch that out | 15:21 | |
masak | moritz_: will do. | ||
moritz_ | but somehow the matched string should appear in Match.perl | 15:22 | |
so maybe s/text/Str/ | |||
masak | moritz_: I'm trying my best to recurse through a tree of Matches, but I'm still only dragging up buckets of frustration. | ||
moritz_: will change s/text/Str/ | |||
pmichaud | we still have issues with arrays in positionals, yes. | ||
because PGE doesn't return arrays of matches in a form that Rakudo can recognize as being an Array | |||
(that doesn't flatten) | |||
masak | moritz_: are there any known cases of successful traversal of a Match tree? | ||
moritz_ | masak: yes | 15:23 | |
masak | moritz_: I was hoping you'd say that. | ||
pmichaud | ultimately what I suspect will happen is that ResizablePMCArray in parrot will map to Array in Rakudo, instead of List as it does now. | ||
masak | moritz_: well, the hitomi script is poised to be traversed, so if you have the time, please check it out and show me how. | ||
jnthn | To the degree that such mapping makes sense, I guess... | ||
(Once Array has-a RPA rather than is-a, not sure how the mapping will work out.) | 15:24 | ||
moritz_ | masak: action methods or recursion? | ||
pmichaud | jnthn: in most cases I think that ResizablePMCArrays in Parrot really correspond to arrays in a Perl 6 sense, and not to a List. | ||
masak | moritz_: I've done the parse and the action methods. now I want to recurse. | ||
and traverse. | |||
pmichaud | and yes, it has to be done after we switch out of the is-a mode. | ||
15:25
pluto joined
|
|||
masak | moritz_: so, the end goal is to go down the tree of nodes, keeping an eye out for attributes prefixed 'pe:' | 15:25 | |
jnthn | pmichaud: Yes, agree. | ||
pmichaud | masak: positional captures might have some difficulties. named captures shouldn't be posing many issues. | ||
masak | pmichaud: sounds promising. | 15:26 | |
jnthn | rakudo: constant Num π = atan(2,2) * 4; | ||
moritz_ | masak: you don't need recursion in action methods | ||
p6eval | rakudo e9f631: ( no output ) | ||
moritz_ | masak: but I'll take a look at it tonight | ||
jnthn | rakudo: constant Num π = atan(2,2) * 4; say π | ||
p6eval | rakudo e9f631: OUTPUT«Could not find non-existent sub atancurrent instr.: 'block_10' pc 102 (EVAL_20:57)» | ||
masak | moritz_: not sure we're not talking past each other here. | ||
moritz_: action methods aren't enough here. | |||
jnthn | rakudo: use Num :trig; constant Num π = atan(2,2) * 4; say π | 15:27 | |
masak | at least, I cannot see that they are. | ||
p6eval | rakudo e9f631: OUTPUT«Could not find non-existent sub atancurrent instr.: 'block_10' pc 152 (EVAL_20:1)» | ||
pmichaud | jnthn: atan2 | ||
jnthn | rakudo: use Num :trig; constant Num π = atan2(2,2) * 4; say π | ||
p6eval | rakudo e9f631: OUTPUT«Could not find non-existent sub atan2current instr.: 'block_10' pc 152 (EVAL_20:1)» | ||
pmichaud | arggh | ||
jnthn | rakudo: use Num :Trig; constant Num π = atan2(2,2) * 4; say π | ||
p6eval | rakudo e9f631: OUTPUT«3.14159265358979» | ||
jnthn wonders if we should explode on un-known tags. | |||
[particle]- | hrmm... | 15:28 | |
[particle]- consults S11 | |||
jnthn | Also, I copy-pasted the atan from S04. | ||
moritz_ | masak: so what do your action methods construct? | ||
jnthn | Should I patch it to say atan2? | ||
[particle]- | aye | ||
TimToady | yes | ||
overloaded atan was a fossil | |||
masak | moritz_: I haven't changed Tene's code much; they construct XML::Node objects. | ||
[particle]- | buubot: spack -w atan | 15:29 | |
buubot | [particle]-: Sorry, I couldn't find any matches for: -w | ||
masak | moritz_: I'm at a loss for how to get at them in an orderly fashion. | ||
[particle]- | buubot: spack \batan\b | ||
buubot | [particle]-: S04-control.pod:1 S29-functions.pod:2 | ||
pugs_svn | r26534 | jnthn++ | [spec] s/atan/atan2/ | 15:30 | |
moritz_ | masak: is that code in a repo somewhere? | ||
masak | moritz_: github.com/masak/web/ | 15:31 | |
pugs_svn | r26535 | szabgab++ | some more smartlinks updated | ||
masak | drafts/hitomi | ||
moritz_ | masak: ok | ||
masak | moritz_: perl6 hitomi < hitomi-example.xml | ||
15:31
mncharity joined
|
|||
masak | moritz_: see, my objective is twofold: one, reproduce most of the content normally.this I can already do by iterating over .chunks and printing the values. two, as soon as I find those special attributes, go into a special mode and print according to other rules. | 15:31 | |
after I can consistently do two, we can haz XML templater prototype. | 15:32 | ||
mncharity | random fyi, Yarr! (yet another regex runtime) is again enabled in webkit core. yay. trac.webkit.org/browser/trunk/JavaS...tCore/yarr | 15:33 | |
jnthn refactors constant handling a bit and is happy to see that foo == 42 and my foo $x just fall out of the refactor nicely. :-) | |||
15:33
mncharity left
|
|||
pmichaud | jnthn++ | 15:33 | |
jnthn | wow, Yarr actually JIT-compiles regexes. :-) | 15:34 | |
(otoh, PGE just emits PIR, which becoems Parrot bytecode, which can be jitted :-)) | 15:35 | ||
15:35
kimtaro joined
15:37
ZuLuuuuuu joined
|
|||
szabgab | TimToady, are the X<> tags welcome in the Synopsis ? | 15:37 | |
[particle]- | X<> tags are valid pod... :) | 15:38 | |
TimToady | why not? | ||
szabgab | I like them and then will add more of them... | ||
[particle]- | X<szabgab>++ | 15:39 | |
literal | which synopsis? | ||
[particle]- | all sysopses, i presume. | ||
jnthn | In Rakudo, should parsing constant λ = 42; depend on having ICU? | 15:40 | |
literal | ah | ||
pmichaud | yes. | ||
jnthn | Ah, OK. | ||
pmichaud | otherwise it can't figure out that λ is an alpha. | ||
[particle]- | jnthn: it must. | ||
jnthn | Right. | ||
Thus why I can't run that here, but it works here on channel with the bot. | |||
[particle]- | spack: units | 15:44 | |
buubot: spack units | |||
buubot | [particle]-: S02-bits.pod:5 S05-regex.pod:1 S11-modules.pod:1 S29-functions.pod:1 | ||
arnsholt | Does the {*} #=foo trick work in Rakudo, or only in PCT? | ||
pmichaud | in Rakudo also. | ||
note that #= requires a space. | 15:45 | ||
[particle]- | *trailing space | ||
arnsholt | And that was the bug. 'ta muchly | ||
Tene | arnsholt: you use it like this: gist.github.com/102833 | 15:46 | |
15:46
eternaleye left
|
|||
literal | rakudo: use Num :Trig; constant Num ? = atan2(2,2) * 4; say ? | 15:46 | |
pmichaud | Okay, I've now moved perl6-examples into github.com/perl6/perl6-examples . Who wants commitbits? | ||
p6eval | rakudo e9f631: OUTPUT«Malformed declaration at line 1, near "Num ? = a"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)» | ||
literal | oops | ||
rakudo: use Num :Trig; constant Num π = atan2(2,2) * 4; say π | 15:47 | ||
15:47
pjcj joined
|
|||
p6eval | rakudo e9f631: OUTPUT«3.14159265358979» | 15:47 | |
literal | why does this not work on my copy of rakudo? | ||
pmichaud | literal: do you have ICU installed? | ||
literal | hm, maybe not | ||
nope | |||
literal installs it | |||
masak | pmichaud: how's the new roadmap coming along? | 15:48 | |
masak is expectant | |||
pmichaud | masak: slowly, but I'm gaining on it. I've been fixing bugs. | ||
masak | :) | ||
mberends | pmichaud: commitbit please :) github.com/mberends | ||
masak | pmichaud: I guess we'll see a blog post when it lands. | 15:49 | |
pmichaud | masak: absolutely. | ||
mberends: added | 15:50 | ||
arnsholt | Hmmm. Speaking of the namespaces and grammar discussion we had earlier, what Tene has done makes sense as well. The XML grammar lives in the module called XML | ||
moritz_ | pmichaud: I also want a commitbit | ||
arnsholt | There might be other stuff as well that has a claim to the root node though | ||
pmichaud | moritz: added | ||
mberends | pmichaud: thanks. maybe eric256++ can send you his committers list? | ||
moritz_ | pmichaud: thanks | ||
masak | commit bit to what? :) | ||
moritz_ | masak: perl6/perl6-examples | ||
pmichaud | masak: github.com/perl6/perl6-examples | ||
15:50
pluto left
|
|||
masak | yes, please. | 15:50 | |
[particle]- hops on bandwagon | |||
pmichaud | (migrated from eric256) | ||
masak, particle: added | 15:51 | ||
15:51
pdc303 left
|
|||
pmichaud | (yay, particle updated his gravatar image :-) | 15:51 | |
masak | I'll set proto to download perl6-examples from perl6 from now on, if nobody protests. | ||
literal | hm, there's no make target to wipe the parrot configuration so it will be rebuilt? (make realclean is not enough) | ||
pmichaud | literal: "make realclean" in the parrot directory. | 15:52 | |
literal | ah, ok | ||
pmichaud | yes, if eric256 can send me the committers list, we can add them. | ||
15:53
omega joined,
pdc303 joined
15:54
c1sung joined
|
|||
jnthn | rakudo: prompt("] "); say "this shouldn't be printed" | 15:54 | |
p6eval | rakudo e9f631: OUTPUT«] this shouldn't be printed» | ||
jnthn | *sigh* I fixed that once. :-S | ||
pmichaud | :-) | 15:55 | |
I know the feeling :=) | |||
masak tries to find the resolved RT ticket | |||
jnthn | masak: It was unresolved, I wrote it was fixed and forgot to resovle it. | ||
Just went to check I really could resolve it now and it's broken again. | 15:56 | ||
masak | jnthn: how convenient. :) | ||
moritz_ | jnthn: note that p6eval pipes an empty string to STDIN | ||
jnthn | oh, curious | ||
moritz_: aha | |||
moritz_: Yeah, locally it works. | |||
.get when called the first time gets taht empty string I guess. | |||
rakudo: prompt("] "); prompt("] "); say "this shouldn't be printed" | 15:57 | ||
p6eval | rakudo e9f631: OUTPUT«] ] this shouldn't be printed» | ||
jnthn | heh | ||
pmichaud | why shouldn't it? | ||
jnthn | locally it pauses there. | ||
pmichaud: It should. | |||
pmichaud | I mean, why shouldn't the string be printed when run from p6eval ? | ||
masak | jnthn: if it pauses locally, it's probably fixed. | ||
jnthn | I'm a tad confused why for the second time it prints the prompt and thinks it can read. | ||
masak: Yeah. | |||
pmichaud | because it gets eof ? | 15:58 | |
jnthn | masak: Before, it didn't pause locally. | ||
masak | jnthn: moritz_ has said not to trust p6eval and IO. | ||
jnthn | Consensus? Close the ticket? | ||
masak | jnthn: I say resolve. | ||
pmichaud | p6eval isn't going to pause at that point | ||
it's going to see EOF on STDIN and return Nil | |||
15:58
ejs left
|
|||
pmichaud | and continue executing. | 15:58 | |
masak | pmichaud++ | ||
pmichaud | anyway, if it works locally, I say resolve. | 15:59 | |
jnthn | resolved, with note added about p6eval | ||
pmichaud | jnthn++ | ||
pugs_svn | r26536 | szabgab++ | add X<> collector to the smartlink processor | ||
masak | maybe we should default to piping the national anthem of Austria into p6eval, so it has something to read. | ||
moritz_ | masak: patches welcome :-) | 16:00 | |
jnthn | What have you got about Austria? :-) | ||
(Not that it isn't a beautiful country, but... :-)) | |||
moritz_ | though Lore Ipsum might be self explanatory | ||
masak | jnthn: see? already a lot in common with Perl 6 :) | ||
jnthn | ;-) | 16:01 | |
literal | hm, sial.org/pbot/36256 | ||
16:01
FurnaceBoy joined
16:02
|Jedai| is now known as Jedai
|
|||
moritz_ | literal: there's a bug with -e and unicode | 16:02 | |
szabgab | a first shot at reusing the X<> tags: perlcabal.org/syn/x.html | ||
literal | oh | ||
szabgab: nice | 16:03 | ||
16:03
payload left
|
|||
pugs_svn | r26537 | pmichaud++ | [perl6-projects]: Add link to perl6-examples on github. | 16:03 | |
16:05
awwaiid joined
16:06
justatheory joined
|
|||
pugs_svn | r26538 | jnthn++ | [t/spec] Tests that constants are lexically scoped and that they can be used as type constraints. | 16:09 | |
r26539 | szabgab++ | smartlinks: remove unused code | |||
r26540 | pmichaud++ | [perl6-projects.org]: Forgot a closing </li> tag (pmichaud--) | 16:10 | ||
jnthn | html fail | ||
literal | has there been any interested expressed for docstrings in Perl 6? | ||
moritz_ | literal: yes | 16:11 | |
pmichaud | there's a "perl6examples:" target on #perl6 ? | 16:12 | |
i.e., to add collaborators? | |||
literal | they sound interesting but I don't know exactly how they're used, I haven't used Python, for example | ||
moritz_ | pmichaud: I think you can just make all the people administrators, then they can hand out commit bits | ||
pmichaud | that's fine with me, yes. | 16:13 | |
literal | I can see how docstrings would be useful in a REPL | ||
Tene | I can't figure out how to make someone an admin on github. | ||
pmichaud | there is that. I'm wondering how the perl6examples target did it. | 16:14 | |
literal | but maybe something similar could be accomplished by tying Pod paragraphs to methods/subs/etc | ||
moritz_ | pmichaud: what do you mean by "target"? | 16:15 | |
literal: yes, that's the "plan", but it depends on S26 | |||
16:16
braceta joined
|
|||
pmichaud | according to the readme in perl6-examples, one can do "perl6examples: add <username>" to add a collaborator to the perl6-examples repo (in eric256's account) | 16:16 | |
perl6examples: add pmichaud | 16:17 | ||
...but I'm guessing it's not active/working. | |||
16:17
masak left
|
|||
pmichaud | that's okay, I think we can manage it manually for a while. | 16:17 | |
16:17
eMaX joined
|
|||
eMaX | hi | 16:17 | |
Tene | Hi, eMaX! | 16:18 | |
eMaX | Hi Tene | ||
I just read an old interview with Audrey Tang and thought I should tune into #Perl6 regularly | 16:19 | ||
pmichaud | eMaX: Yes, you should. :-) | ||
moritz_ | though sadly audreyt isn't around anymore :( | ||
16:20
FurnaceBoy left
|
|||
eMaX | moritz_, what has happened? I read she's very sick and wasn't able to find out anything | 16:20 | |
moritz_ | eMaX: she got hepatitis, and her doctors told her to have less stress in her live | 16:21 | |
pmichaud | afk, lunch | 16:22 | |
eMaX | ok so she's still alive at least. But anyway that's sad to hear that someone, particularly so precious, has to drop out. but anyway, health comes first. | ||
moritz_ | aye | ||
TimToady | nevertheless, we're still making good progress | ||
moritz_ | she still does some hacking, but not so pulicly as before | ||
s/so/as/ | 16:23 | ||
eric256 | pmichaud: yea i don't think that bot is working atm | 16:24 | |
eMaX | ok. Well I recently read an article that Perl6 "is coming" - I'm not a real perl programmer (so was I told when I quit smoking, a colleague insisted that every real programmer has to smoke - Camel) - but what I have heard about the object oriented improvements in Perl6 makes me very interested. | ||
moritz_ | TimToady: can I assume that Camelia is Artistic 2, as most of the pugs repo? | 16:25 | |
TimToady | yes | ||
moritz_ | thanks | ||
16:25
cspencer left
|
|||
eMaX | but anyway I'll just step back and try things out. | 16:25 | |
16:25
cspencer joined
|
|||
pugs_svn | r26541 | szabgab++ | some improvement (?) in indeX<>ing | 16:25 | |
cspencer | hello all | ||
TimToady | eMaX: OO is one of the dimensions in which we're trying to be disruptive technology... | ||
so have the appropriate amount of fun | 16:26 | ||
pugs_svn | r26542 | szabgab++ | add some X<>-es to the docs | ||
eMaX | tnx | ||
TimToady | OO is actually one of the places where rakudo is leading the other implementations, I think | ||
eric256 | i just added pmichaud and moritz | ||
anyone else want a commit bit on perl6-examples | 16:27 | ||
moritz_ | ... except perhaps for smop, but since it's hard to run code on smop right now I can't tell :-) | ||
it's surely leading on regexes | |||
jnthn | smop has done some nice work on nailing down the underlying metamodel stuff. | ||
eMaX | lots of the code I write on customer projects is in Perl - basically for scripting - and I wonder whether I'll be able to write a new "Perl6" Style so that it can run in their Perl5 environment. | ||
jnthn | Rakudo has already borrowed - and will borrow more - from that. | 16:28 | |
TimToady | up to a point; we can currently translate a subset of p6 back to p5; that's how STD works | ||
but p5 as an engine isn't really up to supporting all of p6 semantics | 16:29 | ||
jnthn | eric256: I'm happy to have a commit bit while you're on it. :-) | ||
TimToady | that's part of the smop project's intentions | ||
eric256 | jnthn: done ;) | ||
eMaX | any how2 somewhere how to get up and running a perl6 environment so that I can run it side by side? | ||
ok found smop | |||
TimToady | see instructions on rakudo.org for how to get going on that | 16:30 | |
eric256 | anyother takers? | ||
TimToady | or you can play with the online bots here | ||
jnthn gives moritz++ a couple of tickets that will need spectests | |||
TimToady | perl6: say "Hi eMax" | ||
p6eval | elf 26542, pugs, rakudo 82ca8d: OUTPUT«Hi eMax» | ||
eMaX | :) | 16:31 | |
TimToady | note that smop isn't one of those yet | ||
they've been concentrating on the underpinnings | |||
not the user interface | |||
eMaX | Ok I'm going to have the appropriate amount of fun:) | ||
TimToady | to try out syntax, you can also use std | ||
std: for 1..10 -> { frob } | 16:32 | ||
p6eval | std 26542: OUTPUT«Undeclared routine: frob used at 1 ok 00:02 35m» | ||
TimToady | but it's just a parser, so far | ||
std: for(1..10) -> { frob } | |||
p6eval | std 26542: OUTPUT«##### PARSE FAILED #####for() interpreted as function call at line 1 ; please use whitespace instead of parensUnexpected block in infix position (two terms in a row) at /tmp/WRnnMzUu3y line 1:------> for(1..10) -> { frob } expecting any of: infix or | ||
..meta-inf... | |||
TimToady | errands & | 16:33 | |
ruoso | TimToady, although say "Hello" is something that smop+mildew does run ;) | ||
mildew: say "Hello!" | |||
p6eval | mildew: OUTPUT«Bareword found where operator expected at perl6-snapshot/STD.pm line 4, near "$LANG is" (Missing operator before is?)Bareword found where operator expected at perl6-snapshot/STD.pm line 5, near "$PKGDECL is" (Missing operator before is?)Bareword found where operator expected | ||
..... | |||
ruoso | moritz_, it's missing a make in the mildew directory | 16:34 | |
16:40
ispy_ left,
ispy_ joined
|
|||
eMaX | re | 16:42 | |
Hmm. While changing trains, parrot refused to build. nopaste.org/p/aN725CP9bb | |||
ah | 16:43 | ||
[particle]- | you need to install subversion | 16:48 | |
16:51
awarefish left,
awarefish joined
|
|||
eMaX | saw it sorry for not noting one should probably not do things on a train station :=) | 16:52 | |
moritz_ | mildew: say 'Hello' | ||
p6eval | mildew: OUTPUT«Bareword found where operator expected at perl6-snapshot/STD.pm line 4, near "$LANG is" (Missing operator before is?)Bareword found where operator expected at perl6-snapshot/STD.pm line 5, near "$PKGDECL is" (Missing operator before is?)Bareword found where operator expected | ||
..... | |||
16:53
alanhaggai left
|
|||
moritz_ | ruoso: it's not so easy... some haskell stuff missing during build... | 16:53 | |
16:54
perl6-examples joined
|
|||
perl6-examples | perl6-examples: 3Eric Hodges 07master0 SHA1-0cad360 | 16:54 | |
Adding some perl6 examples from perlmonks | |||
bit.ly/irfwv | |||
perl6-examples: 3Eric Hodges 07master0 SHA1-3b9a0df | |||
Creating 99 Problems directory and including some solutions. | |||
bit.ly/dLWmn | 16:55 | ||
16:55
perl6-examples left
|
|||
eric256 | opps ..sorry that was a bit loud.... stupid github bot | 16:55 | |
moritz_ thinks that's fine | |||
16:56
zamolxes joined
|
|||
[particle]- | eric256: bit me | 16:56 | |
jnthn | btw, it seems we are missing reporting (from dalek) of rakudo commits? | 16:57 | |
16:58
m-i-l-a-n left,
payload joined
|
|||
moritz_ | jnthn: aze. I just complained to Infinoid on #parrot | 16:59 | |
s/z/y/ # (switching keyyboard layouts)-- | 17:00 | ||
[particle]- | bit as in commitbit btw | ||
jnthn | rakudo: class A { }; subset B of A where 1; | 17:06 | |
p6eval | rakudo b105f4: OUTPUT«Null PMC access in get_string()current instr.: '!CREATE_SUBSET_TYPE' pc 19200 (src/builtins/guts.pir:235)» | ||
jnthn | rakudo: role A { }; subset B of A where 1; | ||
p6eval | rakudo b105f4: OUTPUT«Null PMC access in getprop()current instr.: '!CREATE_SUBSET_TYPE' pc 19180 (src/builtins/guts.pir:227)» | ||
17:06
abra joined
17:07
aindilis left,
aindilis joined,
alester joined
|
|||
moritz_ | ruoso: it seems I can't fix the mildew compilation easily... but I can give you access to that server so you can try it yourself if you want | 17:09 | |
17:15
ispy_1 joined
|
|||
moritz_ | my $x = do { { $/.perl.say } }; 'a' ~~ /a/ && $x.(); | 17:15 | |
rakudo: my $x = do { { $/.perl.say } }; 'a' ~~ /a/ && $x.(); | 17:16 | ||
p6eval | rakudo b105f4: OUTPUT«undefinvoke() not implemented in class 'Integer'current instr.: '_block14' pc 126 (EVAL_21:59)» | ||
moritz_ | should that work? | ||
17:16
braceta left
|
|||
arnsholt | Is there a reduce operator that lets you call an arbitrary method on the elements in a list/array? | 17:20 | |
moritz_ | rakudo: say (1..6).reduce: { $^a + $^b } | ||
p6eval | rakudo b105f4: OUTPUT«21» | ||
moritz_ | rakudo: my $x = do { { $^a.perl.say } }; 'a' ~~ /a/ && $x.($/); | 17:21 | |
p6eval | rakudo b105f4: OUTPUT«too few arguments passed (0) - 1 params expectedcurrent instr.: '_block27' pc 217 (EVAL_21:103)» | ||
arnsholt | As a method on the list object, of course. Retrospect strikes again | ||
moritz_ | I don't understand | ||
do you want to call a method on each array item? | 17:22 | ||
or reduce something? | |||
or both? | |||
rakudo: my $x = { $^a.perl.say }; 'a' ~~ /a/ && $x.($/); | |||
p6eval | rakudo b105f4: OUTPUT«Match.new( # WARNING: this is not working perl code # and for debugging purposes only ast => "a", text => "a", from => 0, to => 1,)» | 17:23 | |
17:23
ZuLuuuuuu left
|
|||
arnsholt | moritz_: Never mind. I crossed some wires in my brain | 17:23 | |
eMaX | hmm. Why do I keep seeing  like a box with 24 | 17:25 | |
arnsholt | It's not 2 and for, it's capital N and capital L, for "newline" | ||
moritz_ | ... unless your font doesn't support it | ||
arnsholt | Er, s/for/4/ I've no idea why I wrote that | ||
eMaX | r8 | 17:27 | |
er | |||
right | |||
17:27
Jedai left
|
|||
eMaX | hmm. rakudo built as it seems and the tests passed. | 17:27 | |
moritz_ | literal: in perl6.vim quotes in char classes still look for a closing quote | 17:30 | |
eMaX | I wonder whether perl6 as a binary is sufficient for reasonable programming - like /usr/bin/perl6 - I'd expect all sorts of modules to also be needed. or does it consume the perl5 modules? | 17:31 | |
moritz_ | it needs modules. | ||
literal | moritz_: hm, I'll look into tha | ||
t | |||
17:32
ispy_ left
|
|||
literal | moritz_: does it only happen with <-[]> classes? if so, then I fixed that recently | 17:33 | |
moritz_ | literal: seems like... | 17:34 | |
literal: we need a perl6.vim feed bot ;-) | |||
literal++ | 17:35 | ||
I've just pulled, it now works perfectly | |||
17:35
riffraff left
|
|||
pugs_svn | r26543 | ron++ | documented some tests and added some tests for RT #53814 | 17:37 | |
17:39
hercynium left
|
|||
ruoso | moritz_, better see that with pmurias... he's the one that undesrtands haskell | 17:42 | |
;) | |||
moritz_ | ruoso: he already has root acess on that server | 17:43 | |
ruoso | ah... cool | ||
pmurias, any chance on getting the mildew evalbot up? | |||
17:45
awarefish left
|
|||
eric256 | particle: added | 17:50 | |
17:51
jan_ left
|
|||
pmichaud | eric256: I had made a copy/migration of perl6-examples into the perl6 github account | 17:52 | |
do we want to maintain two separate repos, or ... ? | |||
or perhaps there's a way that I can get the perl6 repo to automatically track the eric256 one...? | 17:53 | ||
17:54
eMaX_ joined
|
|||
moritz_ | pmichaud: make() doesn't seem to look in its caller for $/ | 17:54 | |
eMaX_ | re | ||
moritz_, ok I compiled perl6 according to rakudo.org. Modules are not found - nopaste.org/p/ai4EU12rqb - is there some walkthrough how to get to a more working environment? | |||
moritz_ | pmichaud: so calling make from a block fails | 17:55 | |
17:55
jan_ joined
|
|||
pmichaud | moritz_: example? | 17:55 | |
moritz_ | eMaX_: well, I don't think there's such a module yet | ||
pmichaud | eMaX_: rakudo doesn't make use of perl 5 modules. | ||
at least ,not yet. | |||
moritz_ | rakudo: grammar A { token TOP { .* {*} } }; class B { my $x = { make 3 } }; A.parse('foo', :action(B.new)).ast.perl.say | 17:56 | |
eMaX_ | ok then. Hmm. At least that motivates to do things oneself :) | ||
p6eval | rakudo b105f4: OUTPUT«"foo"» | ||
moritz_ | rakudo: grammar A { token TOP { .* {*} } }; class B { my $x = { make 3 }; method TOP($/) { $x() } }; A.parse('foo', :action(B.new)).ast.perl.say | ||
p6eval | rakudo b105f4: OUTPUT«Method '!make' not found for invocant of class 'Failure'current instr.: 'make' pc 22031 (src/builtins/match.pir:40)» | ||
moritz_ | pmichaud: that's it | ||
pmichaud | moritz: .... but the $/ that is in scope when make is called isn't the one from TOP | 17:57 | |
{ make 3 } has its own $/ | 17:58 | ||
17:58
pancake left
|
|||
moritz_ | pmichaud: shouldn't the $/ of that block be OUTER::$/? | 17:58 | |
pmichaud | yes, it is. | ||
OUTER::$/, not CALLER::$/ | |||
moritz_ | ah | ||
pmichaud | however | 17:59 | |
eMaX_ | moritz_, ok thanks I think I've got all that I need to get me going. particularly, your blog :) | ||
pmichaud | rakudo: grammar A { token TOP { .* {*} } }; class B { my $x = { make 3 }; method TOP($/) { $x($/) } }; A.parse('foo', :action(B.new)).ast.perl.say | ||
p6eval | rakudo b105f4: OUTPUT«Method '!make' not found for invocant of class 'Failure'current instr.: 'make' pc 22031 (src/builtins/match.pir:40)» | ||
pmichaud | hmm. | ||
moritz_ | that binds $/ to $_ | ||
not to $/ | |||
pmichaud | oh, yeah. | ||
rakudo: grammar A { token TOP { .* {*} } }; class B { my $x = -> $/ { make 3 }; method TOP($/) { $x($/) } }; A.parse('foo', :action(B.new)).ast.perl.say | 18:01 | ||
p6eval | rakudo b105f4: OUTPUT«3» | ||
moritz_ | nice | ||
I still find the behaviour a bit unintuitive, but I think I can work with that | |||
pmichaud | when 'lift' is implemented in Rakudo, one might be able to solve it with that. | 18:02 | |
I still need to review the details of 'lift' | |||
18:02
PhatEddy joined
18:05
amoc left
|
|||
moritz_ | does 'make' also return from the current method? | 18:07 | |
pmichaud | no, it doesn't do a return exception. | ||
it simply sets the .ast value on $/ . | |||
18:07
azawawi joined
|
|||
moritz_ | can I say 'make $stuff; return', or will that return interfere somehow? | 18:07 | |
18:07
Jedai joined,
cognominal left
|
|||
azawawi | pmurias: ping | 18:08 | |
moritz_ | I guess I'll just try ;-) | ||
18:08
cognominal joined
|
|||
pmichaud | moritz: you mean in a different closure? | 18:08 | |
moritz_ | pmichaud: no, in the same | ||
pmichaud | inside of an action method, you can certainly do make $stuff; return; | 18:09 | |
eMaX_ | where does the runtime/ directory need to be for a working perl6 install? I've copied perl6 to /usr/bin and created /usr/lib/perl6 and added the files from blib/lib there and added /usr/lib/perl6 to LD_LIBRARY_PATH. Now if I don't have the runtime directory as subdirectory to cwd, apparently I get problems like PCT.pbc cannot be found | ||
pmichaud | eMaX_: the perl6 binary depends on the original build tree | ||
we plan to fix that at some point, but we're a little limited in what we can do with parrot. | |||
eMaX_ | pmichaud, so that means for testing I need the runtime directory in my working directory? | 18:10 | |
seems even a symlink suffices | |||
azawawi | @tell pmurias i managed to get mildew/smop to work finally but the build process is not straightforward and a lot of things need to be installed along the way. | ||
lambdabot | Consider it noted. | ||
pmichaud | eMaX_: I'm not sure where Parrot currently expects to find the .pbc files | ||
pugs_svn | r26544 | jnthn++ | [t/spec] Tests for subtypes based on classes and roles. | ||
pmichaud | current "best practice" is to leave the build tree in place. | ||
eMaX_ | ok would be great if that was in some env variable | ||
pmichaud | eMaX_: sure; again, I'm not sure what Parrot's current status for that is. | 18:11 | |
eMaX_ | ok thanks | ||
moritz_ | eMaX_: I leave the binary in the build tree, and symlink it from somwhere in $PATH | ||
PhatEddy | If I come across a ticket that looks mergeable (or closeable) and want to reply suggesting the merge, should I cc the list? Does it matter? | 18:13 | |
pmichaud | PhatEddy: whatever you think seems most reasonable. | ||
PhatEddy: I think I might be able to give you merge/close permissions, if you want. | |||
eMaX_ | brb / changing trains | ||
18:14
barney joined
18:15
eMaX left
|
|||
PhatEddy | pmichaud: thanks for the offer but I think I'll take a rain check until my current guesses seem to be validated :). | 18:15 | |
moritz_ | PhatEddy: cc'ing the list is not necessary - replies to tickets automatically go to p6c | 18:16 | |
PhatEddy | I think there's a link I've been pressing to request that cc though ... | 18:17 | |
pmichaud | when replying via the web interface, I think one has to explicitly request the cc | ||
moritz_ | there's "reply" and "comment on" | ||
I think that "comment on" needs it | |||
pmichaud | there's also "Click here to toggle cc of [email@hidden.address] | 18:18 | |
ruoso | azawawi, yes... the build process is quite sad... but that is hopefully being solved with re-smop | ||
where we will be able to make some things optional | |||
18:22
LylePerl joined
18:23
zamolxes left
|
|||
eMaX_ | moritz_, thanks, that worked. Had to rebuild as the build path is apparently encoded, but now that approach works fine. | 18:26 | |
azawawi | ruoso: ok i managed finally to really get it mildew/smop to work... i think so... how can i run a perl 6 script over it? what are the arguments? | 18:28 | |
ruoso | perl mildew file.pl | ||
azawawi | ruoso: i get segmentation fault over a simple say "Hello world"... any ideas? | 18:30 | |
ruoso | hmm... | ||
try rebuilding the CORE | |||
rm CORE/*.so | |||
make CORE | |||
eMaX_ | moritz_, following your blog, I try my @array = 1, 2, 3; say "@array[1]"; it does not output 2, but @array[1] unless not quoted. | 18:31 | |
TimToady | I think rakudo doesn't implement | 18:32 | |
array interpolation with trailing [] yet | |||
you can put {@array[1]} currently | |||
eMaX_ | ok tnx | ||
moritz_ | eMaX_: that blog tries to tech Perl 6 (as it was specified when I wrote it), not just the subset that Rakudo implements | 18:33 | |
eMaX_ | moritz_, ok thanks. What Tim suggested, works. | ||
18:34
azawawi_vm joined
|
|||
eMaX_ | wow. that language is so much nicer now :) | 18:35 | |
pasteling | "azawawi_vm" at 212.38.137.139 pasted "mildew make" (72 lines, 4.7K) at sial.org/pbot/36258 | 18:37 | |
18:37
hercynium joined
|
|||
azawawi_vm | ruoso: still doesnt work; plz check out the link above... | 18:38 | |
ruoso | azawawi_vm, do you have a debugger enabled? | 18:41 | |
installed, actually | |||
18:44
ejs joined
18:45
orafu left,
orafu joined
|
|||
azawawi_vm | ruoso: debugger as in perl debugger or gdb? :) | 18:47 | |
ruoso | gdb | ||
azawawi_vm | ruoso: yes, im in it... what should i do? | 18:48 | |
ruoso | ok... first... | ||
perl mildew -o/tmp/foo test.p6 | |||
then | |||
LD_LIBRARY_PATH=../smop/build/:CORE/ gdb /tmp/foo | |||
eMaX_ | ok thanks for the nice kickstart and have a nice evening | ||
azawawi_vm | ruoso: and? | 18:50 | |
ruoso | inside gdb, go "r" | ||
18:51
cspencer_ joined
|
|||
pasteling | "azawawi_vm" at 212.38.137.139 pasted "gdb output" (9 lines, 251B) at sial.org/pbot/36259 | 18:52 | |
ruoso | "bt" | 18:53 | |
18:53
schmalbe joined,
cspencer left
|
|||
ruoso | azawawi_vm, use "bt" to get the backtrace | 18:53 | |
pasteling | "azawawi_vm" at 212.38.137.139 pasted "gdb bt output" (9 lines, 482B) at sial.org/pbot/36260 | 18:54 | |
moritz_ | pmichaud: nopaste.snit.ch/16420 - my current regexes + action methods woes written down | ||
ruoso | azawawi_vm, hmmm... did you made any customization in the course of getting it to build? | 18:57 | |
pmichaud | moritz_: okay, I'll look at it right after #ps | ||
moritz_ | pmichaud: great | 18:58 | |
azawawi_vm | ruoso: using kubuntu 9.04; no customizations but gimme5/tryfile needed /usr/local/bin/perl and i have /usr/bin/perl | ||
ruoso | azawawi_vm, hmm... | 18:59 | |
eric256 | pmichaud: about the repo i'm not sure.... advantages to keeping it seperate are seperate lists of committers, but that is only an advantage if the policy is different, if everyone can get a commit bit on either then we should standardize into one location i think. but is the rakudo repo the right place for implementation agnostic examples? | 19:01 | |
ruoso | azawawi_vm, does "make test" in smop works? | ||
eric256 | pmichaud: i'm not realy for or agianst, just makeing the points. another advantage of moving it is that i'm lazy and it would remove me as a block on it ;) | ||
pmichaud | eric256: note that it's not the rakudo repo | 19:02 | |
it's a separate "perl6" repo | |||
github.com/perl6/perl6-examples | |||
and yes, my intent is that commit bits will be liberally given | |||
azawawi_vm | ruoso: let me check it on feather... | ||
eric256 | so..whats going to go in it? | 19:03 | |
well then i realy don't mind, but i have no idea how to *move* a repo on github | |||
pmichaud | eric: I already moved it :-) | ||
"move" is essentially "clone and point everyone to the new location" | |||
19:04
ZuLuuuuuu joined
|
|||
ruoso | azawawi_vm, hmmm... i rebuilt mildew and it started breaking here... | 19:04 | |
eric256 | so i could delete mine then clone yours, and mine would point to yours? | ||
mm | |||
pmichaud | yes, I believe so. | ||
19:04
abra left
|
|||
pmichaud | you could rename yours to begin with if you didn't want to commit to a delete | 19:04 | |
eric256 pictures new cpan growing up on github/perl6 ;) | |||
19:05
eMaX_ left
19:06
cognominal left
19:07
cognominal joined
|
|||
mberends | pmichaud: we'll have to deal with granularity soon. perl6-examples contains many modules, more than any single user needs. | 19:08 | |
ruoso | azawawi_vm, we're getting really close to finish the smop and mildew refactoring... so I'm not really able to get to the old code to see what's the problem... | ||
pmichaud | mberends: I'm not at all opposed to creating separate repos within the perl6 accoutn. | ||
19:08
barney left
|
|||
pmichaud | *account | 19:08 | |
s/separate/additional/ | 19:09 | ||
mberends | ok :) | ||
azawawi_vm | ruoso: anyway i will add Perl 6 Padre plugin run script support for mildew tomorrow... i think i need only to refactor the run script to have command and command arguments. I was hoping to make the user select from a Perl 6 implementation (mildew/rakudo/...)... | 19:10 | |
ruoso | azawawi_vm, well... maybe pmurias is able to solve it fast... but the refactoring is really close to an end... | 19:11 | |
azawawi_vm logs off his linux vm pet :) | |||
[particle]- | does git support sparse checkouts? | ||
pmichaud | [particle]-: I'm not aware of them. Git likes to clone entire repos. | ||
Fortunately it does it quickly. | |||
[particle]- | yeah, which doesn't scale | ||
19:12
orafu left,
orafu joined
|
|||
pmichaud | [particle]-: that's why I'm okay with creating many repos :-) | 19:12 | |
mberends | pmichaud: will you be prepared to consider adding :ver() and :auth() to 'use XYZ;' soon? I'm trying to boil down the filesystem and configuration options that would fit all OS'es. | ||
moritz_ | if you don't want history, you can rm -rf .git; git init .d | ||
s/\.d/./ | |||
git add * | |||
git commit -am 'initial checkin# | 19:13 | ||
pmichaud | mberends: if you want to add the ability to parse :ver() and :auth(), no problem. | ||
Tene | and :from | ||
pmichaud | If you want them to do something reasonable (like select only a specific library from a set), then we're going to need some design work | ||
19:13
azawawi_vm left
|
|||
pmichaud | given the other tasks on our list, it's not something I see likely before August. (But shortly after August it's much more likely.) | 19:14 | |
First we have to refactor quite a few things so that use statements do lexical imports instead of package-scoped ones. | |||
Tene | if we get :from parsed, I'll add the bits to load foreign libraries. | ||
azawawi | ruoso: thx for helping me out. How many spec tests was mildew passing before? | ||
Tene | well, foreign libraries that don't have their own PMCs. | ||
s/libraries/languages/ | 19:15 | ||
pmichaud | Tene: okay, but I have some very specific ideas about how I want that to happen (per my message on load_language on parrot-dev) | ||
Tene | pmichaud: Yes, I agree. That's exactly how I want to do it. | ||
ruoso | azawawi, well... it still didn't support "use" statement, so only a few sanity tests passed... but you can see the features supported in the t directory | ||
Tene | It seems more important to me to get rakudo into a .HLL first, though, and I can't do that. I didn't get very far in my last attempt. I started running into nasty segfaults. | 19:16 | |
ruoso | azawawi, mildew is concept-oriented development... I mean... if we support something, it is made to support as Perl 6 really specs it... no shortcuts taken to make it pass in the tests | ||
Tene | stack overflow, and then gdb segfaulting when it tries to walk down 280k stack frames. | ||
etc. | |||
pmichaud | I agree, getting Rakudo into a .HLL is a somewhat higher priority | ||
Tene | So I couldn't even get it into a point demonstrating the PMC issues for allison to look at. | ||
azawawi | ruoso: cool | 19:17 | |
pmichaud | Tene: my suggestion would be to build a simple language that uses some of Rakudo's PMCs | ||
I suspect some of the issues may be in the fact that Rakudo has its own PMCs | |||
Tene | Hm. That could work. | ||
pmichaud | (i.e., port Rakudo's PMC into the simple language) | 19:18 | |
azawawi | ./goodnight * & | ||
pmichaud | afaik, we don't have a good example (other than Rakudo and partcl) of languages that have custom PMCs | ||
Tene | pmichaud: nopaste.snit.ch/16422 | 19:20 | |
jnthn | Tene: I'm guessing it's blowing up while trying to create the PMCProxy for one of the dynpmcs. | ||
Tene | ... oh, nm, that fails anyway without the .HLL | ||
it's not finding the .so | 19:21 | ||
jnthn | Tene: Perl6Hash isn't a PMC | ||
Tene: Try Perl6MultiSub | |||
pmichaud | or ObjectRef, or Perl6Scalar | ||
Tene | jnthn: what is src/pmc/perl6hash.pmc ? | ||
19:21
azawawi left
|
|||
pmichaud | Tene: obsolete, I bet. | 19:21 | |
jnthn | Aye, I didn't know that one existed... | ||
Tene | Ah. | ||
pmichaud | Tene: I don't think that's compiled anywhere. | ||
we should get rid of it if it's not actively being used, that's for sure. | 19:22 | ||
Tene | Ah, yes, that does work. | ||
Even in the .HLL | 19:23 | ||
So, nm on that. | |||
jnthn: gdb tells me that it's trying to create a Hash | |||
lemme show you... | 19:24 | ||
moritz_ | pmichaud: I've delete it locally, and now try to build + spectest if it still works | ||
pmichaud | I'm curious if perl6hash even appears in the Makefile | 19:25 | |
I suspect it doesn't. | |||
Tene | doesn't | 19:26 | |
should we rm it? | |||
moritz_ does that | |||
pmichaud | yes, rm it. | ||
moritz_ | it builds without it | 19:27 | |
Tene waits for gdb | |||
cspencer_ | what would cause a "Non-zero wait status: 10" error from a spec test, even though all tests pass? | ||
Tene | jnthn: check out nopaste.snit.ch/16423 | ||
moritz_ | cspencer_: wait status = exit status, I think | ||
Tene | look at the strstart = 0x7ffff786f920 "Hash" | 19:28 | |
pmichaud | Perl6Hash isa Hash, if that helps at all. | ||
19:29
cspencer_ is now known as cspencer
|
|||
pmichaud | Tene: what's the code that produced that segfault? | 19:29 | |
Tene | pmichaud: rakudo, in the 'hll' branch | ||
jnthn | Tene: looking | ||
literal | Tene: I've been told you're writing a POE clone in Perl 6 | ||
Tene | literal: yeah. Lemme push to github for you | ||
literal | did you base it on the old POE clone in the pugs repo? | ||
Tene | literal: a little bit. | 19:30 | |
literal | ok | ||
jnthn | Tene: OK, I am guessing from this, that when in the Perl6 HLL we try to get the PMCProxy for the Parrot Hash PMC, we fail. | ||
Tene | I think I copied from it and then edited heavily. | ||
jnthn | Tene: Perhaps we're looking it up in one place but then sticking it in a different one... | ||
pmichaud | there are a few places where Rakudo is storing things in namespaces that it shouldn't be. | 19:31 | |
or expecting to find things (e.g. methods) in namespaces. | |||
cspencer | moritz_: ah yes, it was a "#?rakudo todo" that was dying in an eval block | 19:32 | |
19:32
ejs left
|
|||
Tene | literal: pushed to github.com/tene/Doten/tree/master but still waiting on github to notice | 19:34 | |
cspencer | rakudo: (0,1)[ * .. * ] | ||
p6eval | rakudo b9c034: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'current instr.: 'parrot;Range;!to_test' pc 10695 (src/classes/Range.pir:250)» | ||
19:34
ejs joined
|
|||
Tene | literal: there, it's up now | 19:34 | |
literal: why are you asking about it? | |||
jnthn | Tene: Maybe out of curiosity just try running this under .HLL 'Perl6' | 19:35 | |
loadlib 'P6Object.pbc' # something like this | |||
p6meta = get_hll_global ['Perl6Object'], '$!P6META' | |||
mappingproto = p6meta.'new_class'('Mapping', 'parent'=>'Hash') | |||
Tene | loadlib a pbc? | ||
jnthn | erm, damm | ||
load_bytecode | |||
well, the comment was accurate ;-) | |||
check the name too :-) | |||
I don't think you'll need to load any dynpmcs or perl6.pbc to try this anyway. | 19:36 | ||
Just p6object | |||
If that works, it eliminates one possibility. | |||
(say mappingproto should report Mapping if it's successful) | |||
Tene | jnthn: don't I also need the :init of Object.pir ? | ||
jnthn | perhaps | 19:37 | |
Tene: Yes | |||
literal | Tene: curiosity, since I maintain some POE-related modules :P | 19:38 | |
Tene | jnthn: it works, when i replace 'Hash' with 'parrot;Hash', as I did in the branch | ||
jnthn: so that's not the problem. | |||
jnthn: btw, it compiles perl6_s1.pbc just fine. It just dies when trying to *run* it. | 19:39 | ||
jnthn | Tene: Have you tried running it with --trace to see where we end up failing? | 19:40 | |
Tene | I can do that. | ||
jnthn | --trace=4 might give a reasonably sized output. | ||
(just what subs we call) | |||
Tene | # current instr.: '' pc 0 (perl6.pir:14) | ||
Segmentation fault | |||
... load_bytecode 'PCT.pbc' ??? | 19:41 | ||
the very first thing we do? | |||
19:43
ejs left
|
|||
moritz_ | rakudo: my @m = <elems perl>; say <a b>.@m | 19:53 | |
p6eval | rakudo ab7f97: OUTPUT«invoke() not implemented in class 'ResizablePMCArray'current instr.: '_block14' pc 122 (EVAL_20:56)» | ||
19:55
orafu left,
orafu joined
20:01
DemoFreak left
20:02
hercynium left
|
|||
skids_ | Interesting Rakudo/Parrot trivia: between 20 and 60 percent of arguments to Parrot_str_equal/compare are 5 characters long. Generally more the longer a program is. | 20:03 | |
about 25% of arguments reach these functions without a cached hash value | 20:04 | ||
There are pretty reliably no hash collisions between different strings, | 20:05 | ||
and only a very small fraction (<1%) of comparisons have to look at the string (as it should be.) | |||
20:06
schmalbe left
|
|||
jnthn | Just stuck in some stuff that improves error messages for type check failures, etc. | 20:07 | |
Matt-W | hurrah! | ||
jnthn | masak++ for nudging me to do it. | ||
meppl | good night | ||
20:08
meppl left
|
|||
jnthn -> dinner, bbiab | 20:09 | ||
20:11
DemoFreak joined
20:12
barney joined
20:16
barney left
|
|||
skids_ | oops amend that, about 2.5% of comparisons deeply inspect string operands -- digit fell off the side of the screen :-) | 20:18 | |
(when operands are equal) | 20:23 | ||
pmichaud | moritz_: ping | 20:24 | |
pugs_svn | r26545 | ruoso++ | [re-smop] the ri language now supports a %has directive that provides extra help with initialization and destruction. It also defines the type of the container. | 20:31 | |
r26545 | ruoso++ | [re-smop] first part of p6opaque ported, Im making it splitted in different files... for now the prototype storage (how, who, isa, does, attributes, methods...) is ported... now we miss the default how (which only provides item context for a recently created p6opaque) and the | |||
..p6opaque itself. We are probably going to need yet another construct to make it easier to delegate methods to some attr of the struct | |||
20:31
jhorwitz_ left
|
|||
ruoso | pmurias, take a look at this last commit... specially tools/ri and p6opaque/src/p6opaque_proto.ri | 20:31 | |
20:33
ispy_ joined
20:37
ispy_ left
20:39
kidd_ left,
kidd joined
|
|||
eric256 finaly goes back in the irc log....sorry pmichaud i missed that you had already moved it ;) /me will catch up eventualy | 20:41 | ||
eric256 breaks eric256/perl6-examples with a little regret ;) | 20:42 | ||
its sitting at github.com/eric256/perl6-examples-moved-to-perl6 for the time beign | 20:43 | ||
being | |||
20:43
ruoso left
|
|||
eric256 | so now is it better to git the clone of that and work/commit there....or put a branch in my own github account, work there and push to that, then from that to perl6? this git/fork/clone thing is still a bit cloudy | 20:45 | |
pmichaud | eric256: I don't quite know the answer to that. Whatever works best for you. | ||
For some people, local branches and then pulling to the perl6 repo might work best. | 20:46 | ||
For others, pushing directly to the perl6 repo might work best. | |||
20:49
alester left,
ispy_1 left
|
|||
jnthn back from dinner | 20:55 | ||
Tene | hi jnthn | 20:56 | |
jnthn | Tene: hi | ||
So you were finding it was failing on load_bytecode of PCT.pbc? | |||
Tene | that's what it looked like | ||
jnthn | Does a plain file doing that with .HLL 'Perl6' | 20:57 | |
also cause the same thing? | |||
20:57
keta joined
|
|||
Tene | No. | 20:57 | |
20:57
cspencer left
|
|||
jnthn | Tene: OK. Best is maybe to start by adding in the other things that are done before that. | 20:59 | |
.loadlib 'perl6_group' | |||
.loadlib 'perl6_ops' | |||
Also .include 'src/pctextensions/state.pir' | |||
After those though, you're onto .include 'src/gen_builtins.pir' - if it's in there, that's going to be trickier. | |||
pmichaud | fwiw, that entire sequence really wants reordering. | 21:00 | |
Tene | It has been reordered in the branch | ||
pmichaud | oh. There's another reording that needs to be done also, to get Perl6::Grammar to properly be a subclass of Grammar. | 21:01 | |
Tene | jnthn: you could 'git checkout origin/hll' and try it yourself | ||
jnthn | Tene: Building that. | 21:02 | |
keta | hello, it's my first time on irc, so please excuse all mistakes i will do | ||
a question regarding rakudo: | |||
jnthn | Tene: I got | ||
Note: moving to "origin/hll" which isn't a local branch | |||
Tene | right | ||
jnthn | Does that matter? | ||
keta | class Test { has @.foo; method bar {say @.foo.perl} } | 21:03 | |
this works: | |||
Tene | to make a local branch, git checkout -b hll | ||
keta | Test.new(foo => (1,2)).bar; | ||
jnthn | Tene: Do I need one? | ||
Tene | I think there's an easier one-step way of doing that, but I don't remember. | ||
keta | this doesn't: | ||
"Test".new(foo => (1,2)).bar; | |||
Tene | jnthn: if you're going to be making commits, it's nice | ||
yes, I recommend it. | |||
keta | this does not work either: | ||
my $nn = "Test";"$nn".new(foo => (1,2)).bar; | |||
why is that? | |||
Tene | keta: what are you trying to do here? | ||
keta: classes aren't strings in Perl 6. | 21:04 | ||
jnthn | keta: Because in the first you are calling .new on a string. | ||
Oh, and in the second too. | |||
Neither are expected to work. | |||
keta | how do i do that i want to do with the sendond then? | ||
eric256 | perl6 ne perl5 ;) | ||
jnthn | keta: What do you want to do? | ||
Find a class by name? | |||
keta | call new on a class whose name is in $nn | 21:05 | |
[particle]- | rakudo: class Test {}; $nn = "Test"; {$nn}.new; | ||
p6eval | rakudo c76d8d: OUTPUT«Scope not found for PAST::Var '$nn' in current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:105)» | ||
jnthn | Tene: OK, reproduced the failure. | ||
[particle]- | feh. i forgot the syntax.... | ||
jnthn | keta: We don't do namespace interpolation etc yet, probably bet is... | ||
eric256 | pmichaud: current commit list: unobe, masak, mortiz, particle, s1n, pmichaud, mberends, cspencer, jnthn | ||
Tene | rakudo: class Test {}; my $n = Test; $n.new(); | ||
p6eval | rakudo c76d8d: ( no output ) | 21:06 | |
[particle]- | std: class Test {}; $nn = "Test"; {$nn}.new; | ||
p6eval | std 26545: OUTPUT«Potential difficulties: Variable $nn is not predeclared at /tmp/qfKBNgPHdt line 1:------> class Test {}; $nn = "Test"; {$nn}.new; Variable $nn is not predeclared at /tmp/qfKBNgPHdt line 1:------> class Test {}; $nn = "Test"; {$nn}.new;ok 00:04 | ||
..3... | |||
Tene | [particle]-: 'my' | ||
[particle]- | std: class Test {}; my $nn = "Test"; {$nn}.new; | ||
p6eval | std 26545: OUTPUT«ok 00:04 36m» | ||
21:06
charsbar joined
|
|||
pmichaud | @message moritz my analysis of the xml parsing problem: nopaste.snit.ch/16427 | 21:06 | |
lambdabot | Maybe you meant: messages messages? | ||
[particle]- | 'my' mistake :) | ||
pmichaud | @tell moritz my analysis of the xml parsing problem: nopaste.snit.ch/16427 | ||
lambdabot | Consider it noted. | ||
jnthn | rakudo: class Test { }; eval('Test').new.WHAT.say; | ||
p6eval | rakudo c76d8d: OUTPUT«Test()» | ||
keta | BTW: The two second forms return an object of type 'Test' | 21:07 | |
jnthn | keta: That way works. | ||
pmichaud | eventually it should be ::('Test') or ::($nn) | ||
keta | That is what made me believe that this is the way to go | ||
pmichaud | i.e., when we do namespace interpolation. | ||
afk, have to run errands | |||
keta | jnth: The eval {} one you mean? | 21:08 | |
eval (), sorry | |||
eric256 | there forked perl6/perl6-examples on eric256/perl6-examples .... i think thats the right thing to do | ||
21:09
charsbar_ left
|
|||
[particle]- | duh! i totally blanked on ::() | 21:09 | |
jnthn | keta: Yes, the eval one will work for now. | 21:10 | |
keta: There will be a neater way in the long run (the syntax pmichaud showed) | |||
Tene: See nopaste | |||
nopaste.snit.ch/16428 | 21:11 | ||
Tene: oh, hang on a moment... | 21:12 | ||
keta | jnthn: okay, it does work. thank you! | ||
jnthn | Tene: Once I put a :main on the main there that much works... | ||
PerlJam | rakudo: class Foo { }; my $x = "Foo"; my $y = $x.new; $y.WHAT.say; | 21:14 | |
p6eval | rakudo c76d8d: OUTPUT«Foo()» | ||
PerlJam | So, is that a bug then? | ||
pmichaud | it sure looks like one to me. | 21:15 | |
[particle]- | yes. | ||
pmichaud | I would've expected Str | ||
[particle]- | Str() | ||
WHAT adds parens, dunnit? | |||
rakudo: Int.WHAT.say | |||
p6eval | rakudo c76d8d: OUTPUT«Int()» | ||
[particle]- | ja. | ||
pmichaud | current commit list for perl6-examples in perl6: masak moritz particle eric256 pmichaud mberends jnthn unobe s1n cspencer | 21:16 | |
I bet that when .new tries to get the class of $x, it's doing a class lookup (because of the way Parrot's various get_class operations work) | |||
it's more of that evil "classnames aren't strings" problem. | 21:17 | ||
jnthn | ewww.! | ||
pmichaud | we're going to be paying for that for some time, I fear. | ||
there are just too many parts of parrot that think that strings identify classnames and vice versa | 21:18 | ||
okay, gotta run to store. back later. | |||
[particle]- | buy something, or the terrorists win! | 21:19 | |
jnthn | Tene: It's certainly some stuff in .include 'src/gen_builtins.pir' that is causing it. | 21:21 | |
Tene: Narrower - it's something in src\classes\Hash.pir | 21:24 | ||
Tene: And closer yet - changing in Hash.pir the line: | 21:26 | ||
hashproto = p6meta.'new_class'('Perl6Hash', 'parent'=>'Mapping', 'name'=>'Hash') | |||
to | |||
hashproto = p6meta.'new_class'('Perl6Hash', 'parent'=>'Mapping') | 21:27 | ||
Avoids the explosion too. | |||
Tene | Interesting. | ||
jnthn | So, curious now to look at what happens in new_class with the name parameter... | ||
Tene: We end up doing a set_root_global ns, $S0, protoobject | 21:30 | ||
(The relevant code is in P6object.pir, in .sub 'register' :method | 21:31 | ||
Tene: My guess (may be wrong) is that we store the proto-object in the wrong place, or something looks it up in the wrong place. | 21:32 | ||
And then it calls Hash.new explecting to call it on the proto-object | 21:33 | ||
But instead calls it on Parrot's Hash PMC | |||
Which then goes bananas. | |||
Tene: Or vice versa. | 21:35 | ||
Tene | interesting | ||
could be | |||
jnthn | I did a --trace=1 | ||
The line we crash on: | |||
new P0, "Hash" | |||
erm, the instruction, not line... | |||
Tene | ouch | ||
jnthn | Tene: If we want to create a Parrot-level Hash, what's the correct incantation? | 21:36 | |
(Under .HLL 'Perl6') | |||
Tene | I have no idea whatsoever. Seriously. There are so many different ways to instantiate a class I can't remember them. | 21:37 | |
by strings, by namespaces, by classes, getting classes from strings, getting classes from namespaces, etc. | |||
21:37
iblechbot left
21:40
kane__ joined
|
|||
[particle]- | $P0 = new ['parrot';'Hash'] | 21:42 | |
jnthn | [particle]-: been there, tried that | ||
21:42
keta left
|
|||
[particle]- | nyi i suppose | 21:42 | |
jnthn | Tene: OK, the long and the short of it is... | 21:43 | |
Whenever we want to use a Parrot class from 'Perl6' | |||
we gotta explicitly state it's coming from parrot | |||
21:43
skids_ left
|
|||
jnthn | (Note: maybe only if it's something we associated with another name ourself though) | 21:43 | |
[particle]- | $P0 = get_root_namespace ; $P0 = $P0.'find_type' 'Hash' ; $P0 = new $P0 ?? | 21:44 | |
er, forgot parens | |||
i need to build a parrot here... | |||
21:45
wknight8111 joined
|
|||
Tene | jnthn: looks like it might be $P0 = get_root_namespace ['parrot';'Hash']; $P1 = get_class $P0; $P2 = new $P1 | 21:45 | |
oslt | |||
jnthn | Tene: I found a way that worked, I've been patching it up all over. :-) | 21:46 | |
Tene | what is it? | ||
jnthn | Tene: I've got us to an error rather than a segv now | ||
can I push? | |||
Tene | Yes, please. | ||
jnthn | Tene: Hmm. I did a git commit .. then a git push origin master and got | 21:47 | |
git push origin master | |||
erm | |||
[particle]- | jnthn: macro? | ||
jnthn | Everything up-to-date | 21:48 | |
Tene | jnthn: git push origin hll | ||
jnthn | error: src refspec hll does not match any. | ||
fatal: The remote end hung up unexpectedly | |||
error: failed to push some refs to [email@hidden.address] | |||
(that was for git push origin hll) | 21:49 | ||
Tene | huh | ||
arnsholt | Quick poll: should it be Grammar::SQL, or SQL::Grammar? | ||
Tene | try: git push origin hll:hll | 21:51 | |
mberends | SQL::Grammar # the Grammar word is so overloaded | ||
jnthn | same | ||
Tene: I did git branch -a and I see | |||
* (no branch) | |||
As the current branch. | |||
Tene | git checkout -b hll | 21:52 | |
jnthn | ah, that helped | ||
then did git push origin hll | |||
Tene | ah | ||
PerlJam | arnsholt: I always (granted I haven't done it much), use Thingy::Grammar | ||
jnthn | See if you can pull the patches now | ||
It pushed *something* | |||
Tene | yes, got it | 21:53 | |
jnthn | Tene: OK. Next failure is here: | 21:54 | |
proto = p6meta.'new_class'('Multi', 'parent'=>'Perl6MultiSub Code Any') | |||
Or in fact anywhere that we list something in parent where the class lies in the Parrot ns | |||
Tene | parrot;Perl6MultiSub | ||
jnthn | OK, but that is a Perl6 PMC. | ||
(dynpmc) | 21:55 | ||
Or do those go into the Parrot HLL anyway? | |||
Tene | yes, but there's no way to put PMcs in the HLL namespace | ||
21:56
kane_ left
|
|||
jnthn | OK, that helped | 21:56 | |
Now we get stuck here | |||
matchproto = p6meta.'new_class'('Match', 'parent'=>'PGE::Grammar Any') | |||
Tene | yeah, 'sec | 21:57 | |
issue with exports... my screwup | |||
jnthn | Ah, OK. | ||
jnthn is glad we're getting somewhere. | |||
21:58
eric256 left
|
|||
Tene | jnpull | 21:59 | |
jnthn: pull | 22:00 | ||
ah, need to export PAST too | |||
jnthn | Tene: Hm, it's whining about not knowing what branch to merge into now? | ||
Tene | eh? | ||
try: git fetch; git rebase origin/hll | 22:01 | ||
jnthn | Tene: Yup, gets us further now. | 22:02 | |
Tene: Guess you're sorting out exporting PAST too? | |||
Tene | yes | ||
jnthn | ok | ||
Tene | pushed | ||
and another segfault! | 22:03 | ||
jnthn | oh joy | ||
Tene | 24275 new P1, PC3005 P1=Object(PAST;Var)=PMC(0x1ca98a0) PC3005=Key=PMC(0x1d70e10) | ||
22:04
cspencer joined
|
|||
jnthn | I guess what's interesting is what's in that key... | 22:04 | |
22:05
pmurias left
|
|||
cspencer | rakudo: class Foo { our List of Pair multi method bar() { } } | 22:05 | |
p6eval | rakudo c76d8d: OUTPUT«Use of protoobject as value» | 22:06 | |
arnsholt | Does anyone know if it's possible to convert an OpenSSH RSA key to DSA? Looks like github doesn't like RSA | ||
jnthn | cspencer: List ain't a parametric role just yet. | ||
cspencer | jnthn: that'd explain it :) | ||
jnthn | A nicer error could be good. | ||
22:07
km2 left
|
|||
jnthn | Positional of Pair would work by the way | 22:07 | |
cspencer | in the definition for "classify" it says: (:@even, :@odd) := classify { ... } - how do things get sorted into the @evn and @odd arrays? | 22:08 | |
(sorted is probably the wrong word) | |||
Tene | jnthn: should %?CLASSMAP be a parrot hash or a perl 6 hash? | 22:10 | |
jnthn: the segfault is a new ['Hash'] on perl6.pir :120 | |||
but it's a var exposed to perl 6, so should be get_hll_global 'Hash', yes? | |||
jnthn | parrot one probably | ||
Tene | oh? 'kay. | 22:11 | |
jnthn | or could be either I guess | ||
yeah, by that point I think it could safely be either. | |||
TimToady | [particle]-: no, it dun't. stringification adds the parens, not .WHAT | ||
Tene | ah, it's for the compiler | ||
jnthn | Yes, it is. | ||
Tene commits | |||
jnthn | But we'd get away with either. | ||
I had figured out we didn't survive the onload | |||
in main.pir | |||
looiks like you just nailed why. | |||
Tene | pushed | ||
now another error | 22:12 | ||
PerlJam | cspencer: what do you mean ? | ||
jnthn | Tene: s/hll/root/ | ||
$P0 = get_root_global ['parrot'], 'Hash' | 22:13 | ||
or | |||
Tene | pushed | ||
thanks | |||
jnthn | Great | ||
Now we actually make it into parse | |||
PerlJam | cspencer: classify builds a list of pairs, where the keys are determined by the code and the values are values from the list | ||
Tene | I know the problem here. | ||
cspencer | PerlJam: right, i got that part | ||
jnthn | In fact, ..\..\parrot perl6.pir now gets us to a prompt. :-) | 22:14 | |
[particle]- | timtoady: aha! thanks for the clarification | ||
cspencer | PerlJam: in the example though, the odd numbers and even numbers get separated out into two arrays after being returned from classify | ||
PerlJam: (the @odd and @even arrays) and I'm wondering how that bit of magic happens | |||
22:14
bacek joined
|
|||
jnthn | cspencer: Looks like it may be named parameter binding. | 22:14 | |
PerlJam | cspencer: .... :@even is the same thing as :even(@even) | 22:15 | |
jnthn | We don't do taht yet in Rakudo. | ||
cspencer | jnthn: so it's not classify that's doing that | ||
jnthn | (for return values) | ||
PerlJam | cspencer: oh, no. there's nothing special about classify in this regard. | ||
jnthn | cspencer: classify will do something like building a hash { odd => [ ... ], even => [ ... ] } I expect | ||
And then return it as something like return |%the_hash | |||
Tene: OK, let me know what you want me to pull again and look at anything more. :-) | 22:16 | ||
22:16
eMaX_ joined
|
|||
cspencer | thanks for the clarification :) | 22:16 | |
eMaX_ | re | ||
Tene | got to another segfault! | ||
jnthn | ;-) | 22:17 | |
Surprise! ;-) | |||
Tene: pushed? | |||
Tene | no, 'sec | ||
jnthn | kk | ||
22:17
nihiliad left
22:18
nihiliad joined
|
|||
Tene | pushed | 22:18 | |
PerlJam | jnthn: wait ... rakudo does named parameters in signatures, doesn't it? Wouldn't that be the same code for (:@even, :@odd) := ... ? | ||
mberends | TimToady: re underscore is alpha per irclog.perlgeek.de/perl6/2009-04-27#i_1097419, would it not be more Posix compatible to have <alpha> without _ and <word> with _, as here: en.wikipedia.org/wiki/Regular_expre...er_classes | 22:20 | |
TimToady | POSIX is so 20th century... | ||
mberends | oh :) | 22:21 | |
TimToady | I pay about >< this much attention to POSIX anymore | ||
mberends | lol | ||
22:21
LylePerl left
|
|||
jnthn | PerlJam: The problem is probably not there. | 22:22 | |
PerlJam: The problem is more that return with more than a single value doesn't work just yet. | |||
22:22
LylePerl joined,
nihiliad left
|
|||
PerlJam | jnthn: oh. | 22:22 | |
jnthn | Tene: pulling | ||
22:23
Jedai left
|
|||
jnthn | std: my (:@foo, :@odd) = foo(); | 22:23 | |
p6eval | std 26545: OUTPUT«Undeclared routine: foo used at 1 ok 00:02 36m» | ||
jnthn | std: :(:@foo, :@odd) = foo(); | ||
p6eval | std 26545: OUTPUT«Undeclared routine: foo used at 1 ok 00:02 36m» | ||
jnthn | Tene: IIRC the second of those may not do what you want. | ||
erm | 22:24 | ||
TimToady | yes, it doesn't actually declare any variables | ||
jnthn | PerlJam: ^^ | ||
TimToady: Well, more than that, it doesn't actually update any existing declared variables either. | |||
TimToady | that too | ||
Tene | jnthn: oh? | ||
jnthn | Tene: pulled but still see failure in parse? | ||
Tene | jnthn: yes | 22:25 | |
I get a segfault now | |||
jnthn | Tene: sorry, the messages was for PerlJam | ||
Tene | ah | ||
Right, I see now | |||
22:26
hercynium joined
|
|||
PerlJam | TimToady: is :@foo a syntactic feature? Or could :(my @foo) be used to declare and assign? | 22:26 | |
jnthn | Tene: Yup, see the segv | ||
TimToady | my makes no sense inside a signature | 22:27 | |
std: :(my @foo) | |||
p6eval | std 26545: OUTPUT«##### PARSE FAILED #####Can't understand next input--giving up at /tmp/FZWCFfzdpH line 1:------> :(my @foo) expecting any of: parameter signature type_constraint typename whitespaceFAILED 00:02 37m» | ||
PerlJam | okay. | 22:28 | |
jnthn | Tene: ..\..\parrot perl6.pir -e "42" is more helpful | ||
Tene: Note that --target=pir works | |||
Tene: So we make it all the way to runtime | |||
TimToady | std: class my {...}; :(my @foo) | ||
p6eval | std 26545: OUTPUT«ok 00:02 38m» | ||
Tene | jnthn: also past | 22:29 | |
erm... past is before pir | |||
>< | |||
jnthn | Tene: ish. We segfault as soon as we try say 42 though (even --target=parse fails for say 42) | ||
TimToady | commuting & | 22:30 | |
jnthn | Tene: we crash on a 171690 callmethodcc P11, "list" | 22:33 | |
When parsing say 42 | |||
P11=Object(PAST;op) | |||
erm, Op | |||
Tene: I don't know if this is interesting, but I think the list method is inherited from the Capture PMC | 22:34 | ||
Tene: Line 546 of capture.pmc looks scary | 22:35 | ||
22:36
angelixd joined
|
|||
pmichaud | hello | 22:36 | |
looks like jnthn++ Tene++ are making great progress on .HLL | |||
moritz_ | pmichaud: thanks for your analysis, I think it's spot on. Unfortunately I've failed to reduce it to a simple example with which I could debug .chunks | ||
well, that'll have to wait until tomorrow | |||
pmichaud | moritz_: if I get a bit of time tonight or tomorrow I might be able to look at it | ||
jnthn: (Line 546) I wonder if that's still needed. | 22:37 | ||
I'm guessing "yes". | |||
jnthn | Tene: Actually, I just set a breakpoint in the list method | ||
And we don't make it into there. | |||
pmichaud: Is list in Capture PMC the one that is inherited by a PAST::Op? | 22:38 | ||
pmichaud | iirc, yes. | ||
jnthn | I'm wondering if we're hitting some oddness in calling PMC methods in a foreign HLL. | ||
pmichaud | seems like a lot of things would fail if that's the case | 22:39 | |
I would think we'd see failure much earlier. | |||
jnthn | Well, we fail at parsing say 42, so that counts. ;-) | ||
pmichaud | I would think we'd never even be able to build a perl6.pbc | ||
jnthn | We can't. | ||
This is with the stage 1. | |||
pmichaud | a _s1.pbc, then? | ||
I think even that would fail. | 22:40 | ||
jnthn | Hmm. | ||
pmichaud | oh, perhaps not. | ||
jnthn | All we've done up to that point is set up various built-in classes. | ||
pmichaud | right, and compiling the grammar is still being done in the 'parrot' HLL | ||
so... hm. | |||
jnthn | my crappy debugger doesn't give me many hints where we stack overflow on. | 22:41 | |
But a --trace=1 shows it's on a callmethod with list | |||
And on a PAST::Op instance. | |||
pmichaud | I should check out a copy of what you guys are working on | ||
how do I get to the branch you're on (in git)? | |||
moritz_ | git checkout -b hll origin/hll | 22:42 | |
(probably) | |||
if that's the branch they're working on | |||
jnthn | yes, that one | ||
pmichaud | that branch is still tied to parrot r38250, yes? | 22:43 | |
moritz_ | (and 'git checkout master' to get back) | ||
pmichaud | I just cloned a new repo for this :-) | ||
easier to be doing several things at once | |||
22:45
ZuLuuuuuu left
|
|||
jnthn | hmm | 22:45 | |
I think it maybe isn't so simple | 22:46 | ||
pmichaud | wait a second | ||
I think the problem _cannot_ be in the 'list' method of Capture | |||
22:46
mberends left
|
|||
jnthn | nopaste.snit.ch/16430 | 22:46 | |
pmichaud | at least, that can't be the core of the problem. | ||
jnthn | pmichaud: I suspect too now. | ||
pmichaud | If that's the problem, then none of the languages in other HLLs would work. | 22:47 | |
jnthn | Because if it was just that, I'd expect us not to print "alive" | ||
Tene back from phone call | |||
pmichaud | because all HLLs using PCT ultimately have to call 'list' on Capture PMCs (and presumably do so from within their HLL space) | ||
jnthn | Aye | ||
pmichaud | well, perhaps it's possible that none of those HLLs are doing that at runtime, though. | 22:48 | |
oh wait, of course they are. | |||
Otherwise they couldn't compile anything. | |||
jnthn | rakudo: say Capture | ||
p6eval | rakudo c76d8d: OUTPUT«Capture()» | ||
pmichaud | unless their actions.pm equivalent is running in 'parrot', which I suspect is not the case. | ||
22:49
dextius joined
|
|||
dextius | anyone here use parrot/perl6 on a mac? | 22:50 | |
pmichaud | okay, when I try to build the hll branch, I end up at the gen_setting.pm step and it starts consuming all my memory | 22:52 | |
I suspect if I wait long enough it'll segfault :-) | |||
dextius: I'm not on a mac, sorry. | |||
jnthn | pmichaud: There's certainly something odd going on because if I remove .include 'src\classes\Capture.pir' in gen_builtins.pir we fail in a different place. | 22:53 | |
dextius | no problem.. did an update and am having trouble compiling it.. (parrot builds fine) | ||
moritz_ | dextius: masak does, but he's not online right now | ||
dextius | that's cool.. I'll come back later.. thanks! | ||
moritz_ | dextius: after rebuilding parrot you have to do a 'make clean' in rakudo#s dir | ||
s/#/'/ | |||
dextius | yeah, tried that.. | ||
pmichaud | jnthn: fail in a different place is often normal with segfaults (more) | 22:54 | |
jnthn | (We then fail in doing a P2, "Iterator", P0 in HLLCompiler when handling the --target=parse) | ||
pmichaud | jnthn: I've also noticed that -t1 is not a reliable indicator of where things fail. | ||
jnthn | That's true, but it's been serving fairly well so far tonight in showing up what is wrong. | ||
moritz_ | dextius: can you please nopaste the error message? | 22:55 | |
dextius | sure, one sec.. | ||
jnthn | Anyway from what I can see this boils down to us confusing our Captures. | ||
dextius | perl -e "" > src/gen_setting.pir | ||
src/string/api.c:762: failed assertion 'encoding' | |||
jnthn | Or one problem does anyways.. | ||
pmichaud | jnthn: I don't quite follow that. | 22:56 | |
jnthn | pmichaud: re-read | ||
(about removing Capture.pir) | |||
Or is it still not clear? | |||
pmichaud | it's still not clear, sorry. | ||
jnthn | Ah, OK. I'll try and explain better. | 22:57 | |
If I remove Capture.pir being .include'd from gen_builtins.pir then we do not fail at calling .list | |||
We've been fixing a lot of issues where we'd do something like new 'Hash' and it would look at the Rakudo Hash rather than the Parrot Hash PMC, which is what those cases needed. | 22:58 | ||
pmichaud | but I can't think of any instances where we ever do new 'Capture' | ||
jnthn | I'm suspecting that our Capture namespace entry is obscuring our lookup of the Capture PMC that we are inheriting from. | ||
We don't; I'm fearing that the Object PMC gets it wrong. | 22:59 | ||
pmichaud | Parrot's Object PMC ? | ||
jnthn | Yes. When it creates the proxy object. | ||
pmichaud | Oh. I think that's highly likely. | ||
Tene | btw, if I remove all of the .HLLs from the hll branch, everything succeeds. This is not particularly relevant, but still good. | ||
pmichaud | I think I even filed some tickets on this issue, or at least some messages to parrot-dev | ||
bundled in with my complains about Parrot's object system using strings for classnames instead of something more unique. | 23:00 | ||
*complaints | |||
23:00
dextius left
|
|||
jnthn | Actually VTABLE_instantiate in class.pmc | 23:00 | |
is what I meant | 23:01 | ||
not object.pmc itself | |||
hmm | 23:02 | ||
doesn't look so obviously wrong as I first expected | |||
pmichaud | here's what bugs me (more) | ||
both Parrot_oo_get_class and Parrot_oo_get_class_str want to do all of their lookups based on the interpreter's current hll | |||
including proxies. | 23:03 | ||
jnthn | oh, hang on | ||
What HLL would we be in when PAST::Op adds Capture as a parent? | 23:04 | ||
pmichaud | parrot | ||
jnthn | OK. | ||
pmichaud | because that's done in PCT.pbc | ||
(at least that's where I think it should be done) | |||
and all of the subs in PCT.pbc are in the 'parrot' hll namespace | |||
jnthn | OK | 23:06 | |
jnthn stares at object.pmc's find_method | |||
some bits of Parrot don't look like I used to know 'em... :-S | |||
pmichaud | oh! | ||
here's a problem. | |||
at least, I think it's a likely problem. | 23:07 | ||
see if you can follow my logic here | |||
when I call PAST::Op.list from actions.pm, I'm in the perl6 hll | |||
yes? | |||
jnthn | I'd imagine so. | ||
23:08
nbrown joined
|
|||
pmichaud | since PAST::Op ultimately inherits its list method from Capture, we jump straight to Parrot_Capture_nci_list | 23:08 | |
(well, not "straight", but there aren't any intermediate things that might be changing our interpreter's idea of the current HLL) | |||
so it then tries to run Capture.list in the perl6 HLL namespace | |||
but we ultimately get to | 23:09 | ||
if (PObj_is_object_TEST(pmc)) { | |||
STRING *classname = CONST_STRING(interp, "Capture"); | |||
PMC *classobj = Parrot_oo_get_class_str(interp, classname); | |||
23:09
km2 joined
|
|||
pmichaud | and Parrot_oo_get_class_str tries to get the class/proxy based on the interp's current HLL | 23:09 | |
which happens to be 'perl6' instead of 'parrot' at this point, because nothing has changed it. | |||
jnthn | That would seem to be a good explanation apart from, why does nopaste.snit.ch/paste work? | ||
pmichaud | which nopaste? | 23:10 | |
jnthn | heh, fail | ||
nopaste.snit.ch/16430 | |||
pmichaud | let me try it and think for a second | ||
jnthn | $P0 = $P0.'new'(1,2,3) | 23:11 | |
say "instantiated" | |||
$P1 = $P0.'list'() | |||
say $P1 | |||
If you change it to that it becomes more explicit btw | |||
(that it does the right kinda thing) | |||
(rather than just lives) | |||
Other than that, though, it does all make a lot of sense. | |||
Aside from when I set a breakpoint inside list it didn't trigger. | 23:12 | ||
pmichaud | one difference is that rakudo has its own ['Capture'] namespace. | ||
or, more precisely, its own Capture protoobject. | |||
which would occupy a slot in the HLL symbol table. | |||
where Parrot_oo_get_class_str would be attempting to read a namespace. | |||
that doesn't seem to be causing a problem here, though. | 23:14 | ||
jnthn | Aye, tried that here and it didn't recreate it. | ||
pmichaud | it still seems like it has to be something more subtle; otherwise other HLLs would be encountering problems. | 23:15 | |
arnsholt | What's the incantation to call a method in a superclass? | ||
jnthn | Actually | ||
.namespace ['Perl6Capture'] | |||
So it isn't a .namespace ['Capture'] that's doing it. | |||
pmichaud | but there's still a 'Capture' protoobject. | 23:16 | |
moritz_ | arnsholt: I think it sould work with SUPER or with WALK, but I don't think that either is implemented ATM | ||
pmichaud | callnext, I think. | ||
moritz_ | doesn't that just use the next nearest dispatching candidate? | 23:17 | |
pmichaud | sure, which would often be the superclass. | ||
but there can be more than one superclass, so SUPER doesn't cut it. | |||
23:17
payload left
23:18
payload joined
|
|||
pmichaud | (this question came up at NPW hackathon, and istr that TimToady's answer was "callnext") | 23:18 | |
jnthn | pmichaud: I just tried to stick something random into Capture with set_hll_global and that didn't make it fail either. | ||
pmichaud | jnthn: yes, I tried that also. | ||
moritz_ | rakudo: class A { multi method a(Int $x) { 'A' } }; class B { multi method a(Int $x) { say 'A1'; say callnext(3) }; multi method a(Int $x, $y?) { 'A2' } }; B.new().a(4) | ||
p6eval | rakudo c76d8d: OUTPUT«Ambiguous dispatch to multi 'a'. Ambiguous candidates had signatures::(Object() self, Int() $x):(Object() self, Int() $x, Any() $y?)current instr.: 'parrot;P6metaclass;dispatch' pc 472 (src/classes/ClassHOW.pir:103)» | ||
moritz_ | Object self? | 23:19 | |
why not A self or B self? | |||
jnthn | moritz_: It should be that, that's a known not-done-yet thing. | 23:20 | |
moritz_ | jnthn: ok | ||
rakudo: class A { multi method a(Int $x) { 'A' } }; class B { multi method a(Int $x) { say 'A1'; }; multi method a(Int $x, $y?) { 'A2' } }; B.new().a(4) | |||
p6eval | rakudo c76d8d: OUTPUT«Ambiguous dispatch to multi 'a'. Ambiguous candidates had signatures::(Object() self, Int() $x):(Object() self, Int() $x, Any() $y?)current instr.: 'parrot;P6metaclass;dispatch' pc 472 (src/classes/ClassHOW.pir:103)» | 23:21 | |
arnsholt | Right. And the workaround was with WALK? | ||
moritz_ | am I right in assuming that the first method a in B should be tighter? | ||
Tene | I need to go home now... I'll read scrollback later tonight. | 23:23 | |
pmichaud | jnthn: nopaste.snit.ch/16431 # this succeeds also | 23:24 | |
jnthn | moritz_: I'm not sure on that one. I have run across that one before and wondered what an exact arity match means. | ||
moritz_: IIRC, it wasn't clear from the spec...I should check it again though. | |||
pmichaud: Ouch. :-S | 23:25 | ||
pmichaud | jnthn: I think that pretty clearly establishes Capture the same way that perl6.pbc is doing it :-| | ||
jnthn | pmichaud: Does .list return something sensible too, say if you'd called .new(1,2,3) | ||
pmichaud: Also, can you re-produce that removing Capture.pir from gen_builtins.pir makes a difference to where we make it to in the trace? | 23:26 | ||
moritz_ | bed& | ||
pmichaud | pmichaud@orange:~/hll$ parrot/parrot x.pir | ||
Op | |||
instantiated | |||
3 | |||
alive | |||
(where the '3' is the result of printing the result of $P0.'list'() | |||
jnthn | sure | 23:27 | |
pmichaud | jnthn: when I try to build past the stage 1 compiler I never get to a segfault. | ||
I just loop for a very long time and eat up tons of memory. On this box, that could take a while. | |||
jnthn | 32 or 64 bit? | ||
pmichaud | 64 | ||
jnthn | Also | ||
it's a stack overflow rather than a segfault. | |||
pmichaud | okay | 23:28 | |
jnthn | So if you offer much stack space, yes, it may go on for a while. ;-) | ||
pmichaud | my stack will take a long time to overflow :-) | ||
trying w/o Capture.pir | |||
jnthn | patience ;-) | ||
Re-verifying that it really does make a difference here. | |||
pmichaud | Could not find non-existent sub !fixup_routine_type | 23:29 | |
current instr.: '' pc 71 (EVAL_30:32) | |||
(that's with Capture.pir commented out of src/gen_builtins.pir) | |||
jnthn | That means we're making it to runtime. | 23:31 | |
pmichaud | more likely we're making it to BEGIN blocks | ||
not necessarily to runtime. | |||
jnthn | sure | ||
23:31
hercynium left
|
|||
jnthn | I fail elsewhere, but anyways | 23:31 | |
We can both re-produce that this moves the point of failure. | |||
pmichaud | but what happens if I just move Capture.pir earlier...? | 23:32 | |
jnthn | try it | 23:33 | |
pmichaud | trying it now | ||
oh, here's an intresting test. Just a sec. | 23:34 | ||
(I think my build is on its way to stack overflow.) | |||
jnthn | also | 23:36 | |
If I change | |||
captureproto = p6meta.'new_class'('Perl6Capture', 'parent'=>'parrot;Capture Any') | 23:37 | ||
to | |||
erm, that's what I changed it to | |||
Note I removed , 'name'=>'Capture' | |||
That moves the problem jsut the same too. | |||
pmichaud | that still seems to imply a problem with a ns lookup, then. | 23:39 | |
jnthn | Yes. | ||
pmichaud | the 'name'=>'Capture' is what causes the protoobject to be stored as 'Capture' instead of 'Perl6Capture' | 23:40 | |
jnthn | Right. | ||
I still don't understand why nopaste.snit.ch/16431 works though. | |||
pmichaud | my suggestion would be to see how much farther we can get without the Perl6Capture class. | ||
me neither. | |||
jnthn | I even moved the .include lines above the thing just to make sure it's not an ordering issue. It's not. | ||
23:42
skids_ joined
|
|||
pmichaud | omfg | 23:43 | |
you aren't going to like this. | |||
oh, wait | |||
let me do a very clean rebuild before I report it :-) | 23:44 | ||
23:45
exodist left
|
|||
jnthn is curious | 23:45 | ||
pmichaud | okay, starting with clean version of hll branch | ||
no modifications | |||
building from perl6_s1.pbc eats up my memory | 23:46 | ||
but if I repeat the compilation of gen_setting.pm | |||
*with* the -G flag | |||
jnthn | omfg | ||
pmichaud | I get nearly instant segfault. | ||
oh! | 23:47 | ||
but hey! that means I can gdb it! | |||
and I do have some sort of bizarre loop. | 23:48 | ||
backtrace is at least 1759 levels deep. | |||
(any easy way to determine the depth of the backtrace...?) | 23:49 | ||
jnthn | Dunno, don't have much gdb foo | ||
Can you paste me the top of it? | |||
cspencer | is it safe to assume that when classify.t says "classify { $_ * 5 } 1,2,3,4", it intends for a comma to be present between the code block and the remaining args? | ||
pmichaud | nopasting | ||
TimToady | yes | ||
jnthn | cspencer: think so. | ||
looks like a p5ism | 23:50 | ||
cspencer | i'll fix that up in the spec tests then | ||
TimToady | p6 never allows two terms in a row | ||
pmichaud | jnthn: nopaste.snit.ch/16432 | ||
jnthn wrote a C# version of classify, then wrote an article about it, and most of the comments were "omfg what's that lambda expression stuff?" | |||
"Multi-Paradigm C#" is a book that needs writing...and reading. | 23:51 | ||
pmichaud: Ah. That's a familiar backtrace... | |||
pmichaud: Any idea what is at the base of it? | 23:52 | ||
pmichaud | see, I *told* you it was Parrot_oo_get_class_str !!! :-) :-) | ||
jnthn | bt -20 | ||
maybe | |||
;-) | |||
pmichaud: Yes, it's *certainly* doing the wrong thing in there for exactly the reaons you mention. | |||
pmichaud | okay, Parrot_PMCProxy_init_pmc is prominent | 23:53 | |
I bet it's trying to find the Capture proxy | |||
in the wrong hll | |||
jnthn | right | 23:54 | |
23:55
[particle]- left
|
|||
pmichaud | everytime I see " | 23:55 | |
PMC *pproxy = Parrot_oo_get_class_str(interp, cname); | |||
in the parrot source it really makes me want to cry. | |||
23:55
orafu left,
PacoLinux left
|
|||
pmichaud | or go bash a kitten. | 23:55 | |
jnthn | Well, what underlies this I guess is | 23:56 | |
23:56
moritz_ joined,
orafu joined,
PacoLinux joined,
patmat joined,
presh joined,
antiphase joined,
kolibrie joined,
irc.freenode.net sets mode: +o moritz_
|
|||
jnthn | interp->vtables[type_num]->mro | 23:56 | |
Is a list of strings. | |||
wknight8111 | or go csh a kitten | ||
23:56
orafu left
|
|||
pmichaud | some things are too cruel even for kittens. :-) | 23:56 | |
23:57
r0bby joined
|
|||
pmichaud | jnthn: A list of strings. Really. Why am I not surprised? | 23:57 | |
shouldn't it be... umm... a list of pointers to the class objects? | 23:58 | ||
jnthn | Well, back in the day, I guess there wasn't much else for it to be. | ||
23:58
kolibrie left
|
|||
jnthn | Because PMCProxy only started to exist relatively late. | 23:58 | |
23:58
kolibrie joined
|
|||
jnthn | To try and deal with the "there is no class object for a PMC" issue. | 23:58 | |
23:58
orafu joined
|
|||
pmichaud | a proxy has a mro? | 23:58 | |
jnthn | A proxy builds a list of the parents for introspection purposes. | 23:59 | |
wknight8111 | jnthn: maybe adding classes to existing PMCs is a way forward | ||
jnthn | But it has to do it off the mro list in the VTABLE | ||
wknight8111 | i.e. replace all PMCProxys with proper classes | ||
pmichaud | shouldn't that list be a list of other proxy pmcs? | ||
as opposed to names? |