»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:01
Guest1856 left
|
|||
timotimo | perlpilot: would you be interested in bringing your changes to synopsebot in line with masak's latest commit that makes it use a big grammar? | 00:01 | |
00:02
vendethiel left
00:03
synopsebot6 left,
synopsebot6 joined
00:09
adu joined
00:12
sjohnsen joined
00:14
kent\n left
00:15
kurahaupo joined
00:17
cpage_ left,
synopsebot6 left,
synopsebot6 joined
00:18
kent\n joined,
kent\n left
|
|||
patrickz | -> off to bed | 00:22 | |
00:22
patrickz left
00:24
kent\n joined
|
|||
timotimo | i wonder what makes synopsebot die ... perhaps the number of processes it's allowed to spawn is still too low? | 00:25 | |
Could not spawn thread: errorcode -11 | |||
don't really know where to look for that errorcode :\ | |||
geekosaur | EAGAIN? | 00:26 | |
timotimo | that'd be the worst. | 00:27 | |
00:30
atweiden joined
00:36
synopsebot6 left,
synopsebot6 joined
00:39
cpage_ joined
00:43
dustinm` left
|
|||
dalek | kudo-star-daily: e3bda91 | coke++ | log/ (9 files): today (automated commit) |
00:52 | |
00:54
synopsebot6 left,
synopsebot6 joined
00:55
dustinm` joined,
kurahaupo left
00:58
isBEKaml joined
00:59
_dolmen_ left,
Actualeyes joined,
Actualeyes left
|
|||
timotimo | collect.p6c.org/ - rejoice, www.p6c.org is now being collect'd | 00:59 | |
01:00
sno left
01:05
sufrostico left
01:13
synopsebot6 left,
synopsebot6 joined,
wamba left
01:19
wwwbukolaycom joined
|
|||
llfourn | presentation I did for sydney.pm last night for anyone interested: github.com/LLFourn/p6-and-chill/bl...ill-01.org | 01:20 | |
it was fun and worked well. p5 people were quite engaged. | 01:21 | ||
Hotkeys | if I have a field "$.port" and want "is required" and a type constraint | 01:22 | |
do I put the constraint before or after 'is required' | |||
llfourn | Hotkeys: what kind of contraint? | ||
Hotkeys | a 'where' | 01:23 | |
where 0 <= * <= 65535 | |||
01:23
wwwbukolaycom left
|
|||
llfourn | Hotkeys: for a subset? | 01:23 | |
no...for a parameter? | |||
Hotkeys | it's just a constraint not in a subset | ||
eg | |||
has $.port where 0 <= * <= 65535 (is required) | |||
not sure if the is required should go after the where or before it | |||
llfourn | hmm i've never done that b4 | 01:24 | |
m: class A { has $.a where True is required }; | |||
camelia | rakudo-moar 5d7f65: OUTPUT«5===SORRY!5===Two terms in a rowat /tmp/_c2zZu7RX7:1------> 3class A { has $.a where True7⏏5 is required }; expecting any of: constraint infix infix stopper postfix statement end…» | ||
llfourn | m: class A { has $.a is required where True }; | ||
camelia | rakudo-moar 5d7f65: OUTPUT«Potential difficulties: Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at /tmp/5txN0FMLkJ:1 ------> 3class A { has $.a is required where 7⏏5True };» | ||
llfourn | m: class A { has $.a where True }; | ||
camelia | rakudo-moar 5d7f65: OUTPUT«Potential difficulties: Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at /tmp/c_WgeTYGWj:1 ------> 3class A { has $.a where 7⏏5True };» | ||
llfourn | m: class A { has $.a where "i'm an idiot" }; | ||
camelia | ( no output ) | ||
Hotkeys | lol | ||
llfourn | m: class A { has $.a is required where "I'm an idiot" }; | 01:25 | |
camelia | ( no output ) | ||
Hotkeys | neat | ||
llfourn | m: class A { has $.a where "I'm an idiot" is required }; | ||
camelia | rakudo-moar 5d7f65: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZpnzcBzFYQTwo terms in a rowat /tmp/ZpnzcBzFYQ:1------> 3class A { has $.a where "I'm an idiot"7⏏5 is required }; expecting any of: constraint infix infix sto…» | ||
Hotkeys | I guess I probably could have just tested it myself | ||
llfourn | well now I get to learn something too :) | ||
01:31
synopsebot6 left
01:32
raiph joined,
synopsebot6 joined
01:34
brydoyle_ joined
01:35
brydoyle1 joined,
brydoyle1 left,
brydoyle_ left
|
|||
timotimo | llfourn: "perl 6 and chill" is a bit cringe to me :S | 01:35 | |
01:36
brydoyle joined
|
|||
llfourn | timotimo: heh. Oh well. I like it. | 01:36 | |
01:37
kurahaupo joined
01:39
abaugher left
01:41
kurahaupo left
|
|||
timotimo | i wonder what makes the average idle percentage only 67% | 01:41 | |
on www | |||
but 16.8% is "wait" and 5.4% is system | 01:42 | ||
and it's very frequent | |||
llfourn | what's this in reference to? | ||
timotimo | so, some cron job is either running on www for a surprisingly long time each time | ||
collect.p6c.org/ | |||
01:43
isBEKaml left
|
|||
llfourn looks | 01:43 | ||
01:43
cdg left
|
|||
timotimo | there's also outgoing packets in the same pattern | 01:43 | |
llfourn | it does look a bit odd | 01:45 | |
timotimo | crontab -e is only visitors which runs at 00:18 in the morning | 01:46 | |
at least i think that's how to read that? | |||
let me look again | |||
m is 18 and h is 0, the rest is *; so that's "once a day", right? | |||
llfourn doesn't remember how to read crontab | 01:47 | ||
looks like every 5m? | |||
timotimo | seems so | ||
llfourn | it seesm to last for a while so top? | ||
timotimo | could be updatelist.pl for the ecosystem? | 01:49 | |
llfourn | timotimo: well if that's running on that machine sounds like a good theory | 01:50 | |
might not be using cron | |||
01:50
synopsebot6 left,
synopsebot6 joined
|
|||
timotimo | hm, no, looks like froggs rsync task | 01:50 | |
for cpandatesters | |||
.tell froggs if you look at the cpu plugin from the www host on collect.p6c.org i *think* the spikes that happen every 5 minutes are from rsync for cpandatesters; can we perhaps make that a bit smarter? | 01:52 | ||
yoleaux | timotimo: I'll pass your message to froggs. | ||
timotimo | i think i ought to go sleepysleep soon | ||
01:58
colomon left
02:00
colomon joined
02:03
abaugher joined,
kid51 left
02:04
colomon left
02:05
colomon joined
02:09
synopsebot6 left,
brydoyle left,
synopsebot6 joined
02:12
yqt left
02:21
molaf__ joined
02:24
molaf_ left
02:27
synopsebot6 left
02:28
synopsebot6 joined
02:29
raiph left
02:36
AlexDaniel joined
02:38
Herby__ joined
|
|||
Herby__ | Evening, everyone! | 02:38 | |
02:40
Ben_Goldberg joined
02:41
vendethiel joined
|
|||
Herby__ | \o | 02:42 | |
02:43
shicheng left
|
|||
AlexDaniel | :) | 02:43 | |
02:46
ilbot3 left,
synopsebot6 left,
synopsebot6 joined
02:47
ilbot3 joined
02:49
squach1 left
03:02
jack_rabbit left
03:04
noganex joined
03:05
vendethiel left,
synopsebot6 left,
synopsebot6 joined
03:07
noganex_ left,
adu left
03:12
colomon left
03:15
colomon joined
03:16
adu joined,
remmie left
03:18
shicheng joined
03:24
synopsebot6 left,
synopsebot6 joined
03:27
jack_rabbit joined
03:28
addison joined
03:31
remmie joined
03:36
addison left
03:39
jack_rabbit left
03:42
synopsebot6 left,
synopsebot6 joined
|
|||
MadcapJake | what do i do with this "Absolute tolerance must be a positive number greater than zero" error when i use «is-approx» | 03:44 | |
04:00
colomon left
04:01
synopsebot6 left,
synopsebot6 joined
|
|||
skids | MadcapJake: Hrm. That seems to happen when you don't leave any text for the test. | 04:04 | |
04:05
colomon joined
|
|||
orbus | m: use Test; is-approx(2.71828, e) | 04:05 | |
camelia | rakudo-moar 5d7f65: OUTPUT«Absolute tolerance must be a positive number greater than zero in sub is-approx at /home/camelia/rakudo-m-inst-2/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E line 251 in block <unit> at /tmp/TB9A0zOVN8 line 1» | ||
orbus | m: use Test; is-approx(2.71828, e, "blah") | ||
camelia | rakudo-moar 5d7f65: OUTPUT«ok 1 - blah» | ||
orbus | well that's interesting | ||
MadcapJake | oh you need the message? weird | ||
skids | m: use Test; &is-approx.candidates».signature.say | 04:06 | |
camelia | rakudo-moar 5d7f65: OUTPUT«((Numeric $got, Numeric $expected, $desc = { ... }) (Numeric $got, Numeric $expected, Numeric $tol, $desc = { ... }) (Numeric $got, Numeric $expected, Numeric :$rel_tol = { ... }, Numeric :$abs_tol = { ... }, :$desc = { ... }))» | ||
orbus | maybe it's defaulting rel_tol to a numeric | 04:07 | |
like 0 | |||
or actually I guess $tol | |||
MadcapJake | is there a way to change how approximate it is? otherwise I can't use it | ||
orbus | well based on that signature it looks like you can... | 04:08 | |
skids | :abs_tol ? | ||
or :rel_tol | |||
MadcapJake | ohh weird, that's not mentioned in language/testing | ||
04:08
Juerd left
|
|||
orbus | or just tol | 04:08 | |
not sure what the differences are | |||
skids | well, rel_toll would normalize somehow. | 04:09 | |
probably $tol and :$abs_tol are just convenience synonyms. | 04:10 | ||
MadcapJake | sweet! that works swimmingly! | ||
orbus | m: use Test; is-approx(.35678,.34,.01) | ||
camelia | rakudo-moar 5d7f65: OUTPUT«not ok 1 - # Failed test at /tmp/HPYFHenqpR line 1# expected: 0.34# got: 0.35678» | ||
skids wonders why the dispatch does that without the $desc | |||
orbus | m: use Test; is-approx(.35678,.34,.1) | 04:11 | |
camelia | rakudo-moar 5d7f65: OUTPUT«ok 1 - » | ||
orbus | yeah, it's interesting | ||
skids | O I guess 3 parms + no opt does beat 2 parms + opt | 04:12 | |
04:12
Juerd joined
|
|||
orbus | what does the = { ... } mean in those signatures? | 04:17 | |
optional? | |||
04:17
kent\n left
04:18
moznion left
|
|||
gfldex | m: my &c = { ... }; say &c.WHAT; | 04:18 | |
camelia | rakudo-moar 5d7f65: OUTPUT«(Block)» | ||
gfldex | m: my &c = { ... }; say c(); | ||
camelia | rakudo-moar 5d7f65: OUTPUT«Stub code executed in block <unit> at /tmp/wJkYgk9ht7 line 1» | ||
04:18
kent\n joined
|
|||
skids | optional with a default. | 04:18 | |
m: sub a ($a, $b = 4) { }; &a.signature.say | 04:19 | ||
camelia | rakudo-moar 5d7f65: OUTPUT«($a, $b = { ... })» | ||
gfldex | m: my &c = { ... }; say c(); CATCH { default { .WHAT.say } } | ||
camelia | rakudo-moar 5d7f65: OUTPUT«(StubCode)» | ||
04:19
synopsebot6 left
04:20
synopsebot6 joined,
eternaleye joined
|
|||
gfldex | m: my sub a ($a, $b = 4) { }; &a.signature.params[1].say; CATCH { default { .WHAT.say } } | 04:21 | |
camelia | rakudo-moar 5d7f65: OUTPUT«$b = { ... }» | ||
gfldex | m: my sub a ($a, $b = 4) { }; &a.signature.params[1].WHAT.say; CATCH { default { .WHAT.say } } | ||
camelia | rakudo-moar 5d7f65: OUTPUT«(Parameter)» | ||
orbus | m: multi blah(Numeric $a, Numeric $b, $d) {say $d}; multi blah(Numeric $a, Numeric $b, $c, :$d=5) {say $c; say $d}; blah(1,2,3) | ||
camelia | rakudo-moar 5d7f65: OUTPUT«35» | ||
skids | m: my sub a ($a, $b = 4) { }; &a.signature.params[1].default.WHAT.say; | 04:22 | |
camelia | rakudo-moar 5d7f65: OUTPUT«(Block)» | ||
skids | m: my sub a ($a, $b = 4) { }; &a.signature.params[1].default().say; | ||
camelia | rakudo-moar 5d7f65: OUTPUT«-> ;; $_? is raw { #`(Block|76760864) ... }» | ||
skids | m: my sub a ($a, $b = 4) { }; &a.signature.params[1].default()().say; | ||
camelia | rakudo-moar 5d7f65: OUTPUT«4» | ||
gfldex | looks like overgeneralisation to me | 04:23 | |
likely a source for rakudoslow | 04:24 | ||
skids | You mean you'd prefer simple constants to appear naked? | ||
gfldex | i would prefer good introspection in that case, what would require a friendly 4 to be displayed | ||
skids | Yes actually, MMD uses the string of the signature currently, and that probably is slow. | ||
Ben_Goldberg | m: sub a ($a, $b = 4) { }; &a.signature.params[1].default.().perl.say | 04:26 | |
camelia | rakudo-moar 5d7f65: OUTPUT«4» | ||
04:27
Actualeyes joined
|
|||
orbus | m: multi blah(Numeric $a, Numeric $b, $d=7) {say $d}; multi blah(Numeric $a, Numeric $b, Numeric $c, $d=5) {say $c; say $d}; blah(1,2) | 04:32 | |
camelia | rakudo-moar 5d7f65: OUTPUT«7» | ||
Hotkeys | does the documentation mention enums at all? | ||
orbus | yeah, I don't get why is-approx is acting that way | ||
Hotkeys | I've seen them in action but a quick search for enum gives no results | ||
04:33
addison joined,
Ben_Goldberg left
|
|||
orbus | design.perl6.org/S12.html#Enumerations | 04:34 | |
gfldex | Hotkeys: they do "mention" enums, see first example of doc.perl6.org/type/IO::Notification | ||
Hotkeys | I suppose | ||
I feel like they should have a page of their own | |||
skids | When the docs fail, consult the design docs: design.perl6.org/S12.html#Enumerations | 04:35 | |
gfldex | they should become documented in doc.perl6.org/language/typesystem | ||
enum is a type declarator | |||
Hotkeys | skids: thanks | ||
gfldex | there where late changes to enums. S?? may be incomplete or missleading. Read roast if you want to be sure. | 04:37 | |
04:37
addison left
|
|||
skids | At some point a week should be picked to "whirlpool" stuff back into the design docs. | 04:38 | |
Hotkeys | heh | ||
I like the reference here i.imgur.com/q2PD51z.png | |||
04:38
synopsebot6 left,
synopsebot6 joined
04:40
secwang joined,
Zero_Dogg left
04:41
Zero_Dogg joined
04:45
Herby__ left
04:56
jack_rabbit joined
04:57
synopsebot6 left,
synopsebot6 joined,
sno joined
04:59
skids left
05:00
revhippie left
05:04
secwang left
05:08
cpage_ left
|
|||
sortiz | . | 05:08 | |
05:15
roguelazer left,
synopsebot6 left
05:16
synopsebot6 joined
05:17
ruoso_ left,
lnrdo left
05:20
Kitt3n is now known as Redfoxmoon
05:23
lnrdo joined
05:24
roguelazer joined,
ruoso joined
05:28
cpage_ joined
05:34
synopsebot6 left,
synopsebot6 joined
05:39
Cabanossi left
05:41
Cabanossi joined
05:53
synopsebot6 left,
synopsebot6 joined
05:54
khw left
05:58
lnrdo left,
davido joined
05:59
roguelazer left,
ruoso left
06:02
jack_rabbit left
06:03
lnrdo joined
06:04
roguelazer joined
06:05
cpage_ left
06:06
ruoso joined
06:12
synopsebot6 left,
synopsebot6 joined
06:15
adu left
06:24
addison joined
06:28
addison left
06:29
sno left,
sno joined
06:30
synopsebot6 left,
synopsebot6 joined
06:34
freeze left
06:35
autarch left
06:48
eddie2pc left
06:49
synopsebot6 left,
synopsebot6 joined
06:51
geraud left,
cpage_ joined
06:52
japhb left
06:54
japhb joined
06:59
garyaj joined
07:00
garyaj left,
davido left,
CIAvash joined
07:04
freeze joined
07:06
autarch joined
07:07
synopsebot6 left
07:08
synopsebot6 joined
07:09
atweiden left
07:16
autarch left
07:19
sno left,
autarch joined
07:23
FROGGS joined
07:26
synopsebot6 left,
synopsebot6 joined
07:27
vendethiel joined
|
|||
FROGGS | .tell timotimo how so? | 07:28 | |
yoleaux | 01:52Z <timotimo> FROGGS: if you look at the cpu plugin from the www host on collect.p6c.org i *think* the spikes that happen every 5 minutes are from rsync for cpandatesters; can we perhaps make that a bit smarter? | ||
FROGGS: I'll pass your message to timotimo. | |||
07:36
kent\n left
07:37
_mg_ joined,
kent\n joined
|
|||
[Tux] | test 22.463 | 07:38 | |
test-t 12.043 | |||
csv-parser 51.560 | |||
07:38
firstdayonthejob joined
|
|||
[Tux] | say I want to count all characters "a" and "b" in a string and get a hash with the counts of each. What is the most perl6'ish way to do that? | 07:45 | |
07:45
synopsebot6 left,
synopsebot6 joined
|
|||
nine | classify comes to mind. Also a Hash that just counts how often a key was added exists: doc.perl6.org/type/Bag | 07:46 | |
FROGGS | m: say 'say I want to count all characters "a" and "b"'.comb.Bag<a b> | 07:47 | |
camelia | rakudo-moar 5d7f65: OUTPUT«(7 1)» | ||
nine | There's power in coercers | 07:48 | |
[Tux] | FROGGS++ | ||
07:51
vendethiel left
|
|||
[Tux] | Than this is a timy bit counterinituative: | 07:51 | |
m: my@x=<a b>;say "How many characters does this bag have?".comb.Bag(@x) | |||
camelia | rakudo-moar 5d7f65: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in block <unit> at /tmp/Ne1pqxS3Rk line 1» | ||
MadcapJake | how would you modify a class' method? Will a role's methods override? Is there another way? | 07:52 | |
nine | m: my@x=<a b>;say "How many characters does this bag have?".comb.Bag($@x) | ||
camelia | rakudo-moar 5d7f65: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in block <unit> at /tmp/qoPDhppQkI line 1» | ||
nine | huh? | ||
[Tux] | indeed, I was guessing the one-arg rule would apply | ||
nine | oh...of course, Bag doesn't have arguments | ||
it _returns_ a Bag which is associative | |||
[Tux] | ahhhhhh | 07:53 | |
nine | m: my@x=<a b>;say "How many characters does this bag have?".comb.Bag{@x} | ||
camelia | rakudo-moar 5d7f65: OUTPUT«(5 1)» | ||
nine is now quietly waiting for the coffee to kick in | |||
[Tux] | sooooooooo nice :) | ||
MadcapJake | does «add_method» overwrite methods with the same name? | 07:54 | |
07:54
darutoko joined,
Ven joined
|
|||
FROGGS | MadcapJake: no, you'll get an error | 07:54 | |
MadcapJake | is there a way to add a method of a class outside of the class' body? | ||
FROGGS | MadcapJake: I think you can .^mixin a role containing said method | ||
MadcapJake | and it will overwrite a method inside the class? | 07:55 | |
FROGGS | yes, that's our slangs currently work | ||
how our* | |||
I mean, it kinda is a hack, but it works | |||
moritz | m: say (42 but role { method sqrt() { 12 } }).sqrt | ||
camelia | rakudo-moar 5d7f65: OUTPUT«12» | ||
07:56
bioexpress joined
|
|||
MadcapJake | is there any way to replace it in-place? | 07:56 | |
07:58
Ven_ joined
07:59
ely-se joined,
vendethiel joined
08:00
kd` left
|
|||
[Tux] | sorry for being slow, but this way I only get the counts. The "ideal" result in my case would be a Bag that *only* holds the characters in @x | 08:00 | |
08:02
Ven left
08:03
synopsebot6 left
08:04
synopsebot6 joined,
DrPete left
|
|||
bioexpress | Hello! With Perl 5 I can write `use Module::Name "function";` even if "function" is exported automatically. | 08:05 | |
This way I can see in my code immediately where the function comes from. | |||
Why has this possibility been removed in Perl 6? | |||
Ven_ | it hasn't | ||
m: use Test <is>; is 1, 3; | |||
camelia | rakudo-moar 5d7f65: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3VBGRdh9VtError while importing from 'Test':no EXPORT sub, but you provided positional argument in the 'use' statementat /tmp/3VBGRdh9Vt:1------> 3use Test <is>7⏏5; is 1, 3;» | ||
hippie | m: my @x = <a b>; my %y; %y{@x} = 'this that and the other, balloons and bananas'.comb.Bag{@x}; say %y # Tux? | ||
camelia | rakudo-moar 5d7f65: OUTPUT«a => 7, b => 2» | ||
08:05
sno joined
|
|||
Ven_ | mej | 08:05 | |
FROGGS | m: my@x=<a b>;say "How many characters does this bag have?".comb.Bag{@x}:kv | 08:06 | |
camelia | rakudo-moar 5d7f65: OUTPUT«(a 5 b 1)» | ||
[Tux] | :kv of course | ||
FROGGS | m: my@x=<a b>;say "How many characters does this bag have?".comb.Bag{@x}:kv.hash | ||
camelia | rakudo-moar 5d7f65: OUTPUT«a => 5, b => 1» | ||
[Tux] | did too much perl5 lately | ||
FROGGS | :o) | ||
08:09
DrPete joined,
kd` joined
08:10
LGD_ left,
rindolf joined
08:11
moritz left,
ilbot3 left
|
|||
[Tux] somehow expected «say %hash.keys» to be shortcutted to «say %hash:k» :P | 08:12 | ||
08:12
ilbot3 joined
|
|||
Ven_ | that'd be an adverb on say | 08:13 | |
08:14
sjoshi joined
08:16
moritz joined
08:17
abraxxa joined
|
|||
moritz | PSA: due to the glibc security bug, I'll have to reboot hack and its companions Very Soon[tm] | 08:18 | |
(unless somebody knows a way to ensure the old glibc isn't kept in memory anymore) | |||
08:19
rindolf left,
wamba joined
|
|||
jast | kill all processes, Problem Solved (tm) | 08:21 | |
08:21
vendethiel left
08:22
synopsebot6 left,
synopsebot6 joined
08:23
Laurent_R joined
08:25
addison_ joined
|
|||
[Tux] | 73 lines of perl5 compress to 18 lines of perl6 | 08:26 | |
not completely fair, as perl6 does not need to deal with BOM's, but still | |||
08:29
addison_ left
|
|||
cosimo | moritz: REBOOT ALL THE THINGS | 08:30 | |
08:30
zakharyas joined
|
|||
moritz | jast: heh, you here. I'm having #git feelings right now :-) | 08:30 | |
08:31
addison joined
08:32
Laurent_R left
08:33
xinming left
08:34
xinming_ joined
08:39
firstdayonthejob left
08:41
synopsebot6 left,
synopsebot6 joined,
vendethiel joined
08:42
addison left
|
|||
DrForr | There are editors out there that set us up the BOM on UTF-8 files though. | 08:42 | |
moritz | but doesn't Perl 6 handle those automatically? | 08:43 | |
FROGGS | it does | 08:44 | |
moritz | so it's completely fair to include that difference | 08:45 | |
allright, I'll reboot the hypervisor and all the VMs (hack, www) now | |||
08:45:55 up 435 days, 20:03, 2 users, load average: 1.45, 0.94, 0.84 | 08:46 | ||
I do feel a bit sorry about ending that update | |||
*uptime | |||
08:46
Quom left,
PerlJam left,
sergot left,
avuserow left,
masak left,
JimmyZ left,
psch_ left,
Util left,
[Coke]_ left,
synopsebot6 left,
dalek left
|
|||
[Tux] | m: 'class C { method foo (Str $s, Array @a = < a b >; Bool $flag = False) { 1; }}; say C.new.foo("a") | 08:47 | |
camelia | rakudo-moar 5d7f65: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xv4FzbpvE3Unable to parse expression in single quotes; couldn't find final "'" at /tmp/xv4FzbpvE3:1------> 3lag = False) { 1; }}; say C.new.foo("a")7⏏5<EOL> expecting any of: sing…» | ||
[Tux] | m: class C { method foo (Str $s, Array @a = < a b >; Bool $flag = False) { 1; }}; say C.new.foo("a") | ||
camelia | rakudo-moar 5d7f65: OUTPUT«Type check failed in binding @a; expected Positional[Array] but got List in method foo at /tmp/iMjGE4JxLL line 1 in block <unit> at /tmp/iMjGE4JxLL line 1» | ||
[Tux] | s/;/, | 08:48 | |
m: class C { method foo (Array @a = < a b >) { 1; }}; say C.new.foo() | 08:50 | ||
camelia | rakudo-moar 5d7f65: OUTPUT«Type check failed in binding @a; expected Positional[Array] but got List in method foo at /tmp/30XnIDTKfU line 1 in block <unit> at /tmp/30XnIDTKfU line 1» | ||
[Tux] | m: class C { method foo (Array @a = [< a b >]) { 1; }}; say C.new.foo() | ||
camelia | rakudo-moar 5d7f65: OUTPUT«Type check failed in binding @a; expected Positional[Array] but got Array in method foo at /tmp/us1ZPtbb1s line 1 in block <unit> at /tmp/us1ZPtbb1s line 1» | ||
moritz | eeks, the hypervisor isn't coming up again | 08:51 | |
[Tux] | m: class C { method foo (Array $a = [< a b >]) { 1; }}; say C.new.foo() | ||
camelia | rakudo-moar 5d7f65: OUTPUT«1» | ||
moritz | I'll have to trod over to the data center later on :/ | ||
jast | moritz: "#git feelings" sounds kind of ominous | 08:58 | |
and it does seem to have killed your hypervisor. sorry. :( | 08:59 | ||
08:59
Actualeyes left
|
|||
MadcapJake | i think the p6c server is down | 09:04 | |
ahh i see, nevermind me :P | 09:05 | ||
09:23
dalek joined,
ChanServ sets mode: +v dalek
|
|||
[Tux] | m: class C { method foo (Str $s, Str $fold = "lc") { say $s; say $fold }};C.new.foo("x");C.new.foo("x",fold => "x") | 09:25 | |
camelia | rakudo-moar 5d7f65: OUTPUT«xlcxlc» | ||
09:25
vendethiel left
|
|||
[Tux] | so, why is $fold "lc" and not "x" on the second invocation? | 09:26 | |
ah, : missing | 09:27 | ||
FROGGS | [Tux]: declare it as a named | ||
aye | |||
09:27
azawawi joined
|
|||
azawawi | hi | 09:27 | |
is doc.perl6.org working or not? | |||
i cant seem to access it | |||
DrForr | Hypervisor problem apparently. | 09:28 | |
09:28
ocbtec joined
|
|||
azawawi | i see | 09:28 | |
DrForr: hi :) | |||
09:28
[Sno] joined
09:30
sno left
|
|||
DrForr waves. | 09:30 | ||
azawawi | raw.githubusercontent.com/DanBrook...-icons.png # Please let me know your feedback for a suitable perl6 icon | 09:34 | |
09:34
sjoshi left,
hanekomu left
|
|||
moritz | hack is back up | 09:34 | |
... and www too | 09:35 | ||
I don't know what happend to the hypervisor; the first thing I did when I arrived was setting the reset button | |||
and by the time I had a console wired up, it was running nicely | |||
09:36
MilkmanDan left
|
|||
azawawi | cool | 09:36 | |
moritz++ | |||
moritz | on my workstation at home I have a bug that a 'reboot' does the same as 'halt' (that is, halting the OS without powering down the hardware -- whatever that's supposed to be good for) | ||
09:36
sjoshi joined
|
|||
moritz | maybe it's the same on that server | 09:36 | |
I guess I never rebooted it before :-) | |||
FROGGS | azawawi: camelia is problematic for that icon size? | 09:37 | |
09:37
ocbtec left
09:38
ocbtec joined
|
|||
stmuk | rebooting -- the MSCE fix ;) | 09:38 | |
09:38
broquaint left
|
|||
azawawi | FROGGS: yup | 09:38 | |
FROGGS: too much detail | |||
09:39
addison joined
|
|||
azawawi | FROGGS: pasteboard.co/1uqPo9c8.png | 09:39 | |
jast | why do none of these stupid sites work without javascript | 09:40 | |
[Tux] | All tests successful. | ||
Files=28, Tests=22307, 29 wallclock secs ( 2.92 usr 0.18 sys + 82.35 cusr 1.66 csys = 87.11 CPU) | |||
Result: PASS | |||
Text::CSV_XS.header now ported to p6' Text::CSV | 09:41 | ||
09:41
sergot joined
|
|||
FROGGS | azawawi: a butterfly (rotated like the original) might still work... we don't need the P and 6 in the wings... | 09:41 | |
azawawi | FROGGS: will try an outline then | 09:42 | |
09:42
MilkmanDan joined
|
|||
azawawi | now the next question what icon color represents camelia? :) | 09:43 | |
09:43
addison left
|
|||
DrForr | Bikeshed brown. | 09:43 | |
jast | anything bright and friendly will do, I guess | 09:44 | |
azawawi | thanks for the feedback | 09:45 | |
azawawi starts working on it | |||
09:46
azawawi left
09:53
inokenty left,
zhmylove left,
SHODAN left,
brabo left,
Exodist left,
nebuchadnezzar left,
orbus left,
ugexe left,
bitmap left,
SmokeMachine____ left,
kshannon_ left,
peteretep left,
sQuEE left,
domm_ left,
Cheery left,
Peter_WR left,
Amnez777 left,
Hotkeys left,
geekosaur left,
saaki left,
edenc left,
hoelzro left,
Ulti left,
Grrrr left,
krakan left,
jnap left,
ggherdov_ left,
flussence left,
Lucas_One_ left,
jast left,
Bucciarati left,
timotimo left,
gfldex left,
[ptc] left,
dylanwh left,
rafl left,
decent_ left,
bartolin left,
luis left,
corbyhaas_ left,
damnlie left,
avalenn left,
PotatoGim left,
jcallen left,
b^_^d left,
sunnavy left,
rjbs left,
huf left,
sjn left,
BinGOs left,
gabiruh left,
hoelzro joined,
flussence joined,
d^_^b joined,
d^_^b left,
d^_^b joined,
rjbs joined,
sjn joined,
domm_ joined,
Cheery joined,
Hotkeys joined,
gabiruh joined,
dylanwh joined,
timotimo joined,
BinGOs joined,
bitmap joined,
SHODAN joined,
nebuchadnezzar joined,
zhmylove joined,
Amnez777 joined,
gfldex joined,
jcallen joined,
sunnavy joined,
decent joined,
huf joined,
Bucciarati joined,
saaki joined,
[ptc] joined,
bartolin joined,
Grrrr joined,
ugexe joined,
Peter_R joined,
krakan joined,
inokenty joined,
jast joined,
rafl joined,
geekosaur joined,
edenc joined,
kshannon joined,
sQuEE joined,
luis joined,
Exodist joined
09:54
damnlie joined,
avalenn joined,
Ulti joined
09:55
aindilis` left,
orbus joined
10:00
PotatoGim joined,
espadrine joined
10:02
ggherdov_ joined
10:03
SmokeMachine____ joined,
peteretep joined,
espadrine left,
avalenn left,
damnlie left,
rafl left,
hoelzro left,
[ptc] left,
Peter_R left,
flussence left,
ocbtec left,
xinming_ left,
ilbot3 left,
_mg_ left,
ruoso left,
AlexDaniel left,
abaugher left,
dustinm` left,
sjohnsen left,
robinsmidsrod left,
hoelzro joined,
ruoso joined,
flussence joined,
sjohnsen joined,
AlexDaniel joined,
iH2O joined,
ocbtec joined,
damnlie joined,
abaugher joined
10:04
iH2O left,
ilbot3 joined,
avalenn joined
10:05
_mg_ joined,
rafl joined,
robinsmidsrod joined,
[ptc] joined,
Peter_R joined,
dustinm` joined
10:06
Lucas_One_ joined
10:08
_mg_ left,
ocbtec left,
sjoshi left,
wamba left,
DrPete left,
bioexpress left,
colomon left,
molaf__ left,
Psyche^ left,
Timbus left,
yurivish left,
tinita left,
pecastro left,
luiz_lha left,
frew left,
hahainternet left,
Celelibi left
10:09
tinita joined,
pecastro joined,
Psyche^ joined,
luiz_lha joined,
molaf__ joined,
hahainternet joined,
Celelibi joined,
wamba joined,
Timbus joined,
yurivish joined,
sjoshi joined,
DrPete joined,
colomon joined,
ocbtec joined,
luiz_lha is now known as Guest18334,
xinming joined
10:10
RabidGravy joined
10:11
frew joined,
_mg_ joined
10:12
Guest18334 is now known as luiz_lha
10:13
corbyhaas_ joined,
TEttinger left,
jnap joined
|
|||
RabidGravy | MARNING | 10:13 | |
sortiz | \o RabidGravy | 10:14 | |
10:24
dakkar_ joined
10:25
azawawi joined
|
|||
azawawi | modules.perl6.org/ # 503 error | 10:26 | |
moritz | gaaaah, we *still* have no service file for starting that mojo app :( | 10:27 | |
10:28
dakkar_ left
10:29
kurahaupo joined
|
|||
RabidGravy | is anyone looking at the e.g. github.com/perl6/gtk-simple/issues/23 ? (summary something changed in require and broke panda) | 10:31 | |
10:31
espadrine joined
10:32
bioexpress joined,
Ven_ left
10:33
kurahaupo_ joined
10:34
kurahaupo` joined
|
|||
azawawi | any chance we could add line number information to the module-not-found message "Could not find Foo::Bar in: <back-trace>"? | 10:34 | |
10:34
viralbus joined
|
|||
azawawi | RabidGravy: our travis CI testing methodology is flawed btw | 10:35 | |
RabidGravy: and hi... how are you doing? :) | |||
RabidGravy | I'm fabulous! | ||
azawawi | RabidGravy: we test `prove -ve t` but not `panda install .` | 10:36 | |
10:36
kurahaupo left
|
|||
azawawi | RabidGravy: hence META.info can be wrong, deps can wrong, bad resources, ...etc | 10:36 | |
10:37
kurahaupo_ left
|
|||
RabidGravy | I've got at least one module that *does* do that | 10:38 | |
azawawi | which one? | 10:40 | |
moritz: any chance we could add line number information to the module-not-found message "Could not find Foo::Bar in: <back-trace>"? | |||
10:40
polyfloyd left,
polyfloyd joined
|
|||
azawawi | moritz: right now when an error occurs in atom editor / perl 6 tools plugin, it is always on line #1... since there is no line number | 10:40 | |
10:41
sjoshi left,
araujo joined,
araujo left,
araujo joined
|
|||
viralbus | Hi there! I'm new to Perl6 (but I've used Perl since Perl 4 days). I have a question regarding Unicode strings and regexes: If I have a string defined like this: my $x = "a\c[COMBINING ACUTE ACCENT]" and I want to replace the acute accent with another one, the following doesn't work: $x ~~ s/\c[COMBINING ACUTE ACCENT]/\c[COMBINING DOT ABOVE]/; | 10:42 | |
El_Che | do I understand correctly that panda will create .precomp files? I am putting a perl6 app in docker on a disposable container (will be reactreated each time it runs) | ||
10:42
araujo left
10:43
araujo joined,
araujo left,
araujo joined,
ilmari_ is now known as ilmari
10:44
araujo left
|
|||
viralbus | I presume that's because the character and the accent have been combined into one, but how to I run a regex on the .NFD form? $x.NFD ~~ s/........ doesn't seem to work, either. | 10:44 | |
azawawi | El_Che: my understanding is that the rakudo perl6 process creates those folders | 10:45 | |
10:45
dakkar joined
|
|||
RabidGravy | yeah, it gets created in the repo that the module was found when the module is loaded | 10:45 | |
10:46
kurahaupo` left
10:49
Skarsnik joined,
yurivish left,
pecastro left,
flussence left,
SmokeMachine____ left,
huf left,
Amnez777 left,
gfldex left,
sergot left,
dalek left,
Cabanossi left,
mrsolo left,
mprelude_ left,
eternaleye left,
ELBeavers left,
gypsydave5 left,
johan left,
timrs2991 left,
daxim left,
ggoebel16 left,
dsp- left,
riatre left,
pnu left,
a3r0 left,
bhm left,
solarbunny left,
huggable left,
arnsholt left,
cpage left,
rudi_s_ left,
mtj_ left,
cosimo left,
Jonis_ left,
boegel left,
konobi left,
mephinet left,
mst left,
mre left,
tony-o_ left,
nemo left,
yeltzooo9 left,
squain_ left,
andrewalker left,
hobbs left,
mspo left,
krunen left,
bhm joined
10:51
pecastro joined,
rudi_s joined,
johan joined,
a3r0 joined,
ELBeavers joined,
Amnez777 joined,
Jonis joined,
sergot joined,
dsp- joined,
yurivish joined,
ggoebel16 joined,
mprelude_ joined,
yeltzooo joined,
konobi joined,
nemo joined,
arnsholt joined,
M-eternaleye joined,
mspo joined,
nemo is now known as Guest75443,
konobi is now known as Guest80400,
flussence joined,
hobbs joined,
hobbs left,
hobbs joined,
boegel joined,
Cabanossi joined,
jast left,
jargan joined,
daxim joined,
mtj_ joined,
timrs2991 joined,
gypsydave5 joined
10:52
riatre joined,
sjohnsen left,
masak joined,
andrewalker joined,
cpage joined,
dalek joined,
ChanServ sets mode: +v dalek,
squain joined,
krunen joined,
mst joined,
huf joined,
mre joined,
AlexDaniel left,
sjoshi joined,
azawawi left
10:54
yoleaux left,
cosimo joined,
araujo joined
10:55
yoleaux joined,
ChanServ sets mode: +v yoleaux
10:56
pnu joined,
apiw joined,
gfldex joined
10:57
mephinet joined,
solarbunny joined
11:01
SmokeMachine____ joined
11:02
apiw left,
sjohnsen joined,
kid51 joined
11:04
mephinet left,
mst left,
riatre left,
yurivish left,
Jonis left,
a3r0 left,
ELBeavers left,
jnap left,
frew left,
ocbtec left,
wamba left,
Psyche^ left,
PotatoGim left,
ugexe left,
jcallen left,
zhmylove left,
timotimo left,
BinGOs left,
gabiruh left,
luis left,
sjn left,
d^_^b left,
kent\n left,
FROGGS left,
cpage_ left,
lnrdo left,
Juerd left,
remmie left,
avenj left,
olinkl left,
clkao left,
mohae left,
gensym left,
Amendil left,
TeamBlast left,
mithaldu_ left,
jevin_ left,
lizmat left,
skarn left,
jferrero left,
hacst left,
mathw left,
lucs left,
Upasaka left,
diakopter left,
dindinx left,
cfloare left,
smash left,
stmuk left,
dg left,
rdleon left,
sjn joined,
lizmat joined,
lnrdo joined,
ELBeavers joined
|
|||
viralbus | I can't help thinking that the proper way to do this ought to be something like $x ~~ s:nfd/\c[COMBINING ACUTE ACCENT]/\c[COMBINING DOT ABOVE]/ but when I tried that, I got "Adverb nfd not allowed on substitution.". :-( | 11:04 | |
11:04
smash joined,
BinGOs joined,
avenj joined
11:05
avenj left,
avenj joined,
gabiruh joined,
jferrero joined,
Jonis joined,
timotimo joined,
lucs joined,
zhmylove joined,
a3r0 joined,
ocbtec joined,
mst joined,
rdleon joined,
jcallen joined,
luis joined,
yurivish joined,
FROGGS joined,
d^_^b joined,
d^_^b left,
d^_^b joined,
dindinx joined,
stmuk joined,
gensym joined,
diakopter joined,
ugexe joined,
Upasaka joined,
frew joined,
wamba joined,
dindinx left,
dindinx joined
11:06
Amendil joined,
kent\n joined,
hacst joined,
cpage_ joined,
TeamBlast joined,
mohae joined,
Psyche^ joined,
riatre joined,
jevin joined,
mrsolo joined,
Juerd joined,
jferrero left,
jferrero joined,
remmie joined
11:07
Exodist left,
dg joined,
baest left,
mindos left,
baest joined
11:09
Exodist joined,
cfloare joined,
mathw joined,
mephinet joined
11:10
mls left,
mls joined
11:12
caasih left,
cibs left,
shicheng left
11:13
mithaldu_ joined,
skarn joined,
olinkl joined
11:14
vendethiel joined
|
|||
Skarsnik | hm, you can't new a parameter type? my Pointer[mxml_node_t] $child = Pointer[mxml_node_t].new($i); fail with Type check failed in assignment to $child; expected NativeCall::Types::Pointer[MiniXML::Raw::mxml_node_t] but got NativeCall::Types::Pointer | 11:15 | |
I tried with .= new it does not work etheir | |||
11:15
mindos joined
|
|||
arnsholt | It's an issue with how the parameterized types are created in NativeCall | 11:16 | |
I've worked on fixing it, but haven't had time to complete it | |||
jnthn | arnsholt: Using 6pe? | 11:17 | |
11:17
clkao joined
|
|||
jnthn | (6model parametric extensions) | 11:17 | |
11:17
ocbtec left
|
|||
Skarsnik | damn | 11:17 | |
11:18
ocbtec joined,
jnap joined
11:19
bioexpress left,
PotatoGim joined
11:21
caasih joined
11:23
CIAvash left
11:24
viralbus left
11:25
viralbus joined,
araujo left
11:26
araujo joined
|
|||
RabidGravy | I just can't replicate the way that panda is failing with the redefinition of 'Build' | 11:27 | |
11:28
araujo left
11:29
araujo joined,
telex left
|
|||
sortiz | Skarsnik, I working on fixing DBIish, now passing tests. \o/ | 11:29 | |
*I'm | 11:30 | ||
11:30
telex joined
|
|||
viralbus | So to rephrase my question: To replace a Unicode modifier in a string, what's the best alternative to $x ~~ s:nfd/\c[COMBINING ACUTE ACCENT]/\c[COMBINING DOT ABOVE]/ ? Also, is the :nfd adverb going to be implemented at some point (I saw it mentioned on a couple of web pages, but I'm not sure they were authoritative)? | 11:33 | |
jnthn | viralbus: We plan to support regexes at levels other than graphemes eventually | 11:36 | |
(In some future Perl 6 version) | |||
11:37
vendethiel left
|
|||
jnthn | Someone else may have a better idea, but the first thing that comes to mind is to do something with .NFD.list.map(...) and the map will map the combining chars as needed | 11:38 | |
m: samemark | 11:39 | ||
camelia | rakudo-moar 5d7f65: OUTPUT«5===SORRY!5=== Error while compiling /tmp/y9B4GXNLReCalling samemark() will never work with any of these multi signatures: ($s, $pat)at /tmp/y9B4GXNLRe:1------> 3<BOL>7⏏5samemark» | ||
jnthn | aha | ||
I think samemark is also useful for this kind of thing | |||
11:39
addison_ joined
|
|||
moritz | iirc samemark replaces the base character, not the mark | 11:39 | |
11:41
ilogger2 joined,
ChanServ sets mode: +v ilogger2
|
|||
viralbus | jnthn: Thanks, that's useful! | 11:41 | |
11:41
bioexpress joined
11:42
cognominal joined
11:44
lokien joined
11:45
skaji joined
|
|||
lokien | hey guys, can you help me with some text parsing? | 11:45 | |
11:45
Ulti joined
|
|||
DrForr | Good question. What's the text? In a pastebin, if you please. | 11:45 | |
11:45
gypsydave5 joined
|
|||
lokien | pastebin.com/kS96ZtVC | 11:46 | |
I need only packages names, without commas and things in parentheses | |||
moritz | lokien: seems straight forward to me. What have you tried so far? | 11:48 | |
jnthn | m: say 'qml-module-org-kde-kio:amd64 (5.15.0-0ubuntu1, automatic), kde-telepathy-minimal:amd64 (15.04.20ubuntu1, automatic), liboxygenstyle5-5:amd64 (5.4.2-0ubuntu1, automatic)'.comb: /<[\w-]>+ )> ':'\w+ ' ('/ | ||
camelia | rakudo-moar 5d7f65: OUTPUT«(qml-module-org-kde-kio kde-telepathy-minimal liboxygenstyle5-5)» | ||
jnthn | hah, got it in one :P | ||
lokien | nothing, I'm a noob :^( | ||
jnthn | .oO( why isn't the rest of my code going like that today... ) |
11:49 | |
moritz | m: say 'qml-module-org-kde-kio:amd64 (5.15.0-0ubuntu1, automatic), kde-telepathy-minimal:amd64 (15.04.20ubuntu1, automatic), liboxygenstyle5-5:amd64 (5.4.2-0ubuntu1, automatic), k3b-data:amd64 (2.0.3-0ubuntu3, automatic), kimageformat-plugins:amd64 (5.15.0-0ubuntu1)'.split(/\,\s+).map({ .split(':')[0]}) | ||
camelia | rakudo-moar 5d7f65: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_Ez76R42C6Unable to parse regex; couldn't find final '/'at /tmp/_Ez76R42C6:1------> 3ns:amd64 (5.15.0-0ubuntu1)'.split(/\,\s+7⏏5).map({ .split(':')[0]}) expecting any of: argument…» | ||
moritz | m: say 'qml-module-org-kde-kio:amd64 (5.15.0-0ubuntu1, automatic), kde-telepathy-minimal:amd64 (15.04.20ubuntu1, automatic), liboxygenstyle5-5:amd64 (5.4.2-0ubuntu1, automatic), k3b-data:amd64 (2.0.3-0ubuntu3, automatic), kimageformat-plugins:amd64 (5.15.0-0ubuntu1)'.split(/\,\s+/).map({ .split(':')[0]}) | ||
camelia | rakudo-moar 5d7f65: OUTPUT«(qml-module-org-kde-kio automatic) kde-telepathy-minimal automatic) liboxygenstyle5-5 automatic) k3b-data automatic) kimageformat-plugins)» | ||
moritz | m: say flat 'qml-module-org-kde-kio:amd64 (5.15.0-0ubuntu1, automatic), kde-telepathy-minimal:amd64 (15.04.20ubuntu1, automatic), liboxygenstyle5-5:amd64 (5.4.2-0ubuntu1, automatic), k3b-data:amd64 (2.0.3-0ubuntu3, automatic), kimageformat-plugins:amd64 (5.15.0-0ubuntu1)'.split(/\,\s+/).map({ .split(':')[0]}) | ||
camelia | rakudo-moar 5d7f65: OUTPUT«(qml-module-org-kde-kio automatic) kde-telepathy-minimal automatic) liboxygenstyle5-5 automatic) k3b-data automatic) kimageformat-plugins)» | ||
moritz | ah no, doesn't work that easily | 11:50 | |
jnthn | :) | ||
11:50
Ulti left
|
|||
jnthn | Yeah, that's why I reached for .comb...felt easier to say what I did want | 11:50 | |
11:50
orbus joined,
f3ew joined,
Ulti joined,
shmibs joined
|
|||
DrForr | lokien: Maybe theperlfisher.blogspot.com/2016/02/...rs-pt.html would help? | 11:50 | |
11:50
Amnez777 joined,
xxpor joined,
araujo joined,
araujo left,
araujo joined,
anshin joined,
moritz joined,
maddingue joined,
pochi joined,
SHODAN joined,
espadrine joined
|
|||
jnthn | And by nomming the opening paren you make sure you don't get false positives from stuff inside of them | 11:50 | |
11:50
rjbs joined,
[particle] joined,
adrusi joined,
salva joined
11:51
xnrand joined,
go|dfish joined,
woodruffw joined,
lucs joined,
leedo joined,
woodruffw left,
Sgeo_ joined
|
|||
lokien | DrForr: thank you :) | 11:51 | |
11:51
cpage joined,
woodruffw joined
11:52
kaare_ joined,
araujo left
|
|||
DrForr | (I do feel a touch awkward about pimping my own tutorials, but if not me, who? | 11:52 | |
11:52
Amnez777 left,
Amnez777 joined
|
|||
DrForr | s/$/)/ | 11:52 | |
11:52
araujo joined
11:53
araujo left,
vike joined
|
|||
lokien | if it's good, why not :D DrForr | 11:54 | |
11:54
masak joined,
charsbar__ joined,
Laurent_R joined
11:55
ab5tract joined,
advwp joined
|
|||
moritz | it's totally fine | 11:56 | |
as long as you don't start off-topic spamming :-) | |||
11:56
ponbiki joined
|
|||
lokien | jnthn: why doesn't perl print the entire thing? :^( | 11:56 | |
11:56
ponbiki is now known as Guest94955
|
|||
lokien | it's (blah blah blah ...) | 11:56 | |
why not (blah blah blah blah blah) :^( | |||
11:58
gcole joined,
brabo joined
|
|||
viralbus | m: my $x = "a\c[COMBINING ACUTE ACCENT]"; say $x.NFD.list.map({$_ == ord("\c[COMBINING ACUTE ACCENT]")?? ord("\c[COMBINING DOT ABOVE]")!! $_}).chrs; | 11:58 | |
camelia | rakudo-moar 5d7f65: OUTPUT«ȧ» | ||
jnthn | lokien: Because you did say, not print? :) | ||
lokien | jnthn: oh, right! silly me :D | ||
jnthn | lokien: But more idiomatic is to probably .join(', ') or however you want them joined | ||
lokien | jnthn: I want them joined by spaces | 11:59 | |
11:59
cognominal left,
xinming left
|
|||
jnthn | OK, then .join(' ') | 11:59 | |
11:59
Cheery joined,
domm_ joined,
silug joined,
DrForr joined
|
|||
Skarsnik | lokien, use .perl and not gist? | 11:59 | |
lokien | good ol netsplit | ||
11:59
ruoso joined,
ashleydev joined,
garu joined,
Possum joined,
cfedde joined,
bakedb joined,
kst joined
|
|||
Skarsnik | these netsplit today | 11:59 | |
11:59
perlpilot joined
|
|||
viralbus | So that works -- thanks! However, $x ~~ s:nfd/.../.../ would have been much prettier. :-/ | 11:59 | |
11:59
jercos joined,
felher joined,
mprelude_ joined,
BooK joined,
cognominal joined
|
|||
lokien | jnthn: why would I do that? they're printed with spaces already | 11:59 | |
11:59
au joined
12:00
Roamer` joined
|
|||
jnthn | lokien: Explicitness? :) | 12:00 | |
12:00
Amnez777 left,
telex joined,
shadowpaste joined,
sno joined
|
|||
dalek | Iish/sortiz-fix_require: 983e4b1 | (Salvador Ortiz)++ | .gitignore: Update .gitignore |
12:00 | |
Iish/sortiz-fix_require: abf4dde | (Salvador Ortiz)++ | lib/DB (2 files): Fix dinamic drivers loading Somewho require wasn't working and the instantation of the class failed. With an explicit search in the package works. Also add a cache of loaded drivers. |
|||
Iish/sortiz-fix_require: 4047025 | (Salvador Ortiz)++ | lib/DBDish/Pg (3 files): Optimize modules loading |
|||
Iish/sortiz-fix_require: 3ea08b5 | (Salvador Ortiz)++ | lib/DBDish/Pg/Native.pm6: Move ENV var resolution to runtime |
|||
12:00
esh joined,
kid51 joined,
pRiVi joined
|
|||
lokien | jnthn: oh, oh! it's broken! :D | 12:00 | |
12:00
pyrimidine joined,
Amnez777 joined
|
|||
jnthn | lokien: But yeah, for just spaces you can save some chars | 12:00 | |
12:00
johan joined,
k-man joined
12:01
sftp joined
|
|||
lokien | m: say 'kdepim-runtime:amd64 (15.08.2-0ubuntu1, automatic)'.comb: /<[\w-]>+ )> ':'\w+ ' ('/ | 12:01 | |
camelia | rakudo-moar 5d7f65: OUTPUT«(kdepim-runtime)» | ||
12:02
petercommand joined,
lestrrat joined
|
|||
lokien | whaaa | 12:02 | |
12:02
Fleurety joined,
jeek joined,
bowtie joined,
richi235 joined
|
|||
lokien | m: say 'libkf5kdelibs4support-data:amd64 (5.15.0-0ubuntu1, automatic)'.comb: /<[\w-]>+ )> ':'\w+ ' ('/ | 12:02 | |
camelia | rakudo-moar 5d7f65: OUTPUT«(libkf5kdelibs4support-data)» | ||
lokien | m: say 'libxfreerdp-client1.1:amd64 (1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1, automatic)'.comb: /<[\w-]>+ )> ':'\w+ ' ('/ | 12:03 | |
camelia | rakudo-moar 5d7f65: OUTPUT«(1)» | ||
lokien | this one! | ||
FROGGS | lokien: you can also privmsg camelia if you wanna try many things | ||
lokien | jnthn: broken!! :D | ||
12:03
nchambers joined,
Lucas_One_ left
|
|||
lokien | FROGGS: sorry, I was sure it'll work every time. but it didn't. I won't do that again | 12:03 | |
12:04
profan joined,
pmqs joined,
raydiak_ joined,
agentzh joined,
MilkmanDan joined,
cibs joined,
jcallen joined
|
|||
FROGGS | lokien: np | 12:04 | |
12:04
perigrin joined,
bowtie is now known as Guest30782,
cibs left,
xinming joined,
cibs joined
|
|||
FROGGS | lokien: if you have questions, you can run an example here and ask for help | 12:05 | |
lokien: but if you want to try many things, privmsg with camelia is better | |||
lokien | FROGGS: I just wanted to show jnthn his script is broken in some cases :( | ||
moritz | you need to relax the \w+ a plus | 12:06 | |
12:06
rudi_s joined
|
|||
moritz | you can write ':'\S+\s', automatic' for example | 12:06 | |
12:06
vendethiel joined
|
|||
Skarsnik | well it a quick solution, obviously it need more work to handle every case x) | 12:06 | |
but dpkg does not give you a better output? | 12:07 | ||
lokien | so I'll try to fix it. hope my pc won't catch fire | ||
12:07
agentzh left,
MilkmanDan left
|
|||
lokien | Skarsnik: it's a file from my apt history, I want to purge kde | 12:07 | |
12:08
bioexpress left
|
|||
Skarsnik | there was not a meta package for that? | 12:08 | |
jnthn | lokien: Glancing quickly, that name has a . in it, so you'd need to add . to that first char class | ||
12:09
SmokeMachine____ joined,
Lucas_One_ joined,
zostay joined
|
|||
lokien | Skarsnik: sadly, no. one has to find and uninstall 10000 packages manually | 12:09 | |
jnthn: thanks | |||
12:09
veke joined
|
|||
Skarsnik | I need to use === to compare a Pointer to Pointer (NULL) ? | 12:10 | |
FROGGS | or +ptr == +ptr | 12:13 | |
12:13
rindolf joined
|
|||
arnsholt | jnthn: Yeah, I think I have a half-done NativeCall with 6pe branch somewhere | 12:13 | |
12:13
agentzh joined,
agentzh left,
agentzh joined
12:14
ely-se joined,
araujo joined,
araujo left
12:15
araujo joined,
araujo left,
araujo joined
|
|||
sortiz | In branch DBIish/sortiz-fix_require the fix for the issue reported yesterday, I appreciate some review before merge. | 12:15 | |
Skarsnik | did you fix only the require stuff? | 12:16 | |
for me it's a rakudo bug probably x) | |||
12:17
araujo left,
araujo joined,
sufrostico joined,
lokien left
|
|||
sortiz | Can be a rakudo bug, but now it works. All tests passed and allows me to work in the array stuff. | 12:19 | |
Skarsnik | nice you patched the env stuff ^^ | 12:20 | |
sortiz | I fix also the problem with the env vars captured at compile time, I move it's resolution to runtime. | ||
Skarsnik | I don't like this solution because it use NC internals xD | ||
sortiz | Yep, and implement a cache of loaded drivers to avoid a double require. :) | 12:21 | |
I know that you don't be so happy with it, but need to fix it any way, later can discuss a better way. | 12:22 | ||
arnsholt | Hmm, wait. Looks like that stuff is merged actually | 12:23 | |
12:24
kid51 left
|
|||
Skarsnik | I am not fan of the changes in the need/use/important, but avoiding the double require is nice | 12:24 | |
*import | |||
12:24
Amnez777 left,
_mg_ left,
DrPete left,
luiz_lha left
12:25
jast joined,
jdv79 joined,
kshannon joined,
squain joined,
risou joined,
frederico joined,
lnx joined,
Rotwang joined,
cxreg joined
|
|||
RabidGravy | :-\ | 12:25 | |
12:25
Zero_Dogg joined,
Zero_Dogg left,
Zero_Dogg joined,
drforr1 joined,
Amnez777 joined,
luiz_lha joined,
frew joined,
aigan_ joined,
flussence joined,
klapperl joined,
apathor joined,
Humbedooh joined,
retupmoca joined,
hobbs joined,
riatre joined,
hobbs left,
hobbs joined,
pdcawley joined
|
|||
RabidGravy | what is going on with this network today | 12:25 | |
12:25
ocbtec joined,
arnsholt joined,
dalek joined,
ChanServ sets mode: +v dalek,
jameslenz joined,
mspo joined,
sQuEE joined,
edenc joined,
luiz_lha is now known as Guest4943,
_mg_ joined,
Psyche^ joined,
hippie joined,
Humbedooh left,
Humbedooh joined,
Grauwolf joined
12:26
stux|RC-only joined,
DrPete joined,
camelia joined,
Vitrifur joined
|
|||
Skarsnik | hm repeat is supposed to always be executed once? (and the conditio evalued after?) | 12:26 | |
arnsholt | Skarsnik: I was wrong about the Pointer stuff. That's supposed to work (and mostly does, I think), but the "Pointer.new($address)" constructor is bugged, it seems | ||
12:27
Amnez777 left,
Amnez777 joined,
notbenh joined
|
|||
Skarsnik | it does not return a parametred object? | 12:27 | |
12:27
simcop2387 joined,
MadcapJake joined
|
|||
arnsholt | Looking at the code, I think not | 12:27 | |
In the address constructors, try replacing ::?CLASS with self.WHAT | |||
12:28
ChanServ sets mode: +v camelia,
vendethiel left
|
|||
dalek | Iish: 983e4b1 | (Salvador Ortiz)++ | .gitignore: Update .gitignore |
12:28 | |
Iish: abf4dde | (Salvador Ortiz)++ | lib/DB (2 files): Fix dinamic drivers loading Somewho require wasn't working and the instantation of the class failed. With an explicit search in the package works. Also add a cache of loaded drivers. |
|||
Iish: 4047025 | (Salvador Ortiz)++ | lib/DBDish/Pg (3 files): Optimize modules loading |
|||
Iish: 3ea08b5 | (Salvador Ortiz)++ | lib/DBDish/Pg/Native.pm6: Move ENV var resolution to runtime |
|||
Iish: 5f79574 | RabidGravy++ | / (6 files): Merge pull request #51 from perl6/sortiz-fix_require Fix for #50 |
|||
Skarsnik | You should do the other driver for the env fix if you are willing ^^ | 12:29 | |
12:30
cosarara joined
|
|||
sortiz | arnsholt, yesterday I was asking about that ::?CLASS, without answers ;) | 12:30 | |
12:31
mephinet joined
12:32
integral joined,
integral left,
integral joined
|
|||
arnsholt | I wasn't here for that =) | 12:32 | |
12:32
mkz joined,
dustinm` left,
damnlie left,
hoelzro_ joined,
[TuxCM] joined,
ilmari_ joined,
polyflod joined,
KotH joined,
zakharyas1 joined,
dylanwh_ joined,
ingy joined,
zhmylove joined,
nine joined,
roguelazer joined,
mre joined,
siriu5b joined,
siriu5b left,
siriu5b joined,
sergot joined,
gfldex joined,
ambs joined
|
|||
sortiz | Ups! | 12:32 | |
12:32
jnthn joined
12:33
damnlie joined,
dindinx joined,
atta joined,
sjoshi joined,
TeamBlast joined,
dustinm` joined,
darutoko joined,
boegel joined,
RabidGravy joined,
zacts joined
|
|||
Skarsnik | I have a weird bug with a repeat { } while loop | 12:33 | |
12:33
zacts is now known as Guest49472,
geekosaur joined
12:34
b2gills joined,
tadzik joined
|
|||
masak | Skarsnik: bring it. | 12:34 | |
Skarsnik | Don't know how to golf it | ||
masak | (pref'r'bly golf'd) | ||
12:34
dg joined
|
|||
masak | :) | 12:34 | |
don't know *yet* how to golf it | |||
12:34
cbk joined
12:35
_mg_ left,
_mg_ joined
|
|||
Skarsnik | gist.github.com/Skarsnik/cdcfcb15e766913970c8 | 12:36 | |
if you look at it the =has child= string should always be followed by a 'BUILD-TREE-CHILD' | |||
12:36
rvchangue joined
|
|||
sortiz | I'll fix the others drivers on the env var issue. | 12:36 | |
12:37
nightfrog joined,
emdashcomma joined
|
|||
Skarsnik | but it get skipped | 12:37 | |
12:37
rodarmor joined
|
|||
Skarsnik | The code miss me children of the xml document because of that x) | 12:38 | |
12:39
El_Che joined,
khagan joined,
peteretep joined
12:40
BuildTheRobots joined,
bpmedley joined
|
|||
Skarsnik | Great it's a variant of the { loop() {} } bug that was giving failure after x-mas | 12:40 | |
I added a 0; after the loop and it work | 12:41 | ||
12:42
chansen_ joined
12:44
parisba joined,
parisba is now known as Guest26382
12:45
sivoais joined,
lucasb joined
|
|||
sortiz | mysql driver lacks a version number, that cause that the development libraries must be installed for it to work, the issue #47, I will use v18, the one on my system. Comments? | 12:45 | |
Skarsnik | Nop | 12:46 | |
v16-v22 work | |||
I think I have 22 here | |||
12:47
WizJin joined
|
|||
lucasb | will there be a release this weekend or it will get postponed? | 12:47 | |
Skarsnik | 14-18, not 22 >< | ||
dalek | kudo/nom: 8ab2b85 | lizmat++ | src/core/Str.pm: Cosmetic fix for better highlighting |
12:48 | |
Skarsnik | I mean mysqlclient does not have a api version fixed. 18 is probably fine but I am pretty sure DBIish work with 16 | ||
12:49
ggherdov_ joined
12:50
vendethiel joined
|
|||
lucasb | can someone merge this PR? github.com/rakudo/rakudo/pull/710 | 12:50 | |
sortiz | Ok, but we need to think in a way that allows end users to use it without need to install development libraries. | ||
12:51
Spot__ joined,
kipd joined
|
|||
lizmat | lucasb: looking at it now | 12:51 | |
12:51
mithaldu_ joined
|
|||
lucasb | lizmat: thank you :) | 12:52 | |
12:52
clkao joined
|
|||
sortiz | And not need to set the env var unless the have special requirements. | 12:52 | |
12:52
Amnez777 left
|
|||
dalek | kudo/nom: 7a8d085 | lizmat++ | src/core/Str.pm: Move LSM class closer to client To allow for easier refactoring |
12:52 | |
12:53
Guest26382 left,
Ven joined
|
|||
Skarsnik | segfault in display is annoying x) | 12:55 | |
RabidGravy | Okay, in the circumstance that panda gets a module's Build.pm the "Build" gets in the LEXICAL::GLOBALish:: but not in GLOBAL:: and ::("Build") is not finding the symbol, does that mean that ::() needs fixing or is there another way of doing this? | 12:56 | |
12:57
sjoshi left
|
|||
Skarsnik | could be tied to the require ::() stuff? | 12:58 | |
RabidGravy | but more importantly GLOBAL::<Build>:delete isn't deleting anything hence the redefinition error | ||
almost certainly | |||
lizmat | RabidGravy: have you tried GLOBAL::.DELETE-KEy('Build') ? | 12:59 | |
*KEY | |||
Skarsnik | well :delete should work? | 13:00 | |
RabidGravy | yeah, I'm curious as to why there would be a difference | ||
lizmat | :delete is syntactic sugar allowing for deleting slices and such | ||
I would just want to check whether the sugar is getting in the way somehow | |||
Skarsnik | is there a way to remove the Use of uninitialized value of type blabla in String context? | 13:01 | |
lizmat | Skarsnik: afaik, that warning was put there for a reason | ||
Skarsnik | well it's annoying when debugging | 13:02 | |
I mean, just replace with '' if it's undef x) | |||
dalek | kudo/nom: 5dfdc11 | (Salvador Ortiz)++ | src/core/Exception.pm: Exception.fail should reliably die if outside of a routine A straight port of github.com/rakudo/rakudo/commit/31...ff9d239cd8 |
||
kudo/nom: f5a712f | lizmat++ | src/core/Exception.pm: Merge branch 'patch-1' of github.com/salortiz/rakudo into salortiz-patch-1 |
|||
kudo/nom: bcab502 | lizmat++ | src/core/Exception.pm: Merge branch 'salortiz-patch-1' into nom |
|||
Skarsnik | hm look like I have a missized union | 13:05 | |
lizmat | Skarsnik: without the warning, you might not have found out ? | 13:07 | |
Skarsnik | na it segfault | ||
lizmat | :-( | ||
RabidGravy | lizmat, It's not the deleting that is the problem, it's that the symbol isn't in the GLOBAL:: to be deleted at all :-\ | 13:09 | |
13:10
veke left
|
|||
RabidGravy | I can actually reproduce now by running Panda::Build.build twice | 13:11 | |
13:11
vendethiel left
|
|||
RabidGravy | but yeah, the ::() isn't finding the symbol even though I can see it, so It needs to be fixed | 13:15 | |
13:18
Actualeyes joined,
vendethiel joined
|
|||
sortiz | RabidGravy, In DBIish I had to be very specific to make ::($foo).new() work. | 13:21 | |
stmuk | "Don't know how to 'no warnings' just yet | 13:22 | |
any work around? I am finding the nativecall version nagging annoying | |||
RabidGravy | CONTROL { when X::Warni { $_.resume } }; or something like that | 13:23 | |
13:23
Actualeyes left
|
|||
jnthn | CX::Warning I think | 13:24 | |
Skarsnik | it's not a warning x) | 13:27 | |
it's a note | |||
jnthn | :/ | 13:28 | |
13:28
uruwi joined
|
|||
stmuk | I just used X::Warn to make warnings fatal by mistake so I'm getting there :) | 13:29 | |
CX::Warn even | |||
13:30
ilmari_ is now known as ilmari
|
|||
Skarsnik | Could be raise to a warning maybe? | 13:31 | |
13:31
apiw joined
|
|||
jnthn | Sounds like | 13:31 | |
Modules really shouldn't note | |||
13:32
lucasb left
|
|||
jnthn | (Unless they're expected to do output to stderr as part of their useful function) | 13:32 | |
sortiz | stmuk, About versions, are you talking about the detail with mysql in DBIish? | ||
stmuk | its not DBIish .. it's SDL2::Raw .. but I get the version warnings with most nativecall modules | 13:33 | |
jnthn | Is the warning worth it? | 13:35 | |
Skarsnik | well they forget to give a version | ||
flussence | I've never seen anyone say a *positive* thing about it... | ||
13:35
uruwi_ joined
|
|||
jnthn | Skarsnik: Yes, but should NativeCall be so strongly forcing that on people? | 13:35 | |
I'm not convinced it should. | 13:36 | ||
moritz | Skarsnik: or maybe it's just code from before the versioning thing | ||
RabidGravy | so yeah it does seem that the ::() isn't looking in the right place for a lexical symbol | ||
Skarsnik | os X/BSD/Linux doc about shared lib say it should always give an ABI/API version | ||
flussence | and it's a bit hypocritical to demand more out of nativecall users than *the language itself* bothers to give for its compiled libs | ||
13:37
uruwi left
|
|||
RabidGravy | right, but a lot of things either ignore that or they got built some way that it doesn't get one | 13:37 | |
sortiz | The problem is that without a version number, NC can only found the library via then symlink of the development version. | ||
s/then/the | 13:38 | ||
RabidGravy | if it is indeed a symlink | ||
some things just install a .so | |||
sortiz | Normally that's the case | ||
Skarsnik | lot of distrib chose to provide the .so as a symlink in the devel package, because that what it should be | ||
.so is a devel thing | |||
still according to doc about shared lib | |||
RabidGravy | it's not | ||
I have 50+ .so files in /usr/lib64 that aren't symlinks | 13:39 | ||
jnthn | Skarsnik: Is that doc stating how things actually *are*, or an ideal for how they should be? | ||
RabidGravy | there's nothing anywhere that enforces it | ||
sortiz | Sure, for libs without versionised APIs. | 13:40 | |
Skarsnik | You can complain it miss something to explicitly tell NC to not bother with version, but in most case the version exist and should be used | ||
13:40
addison joined,
esh left
|
|||
Skarsnik | I don't think I have raw .so in my debian stable | 13:40 | |
13:40
molaf joined
|
|||
sortiz | But that way the caller can't be protected of API changes. | 13:40 | |
13:41
esh joined
|
|||
Skarsnik | execpt stuff that are plugin and loaded with dlopen | 13:41 | |
13:41
vendethiel left
|
|||
stmuk | neither quietly{} nor CONTROL { when CX::Warn { .resume } } seem to play well with NativeCall since they make further warnings fatal | 13:41 | |
sortiz | And even dlopen prefer a fully versionised request. | 13:42 | |
stmuk | maybe I can play tricks with STDERR | ||
flussence | that's a good point: even C code compiled with -Wall -pedantic doesn't get this picky about dlopen filenames. | ||
Skarsnik | jnthn, www.freebsd.org/doc/en/books/devel...shlib.html www.openbsd.org/faq/ports/specialtopics.html I don't remember where I found for general Unix system | 13:43 | |
flussence | we have a *worse* user experience than C right now. | ||
13:43
Actualeyes joined,
apiw left
|
|||
sortiz | In C, at link time the version is fixed, and we want to jump out that safety net. | 13:44 | |
Skarsnik | This warning is aimed toward developpers, without it most poeple will write is native('foo') and you will need to install foo-devel on debian/fedora (and probably other) | ||
13:44
addison left
|
|||
stmuk | see also doc.perl6.org/language/faq#Nativeca....so.1.2%21 | 13:45 | |
Skarsnik | This entry is old ^^ | 13:46 | |
RabidGravy | ls -l /usr/lib64/*.so | grep -v ^l | wc | ||
89 | |||
Skarsnik | are they real lib or think loaded by another stuff? | ||
13:47
Ven left
|
|||
RabidGravy | I'm not sure what that means in this context, they're .so files without versions (or infact most have versions in the basename it seems) | 13:48 | |
Skarsnik | I only have 19 on my debian stable (for /usr/lib) | ||
dalek | kudo/nom: 82d8e69 | lizmat++ | src/core/Str.pm: Make LSM.new take the substitutions So we can basically inline the creation of the object and returning its result. Also use long option names internally for clarity. |
||
geekosaur | *sigh* we're going to end up saying "yes fine use the unversioned .so so you have no clue what ABI you have to speak", right? | ||
flussence | $ find /usr/lib -type f -name '*.so' | wc -l | ||
718 | |||
Skarsnik | is find recursive? | ||
there is a shitton on plugin with KDE stuff | |||
RabidGravy | need to exclude the symlinks | ||
moritz | just like we're saying "you can write this code without writing unit tests, performance tests, integration tests and acceptance tests for it" | 13:49 | |
geekosaur | fine, use unversioned .so-s. runtime crashes because of incompatible ABI versions are part of The Experience | ||
find is recursive, yes | |||
arnsholt | geekosaur: Unconditionally writing to stderr when the wrapper library doesn't supply a version is kinda shit too though | ||
Skarsnik | Lib without versionning should be traited as specific case IMO | ||
flussence | among other things, that list includes libreadline.so | ||
RabidGravy | or "sorry you can't have a Tk binding because it doesn't install versioned libraries" | ||
geekosaur | flussence, tha tells me you have developer libraries installed | 13:50 | |
C programs do not use the developer libraries. | |||
ldd will show you .so.N not .so | |||
stmuk | or don't deploy nativecode in production without developer libraries | ||
geekosaur | there's a REASON for that | ||
sortiz | I prefer to force the end user to a certain version that need to debug some unnoticed API change. | ||
13:51
DarthGandalf joined
|
|||
flussence | oh right, they link to a symlink in /lib, not /usr/lib. | 13:51 | |
Skarsnik | That why in my register-native-lib stuff I have a explictly :no-version parameter for case without version | ||
jnthn | This isn't really a discussion of "is it better to use versioned libraries when available", it's "should we carp in the way we do now when that isn't specified". I think we at the very least should make it a warn, not a note. | ||
FROGGS | I'd vote for 'is native("foo", Nil)' or some such to state that one wants to use unversioned libs | ||
RabidGravy | yes | ||
flussence | oh, that isn't even a binary file it's an ld script. | 13:52 | |
FROGGS | though we still have the problem that windows has no concept of versions it seems, right? | ||
Skarsnik | and? | ||
It's not an issue | |||
jnthn | FROGGS: Yeah, you're generally best just shipping the versions you need together with your application. | ||
Skarsnik | you can always put the version. on win32 it does not change the DLL name | ||
sortiz | I prefer is native("foo", *) :) | 13:53 | |
jnthn | Yeah, I'd avoid Nil for it | ||
Skarsnik | and it does not warn if you put a path to is native | ||
FROGGS | k | ||
jnthn | * is better | ||
Skarsnik | can we write is native('foo', :no-version) ? | ||
stmuk | m: warn "foo" | ||
camelia | rakudo-moar bcab50: OUTPUT«foo in block <unit> at /tmp/9EfPvXF5kH line 1» | ||
FROGGS | so, let's turn that note off by passing *? | ||
stmuk | m: quietly { warn "foo" } | ||
camelia | ( no output ) | ||
stmuk | m: quietly { note "foo" } | ||
camelia | rakudo-moar bcab50: OUTPUT«foo» | ||
13:53
LGD joined
|
|||
Skarsnik | I did not put warn because it point to the code in NC and not the user | 13:54 | |
RabidGravy | I've just checked a small sample, the tcl, tk, xerces, smime are all unversioned and the public API | ||
13:54
wamba joined
|
|||
Skarsnik | and it's probably confusing | 13:54 | |
lizmat | afk for a few hours& | ||
FROGGS | RabidGravy: but you also have versioned libs for these, no? | ||
13:54
pmurias joined
|
|||
RabidGravy | no | 13:54 | |
Skarsnik | opengl has unversionned extension | ||
I think | |||
but it's a weird case | 13:55 | ||
RabidGravy | /usr/lib64/libtk8.6.so | ||
13:55
matt_ joined,
matt_ is now known as Guest99324,
vendethiel joined
|
|||
FROGGS | that's still versioned, isnt it | 13:55 | |
sortiz | That the case that the packager don't understand the issue an put the version in the name! | ||
pmurias | install Readline and having the version warning appear when using the REPL needs to be fixed | ||
13:56
skids joined,
cdg joined
|
|||
RabidGravy | yeah, but you'd actually say native('tk8.6'), get a rude warning and not bother | 13:56 | |
13:56
cdg left,
cdg joined
|
|||
dalek | c: 486d2bf | (Steve Mynott)++ | doc/Language/5to6-nutshell.pod: mention quietly block |
13:57 | |
sortiz | you can avoid the warning with native('tk8.6.so') | ||
Skarsnik | RPL does not a provided version with RESSOURCE? | ||
hm, interesting for TK | |||
root@testperl6:~/piko/perl6-MiniXML# apt-file show libtk8.5 | |||
libtk8.5: /usr/lib/i386-linux-gnu/libtk8.5.so | |||
libtk8.5: /usr/lib/i386-linux-gnu/libtk8.5.so.0 | |||
it's indead not a symlink on the dev package | 13:58 | ||
but debian provide a 0 | |||
RabidGravy | Plato must be splitting his sides | 13:59 | |
anyway this isn't fixing Panda | |||
14:00
MilkmanDan joined
|
|||
sortiz | Sure, and that's more important. | 14:01 | |
14:01
Ven joined,
burnersk joined
14:02
eiro joined
|
|||
sortiz | RabidGravy, the problem with Panda is the ::($foo) case for Build, no? | 14:03 | |
RabidGravy | yeah | ||
14:03
Guest26382 joined
|
|||
RabidGravy | well it is now | 14:03 | |
14:05
Guest94955 is now known as ponbiki
|
|||
RabidGravy | the actual problem as reported was that it was crapping out with "redefinition of 'Build'" because it was doing GLOBAL::<Build>:delete and it wasn't in GLOBAL:: | 14:05 | |
but in LEXICAL::GLOBALish | |||
having remedied that it appears that the ::('Build') isn't finding it | |||
because it's in LEXICAL::GLOBALish not GLOBAL | 14:06 | ||
or something, got me totally confused | |||
14:07
mrsolo joined
|
|||
jnthn | Hm, did require changes of late break global merging perhaps? | 14:08 | |
sortiz | I suppose that is caused by the recent llforrn change, see github.com/rakudo/rakudo/commit/f5...2a492aR587 | ||
14:09
[Coke] joined
|
|||
RabidGravy | possibly, but I couldn't see anything there that would do it | 14:09 | |
jnthn | CALLER::LEXICAL::GLOBALish::.merge-symbols($GLOBALish); | 14:10 | |
That looks dubious | |||
GLOBAL::.merge-symbols($GLOBALish); would feel righter | |||
sortiz | Yes, that is what i was talking about. | ||
jnthn | Because you're at runtime | 14:11 | |
GLOBALish is only something you'd want to target at compile time, and it becomes GLOBAL by runtime | |||
But it's the top level application's one that becomes GLOBAL | |||
So it's possible that this works in simple test cases, but not as soon as you're a module down in the dependency chain and do a require | |||
[Coke] wonders if we can -schedule- reboots of hack rather than have them come up same day. | 14:12 | ||
RabidGravy | yeah, I think that's probably right | ||
moritz | [Coke]: if we can get a professional admin team, yes | 14:13 | |
[Coke]: if the responsibility remains with me: no | |||
14:13
Guest99324 is now known as matt_
|
|||
stmuk | I'd say certain remote security issues = instant reboot | 14:14 | |
RabidGravy | I'm not sure if the expectation is that a require in some lexical scope only has lexical effect rather than global | ||
in which case then the ::() should be fixed | 14:15 | ||
14:15
jnap joined
|
|||
RabidGravy | or just GLOBAL::.merge-symbols | 14:16 | |
the effect previously was indeed global | |||
jnthn | You can't have lexical effects in terms of new symbols | ||
Because the set of symbols in a lexpad is immutable by runtime | |||
14:17
vendethiel left
|
|||
jnthn | And yeah, things that are global should be subject to global merging | 14:17 | |
Jsut as in use | |||
RabidGravy | I'm getting confused here, so why is there even a LEXICAL::GLOBALish at all then? | 14:19 | |
jnthn | I'm not sure there should be in this code | ||
GLOBALish means "what does this module contribute towards GLOBAL" | |||
sortiz | In llfourn commit there are an XXX comment, but I don't understand the details. | ||
14:19
avenj joined
|
|||
jnthn | But when you require you want to influence The Real Thing | 14:20 | |
RabidGravy | right, so it should be GLOBAL::.merge-symbols and the problem goes away for panda at least | 14:21 | |
[Coke] wonders if people use something other than hack to irc from. | |||
[Coke] also ponders just switching away from an always-on irc. | |||
moritz | [Coke]: fwiw I can set up a separate virtual machine for IRC | ||
[Coke]: in fact, I've done so in past, but nobody used it | |||
[Coke] | moritz: I don't imagine it will avoid reboots any more than any of the other instances. | 14:22 | |
moritz | [Coke]: well, it was the first reboot of the hypervisor today; hack is being rebooted *much* more often than other machines | ||
14:22
uruwi_ left
|
|||
Roamer` | hm, am I missing something? Is there a way to compile a regex from a string at runtime? Seems I can't call a Regex constructor, and I can't figure out the syntax for interpolating a variable in /../ as in Perl 5 without \Q..\E | 14:24 | |
moritz | Roamer`: <$string> | ||
Roamer` | moritz, hmm, okay, yes... almost... that seems to need me to keep the variables in scope when evaluating the RE, doesn't it? | 14:26 | |
I mean, say $re.perl gives me something that has the variable names in there... | 14:27 | ||
[Coke] | irc-- | ||
Roamer` | ah, well, not exactly... the regex seems to work even after I leave the block with the variables | 14:28 | |
moritz, okay, thanks, I was a bit fooled by the fact that the regex refers to the variables by name, I'll try that | |||
stmuk | [Coke]: you look like the sort of person who would like 'slack' ;) | ||
[Coke] | stmuk: more of an xmpp guy. | 14:29 | |
slack is closed source, you have to use their client, yes? | |||
moritz | Roamer`: the fun of closuring :-) | ||
sortiz | Skarsnik, should I left mysqlclient unversionized? | 14:30 | |
14:32
PotatoGim_ joined
14:33
PotatoGim_ left,
jnap left,
uruwi joined
14:34
polyflod is now known as polyfloyd
|
|||
Roamer` | moritz, hm, still doesn't quite cut it for me. OK, here's what I'm trying to do: parse a string into components, then turn each component into a different RE fragment, then concatenate the fragments into one big RE | 14:34 | |
moritz, but if I do something like for @strings -> $s { if $re.defined { $re = /<$re> <$s> } else { $re = /<$s>/ } }, then the first attempt to match against this seems to go into an infinite loop | 14:35 | ||
14:35
pmurias left
|
|||
Roamer` | and dd $re gives me Regex $re = /<$re> <$s>/ ... which kind of maybe sort of explains the infinite loop :) | 14:36 | |
14:36
pmurias joined
14:37
Ven left
|
|||
sortiz | Well, I'll commit with a reasonable v18, and a runtime var for override. | 14:37 | |
dalek | Iish: ceb56b4 | (Salvador Ortiz)++ | lib/DBDish/ (2 files): Move env's vars resolution to runtime |
||
Iish: c4d3ff6 | (Salvador Ortiz)++ | README.pod: Update copyright |
|||
Roamer` | moritz, nevermind, I'm dumb. I just figured out that I can concatenate the fragments into one big string and say $re = /<$string>/ and... well, it works. | 14:38 | |
thanks :) | |||
14:39
tony-o joined
|
|||
jnthn | m: my @strings = <a+ b* c>; say 'aaabbcd' ~~ /:my @bits = @strings; [<?{@bits}> <$(@bits.shift)>]+/ | 14:39 | |
camelia | rakudo-moar 82d8e6: OUTPUT«「aaabbc」» | ||
jnthn | That's how you could do it if you really "had to", fwiw ;) | 14:40 | |
14:44
kent\n joined
|
|||
RabidGravy | jnthn, regarding this merge-symbols malarkey do you want a PR or can it "just be fixed" ? | 14:45 | |
stmuk | perlpilot: github.com/perlpilot/benchmark/pull/7 | 14:46 | |
RabidGravy | there are issues against panda and about half the ecosystem as a result of it | ||
jnthn | RabidGravy: If somebody can test such a fix helps, I think I'm fine with it going in | 14:47 | |
RabidGravy | let me see if I can do that | 14:49 | |
14:49
ChoHag joined
|
|||
RabidGravy | first add failing test to panda | 14:49 | |
sortiz | RabidGravy, in the meantime, can be workarounded with the :delete in where you known Build is merged? | 14:51 | |
RabidGravy | oh yeah, got that part sussed | 14:52 | |
and if it really came to it I can find the symbol in the same place | |||
sortiz | yep | 14:53 | |
14:54
Ven joined
|
|||
Roamer` | jnthn, whoah, it'll take me some time to parse what you wrote there :) ... I just found out about :my in S05, now reading the rest of it carefully | 14:54 | |
(that is, I found out about it after I saw it in your example) | 14:55 | ||
Ven | I've found out you can read S05 a lot of time and still have most of it fly over your head :P | 14:58 | |
14:59
n0tjack joined
15:00
kurahaupo joined,
shicheng joined
|
|||
perlpilot | Still the same old Perl ... there's always something new to learn and you may have to read and re-read and re-read the docs in order to learn some things | 15:01 | |
15:01
kurahaupo left,
shicheng left
|
|||
RabidGravy | anyway I'm quite relaxed about how long it takes rakudo to build now, I built Ardour from scratch for the first time in ages last night and it took three hours | 15:04 | |
tadzik | yay, I'm going to gpw \o/ | 15:08 | |
RabidGravy | harr! | 15:09 | |
stmuk | me 2 | 15:11 | |
sortiz | Found something! A "my class Foo" results in ::('Foo') fails after required, but an "our class Foo" succeeds! | 15:14 | |
15:14
apiw joined
|
|||
FROGGS | that is to be expected | 15:15 | |
sortiz | Ok, so Panda Build, and in general classes to be loaded by require, should be our, never my. | 15:16 | |
RabidGravy | jnthn, I can confirm that changing that CALLER::LEXICAL::GLOBALish to GLOBAL does indeed fix the problem that panda is experiencing | ||
ugexe | why not just launch Build.pm in a separate process, which is proven to work? | 15:17 | |
RabidGravy | sortiz, but the default is "our" isn't it? | ||
FROGGS | RabidGravy: it is | ||
sortiz | Yes. | ||
But authors can use my. | 15:18 | ||
RabidGravy | ugexe, it's not just panda that is afflicted by this | ||
15:20
dalek left
|
|||
RabidGravy | it's "if something requires something in a lexical scope then the global symbols aren't available" which may break e.g. require Foo; ::('Foo').new for instance | 15:20 | |
15:21
apiw left,
dalek joined,
ChanServ sets mode: +v dalek,
pnu joined
|
|||
sortiz | But that depends on what Foo is, require is about module files, and ::('Foo') is about symbols. | 15:23 | |
ugexe | isn't that how its supposed to be though? i.e. lexical stuff stays in lexical scope? | ||
15:23
addison_ joined
15:24
ely-se left
|
|||
FROGGS | sortiz: Foo is always a symbol | 15:24 | |
15:24
ely-se joined,
uruwi left
|
|||
FROGGS | require Foo will load a compilation unit that is meant to contain such symbol | 15:24 | |
ugexe | although i think i ran into a similar problem now that im thinking about it. by putting it in the applications root namespace it worked as expected, but in a sub-namespace it would no longer work | ||
FROGGS | but it can contain other symbols as well, and also perhaps lack the Foo symbol | 15:25 | |
RabidGravy | right, but as we discussed, in the case of a class it is also "our" scoped so it should become available | ||
sortiz | FROGGS, I was talking about require "foo/Bar.pm", nothing assured you that a Bar symbol results. | ||
FROGGS | sortiz: still, the Foo in require Foo is about a symbol Foo | 15:26 | |
RabidGravy | as ::() appears to be clever enough to traverse the GLOBAL:: to find e.g. ::('Foo::Bar::Baz') | ||
FROGGS | sortiz: then we go off on load a file (cu), that is listed as "providing symbol Foo"... look at the META6.json file | 15:27 | |
there is the symbol => file mapping table | |||
15:28
addison_ left
|
|||
RabidGravy | but it traverses the GLOBAL:: and the way that require was doing it means that it was never ending up in GLOBAL so couldn't be found under some circumstances | 15:28 | |
15:28
virtualsue joined
|
|||
nine | Isn't the panda problem that loading a second Build.pm by the same process fails, because the symbol is still there? The GLOBAL::<Build>:delete; hack fails. | 15:29 | |
sortiz | FROGGS, that's clear, but for dynamic requires nothing can be assured, that is my point. | ||
15:29
virtualsue left
|
|||
FROGGS | nine: it failed because probably somebody declared the Build class as 'my', that's my guess here at least | 15:29 | |
sortiz: then we agree | 15:30 | ||
sortiz: also for use statements | |||
RabidGravy | yeah, because it isn't in GLOBAL::, but deleting from LEXICAL::GLOBALish works, however then the ::('Build') doesn't work because it isn't in the GLOBAL after the require | ||
sortiz | And if the class was "my" that results in the "Actually thrown at: in any at gen/moar/m-Metamodel.nqp line 3041" case, btw | 15:32 | |
RabidGravy | FROGGS, nah, it fails for everything ATM | ||
15:33
uruwi joined
|
|||
RabidGravy | I've made a test that can replicate without a my and fixing the require to do GLOBAL::.merge-symbols makes it pass | 15:33 | |
FROGGS | ahh, I see | 15:34 | |
RabidGravy++ | |||
RabidGravy | just running spectest | ||
sortiz | But that way any require, not only those done in "main" will be _to_ GLOBAL::, is that expected? | 15:36 | |
jnthn | sortiz: Things that are in GLOBALish *always* want merging into GLOBAL. Same with use, it doesn't matter where the use statement is. That only matters for lexical things. | 15:37 | |
sortiz | jnthn, Ok, all clear to me now. | 15:38 | |
Skarsnik | hm, how work Cunion in memory? | 15:40 | |
sortiz | Skarsnik, like a union in C, no? | 15:41 | |
Skarsnik | I mean in C | ||
Ven | well, it's just memory. the size itself is the size of the biggest union | ||
RabidGravy | it allocates enough memory for the largest itm | 15:42 | |
nine | llfourn: you want to read this ^^^ | ||
jnthn | And there's no discrimination. \o/ | ||
Or, /o\ :) | |||
Skarsnik | I try to figure why display a C union segfault sometime x) | ||
sortiz | So only one member can be used at a time. | 15:43 | |
15:43
apiw joined
|
|||
jnthn | Well, if you have something where it could hold a pointer or an int, and you try to access the pointer "view" when it's holding an int, that'll segfault pretty nicely :) | 15:43 | |
15:44
dakkar joined
|
|||
sortiz | I.e you need to know which is valid. | 15:44 | |
15:44
mst joined
|
|||
jnthn | Right | 15:45 | |
github.com/MoarVM/MoarVM/blob/mast...terp.h#L14 # the MoarVM register union, as a concrete example :) | 15:46 | ||
15:46
perlpilot left,
perlpilot joined
|
|||
Skarsnik | maybe gist on repr CUnion should say "nop" instead of sometime working and sometime not ^^ | 15:47 | |
skids | Or just show pointer values as pointers, don;t try to derefernce them. | ||
Skarsnik | It's annoying trying to display a struct that hold a cunion | 15:48 | |
arnsholt | Yeah, you can't reasonably expect gisting a CUnion to give terribly useful information | ||
15:48
isBEKaml joined
|
|||
skids | It can, just it will also display some useless information, too. | 15:48 | |
Unless you have knowlege of how to pick a union member based on other fields. | 15:49 | ||
Skarsnik | but the (bad) side effect is randomly making display a cstruct working or not | ||
arnsholt | Exactly | 15:50 | |
RabidGravy | make your own gist method in the CStruct | ||
sortiz | btw I suppose that the CUnion REPR should delay the unmarshaling to the access time. | ||
15:51
apiw left
|
|||
arnsholt | RabidGravy: Having .gist on CUnion be broken *unless* you implement something to unbreak it isn't a terribly cool thing to do, though | 15:51 | |
sortiz | lunch time& | 15:52 | |
RabidGravy | true | ||
Skarsnik | it's tricky because it's a 'normal' class with a special REPR | ||
15:53
xnrand left,
xnrand joined
|
|||
Skarsnik | I am confused. I use $stuff !=== Pointer to check if it's not NULL. It does not always work | 15:57 | |
FROGGS | Skarsnik: why dont you just check for +$stuff ? | 15:58 | |
jnthn | Or $stuff.defined | ||
arnsholt | Because that's different from everything else in NativeCall? | ||
skids | I would expect a "union { u8 a; u16 b; *int p }" where the u16 is set to 0xff11 to be displayed something like "{ union { a = 0x11 # orb = 0xff11 # orCPointer(0x11ff0000) } }" (supposing the endianness was that way) by default. | 15:59 | |
erm 0xff110000 | |||
arnsholt | jnthn: And .defined wouldn't work I think | ||
Skarsnik | Oh I need the full type | ||
arnsholt | You can create a definite instance of Pointer that converts to NULL, via Pointer.new(0) | ||
Skarsnik | Pointer[mxml_node_t] x) | ||
skids wonders how gdb displays unions. | 16:00 | ||
jnthn | arnsholt: urgh | 16:01 | |
Skarsnik | I am not sure how NC fill Pointer attributes when they are NULL | ||
arnsholt | Probably something like that | ||
Skarsnik | Look it does not set the attriute at all | ||
MadcapJake | Still UNKNOWN for all Perl FOSDEM videos... video.fosdem.org/2016/h2214/STATUS.TXT | 16:02 | |
arnsholt | jnthn: I know! I think it's mostly a question of tweaking the relevant constructors to just return the type object if the supplied address is zero, but I never got around to fixing that last time I hacked on NC (theses consume an alarming number of tuits...) | ||
16:02
Ven left
|
|||
Skarsnik | guh this xml lib is driving me crazy | 16:03 | |
it lost children x) | 16:06 | ||
RabidGravy | jnthn, it seems that the spectest passes with that s/CALLER::LEXICAL::GLOBALish/GLOBAL/ | 16:08 | |
jnthn | RabidGravy: OK; any chance of adding a spectest to cover this bustage also? | 16:10 | |
16:11
mr_ron joined
|
|||
RabidGravy | yeah, that's doable | 16:13 | |
16:16
PotatoGim_ joined
|
|||
mr_ron | m: for $*IN.lines { .say } | 16:17 | |
camelia | rakudo-moar 82d8e6: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGallAgus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;Nuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luíI mo dhiaidh bhí gleanntáin ghlas’ G…» | ||
16:17
hoelzro_ left
|
|||
mr_ron | m: for $*IN.lines -> $_ is copy { s/(\w+)/{$0 ~ $0}/; .say } | 16:18 | |
camelia | rakudo-moar 82d8e6: OUTPUT«CéadCéad slán ag sléibhte maorga Chontae Dhún na nGallAgusAgus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;NuairNuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luíII mo dhiaidh bhí gleannt…» | ||
16:18
MilkmanDan left,
MilkmanDan joined
|
|||
ilmari | m: for $*IN.lines -> $_ is copy { s/(\w+)/{$0 ~ $0}/g; .say } | 16:19 | |
camelia | rakudo-moar 82d8e6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Bi5iBFF9qRUnsupported use of /g; in Perl 6 please use :gat /tmp/Bi5iBFF9qR:1------> 3ines -> $_ is copy { s/(\w+)/{$0 ~ $0}/g7⏏5; .say }» | ||
ilmari | m: for $*IN.lines -> $_ is copy { s:g/(\w+)/{$0 ~ $0}/; .say } | ||
camelia | rakudo-moar 82d8e6: OUTPUT«CéadCéad slánslán agag sléibhtesléibhte maorgamaorga ChontaeChontae DhúnDhún nana nGallnGallAgusAgus dhádhá chéadchéad slánslán agag anan EireagalEireagal ardard inaina stuastua osos cionncionn caorcaor isis collcoll;NuairNuair aa ghlua…» | ||
mr_ron | m: for $*IN.lines <-> $_ { s/(\w+)/{$0 ~ $0}/; .say } | ||
camelia | rakudo-moar 82d8e6: OUTPUT«Parameter '$_' expected a writable container, but got Str value in block <unit> at /tmp/CvavapU4Gs line 1» | ||
16:20
hoelzro joined,
jnap joined
|
|||
mr_ron | I sort of understand why the last case fails but its a common case and think it should be documented someplace ... | 16:20 | |
16:20
ely-se left
16:21
hoelzro left
|
|||
jnthn | Perhaps worth documenting with .lines | 16:21 | |
(And yes, the behavior is correct.) | 16:22 | ||
mr_ron | thanks - jnthn++ | ||
16:23
musiKk joined,
_nadim joined
|
|||
_nadim | Hi every one! | 16:24 | |
skids | o/ | ||
16:24
uruwi left
16:27
mr_ron left
16:28
rntz joined
|
|||
rntz | does anyone know a good and thorough guide to the semantics of junctions/autothreading? I'm wondering why, for example, (1|2) + (3&4) becomes (4|5)&(5|6) and not (4&5)|(5&6). | 16:30 | |
stmuk | . o O ( behaviour ) | ||
jnthn | rntz: Language spec on this covers it, at least: design.perl6.org/S09.html#Junctions | 16:34 | |
Around "If two or more arguments are junctive" | |||
isBEKaml | Hi, must `take` on a list always be used in the context of a `gather`? | ||
doc.perl6.org/routine/take#class_Mu | 16:35 | ||
jnthn | isBEKaml: Strictly, in the dynamic scope of | ||
rntz | jnthn: thanks | ||
jnthn | isBEKaml: Though it's common to have all the takes in the static scope, for readability if nothing else :) | ||
isBEKaml | jnthn: thanks. Why can't we do something like(not valid): take 5, @array;? | ||
16:36
uruwi joined
|
|||
jnthn | m: say gather { my @array = 1,2,3; take 5, @array }; | 16:37 | |
camelia | rakudo-moar 82d8e6: OUTPUT«((5 [1 2 3]))» | ||
isBEKaml | perl6: my @a = <a b c d e f>; take 5, @a; | ||
camelia | rakudo-jvm f99bdb: OUTPUT«take without gather in block <unit> at /tmp/tmpfile:1» | ||
..rakudo-moar 82d8e6: OUTPUT«take without gather in block <unit> at /tmp/tmpfile line 1» | |||
jnthn | I don't really get what you'd want that to do | ||
isBEKaml | jnthn: \o/, now that's clear enough to me :-) | 16:38 | |
jnthn | I mean, just `push @array, 5` if you want to stick the value in the array | ||
:) | |||
isBEKaml | jnthn: no, I have > 5 elements in an array and I just want the first 5 | ||
16:38
hoelzro joined
|
|||
jnthn | Oh... | 16:38 | |
isBEKaml | m: my @a = <a b c d e f>; say gather { take 5, @a }; | 16:39 | |
camelia | rakudo-moar 82d8e6: OUTPUT«((5 [a b c d e f]))» | ||
jnthn | m: my @a = <a b c d e f>; say @a.head(5) | ||
camelia | rakudo-moar 82d8e6: OUTPUT«(a b c d e)» | ||
16:39
TimToady joined
|
|||
Skarsnik | hm, trying to give a Callback to NC Internal error: Unwound entire stack and missed handler | 16:39 | |
:( | |||
ilmari | m: my @a = <a b c d e f> say @a[0..5] | ||
camelia | rakudo-moar 82d8e6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kdxlkvvk4BTwo terms in a rowat /tmp/kdxlkvvk4B:1------> 3my @a = <a b c d e f>7⏏5 say @a[0..5] expecting any of: infix infix stopper postfix statemen…» | ||
ilmari | m: my @a = <a b c d e f>; say @a[0..5] | ||
camelia | rakudo-moar 82d8e6: OUTPUT«(a b c d e f)» | ||
16:39
khw joined
|
|||
ilmari | m: my @a = <a b c d e f>; say @a[^5] | 16:39 | |
camelia | rakudo-moar 82d8e6: OUTPUT«(a b c d e)» | ||
isBEKaml | jnthn: Ah, I was thinking too haskell-y, scala-ish :-) | 16:40 | |
jnthn | Skarsnik: Means your callback threw an exception (yes, we need to tweak the error reporting) | ||
isBEKaml: Yeah, C# uses .Take(n) also for what we have with .head, so it's an easy one to fall in to :) | |||
Though I didn't realize you were doing so for a while... | |||
Skarsnik | Probably not that. the function just do : return MXML_TEXT; (it's an enum value) | 16:41 | |
maybe it does not like fully typed Callback. I did not see an example on the test | 16:42 | ||
MadcapJake | I've got an example of using Test::Lab with AlexDaniel++'s variations on partitions (gist.github.com/AlexDaniel/1e2d1c5...d37c5d43a) here: github.com/MadcapJake/Test-Lab/blo...splits.pl6 | 16:46 | |
isBEKaml | jnthn++ | 16:47 | |
Skarsnik | hm, if I give it a native callback it fail differently | 16:48 | |
sortiz | Skarsnik, Can I see your code? | 16:51 | |
16:52
_mg_ left
|
|||
Skarsnik | gist.github.com/Skarsnik/abea9f36f99c548b147d | 16:52 | |
the binding is generated x) | |||
16:53
_mg_ joined
|
|||
Skarsnik | this give me Cannot invoke object with invocation handler in this context | 16:53 | |
for the loadstring | |||
jnthn | Pretty sure we don't handle passing other native functions in as the callback yet | 16:55 | |
16:56
sufrostico left
|
|||
Skarsnik | I try passing it the dumb_callback that does not work :( | 16:57 | |
16:57
sufrostico joined
|
|||
sortiz | Well, for start when the signature of the native (C) function needs, for example, xml_node_t*, you don't need Pointer[xml_node_t], all CStructs in another or in a call pass by reference i,e a pointer. | 16:57 | |
Pointer[xml_note_t] results in xml_node_t** | 16:58 | ||
Now what you want (The API want) | |||
s/Now/Not/ | 16:59 | ||
skids | .oO(No problem cannot be created by adding an unecessary level of indirection :-) |
||
sortiz | In NC, even for native types, a simple "is rw" produce a pointer in a call. | 17:00 | |
Skarsnik | Pointer work :) | ||
17:02
Util joined
|
|||
Skarsnik | think that the code is generated. I have no way of knowing if a xml_node_t* will be just read or erased (so put rw or not) | 17:02 | |
17:02
musiKk left
|
|||
timotimo | i wonder if we can specialize the "too many positionals passed" error message to point out whether or not an invocant is included in the count | 17:03 | |
yoleaux | 07:28Z <FROGGS> timotimo: how so? | ||
sortiz | The API give you clues, for returning an allocated pointer in an argument, the API needs ** | 17:04 | |
17:05
vendethiel joined
|
|||
MadcapJake | Ruby was a strikingly easy language to translate into Perl 6 | 17:06 | |
sortiz | To pass an already allocated one, the API needs *. So the from the signature you know what you need. | ||
And if you are writing a binding generator, you need to understand those details very well. | 17:08 | ||
timotimo | moritz: i'm ashamed to say, but i *think* i forgot to etckeeper the things in /etc on www.p6c.org after setting up collectd there :( | 17:10 | |
Skarsnik | Well the main generator is called Dumb ^^ | ||
but anyways. why passing this callback does not work (the dumb one) | 17:11 | ||
17:13
yurivish_ joined,
zpmorgan joined
17:15
flussence left,
uruwi left
17:18
isBEKaml left,
bartolin joined
|
|||
Skarsnik | I think I will switch to libxml2 x) | 17:18 | |
sortiz | I was about to question that. I don't see in ecosystem libxml2 bindings! | 17:19 | |
Skarsnik | I think FROGGS started it | 17:20 | |
17:20
uruwi joined
|
|||
moritz | timotimo: well, just add it now | 17:20 | |
sortiz | Found two in github, but apparently abandoned. | 17:21 | |
17:21
flussence joined
17:24
addison_ joined
|
|||
sortiz | Yep, I found FROGGS's work. | 17:25 | |
Skarsnik | Ok the lib I want to use is buggy | 17:27 | |
the last version x) | |||
17:27
sjohnson joined
17:28
zpmorgan left,
addison_ left
17:31
BuildTheRobots left
17:32
dalek left,
BuildTheRobots joined,
yurivish_ left
17:33
yurivish joined,
pnu left,
peteretep left,
jnap left
17:34
mrsolo left,
boegel left,
polyfloyd left,
avenj left,
WizJin left,
dustinm` left,
hobbs left
17:35
flussence left,
hoelzro left,
ilmari left,
[TuxCM] left,
riatre left
17:36
xnrand left,
simcop2387 left
|
|||
timotimo | whew, finally caught up with backlog | 17:36 | |
Skarsnik | sortiz, I think my issue about the struct and Pointer[struct] is that you have the same perl6 translation for 2 differents thing | ||
without that | 17:37 | ||
timotimo | .tell froggs what do you mean "how so"? i looked at htop when your cron job is running and it showed quite high cpu usage. maybe we can make it only fire when something actually needs changing on cpandatesters, perhaps by pushing from hack instead of pulling from www ... | ||
yoleaux | timotimo: I'll pass your message to froggs. | ||
17:38
sjn joined
|
|||
arnsholt | Skarsnik: Given "class MyStruct is repr('CStruct') { ... }" MyStruct and Pointer[MyStruct] are *not* the same | 17:38 | |
17:38
peteretep joined,
riatre joined,
polyfloyd joined
17:39
flussence joined,
boegel joined,
jnap joined
|
|||
arnsholt | Bare MyStruct is a my_struct_t* whereas Pointer[MyStruct] is a my_struct_t** | 17:39 | |
17:39
lnrdo joined,
dalek joined,
ChanServ sets mode: +v dalek,
hacst joined,
zpmorgan joined,
[TuxCM] joined
17:40
dustinm` joined,
pnu joined,
xnrand joined
|
|||
timotimo | moritz: there's currently some changes queued up for etckeeper; changes to sshd_config (max auth tries) and testers.perl6.org.service (limit nprox) | 17:40 | |
17:40
hobbs joined
|
|||
timotimo | and also some additions to group and passwd are in there which i believe "etckeeper commit" would pick up automatically | 17:40 | |
17:40
simcop2387 joined,
simcop2387 left,
simcop2387 joined
|
|||
sortiz | Skarsnik, Indeed, the REPRs of all those, to the C side, give just a pointer (Unless you use HAS for inline them) | 17:41 | |
timotimo | i'll be AFK for a bit, but after that, i might turn those into a bunch of commits | ||
17:41
dfcarpenterak joined,
ilmari joined
|
|||
Skarsnik | arnsholt, I mean having void foo(struct piko bar) and void foo(struct piko bar *) translating both into sub foo(piko) is weird | 17:42 | |
17:42
olinkl joined
17:43
pierrot joined,
SCHAAP137 joined,
hoelzro joined
|
|||
skids | Maybe the first should be sub foo(piko) and the latter sub foo(piko is rw) | 17:44 | |
RabidGravy | jnthn, shall I just push the new test for the GLOBAL:: thing to roast? it took a bit longer than I thought because I realised I need to test that it failed without the change | ||
17:44
solarbunny joined
|
|||
Skarsnik | and you can always do a pr in github.com/Skarsnik/gptrixie x) | 17:45 | |
arnsholt | Skarsnik: NativeCall isn't able to handle non-pointer structs as arguments to functions yet | ||
17:45
caasih joined
|
|||
sortiz | Skarsnik, But very few API pass structures by value, most of them are by reference, so by a pointer, i.e. piko* | 17:46 | |
17:46
mrsolo joined,
skarn joined
|
|||
timotimo | how do structs get passed as arguments to functions at all? without "by reference"? | 17:46 | |
skids | On the stack. | ||
(or registers, unpacked) | |||
17:46
dakkar left
17:47
ugexe joined
|
|||
sortiz | skids, seems to me that only natives support the 'is rw' trick. | 17:47 | |
timotimo | ah | ||
geekosaur | haskell's ffi still doesn't handle either passing or returning struct-s (as opposed to struct pointers) | ||
...and I've seen maybe *one* request for that functionality in 10 years | 17:48 | ||
alpha123 | like no APIs do that ever | ||
skids | Well, perl's "is rw" is more like thing** really and "is ro" is more like thing* since the ro only applies to the container. | 17:49 | |
17:50
shicheng joined
|
|||
skids | There are some "const" incantations of course. | 17:50 | |
17:53
_mg_ left
|
|||
skids | .oO(maybe a NC-only "is const" thing for introspective purposes, but IIRC there are not many bits left in the parameter trait mask) |
17:53 | |
sortiz | btw, for MoarVM memory managed things, there are some problems when the memory ownership should be transferred to C land. | ||
arnsholt | geekosaur: Yeah, that perhaps the missing NativeCall feature I'm the least worried about | ||
sortiz | I agree arnsholt. | 17:54 | |
arnsholt | Tracking of ownership of memory is a much more pressing concern, as well as a way of handling strings that can't be marshalled and freed immediately before and after a call that isn't explicitly-manage() and doesn't piss you off when you have to use it | 17:56 | |
17:58
autarch joined
|
|||
sortiz | That's an issue. | 17:59 | |
RabidGravy | gah, warnocked | ||
17:59
WizJin joined
|
|||
arnsholt | sortiz: I have ideas for the former problem, but no tuits sadly | 17:59 | |
RabidGravy | shall I just push this test to roast (it will fail before the associated PR to rakudo) or PR it? | 18:00 | |
arnsholt | My only concrete point of action for the latter is that explicitly-manage needs to be nuked from orbit, but sadly don't really have any good replacements yet | ||
sortiz | arnsholt, I have tuits, but yet a lack of MoarVM fu. | ||
arnsholt | Except maybe a utility function that takes a Str and does all the legwork of copying it into a CArray | ||
Which might be what we need, TBH | 18:01 | ||
18:01
FROGGS joined
|
|||
sortiz | arnsholt, see my github.com/salortiz/NativeHelpers-Blob module. | 18:01 | |
arnsholt | sortiz: It's not too hard, TBH. Assuming you're comfortable with C, of course. But if you're dealing with NativeCall, you pretty much have to be (or you're gonna have a bad time) | ||
dalek | ast/require-globals: 91f9a91 | RabidGravy++ | S11-modules/ (3 files): This tests for the problem fixed in github.com/rakudo/rakudo/pull/714 That is, if a module is required in an inner scope then the global symbols aren't available by indirect lookup. |
18:02 | |
arnsholt | Yeah, something along those lines, most likely | ||
sortiz | I'm comfortable with C, but need to study first the source to understand the details, the style, etc. And it is a large code base! | 18:03 | |
18:03
espadrine left
|
|||
dalek | kudo/nom: 93e4cd6 | RabidGravy++ | src/core/operators.pm: Fix the behaviour of require WRT to global symbols |
18:05 | |
kudo/nom: 6159b5e | jnthn++ | src/core/operators.pm: Merge pull request #714 from jonathanstowe/nom Fix the behaviour of require WRT to global symbols |
|||
jnthn | RabidGravy: If you didn't already push the roast test, go ahead :) | 18:06 | |
oh, I see you did | |||
arnsholt | sortiz: Yeah, it's a big chunk of code. But you don't have to grok all of it at once. The relevant bits are src/6model/reprs/{CArray,CStruct}.{c,h} and friends | ||
jnthn | But didn't merge it | ||
arnsholt | And the C API is really good, thanks to jnthn++'s excellent design work | ||
dalek | ast: 91f9a91 | RabidGravy++ | S11-modules/ (3 files): This tests for the problem fixed in github.com/rakudo/rakudo/pull/714 That is, if a module is required in an inner scope then the global symbols aren't available by indirect lookup. |
||
RabidGravy | in master now :) | 18:07 | |
jnthn | RabidGravy++ | ||
sortiz | arnsholt, my module above is a prof of concept about my plan to integrate Blobs to CStruct, CArray, etc. | 18:09 | |
18:11
Psyche^_ joined
|
|||
sortiz | *proof | 18:12 | |
18:15
Psyche^ left,
beginner joined
|
|||
dalek | ast: b36e721 | RabidGravy++ | S11-modules/require.t: It helps if I get the plan right |
18:19 | |
18:20
uruwi left,
_mg_ joined
|
|||
Skarsnik | arnsholt, the thing I would with NC is a c-string type that act as a string but unencoded x) | 18:23 | |
and example is mysql that return a char * that can be raw data (but ending with 0) or text that you know the encoding via other function | 18:24 | ||
18:25
addison_ joined
|
|||
sortiz | Skarsnik, Then a CArray[uint8] can do the work, no? | 18:26 | |
Skarsnik | I think it does not work | 18:27 | |
I think you don't get the size | |||
well not every time | |||
or because you can't have a CArray as a return type? | 18:28 | ||
timotimo | CArray is for when you know the size "separately" | ||
Skarsnik | but etheir way it's just a c string | ||
18:29
ELBeavers joined,
addison_ left
|
|||
sortiz | Obviously the size of unmanaged ones must be determined by other means. | 18:29 | |
Skarsnik | I mean it's a case or having a real c string (data ending with 0) type will more interesting | 18:30 | |
sortiz | You can search the \0, or get from another member of the struct. | 18:31 | |
arnsholt | My philosophy is that NativeCall types should map as closely as possible to C semantics, with little to no magic on top | ||
Skarsnik | I think you can't have sub foo return CArray | ||
sortiz | I agree arnsholt. | 18:32 | |
arnsholt | C is sufficiently weird, and the consequences of slipups sufficiently severe, that potentially leaky abstractions with correspondingly surprising side-effects are gonna be a terrible idea | ||
timotimo | at least coercing Pointer to CArray is easy/possible/doable | ||
Skarsnik | Na it's fine for most case to have char * as Str | ||
sortiz | Done timotimo. | ||
timotimo | and i could imagine a helper function that turns Pointer into Buf or Str based on "null terminated" | ||
18:32
spider-mario joined
|
|||
timotimo | sortiz: sorry, done what? | 18:33 | |
arnsholt | NativeCall is C in Perl 6 clothing, basically | ||
sortiz | timotimo, see my github.com/salortiz/NativeHelpers-Blob | ||
timotimo | ah, neat. | 18:34 | |
um, how is "sub Pointer" not a terrible idea? :) | |||
sortiz | Is a cast to Pointer. | 18:35 | |
timotimo | hm | ||
well, i guess namespacing makes that unproblematic | |||
18:35
beginner left
18:36
kid51 joined,
beginner joined
18:37
addison_ joined
|
|||
Juerd | char* as Str is a weird abstraction. | 18:37 | |
sortiz | And all can be wrapped in a class, if decided. It's a proof of concept ;) | 18:38 | |
Juerd | But I guess there are no real solutions here | ||
Skarsnik | ? | ||
timotimo | right, you cannot have a Str from C data without a copy | ||
Skarsnik | it's fine for lot of case since there is an is encoded trait | ||
oh that | |||
yeah, it's kind of bad x) | |||
timotimo | unavoidable is what it is | ||
though of course we could build a CString class that gives you an API to work with C strings like p6 strings while keeping the underlying buffer around | 18:39 | ||
but as soon as resizing happens, you're absolutely screwed. | |||
skids still votes for calling zero terminated strings "Ztr" | |||
timotimo | not bad | ||
Skarsnik | xD | ||
Juerd | timotimo: I was hoping that at some point, we could have CStr, which is basically subset CStr of Str where !/\0/, mostly for security reasons (hostnames, paths, and other stuff that eventually ends up in system calls should be limited to CStr, not Str), so could you pick another name? ;) | 18:40 | |
skids: Way too cute. I like it :) | |||
timotimo | m: say "foo\0" | ||
camelia | rakudo-moar 6159b5: OUTPUT«foo␀» | ||
timotimo | hm. | ||
BBIAB | |||
18:43
Amnez777 joined
|
|||
RabidGravy re-tests all of his modules again | 18:44 | ||
18:44
addison_ left
18:45
Amnez777 left,
Amnez777 joined
18:49
musiKk joined
18:51
addison_ joined
18:52
Guest26382 is now known as parisba_
18:53
ELBeavers left,
breinbaas joined
18:58
raiph joined,
zakharyas1 left,
firstdayonthejob joined
|
|||
rntz | how is ($a, $b) different from [$a, $b]? | 19:01 | |
nine | rntz: List vs. Array | ||
rntz | aha, ok | ||
19:03
Actualeyes left
|
|||
rntz | sprunge.us/DfQc?perl junctions have some funny behavior sometimes | 19:04 | |
19:07
kid511 joined
|
|||
timotimo | m: say all() < none(any()) | 19:08 | |
camelia | rakudo-moar 6159b5: OUTPUT«all()» | ||
timotimo | m: say none(any()) < all() | ||
camelia | rakudo-moar 6159b5: OUTPUT«none(all())» | ||
19:09
kid51 left,
musiKk left
|
|||
timotimo | FROGGS: any comment about the rsync thing? maybe we could have the thing that receives reports write a "version" file that we compare against before rsyncing? | 19:10 | |
19:12
gcole left
|
|||
FROGGS | timotimo: would be better to rsync smaller portions maybe... in case we could partition the files | 19:12 | |
yoleaux | 17:37Z <timotimo> FROGGS: what do you mean "how so"? i looked at htop when your cron job is running and it showed quite high cpu usage. maybe we can make it only fire when something actually needs changing on cpandatesters, perhaps by pushing from hack instead of pulling from www ... | ||
rntz | timotimo: hm, no, it's not that what's on the lhs vs. rhs of the < is different | ||
19:13
_dolmen_ joined
|
|||
rntz | it's [$x,$y] versus swap($y,$x), which both produce [$x,$y] | 19:13 | |
19:13
vendethiel left
|
|||
rntz | but when swap($y,$x) gets autothreaded, it behaves differently than [$x,$y] | 19:13 | |
FROGGS | timotimo: or we push into a queue.... hmmm | ||
timotimo | oh | ||
autothreading | |||
FROGGS: partitioning sounds like a thing worth trying | |||
rntz | m: say (all() < none(any())).so | 19:14 | |
camelia | rakudo-moar 6159b5: OUTPUT«True» | ||
rntz | m: say (none(any()) < all()).so | ||
camelia | rakudo-moar 6159b5: OUTPUT«False» | ||
rntz | ok, at least *that* behaves as expected | ||
timotimo | there's a reason we advocate "don't give people junctions if they're not expecting them" | 19:15 | |
like, don't let junctions leak out of your API | |||
rntz | ah, ok. | ||
I am a total newcomer and do not know anything about these guidelines | |||
timotimo | ah | ||
rntz | I was just looking at junctions and thought they looked interesting | ||
19:15
tonye joined
|
|||
timotimo | i think we ought to point that out a bit more visibly | 19:15 | |
rntz | and then I realized they're probably a law-disobeying applicative instance | ||
(in haskell-speak) | 19:16 | ||
timotimo | i didn't do enough haskell to understand that | ||
ugexe | nickl@li685-90:~/perl6$ perl6 -e 'require IO::Socket::SSL; say 42; say (require IO::Socket::SSL);' | ||
42 | |||
No such symbol 'IO::Socket::SSL' | |||
rntz | roughly, it means [$x,$y] and swap($y,$x) don't always behave the same :P | 19:17 | |
19:17
ELBeavers joined
|
|||
timotimo | i expect [ ] doesn't autothread | 19:17 | |
rntz | it doesn't matter whther you make it autothread, it still has the behavior | ||
timotimo | you can control whether or not something autothreads by accepting "Mu" instead of "Any" | ||
rntz | my original version had "sub pair($x, $y) { [$x,$y] }" | ||
19:18
tonye left
|
|||
rntz | or rather, it doesn't matter whather you use [] or a subroutine | 19:18 | |
timotimo | m: sub pair($x, $y) { say "beep boop"; [$x, $y] }; pair(none(all), all()) | ||
camelia | rakudo-moar 6159b5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YYClhDhOvBFunction "all" may not be called without arguments (please use () or whitespace to denote arguments, or &all to refer to the function as a noun)at /tmp/YYClhDhOvB:1------> 3y "beep boop"; [$…» | ||
rntz | autothreading is definitely what makes it have that behavior :) | ||
timotimo | m: sub pair($x, $y) { say "beep boop"; [$x, $y] }; pair(none(all()), all()) | ||
camelia | ( no output ) | ||
timotimo | m: sub pair(Mu $x, Mu $y) { say "beep boop"; [$x, $y] }; pair(none(all()), all()) | ||
camelia | rakudo-moar 6159b5: OUTPUT«beep boop» | ||
19:18
captain-adequate joined
|
|||
timotimo | ^- it's not about whether or not you use [ ] inside, it's about the call to pair() | 19:19 | |
rntz | hm? I'm not sure we're talking about the same thing anymore | ||
19:19
ELBeavers left
|
|||
timotimo | maybe not | 19:19 | |
rntz | definitely using Mu can let you control this behavior | ||
timotimo | but you ca nsee that in the one case, pair isn't even called at all | 19:20 | |
rntz | hm, that's interesting. why is that? | ||
timotimo | because if you have no values at all in your junctions, what would the function be called on? | 19:21 | |
19:21
shicheng left
|
|||
rntz | ah, I see. | 19:21 | |
lizmat | hmmm.... in nqp, what's the easiest way to push a list to another list ? | 19:22 | |
timotimo | splice, i'd say | 19:23 | |
19:23
itaipu joined
|
|||
lizmat | hmmm... :-) | 19:23 | |
rntz | here's the version with a `pair' function, which still has the funny behavior: sprunge.us/WXLT | ||
19:24
cognominal left
|
|||
rntz | I think it's even funnier now that I know pair/swap are never being called! | 19:24 | |
timotimo | well, they aren't called, but you still get a return value | ||
rntz | yup | ||
timotimo | you should inspect that return value so you can understand what's going on | ||
rntz | the value is being determined by the order in which autothreading iterates over things | 19:25 | |
which is determined by the argument order | |||
timotimo | yeah | ||
it does all() first adn then any(), or the other way around | |||
i think that way | |||
rntz | design.perl6.org/S09.html#Junctions says all()/none() then any()/one() | ||
timotimo | right | ||
rntz | (and left-to-right within those) | ||
timotimo | which makes sense to me | ||
also, i was the one who actually implemented that distinction | 19:26 | ||
rntz | oh, neat | ||
timotimo | it was rather easy :) | ||
19:27
M-eternaleye joined
|
|||
timotimo | so, uh, what exactly are we discussing right now? | 19:28 | |
RabidGravy | stuff | ||
rntz | I dunno, I don't think anything in particular? | ||
junctions have weird behavior, but I understand why now | |||
19:29
uruwi joined
|
|||
RabidGravy | anyway all my modules pass (again) | 19:29 | |
timotimo | good good | ||
19:30
M-eternaleye is now known as eternaleye
19:31
ELBeavers joined,
AlexDaniel joined,
avenj joined
19:32
_mg_ left,
ELBeavers left
|
|||
FROGGS | hmmmm, how do I re-export stuff? | 19:35 | |
timotimo | you use Foo::Bar :EXPORT? | ||
something like that? | 19:36 | ||
FROGGS | in Foo.pm? and then the user of Foo will see what Foo::Bar exports? | ||
RabidGravy | I was actually looking at the tests for that earlier | ||
timotimo | i don't really know, i've never had to do that :| | ||
worst case, you could always build an EXPORT sub | |||
RabidGravy | use OuterModule :ALL; | 19:37 | |
apparently | |||
FROGGS | hmm, but that will only import stuff into Foo | 19:38 | |
that wont export anything from Foo | |||
19:39
shicheng joined,
cdg left
19:40
kjs_ joined
|
|||
RabidGravy | Foo has "use Foo::Bar :ALL" | 19:40 | |
FROGGS | yes | ||
does not work here | |||
RabidGravy | user code has "use Foo :ALL" | ||
19:41
ELBeavers joined
|
|||
sortiz | The :EXPORT tag work well with NativeCall. | 19:41 | |
FROGGS | to import certain things yet, but not to re-export | ||
yes* | |||
timotimo | moritz: do we want to enable the "apache" plugin for collectd on www? collectd.org/wiki/index.php/Apache | 19:42 | |
RabidGravy | or, alternatively for the total over-kill | ||
then in Foo mainline "sub EXPORT { %(Foo::Bar::EXPORT::DEFAULT::) }" | 19:43 | ||
FROGGS | I guess I lack a unit module declaration | ||
RabidGravy | or some variant thereof | ||
timotimo | i think the only thing important is that the sub EXPORT is in the unit scope | 19:44 | |
if you have a unit module, you are allowed to put it into the module. otherwise it has to be outside the module | |||
FROGGS | I have a class with a block, and the subs I want to (re-)export are outside of it | 19:45 | |
19:46
virtualsue joined
|
|||
timotimo | moritz: something must have gone wrong on www; etckeeper got uninstalled somehow | 19:47 | |
RabidGravy | I've got something that does "sub EXPORT { return %( '&trait_mod:<is>' => &trait_mod:<is>) }" which is an alternative for named things | ||
timotimo | moritz: shall i just re-install it? | ||
moritz | timotimo: +1 to apache collectd plogin | 19:48 | |
timotimo: re etckeeper, I think www just has a regular git repo in /etc/ | 19:49 | ||
timotimo | it doesn't; i tried to git commit something and there was a git hook that couldn't run because it tried to run etckeeper | ||
if we want to run www without etckeeper, i can deactivate anything etckeeper related in the hooks to turn the git repo into a true regular git repo | 19:50 | ||
on the other hand, the apt log shows someone installed and then purged etckeeper. so it's probably meant to be a regular git repository in there | |||
llfourn | RabidGravy++ thanks for fixing my mistake. | 19:54 | |
and writing nice tests :) | |||
nine: thanks for poking me about the discussion | 19:55 | ||
FROGGS: there is meant to be use Foo :EXPORT; to re-export but it's NYI. | 19:56 | ||
FROGGS: take a look at github.com/LLFourn/p6-CompUnit-Util#re-export | |||
RabidGravy | llfourn, it took me a while to locate the actual thing from what was manifesting | ||
llfourn | RabidGravy: I'm sorry about that :(. I'm justing looking into it now. | 19:57 | |
RabidGravy | nah, not really your fault, you just unearthed it :) | 19:58 | |
llfourn | RabidGravy: it looks like panda is using a require-at-a-distance feature that I unkowningly got rid of | ||
19:58
pederindi joined
|
|||
llfourn | I thought that each compunit was meant to have its own view of GLOBAL:: which is what I thought UNIT::GLOBALish was | 19:59 | |
RabidGravy | it should all be fixed now anyway, but see ugexe's comment on github.com/rakudo/rakudo/pull/714#...-185370730 | ||
lizmat | seems t/spec/S11-modules/require.t is failing for me with "Undeclared routine: ok" | 20:00 | |
RabidGravy | which is somewhat of a mystery, I can only guess it is now skipping the symbol lookup | ||
er | |||
llfourn | oh that is my mistake I know what's wrong there | ||
I think | |||
dalek | ast: ef4425d | RabidGravy++ | S11-modules/require.t: missed import of ok |
20:01 | |
RabidGravy | yep, fixed now :) | ||
lizmat | RabidGravy++ | ||
RabidGravy | (I tested what I was testing in another file for convenience ;) | ||
20:02
virtualsue left,
rindolf left
|
|||
FROGGS | thanks guys | 20:03 | |
20:04
molaf left
20:05
sno left
|
|||
sortiz | RabidGravy, BTW, your fix allows me to simplify DBIish removing the introduced workaround. I'm testing it. | 20:08 | |
timotimo | i has a cat on my lap <3 | ||
system administration will be delayed by a couple minutes or maybe an hour | 20:09 | ||
lizmat wonders who said that | |||
20:09
rindolf joined
|
|||
timotimo | a line or two of chat is acceptable, but system administration stuff will not be accepted by the cat :) | 20:10 | |
Skarsnik | huhu | ||
cat is the root of root | |||
20:11
Guest49472 left,
darutoko left
|
|||
llfourn | confirmed the require IO::Socket::SSL thing | 20:12 | |
20:12
Guest30782 left
20:14
jvcakg joined,
virtualsue joined
|
|||
llfourn | require IO::Socket::SSL; say ::("IO::Socket::SSL") works so the solution is to probably just use GLOBAL:: to figure out what to return from require | 20:15 | |
RabidGravy | almost certainly | ||
llfourn | though that's what INDIRECT_NAME_LOOKUP should be doing | ||
timotimo | t.h8.lv/andshare/IMG_20160217_211308~2.jpg.jpg | ||
llfourn | awww. I can see your screen in the neko's eyes. | 20:16 | |
timotimo | it's the phone screen, i'd expect | ||
20:19
beginner left
20:22
itaipu left
|
|||
llfourn | I'll make a PR to revert back to the old way it used to find the return value from require while I figure this out | 20:23 | |
returning GLOBAL::{$pkg} confirmed not working | 20:24 | ||
20:24
dfcarpenterak left
|
|||
RabidGravy | as far as I can tell that behaviour isn't tested | 20:25 | |
timotimo | moritz: etckeeper's pre-commit hook makes sure to store metadata properly when it comes to owners and other things; maybe we do actually want etckeeper? | ||
RabidGravy | llfourn, is it actually hitting REQUIRE_IMPORT the second time? If the module is already loaded and no exports it doesn't need to | 20:28 | |
llfourn | RabidGravy: it's meant to yeah | ||
I mean I haven't changed that I don't think | |||
20:32
raiph left
20:34
yqt joined
20:35
dfcarpenterak joined
|
|||
sortiz | Then I'll wait for this matter settled before another round with DBDish | 20:35 | |
20:36
ely-se joined
20:41
rindolf left,
kaare_ left
|
|||
MadcapJake | AlexDaniel, I used your splits gist as an example for Test::Lab github.com/MadcapJake/Test-Lab/blo...splits.pl6 | 20:41 | |
20:41
Zero_Dogg left
|
|||
AlexDaniel | MadcapJake: great | 20:42 | |
20:42
Zero_Dogg joined,
Zero_Dogg left,
Zero_Dogg joined
|
|||
llfourn | ok I got something passing tests and say (require IO::Socket::SSL) works | 20:42 | |
MadcapJake | c turned out to be the fastest | ||
RabidGravy | llfourn, the actual case is something weird about IO::Socket::SSL | 20:43 | |
20:43
sufrostico left
|
|||
RabidGravy | it doesn't do it with other modules | 20:43 | |
require IO::Socket::SSL; say 42; say (try require IO::Socket::SSL); | 20:44 | ||
42 | |||
Nil | |||
llfourn | RabidGravy: it might be unit IO::Socket::SSL + the fact it has :: in the name | ||
but that's a wild guess | |||
RabidGravy | perl6 -e 'require HTTP::UserAgent; say 42; say (try require HTTP::UserAgent);' | ||
42 | |||
(UserAgent) | |||
MadcapJake | i could probably take the assignment logic out and place the entire lab inside a sub that returns the list contents. | ||
20:44
dfcarpenterak left
20:45
Ven joined
|
|||
RabidGravy | well more than one :: | 20:45 | |
llfourn | RabidGravy: but actually I think you're right | ||
AlexDaniel | MadcapJake: interesting! | ||
llfourn | it's nothing to do with thtat | ||
20:46
dfcarpenterak joined
|
|||
RabidGravy | nope another module with two :: in the name works fine | 20:47 | |
20:47
musiKk joined
|
|||
sortiz | hm.. | 20:47 | |
RabidGravy | so IO::Socket::SSL is doing something odd | ||
sortiz | RabidGravy, Which other module? | 20:48 | |
AlexDaniel | MadcapJake: I'm surprised to see a significant difference between b and d. By the way, how many times does it run each of them? | 20:49 | |
sortiz | Asking 'cus in the IO::Socket:SSL case IO::Socket isn't a stub | 20:50 | |
RabidGravy | Audio::Taglib::Simple and Test::Util::ServerPort I've tried | ||
MadcapJake | I only did one run, but it's trivial to wrap and then aggregate the results. i'll give it a go now | ||
llfourn | github.com/rakudo/rakudo/pull/715 # fix is here | ||
MadcapJake | (the module is designed to be used in production, btw, so it's intended to gather true load performance and data anomalies) | 20:51 | |
lizmat | llfourn: you're sure that's spectest clean ? | 20:52 | |
llfourn | lizmat: it's require.t clean | ||
lizmat | llfourn: ok, I'll try to spectest in a mo then | 20:53 | |
llfourn | lizmat: ok me too :) | ||
ugexe | m: class Bar { has Str:D $.id = self.id; method id { "1" }; }; class Foo is Bar { has Str:D $.id is required; }; Foo.new.say | ||
camelia | rakudo-moar 6159b5: OUTPUT«Type check failed in assignment to $!id; expected Str:D but got Str:D in block <unit> at /tmp/S157w_QnqF line 1» | ||
RabidGravy | llfourn, that returns Nil always? | 20:54 | |
llfourn | RabidGravy: you're refering to REQUIRE_IMPORT? | 20:55 | |
RabidGravy: it used to not to that's why we got those annoying sink errors | |||
RabidGravy | oh I see, it returns the lookup from require | 20:56 | |
sortiz | llfourn, with $longname defined $target_package can be $target_package := $longname.name_past, no? | ||
llfourn | well that's how I just had it | ||
sortiz: yep good catch | |||
it's a temp fix so $longname is going away again hopefully | |||
20:57
wamba left
|
|||
llfourn | I just put it back so I could restore previous behaviour | 20:57 | |
sortiz | Understood. | 20:58 | |
RabidGravy | confused again | ||
llfourn | RabidGravy: I *wanted* REQUIRE_IMPORT to return the value for require and that's what my previous patch did. But I couldn't get IO::Socket::SSL to return from it so I restored the original Actions.nqp lookup thing and made it return Nil. | 20:59 | |
RabidGravy | right, that's what I thought | 21:00 | |
llfourn | once these spectests pass I'll try and figure out why the declaration unit class IO::Socket::SSL doesn't show up in the the IO::Socket::SSL's GLOBALish. | 21:01 | |
21:01
_mg_ joined
|
|||
RabidGravy | all good | 21:02 | |
21:02
sufrostico joined
|
|||
llfourn | lizmat: it's spectest clean | 21:03 | |
21:03
cdg joined
|
|||
dalek | kudo/nom: 6e47e54 | LLFourn++ | src/ (2 files): Temp fix for say (require IO::Socket::SSL) restoring how require's return value used to be calculated before f565f80a4 while investigating. |
21:03 | |
kudo/nom: bb9ca8c | lizmat++ | src/ (2 files): Merge pull request #715 from LLFourn/nom Temp fix for say (require IO::Socket::SSL) |
|||
21:04
geraud joined
|
|||
RabidGravy re-tests the modules with that | 21:08 | ||
I'm doing a fair bit of on-demand loading of modules in a couple of thongs | 21:09 | ||
er things | |||
MadcapJake | AlexDaniel, here's a 100 sample result github.com/MadcapJake/Test-Lab/blo...splits.pl6 (i think the sort is a bit off for some reason...) | ||
21:09
_dolmen_ left
|
|||
llfourn | ./perl6-m -Ilib -e 'use CompUnit::Util :load; say load("IO::Socket::SSL").handle.globalish-package.WHO.keys;' | 21:11 | |
(NQPMatch NQPCursorRole OpenSSL NativeCall HLL QRegex QAST NQPCursor NQPRegexMethod Find NQPRegex) | |||
so yeah it never gets into GLOBALish | 21:12 | ||
something to do with native call? | |||
Skarsnik | well ssl use NC probablty | 21:13 | |
RabidGravy | more likely that IO::Socket is already in the setting | ||
llfourn | RabidGravy: that's it!!! | ||
now the question...is that a bug? | |||
I think it is. Everything the module intends to merge should be in globalish right? | 21:14 | ||
RabidGravy | I'd say that would be the expectation | ||
llfourn | but how does use IO::Socket::SSL even work if it's not in GLOBALish -- use uses GLOBALish. | ||
21:15
kjs_ left
|
|||
llfourn | perl6 -e 'use IO::Socket::SSL; say IO::Socket::SSL' works so that's odd | 21:15 | |
21:16
virtualsue left
|
|||
RabidGravy | is it because it looks up the antecedent IO::Socket and it adds it to that rather than a local stash? | 21:17 | |
sortiz | I think that. | ||
dalek | kudo/nom: ec96785 | lizmat++ | src/core/Buf.pm: Streamline Buf.push|append - fix error message for lazy lists (mentioned 'push' instead of 'append') - make .push|append(4,5) about 1.5x faster - make .push|append(@a) about 7x faster - make .append(4) about 90x faster This should also make pack quite a bit faster |
||
RabidGravy | lizmat++, that should help something I was playing with | 21:18 | |
21:18
ELBeavers is now known as ELBeavers_away,
ELBeavers_away is now known as ELBeavers
|
|||
llfourn | RabidGravy: but wouldn't IO::Socket::SSL add itself to IO::Socket:: at its own compile time so how did it stick around... | 21:18 | |
21:19
firstdayonthejob left
|
|||
llfourn | if it's precomped that shouldn't work I would have thought but it seems to | 21:19 | |
lizmat | m: dd Buf.new.append(2) | 21:20 | |
camelia | rakudo-moar bb9ca8: OUTPUT«Buf.new(2)» | ||
lizmat | hmmm... maybe i broke that | 21:21 | |
21:22
firstdayonthejob joined
|
|||
Skarsnik | if you broke something blame spect test for allowing you to break it! | 21:23 | |
jnthn | m: my @a; dd @a.append(2) | 21:24 | |
camelia | rakudo-moar bb9ca8: OUTPUT«Array @a = [2]» | ||
21:24
_nadim left
|
|||
jnthn | append/push return the thing pushed onto | 21:24 | |
lizmat | spectested clean though :-( | 21:25 | |
fixing now | |||
jnthn | Yeah | ||
And let's add tests | |||
lizmat | m: dd Buf.new.push(1) | ||
camelia | rakudo-moar bb9ca8: OUTPUT«1» | ||
jnthn | We should really look a bit further into coverage analysis... | ||
lizmat | jnthn: that's also wrong, eh ? | 21:26 | |
jnthn | Yeah | ||
Probably should check native arrays too | |||
lizmat | ok, that will slow down stuff a bit :-( | ||
yeah, next on my list | |||
jnthn | Don't worry | ||
I'd hope these will be good inlining candidates | 21:27 | ||
lizmat | yeah, they're small | ||
jnthn | And then it'll fall to dead code elimination | ||
Which needs moving *after* inlining | |||
Somebody should do some work on spesh... :-) | |||
sortiz | .oO( I don't even known what "spesh" is ) |
21:29 | |
21:30
shicheng left
|
|||
llfourn | sortiz: My understanding is that it's a thing that inlines stuff at runtime in MVM. jnthn++'s creation. | 21:31 | |
RabidGravy | It's the magic thing the optimisation fairies do | ||
llfourn | though my understanding is often not reality as today has shown :D | ||
sortiz | Lol | ||
jnthn | It's from the word "specialization", but I didn't want to write that all the time, and if I called it "spec" it'd be confusing. :) | 21:32 | |
Largely because the big picture of MoarVM's optimization approach is that it looks for the static behaviors in your dynamic code, and generates specialized code that ploughs through those static things with a load less checking. | 21:33 | ||
sortiz | For inlineing(sp?) something we need to know if the methods called are pure and the args constants, I suppose, no? | ||
21:34
atweiden joined,
espadrine joined,
TEttinger joined
|
|||
jnthn | sortiz: No, we can do quite a lot better than that. | 21:34 | |
sortiz: Though for some of the "better than that" cases we can only do them because we can uninline too. | |||
(That is, if we learn that one of the things the inlining was based on just changed underneath us, we can rewrite the call stack to look like it would have done if we didn't inline, and continue on safely) | 21:35 | ||
That's one case of the more general deoptimization principle. | 21:36 | ||
dalek | kudo/nom: 0054aa7 | lizmat++ | src/core/Buf.pm: Make sure we return self for Buf.push|append |
||
jnthn | Which means we can enter into specialized code, and cope with discovering half way through that its assumptions got invalidated and drop back to the slow path again. | 21:37 | |
21:37
sno joined,
kjs_ joined
|
|||
llfourn | jnthn: interesting. What's a common de-optimization scenario? | 21:37 | |
sortiz | Ok, I need to study that area in detail, some literature that you recommends? | ||
jnthn | llfourn: Mixins (does/but) always result in it at the moment, because they can cause objects to change type "at a distance" | 21:38 | |
llfourn | cool thanks. | 21:40 | |
jnthn | llfourn: Another example would be that we have code doing divisions on Rats and we see the result is nearly always Rat. We might then generate code that assumes Rat, and speculatively inlines stuff based on that. But if there's a big value and we fall back to Num, then we'd trigger deopt there too. | 21:41 | |
Though those two differ. In MoarVM we call the first global deopt 'cus it affects potentially all optimized callframes on the stack, whereas the latter is local deopt, because we know it only affects the current callframe. | |||
llfourn | hmm that is very clever. once it de-opts, does it try to optimize again from there? | 21:42 | |
or just backs away for the rest of execution | |||
lizmat | jnthn: I'm surprised by the difference in behaviour between native arrays and non-native arrays: | 21:44 | |
m: my @a; @a.append([1,2,3],[4,5,6]); dd @a | |||
camelia | rakudo-moar ec9678: OUTPUT«Array @a = [[1, 2, 3], [4, 5, 6]]» | ||
lizmat | m: my int @a; @a.append([1,2,3],[4,5,6]); dd @a | ||
camelia | rakudo-moar ec9678: OUTPUT«array[int].new(1, 2, 3, 4, 5, 6)» | ||
lizmat | jnthn: aka, the native case is flattening | 21:45 | |
21:45
musiKk left
|
|||
jnthn | sortiz: Quite a few papers out there, of note those on JIT compilation by Craig Chambers et al are quite interesting. | 21:46 | |
AlexDaniel | lizmat: O_O | 21:47 | |
skids | Well, it would be kind of hard for a native array to store the non-flattened result :-) | ||
jnthn | lizmat: I suspect "didn't get tweaked in the GLR"... | ||
lizmat | ok, lemme see if I get spectest fails if I remove the flattening | 21:48 | |
jnthn | sortiz: The spesh codebase in Moar isn't too terribly inaccessible | ||
sortiz | jnthn, Tnks, annotated. | ||
jnthn | sortiz: graph.h is the place to start reading | ||
AlexDaniel | skids: it does not mean that it should silently flatten it | 21:49 | |
skids | Oh I know. | ||
jnthn | llfourn: For the rest of the callframe it tends to back away | ||
llfourn: It'll try the specialized code again on future calls though | 21:50 | ||
lizmat plugs the P6W again, just in case: p6weekly.wordpress.com/2016/02/15/...ersioning/ | |||
llfourn | jnthn: ah nice. I will consult sauce for future investigations. Thanks. | ||
sortiz | The native case is using VMArray. | 21:51 | |
lizmat | seems github is down | 21:52 | |
llfourn sees github working | |||
sortiz too | 21:53 | ||
pmurias | LLVM now has a JVM backend: github.com/graalvm/sulong ;) | ||
lizmat | status.github.com has some interesting graphs | ||
21:54
_dolmen_ joined
|
|||
geekosaur | again? | 21:56 | |
21:56
sno left
21:58
skids left
21:59
dfcarpenterak left,
dfcarpenterak joined
|
|||
lizmat | "We're working to mitigate a DDoS attack affecting github.com performance." | 22:00 | |
22:00
Vitrifur left
22:01
pmurias_ joined,
cognominal joined,
FROGGS left
22:02
Laurent_R left
22:04
pmurias left
|
|||
hoelzro | too many people using the new issue templates =P | 22:04 | |
lizmat | m: my int @a = ^Inf # LTA error message | 22:05 | |
camelia | rakudo-moar ec9678: OUTPUT«This type cannot unbox to a native integer in block <unit> at /tmp/OuG0Nuu8m3 line 1» | ||
hoelzro | is it because it's too large for a native int? | ||
lizmat | well, array.STORE has special handling for Ranges, but does not check on the bounds being ints | 22:06 | |
sortiz | m: my int @n; say @n.REPR; my @a; say @a.REPR | ||
camelia | rakudo-moar ec9678: OUTPUT«VMArrayP6opaque» | ||
sortiz | lizmat, VMArrays slots are flat. | 22:07 | |
lizmat | yes, I know :) | ||
it's about the error message | |||
22:07
sno joined
|
|||
RabidGravy | all modules pass (again again) | 22:08 | |
lizmat | RabidGravy++ # checking! | ||
will look at native array issues tomorrow | |||
sortiz | No, I thinking about how to remove the flattening... | ||
22:09
firstdayonthejob left
22:10
prammer joined
22:12
firstdayonthejob joined
|
|||
sortiz | .oO ( A p6opaque of VMArrays? Upgraded as soon as it has inner array... ) | 22:13 | |
22:16
shicheng joined
22:19
_mg_ left
|
|||
sortiz | m: my @a = Array[array[int]].new(array[int].new(1, 2, 3), array[int].new(1, 2, 3)); say @a; dd @a # Seems flat but isn't | 22:23 | |
camelia | rakudo-moar 0054aa: OUTPUT«[1 2 3 1 2 3]Array @a = [array[int].new(1, 2, 3), array[int].new(1, 2, 3)]» | ||
sortiz needs some coffe | 22:24 | ||
22:25
raiph joined
22:27
Ven left
22:28
Ven joined
22:29
corbyhaas_ left,
Ven left
|
|||
lizmat | jnthn: what is our standpoint on adding another Exception class to 6.c ? | 22:29 | |
22:31
ocbtec left
|
|||
Hotkeys | in regex does « and » function the same as << and >>? | 22:33 | |
as word boundaries | |||
lizmat | jnthn: I'm thinking of adding a X::CannotCoerceToNativeInt exception class, to change "This type cannot unbox to a native integer" to a more meaningful error | ||
llfourn guesses that that's fine with tests for X::CannotCoerceToNativeInt going into 6.c.1 spec | 22:35 | ||
hoelzro | lizmat++ # better errors | ||
atweiden | m: sub mkpositional(Positional $container is rw, :$value) returns Any { $container = $value; $container; }; my Positional $a; my @b = mkpositional($a, :value('zero', 'one', 'two')); @b.perl; | ||
camelia | ( no output ) | ||
atweiden | m: sub mkpositional(Positional $container is rw, :$value) returns Any { $container = $value; $container; }; my Positional $a; my @b = mkpositional($a, :value('zero', 'one', 'two')); say @b.perl; | ||
camelia | rakudo-moar 0054aa: OUTPUT«[("zero", "one", "two"),]» | ||
atweiden | anyone know why @b isn't qw<zero one two>? | ||
llfourn | atweiden: it looks like it is? | 22:36 | |
lizmat | atweiden: named parameters are always containerised ? | ||
llfourn | oh you mean just a list | ||
atweiden: return |$container | 22:37 | ||
moritz | m: sub f(:\a) { } | ||
camelia | rakudo-moar 0054aa: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Zfjowh3kRQMissing blockat /tmp/Zfjowh3kRQ:1------> 3sub f(:7⏏5\a) { }» | ||
llfourn | or make it @container | ||
22:40
n0tjack left,
ely-se left
|
|||
dalek | kudo/nom: e3b1dd3 | lizmat++ | src/core/Buf.pm: Oops, forgot to remove one --> Nil |
22:43 | |
lizmat is too tired | 22:44 | ||
good night, #perl6! | |||
sortiz | 'night lizmat | ||
22:44
_dolmen_ left
|
|||
llfourn | o/ | 22:44 | |
22:51
sufrostico left
|
|||
atweiden | llfourn: thanks for the |$container tip | 22:53 | |
jnthn | lizmat: How is that "adding it to 6.c"? | 22:55 | |
Does changing it regress a spectest that passed in 6.c? | |||
Ah, too late, you went for rest :) | |||
22:56
kjs_ left
|
|||
llfourn | atweiden: Nw. Yes, if you return a list in a $ variable and assign the result to an array you will get an array with one element containing that value (the list). | 22:56 | |
jnthn | Maybe the question is "is it OK to put the exception type into CORE.setting, not CORE.6.d.setting"... | ||
I think pragmatically "yes" because it needs to be visible by methods, and those evolve in-place. | 22:57 | ||
General exception policy is that untyped is allowed to go to typed (I tried to prepare for that by removing tests against X::AdHoc from roast) | |||
Maybe we should call CORE.setting "the base setting" or "the unversioned setting" or so, because every time I hear it referred to as 6.c it confuses me. ;-) | 22:58 | ||
Hotkeys | can I capture the number of times a general quantifier is done in a regex? | ||
like / a ** 2..* / | |||
llfourn | atweiden: putting a | in front turns the value into a Slip, which will faltten the $ variable out so the expression will return many values (the contents of the list) | 22:59 | |
Hotkeys | is there an easy way rather | ||
jnthn | Hotkeys: Do you have a strong reason not to capture and then just numify the list of captures? | ||
Hotkeys | oh | ||
I suppose I could | |||
jnthn | m: 'aaaa' ~~ / (a) ** 2..* /; say +$0 | ||
camelia | rakudo-moar e3b1dd: OUTPUT«4» | ||
Hotkeys slap forehead | |||
jnthn | Well, it's kinda a reasonable question if you were in a tight performance/memory situation and didn't want to capture, but... :-) | 23:00 | |
(As in, it's reasonable to be looking for soemthing *other* than the capture approach in that case...) | |||
Hotkeys | is there another good option in that case? | 23:01 | |
jnthn | Sorta | 23:02 | |
m: 'aaaa' ~~ / :my $i = 0; [ a { $i++ } ] ** 2..* { make $i } /; say $/.made # one variant on the theme | 23:04 | ||
camelia | rakudo-moar e3b1dd: OUTPUT«4» | ||
Hotkeys | neat | 23:05 | |
I never think about mixing code in regexes | |||
jnthn | Yeah, it's powerful *but* make sure you consider backtracking. | ||
23:08
wamba joined
|
|||
jnthn | REST time; PUT /bed :-) | 23:14 | |
sortiz | 'night jnthn | ||
llfourn | 'night | ||
23:15
skids joined
23:27
pmurias_ left
23:28
Juerd joined
23:31
spider-mario left
23:32
SCHAAP137 left
23:33
sufrostico joined
23:34
prammer left
|
|||
llfourn | RabidGravy, sortiz you're both right. Interestingly when you load IO::Socket::SSL (even before globalish has been merged) you get SSL under CORE::IO::Socket::SSL. | 23:36 | |
sortiz | llfourn, Good to know. In fact that is more efficient IMO | 23:40 | |
23:40
jack_rabbit joined
|
|||
llfourn | sortiz: though it means you can't introspect the compunit for what it is merging into globalish. | 23:41 | |
it just "happens" when you compunit is loaded. | |||
RabidGravy | I'm sure it's not going to be the only thing that hooks under an existing package like that | 23:42 | |
sortiz | llfourn, But can be tested, if the parent are not a stub, just search for in it. | 23:43 | |
llfourn | RabidGravy, sortiz elaborate on both those statementsif you can :) | 23:44 | |
RabidGravy | well, I made IO::Path::Mode which the same happens to, the is an IO::Path::More too, and I can foresee IO::Socket::* stuff | 23:45 | |
llfourn | RabidGravy: oh right yep my CompUnit::Util does the same thing now that you mention it. | 23:47 | |
skids has X::Protocol | |||
llfourn | I'm wondering if I can dream up a patch that lets us have our cake and eat it too. Have the stuff you load go into the Core::Whatver::Thing package but also be in globalish for introspection purposes. | 23:49 | |
RabidGravy | presumably there is a point in the process where it checks to see if there is an antecedent stash to use and if so just sticks it there otherwise icreate the packages | 23:51 | |
so if what we think is happening then it probably happens for any Foo::Bar where a Foo exists | 23:53 | ||
not just for core | 23:54 | ||
llfourn | yep exactly I have found that bit (I think). It does a normal $*W.find_symbol() and attaches it. | 23:55 | |
it calls $*W.install_package where I think is where that happens. | 23:56 | ||
food & | |||
RabidGravy | sleep | ||
toodles | |||
llfourn | night | ||
sortiz | night llfourn | 23:57 | |
llfourn | I'm in australia it's 11am for me :D | ||
was saying night to rabid. | |||
but good night sortiz if you are going to bed :) | |||
sortiz | No yet, but thanks, I'm in méxico | 23:59 |