»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋 Set by Zoffix on 25 July 2018. |
|||
00:07
rindolf left
00:09
w_richard_w joined,
SqrtNegI_ left
00:10
p6bannerbot sets mode: +v w_richard_w,
w_richard_w left
00:14
lizmat left
00:40
vike left
00:43
vike joined,
p6bannerbot sets mode: +v vike
00:49
Actualeyes joined
00:50
p6bannerbot sets mode: +v Actualeyes
01:12
leont left
01:30
cognominal-p6 joined,
p6bannerbot sets mode: +v cognominal-p6
01:34
cognominal-p6 left,
cognominal-p6 joined
01:35
p6bannerbot sets mode: +v cognominal-p6
01:51
lizmat joined,
p6bannerbot sets mode: +v lizmat
01:53
cognominal-p6 left
01:57
nebuchadnezzar left,
nebuchadnezzar joined
01:58
p6bannerbot sets mode: +v nebuchadnezzar
02:01
ryn1x joined
02:02
p6bannerbot sets mode: +v ryn1x
|
|||
Xliff | SmokeMachine: If you find one, please let me know. I'm in the US. We're in the same boat. :( | 02:05 | |
I've lived with mine for almost 2 years, and am hoping saner heads win the next election. | 02:06 | ||
This week's Doctor Who had a pretty funny riff on the Trum type. | |||
moony | I seem to remember someone telling me about some issue with the composekey that occur. Now i can't get the compose key to function right sometimes in GTK apps. Anyone know the solution? | 02:08 | |
Xliff | moony: Try this... | 02:09 | |
One sec | |||
02:10
molaf left
02:11
finanalyst joined
|
|||
Xliff | moony: Prefix the app you want with this and see if it works: GTK_IM_MODULE=xim | 02:11 | |
02:12
p6bannerbot sets mode: +v finanalyst
|
|||
moony | ⬚⬚⬚. Works. Thanks | 02:17 | |
⚛! | |||
02:19
canw joined
02:20
p6bannerbot sets mode: +v canw
02:22
canw left
02:23
molaf joined,
[particle]1 left,
p6bannerbot sets mode: +v molaf
02:24
[particle] joined
|
|||
Xliff | moony: :) | 02:24 | |
02:25
p6bannerbot sets mode: +v [particle]
|
|||
ryn1x | Is there a more concise way to write this?: with $chan.poll { if $_ { print $_ } } | 02:28 | |
Juerd | if $chan.poll -> $x { print $x } | 02:29 | |
ryn1x | ah that works. thanks! | 02:30 | |
I was trying this: if $chan.poll{ print $_ } | 02:31 | ||
Juerd | "if" doesn't set the topic like "with" does | ||
You could do so explicitly: if $chan.poll -> $_ { print $_ } | 02:32 | ||
Or, when using print as a method: if $chan.poll -> $_ { .print } | 02:33 | ||
But personally I prefer setting a variable with a meaningful name. I used $x in this example because I don't know what kind of thing your channel would provide. | |||
Also note that if $chan.poll{ print $_ } is missing whitespace after "poll", turning {} into a postcircumfix operator instead of if's block. | 02:35 | ||
ryn1x | ah yeah... that was just a transcrption error. it is working in the real code. | ||
with a space | |||
I am trying to figure out IPC with a python program using stdin and stdout. I have the Supply from the Proc::Async being tapped to a channel. Not sure if this is a good idea though... Playing around with reading and reacting to what is in the channel now... | 02:38 | ||
02:42
avar left,
avar joined,
p6bannerbot sets mode: +v avar
02:43
nebuchadnezzar left,
[particle]1 joined,
[particle] left
02:44
p6bannerbot sets mode: +v [particle]1
|
|||
AlexDaniel | in a regex, how can I match a string returned from a block? <{ }> almost works but it EVALs (which I don't need), and $() doesn't work because I can't access already matched parts like $<foo> | 02:44 | |
m: my $x = ‘o’; say ‘oo’ ~~ /$<foo>=‘o’ <{ $<foo> }>/ | 02:45 | ||
camelia | 「oo」 foo => 「o」 |
||
AlexDaniel | I need this but without <{ }> | ||
02:47
[particle] joined,
[particle]1 left
02:48
p6bannerbot sets mode: +v [particle]
02:55
marmay left
02:56
marmay joined,
ellipsis left,
Bucciarati left,
p6bannerbot sets mode: +v marmay
|
|||
SmokeMachine | m: my $x = ‘o’; say ‘oo’ ~~ /$<foo>=‘o’ $<foo>/ # AlexDaniel ? | 02:58 | |
camelia | 「oo」 foo => 「o」 |
||
AlexDaniel | SmokeMachine: I need a code block | 02:59 | |
or, well, I want a code block :) | |||
there's probably a way to do without but I'd much rather not | |||
ryn1x | I made a gist of a minimum working example of how I am trying to do some IPC. I have not done this before or learned about it at university/work yet... can somone tell me if this at all an appropriate approach? gist.github.com/ryn1x/2eb896216a42...4bfcbd8d7f | 03:07 | |
03:15
dotdotdot joined
03:16
p6bannerbot sets mode: +v dotdotdot
03:17
MasterDuke left
03:27
Bucciarati joined,
p6bannerbot sets mode: +v Bucciarati
03:33
ufobat_ joined
03:34
p6bannerbot sets mode: +v ufobat_
03:36
ufobat left
|
|||
AlexDaniel | ryn1x: what about the big example here: docs.perl6.org/type/Proc::Async | 03:37 | |
ryn1x: most parts of that example you probably don't need, so it will end up being shorter | 03:39 | ||
ryn1x: but react/whenever is what you want to use, IMO | |||
that way you can easily avoid infinite loops like the one in your example | 03:40 | ||
03:43
fake_space_whale left
|
|||
ryn1x | AlexDaniel: thanks. not sure why I haven't played with that example yet... I was skipping around the docs looking for what I thought I needed and missed it... I haven't used react/whenever yet... looks cool | 03:45 | |
Is there any reason to choose $proc.put: 'command' or $proc.write: "command\n".encode ? Does binary vs UTF-8 matter for ipc to a program expecting commands via stdin? | 03:58 | ||
03:59
Bucciarati left,
avar left,
Bucciarati joined,
avar joined,
avar left,
avar joined,
p6bannerbot sets mode: +v avar
04:00
p6bannerbot sets mode: +v Bucciarati,
p6bannerbot sets mode: +v avar
|
|||
Xliff | 70,000 lines!! | 04:06 | |
github.com/Xliff/p6-GtkPlus/commit...617bfcc9a4 | |||
ryn1x: react/whenever is an interesting construct. I've just recently started with it, myself. Using Proc::Async, as well. | 04:07 | ||
AlexDaniel: That example formed the basis of the process monitor I am using to monitor my builds. | 04:15 | ||
github.com/Xliff/p6-GtkPlus/commit...617bfcc9a4 | |||
Er... not that link | 04:16 | ||
github.com/Xliff/p6-GtkPlus/blob/m...onitor.pl6 | |||
AlexDaniel | ryn1x: it depends on what kind of data you are sending | ||
if it's text then probably no need to use :bin | |||
ryn1x | AlexDaniel: ok, that's what I figued, just saw an example somewhere using write and then encode so wasn't sure what I was missing | 04:17 | |
AlexDaniel | Xliff: I'm glad that people find that example useful. In my eyes it is way too complicated, but I don't know any easy way to simplify it | 04:18 | |
Xliff | Well, there were a few traps I ran into, mostly due to my still-limited understanding of react/whenever. | 04:19 | |
For example, react is blocking, so it took me a minute to determine my $*SCHEDULER call needed to be BEFORE, not AFTER the block. | 04:20 | ||
Would react/whenever work inside a Promise? | |||
AlexDaniel | what do you mean? Inside a promise? | 04:22 | |
Xliff | my $proc = Proc::Async.new: :r, <my command here>; my $prom = start { react { whenever this { }; whenever that { }; whenever $proc.start { } }; | 04:24 | |
I wouldn't want to "await $prom" because the whole point is to make the react/whenever non-blocking | |||
Or am I missing something? | 04:25 | ||
AlexDaniel | sure, that will work just fine | ||
Xliff | Cool! Thanks. | 04:26 | |
ryn1x | AlexDaniel: Xliff: Ok.. so this react/whenever construct is interesting and I have it working, but if I wanted to leave a react block, do some other stuff, and come back to control my Proc::Async that is still running later, it seems that is not possible? | 04:27 | |
Xliff | ryn1x: Heh. That's kinda touching on what I was just talking about. | ||
AlexDaniel | ryn1x: can't you just add another `whenever` to do the stuff you need? | 04:28 | |
Xliff | ryn1x: Are you trying to run code periodically? | 04:29 | |
ryn1x: If you have code written, that would help a lot. :) | 04:31 | ||
ryn1x | I want to control another program (the async process) and then leave it running because it has a lot of start-up over head.... go do a bunch of unrelated things ... come back to controlling the async process. | ||
But playing with react/whenever it seems like I need to wrap my entire program in the react block which seems wrong... | 04:32 | ||
Xliff | I would say: whenever $proc.start { my $promise = start { # do unrelated things here }; } | 04:33 | |
AlexDaniel | Xliff: but that means that the proc has finished | ||
Xliff | Oh. | ||
Well see! I am still learning. :P | 04:34 | ||
Heh :) | |||
Then: my $promise = start { # do unrelated things here }; }; react { ... } | |||
AlexDaniel | ryn1x: I guess you'd need a `start` block somewhere. Either `start react { … }` or start your bunch of unrelated things before going into react | ||
ryn1x | Is the proc killed when you call done() to exit the block? | 04:36 | |
Xliff | The proc should have exited before that happens. | 04:37 | |
To exit the proc, you should use $proc.kill. | |||
AlexDaniel | I'm actually not sure | 04:38 | |
04:39
marmay left,
AlexDaniel left
04:40
AlexDaniel joined,
p6bannerbot sets mode: +v AlexDaniel
04:41
marmay joined
|
|||
ryn1x | AlexDaniel: Is there an example of `start react { ... }` somewhere? Not sure how to form that... I have been making my Async::Proc object than calling .start on it... | 04:41 | |
04:41
p6bannerbot sets mode: +v marmay
|
|||
ryn1x | Proc::Async* | 04:42 | |
s/than/then/ | |||
AlexDaniel | m: start react { whenever Promise.in(2) { say ‘we are reacting to things!’ } }; say ‘we are here’; sleep 3; say ‘byeeeeeeee’ | ||
camelia | we are here we are reacting to things! byeeeeeeee |
||
AlexDaniel | ryn1x: ↑ | ||
and note that you can still communicate with channels or anything else you need | 04:43 | ||
m: my $c = Channel.new; start react { whenever Promise.in(2) { say ‘we are reacting to things!’ }; whenever $c { say “we got $_” } }; say ‘we are here’; $c.send: 42; sleep 3; say ‘byeeeeeeee’ | |||
camelia | we are here we got 42 we are reacting to things! byeeeeeeee |
||
ryn1x | AlexDaniel: That looks really close to what I need... I just need to be able to send commands to the process whenever.... Is it possible to and execute the `start react {...}` and still `$proc.put: "command"` from outside the react block somehow? | 04:47 | |
AlexDaniel | ryn1x: I'm pretty sure you can $proc.put from anywhere you want | 04:48 | |
ryn1x | AlexDaniel: Ok cool. This was really helpful. Thanks! | 04:49 | |
04:50
cognominal-p6 joined,
cognominal-p6 left,
cognominal-p6 joined,
p6bannerbot sets mode: +v cognominal-p6
04:51
p6bannerbot sets mode: +v cognominal-p6
04:55
cog joined
04:56
p6bannerbot sets mode: +v cog
04:57
cognominal-p6 left
04:59
nige_ joined
05:00
p6bannerbot sets mode: +v nige_
05:05
nige_ left
05:13
cog left
|
|||
ryn1x | AlexDaniel: gist.github.com/ryn1x/c313e63bd927...6fe4a154e6 | 05:20 | |
ryn1x thinks react/whenever is super cool | |||
AlexDaniel | ryn1x: instead of `whenever $proc.Supply.lines` I think you can do just `whenever $proc` | 05:22 | |
ah | |||
actually | |||
`whenever $proc.lines` ? | |||
↑ that's the one, I think | |||
ryn1x | Ok. I'll play with that tomorrow. Time to go to sleep now. Thanks again. | 05:23 | |
AlexDaniel | ryn1x: instead of `until $isready {};` | ||
use `await $proc.ready` | |||
because that won't eat cpu needlessly | 05:24 | ||
finanalyst | Hi. How do I get an enum value from a string? I have enum Status <ok nok fine>, I have from a json %h<status>='nok'. How do I turn this to a value of Status? | ||
AlexDaniel | otherwise, yeah | ||
ryn1x | AlexDaniel: 👍 | 05:25 | |
05:29
ryn1x left
|
|||
AlexDaniel | m: enum Status <ok nok fine>; dd Status(Status.^enum_values{‘nok’}) | 05:29 | |
camelia | Status::nok | ||
AlexDaniel | finanalyst: there must be a better way… | ||
AlexDaniel goes to bed | 05:30 | ||
05:33
troys left
05:59
curan joined,
p6bannerbot sets mode: +v curan
|
|||
Xliff | m: class A { method b { say ::?CLASS.name }; }; class B does A { }; say B.new.b | 06:01 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> A is not composable, so B cannot compose it at <tmp>:1 |
||
Xliff | m: class A { method b { say ::?CLASS.name }; }; class B is A { }; say B.new.b | 06:02 | |
camelia | No such method 'name' for invocant of type 'A'. Did you mean any of these? none note take in method b at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
Xliff | m: class A { method b { say ::?CLASS.^name }; }; class B is A { }; say B.new.b | ||
camelia | A True |
||
06:16
jmerelo joined,
p6bannerbot sets mode: +v jmerelo
06:22
marmay left
|
|||
Geth | doc: c6cb7929d0 | (JJ Merelo)++ | doc/Type/Cool.pod6 Changes internal to external links, closes #2411 |
06:29 | |
synopsebot | Link: doc.perl6.org/type/Cool | ||
06:51
Actualeyes left
07:00
random_yanek left
07:16
isBEKaml joined,
p6bannerbot sets mode: +v isBEKaml
07:22
finanalyst left
07:27
isBEKaml left
07:32
domidumont joined,
p6bannerbot sets mode: +v domidumont
07:33
noganex left
07:34
noganex joined
07:35
p6bannerbot sets mode: +v noganex,
jmerelo left
07:41
abraxxa joined
07:42
p6bannerbot sets mode: +v abraxxa
07:44
telex left
07:46
telex joined
07:47
p6bannerbot sets mode: +v telex
08:09
cog joined
08:10
p6bannerbot sets mode: +v cog
08:23
cog left
08:24
cog joined,
zakharyas joined
08:25
p6bannerbot sets mode: +v cog,
p6bannerbot sets mode: +v zakharyas
08:28
nebuchadnezzar joined,
p6bannerbot sets mode: +v nebuchadnezzar
08:29
rindolf joined
08:30
p6bannerbot sets mode: +v rindolf
08:33
cog left
08:43
cog joined
08:44
p6bannerbot sets mode: +v cog
08:45
cog left,
cog joined
08:46
p6bannerbot sets mode: +v cog
09:02
Ven` joined
09:03
p6bannerbot sets mode: +v Ven`
09:38
pmurias joined,
p6bannerbot sets mode: +v pmurias
09:45
pecastro joined,
p6bannerbot sets mode: +v pecastro
09:47
shortguy joined,
p6bannerbot sets mode: +v shortguy
|
|||
shortguy | docs.perl6.org/language/syntax#Ext...dentifiers Can anyone tell me how the "short name" mentioned in this bit of documentation works? Google isn't turning up much | 09:48 | |
09:50
noganex_ joined
09:51
p6bannerbot sets mode: +v noganex_
|
|||
lizmat | shortguy: "Dog:auth<Somebody>:ver<2.0>" is the long name, "Dog" is the short name | 09:53 | |
does that help? | |||
09:53
noganex left
|
|||
shortguy | Oh, I think I understand it now, that isn't really what I want | 09:54 | |
I thought it was a solution for this: stackoverflow.com/questions/330294...-name?rq=1 which it isn't really, the solution to that stackoverflow question also doesn't feel all that elegant | 09:55 | ||
lizmat | shortguy: the library in question *could* also export a `User`, effectively doing under the hood what the answer suggested | 09:57 | |
xinming | What is the differences between my $a = %(a => 1) and {a => 1}? | 09:59 | |
my $a = %(a => 1); my $b = { a => 1 }; Are they the same? | |||
shortguy | lizmat: Is there a way to "rename" the required package? So one could do use Cat but reference it in their script in another way | 10:00 | |
That would allow me to do use Garbage::Users::User but refer to the class as User | 10:01 | ||
xinming | Got it, %() is recommended to be used for creating hash, { } is for creating blocks | ||
lizmat | shortguy: the answer to the SO question: my constant User = Garbage::Users::User | 10:02 | |
there is some speculation about adding a "as" parameter to use statements, if I recall correctly | |||
but that has not been implemented afaik | |||
10:04
cog left
10:07
robertle joined
10:08
p6bannerbot sets mode: +v robertle
10:11
pmurias left
10:17
pmurias joined,
p6bannerbot sets mode: +v pmurias
|
|||
shortguy | lizmat: Thanks for answering my questions :) | 10:18 | |
10:18
shortguy left
|
|||
lizmat | m: use Test as Bar # yeah NYI | 10:19 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared name: Bar used at line 1. Did you mean 'Bag'? Undeclared routine: as used at line 1 |
||
10:47
zashi joined,
p6bannerbot sets mode: +v zashi
10:59
pmurias left
|
|||
zashi | hi | 11:03 | |
I'm trying to parse command line arguments via MAIN and pass that to a second perl app that will parse it the same. The main app is only a redirector to the other apps. Example "rep init file.c" will exec rep p6 which will exec rep-init p6 as "rep-init file.c" (sort of git behavior). The first main is multi MAIN($action, Bool :v=False, *@args). The problem is that after using :named-anywhere, any unknown flag is thrown as error and not | |||
Example: "rep -v init file.x" and "rep init -v file.x" also works as expected, but "rep -v init file.x -unknown" does not.. I would like any unrecognized flag to be slurped in order to be transmitted to the second app to have a chance to be recognized later by the second app. | |||
11:04
sena_kun joined,
pmurias joined,
p6bannerbot sets mode: +v pmurias,
p6bannerbot sets mode: +v sena_kun
11:05
Zoffix joined,
p6bannerbot sets mode: +v Zoffix
|
|||
Zoffix | zashi: try `|args` instead of `*@args` | 11:05 | |
`*args` slurps only positionals, `|args` is a Capture that captures both positional and named | 11:06 | ||
huggable: Capture | |||
huggable | Zoffix, Argument list suitable for passing to a Signature: docs.perl6.org/type/Capture | ||
zashi | ok, will try, thank you | ||
Zoffix | doesn't look like it works | 11:07 | |
zashi | I might be a total noob but it doesn't seem to work (ps yes I am noob anyway even if it would had worked) | 11:13 | |
11:15
Spot__ left,
Spot__ joined,
p6bannerbot sets mode: +v Spot__
|
|||
zashi | multi MAIN($action, Bool :v(:$verbose) = False, |args) but still fails with "rep -v init aaaa -unk" | 11:15 | |
11:15
mrsolo_ left
11:16
oodani left,
Geth left,
leah2 left,
undersightable6 left,
reu left,
ZDFD joined,
p6bannerbot sets mode: +v ZDFD,
undersightable6 joined,
Geth joined,
ChanServ sets mode: +v undersightable6,
ChanServ sets mode: +v Geth
|
|||
zashi | well it does not fail, it prints the usage. | 11:16 | |
11:17
SourceBaby left,
hoelzro left,
Zoffix left,
Zoffix joined,
p6bannerbot sets mode: +v Zoffix,
p6bannerbot sets mode: +v undersightable6,
p6bannerbot sets mode: +v Geth,
patrickb joined,
p6bannerbot sets mode: +v patrickb,
spacebat1 left,
jcallen left,
geekosaur left
|
|||
Zoffix | zashi: yeah, looks like a limitation. Filed as R#2445 | 11:17 | |
synopsebot | R#2445 [open]: github.com/rakudo/rakudo/issues/2445 Captures in sub MAIN params don't capture named args | ||
Zoffix | zashi: ok, Plan B: in addition to `*@args`, add `*%named-args` | ||
11:17
jcallen_ joined,
p6bannerbot sets mode: +v jcallen_
|
|||
Zoffix | zashi: That'll capture both: positionals to @args and named to %named-args | 11:18 | |
11:18
mrsolo_ joined,
p6bannerbot sets mode: +v mrsolo_,
ZDFD left,
hoelzro joined
11:19
p6bannerbot sets mode: +v hoelzro
|
|||
zashi | works like a charm | 11:19 | |
:D thank you guys | |||
11:20
Mithaldu left
|
|||
tyil | zashi: doing things like `multi MAIN ("init", Bool :$v = False, *@args)` is also possible, that might save you the redirecting altogether (assuming you're doing it mostly to seperate functionality into seperate modules/files) | 11:22 | |
11:22
pmurias left,
oodani joined
|
|||
tyil | then you can just add more multi MAIN definitions, and change the "init" to any other string | 11:22 | |
11:22
reu joined,
p6bannerbot sets mode: +v reu
11:23
p6bannerbot sets mode: +v oodani,
Mithaldu joined
11:24
p6bannerbot sets mode: +v Mithaldu
11:26
pmurias joined,
p6bannerbot sets mode: +v pmurias
11:27
pmurias left
11:29
AlexDaniel left,
AlexDaniel joined,
p6bannerbot sets mode: +v AlexDaniel
11:30
spacebat1 joined
11:31
Zoffix left,
p6bannerbot sets mode: +v spacebat1,
leah2 joined
11:32
geekosaur joined,
p6bannerbot sets mode: +v leah2,
p6bannerbot sets mode: +v geekosaur
11:33
domidumont left
|
|||
zashi | tyil: well, I don't know all the subcommands because users should be encouraged to create other subcommands as rep-commands somewhere in path and each subcommand could have other parameters unkown to me at this time. So the way I will do it is any known parameters (generic) are to be processed and passed to the subcommand p6 but any unknown one needs to be passed as is to the subcommand and the subcommand will decide if it's known or n | 11:33 | |
11:35
patrickb left,
Ven` left
|
|||
zashi | and the communication between the main p6 and subcommands p6 is by running it as a command because now it's a p6 but a user might decide he wants a specific subcommand to be done in another language, sort of like linux philosophy | 11:35 | |
but thanks for the idea, I hope I understood it correctly | 11:36 | ||
11:42
vike1 joined,
vike left,
p6bannerbot sets mode: +v vike1
11:50
dakkar joined
11:51
p6bannerbot sets mode: +v dakkar
12:00
JesseChan joined,
p6bannerbot sets mode: +v JesseChan
12:03
kensanata joined,
p6bannerbot sets mode: +v kensanata
12:15
leont joined
12:16
p6bannerbot sets mode: +v leont
12:17
pmurias joined,
p6bannerbot sets mode: +v pmurias
12:18
Ven` joined,
p6bannerbot sets mode: +v Ven`
12:25
pmurias left
12:29
leont left
12:35
pmurias joined,
p6bannerbot sets mode: +v pmurias
12:40
zakharyas left
12:50
raydiak_ left,
raydiak_ joined,
agentzh left
12:51
p6bannerbot sets mode: +v raydiak_
12:52
agentzh joined,
p6bannerbot sets mode: +v agentzh
13:00
cog joined
13:01
p6bannerbot sets mode: +v cog
|
|||
lizmat wonders if El_Che is already working on 2018.10 packages | 13:09 | ||
13:12
webstrand left
13:13
webstrand joined
13:14
p6bannerbot sets mode: +v webstrand
13:17
domidumont joined
13:18
p6bannerbot sets mode: +v domidumont
|
|||
El_Che | is it out? | 13:23 | |
releasable6: status | |||
releasable6 | El_Che, Next release in ≈19 days and ≈5 hours. 0 blockers. 0 out of 21 commits logged | ||
El_Che, Details: gist.github.com/abaf6489b2f258105f...4a4e5b0208 | |||
El_Che | ah nice | 13:24 | |
will kick travis then | |||
13:24
cog left
|
|||
lizmat | El_Che: cool! | 13:24 | |
13:27
JesseChan left,
pmurias left
|
|||
El_Che | lizmat: running as we speak. If ok, I'll rerun it tagged to release packages as well | 13:28 | |
lizmat | El_Che++ | 13:29 | |
lizmat can mention it in the P6W then :) | |||
El_Che | yeah, it should be ready by then | ||
it's a good extra canary for the release | |||
it runs 18 builds of rakudo | |||
13:30
antononcube joined,
p6bannerbot sets mode: +v antononcube
|
|||
lizmat | afk for a bit& | 13:30 | |
El_Che | lizmat: greetings to Woolfie | ||
13:34
antononcube left
|
|||
SmokeMachine | m: enum Status <ok nok fine>; dd Status::<nok> # finalyst | 13:36 | |
camelia | Status::nok | ||
SmokeMachine | lizmat: will `use Test as Bar` be implemented? | 13:41 | |
13:48
SqrtNegInf joined
13:49
p6bannerbot sets mode: +v SqrtNegInf
|
|||
tyil | one can only hope | 13:52 | |
moritz | one can also patch :-) | 14:00 | |
SmokeMachine | I mean: is that specified? | 14:07 | |
14:11
zakharyas joined,
p6bannerbot sets mode: +v zakharyas
|
|||
lizmat | I sorta remember speccing it in S11... but can't find it atm | 14:12 | |
moritz | iirc it was 'use Bar :from<Test>;' or something like that | 14:17 | |
lizmat | :from<> is used to indicate language | 14:19 | |
:from<perl5> | |||
moritz | then it seems I've confused the two | ||
timotimo | btw do we have a mechanism for distinguishing which Inline:: module to use for a given language if there's multiple? | ||
i imagine a "use lib" line could be used for that | 14:20 | ||
lizmat | m: use Foo:from<Perl6>:name<Test> # sorta expected that to work | ||
camelia | ===SORRY!=== Could not find Foo at line 1 in: /home/camelia/.perl6 /home/camelia/rakudo-m-inst-2/share/perl6/site /home/camelia/rakudo-m-inst-2/share/perl6/vendor /home/camelia/rakudo-m-inst-2/share/perl6 CompUnit::Repo… |
||
timotimo | wouldn't you use Test:name<Foo>? | ||
m: use Test:name<Foo>; say ::.keys | 14:21 | ||
camelia | ($=finish &is-approx ::?PACKAGE $¢ $! $/ &nok &skip-rest &done-testing &pass &eval-lives-ok &does-ok &use-ok &subtest GLOBALish &fails-like &eval-dies-ok EXPORT &throws-like &unlike $_ &can-ok !UNIT_MARKER $=pod &bail-out &cmp-ok &skip $?PACKAGE &is … | ||
timotimo | m: use Test:name<Foo>; say Foo::.keys | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared name: Foo used at line 1 |
||
timotimo | nope. | ||
El_Che | ttps://gist.github.com/nxadm/2996a607b59084b94d8d10322acb6ce0 <-- flipflop fail test | ||
gist.github.com/nxadm/2996a607b590...322acb6ce0 <-- flipflop fail test | |||
timotimo | it's not what i think it was | ||
El_Che | do we keep track of known flip flop fails? | ||
timotimo | yeah | ||
we tend to write "ZOFFLOP" in chat for them | |||
14:40
Bucciarati left
14:41
avar left
14:45
Bucciarati joined,
avar joined,
avar left,
avar joined,
p6bannerbot sets mode: +v avar
14:46
p6bannerbot sets mode: +v Bucciarati,
p6bannerbot sets mode: +v avar
14:55
dakkar left
|
|||
AlexDaniel | El_Che: it used to work like this: gist.github.com/Whateverable/20546...2e9845eda1 | 14:57 | |
but then our clog was shut down, and quotable6 doesn't know how to use colabti… | 14:58 | ||
14:58
xinming_ joined
14:59
p6bannerbot sets mode: +v xinming_
15:00
dakkar joined
15:01
p6bannerbot sets mode: +v dakkar
15:02
xinming left
15:03
molaf left
15:04
pmurias joined,
p6bannerbot sets mode: +v pmurias,
curan left
15:08
fake_space_whale joined,
p6bannerbot sets mode: +v fake_space_whale
|
|||
Geth | doc: uzluisf++ created pull request #2426: whitespace and text reflow |
15:09 | |
doc: 89ed86f8cb | (Luis F. Uceta)++ | CONTRIBUTING.md whitespace and text reflow documention -> documentation |
15:10 | ||
doc: 317f469a6d | (Luis F. Uceta)++ (committed using GitHub Web editor) | CONTRIBUTING.md Merge pull request #2426 from uzluisf/master whitespace and text reflow documention -> documentation |
|||
15:11
random_yanek joined
15:12
p6bannerbot sets mode: +v random_yanek
15:15
evalable6 left,
evalable6 joined,
ChanServ sets mode: +v evalable6
15:16
p6bannerbot sets mode: +v evalable6,
releasable6 left,
tyil[m]1 left,
tyil[m]1 joined,
p6bannerbot sets mode: +v tyil[m]1,
MitarashiDango[m left,
releasable6 joined,
ChanServ sets mode: +v releasable6,
troys joined,
ynoom joined,
p6bannerbot sets mode: +v ynoom,
Ven` left
|
|||
moritz | the nightly cron update of perl6-all-modules has worked | 15:17 | |
15:17
p6bannerbot sets mode: +v releasable6,
p6bannerbot sets mode: +v troys,
MitarashiDango[m joined,
p6bannerbot sets mode: +v MitarashiDango[m
15:18
cog joined
15:19
p6bannerbot sets mode: +v cog
15:20
leont joined
15:21
p6bannerbot sets mode: +v leont
15:24
cog left,
cog joined
15:25
p6bannerbot sets mode: +v cog
15:31
pmurias left
|
|||
El_Che | AlexDaniel, lizmat: new pkgs up: github.com/nxadm/rakudo-pkg/releas...g/v2018.10 | 15:32 | |
AlexDaniel | moritz: awesome! | 15:36 | |
15:37
pmurias joined,
p6bannerbot sets mode: +v pmurias,
moony_ joined,
p6bannerbot sets mode: +v moony_
15:39
ynoom left
|
|||
lizmat | El_Che++ | 15:39 | |
15:42
moony_ left
|
|||
AlexDaniel | El_Che: cool! | 15:42 | |
15:50
wbn left
15:52
wbn joined,
p6bannerbot sets mode: +v wbn
|
|||
lizmat | hmmm... looks like we don't have any proper documentation as to what "use v6.c" and "use v6.d" actually do / mean | 15:55 | |
lizmat hopes for some quick PDD | |||
(Perl6Weekly Driven Development) | 15:56 | ||
16:09
molaf joined
16:10
p6bannerbot sets mode: +v molaf,
pmurias left
16:11
Guest13389 left
16:16
ryn1x joined,
pmurias joined,
p6bannerbot sets mode: +v pmurias,
roguelazer joined
16:17
p6bannerbot sets mode: +v ryn1x,
p6bannerbot sets mode: +v roguelazer
16:19
zakharyas left
16:25
fake_space_whale left,
Guest13389 joined
16:26
p6bannerbot sets mode: +v Guest13389
|
|||
ryn1x | Do you guys thing porting Graphics::TIFF from perl5 to perl6 would be difficult? The source code looks pretty short... I think I would just need to learn how to wrap a C library with NativeCall? metacpan.org/pod/release/RATCLIFFE...cs/TIFF.pm | 16:27 | |
hahainternet | ryn1x: i'm only passing through, but extremely simple | 16:28 | |
ryn1x | I just need to figure out how the Perl5 xsloader code convertes to NativeCall I think... they both perform similar functions right? Access to C libraries... Haven't used either and I don't know Perl5 so this make take more time in reading/researching than coding. | 16:30 | |
hahainternet | i don't think you want to waste your time learning XS or how to translate | 16:31 | |
consider just using nativecall directly and attempting to manipulate a test file w/tifflib or whatever directyly | 16:32 | ||
i am not an authority though, just giving you my perspective | |||
ryn1x | Ok. That sounds like a good idea. I start with reading up on NativeCall. | 16:33 | |
leont | That's rather outdated XS too -_- | ||
I know little about NativeCall, and more than I should about XS. I'm not sure how one would do all those constants with NC. Calling most functions should be trivial though | 16:34 | ||
ryn1x | Hmm.... Are you saying I might have to redefine all the constants and their values in regular perl6 code because native call can't use the ones defined by the c library like xs (apparantly) can? | 16:36 | |
geekosaur | nativecall and xs are very different things | 16:41 | |
16:42
cog left
16:43
moony_ joined,
p6bannerbot sets mode: +v moony_
|
|||
lizmat | ryn1x: it is my understanding that NativeCall is mostly runtime | 16:43 | |
so it won't be able to "see" constants, unless they're also public symbols | 16:44 | ||
ryn1x | hmm ok.. | ||
lizmat | and I may also be talking pretty much nonsense here (with regards to public symbols) | ||
ryn1x | so NativeCall is still what I would want if I need to start from stratch to provide perl6 bindings to the C libtiff library though? | 16:45 | |
I have to eventually run this code on a windows machine so it seems really weird to do the alternative and inline::perl5 to then call a c library... especially since windows has to have stawberry perl installed separately | 16:47 | ||
sena_kun | Yes, it is likely what you want. As far as I know, you can use NativaCall on windows too, though it might be a bit more tricky to ship your .dll file than on unix-like. | 16:49 | |
As in nice gnu/linux if necessary .so library is already installed in some default location, you don't need to do anything to use it with NativeCall. | 16:50 | ||
ryn1x | Story of my life... I get everything working on our Linux/macOS machines and then have to struggle on windows. | 16:51 | |
Although I just got WSL running... playing around with that... | 16:52 | ||
sena_kun | Absence of sane "/lib" on Windows is not something to be fixed by this community. If it can be fixed. | ||
but that's another question. anyway, I just wanted to write that docs for NativeCall is what you want. You can look at someone's library using NativeCall to get some ideas about that, also don't hesitate to ask questions if there will be any tricky places. | 16:54 | ||
s/using/that uses/ | |||
16:56
ryn1x left
|
|||
jnthn | Quite a few modules ship/install their own binary on Windows | 17:00 | |
17:01
moony_ left
17:03
kensanata left
17:06
rindolf left
|
|||
Geth | perl6.org: 79aaa00db3 | (Zoffix Znet)++ | source/about/index.html Only a Sith deals in absolutes Irrelevant of its veracity, we don't need to have this on the site. (saw people reference that phrase when dissing our "marketing") |
17:06 | |
17:11
domidumont left
17:22
dakkar left
17:23
gregf_ joined,
p6bannerbot sets mode: +v gregf_
17:26
zakharyas joined,
ExtraCrispy left
17:27
p6bannerbot sets mode: +v zakharyas,
ExtraCrispy joined,
p6bannerbot sets mode: +v ExtraCrispy
|
|||
Altreus | anyone know whether anyone is working on LDAP? | 17:37 | |
bagsy not it | 17:38 | ||
El_Che | whatdoyamean | ||
modules? product? | |||
client? server? | |||
Altreus | some sort of module/s yeah | 17:39 | |
El_Che | Net::LDAP | ||
Altreus | ... I mean I was thinking client | ||
but server | |||
interesting idea | |||
it's done? | |||
El_Che | A perl ldap server? | ||
moritz | btw python'3 ldap3 seems to be pretty good | 17:40 | |
Altreus | modules.perl6.org/search/?q=ldap | ||
El_Che | (openldap has a perl backend by the way) | ||
moritz | if you plan to do some ldap stuff, I'd recommend looking at it for inspiration | ||
Altreus | we wanted to use it for auth in a cro system but I really don't get on with LDAP myself | ||
El_Che | Altreus: I tried a little, but didn't have the time for something usefull | 17:41 | |
I played with libldap and nc | |||
Altreus | it seems liek a large undertaking | ||
El_Che | but it's a lot of work | ||
indeed | 17:42 | ||
libldap has many opaque datatypes | |||
Altreus | and logic | ||
El_Che | Also, NC and versioning is a pain | 17:43 | |
some time ago I wanted to write a small project in perl6 or go, but ended writing it in perl 5 because of the lack of good ldap libs | 17:45 | ||
So, yes, it's a bad combination of needed and not easy to implement | 17:49 | ||
17:50
cog joined
|
|||
El_Che | And alternative is puttying somethink like a rest proxy in front of your ldap | 17:50 | |
17:51
domidumont joined,
p6bannerbot sets mode: +v cog
17:52
p6bannerbot sets mode: +v domidumont
17:53
ryn1x joined
17:54
p6bannerbot sets mode: +v ryn1x
|
|||
AlexDaniel | .tell kensanata how is it going? I wanna switch something to oddmuse6 and I wonder if that'd be a good idea any time soon | 18:02 | |
yoleaux | AlexDaniel: I'll pass your message to kensanata. | ||
18:03
robertle left
|
|||
Xliff | \o | 18:06 | |
18:06
zakharyas left,
zxcvz joined
18:07
p6bannerbot sets mode: +v zxcvz
18:18
cog left,
cog joined
18:19
p6bannerbot sets mode: +v cog
|
|||
AlexDaniel | o/ | 18:20 | |
18:27
cog left
18:45
rindolf joined
18:46
rindolf left
18:47
ExtraCrispy left,
rindolf joined
18:48
p6bannerbot sets mode: +v rindolf
18:51
graphene joined,
patrickb joined,
p6bannerbot sets mode: +v graphene
18:52
p6bannerbot sets mode: +v patrickb
18:53
ryn1x left
|
|||
El_Che | My computer just told me there was an update of the "Rakudo Perl 6 runtime" :) | 18:58 | |
It means the repo is working fine | |||
Altreus | I did think of just having a RESTful microservice for LDAP creds | 19:03 | |
El_Che | Or go the oauth/openid-connect/saml route with a ldap backend | 19:04 | |
is the way to go as you don't have to handle secrets | |||
(but it's something on the org level) | 19:05 | ||
(as it needs work and admin care) | |||
Altreus: I have been thinking of a rest service for ldap as well, but because we have a saml infrastructure (and since shortly openid-connect one), the hasn't been enough reason to do the work | 19:11 | ||
rindolf | Altreus: hi | 19:12 | |
19:12
AlexDaniel left,
AlexDaniel joined,
p6bannerbot sets mode: +v AlexDaniel
19:13
graphene left
19:15
graphene joined,
p6bannerbot sets mode: +v graphene
|
|||
Altreus | hi rindolf | 19:21 | |
rindolf | Altreus: sup? | 19:22 | |
Altreus | yeah we need to support our existing LDAP infrastructure | ||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/10/29/...proaching/ | ||
Altreus | rindolf: just working from home all evening since I took so much time out of my day | 19:23 | |
rindolf | Altreus: ah | ||
Altreus | not really tracking my time though :\ I should be | ||
leont has actually attended a Diwali celebration 2 years ago :-) | 19:25 | ||
rindolf | lizmat: thanks | 19:26 | |
Altreus: how is Dee doing? | 19:27 | ||
AlexDaniel | “Note for the curious: this is the last release of the Rakudo compiler that implements version 6.c of Perl 6 by default.” | 19:29 | |
AlexDaniel sheds a tear | |||
lizmat hugs AlexDaniel | 19:30 | ||
AlexDaniel | :) | ||
El_Che | lizmat: calling AIX legacy is not nice | 19:31 | |
I would change that | |||
rindolf | Altreus: I successfully finished a paid project. | 19:32 | |
Altreus | rindolf: Dee left a long time ago | ||
rindolf | Altreus: ah | ||
Altreus | rindolf: an enjoyable project? | ||
lizmat | El_Che: changed | ||
rindolf | Altreus: yes | ||
Altreus | great :) | 19:33 | |
rindolf | Altreus: i also released Freecell Solver 5.0.0 | ||
AlexDaniel | lizmat: fyi, Blin is also Bisectable on drugs. It's possible to use it on a single module to see which rakudo commit introduced a regression. Also here are some preliminary results for 6.c→6.d transition: gist.github.com/AlexDaniel/3296f8c...14f25d5087 | ||
El_Che | lizmat: good call :) | 19:34 | |
it's not because we tease the aix guys during the workday with Linux, that we need to do it in the weekly. Certainly now that IBM bought Red Hat (crap). | 19:35 | ||
Geth | doc: a318b8d717 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/faq.pod6 Update to exact date on 6.d release FAQ |
19:37 | |
synopsebot | Link: doc.perl6.org/language/faq | ||
lizmat | AlexDaniel: reworded the entry a bit | ||
AlexDaniel | cool, thanks! | 19:38 | |
19:39
xinming_ is now known as xinming
19:41
domidumont left
19:46
graphene left
|
|||
El_Che | AlexDaniel: kudos for the release | 19:55 | |
AlexDaniel | \o/ | ||
El_Che: hehe more fun ahead | 19:56 | ||
19:56
ryn1x joined,
kensanata joined,
p6bannerbot sets mode: +v kensanata
|
|||
El_Che | AlexDaniel: always | 19:56 | |
19:57
p6bannerbot sets mode: +v ryn1x
20:09
cog joined
20:10
p6bannerbot sets mode: +v cog
20:12
MilkmanDan left
20:13
rindolf left
20:14
roguelazer left
20:16
MilkmanDan joined,
p6bannerbot sets mode: +v MilkmanDan
20:23
jc_atikon joined,
rindolf joined
20:24
jc_atikon left,
p6bannerbot sets mode: +v rindolf
20:27
jc_denton1 joined,
p6bannerbot sets mode: +v jc_denton1
|
|||
ufobat_ | cro question, basic authentication, there is a middleware that does help for checking for the authorization | 20:33 | |
but | |||
it is only working on top of the request | |||
when if i want to modifiy the respose if someone is not logged in correctly? | 20:34 | ||
do i need to write a own middleware based on Cro::HTTP::Middleware::Pair? | |||
or did I not understand something correctly | |||
20:34
cog left
|
|||
ryn1x | Got a couple liftiff functions working with NativeCall, but what to I do with variadic functions like: `int TIFFGetField(TIFF* tif, uint32 tag, ...);` | 20:40 | |
sub TIFFGetField(TIFF, uint32, WHAT GOES HERE? ) is native('tiff') { * } | 20:41 | ||
El_Che | will slurpy work? | 20:42 | |
docs.perl6.org/type/Signature#Slur...arameters? | |||
ryn1x | Im trying that `|`, but havent found something that works yet.. | ||
El_Che | *@ | 20:43 | |
? | |||
ryn1x | oh... maybe I was doing it wrong. * not | | ||
El_Che | probably it won't work, but who knows | ||
(probably some people on this channel :) ) | |||
jc_denton1 | Hello, | 20:44 | |
I'm working on a small project using IO::Socket::Async. I'm trying write some tests to make sure I'm handling a connection loss properly but my intial atempts didn't go as planned. I thought using a QUIT phaser would work but that didn't give any response in the tests I tried closing the supply but that isn't giving the results I was hoping for. Can someone point me in the right direction on how to handle a connection loss with IO::Socket | |||
::Async? | |||
ryn1x | El_Che: *@ does not work... get the error: Too many positionals passed; expected 2 arguments but got 3 | 20:47 | |
El_Che | yeah, expected something like that :( | 20:49 | |
ryn1x | suprised it isnt mentioned in the nativetypes doc page ... it seems to be used all over c libraries | 20:50 | |
20:56
cog joined
|
|||
El_Che | ryn1x: here are some pointers: stackoverflow.com/questions/495860...nativecall | 20:56 | |
20:56
p6bannerbot sets mode: +v cog
|
|||
El_Che | no solution though | 20:56 | |
tobs | ryn1x: I remember this discussion colabti.org/irclogger/irclogger_lo...06-17#l683 | 20:59 | |
iirc, the outlook was bad, 5 months ago | |||
El_Che | good memory | 21:00 | |
tobs | I'm afraid the best suggestion was to supply a small C library with your module which wraps the variadic function and provides something non-variadic interface for your NativeCall | ||
ryn1x | tobs: thanks | 21:01 | |
El_Che | yeah, that would work, but it gets us closer to XS territory | ||
21:06
|oLa| joined,
p6bannerbot sets mode: +v |oLa|
21:07
cog left
21:08
cog joined,
p6bannerbot sets mode: +v cog
21:10
|oLa| left
21:15
kensanata left,
marmor joined
21:16
p6bannerbot sets mode: +v marmor
21:19
rindolf left
21:20
pmurias left
21:23
rindolf joined,
p6bannerbot sets mode: +v rindolf
21:26
pmurias joined,
p6bannerbot sets mode: +v pmurias
21:29
zxcvz left
|
|||
jc_denton1 | sorry to ask again. Can someone point me in the right direction with my IO::Socket problem please? | 21:35 | |
21:37
random_yanek left
21:43
scotticles joined,
p6bannerbot sets mode: +v scotticles
|
|||
ryn1x | Maybe I wont write a module using NativeCall just yet... pointer stuff is getting weird. Not sure how to handle a function that takes a pointer as it's last argument for it's "return value". | 21:47 | |
AlexDaniel | jc_denton1: I don't know how to answer your question, but maybe consider asking the same question on stackoverflow? | 21:48 | |
21:49
random_yanek joined
21:50
p6bannerbot sets mode: +v random_yanek
21:53
ryn1x left
21:55
moony left,
moony joined,
p6bannerbot sets mode: +v moony
21:58
ryn1x joined
21:59
p6bannerbot sets mode: +v ryn1x
22:00
lizmat left,
marmor left
|
|||
Xliff | m: 1.WHAT.say | 22:03 | |
camelia | (Int) | ||
Xliff | How can I get that to just say "Int" | ||
m: 1.^name.say | |||
camelia | Int | ||
Xliff | OK. Well, there's this situation. | ||
class A::B::C {}; my $abc = A::B::C.new; $abc.^WHAT.say | 22:04 | ||
m:class A::B::C {}; my $abc = A::B::C.new; $abc.^WHAT.say | |||
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/nZDO0LFmHt Cannot … |
||
Xliff, Full output: gist.github.com/410b5792dc38d662f5...b547da2a61 | |||
Xliff | m: class A::B::C {}; my $abc = A::B::C.new; $abc.^WHAT.say | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot use .^ on a non-identifier method call at <tmp>:1 ------> 3:C {}; my $abc = A::B::C.new; $abc.^WHAT7⏏5.say expecting any of: method arguments |
||
Xliff | m: class A::B::C {}; my $abc = A::B::C.new; $abc.WHAT.say | ||
camelia | (C) | ||
Xliff | m: class A::B::C {}; my $abc = A::B::C.new; $abc.WHAT.say; $abc.^name.say | ||
camelia | (C) A::B::C |
||
jc_denton1 | AlexDaniel: I'll try asking on there as well thanks. | ||
Xliff | m: class A::B::C {}; my $abc = A::B::C.new; $abc.WHAT.say; $abc.^name.say; $abc.WHAT.Str.say | 22:05 | |
camelia | (C) Use of uninitialized value of type A::B::C in string context. Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. A::B::C in block <unit> at <tmp> line 1 |
||
22:34
pmurias left
|
|||
Geth | doc: chsanch++ created pull request #2427: Fix example for Pod::Block::Named. Fixes #2425 |
22:38 | |
22:39
[Coke]_ is now known as [Coke]
22:42
sena_kun left
|
|||
moony | i kinda wanna write a MUD in perl 6, now that i've gotten the hang of things | 22:42 | |
22:42
ryn1x left
|
|||
moony | yet my horrible work ethic means i'll likely never get past the "take input from telnet" stage 🤔 | 22:43 | |
[Coke] | docs folk, testing a change to xt/examples-compilation that lets you mark a test as requiring its own file for testing; so the majority go through the EVAL path we have, but you can mark problematic ones like those containing "unit" or "is export" as requiring a separate file to run them in. (lets me get xtest passing again) | ||
22:57
scotticles left
23:10
lizmat joined,
p6bannerbot sets mode: +v lizmat
23:15
pecastro left
23:16
patrickb left
|
|||
Geth | doc: f8a479f358 | Coke++ | 2 files Allow some tests to compile-check solo. Allows us to test items that might interfere with other tests when run in a giant EVAL'd environment. (E.g. having multiple exports of the same name that are only conflicting across multiple files) solo implies that don't have to wrap the code in anything. |
23:20 | |
doc: d67bcde51c | Coke++ | doc/Language/modules.pod6 export test name conflicts with another file |
|||
synopsebot | Link: doc.perl6.org/language/modules | ||
doc: d2daaa6138 | Coke++ | 4 files run unit tests |
|||
23:20
jc_denton1 left
23:52
nuclearsandwich joined,
p6bannerbot sets mode: +v nuclearsandwich
|