»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
huf | i think glob is far too complicated for anything but the _most_ basic literal arguments :) | 00:00 | |
diakopter | lue: no, the { have to be characters in the resulting string after the compiler does any interpolation | ||
huf | of the shape glob "foo/*" or glob "{a,b}c" | ||
lue | Oh! because P5 has ${a} instead of {$a}, right? | 00:01 | |
diakopter | right | ||
huf: I was answering as if the p6 glob, I guess :P | |||
huf | yes, i guessed | ||
i was saying as if p6's glob would be similar to shell's or perl5's. | 00:02 | ||
i dont know if that's true | |||
lue | I feel like taking a couple of minutes to write up a glob spec in S32::IO, at least a start. | ||
00:03
salv0 joined
|
|||
diakopter | lue: well, glob has its own low-level type in p5 | 00:03 | |
diakopter waits for someone to castigate me for calling SV variants "types" | 00:04 | ||
00:04
avuserow left
|
|||
huf | is that the same glob? | 00:04 | |
isnt that the other glob? | |||
glob() or certain kinds of <> VS ref \*FOO | 00:05 | ||
lue | diakopter: I'll not worry about that yet, and say it either returns a Str or array of Str, or always an array. | 00:06 | |
lue leans towards always array of Str | |||
00:06
davec` left
|
|||
diakopter | lue: okay, but how would the compiler know to use it as a glob | 00:06 | |
00:07
davec` joined,
salv0 left
|
|||
lue | glob("stuff") -> array of filenames that you use. glob("stuff")».slurp and stuff. I don't see where a Glob object becomes necessary, so perhaps my "don't trust myself" from earlier should be heeded :) ? | 00:08 | |
diakopter | I thought the glob did a search everytime it's read..? | ||
er, iterated | 00:09 | ||
00:09
tobyink left
|
|||
lue | I see &glob as "expand into a series of filenames". Essentially, just like `ls` | 00:09 | |
[ At least based on my first glance at it just now :) ] | 00:10 | ||
huf | it also expands {}{} even if no such files exist, i think | 00:11 | |
but not for the other patterns, * and [] and such | |||
because hate, i suppose :) | 00:12 | ||
(well, sh) | |||
geekosaur | because csh did {} expansion separately from filename generation | 00:13 | |
technically so does bash; I think it was perl that first mashed them together | |||
huf | ah, {} is not an sh feature? | ||
geekosaur | not sure if brace expansion is currently posix or not | 00:14 | |
huf | it came later (into the sh strain) with ksh? or bash? | ||
lue | Specifically, the "you get a static list from ls, and if you want an updated list, run ls again." part. That's how I'm writing this initial stab anyway. (FWIW, I see no "glob" object in File::Glob or glob perldocs) | ||
geekosaur | posix brought in a bunch of ksh and then jettisoned it again | ||
huf | geekosaur: ah! | ||
dash does not do {} expansion | |||
00:14
dmol left
|
|||
huf | and dash is i think more posix than bash | 00:14 | |
geekosaur | yes, ksh originally added it | ||
lue | geekosaur: $ ls S0{2,3,5}* | ||
S02-bits.pod S03-operators.pod S05-regex.pod | |||
(I believe I'm using bash, unless I'm severely mistaken) | |||
huf | lue: echo a{b,c}; echo a* | 00:15 | |
geekosaur | right, first it brace-expands to S02* S03* S05* and then it does filename generation on that | ||
there's a detailed explanation in the bash docs | |||
00:15
Psyche^ left
|
|||
geekosaur | and the ksh docs for that matter | 00:15 | |
lue | huf: I get "ab ac\na*" in STDOUT | ||
huf | oh, yours doesnt abort if the thing didnt match. | 00:16 | |
well anyway. | |||
geekosaur | I don't recall if bash complains or not if one of the brace expansions produces no results; ancient csh used to | 00:17 | |
(actually I think bash might have a shell option hidden away somewhere for that) | |||
lue | $ ls S0{2,3,5,foo}* | ||
ls: cannot access S0foo*: No such file or directory | |||
S02-bits.pod S03-operators.pod S05-regex.pod | |||
geekosaur: ^^^ ls complains, but not fatally | |||
geekosaur | there you go then. separate step | ||
00:18
Psyche^ joined
|
|||
geekosaur | lue, not the test I'm looking for; I mean is bash is set to error on no match | 00:18 | |
*if bash... | |||
if it just passes it through, you would get that behavior | |||
huf | forget ls, use echo | ||
filename expansion still happens the same way | |||
lue | huf: $ echo S0{2,3,5,foo}* | 00:19 | |
S02-bits.pod S03-operators.pod S05-regex.pod S0foo* | |||
huf | that should be fun to reproduce... | ||
also this is why i hate glob :) | |||
lue | the man page for bash makes [ ] seem unwieldy :| | 00:21 | |
00:22
salv0 joined
|
|||
lue | I wonder if it would be (ok^terrible) to not support [ ] as bash has it on the grounds that we don't regex that way in P6... | 00:22 | |
geekosaur | and then there's the question of whether you want to support various shells' extensions, and if so which | ||
huf | perhaps it should die "it is unclear what people expect glob to do, perhaps try x, y, z" where those three are sensible functions you can describe in a sentence | 00:24 | |
geekosaur | personally, if you're supporting shell glob, you should support all of POSIX shell glob. * ? [x-z] [!x-z] [xyv] | ||
lue | .oO("for advanced capabilities, we recommend re_glob(), which matches files the P6 Regex Way™") |
00:25 | |
geekosaur: I'll look up the POSIX glob stuff, and use that as reference instead of bash :) | |||
geekosaur | if someone wants bash globbing, maybe including brace expansion, there can be a module for it | 00:26 | |
00:27
salv0 left
|
|||
lue | .oO(there are variant adverbs in the P5 File::Glob, so that's not unheard-of.) |
00:28 | |
Mouq | Oh | 00:38 | |
Mouq wasn't paying attention to the irc discussion: gist.github.com/Mouq/7328659 | |||
lue | I wonder if L<man:glob(7)> works in POD like in Pod6 ... | 00:42 | |
Mouq | p: gist.github.com/Mouq/7328659 | 00:59 | |
camelia | rakudo-parrot 215ba6: OUTPUT«//usr/bin» | ||
01:01
jeffreykegler left
01:10
jnap joined,
jnap left
|
|||
dalek | ecs: 955852e | lue++ | S32-setting-library/IO.pod: [S32::IO] Add starting definition of &glob Most likely needs quite a bit of improvement by others; this is just a first stab at things. |
01:29 | |
01:30
ingy^ joined
|
|||
Mouq is somewhat surprised there isn't a Q:glob[] | 01:32 | ||
01:34
ingy^ is now known as ingy^diakopter
|
|||
Mouq | p:glob{} would work (L<S16>) | 01:34 | |
lue | Mouq: hah, that flashed across my mind too, while writing the thing :D | ||
p:glob// would require either a IO::Glob object or similarity to qw// (the latter to replicate my definition of &glob) | 01:36 | ||
01:40
pdurbin joined
|
|||
Mouq is worried about the quantum superposition ingy&diakopter seem to have gotten themselves into | 01:42 | ||
TimToady | it's an XOR, so it's probably fine | 01:44 | |
01:45
ingy^diakopter left
|
|||
TimToady | .oO(I'm not sure if Heisenberg was here, but if he was I'm sure Pauli wasn't with him...) |
01:46 | |
01:51
ingy^ joined
|
|||
dalek | ecs: c148eb9 | Mouq++ | S32-setting-library/Callable.pod: Further update S32::Callable |
02:00 | |
ecs: 27d04b5 | Mouq++ | S32-setting-library/Rules.pod: Restore `{...}`s elided in c0115ab |
|||
02:05
benabik joined
|
|||
ingy | Mouq: s/&/^/ | 02:06 | |
Mouq: wanna ride? | 02:07 | ||
Mouq is uncertain | 02:08 | ||
ingy | you'll need to be braver | 02:09 | |
Mouq 's braveness could be measured, but then you wouldn't be able to measure his charisma as accurately | 02:11 | ||
02:12
ingy^ left
|
|||
ingy | I need to know whether to fire this thing up | 02:12 | |
engines take 3-4 minutes to warm up | |||
brainfuck-js huh? | 02:13 | ||
Mouq | Micro-verse fuel, I presume? What's the mileage | ||
ingy | sounds fun | ||
Mouq doesn't remember why he forked that | |||
ingy | you got 10 mins? | ||
Mouq | yes | 02:14 | |
ingy | ok, tuning it over | ||
brb | |||
tiny hiccup but recover nicely | 02:16 | ||
Mouq: /join #pairup | 02:17 | ||
02:18
ingy^ joined
02:19
ingy^ is now known as ingy^Mouq
02:21
jnap joined
02:22
Shellcat left
02:31
ingy^Mouq is now known as ingy^
02:34
ingy^ left
02:44
wbill joined
02:54
jnap left
02:57
rurban joined
03:28
raiph left
03:33
raiph joined
03:40
davec` left
|
|||
lue | Question: do I need to do self.bless(*, :$param, ...) still or is that * unnecessary? | 04:01 | |
04:05
toebu joined
|
|||
Mouq | The * is actually deprecated now AFAIK | 04:07 | |
r: class Bla { method new { self.bless(*, |%_) } } | |||
ugh jvm | |||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
( no output ) | |||
Mouq | p: class Bla { method new { self.bless(*, |%_) } }; Bla.new | 04:08 | |
camelia | rakudo-parrot 215ba6: OUTPUT«Passing an object candidate to Mu.bless is deprecated in method bless at gen/parrot/CORE.setting:809» | ||
lue wonders if there will still be a way for anybody who ever didn't use the * | 04:13 | ||
04:14
toebu left
04:15
baest_ joined
|
|||
Mouq | std: my :($foo = 123); # STD & Rakudo & Niecza ^ Spec bug S03:5003 | 04:15 | |
synopsebot | Link: perlcabal.org/syn/S03.html#line_5003 | ||
camelia | std 8adbc60: OUTPUT«===SORRY!===Malformed my at /tmp/uzhO79h22t line 1:------> my ⏏:($foo = 123); # STD & Rakudo & Niecza ^ expecting any of: name scoped declaratorParse failedFAILED 00:01 120m» | ||
04:15
kst` joined
04:16
PZt left,
[Sno]_ joined,
PZt joined,
sizz_ joined
04:19
gabriel joined,
Gothmog__ joined
|
|||
Mouq | std: sub foo :($a,$b) { "Odd, since this is fine $a$b (in STD)"} | 04:20 | |
camelia | std 8adbc60: OUTPUT«ok 00:01 127m» | ||
Mouq | p: sub foo :($a,$b) { "Odd, since this is fine $a$b (in STD)"} | ||
camelia | rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/IRIc9tDUX8Variable '$a' is not declaredat /tmp/IRIc9tDUX8:1------> o :($a,$b) { "Odd, since this is fine $a⏏$b (in STD)"} expecting any of: postfix» | ||
Mouq | n: sub foo :($a,$b) { "Odd, since this is fine $a$b (Rakudobug)"}; say foo(1,2) | 04:21 | |
camelia | niecza v24-98-g473bd20: OUTPUT«Odd, since this is fine 12 (Rakudobug)» | ||
04:22
Colby` joined,
crazed- joined
04:23
djanatyn left,
[Sno] left,
sizz left,
baest left,
odoacre left,
crazedpsyc left,
revdiablo left,
Colby` is now known as Pleiades`,
[Sno]_ is now known as [Sno],
Gothmog__ is now known as Gothmog_
04:24
crazed- is now known as crazedpsyc,
revdiablo joined
04:25
diakopter joined
04:26
preflex_ joined,
ChanServ sets mode: +v preflex_
04:28
preflex left,
preflex_ is now known as preflex
04:29
odoacre joined
04:30
djanatyn joined
04:31
toebu joined
04:35
Mouq left
04:36
Mouq joined
04:39
crab2313 joined
04:41
xenoterracide left
04:44
kaleem joined
04:51
xenoterracide joined
04:53
btyler left
04:59
johnny5_ left
05:00
johnny5_ joined
05:03
cognominal left
05:10
SamuraiJack joined
05:24
[Sno] left
05:25
btyler joined
|
|||
lue | p: say "*a*" ~~ /\* ~ \* <( a )>/ | 05:36 | |
camelia | rakudo-parrot 215ba6: OUTPUT«Unable to parse expression in ; couldn't find final \*  in any FAILGOAL at gen/parrot/stage2/QRegex.nqp:1094 in regex at /tmp/TpnBUayg__:1 in method ACCEPTS at gen/parrot/CORE.setting:12294 in method ACCEPTS at gen/parrot/CORE.setting:75…» | ||
lue | p: say "*a*" ~~ /\* ~ \* [<( a )>]/ | ||
camelia | rakudo-parrot 215ba6: OUTPUT«「a」» | ||
lue | I almost want to say <( )> shouldn't need surrounding [ ] in that case. Almost. | 05:37 | |
05:41
colomon left
|
|||
lue | p: say "*a*" ~~ /\* ~ \* <( [a] )>/ # this is where I start crying foul on the interaction between ~ and <()> | 05:41 | |
camelia | rakudo-parrot 215ba6: OUTPUT«Unable to parse expression in ; couldn't find final \*  in any FAILGOAL at gen/parrot/stage2/QRegex.nqp:1094 in regex at /tmp/SqlVqdYnwK:1 in method ACCEPTS at gen/parrot/CORE.setting:12294 in method ACCEPTS at gen/parrot/CORE.setting:75…» | ||
05:41
colomon joined
|
|||
TimToady | <( and )> have nothing to do with each other | 05:42 | |
you can use one without the other | |||
lue | oh? | ||
makes sense though :) | 05:43 | ||
TimToady | p: say "*a*" ~~ /\* ~ \* [<( a ] | ||
camelia | rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/zvI8lQrRPHRegex not terminatedat /tmp/zvI8lQrRPH:1------> say "*a*" ~~ /\* ~ \* [<( a ]⏏<EOL> expecting any of: postfix infix stopper …» | ||
TimToady | p: say "*a*" ~~ /\* ~ \* [<( a ] / | ||
camelia | rakudo-parrot 215ba6: OUTPUT«「a*」» | ||
TimToady | p: say "*a*" ~~ /\* ~ \* [a )> ] / | ||
camelia | rakudo-parrot 215ba6: OUTPUT«「*a」» | ||
TimToady | see | ||
lue | yep. | ||
But then I think it would be less of a WAT if <( didn't screw up ~ | 05:44 | ||
p: say "*a*" ~~ /\* ~ \* <( a/ | |||
camelia | rakudo-parrot 215ba6: OUTPUT«Unable to parse expression in ; couldn't find final \*  in any FAILGOAL at gen/parrot/stage2/QRegex.nqp:1094 in regex at /tmp/bFv0oOqVju:1 in method ACCEPTS at gen/parrot/CORE.setting:12294 in method ACCEPTS at gen/parrot/CORE.setting:75…» | ||
lue | p: say "*a*" ~~ /\* ~ \* a )>/ | ||
camelia | rakudo-parrot 215ba6: OUTPUT«「*a*」» | ||
TimToady | n: say "*a*" ~~ /\* ~ \* <( a )>/ | ||
camelia | niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to parse anonymous regexCouldn't find final '*'; gave up at /home/p6eval/niecza/lib/CORE.setting line 1536 (die @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 2950 (Cursor.FAILGOAL @ 6)  at /tmp/rvyj_pfqlZ…» | ||
TimToady | that is rather odd | 05:46 | |
lue | I'd like to know what ~ thinks <( could match there | 05:47 | |
S05: "A <( token indicates the start of the match's overall capture, ... When matched, these behave as assertions that are always true," So, the answer to my question is that ~ sees <?> when coming across <( , right? | 05:49 | ||
p: say "**a" ~~ /\* ~ \* <( a/ | 05:50 | ||
camelia | rakudo-parrot 215ba6: OUTPUT«「*a」» | ||
lue | TimToady: So, /technically/ rakudo and parrot are right, but not right by DWIM. | ||
p: say "**a" ~~ /\* ~ \* )> a/ | 05:51 | ||
camelia | rakudo-parrot 215ba6: OUTPUT«「*」» | ||
05:57
rurban left
05:58
rindolf joined
|
|||
lue wonders what benefits <( / )> ~~ <?> brings | 05:59 | ||
06:03
rindolf left
06:07
fridim_ left
|
|||
moritz | lue: fwiw <( and )> are very handy when it comes to substitutions | 06:08 | |
lue | moritz: I'm not saying anything bad about <( )>, just whether or not they should be matching as anything (unless explained otherwise, I say no; should be just like +, *?, [], (), etc.) | 06:09 | |
06:10
FROGGS left
|
|||
lue | in that they don't match as <?> or anything else on their own, to be precise. | 06:11 | |
p: say "**a" ~~ /\* ~ \* <?> a/ | 06:13 | ||
camelia | rakudo-parrot 215ba6: OUTPUT«「**a」» | ||
moritz doesn't see what <( and )> got to do with ~ | 06:16 | ||
oh, further up in the backlog | |||
lue | The mess-up with ~ is why I don't like the sound of <( and )> considered matching as <?> | 06:19 | |
p: class Foo { method gist { "hello" } }; say Foo; # I thought this was something I could do. | 06:28 | ||
camelia | rakudo-parrot 215ba6: OUTPUT«hello» | ||
lue | Apparently my rakudo is out of date? | ||
06:28
rurban joined
|
|||
lue | Apparently I mess up pretty easily :) | 06:29 | |
06:32
rurban left
06:33
daniel-s_ joined
06:34
crab2313 left
06:37
daniel-s left
06:49
[Sno] joined,
btyler left
06:53
szbalint joined,
bakedb joined,
japhb___ joined
06:54
dansamo joined,
DrEeevil joined,
genehack_ joined,
cognominal joined
06:55
avarab joined,
szbalint_ left,
japhb__ left
|
|||
lue | .oO(use of uninitialized value of type Any in string context is getting to be the most annoying error I've ever come across, if only because it doesn't help you *at all* with finding the problem.) |
06:58 | |
diakopter | lue: well, the stack trace should provide the context..? | 06:59 | |
lue | diakopter: I didn't share the second half of the error : "in sub warn at gen/parrot/CORE.setting:674" | 07:00 | |
retupmoca | p: if "#asdf" ~~ /^\#.*$/ { say 1; } | 07:01 | |
camelia | rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/KNmtQ8z54xUnspace not allowed in regexat /tmp/KNmtQ8z54x:1------> if "#asdf" ~~ /^\#⏏.*$/ { say 1; }» | ||
retupmoca | ^ why doesn't that work? | 07:02 | |
and how do I match that string? | |||
07:04
FROGGS joined
|
|||
retupmoca | p: if "#asdf" ~~ /^'#'.*$/ { say 1; } | 07:04 | |
camelia | rakudo-parrot 215ba6: OUTPUT«1» | ||
retupmoca | well, that works. Still not sure why \# doesn't | 07:05 | |
FROGGS | morning | 07:06 | |
lue | n: say 1 if "#asdf" ~~ /^\#.*$/ | ||
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!===No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes ('#') or use a backslashed form like \x23 at /tmp/1bzjaMN6hX line 1:------> say 1 if "#asdf" ~~ /^\[3…» | ||
lue | retupmoca: # always means a comment unless you're in a quoting language (e.g. "" or qqx//) . \ in front of whitespace is always "unspace". Comments are whitespace. Which means \# is considered unspace, even in regexes. | 07:07 | |
p: say 1 if " " ~~ /\ / | 07:08 | ||
camelia | rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/JPq4oSdfz0Unspace not allowed in regexat /tmp/JPq4oSdfz0:1------> say 1 if " " ~~ /\ ⏏/» | ||
lue | diakopter: please tell me my "uninitialized value" problem is the compiler's fault, and not mine :) | ||
♘ everybody o/ | |||
retupmoca | oh, ok. That seems slightly confusing, but I understand it | 07:09 | |
ssutch | does there exist, or is anyone currently working on a HTML DOM / CSS selector library like BeautifulSoup (python) or lxml (c/python/etc) | 07:17 | |
or something like metacpan.org/pod/HTML::TreeBuilder::XPath | |||
(for perl 6) | 07:19 | ||
07:20
BenGoldberg left
07:34
darutoko joined,
hummeleB1 left
07:50
raiph left
07:55
virtualsue joined
08:15
nnunley left
|
|||
jnthn | morning, #perl6 | 08:17 | |
say "*a*" ~~ /\* ~ \* [ <( a )> ]/ | 08:18 | ||
p: say "*a*" ~~ /\* ~ \* [ <( a )> ]/ | |||
camelia | rakudo-parrot 215ba6: OUTPUT«「a」» | ||
jnthn | Precedence! :P | ||
08:20
ingy1 joined
08:21
zakharyas joined
08:29
ingy1 left
08:31
virtualsue left
|
|||
arnsholt | o/ | 08:34 | |
08:35
virtualsue joined
|
|||
FROGGS | o/ | 08:36 | |
08:46
virtualsue left
|
|||
FROGGS | jnthn: ahh, before it get lost... would be cool if you could review it when you have time :o) gist.github.com/FROGGS/6f8989611659551dae1f | 08:48 | |
(that is about lax mode) | |||
08:50
dmol joined
08:53
denis_boyun joined
08:57
nnunley joined
08:58
rindolf joined
09:02
nnunley left
09:05
tobyink joined
09:07
toebu left
09:09
markov left
|
|||
FROGGS tries his hands on defterm | 09:12 | ||
09:16
toebu joined
|
|||
diakopter | *hand at | 09:20 | |
09:21
markov joined
09:38
dakkar joined
|
|||
jnthn | diakopter: no no, he's petting defterm | 09:39 | |
09:40
denis_boyun__ joined
09:41
denis_boyun left
09:42
lizmat joined
09:49
[particle] left
|
|||
jnthn | FROGGS: Why does sub container_type_info become our-scoped? | 09:52 | |
lizmat is just awake | 09:53 | ||
jnthn too, though I've been concious for some hours :) | 09:54 | ||
lizmat | hmmm... thinking a bit more about Channels... what makes them different from a Queue (such as implemented in P5) | ||
and if there is no difference, why don't we call them Queues? | |||
09:56
fhelmberger joined
|
|||
jnthn | A channel is more an application of a queue... | 09:57 | |
It's not just a queue 'cus of the fail/last stuff it also provides. | |||
Which is important for the channel/supply/promise paradigm coercions. | 09:58 | ||
lizmat | ok, so it's a queue with open/close semantics added | 09:59 | |
jnthn | Plus error stuff | ||
lizmat | I don't see anything about channels being able to fail ? | ||
jnthn | $channel.fail(...) | ||
I hope nobody removed that. :) | 10:00 | ||
Otherwise you break the paradigm coercing. :) | |||
lizmat | I'm not sure it was ever there > | ||
? | |||
jnthn | um | ||
OK, it's there int he implementation :) | |||
Maybe I forgot it in the sepc. | |||
Certainly, it's used. | |||
lizmat | ok, so how would you spot a fail on a channel? | 10:01 | |
jnthn | If you receive on a channel with a fail, then it throws. | 10:02 | |
lizmat | ack | ||
jnthn | Strangely consistent with .result on a Promise | ||
If we still call them that :P | |||
lizmat | promise still stands :-) | ||
afaik | |||
jnthn | Though so; it's result I was less sure about | ||
It's funny, cause became excuse. | 10:03 | ||
I once called it that and was like, "no, that's too cute" :) | |||
lizmat | .oO( there is no excuse for cuteness ) |
||
10:06
daxim_ joined
|
|||
jnthn | .oO( cuteness is the cause of all kinds of things... :P ) |
10:07 | |
10:09
darutoko- joined
10:12
darutoko left
10:17
ssutch left,
toebu left
10:20
woosley left
10:21
toebu joined
|
|||
FROGGS | jnthn: to use it as Perl6::Actions::container_type_info in the Grammar | 10:28 | |
nqp-p: class A { our sub foo() { } }; A::foo() | 10:30 | ||
camelia | ( no output ) | ||
FROGGS | nqp-p: class A { sub foo() { } }; A::foo() | ||
camelia | nqp-parrot: OUTPUT«invoke() not implemented in class 'NQPMu'current instr.: '' pc 101 ((file unknown):62) (/tmp/Q7yW6edeok:1)» | ||
10:42
baest_ is now known as baest
10:45
nnunley joined
10:49
pecastro left
10:50
nnunley left
|
|||
FROGGS | term:<inator> # *groan* | 10:54 | |
10:57
tobyink left
11:08
denis_boyun__ left,
xdbr left
11:09
dbr joined,
denisboyun joined
|
|||
FROGGS | nr: class B { constant \a = 3; }; say B::a | 11:12 | |
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
..rakudo-parrot 215ba6, niecza v24-98-g473bd20: OUTPUT«3» | |||
FROGGS | j: say 1 | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
dalek | ast: cd4acfc | (Tobias Leich)++ | S04-declarations/constant.t: added test for RT #119751 |
11:13 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=119751 | ||
jnthn | FROGGS: That sounds like a wrong thing to be doing...but will have to look mroe at the patch | 11:18 | |
FROGGS | k | 11:21 | |
bbl | |||
11:25
iSlug joined
11:32
woolfy1 joined,
woolfy left
11:33
denisboyun left
11:37
lizmat left,
telex left
11:45
nine left,
telex joined
11:51
iSlug left
11:52
tobyink joined
11:56
xinming left,
xinming joined
12:05
lizmat joined,
Mouq left
12:08
markov left
12:16
tobyink left
12:24
mtk left,
lizmat left,
markov joined,
lizmat joined
12:26
j-4 joined
12:27
mtk joined
12:32
j-4 left
|
|||
dalek | ast: c3bfab8 | (Tobias Leich)++ | S05-metasyntax/repeat.t: added test for RT #119513 |
12:33 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=119513 | ||
12:34
nnunley joined
|
|||
FROGGS | 728 to go \o/ | 12:35 | |
-.- | |||
jnthn | argh | ||
12:35
xinming left
|
|||
jnthn | so many tikkits | 12:35 | |
nwc10 | 728 of what? | ||
jnthn | nwc10: RT tickets I assume | ||
12:36
xinming joined
|
|||
FROGGS | correct | 12:36 | |
jnthn: would should have a serious talk with masak about that ;o) | |||
12:38
nnunley left
|
|||
jnthn | Well, he's just the messenger, so we shouldn't shoot him too much... ;) | 12:42 | |
12:42
denis_boyun joined
|
|||
FROGGS | gah, you only say that because you like him :o) | 12:44 | |
12:47
kaleem_ joined,
kaleem left
12:48
denis_boyun left
12:50
mls_ joined
12:54
SamuraiJack left
13:03
Timbus|Away joined,
Timbus left,
Timbus|Away is now known as Timbus
13:04
toebu left
|
|||
tipdbmp | How come: 1.WHAT.say # prints (Int), but my $what = 1.WHAT; "$what".say; # use of uninitialized value of type Int in string context | 13:08 | |
13:08
denisboyun joined
|
|||
moritz | tipdbmp: there are two possible stringification modes | 13:09 | |
tipdbmp: say() uses .gist, and "" uses .Str | |||
FROGGS | because "$what" calls $what.Str, where the other one csalls .gist | ||
tipdbmp | Ah, okay. | ||
moritz | .gist is more for debugging, and .Str closer to what Perl 5 does | ||
13:12
denisboyun left
13:15
raiph joined
13:19
denisboyun joined
13:20
lizmat left,
avarab is now known as avar
13:23
denis_boyun joined,
lizmat joined,
denisboyun left
13:25
Mouq joined
|
|||
tipdbmp | How do you get the privae methods out of .^methods? obj.^methods(:private) # doesn't seem to work, obj.^methods(:all) does though | 13:30 | |
13:30
Mouq left,
salv0 joined
13:33
mls_ is now known as mls
13:34
ajr joined,
ajr is now known as Guest66615
13:35
denis_boyun left
13:36
Guest66615 is now known as ajr_
13:37
daniel-s__ joined
13:38
denisboyun joined
13:40
daniel-s_ left
13:41
odoacre left,
denisboyun left,
odoacre joined
13:42
denisboyun joined
|
|||
[Coke] belatedly points at github.com/coke/rakudo-star-daily | 13:42 | ||
moritz | no target 'install'. That sucks. | 13:43 | |
13:44
kaleem_ left,
kaleem joined
|
|||
FROGGS | make: *** No rule to make target `rakudo-test'. Stop | 13:44 | |
github.com/coke/rakudo-star-daily/...figure.log | 13:45 | ||
13:46
denisboyun left
|
|||
dalek | kudo-star-daily: 1ea206b | coke++ | log/version.log: today (automated commit) |
13:47 | |
rakudo-star-daily: 5515919 | coke++ | log/version.log: | |||
rakudo-star-daily: today (automated commit) | |||
13:47
dalek left
13:48
dalek joined,
ChanServ sets mode: +v dalek,
denisboyun joined
13:49
pdurbin left
|
|||
[Coke] | it seems to have been failing since the last change to R-* makefiles. | 13:50 | |
if we had a make target that was "do the build, but pull in the -latest- version of all the libraries", that would be awesome. | 13:51 | ||
s/libraries/modules/ | |||
(the current version is using (apparently old) build targets to build some bits, then manually update the modules, then run the tests) | |||
13:54
denisboyun left
|
|||
moritz | what I don't understand is: Configure.pl is launched from within the directory that was created from the tar ball | 13:54 | |
why does it complain about a .git dir then? | |||
FROGGS | I'd guess that this directory is the rakudo-star-daily repo | 13:55 | |
moritz | I've just downloaded the star.sh, ran it, and it didn't complain the same way | 13:56 | |
maybe the cd failed? | |||
[Coke] | entirely possible. I'll make time to suss this out this week, post-$dayjob madness. | 13:58 | |
speaking of which, once more unto the status meeting. | |||
13:59
Ulti left
|
|||
moritz | [Coke]: do you log the output of star.sh itself? | 13:59 | |
14:05
PacoAir joined
14:08
[particle] joined
|
|||
raiph | hi #perl6 | 14:10 | |
14:12
toebu joined,
jnap joined,
daxim_ left
|
|||
raiph | will there ever be a `use foo:from<c>`? # knows and likes NativeCall; just trying to understand | 14:13 | |
FROGGS | raiph: I tend to say yes | 14:14 | |
dalek | ar: 2bfd3b7 | moritz++ | tools/lib/NQP/Configure.pm: import NQP::Configure from NQP |
14:15 | |
Timbus | is foo a function call or a library. | ||
14:15
nnunley joined
|
|||
FROGGS | one would "just" need to use NativeCall + gobject introspection or something similar | 14:15 | |
Timbus | how do you determine its parameters | 14:16 | |
FROGGS | a library | ||
you can't just use a function out of thin air | |||
14:16
denisboyun joined
|
|||
FROGGS | you don't have to know its parameters since there are no multis in C | 14:17 | |
just call & die :o) | |||
you have to know the exported symbols though | 14:18 | ||
everything else (constants?) is sugar | |||
hoelzro | you *might* be able to something like use printf:from<stdio.h>; | ||
if Perl 6 comes with a header parser ;) | 14:19 | ||
arnsholt | If we do use :from<cstuff> the cstuff has to be a library name, not a header I think | ||
There's no uniform mapping from header files to which library you want to look for | 14:20 | ||
Timbus | you.. you do need to know its parameters... floats are passed on the stack, so are objects unless they're only 8 bytes.. otherwise registers are used.. am I missing something here | ||
arnsholt | OTOH, without the headers you don't know the signature, which leaves very little room for error reporting | ||
On the whole, I'm not sure use :from<c> is a good idea | 14:21 | ||
14:21
denisboyun left
|
|||
FROGGS | the :from is the languaga ("C" probably), the name should be the library | 14:21 | |
and since you can add other adverbs as you wish you could have a :header | |||
hoelzro | you would need to tell the importer the signature (either manually, or via header), as well as the library in which it can be found | ||
a :header adverb would probably be better | |||
arnsholt | Via header imposes a *ridiculous* amount of work in the compiler though | ||
FROGGS | rp: use QRegex:from<NQP>:header<hurz.h> | ||
camelia | ( no output ) | ||
arnsholt | Extracting information from header files is hard | ||
Timbus | th header needs to be preprocessed possibly, as well. | 14:22 | |
FROGGS | arnsholt: true :o) | ||
14:22
rurban joined,
denisboyun joined
|
|||
diakopter | jnthn: not all the rt tickets are [WEIRD], either ;) | 14:22 | |
tipdbmp | If I have a module that exports a sub (sub suby is export { ... } ) and I use the module with the empty parens: use MyModule ()); How can I still use the sub as in MyModule::suby? | 14:23 | |
FROGGS | tipdbmp: make it an our-sub? | 14:24 | |
raiph | FROGGS, Timbus, hoelzro, arnsholt: thx. would I be right in saying that the longer term vision is that, for calls between P6 and C, use bar:from<c> will be what most folk use/see rather than NativeCall? Will NativeCall be used under the hood to implement use foo:from<c>? | ||
tipdbmp | FROGGS: that worked, thanks. | 14:25 | |
FROGGS | raiph: I am not sure if :from<C> will be more popular than NativeCall, but it would at least use it under the hood | ||
hoelzro | raiph: the whole use bar:from<c>:header<something.h> is more of a thought experiment to me | ||
I think arnsholt is right in that header parsing would be too hard | |||
FROGGS | it would be, yes | ||
just think of macros and other header includes... | 14:26 | ||
it is just like with Perl, you can't treat it like a bunch of text | |||
14:26
kaleem left
|
|||
raiph | all makes sense. thanks guys. | 14:27 | |
diakopter | otoh, luajit does a more-than-decent job with such headers | 14:28 | |
14:28
toebu left,
denisboyun left
14:31
denisboyun joined
|
|||
tipdbmp | How can I make a multi sub MAIN decalred inside a module MyModule { ... } execute only when the module is a "scripted main": rosettacode.org/wiki/Scripted_main#Perl_6 ? | 14:32 | |
I.e when it's imported it should not execute. | 14:33 | ||
moritz | tipdbmp: that's how it should be; if it isn't, it's a bug. | ||
14:34
johnny5_ left
|
|||
tipdbmp | Don't know, I'm using the 2013.05 rakudo star. | 14:34 | |
FROGGS | diakopter: clearly we should steal from the best implementation :o) | ||
14:35
kaare_ joined
14:37
denisboyun left,
btyler joined
14:38
johnny5_ joined,
daxim_ joined
14:39
denisboyun joined
14:41
ltv204 joined
14:42
denisboyun left
14:43
ltv204 left
14:46
bluescreen10 joined
|
|||
moritz | [Coke]: fwiw you could add a line like exec >$LOG_DIR/control.log 2>&1 | 14:50 | |
[Coke]: ... to star.sh to capture output from star.sh itself | |||
jnthn | I suspect a :from<c> has so many ways to do it, it'll be hard to get sane, widely useful default semantics. | 14:56 | |
FROGGS | jnthn: true | 14:57 | |
jnthn | Even if you have teh header file, you don't know how to manage memory. | 14:58 | |
FROGGS | but it would be nice if it is done right... ("right" eq "the way I wanna have it :o)") | ||
14:58
denisboyun joined
|
|||
jnthn | Or know what encoding you can pass to something wanting a char* | 14:58 | |
I think we should build C header => Perl 6 things, BUT they are a draft, to be filtered through a programmer. | 14:59 | ||
15:09
denis_boyun joined
15:10
rurban left
15:11
denisboyun left
|
|||
diakopter | jnthn: what if that draft was an in-memory data structure (instead of some text output), so the programmer can interact with it with an api? | 15:11 | |
[compile-time or otherwise] | |||
jnthn | diakopter: Could be useful, then you can re-apply your tweaks each time you update to a later version. | 15:12 | |
15:13
Mouq joined
|
|||
TimToady | .oO(patch and git merge, reinvented, probably poorly) |
15:13 | |
15:14
odoacre left
|
|||
TimToady | well, at least there's usually an identifier to look for | 15:14 | |
jnthn | :P | ||
15:14
odoacre_ joined
|
|||
jnthn | There is that. | 15:14 | |
TimToady | one wonders how many home-grown string types we can recognize... | 15:16 | |
gee, here's a pointer to something with a char* and an integer... | |||
diakopter | jnthn: what do you mean by "manage memory"? | 15:17 | |
TimToady | will the program blow up if I realloc this char*? | 15:18 | |
15:18
Mouq left
|
|||
diakopter | I don't see the problem | 15:18 | |
[why would you need to realloc the char*] | 15:19 | ||
moritz | diakopter: whether a particular string must be freed by the caller, or will be freed by the library | ||
s/string/piece of memory/ | |||
FROGGS | well, these problems arn't new | ||
diakopter | I don't see how that's any more of a problem than any other C program.. | ||
TimToady | there are a whole bunch of things that are done by convention in C rather than by the type system | 15:20 | |
moritz | diakopter: the big difference is that C programmers are used to reading such things in the docs | ||
geekosaur | you say that like C *has* a type system.... | ||
moritz | diakopter: but Perl 6 programmers aren't, and they expect things to Just Work[tm], no matter what | 15:21 | |
TimToady | sure, didn't say it was a *good* type system :P |