»ö« 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:05
firstdayonthejob left
|
|||
sufrostico | Hi .o/ | 00:06 | |
hoelzro | hello! | 00:10 | |
00:13
n0tjack joined
|
|||
sufrostico | hey, anyone willing to help with this error: "This representation (VMArray) cannot unbox to a native string" | 00:15 | |
00:16
abaugher left
|
|||
timotimo | can you get a detailed backtrace when you perl6 --ll-exception ? | 00:17 | |
sufrostico | pastebin.com/1tGXAsNi | 00:19 | |
I'm working on a library binding with NativeCall | 00:21 | ||
00:24
n0tjack left
00:26
iloveunix joined
00:28
virtualsue joined
00:29
abaugher joined
00:30
Actualeyes joined
00:58
autarch joined
01:05
virtualsue left
|
|||
sufrostico | Problem is I can't find what a VMArray is anywhere or how to use it | 01:08 | |
timotimo | sufrostico: VMArray is behind arrays in perl6, you can search for things that are repr VMArray in the core | 01:10 | |
things that directly "is repr VMArray" are Buf, array (lowercase), Uni and the different kinds of normalized unicode buffers, the IterationBuffer | 01:12 | ||
but everywhere that nqp::list is used, that's a VMArray, too | |||
Blob, too | |||
01:14
n0tjack joined
|
|||
sufrostico | mmm, thanks | 01:14 | |
01:14
hankache joined
|
|||
hankache | hola #perl6 | 01:14 | |
timotimo | holankache | ||
hankache | holatimo | ||
:) | 01:15 | ||
timotimo | hmm, maybe "greetimo"? | ||
hankache | hehe indeed greetimo! | ||
01:15
espadrine left
|
|||
hankache | or greatimo | 01:16 | |
timorning everyone | |||
better one ^^ | |||
01:18
n0tjack left
|
|||
sufrostico | hola! | 01:23 | |
timotimo: thanks, I't was a stupid error... but understanding what a VMArray (~ bufs) make everything clear XD | 01:24 | ||
01:25
_dolmen_ left
01:27
leont left
01:29
grondilu left
01:31
hankache left,
grondilu joined
|
|||
timotimo | glad to hear it | 01:32 | |
01:34
KotH joined
01:37
retupmoca left
01:45
cdg_ left,
sufrostico left
01:53
zpmorgan joined
|
|||
adu | timotimo! | 01:53 | |
timotimo | adu! | 01:54 | |
adu | timotimo: how goes? | ||
timotimo | things are all right; how about you? | ||
adu | good, had a tiny power outage yesterday | ||
timotimo | i hope the only thing that b0rked there was machine state? | 01:55 | |
adu | timotimo: well, my work is pretty well distributed, I think we lost like 5% of our servers, but I'm a genious, so nothing stopped working :) | ||
timotimo | not bad :) | 01:56 | |
i wish i was a genius :P | |||
adu | me too | ||
timotimo | i'm not sure i'm connecting the right person with your nickname | 01:57 | |
so what exactly do i remember you from? | 01:59 | ||
02:03
retupmoca joined
02:07
araujo_ joined
02:09
BenGoldberg joined
02:10
araujo left
|
|||
adu | timotimo: I'm the guy who wrote C::Parser | 02:16 | |
timotimo | oh! | 02:18 | |
could it be you haven't been around the channel for some time? | |||
adu | yes, I've been coming here since 2011-ish | 02:19 | |
timotimo | no, i mean | ||
recently i don't think i've seen you participate | |||
but i may be wrong | |||
adu | timotimo: yeah, I suck | 02:20 | |
timotimo: work is busy, my wife wants a house, you know how it is | |||
timotimo: are there bugs in C::Parser I should know about? | 02:21 | ||
timotimo | oh, don't beat yourself up about it :) | 02:22 | |
i'ven't used C::Parser at all. but i think maybe GPTrixie uses it? it's the thing we have to auto-generate bindings for NativeCall | |||
adu | timotimo: well, if you find any, let me know by making a formal issue at github.com/andydude/p6-c-parser | ||
yeah, I remember someone was interested in a C::Parser / NativeCall baby | 02:23 | ||
02:24
n0tjack joined
|
|||
timotimo | right :) | 02:24 | |
adu | timotimo: my thing is universal trans-compilation from any language to any language | 02:27 | |
I felt C::Parser was a good place to start :) | |||
02:27
AndyDee left
02:29
n0tjack left
|
|||
timotimo | oh, hehe | 02:34 | |
02:45
ilbot3 left
02:47
ilbot3 joined
02:52
BenGoldberg left
02:53
tmch left
02:54
BenGoldberg joined
|
|||
timotimo | anyway, i'm off to bed! | 03:01 | |
been up way too long already | |||
03:09
yqt left,
xiaomiao left,
dh7320 left
03:10
khagan left
03:16
xiaomiao joined,
bitmap left
03:19
bitmap joined
03:28
rburkholder left
03:30
khagan joined
03:31
Herby_ joined
|
|||
Herby_ | Evening, everyone! | 03:31 | |
03:32
Actualeyes1 joined
03:34
Actualeyes left
03:35
BenGoldberg left
|
|||
Herby_ | \o | 03:37 | |
03:40
adu left
03:44
vendethiel joined
03:50
kid511 left
03:52
pierrot left
03:58
noganex joined
04:01
noganex_ left
04:02
wamba left
04:06
n0tjack joined
04:08
vendethiel left
|
|||
cbk | Hello Herby_ | 04:13 | |
timotimo not really able to sleep | 04:14 | ||
04:15
n0tjack left
|
|||
timotimo | wow, my brownian tree code up on rosettacode really eats a lot of memory when run under --profile; i'm not sure i'll be able to use the resulting .html file at all ... | 04:17 | |
Herby_ | brownie tree? | 04:22 | |
timotimo | almost | 04:23 | |
04:24
perturbation joined
|
|||
skids | m: my $c = Channel.new; sub foo { whenever $c { $_.say }; emit 4; }; my $s = supply { emit 2; emit 3; foo(); }; $s.tap({"supply $_".say}); sleep 1; $c.send(44); sleep 1 | 04:29 | |
camelia | rakudo-moar f25d41: OUTPUT«supply 2supply 3supply 444» | 04:30 | |
skids | whenever is also lexotic, not just emit and done? | ||
sortiz | .tell Skarsnik The idea to have all floats in Rat was a bad one. In fact, pretend that all SQL numeric types should map to a single Perl6 type is naive. I'm opening an issue for real discussion. | 04:32 | |
yoleaux | sortiz: I'll pass your message to Skarsnik. | ||
timotimo | skids: seems like | 04:33 | |
skids | I'll doc it that way, hopefully there isn't a nuancy difference. | 04:34 | |
dalek | rl6-most-wanted: b21c481 | (Sevvie' Rose)++ | most-wanted/modules.md: Added WIP for Math::TrulyRandom It's not perfect yet. |
04:38 | |
rl6-most-wanted: a001ce0 | timo++ | most-wanted/modules.md: Merge pull request #19 from sevvie/patch-1 Added WIP for Math::TrulyRandom |
|||
04:40
sevvie joined
|
|||
timotimo | good god could the profile output file please stop growing? | 04:40 | |
there's no way i'll get this to work in a browser ... it's already at ~150 megabytes | 04:42 | ||
dalek | rl6-most-wanted: c6bf90b | (Aurelio Sanabria)++ | most-wanted/bindings.md: Update bindings.md Add work in progress module for the snowball compiler |
04:48 | |
rl6-most-wanted: f1431b3 | azawawi++ | most-wanted/bindings.md: Merge pull request #18 from Sufrostico/patch-1 Update bindings.md (wip: snowball) |
|||
timotimo | that moment when a single removed redundant "return" makes your program run in 9.3s instead of 11.2s | 04:49 | |
05:02
Herby_ left
|
|||
flussence | why is return so expensive? :( | 05:09 | |
timotimo | it goes through a whole bunch of hoops | 05:10 | |
05:26
Roamer` left,
Roamer` joined
|
|||
dalek | ecs: 33eaffe | skids++ | S17-concurrency.pod: Update Supply introduction and method docs for serial supplies Also some Channel clarifications. |
05:38 | |
ecs: cc534c4 | skids++ | S17-concurrency.pod: A start on design doc for react/supply blocks and whenever clauses This will need quite more work. |
|||
skids | Hopefully I didn't leave any hanging pod tags because I'm dead tired and heading to bed. | 05:42 | |
05:43
skids left,
Cabanossi left
05:45
Cabanossi joined
05:47
perturbation left
06:02
nchambers left
06:08
autarch left
06:10
ka joined
06:39
n0tjack joined,
Biplab joined
06:40
Biplab left
06:42
agent008 joined
06:43
n0tjack left
06:53
CIAvash joined
07:15
ricardo_ left
07:16
_mg_ joined
07:28
vendethiel joined,
sjoshi joined
07:39
nakiro joined
07:41
FROGGS joined
07:44
firstdayonthejob joined
07:46
krunen joined
07:50
firstdayonthejob left
07:51
firstdayonthejob joined
07:55
RabidGravy joined
07:58
Ven joined,
Ven left
07:59
Ven joined
08:01
Ven_ joined
08:04
iloveuni` joined
08:05
Ven left
08:07
iloveunix left
08:14
darutoko joined
08:18
dh7320 joined
08:23
vendethiel left,
vendethiel joined
08:24
ely-se joined
08:29
zakharyas joined
|
|||
[Tux] | est 22.295 | 08:31 | |
test-t 11.889 | |||
csv-parser 49.385 | |||
moritz | skids++ | 08:32 | |
RabidGravy | m: role F {}; class G is F {}; # is it possible to prevent *inheritance* from a role like that? | ||
camelia | ( no output ) | ||
RabidGravy | I actually thought that blew up already but apparently not | 08:33 | |
moritz | no, it auto-puns a class | 08:36 | |
and you can prevent it by adding a stubbed method to the role | |||
m: role F { method dummy { ... } }; class G is F { } | 08:37 | ||
camelia | rakudo-moar f25d41: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EwMz_ELLEVMethod 'dummy' must be implemented by F because it is required by a roleat /tmp/EwMz_ELLEV:1» | ||
moritz | of course, also proper consumption must also provide that method | ||
m: role F { method dummy { ... } }; class G is F { method dummy { } } | |||
camelia | rakudo-moar f25d41: OUTPUT«5===SORRY!5=== Error while compiling /tmp/R84l5w_2s8Method 'dummy' must be implemented by F because it is required by a roleat /tmp/R84l5w_2s8:1» | ||
moritz | m: role F { method dummy { ... } }; class G does F { method dummy { } } | ||
camelia | ( no output ) | ||
RabidGravy | yeah, that won't fly in this case | ||
I'll catch it at the point it causes a problem | 08:38 | ||
08:38
firstdayonthejob left
|
|||
RabidGravy | m: role F {}; class G is F {}; class H does F {}; say G.^shortname; say H.^shortname; | 08:39 | |
camelia | rakudo-moar f25d41: OUTPUT«GH» | ||
RabidGravy | Hmm I'm seeing something different | ||
08:42
abraxxa joined
08:43
vendethiel left
08:44
CIAvash left
08:45
ab6tract joined
|
|||
abraxxa | morning! | 08:45 | |
yoleaux | 25 Feb 2016 17:01Z <nine> abraxxa: Makeshift solutions have the tendency to stick around much longer than people think when they implement them. Imagine people starting to use Perl 6 more and more, DBIish becoming better and better and the "real" DBI taking another 3-4 years to become usable. By then it will have a hard time catching up with a well established DBIish. | ||
sortiz | \o #perl6 | 08:46 | |
abraxxa | nine: I though more like having a constant beta train and a stable one, maybe the versioning and multiple version support is better in Perl 6 compared to Perl 5 and there is no need for having a seperate namespace | 08:47 | |
sortiz: are you able to run the DBIish tests with 2016.02? | |||
everything seems to hang with the new release | |||
strace shows again epoll_wait(5, | 08:48 | ||
last time that was vars.pm of my perlbrewed Perl 5.22.1 | |||
sortiz | abraxxa, Yes, I'm installing oracle to be able to run the full suite. | 08:49 | |
08:49
wamba joined
|
|||
abraxxa | sortiz: I have all db's installed | 08:49 | |
Oracle is quite easy using docker | |||
lsof shows this: moar 23862 ahartmai 5u 0000 0,11 0 6962 anon_inode | 08:50 | ||
sortiz | abraxxa, It is hanging with all databases? | ||
abraxxa | it's hanging with almost everything, panda, p6doc | ||
sortiz | Ah, that should be that some repo is locked. | 08:51 | |
So any other precomp or install must wait. | |||
abraxxa | what can I do to fix it? delete the precomp dir? | 08:54 | |
nine | Just wait till its unlocked | 08:55 | |
abraxxa | nine: hi! | ||
nine | Assuming you still have some perl6 process running? | ||
abraxxa | i'm waiting since yesterday... | ||
ah, there where two hanging processes from two days ago! | |||
so two perl6 instances can't run in parallel because of precomp? | 08:56 | ||
RabidGravy | find some .precomp/.lock and delete if no processes running | ||
abraxxa | RabidGravy: I've deleted the whole dir | ||
08:57
ab6tract left
|
|||
abraxxa | can we do something to e.g. print a warning if a lock is active, maybe one after a slight delay? | 08:57 | |
sortiz | abraxxa, open a RT ticket. | 08:58 | |
nine | perl6 processes can run in parallel just fine. It's just that only one at a time may load modules. Of course loading modules should normally not take a whole night :) | ||
08:58
Juerd left
|
|||
abraxxa | filesystem permissions might get in the way, e.g. you run something as another user which precompiles some modules and the rights don't allow to access the files as another user | 08:59 | |
sortiz: can run the tests again, ping me if I can be of help | |||
08:59
dakkar joined
|
|||
nine | abraxxa: are you talking about a real world use case? | 08:59 | |
abraxxa | I'd like to now start writing docs which describe our api and only continue chaning code afterwards | ||
have a meeting now, later! | 09:00 | ||
sortiz | abraxxa, I'm about to commit some changes to the test suite, right now a can assure that Pg, mysql and sqlite are sane, but some help with oracle should be appreciated. | 09:01 | |
09:01
Juerd joined
09:11
TEttinger left
09:16
vendethiel joined,
Ven_ left
|
|||
moritz | sortiz++ | 09:22 | |
09:28
rindolf joined,
_mg__ joined
09:31
_mg_ left,
_mg__ is now known as _mg_
09:32
Ven joined
09:33
[particle] joined,
luis` joined
09:34
Some-body_ joined,
andrewalker_ joined
09:35
andrewalker left,
luis left,
DarthGandalf left,
[particle]1 left,
RabidGravy left,
Some-body_ is now known as DarthGandalf
09:36
vendethiel left
|
|||
sortiz | moritz, DBIish is in need of some care, I have intention and tuits. | 09:39 | |
moritz | sortiz: please consider yourself the maintainer :-) | 09:40 | |
abraxxa | back | 09:43 | |
my feeling is that Perl 6 POD is under-documented which leads to module authors not documenting their code, Net::AMQP doesn't have a single line of pod for example | 09:44 | ||
09:44
pierrot joined
|
|||
sortiz | moritz, Thanks, I hope to live up to the responsibility. :) | 09:45 | |
lizmat | good *, #perl6! | 09:46 | |
sortiz | \o lizmat | 09:47 | |
09:47
RabidGravy joined
|
|||
nine | abraxxa: I concur. | 09:49 | |
RabidGravy | is the best way to test whether an attribute has a type constraint "$attr.type =:= Mu" or is there a better way? | 09:50 | |
well obviously that tests that it isn't defined but y'see what I mean | 09:52 | ||
lizmat | working on my first module, I feel the same pain | ||
RabidGravy | wahay!! | 09:53 | |
09:55
n0tjack joined
|
|||
abraxxa | any good pointers on Perl 6 POD docs/tutorials? | 09:56 | |
09:59
ocbtec joined,
n0tjack left
10:00
araujo_ left
|
|||
abraxxa | Too few positionals passed; expected 2 arguments but got 1 | 10:01 | |
in block <unit> at printer-react.pl6 line 20 | |||
10:01
tmch joined
|
|||
abraxxa | not very helpful message | 10:01 | |
that's the code github.com/retupmoca/P6-Net-AMQP/b...-react.pl6 | |||
my line 20 is its line 14 | 10:02 | ||
seems to come from the empty declare-queue call | 10:05 | ||
10:07
iloveuni` left
|
|||
Hotkeys | abraxxa: declare-queue requires two parameters and you've only given it one it seems | 10:07 | |
I lied | 10:09 | ||
I looked at the wrong function | |||
abraxxa | Hotkeys: where do you see that it requires two? github.com/retupmoca/P6-Net-AMQP/b...l.pm6#L134 | ||
10:09
sevvie left
|
|||
abraxxa | oh | 10:09 | |
$name seems to be required | |||
if not by declare-queue then by Net::AMQP::Queue.new | |||
moritz | how does one declare a queue where the AMQP broker creates a name? pass an empty string? | 10:10 | |
abraxxa | Queue specifies has $.name; but submethod BUILD uses $!name | 10:11 | |
has $.name; | |||
github.com/retupmoca/P6-Net-AMQP/b...ue.pm6#L23 | |||
moritz: yes, that's what I was trying to do | |||
just implementing a tail -f on an exchange | |||
moritz | "has $.name" is just "has $!name" + accessor + BUILD magic | ||
abraxxa | moritz: but wouldn't you use either a) the accessor or b) the public var? | 10:12 | |
10:12
zpmorgan left
|
|||
abraxxa | or is my memory wrong and there is no 'public var'? | 10:12 | |
moritz | abraxxa: there is no public war | ||
*var | |||
abraxxa | haha | ||
ok | |||
moritz | abraxxa: so for writing, you must use the private attribute | ||
abraxxa | but there is no :D anywhere, so why is the name required? | 10:13 | |
can we improve the error message to not report the line number of the react block but the actual error? | 10:14 | ||
moritz | that would be nice, yes | ||
what does the error message say? | |||
abraxxa | --ll-exception doesn't help either | ||
Too few positionals passed; expected 2 arguments but got 1 | |||
in block <unit> at printer-react.pl6 line 20 | |||
I still don't get why the name is required | 10:15 | ||
i see no difference between name and the other BUILD params | |||
moritz | me neither; I suspect the error comes from somewhere else | 10:16 | |
dalek | kudo/nom: a1fe1b0 | lizmat++ | src/core/Buf.pm: Streamline Blob ~ Blob Only a few percent in CPU for 10K buffers, but hopefully much better from a memory management point of view, because it allocates the resulting buffer only once. Also, nqp::slice already returns the right thing, so don't bother returning the resulting buffer explicitely. |
||
stmuk | maybe widely known but I seemed to have missed www.learningperl6.com/about/ "Randal Schwartz, David Farrell, and brian d foy are working on a Perl 6 book aimed at an introductory audience. This site is about that book and a testbed for some of the writing. | 10:18 | |
yoleaux | 18 Feb 2016 01:38Z <timotimo> stmuk: since you're the genius behind VimColour, could you try to figure out why at least one of the files in project euler from the perl6-examples library makes it spin at 100% cpu for ever(?) ... i think it might be prob008-duff2.pl | ||
18 Feb 2016 01:39Z <timotimo> stmuk: it looks like there's three files in euler that do failure ... | |||
10:18
brrt joined
|
|||
stmuk | also "If you’re an event organizer and you’d like to run a Perl 6 workshop or class, get in touch. We’re happy to go anywhere that will at least cover our expenses. We can help you raise the funds for that." | 10:20 | |
lizmat | stmuk: I wasn't sure this was supposed to be public knowledge already | 10:22 | |
llfourn | cool. A book. | 10:23 | |
moritz | \o/ | ||
abraxxa | moritz: is there anything I can do to improve the error message? | 10:24 | |
stmuk | lizmat: its a public website :) | ||
moritz | abraxxa: you could patch rakudo :-) | 10:26 | |
abraxxa | moritz: pointers where to look? | ||
moritz | abraxxa: no idea, sorry | ||
abraxxa | moar is at 100% cpu only printing one message very few seconds so it seems it's unusable at this time | 10:27 | |
llfourn | abraxxa: do you happen to be on a Mac? | 10:29 | |
abraxxa | llfourn: nope, Ubuntu 15.10 64bit | ||
llfourn | ok nvm then :) | ||
there are certainly some rough patches with concurrency stuff | |||
stmuk | also conferences.oreilly.com/oscon/open-...tail/49373 | 10:31 | |
abraxxa | the non-react code uses 100% cpu as well: github.com/retupmoca/P6-Net-AMQP/b...rinter.pl6 | ||
llfourn | hmm didn't jnthn write a new AMQP thing while doing advent calendar post? | 10:33 | |
10:33
Ven left
|
|||
moritz | llfourn: no, that was STOMP | 10:33 | |
llfourn | ah | ||
moritz | which is a much simpler protocol, afaict | ||
llfourn | abraxxa: try stomp :P | ||
abraxxa | we use RabbitMQ | ||
moritz | iirc there's a STOMP plugin for RabbitMQ | 10:34 | |
though I'd love to see Net::AMQP working too, because we use lots of AMQP at $work | |||
brrt | odd how message queues have basically appaeared as standard tools in the last few years | 10:38 | |
good thing, too, but still odd | |||
abraxxa | moritz: it works, it just takes one cpu core about 5-10 seconds to deliver one message ;( | ||
RabidGravy | moritz, Net::AMQP should work I spent about a week making sure it did about a month ago | 10:39 | |
abraxxa | RabidGravy: can you test it with 2016.02? | ||
strace wasn't helpful as it seems to not handle threads | 10:40 | ||
RabidGravy | "test it with 2016.02" | ||
what would I be testing for? | 10:41 | ||
llfourn | RabidGravy: ^ taking 5-10 seconds to deliver a message apparently. | 10:44 | |
RabidGravy | right now, if it passes the tests it's good | 10:45 | |
10:45
domidumont joined
|
|||
RabidGravy | not my module I only have an interest in keeping it working and the original author hasn't got time for it right now | 10:45 | |
llfourn | fair 'nough :) | 10:47 | |
RabidGravy | just doing a rakudobrew to check on the other machine | 10:49 | |
llfourn | RabidGravy++ | ||
RabidGravy | I can say though that it may not do very well on a single core CPU as the entire interface is promises and supplies | 10:50 | |
brrt | i would want to say that since installing panda and p6doc, my perceived maturity of perl6 has increased greatly | ||
dalek | kudo/nom: 6b4a94e | lizmat++ | src/core/Buf.pm: Streamline Blob:D eqv Blob:D Make it 5x as fast for identical blobs/bufs, make it almost infinitely faster when eqving with itself. |
10:52 | |
10:52
donaldh joined
|
|||
stmuk | does lowering the thread pool improve Net::AMQP performance I wonder? | 10:53 | |
RabidGravy | I'm so glad I bought this gigabyte brix thingy last year, it means I can get on and do other stuff on my laptop while building rakudo to test stuff | 10:54 | |
llfourn | ah a guy brought one into sydney.pm last week to do his presentation. Pretty cool. | 10:55 | |
stmuk | is that NUC-ish form factor? | 10:56 | |
RabidGravy | yeah, basically a small cube | ||
RabidGravy goes back to thinking over increasingly ingenious ways of breaking this module | 10:57 | ||
11:01
espadrine joined
|
|||
RabidGravy | abraxxa, re your issue on Net::AMQP, I actually implemented exactly that on the 20 January, if you haven't updated since before then you may want to do so | 11:05 | |
11:07
adu joined
|
|||
dalek | kudo/nom: fe14385 | lizmat++ | src/core/Buf.pm: Abstract blob content equality into .SAME method Allowing Blob:D eqv Blob:D to become almost a mathematical formula |
11:08 | |
RabidGravy | and indeed it is tested for at github.com/retupmoca/P6-Net-AMQP/b...ueue.t#L31 | ||
11:08
vendethiel joined
11:09
adu left
11:14
ab6tract joined
11:22
labster left
|
|||
dalek | kudo/nom: 1969a42 | lizmat++ | src/core/Buf.pm: Make Blob:D eq/ne Blob:D about 250x faster - for two 10K identical buffers, faster still for inequal buffers - no longer allocates copies of both buffers, so more memory friendly |
11:23 | |
ab6tract | lizmat++ :D | 11:24 | |
brrt | cool, lizmat++ | 11:27 | |
11:28
rindolf left
11:29
vendethiel left,
Ven joined
11:33
SCHAAP137 joined
|
|||
abraxxa | RabidGravy: just installed everything | 11:38 | |
RabidGravy | right, so declare-queue("") does give you the auto-generated name | 11:39 | |
abraxxa | ah! | 11:43 | |
DOCS! ;) | |||
RabidGravy | PATCH! | 11:48 | |
;-p | |||
for reference Net::AMQP is not working at all on the very latest rakudo, I suspect something gone broke in subbuf | 11:50 | ||
psch | ...well that was silly :l | 11:51 | |
err | |||
my oversight yesterday, that is :) | |||
turns out computeInterop binds an empty Hash to JavaHOW.%!methods, and not the actual methods... | 11:52 | ||
11:52
blunder joined
|
|||
RabidGravy | lizmat, is it possible that in some recent changes you have unwittingly altered the behaviour of Buf.subbuf($from, $len); | 11:52 | |
? | |||
lizmat checks | 11:53 | ||
11:53
blunder left
|
|||
lizmat | RabidGravy: that feels unlikely, as I haven't touched subbuf (yet) | 11:53 | |
and it doesn't seem to depend on anything I changed | 11:54 | ||
RabidGravy | for reference the code that is failing is going "my $tablebuf = $data.subbuf(4, 426);" and is returning the fifth character only | ||
lizmat | my last changes to subbuf were on 14 Nov last year | 11:55 | |
11:55
vendethiel joined
|
|||
RabidGravy | yeah it has worked since then | 11:55 | |
lizmat | any idea on when it started to fail ? | ||
I mean, something you can m: here or gist for me to double check ? | 11:56 | ||
RabidGravy | it's buried deep in the payload decoding of Net::AMQP, 'ang on let me golferize | 11:57 | |
dalek | kudo/nom: e3342da | lizmat++ | src/core/Buf.pm: Make Blob:D cmp/lt/gt/le/ge Blob:D 3800x faster - for two 10K identical buffers, faster still for inequal buffers - implement Blob:D.COMPARE helper method - which checks number of elements before checking contents - no longer allocates copies of both buffers, so more memory friendly |
11:59 | |
lizmat | please note that all of these changes I make, are spectest clean | ||
so if I borked something, we need more tests :-) | |||
12:01
sammers joined
|
|||
lizmat | argh, subbuf-rw is untested :-( | 12:06 | |
12:10
wamba left
12:12
kaare_ joined
12:15
ely-se left
|
|||
RabidGravy | lizmat, it's actually the bahviour of unpack that shagged it | 12:18 | |
lizmat | ah, I borked unpack ? | ||
12:19
vendethiel left
|
|||
lizmat | RabidGravy: did I by any chance bork Blob.list ? | 12:19 | |
or Blob.append ? | 12:20 | ||
RabidGravy | no, the code in question is doing "my $len = $data.unpack('N'); ... my $tablebuf = $data.subbuf(4, $len);" | 12:21 | |
lizmat | use experimental :pack; dd pack("N",4200).unpack("N") | 12:23 | |
m: use experimental :pack; dd pack("N",4200).unpack("N") | 12:24 | ||
camelia | rakudo-moar e3342d: OUTPUT«slip(4200,)» | ||
lizmat | perhaps the 1 is for the number of elements returned ? | ||
RabidGravy | the return from unpack was subtly changed in the 2afe79fa | ||
yeah it is | |||
before it didn't do that | 12:25 | ||
12:25
nakiro left
|
|||
dalek | kudo/nom: 531495a | lizmat++ | src/core/Buf.pm: Revert "Remove some superfluous returns" This reverts commit 2afe79fa61925a847d78aeab8a6b31ab29db1f3c. Apparently, not so superfluous, as RabidGravy++ found out |
12:25 | |
lizmat | RabidGravy: could you verify this fix ? | 12:26 | |
RabidGravy | lizmat++ | ||
yeah will rebuild in a tick, I wasn't relishing going all the way through the Net::AMQP and "fixing" all the unpacks | 12:27 | ||
lizmat | the return in pack could probably be removed, but I'm not going to bother | ||
since it's all experimental, and either there's a better solution in the ecosystem, *or* we merge back the PackUnpack distro into core | 12:28 | ||
(which I think would make it about 1.5 to 2x as fast still, because we could use nqp::ops in a lot of places) | |||
12:31
nakiro joined
|
|||
lizmat wonders about the usefulness of subbuf-rw now that we have Buf:D.splice | 12:31 | ||
Ven | o/, #perl6 | ||
12:31
ely-se joined
|
|||
RabidGravy | yeah, just right at this moment Net::AMQP does everything in a Buf and there's all sorts of Buf-munging going on to encode, decode the frames so I personally would rather the interface didn't change that much | 12:32 | |
lizmat | okidoki... but you wouldn't mind an improvement in speed / memort usage, right ? | 12:33 | |
RabidGravy | no, speed is good | ||
12:34
adu joined
|
|||
brrt thinks we should be able to eventually compile pretty tight code out of that | 12:35 | ||
lizmat | brrt: yeah, my thought exactly :-) | ||
lizmat hopes the current work will make that easier | |||
m: sub a(\a) { Proxy.new( FETCH => sub ($) { dd "FETCH"; a }, STORE => sub ($,$new) { dd "STORE"; a = $new } ) }; say a(my $a) = 42 # that's a LOT of FETCH | 12:36 | ||
camelia | rakudo-moar 531495: OUTPUT«"STORE""FETCH""FETCH""FETCH""FETCH""FETCH""FETCH""FETCH""FETCH""FETCH""FETCH"42» | ||
RabidGravy | lizmat++ # can confirm that fixes | 12:40 | |
lizmat++ | |||
12:41
adu left,
sufrostico joined,
Skarsnik joined
|
|||
Skarsnik | Hello | 12:41 | |
yoleaux | 04:32Z <sortiz> Skarsnik: The idea to have all floats in Rat was a bad one. In fact, pretend that all SQL numeric types should map to a single Perl6 type is naive. I'm opening an issue for real discussion. | ||
12:42
sufrosti1o joined
12:43
tmch left
|
|||
sortiz | \o Skarsnik | 12:43 | |
Skarsnik | Fun fact I originaly put everything as Num x) | ||
sortiz | I'm working on it, don't worry. :-) | 12:44 | |
RabidGravy | abraxxa, if you built your rakudo between 19:00 CET yesterday and just now you may find that Net::AMQP doesn't work, building a new rakudo will fix that | 12:49 | |
abraxxa | RabidGravy: I've build 2016.02 | ||
12:49
donaldh left,
brrt left
|
|||
RabidGravy | all working fine with "2016.02-36-g531495a built on MoarVM version 2016.02" | 12:51 | |
lizmat | m: dd my $b = Blob.new(1,2,3); dd subbuf-rw($b,2,1) = Buf.new(42); dd $b | 12:52 | |
camelia | rakudo-moar 531495: OUTPUT«Blob $b = Blob.new(1, 2, 3)Blob.new(3)Buf $b = Buf.new(1, 2, 42)» | ||
12:53
Ven_ joined
|
|||
Skarsnik | sortiz, if you are bored you can maybe cut the test in multiple method/sub | 12:53 | |
lizmat | so, are we ok with subbuf-rw changing a Blob into a Buf ? | ||
sortiz | Skarsnik, For the SQLite case, that don't preserve type information, should be a good idea allow the user to select the desired types, do you have any suggestions? | ||
lizmat | that doesn\'t feel right | ||
m: dd my $b = Blob.new(1,2,3); dd subbuf-rw($b,2,1) = Blob.new(42); dd $b | |||
camelia | rakudo-moar 531495: OUTPUT«Blob $b = Blob.new(1, 2, 3)Blob.new(3)Blob $b = Blob.new(1, 2, 42)» | ||
lizmat | this is because Buf is infectious in ~ | 12:54 | |
Skarsnik | sortiz, it's more a case of capability (see the issue about that), look at sqlite doc to see the precision of the float type x) | ||
12:54
Ven_ left
12:55
n0tjack joined,
Ven left
|
|||
sortiz | Skarsnik, I'm busy fixing some some details in the test suite and in the driver :-) | 12:55 | |
ab6tract just noticed doc.perl6.org/language/typesystem | |||
sad page :( | 12:56 | ||
Skarsnik | x) | ||
true | |||
lizmat | ab6tract: PR's are welcome! | ||
abraxxa | i have to catch my train, bye! | ||
12:56
abraxxa left
|
|||
sortiz | Skarsnik, SQLite's FLOAT is in fact an IEEE-745 double. Perfect for Num. | 12:56 | |
ab6tract | lizmat: i have a commit bit for doc, and have pushed some updates before. but short on tuits today/lately :S | 12:57 | |
in other news, sereal headers are now validating :D | |||
lizmat | ab6tract++ # looking forward to be able to support Sereal in Perl 6! | 12:58 | |
ab6tract | lizmat: looking forward to getting us there :) | 13:01 | |
ooc, do we have a way to throw custom argument type exceptions? in other words, to provide a custom exception object? | |||
lizmat | class X::Foo is Exception { method message() { "foo" } } # something like this ? | 13:02 | |
13:02
xinming left
|
|||
El_Che | reading/working with containers, and I plan to try out my question, but what does precomp do on read-only filesystem (e.g. a read-only container). Does it not use precomp? Tries to write to /tmp? other? | 13:02 | |
Skarsnik | good question | ||
psch | m: class Blergh is Exception { }; try Blergh.new.throw; $!.perl.say | 13:03 | |
camelia | rakudo-moar 531495: OUTPUT«Blergh.new» | ||
ab6tract | lizmat: more or less, but to send a specific custom one when a call-site sends a bad argument to a sub | ||
i'm not sure it's actually useful. i was just curious | |||
psch | ab6tract: "bad argument"? like, type mismatch..? | 13:04 | |
lizmat | no, I think you'll always wind up in the X::TypeCheck family | ||
ab6tract | psch: yes. in particular runtime type mismatches based on subsets/where clause | ||
psch | or do weird proto hackery | ||
ab6tract | ok. that's fine, really. | 13:05 | |
RabidGravy | Mmmmm proto-hackery | ||
psch | like, proto f(|c) { if c.List[0] > 10 { X::Custom.new.throw } else { {*} } } | ||
or something, obviously untested.. :) | |||
if you're actually putting where clauses on the parameters you still end up in X::TypeCheck, as lizmat said | 13:06 | ||
13:06
wamba joined
|
|||
ab6tract | psch, lizmat: awesome. thanks for the clarification! | 13:06 | |
lizmat | afk for a few hours& | 13:07 | |
moritz just experienced how event-based programming can make testing a breeze | 13:08 | ||
13:15
Ven joined
|
|||
dalek | kudo-star-daily: 489f92c | coke++ | log/ (8 files): today (automated commit) |
13:15 | |
13:17
xinming joined,
molaf joined
13:19
kent\n left
13:20
kent\n joined,
kent\n left,
kent\n joined
|
|||
dalek | Iish: 4e03bf0 | (Salvador Ortiz)++ | lib/DBDish/Pg/ (2 files): Minor post oracle merge repairs in Pg |
13:21 | |
Iish: a823fb2 | (Salvador Ortiz)++ | lib/DBDish/SQLite/ (2 files): SQLite: Implement the proper semantic of finish Fixes #34 |
|||
Iish: bb1682c | (Salvador Ortiz)++ | lib/DBDish/SQLite (4 files): SQLite: Now with typed Pointers |
|||
Iish: 8a28d97 | (Salvador Ortiz)++ | t/lib/Test/DBDish.pm6: Rationalize the test suite, pass 1. Add support for typeless drivers, like SQLite Remove unneeded TODOs, drivers passing. |
|||
Iish: f936ec4 | (Salvador Ortiz)++ | t/40-sqlite-common.t: SQLite: Optout typed NULLs |
|||
RabidGravy | sortiz++ # fix0rifaction | 13:25 | |
13:25
Ven left
|
|||
Skarsnik | duh, what did you do for the todo to pass? | 13:26 | |
13:27
ocbtec left
|
|||
[Coke] yawns. | 13:29 | ||
ab6tract | m: subset R of Str where * eq "R"; sub rs(R $r) { $r xx * }; use Test; throws-like { rs("Q") }, X::TypeCheck, message => /\w+/, "hmm" | ||
camelia | rakudo-moar 531495: OUTPUT« 1..3 ok 1 - code dies not ok 2 - right exception type (X::TypeCheck) # Failed test 'right exception type (X::TypeCheck)'# at /home/camelia/.perl6/2016.02-36-g531495a/precomp/8490FD9827B5D931FCC998C1F8EC28F82BC18926.1456491017.86…» | ||
13:30
Ven joined
|
|||
ab6tract | ahh, the STDERR isn't printed, duh. # Expected: X::TypeCheck | 13:30 | |
# Got: X::AdHoc | |||
[Coke] | stmuk: I thought that learningperl6 book thing was actually ancient, then dropped. | ||
psch | m: subset R of Str where * eq "R"; sub rs(R $r) { }; try rs("Q"); $!.perl.say | 13:31 | |
camelia | rakudo-moar 531495: OUTPUT«X::AdHoc.new(payload => "Constraint type check failed for parameter '\$r'")» | ||
RabidGravy | yeah, I think I got that somewhere and resorted to munging around the actual message | ||
[Coke] wanders off to find more コーヒー | 13:32 | ||
psch | that should probably throw TypeCheck::Argument instead... | 13:33 | |
ab6tract | psch: it would be pretty awesome if it did :D | 13:34 | |
psch | ab6tract: it's not that hard a patch :) | 13:35 | |
ab6tract: the error is thrown in src/Perl6/Metamodel/BOOTSTRAP.nqp:501 | |||
ab6tract: and src/Perl6/Metamodel/BOOTSTRAP.nqp:297 has almost exactly what needs to go there instead | |||
Skarsnik | Any objection for me to DEPRECATE the non kebab cased method in DBIish? | 13:36 | |
psch | ab6tract: although i'm not sure if normal argument typechecks and argument constraints should throw the exact same thing... | ||
ab6tract | TypeCheck::Constraint ? or TypeCheck::Argument::Constraint ? :) | 13:37 | |
Skarsnik: i seem to remember moritz not feeling 100% about that, but i don't recall specifics | 13:38 | ||
Skarsnik | It was when i deprecated everything x) | ||
psch | ab6tract: probably the latter, not sure how exactly that works out wrt to .message either | ||
Skarsnik | I am just talking about the _ version of the fetch* | ||
and we should handle version of DBIish someday x) | |||
psch | ab6tract: as in, the message for TypeCheck::Argument clearly alludes to MMD (if available), but where constraints are checked afterwards iirc | 13:39 | |
ab6tract | psch: hmmm... but would you consider that "afterwards"? or just "at the end" | ||
psch | ab6tract: tbh i'd have to dig into the Binder again to make any statement with real confidence... :) | 13:40 | |
13:41
QORRiE joined
|
|||
psch | m: sub f(Str $) { }; f 1 | 13:41 | |
camelia | rakudo-moar 531495: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ove0xlGxzBCalling f(Int) will never work with declared signature (Str)at /tmp/Ove0xlGxzB:1------> 3sub f(Str $) { }; 7⏏5f 1» | ||
psch | m: subset SubStr of Str where *.chars < 3; sub f(SubStr $) { }; f "abc" | 13:42 | |
camelia | rakudo-moar 531495: OUTPUT«Constraint type check failed for parameter '<anon>' in sub f at /tmp/DmApCVV4jE line 1 in block <unit> at /tmp/DmApCVV4jE line 1» | ||
psch | i'm thinking "Calling f(Str) will never work with declared signature (SubStr)" is misleading | ||
m: sub f( $ where *.chars < 2) { }; f "abc" # here even more | 13:43 | ||
camelia | rakudo-moar 531495: OUTPUT«Constraint type check failed for parameter '<anon>' in sub f at /tmp/amllaDQbuq line 1 in block <unit> at /tmp/amllaDQbuq line 1» | ||
13:43
donaldh joined,
autarch joined
|
|||
psch | ab6tract: i guess in the end coopting the current error message and stuffing it into TypeCheck::Argument::Constraint is probably fine | 13:43 | |
13:46
araujo joined
13:47
araujo left,
araujo joined,
araujo left,
araujo joined
13:48
brrt joined
13:49
araujo left
13:50
musiKk joined
13:51
vendethiel joined
13:55
avenj left
13:56
musiKk left
13:57
rindolf joined
13:58
Ven left
14:06
nchambers joined
|
|||
[Coke] | what do folks here use for presentations? I'm looking at vroom (which sadly doesn't look like it'll work with macvim out of the box) and Preston at the moment. Any other suggestions? Main requirement is I can save the presentation as mostly-test in a git repo. ) | 14:07 | |
:) | |||
RabidGravy | I used to like magicpoint | 14:08 | |
ab6tract | psch: makes sense to me | ||
14:08
kid51 joined
|
|||
RabidGravy | dunno if that's even going any more | 14:08 | |
moritz | [Coke]: I used to have my own home-grown slide-to-html generator, but now I'm using libreoffice (and screwing the git aspect) | ||
[Coke] | yah, I guess it's not actually a hard rquirement. :| | 14:10 | |
I mean, it's a work thing, I could just use pptx | |||
rudi_s | m: sub foo(@a) { @a.map(-> $a, $b { say "$a $b" }) }; my @x = (1,2), (3,4); foo(@x); | 14:11 | |
camelia | rakudo-moar 531495: OUTPUT«1 2 3 4» | ||
rudi_s | How can I get $a, $b to get mapped to 1 and 2? | ||
jnthn | Depends... :) | ||
Unpacking is one way | 14:12 | ||
-> ($a, $b) { ... } | |||
@a.flat.map(...) is another | |||
(Which I'd turn to depending on how I'm thinking about the data) | |||
rudi_s | Ah, flat again. | 14:13 | |
m: sub foo(@a) { @a.flat.map(-> $a, $b { say "$a $b" }) }; my @x = (1,2), (3,4); foo(@x); | |||
camelia | rakudo-moar 531495: OUTPUT«1 2 3 4» | ||
14:13
vendethiel left
|
|||
rudi_s | Hm. Neither flat, nor List works. | 14:14 | |
jnthn | Oh, right, it own't work there 'cus you put them in an Array, which itemizes all the things | ||
So, unpacking | 14:15 | ||
m: sub foo(@a) { @a.map(-> ($a, $b) { say "$a $b" }) }; my @x = (1,2), (3,4); foo(@x); | |||
camelia | rakudo-moar 531495: OUTPUT«1 23 4» | ||
rudi_s | To be honest I find that part about Perl6 really confusing. Is there a good overview how exactly "itemizing" and arrays and similar work together. | ||
14:15
skids joined
|
|||
rudi_s | It feels really un-intuitive. | 14:15 | |
But maybe I'm just not yet understand the design decision. | 14:16 | ||
Thanks. | |||
jnthn | Pretty sure there's a containers doc in doc.perl6.org | ||
FROGGS | I bet this (+flattening) will be the most explained topic of Perl 6 in future | ||
jnthn | But it's actually pretty simple: .flat and flat do not descend into Scalar containers. | ||
And every slot in an Array is a Scalar container | 14:17 | ||
m: .say for flat [1,2], $[3,4], 5, [6, [7, 8]] | |||
camelia | rakudo-moar 531495: OUTPUT«12[3 4]56[7 8]» | ||
nine | [Coke]: I moved from vim with just every slide in its own file to LibreOffice because images really make a presentation easier to digest | 14:18 | |
jnthn | That's all the cases on one example, I think :) | ||
rudi_s | To me arrays and lists in perl5 were very similar, but feel completely unrelated in perl6 which different behavior and I'd like to understand the reason why this was chosen so I can understand it better. | ||
nine | FROGGS: I think it already is | ||
rudi_s | jnthn: What is difference between [..] and $[..]? | 14:20 | |
$ as in scalar container? | |||
jnthn | Yes | ||
$[..] is the same as $(..) | |||
oops | |||
rudi_s | And why is [7,8] not flattened? Because flat only flats one level? | ||
jnthn | $[..] is the same as $([..]) | ||
Not quite | |||
Because it only flattens until it sees a Scalar | 14:21 | ||
rudi_s | And [7,7] when put into an array is a scalar/ | ||
? | |||
jnthn | And an Array is, by definition, a collection of Scalar containers (unless you bind into it) | ||
Yes. Arrays are assignable only because their elements are Scalar containers | 14:22 | ||
Or rather, array *elements* are. | |||
ab6tract | m: .say for flat [ [1,2], $[3,4], 5, [6, [7, 8]] ] | 14:23 | |
camelia | rakudo-moar 531495: OUTPUT«[1 2][3 4]5[6 [7 8]]» | ||
rudi_s | I see, thank you. | 14:24 | |
(Btw. I just remembered how to flatten an array: @x.List.flat .. - somebody told me here a few days ago.) | |||
14:24
sjoshi left
|
|||
timotimo | yeah, i have to keep that in mind, too | 14:24 | |
rudi_s | But I think -> ($a, $b) is better on the eye. | 14:25 | |
(Unless I want to e.g. join an array.) | |||
nine | Funny how things work out. I added the List method only because I thought we shouldn't return Arrays from methods and operators just because they are used internally. However after I added .List I didn't actually use it because the generic implementation can't just re-use the Array's IterationBuffer and is thus much slower than the inlined code. | 14:27 | |
I did not think about the different flattening behavior at all :) | |||
rudi_s | ;-) | 14:28 | |
Btw. what is the idiomatic way to return values from a pointy block in a map. At the moment I use it like this .map(-> ($a, $b is copy) { $b = 'foo'; $a, $b; }) - but it feels kind-of ugly. Can/Should I use return? | 14:29 | ||
ab6tract | return is not available outside of subs/methods, iirc | 14:30 | |
jnthn | I tend to leave the ; off the final statement to give a hint that I view it was the return value | ||
timotimo | right, you can use return there only if you use "anon sub (...) { ... }" inside the map | ||
nine | And that it can be used in this way is just a side effect of ListReificationTarget deconting the values so assigning to the Array won't change values in the List. | ||
jnthn | If you don't give it a name you don't need the anon also :) | 14:31 | |
psch | m: my &f = anon sub foo { }; &f.name.say # /o\ | ||
camelia | rakudo-moar 531495: OUTPUT«foo» | ||
timotimo | oh | ||
well, anon is about installing in the lexpad more than anything, really | 14:32 | ||
jnthn | Right | ||
Or *not* installing it :) | |||
timotimo | giving it a name will still make that show up in the backtraces, i expect | ||
jnthn | aye | ||
psch | m: anon sub foo(:$) { } # an anon sub with name an a nameless named parameter... /o\ | ||
camelia | ( no output ) | ||
14:32
Ven joined
|
|||
brrt | small point of discussion wrt to panda / ecosystem | 14:32 | |
not everybody can access git:// protocols. in fact, there is very likely no shared subset of protocols accessible to all, with the possible exception of http | 14:33 | ||
nine | brrt: there is some environment variable for overriding the protocol | ||
brrt | case in point, i can't access the git:// protoocl due to firewall 'cleverness' at $institute | ||
oh really? | |||
i had no idea | |||
nine | well in git | ||
brrt | anyway, it may be something to keep in mind, if we ever get to perl5's level of pervasiveness | 14:34 | |
nine | Yes, we should move to https | ||
mst | it's already firmly in mind, hence the support for multiple protocols already in pands | ||
and the intent to, over time, probably use https by default and let other things be configured | |||
BUT | 14:35 | ||
brrt | i have had an issue filed how somebody could not get https for the submodules :-( | ||
mst | also due to firewall 'cleverness' and similar in academentia | ||
brrt | hey, you misspelled academia :-P | ||
mst | I have a feeling we had early adopters who had trouble with http(s) proxying | ||
whereas those people had totally working git:// | |||
believe me, I spelled that exactly how I meant to :D | |||
basically, everything is made of urine and you can't even find the cat | 14:36 | ||
but, yeah, in the long run this stuff needs to be a smoother first run experience | |||
RabidGravy | I've done that stupid thing and left the hardest part to last | ||
mst | and then it turns out you have to rewrite everything else to make it fit? | ||
14:37
brrt left
|
|||
RabidGravy | I *think* I won't have to | 14:37 | |
14:37
Ven left
|
|||
RabidGravy | but it's Friday afternoon so hey | 14:37 | |
mst what I am making at the moment is actually partially your fault | 14:38 | ||
mst | ... I'm so sorry | ||
what did I do this time? :P | |||
RabidGravy | remember a long time ago we had a conversation and you made Class::XML? | ||
or something like that | 14:39 | ||
mst | I did write Class::XML many years ago, but I think I was still at netcruft at the time so I'm not sure if the chronology fits | ||
RabidGravy | I thought it was high time I made something like that for P6 | 14:40 | |
cosimo | I presume netcruft is also intentional misspelling? :) | ||
mst | had you seen the source code to the Web Server and SSL Surveys, you wouldn't've even considered asking that :D | ||
there's a bunch of more recent ones using Moose to steal ideas from as well - XML::Toolkit XML::Rabbit are the ones that spring to mi-wait | 14:41 | ||
RabidGravy | they're Olde Skool with code made by network engineers and sysadmin type | ||
mst got somebody to give me a list, where did I put it | |||
which are old school? | 14:42 | ||
14:42
vike left
|
|||
RabidGravy | mst, oh I've almost finished, just making support for xsd:any like wot soap uses | 14:42 | |
perlpilot | XML::Rabbit++ | ||
RabidGravy | netcraft | ||
mst | oooh, nice | ||
I liked the old school bits. those were the fun part. | 14:43 | ||
the part where at some point some kid had maintained it and let the Makefile atrophy so it wouldn't flipping run hands off anymore was less amusing | |||
and the fact that while the senior techs weren't looking a contractor had added a bunch of csh scripts very much less | 14:44 | ||
pretty sure jeremy killed that with fire after my departure though | |||
RabidGravy: but, yeah, such a thing is really nice. just, y'know, do better than I did ;) | 14:45 | ||
(not a high bar in the case of Class::XML, I think that was my first original cpan module ;) | |||
14:50
vendethiel joined
14:53
araujo joined,
araujo left
14:56
Ven joined
14:58
vike joined,
ab6tract left
15:08
kjs_ joined,
vike left,
vike joined
15:11
ab6tract joined
15:12
vendethiel left
15:14
prammer joined
15:21
musiKk joined
15:24
cdg joined
|
|||
skids | m: my $r = Supplier.new; my $s = $r.Supply.flat; $s.tap({ .perl.say }); sleep 0.5; $r.emit((1,2,(3,4))); sleep 0.5; # 1-level flat intentional here? | 15:29 | |
camelia | rakudo-moar 531495: OUTPUT«12$(3, 4)» | ||
15:31
wamba left
15:32
vendethiel joined
15:34
QORRiE left,
uruwi joined
|
|||
ab6tract | earlier today i asked about how one would throw a custom exception when the type constraint fails | 15:35 | |
rudi_s | jnthn: Sorry for the late reply. Good idea omitting the ; - thanks. | ||
15:35
dakkar left
|
|||
ab6tract | i think i might have found a decently idiomatic answer | 15:35 | |
m: multi g(Any $invalid) { die "Unacceptable!" }; multi g($g where * eq "g") { say "Nicely chosen.." }; g("g"); g("k") | |||
camelia | rakudo-moar 531495: OUTPUT«Nicely chosen..Unacceptable! in sub g at /tmp/rc3Jnji0Ej line 1 in block <unit> at /tmp/rc3Jnji0Ej line 1» | ||
ab6tract | that is, if you are accounting for a failure case in this manner, it is by definition anything that does not match the constraints of the available candidates | 15:36 | |
15:36
QORRiE joined
|
|||
skids | .oO(".plane($n)" might be a good word for a depth-limited flat, after the carpentry tool) |
15:36 | |
ab6tract | skids++; # nice one | 15:37 | |
psch | ab6tract: oh. i thought the need to throw a custom Exception was only because it currently throws X::AdHoc? | ||
in any case, yes, the mmd solution looks neat | 15:38 | ||
ab6tract | psch: i hadn't figured this bit out yet :) | ||
15:39
dakkar joined
|
|||
ab6tract | but no, i found out about the X::AdHoc after i first asked about custom 'constraint exceptions' | 15:39 | |
psch: you would still need this MMD route if you want something besides the TypeCheck exception that comes from core | 15:40 | ||
the X::AdHoc thing was a WAT, since i had written my test case to expect what i had been told to expect, and it came out X::AdHoc :) | |||
psch | s/that comes/might eventually come/ # patches welcome ;P | 15:41 | |
ab6tract | :D | ||
psch | i have a lot of jvminterop head-banging to do here :S | ||
s/banging/bashing/ | |||
ab6tract | no worries. This way my test is not dependent on core's current thrown type, anyway | ||
psch | alright, i'll give up into roping you into core contributions vOv | 15:42 | |
ab6tract | psch: i would much prefer your brains to be splattered on^W^W put to use towards the jvm code :) | ||
psch: i might take a look at it at some point. but tuits are rare these days. | 15:43 | ||
15:46
n0tjack left
|
|||
psch | ab6tract: no worries, i probably should actually RT those kind of obvious little things anyway... | 15:47 | |
but sometimes it's hard to tell which bits are actually easy and which only look easy with the (still not particularly great) experience with the codebase... vOv | |||
15:47
avenj joined
|
|||
psch | *i have | 15:48 | |
nine | ab6tract: the additional multi candidate becomes confusing when using introspection to find out what the object supports | ||
Because you get a candidate that takes an Any but calling that will only fail. | |||
15:48
avenj left,
avenj joined
|
|||
psch | nine: OTOH, where constraints are pretty introspection-proof already... | 15:48 | |
nine | m: say sub foo($a where * > 2) { } | 15:50 | |
camelia | rakudo-moar 531495: OUTPUT«sub foo ($a where { ... }) { #`(Sub|67863120) ... }» | ||
nine | psch: you mean this usefull output? | ||
psch | m: sub f($f where *.chars < 2) { }; &f.signature.params[0].constraints.say | ||
camelia | rakudo-moar 531495: OUTPUT«all(WhateverCode.new)» | ||
psch | ^^^ that, yes | ||
no way to know what's in that WhateverCode | |||
so, yeah, it's constrained somehow but that's all you get to know without reading the actual impl | 15:51 | ||
nine | Ah wouldn't it be nice if we could actually print the source code there? | ||
psch | i thought so, yeah. but subset types get implemented as where constraints as well, as do &-param signature constraints | ||
which in both cases could end up too much for e.g. TypeCheck::Argument::Constraint | 15:52 | ||
also, i don't readily have any idea how we can get the actual constraint there either | |||
well, the only thing that comes to mind is attaching it as POD, but that seems somewhat wrong, on a hunch | 15:54 | ||
nine | Did you know that we actually have code printing back traces? | 15:55 | |
psch | i clearly didn't, i'd probably have made a different argument just now if i did :) | 15:56 | |
nine | gist.github.com/niner/3be0c164d847ca794e18 | ||
ugexe | i didnt know that, cool | 15:59 | |
nine | Born at last year's QA hackathon. | ||
perlpilot | When method resolution fails to find a candidate, it calls FALLBACK, right? Is there something similar for when multisub dispatch fails to find a candidate? | 16:00 | |
nine | Right now I am so sad I won't make it this year :/ | ||
psch | huh, when was the QA hackathon? | ||
timotimo | oh | ||
16:00
Ven left
|
|||
timotimo | perl6 --help shows /home/timo/.../perl6.moarvm as the $0 | 16:00 | |
psch | perlpilot: i'd add a :(*@, *%) candidate, but i don't think there's anything builtin on the same level as FALLBACK is | 16:01 | |
where "the same level" means "as distinctly for this purpose" | |||
16:01
nakiro left
|
|||
perlpilot | psch: aye and my next question is ... should there be? | 16:03 | |
16:03
cdg left
|
|||
nine | psch: end of April 2015 | 16:03 | |
psch | huh, i was paying attention then... must've completely missed that :) | 16:05 | |
perlpilot: i'm not sure, i guess it mostly depends on how that would look | |||
perlpilot: like, &f.proto.add_fallback or..? | 16:06 | ||
16:07
rje_ joined
16:08
FROGGS left
|
|||
perlpilot | I guess CANDO would be what I'm talking about (if it's implemented) | 16:08 | |
16:08
cdg joined
|
|||
rje_ | p6: say "Rakudo!" | 16:09 | |
camelia | rakudo-moar 531495: OUTPUT«Rakudo!» | ||
perlpilot | (an ack on the rakudo repo gives no results, so I'm going out on a limb here and guess it's not implemented ;) | ||
ugexe | is CANDO different from cando? | 16:10 | |
rje_ | p6: say "楽土!" | 16:11 | |
camelia | rakudo-moar 531495: OUTPUT«楽土!» | ||
perlpilot | I'm sure it is ... I was reading S10:Autoloading | 16:12 | |
synopsebot6 | Link: design.perl6.org/S10.html#Autoloading | ||
16:13
Upasaka_ left
|
|||
perlpilot | although CANDO may not quite be what I'm thinking of ... it only fires "when anyone is searching for a name in the package" By the time we're doing multi-dispatch, we already have a short name. Does CANDO concern itself with shortnames or longnames? | 16:14 | |
16:15
vendethiel left
|
|||
RabidGravy | isn't .cando a method on Code to check the signature? | 16:19 | |
rudi_s | "file".IO.lines returns the file content as read. What is a quick way to get the file content as Blob? | ||
RabidGravy | "file".IO.slurp(:bin) I think | 16:20 | |
timotimo | i think cando gives you a candidate that would be used in multiple dispatch, given a capture | 16:21 | |
RabidGravy | yeah | ||
16:21
_mg_ left
|
|||
rudi_s | RabidGravy: Nice, thanks. - Not in the docs yet. How do you know that stuff? ;-) | 16:22 | |
nine | Yeah! I just had the first run where a make install && perl6 -e 'use Test;' did not have to precompile Test again on the first load :0 | 16:24 | |
16:26
tmch joined
16:29
kent\n left
16:30
kent\n joined,
ely-se left
16:36
kjs_ left
16:37
rje_ left
16:39
zpmorgan joined
|
|||
jnthn | nine: Nice! Was that with the "disregard empty precomp stores" approach? | 16:41 | |
nine | jnthn: no, I'm onto combining all precomp stores | 16:42 | |
16:42
ab6tract left
|
|||
jnthn | Rather you than me ;) | 16:43 | |
16:43
araujo joined,
araujo left,
araujo joined
|
|||
nine | jnthn: I've been thinking about how to do this for two months. Now I just wanna see if it can work :) | 16:44 | |
perlpilot | nine++ | 16:45 | |
jnthn | :-) | 16:46 | |
nine++ indeed | |||
nine | Wait till you see the implementation :D | ||
perlpilot | still nine++ because I don't see too many other people clamoring to do it. :) | 16:47 | |
16:48
Upasaka joined
16:53
sufrosti1o left,
sufrostico left
|
|||
donaldh | Hi o/ | 16:54 | |
nine | jnthn: fun fact: even if we skipped an empty precomp dir already, we'd still end up precompiling much more than we'd have to because thanks to %provides' undefined order we often precompile some leaf module last and end up deleting all its rev-deps | ||
donaldh | I've been doing some JVM backend hacking, to see if I can give us more headroom for CORE.setting compilation | 16:55 | |
psch | donaldh++ | ||
hoelzro | o/ #perl6 | ||
nine++ | |||
donaldh++ | |||
donaldh | And also to see if I can get some lazy init during startup. | ||
16:55
sufrostico joined,
sufrosti1o joined
|
|||
jnthn | donaldh: You can likely borrow some lazy deserialization bits from Moar. | 16:56 | |
donaldh: It's a bit fraught, though | |||
donaldh | I've moved the serialization string heap into the serialization blob because it's a big cause of running out of space in the class const pool | 16:57 | |
jnthn | ah, interesting | ||
psch | right, i remember that idea. great that it actually worked out | ||
donaldh | And experimenting with moving block lex values to annotations. | ||
16:57
cdg left
|
|||
donaldh | tho, as I discovered a long while ago, there seems to be a cost to annotation processing at startup. I think it's the bytecode encoding of annotations, so it'll only be worthwhile if I can lazily read the annotations. | 16:58 | |
16:59
cdg joined,
buharin joined,
zakharyas left
17:01
wamba joined
|
|||
donaldh | jnthn: yes, I reckoned it was fraught. Still trying to figure out what's needed immediately. | 17:02 | |
17:02
kurahaupo joined
17:03
_dolmen_ joined
17:09
vendethiel joined
17:28
ilogger2 joined,
ChanServ sets mode: +v ilogger2,
ilbot3 joined,
camelia joined
17:30
ChanServ sets mode: +v camelia
17:35
fireartist joined
|
|||
timotimo | it isn't guaranteed, but you're totally supposed to provide one | 17:38 | |
17:39
sevvie joined
17:52
_mg_ joined
|
|||
hoelzro | ok, that seems reasonable | 17:53 | |
the payload method check should probably change to something like message though, I think | 17:54 | ||
timotimo | dunno | 17:55 | |
18:05
firstdayonthejob joined
18:08
domidumont joined
|
|||
dalek | c: a4dcf9c | (Simon Ruderich)++ | doc/Type/IO/Path.pod: IO::Path: document slurp and spurt methods |
18:09 | |
p: 3f33ca9 | donaldh++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/Serialization (2 files): [jvm] Serialize the string heap to the serialization blob. This cuts the CORE.setting const table from ~63000 entries to ~52000 entries. |
|||
timotimo | oh, huh. that's neat! | 18:10 | |
18:11
_mg_ left
|
|||
dalek | p: 95c349f | donaldh++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SerializationReader.java: [jvm] Oops. Part of another feature leaked into this commit. |
18:12 | |
18:12
wamba joined
18:13
yqt joined
|
|||
rudi_s | I just found #400 in perl-docs on github and I'm curious why for 'text-file'.IO.lines <-> $_ { s/foo/bar/ } doesn't work. And I'm also curious what it's supposed to do. | 18:19 | |
timotimo | well, maybe you'd expect it to change the contents of the file? | 18:20 | |
rudi_s | Hm. But the code as is does nothing. | 18:21 | |
psch | it changes an anonymous array that you don't have a reference to | 18:22 | |
rudi_s | Alright. But it has no visible effect so I'm curious what should be documented. | 18:23 | |
And I'd still like to know why <-> doesn't work. | |||
timotimo | "doesn't work" meaning? | ||
psch | m: my @a = IO.lines; for @a <-> $_ { .uc }; say @a[^3] | ||
camelia | rakudo-moar 531495: OUTPUT«Method 'lines' not found for invocant of class 'IO' in block <unit> at /tmp/FLwlElRZ1c line 1» | ||
psch | m: my @a = $*IN.lines; for @a <-> $_ { .uc }; say @a[^3] | ||
camelia | rakudo-moar 531495: OUTPUT«(Céad slán ag sléibhte maorga Chontae Dhún na nGall Agus 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í)» | ||
psch | m: my @a = $*IN.lines; for @a <-> $_ { .=uc }; say @a[^3] # there | ||
camelia | rakudo-moar 531495: OUTPUT«(CÉAD SLÁN AG SLÉIBHTE MAORGA CHONTAE DHÚN NA NGALL AGUS 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Í)» | 18:24 | |
rudi_s | timotimo: Parameter '$_' expected a writable container, but got Str value | ||
psch | oh, right | ||
.lines returns a List, not an Array | |||
my bad | |||
timotimo | ah, good | ||
psch | still, .lines isn't rw afair | ||
timotimo | it doesn't matter if .lines is rw, it's about the containers that could be in the list/array | 18:25 | |
psch | timotimo: right, i was thinking along the lines of tie() | ||
rw isn't the right term there | |||
timotimo | i don't even know tie :) | ||
psch | something in p5 to directly map an array to a file on disk afair | 18:26 | |
timotimo | oh | 18:28 | |
well, having lines-based text files is trouble when you alter the length of individual lines | |||
you'd have to re-shuffle the rest of the file every time | |||
the performance of the given loop at the top would be abysmal | |||
psch | i've never used that feature of p5, fwiw | 18:29 | |
[Coke] | .u sad | 18:32 | |
yoleaux | U+0635 ARABIC LETTER SAD [Lo] (ص) | ||
U+069D ARABIC LETTER SAD WITH TWO DOTS BELOW [Lo] (ڝ) | |||
U+069E ARABIC LETTER SAD WITH THREE DOTS ABOVE [Lo] (ڞ) | |||
[Coke] | .u sad face | ||
yoleaux | No characters found | ||
timotimo | .u tears | ||
yoleaux | U+1F602 FACE WITH TEARS OF JOY [So] (😂) | ||
U+1F639 CAT FACE WITH TEARS OF JOY [So] (😹) | |||
[Coke] | m: Int.Range | 18:35 | |
camelia | ( no output ) | ||
[Coke] | m: Int.Range.say | ||
camelia | rakudo-moar 531495: OUTPUT«-Inf^..^Inf» | ||
[Coke] | m: Str.Range.say | ||
camelia | rakudo-moar 531495: OUTPUT«Method 'Range' not found for invocant of class 'Str' in block <unit> at /tmp/Njxpf_HH3N line 1» | ||
[Coke] | jnthn: ^^ is there something like that to show me all the unicode chars we can get at? | 18:36 | |
m: (^99999).grep({.uniname ~~ /'FACE'/}).map({$_=>.uniname}).join("\n") | 18:37 | ||
camelia | ( no output ) | ||
[Coke] | m: say (^99999).grep({.uniname ~~ /'FACE'/}).map({$_=>.uniname}).join("\n") | ||
camelia | rakudo-moar 531495: OUTPUT«4966 ETHIOPIC PREFACE COLON8751 SURFACE INTEGRAL9785 WHITE FROWNING FACE9786 WHITE SMILING FACE9787 BLACK SMILING FACE9856 DIE FACE-19857 DIE FACE-29858 DIE FACE-39859 DIE FACE-49860 DIE FACE-59861 DIE FACE-612207 KANGXI RA…» | ||
18:37
wamba left
|
|||
timotimo | oooh, negative die faces? ;) | 18:40 | |
TimToady | negative die would be positive born? or would that be a resurrection? | 18:44 | |
timotimo | it's not a pure function | ||
flussence | antimatter dice would make for interesting DnD games | ||
18:44
araujo_ joined
|
|||
TimToady | that would depend on whether you are made of antimatter | 18:45 | |
18:46
araujo_ left
|
|||
TimToady | we got it wrong on the electrons vs positrons, so maybe we have it wrong on the matter/antimatter... | 18:46 | |
18:48
FROGGS joined
|
|||
FROGGS | o/ | 18:48 | |
18:49
araujo_ joined,
yqt left
18:50
fireartist left
18:53
labster joined
|
|||
hoelzro | o/ FROGGS | 18:57 | |
19:00
uruwi joined
19:01
araujo_ left
|
|||
[Coke] | m: "xCDxBE".ords.say | 19:02 | |
camelia | rakudo-moar 531495: OUTPUT«(59)» | ||
[Coke] | (ok, so if I want to check the uniprops of something we decompose automatically, I need to start with the int codepoint and not ever go into string mode. | 19:05 | |
FROGGS | ) | ||
[Coke] | m: my $i = 0x37e; say uniname($i); say uniname(chr($i)); | ||
camelia | rakudo-moar 531495: OUTPUT«GREEK QUESTION MARKSEMICOLON» | ||
FROGGS | O.o | 19:06 | |
[Coke] | do we have a thing that shows a list of available uniprops? | 19:07 | |
geekosaur | FROGGS, welcome to unicode >.> | 19:08 | |
FROGGS | hehe | 19:09 | |
[Coke]: no, I dont think so | |||
[Coke] | I have a chat server that is ascii only that I use a perl5 client to connect to... Really makes me want to both upgrade the server and rewrite the client to perl 6. | 19:11 | |
grondilu | m: say class :: is List { method count-only { Inf }}.new.elems | 19:19 | |
camelia | rakudo-moar 531495: OUTPUT«0» | ||
moritz | isn't count-only an iterator method? | 19:20 | |
grondilu | but List is an Iterator | ||
FYI I was wondering why +combinations( | 19:22 | ||
$, $) does not work | |||
m: say +combinations(100,1000) | |||
camelia | rakudo-moar 531495: OUTPUT«(timeout)» | ||
grondilu | when .elems does | ||
m: say combinations(100,1000).elems | 19:23 | ||
camelia | rakudo-moar 531495: OUTPUT«1» | ||
grondilu | oops | ||
that looks very wrong | |||
oh wait | |||
m: say combinations(1000,100).elems | |||
camelia | rakudo-moar 531495: OUTPUT«63850511926305130236698511142022274281262900693853331776286816221524376994750901948920974351797699894319420811933446197797592213357065053890» | ||
grondilu | m: say +combinations(1000,100) | 19:24 | |
camelia | rakudo-moar 531495: OUTPUT«Memory allocation failed; could not allocate 800 bytes» | ||
flussence | m: say "\x37e".ord.base(16) # idle golfing... | 19:26 | |
camelia | rakudo-moar 531495: OUTPUT«3B» | ||
flussence | m: say 'foo'xCDxBE say 'bar' | 19:27 | |
camelia | rakudo-moar 531495: OUTPUT«foobar» | ||
flussence | I'm not entirely comfortable with the idea that perl6 automatically transliterates a codepoint into an ascii character that has quite a lot of syntactic meaning in various contexts... | 19:29 | |
19:30
uruwi left
|
|||
timotimo | oh hey grondilu | 19:30 | |
did you get my latest message about the white noise thing? | |||
flussence | m: say so "\x37e" ~~ /<:ascii>/ # wtf-per-byte ratio steadily climbing... | ||
camelia | rakudo-moar 531495: OUTPUT«True» | ||
[Coke] | flussence: complain to unicode. | 19:31 | |
19:31
uruwi joined
|
|||
geekosaur | unicode normalization is "fun" | 19:31 | |
[Coke] | "I'm pretty sure that's the intent of the Decomposition info", I mean. | ||
19:31
gtodd joined,
lostinfog joined
|
|||
geekosaur | (for values of fun up to and including permanent brain damage) | 19:32 | |
timotimo | m: say "\x37e".ords | ||
camelia | rakudo-moar 531495: OUTPUT«(59)» | ||
timotimo | of course it ~~ <:ascii> | ||
19:33
FreezeburnV joined
|
|||
FreezeburnV | Afternoon all | 19:34 | |
19:34
Cabanossi joined
|
|||
dalek | osystem: 8d1d5ec | (Steve Mynott)++ | META.list: remove ShimmerFairy modules which no longer exist |
19:35 | |
[Coke] | m: (0..^99999).grep({$_ != ord(chr($_))}).elems.say | 19:36 | |
camelia | rakudo-moar 531495: OUTPUT«565» | ||
19:37
yqt joined
|
|||
timotimo | i wonder why shimmerfairy is gone? | 19:38 | |
perlpilot | timotimo: shimmeryfairy.wordpress.com/2016/0...w-im-gone/ | 19:40 | |
timotimo | oh! | ||
perlpilot | you're even mentioned in that post :) | 19:41 | |
19:41
espadrine joined
|
|||
timotimo | i just reached that part | 19:42 | |
stmuk | I also have removed shimmerfairy from the RSS feeds | ||
timotimo | it bums me out that she's felt worthless or that it's not worth speaking up :( | 19:44 | |
[Coke] | She spoke up | ||
19:44
domidumont left
|
|||
[Coke] | many times. | 19:45 | |
timotimo | yeah | ||
you wouldn't get shot down if you don't speak up | |||
i just mean i'd be happier if the shooting-down hadn't been as disheartening | |||
[Coke] | perhaps if her best attempt to be calm was received in the same mode as her attempts to rage says more about her than about the rest of us. | 19:48 | |
timotimo | i don't know | 19:49 | |
stmuk | I don't think its about perl6 .. it's about someone's personal issues | 19:50 | |
hoelzro | I wish she hadn't deleted her repos | ||
perlpilot | all I know is her "world view" was different from others enough that reconciling was (would have been) hard. | ||
[Coke] | my 2¢ - a disruptive change was made close to Christmas. There was absolutely no give on the Christmas date. The change was required for Christmas. There was a dearth of volunteers. nine got a pretty decent version of tings in place in time for us. Yes, there were disruptions. The particular bug she complained about, I found to have the same workaround as a bunch of other people who noted issues at the same | ||
hoelzro | I kinda wanted to play around with SUPERNOVA | ||
[Coke] | time. | ||
timotimo | hoelzro: yeah, you and me both have hopes and interest in the future of pod6 | 19:51 | |
hoelzro | I think pod6 may be where I concentrate my efforts after REPL stuff | ||
not a lot of tuits lately =/ | |||
timotimo | mhm | 19:52 | |
hoelzro | I think her approach was smart; POD6 should probably be its own part of the language braid | ||
or something like that | |||
[Coke] | To emphasize a point she made - we're not a business. we're not a company. Expecting things to work as if we were is a recipe for disappointment. | ||
timotimo | i'm glad i got a bit of feedback on my empathy from that post; seems like i was able to interpret her meanings correctly | ||
i'm glad we'll never have to hit a christmas release like that ever again | 19:53 | ||
hoelzro | [Coke]: I think the lesson we should probably take away from the cur merge fallout is communicating large branches | ||
[Coke] | (broke to such an extent) - one line workaround, btw, to the bug. | ||
hoelzro | I don't think we'll ever have a branch that big again, though | ||
not hitting 6.(current), anyway | 19:54 | ||
[Coke] | which I found in about 30 minutes of digging. | ||
flussence | I'll be honest, I kinda agree with everything that was written. I'm just a little more prone to hitting backspace in a panic instead of enter, and I won't even try with certain subjects since I've noticed anyone else bringing them up consistently gets shouted down. | ||
timotimo | yeah, the reception of that branch was quite poor; nine asked for eyes and nobody bothered to share any ... me included | ||
hoelzro | nine did due diligence in soliciting feedback; it's just that not many people answered the call | ||
perlpilot | hoelzro: now that we've actually released, we won't because we're going to consciously worry more about breaking things. | ||
[Coke] | nope. it was an artifact of the last minute work required for the christmas release. An unfortunate result of the hard christmas deadline imposed on us. | ||
hoelzro | perlpilot: mhmm | ||
[Coke]: agreed | 19:55 | ||
perlpilot | flussence: which subjects get "shouted down"? (or was that hyperbole?) | 19:56 | |
(or maybe we have different threshholds for "shouting" :) | |||
timotimo | i don't think you'll get many hard words for suggesting something that ain't gonna happen. probably a sugar coated no + an explanation | 19:57 | |
hoelzro | I gave a talk on Perl 6 here in the Chicago area on Tuesday; one of the language "features" I promoted was what I feel to be our incredible community. I want to think we're not a community that shouts people down, but that's not to say it never happens. | ||
timotimo: *nod* | 19:58 | ||
I think the harshest feedback I've seen (to me, personally) is (human interaction) - (tone and body language that softens the blow, that makes you feel that it's not personal) | |||
stmuk | I gave a talk on Perl 6 to London Perl Mongers yesterday and also mentioned help from IRC | ||
flussence | may be hyperbole, but I really don't feel like clarifying that statement. Sorry. | ||
timotimo | flussence: don't warry about it; perhaps you'd like to tell someone you trust in private about it? | 19:59 | |
flussence | nah, not worth dragging it out | ||
perlpilot | flussence: and actually ... if there's something you think is important that doesn't seem to be getting traction, IMHO, that's when it's most important to bring it up. Perhaps not to the channel as a whole, but find someone who may be receptive to talk about it. | ||
cognominal | I am reading ShimmerFairy post. It seems that many of his problems are about contingent surface syntax. Example: the kebab case, the deep representation of a variable shoul really be a unique identifer. pseudo-packages/twigil allows variables with otherwise identical surface name, with different scopes to be used without ambiguities. | ||
FreezeburnV | Since everyone is "kinda" on the topic of things being broken: I almost jumped off Perl6 work for a year or so due to a compiler bug that I have code which consistently triggers and hasn't gone away from 6.c to 6.d (seems to be something to do with having an if .. elsif .. else chain where the else has a die, and all other branches assign to a variable) | 20:00 | |
cognominal | we should engage him to think/work on a deep representation and its relationship with the surface representation. | ||
perlpilot | cognominal: more like "this change seems random! What's going on?" (that may be me reading-into it though) | ||
hoelzro | FreezeburnV: do you have an RT for that? that sounds interesting | 20:01 | |
[Coke] | FreezeburnV: is there a ticket for this bug? | ||
timotimo is more interested in a piece of golf code than a ticket number, but i suppose you're asking for that by asking for a ticket | |||
FreezeburnV | hoelzro, [Coke]: There is no ticket for it. I don't even know how to create one? | ||
timotimo | cognominal: i'm not sure i support your interpretation of the kebab case thing | 20:02 | |
psch | hrm | ||
hoelzro | timotimo: even better if the RT ticket includes golfed code =) | ||
cognominal | personally, speaking of surface representation I am pissed by Perl6 not yet serious with slangs :) | ||
perlpilot | FreezeburnV: Can you reliably reproduce the bug? | ||
hoelzro | FreezeburnV: if you can demonstrate some golfed code, I'll make the ticket for you | ||
psch | so shimmeryfairy complains about a bug that complete broke rakudo after having pushed code that produced a bug that completely broke rakudo (on the less popular backend, but still) | ||
[Coke] | (put the code in a gist, don't paste it here.) | ||
timotimo | cognominal: also, shimmerfairy's a she; though i'm not sure if she insists on being correct about that or doesn't care | ||
FreezeburnV | perlpilot, hoelzro: I'm not sure if I can make it happen with a smaller chunk of code (I'll try), but I can give you a link to the code (it's all on Github) | 20:03 | |
[Coke] | psch: Anyone with commit bits has broken something at some point; I'm willing to cut her slack on that front. | ||
perlpilot | FreezeburnV: that's an excellent start :) | ||
[Coke] | FreezeburnV: for sure, though, if you don't tell us there's a bug, we're probably not going to fix it. | ||
FreezeburnV | perlpilot: But I CAN consistently make it happen with the code I have. It's been happening for a month+ now every time | ||
20:03
vendethiel joined
|
|||
timotimo | FreezeburnV: sounds like a good start; if you don't have the energy to follow through, hopefully someone else can isolate the problem | 20:04 | |
FreezeburnV | [Coke], I brought it up a while ago a bit after release of 6.c. Someone mentioned that it was something known, so I just waited for it to go away. It hasn't, so now I'm goign to be more irritated about it | ||
psch | [Coke]: oh, yeah, i know. i mean, i broke a lot myself. in the end i'm just a bit sad about the anger is all | ||
hoelzro | any code is better than no code | ||
cognominal | timotimo, sorry, I did not notice about her being a she. NOt that make any difference here. | ||
[Coke] | FreezeburnV: fair enough. | ||
timotimo | FreezeburnV: personally, i'm always glad to hear if MVM_SPESH_DISABLE=foo in the environment keeps the problem "working" | ||
cognominal: right, no difference. just nit-picking | |||
FreezeburnV | timotimo, I'll try that | ||
psch | [Coke]: as in, i'm trying really hard to step away from the keyboard when i get too emotional - in which ever direction - and it works for me vOv | ||
timotimo | FreezeburnV: if that fixes the bug, it's likely my fault. but at least we'll know better where to look | 20:05 | |
[Coke] | psch: yah, that took me like 20 years to figure out. :) | ||
psch | the "completely broken the unpopular backend" code was &val and the allomorphs, fwiw, and i'm mostly annoyed that the jvm fix for that is *still* horrible :/ | ||
[Coke] | plus communicating over text is always fraught with chances for misinterpretation | ||
FROGGS | psch: I share your feelings fwiw | 20:06 | |
psch | FROGGS: but i'm trying so hard *not* to share them! /o\ | ||
hoelzro | amen to that (what [Coke] just said) | ||
psch | snrk | ||
hoelzro | text is hard. | ||
timotimo | "val and the allomorphs" really sounds like the title of a cartoon or some movie | ||
cognominal | supernova seemed nice. | ||
perlpilot | timotimo: heh! I was just thinking that | ||
hoelzro | sounds like a band | 20:07 | |
FROGGS | or something that fits in the marvel universe | ||
timotimo | "val" would then probably be the lead, likely a woman? | ||
hoelzro | hehe | ||
FROGGS | aye | ||
cognominal | I sure need to learn about precomp to understand the discussion | ||
FROGGS | and probably inhuman | ||
timotimo | i'd expect more like a cyborg or other kind of "mixture" | 20:08 | |
because of what allomorphs are | |||
geekosaur | Val could be either gender (e.g. Val Kilmer) | 20:09 | |
FreezeburnV | timotimo, MVM_SPESH_DISABLE does not fix the issue | ||
geekosaur | ...although maybe that means they;re gender allpmorphs >.> | ||
timotimo | hooray, i'm off the hook :) | ||
geekosaur: good example | |||
hoelzro can hear the sigh of relief from thousands of kilometers away | 20:10 | ||
timotimo | .o( timo and the speshialists ) | 20:12 | |
vendethiel | :D | ||
timotimo++ | |||
timotimo | oh hey ven | ||
vendethiel | hi timotimo :) | ||
FreezeburnV | perlpilot, [Coke], hoelzro: Since I don't have time at the moment to golf the code, and the example of things being broken is more than one file, here's a github repository with a snapshot of all the files that, together, cause the command 'perl6 playground.p6' to break. The file 'ERROR_TEXT' has the console output I see: github.com/Freezerburn/perl6_broke...mp_compile | 20:14 | |
hoelzro | FreezeburnV++ | ||
DrForr | Yay, I can sit down and try to debug this callback issue. Is there a good way to catch errors inside a callback? All I get is a trace leading up to 'Failed' in the method that's calling my function. | ||
FreezeburnV | (note that on its own this will actually do nothing, unless you have SDL2 libraries installed in a place perl6 can find, as it will error out with not finding them. but the point is to hit a compiler error anyway :) | ||
hoelzro | DrForr: a callback invoked via NC? | 20:15 | |
FreezeburnV | Further information: If I actually remove the die call at the end of the BEGIN block in SDL2/Raw.pm6, it seems to make the issue go away. Locally I replace it with a say "[WARN] ..." instead | ||
hoelzro | FreezeburnV: are you printing to standard out at compile time? | ||
FreezeburnV | hoelzro, No | 20:16 | |
DrForr | No, it's not NC, as far as I know. This is a Crust app, I'm passing it a reference to my application function. | ||
hoelzro | o_O | ||
FreezeburnV | Unless you count the die | ||
hoelzro | DrForr: ah, ok | ||
FreezeburnV | hoelzro, Notably, if you remove the BEGIN block and leave it as an if .. elsif chain at runtime, the compiler still breaks :) | ||
And I'm pretty sure that's the only place that compile-time code is run | 20:17 | ||
hoelzro | compile time code is a fun thing ;) | ||
timotimo BBL | |||
hoelzro | role bodies, for example, are run at compile time | ||
timotimo | hoelzro: not at composition time? (which is important when you 'does' or 'but' at run-time) | ||
FreezeburnV | hoelzro, wellt hen, it's the only time I explicitly request that arbitrary code be run at compile time ;) | 20:18 | |
hoelzro | timotimo: oh, good point | ||
20:18
musiKk joined
|
|||
timotimo | for most cases that's during a compile time, though | 20:18 | |
DrForr | I can certaily debug it by modifying Crust's run() method to call exit(), and then moving that down line-by-line until the error happens, but I was wondering if there was a better way. | ||
20:19
uruwi left
|
|||
hoelzro | ah, there's a say() in SDL::Raw2 | 20:21 | |
so that would run at BEGIN time in sdl2.pm6 | |||
[Coke] | FreezeburnV: is this the same precomp error that adding a "no precompilation;" in your source will avoid? | ||
FROGGS | FreezeburnV: your logger code say()s stuff at compile time | ||
FreezeburnV: and this output makes it into precomp files, and thus invalidating its content | 20:22 | ||
20:22
tmch joined
|
|||
FROGGS | FreezeburnV: I'd try turning the 'say' into a 'note' | 20:23 | |
20:23
lostinfog left
|
|||
FreezeburnV | [Coke], When I was asked to add that last time, it caused the compiler to choke saying it wasn't implemented | 20:23 | |
hoelzro | changing say to note makes things "work" for me | ||
FROGGS | FreezeburnV: will have time tomorrow to run your code | ||
hoelzro | now I get: Could not create context: Could not create GL context: GLXBadFBConfig | ||
FreezeburnV | FROGGS, I'm pretty sure my logging code doesn't say anything at compile time? It should generate functions that say things? | 20:24 | |
FROGGS | FreezeburnV: what about that? github.com/Freezerburn/perl6_broke...dl2.pm6#L6 | ||
hoelzro | NTM say "lib: $lib" in SDL2/Raw.pm6 | ||
20:24
Zakkor joined
|
|||
FROGGS | FreezeburnV: a 'use sdl2' runs the mainline of sld2.pm6 at compile time | 20:25 | |
hoelzro | that precomp-id failure is a bit of a red herring; it's quite LTA | ||
FreezeburnV | hoelzro, FROGGS: Wait, so anything at the top level of a module is basically being run at compile time? | ||
hoelzro nods | |||
FROGGS | aye | ||
FreezeburnV | I guess my Python background has bitten me in the rear then | 20:26 | |
Zakkor | is it possible to get perl6 auto-complete in emacs? | ||
hoelzro | rt.perl.org/Ticket/Display.html?id=127086 | ||
^ ticket for LTA-ness | |||
FreezeburnV | I assumed that anything outside of a BEGIN block would be run at runtime | ||
FROGGS | hoelzro: we can also make it work I think | ||
hoelzro | I think we can | ||
FROGGS | hoelzro: we dont have to redirect stdout at all me thinks | ||
hoelzro | I have some ideas on that ticket, with feedback from nine | ||
perlpilot | FreezeburnV: it does run at runtime ... it's just that it's runtime is when the module is used which is at compile time. :) | 20:27 | |
s/it's/its/ | |||
[Coke] | Zakkor: github.com/hinrik/perl6-mode ? | ||
hoelzro | use runs at compile time as well | ||
perlpilot | er, s:2nd/it's/its/ even | ||
FreezeburnV | perlpilot, That isn't confusing at all :P | ||
FROGGS | hehe | ||
20:27
user_6532 joined
|
|||
FROGGS | nobody said time travel isnt confusing | 20:27 | |
user_6532 | Allah is doing | ||
[Coke] | I think we're mostly non-emacs here in channel, though. | 20:28 | |
user_6532 | sun is not doing Allah is doing | ||
FROGGS | user_6532: so am I | ||
FreezeburnV | Oddly, I'm pretty sure that I've actually been able to say out that map at the top level like that without having the compile issues | ||
user_6532 | moon is not doing Allah is doing | ||
[Coke] | user_6532: welcome to Perl 6. Try not to act like a bot, or you'll probably get booted. | ||
FreezeburnV | But I could be misremembering | ||
user_6532 | stars are not doing Allah is doing | ||
[Coke] | and, that's a bot. someone retire it? | 20:29 | |
FROGGS | I dont have a hat at hand | ||
RabidGravy | goats are rebelling in the sunset of the cheesemakers | ||
user_6532 | planets are not doing Allah is doing | ||
galaxies are not doing Allah is doing | |||
oceans are not doing Allah is doing | 20:30 | ||
perlpilot | #perl6 is becoming closer to #perl | ||
[Coke] | I am not a channel op, which should be fixed. | ||
user_6532 | mountains are not doing Allah is doing | ||
FreezeburnV | hoelzro, FROGGS: Well thanks for the help with that. I'll be more careful in the future about top-level printing. Would be nice to make that not be an issue, or have a better error at least for the moment | ||
user_6532 | trees are not doing Allah is doing | ||
mom is not doing Allah is doing | |||
20:30
ChanServ sets mode: +o moritz
|
|||
stmuk | /ignore user_6532 | 20:30 | |
FROGGS | FreezeburnV: aye, will take a look tomorrow | ||
20:30
moritz sets mode: +b *!*18fb3130@*.com/ip.24.251.49.48,
user_6532 was kicked by moritz (user_6532))
|
|||
FreezeburnV | FROGGS, 'Preciate it! | 20:31 | |
20:31
moritz sets mode: +o [Coke]
|
|||
FROGGS | o7 | 20:31 | |
perlpilot | moritz++ | ||
colomon | RabidGravy: please say it’s not actually the sunset of the cheesemakers | ||
FROGGS | moritz is doing :o) | ||
[Coke] | moritz++ | ||
Zakkor | [Coke]: perl6-mode doesn't seem to provide auto-completion. anywhoo, what editors do you guys use? atom? or, god forbid, vim? | 20:32 | |
Skarsnik | kate | ||
hoelzro | vim | ||
perlpilot | Zakkor: vim of course :) | ||
[Coke] | Zakkor: vim | 20:33 | |
stmuk | vim and vim-perl | ||
flussence | .oO( auto-completion usually takes more keystrokes than the thing to complete in perl6 anyway ) |
||
20:33
moritz sets mode: -o mohae,
moritz sets mode: -o moritz
|
|||
moritz | [Coke]: I think I've now given you permission to op yourself; you can do that with /msg chanserv op #perl6 | 20:34 | |
20:34
ChanServ sets mode: +o [Coke]
20:35
[Coke] sets mode: -o [Coke]
|
|||
hoelzro | power overwhelming | 20:35 | |
timotimo | captain kirk is climbing a mountain. why is he climbing a mountain. | 20:37 | |
psch | to shout dramatically? | ||
DrForr | "Go climb a mountain." | ||
timotimo | psch: to hug the mountain. to envelop that mountain. | 20:38 | |
that song is going to be stuck in my head for hours now | |||
psch | oh, it's something on the internet | ||
timotimo | yeah | ||
something quite good | |||
it's from some documentary or behind-the-scenes kind of thing with william shatner | 20:39 | ||
i think the only editing was done to make the speech line up with the beat properly | |||
hoelzro | FROGGS: what's your idea for fixing the LTA bug that doesn't involve redirection? | 20:41 | |
timotimo | how hard would it be to write the stuff we *want* to have into a file instead of a standard output stream? | ||
also, you can fork processes and give them a "shared" file descriptor, not just 0, 1 and 2 | 20:42 | ||
FROGGS | hoelzro: I've not looked at the code nor looked at the ticket but cant we use --output from moarvm? | ||
hoelzro | I think that should work? | ||
oh, I suggested that in the ticket =P | |||
FROGGS | *g* | ||
20:58
_dolmen_ joined
21:02
sufrostico joined,
sufrosti1o joined
|
|||
jnthn | [Coke]: Don't think we've a constant/range for the Unicode codepoint space; the last codepoint at present is 0x10FFFF, though there's more unassigned codepoints than assigned ones so far. | 21:07 | |
RabidGravy | I'm not entirely sure if anyone else but me will find a module for manipulating the Hydrogren drum software data useful but it's a handy test | 21:08 | |
MadcapJake | RabidGravy, I'd use it! I'm still slowly working on my FluidSynth module | 21:09 | |
21:09
QORRiE joined
|
|||
RabidGravy | :) | 21:10 | |
jnthn will have a new module for the ecosystem soon :) | 21:21 | ||
[Coke] | jnthn: uhoh. | 21:22 | |
ugexe | perl6 will finally have its own acme::goatse | 21:23 | |
jnthn | :P | ||
Nothing so scary :) | |||
21:23
uruwi joined
|
|||
jnthn | .oO( But now you mention it, that is a gaping hole in our ecosystem... ) |
21:25 | |
timotimo | oh lord | 21:27 | |
ugexe | hopefully we can do better than a straight perl 5 port | 21:28 | |
21:29
TEttinger joined
21:31
Zakkor left
|
|||
mst | perlpilot: the more popular we get, the more kooks there'll be | 21:32 | |
21:34
musiKk left
|
|||
mst | moritz: updated [Coke]'s chanserv perms to the standard | 21:35 | |
21:38
buharin joined,
buharin left
21:39
ely-se joined
21:41
geraud joined
|
|||
flussence | I still remember that one period a few years back where we were invaded *daily* by unwanted traffic from a "free chat" blackberry app written by morons. AFAIK it just scraped well-known irc networks for large channels and connected at random... | 21:41 | |
timotimo | hahahahaha | ||
yeah | 21:42 | ||
going to finally see deadpool tonight | 21:45 | ||
hoelzro | "tonight"? isn't it like 22:45 for you? | ||
hoelzro guesses it's a showing before 23:59 then =P | 21:46 | ||
[Coke] | timotimo: I loved that movie. | ||
it was everything I hoped for. :) | |||
timotimo | cool :) | ||
ttyl | 21:47 | ||
21:47
FROGGS left
22:05
sufrostico left,
sufrosti1o left
|
|||
lizmat | good *, #perl6! | 22:05 | |
sortiz | \o lizmat | ||
sjn | good *, y'all | ||
lizmat | ShimmerFairy: if you're reading this, please contact me by email, or private chat | 22:06 | |
sortiz o/ | 22:12 | ||
sjn o/ | |||
sjn | lizmat _o \o \o/ o/ o_ | 22:13 | |
22:13
FreezeburnV left
|
|||
hoelzro | o/ #perl6 | 22:16 | |
22:16
sufrostico joined
|
|||
sortiz | CY hoelzro | 22:16 | |
22:16
sufrosti1o joined
|
|||
hoelzro | er, that was supposed to be o/ lizmat | 22:17 | |
lizmat: leaving a comment on ShimmerFairy's blog might work better; I don't know if she's still reading this channel's contents | 22:18 | ||
22:20
neilb_ joined
|
|||
jnthn | For anyone doing Docker related stuff, github.com/jnthn/p6-docker-file/ is a (so far as I know complete) Dockerfile parser. Will add support for turing the document object model it makes back into a Dockerfile also. | 22:27 | |
Plus some docs :) | |||
RabidGravy | jnthn++ | ||
AF_UNIX socket support next up so we can interface with docker daemon and we're winning ;-) | 22:28 | ||
jnthn | Edument++ ($dayjob) for giving me the primary reason to get into Docker :) | ||
RabidGravy: Yeah, a Docker::Client is on my hit list after this. | 22:29 | ||
Async of course :) | |||
RabidGravy | it's actually one of the reasons I made JSON::Infer as I made a P5 interface a little over a year ago and it was tedious ;-) | 22:30 | |
jnthn | The Dockerfile format was a bit more gnarly than I was expecting... :) | ||
But, grammars to the rescue... :) | |||
dalek | kudo/nom: 58c45d3 | lizmat++ | src/core/Buf.pm: Shortcut Blob:D eq/ne Blob:D when comparing self This test is *very* cheap, and gives us O¹ in that case. |
22:31 | |
jnthn | Other than that, not much to say about the code. Midly cute use of a parametric role, I guess. | ||
lizmat | hoelzro: left a comment, it's awaiting moderation | ||
jnthn | m: Grammar.parse('foo') | 22:33 | |
camelia | rakudo-moar 531495: OUTPUT«P6opaque: no such attribute '$!shared' in block <unit> at /tmp/f5E9VpwNWe line 1» | ||
jnthn | That is an LTA failure mode I tripped up on | ||
Other than that, Perl 6 felt really very nice for this. :) | 22:34 | ||
22:34
sufrostico left
|
|||
jnthn | (I called my grammar Parser, then tried to use it as Grammar, which is the built-in Perl 6 class) | 22:34 | |
22:34
sufrosti1o left
|
|||
RabidGravy | should get XML::Class out this weekend, took somewhat longer than expected as it's full of crack | 22:35 | |
lizmat | m: dd my $b = Blob.new(1,2,3); dd subbuf-rw($b,2,1) = Buf.new(42); dd $b # jnthn, opinions about this? | 22:36 | |
jnthn | Well, it is XML... :) | ||
camelia | rakudo-moar 531495: OUTPUT«Blob $b = Blob.new(1, 2, 3)Blob.new(3)Buf $b = Buf.new(1, 2, 42)» | ||
lizmat | aka, subbuf-rw changing the object from a Blob to a Buf ? | ||
jnthn | um, oops? :) | ||
Should we really define subbuf-rw at all on a Blob? | 22:37 | ||
lizmat | it's a result of ~ creating a Buf if the objects are not of the same type | ||
well, that's another thing | 22:38 | ||
jnthn | Sure, but it'd prevent this ;) | ||
lizmat | m: dd my $b = Blob.new(1,2,3); dd subbuf-rw($b,2,1) = Blob.new(42); dd $b # a new immutable Blob! | ||
camelia | rakudo-moar 531495: OUTPUT«Blob $b = Blob.new(1, 2, 3)Blob.new(3)Blob $b = Blob.new(1, 2, 42)» | ||
lizmat | since subbuf-rw is not tested at all in roast, I guess we can change it to just work on Buf:D | 22:39 | |
jnthn | Yeah, I'd be inclined to do that | ||
lizmat | ok, I will do that then, and optimize it a bit: because then we can use nqp::splice :-) | 22:40 | |
sortiz | Yep, Even I prefer that Blobs remains immutable from P6 land. | 22:41 | |
lizmat | jnthn: I'm also looking at ~| ~& and ~^ , they also work on Blob:D | 22:42 | |
so they should also be on Buf only, I would think? | |||
RabidGravy | anyway bed time, toodles everyone! | ||
lizmat | toodles RabidGravy | 22:43 | |
ah, no, that would only apply to =~| :-) | |||
sortiz | lizmat, that creates a new Blob, no? | 22:45 | |
lizmat | ~| does, =~| would imply changing left hand side, so would need to be a Buf | ||
m: dd Buf.new(1,2,3) =~| Blob.new(4,5,6) # hmmm... that doesn't seem to work :-( | 22:47 | ||
camelia | rakudo-moar 531495: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GheUq2KD1eUnsupported use of =~ to do pattern matching; in Perl 6 please use ~~at /tmp/GheUq2KD1e:1------> 3dd Buf.new(1,2,3) =~7⏏5| Blob.new(4,5,6) # hmmm... that doesn'» | ||
jnthn | Hmm | 22:48 | |
That P5 detector may want toning down some | 22:49 | ||
*P5ism | |||
lizmat | jnthn: so you agree it would be a valid autogenned operator ? | ||
jnthn | lizmat: The rule's meant to be productive, yeah | 22:50 | |
oh wait | |||
lizmat | ? | ||
jnthn | Wouldn't it not be ~|= though? | ||
lizmat | argh. yes | ||
jnthn | It's a prefix infix meta-operator | ||
.oO( Try saying *that* after a few whiskies... ) |
22:51 | ||
lizmat | m: dd Buf.new(1,2,3) ~|= Blob.new(4,5,6) # which has other issues :-) | ||
camelia | rakudo-moar 58c45d: OUTPUT«Cannot assign to an immutable value in block <unit> at /tmp/WAwUUfgrbb line 1» | ||
lizmat | but I'll have a look at that | ||
sortiz | my $a = Blob.new(1,2,3); dd $a ~|= Blob.new(3,4,5); | ||
jnthn | m: my $b = Buf.new(1,2,3); $b ~|= Blob.new(4,5,6); say $b | ||
camelia | rakudo-moar 58c45d: OUTPUT«Buf:0x<05 07 07>» | ||
sortiz | m: my $a = Blob.new(1,2,3); dd $a ~|= Blob.new(3,4,5); | ||
camelia | rakudo-moar 58c45d: OUTPUT«Blob $a = Blob.new(3, 6, 7)» | ||
jnthn | lizmat: Don't think I'd expect it to work without a Scalar container there, fwiw | 22:52 | |
lizmat | ah, duh | ||
maybe I'm too tired... | |||
jnthn | :) | ||
lizmat | jnthn: finally, on ~| and friends, would you be against adding a candidate that would take an Int ? | ||
m: my $b = Buf.new(1,2,3); $b ~&= 0x77; dd $b | 22:53 | ||
camelia | rakudo-moar 58c45d: OUTPUT«Cannot use a Buf as a string, but you called the Stringy method on it in block <unit> at /tmp/Wo4_hHqHYd line 1» | ||
lizmat | aka, allowing ^^ | ||
which would apply to the whole Buf | 22:54 | ||
m: my $b = Buf.new(1,2,3); $b ~&= Buf.new(0x77 xx 3); dd $b # the equivalent | |||
camelia | rakudo-moar 58c45d: OUTPUT«Buf $b = Buf.new(1, 2, 3)» | 22:55 | |
sortiz | m: my $b = Buf.new(1,2,3); $b ~&= Buf.new(0x77 xx $b.elems); dd $b | ||
camelia | rakudo-moar 58c45d: OUTPUT«Buf $b = Buf.new(1, 2, 3)» | ||
lizmat | yeah, but the int case could be highly optimized | ||
sortiz | lizmat, I like it. | ||
22:55
dh7320 joined
|
|||
lizmat | especially in combination with = | 22:55 | |
sortiz | Sure, only checking the semantic. | ||
jnthn | Not quite sure about it auto-extending. Hmmm... | ||
lizmat | jnthn: internally, it wouldn't auto-extend, only semantically | 22:56 | |
jnthn | I guess I'm worrying a tad about it 'cus $buf ~= 0x42 would be expected to append one element... | 22:57 | |
sortiz | m: my $b = Buf.new(1,2,3,4,5,6); $b ~&= Buf.new(0x2 xx $b.elems); dd $b | ||
camelia | rakudo-moar 58c45d: OUTPUT«Buf $b = Buf.new(0, 2, 2, 0, 0, 2)» | ||
22:57
kurahaupo joined
22:58
kurahaupo left
|
|||
lizmat | perhaps the alternative would be to specify a list, like in allocate? | 22:58 | |
jnthn | That is, I'm concerned about a single Int meaning a 1-elem Buf in some cases, and distributing in others. | ||
lizmat | m: my $b = Buf.new(1,2,3); $b ~&= (0x77,); dd $b | ||
camelia | rakudo-moar 58c45d: OUTPUT«Cannot use a Buf as a string, but you called the Stringy method on it in block <unit> at /tmp/Ki6QaGu1CR line 1» | ||
lizmat | which would allow you to specify a repeating pattern, like with allocate? | ||
jnthn | Do you have a concrete use-case for it, ooc? | ||
sortiz | jnthn, Applying a mask to an image. | 22:59 | |
lizmat | well, I could see a case for 32bit Buf truncating values to 16bit by | ||
(0,0,0x77,0x77) | 23:00 | ||
oops, that wouldn't work | |||
that would just be 0x7777 | |||
jnthn | sortiz: Good one :) | 23:01 | |
lizmat | having a 2dim array in there, and needing to zero out one element in each dimension ? | 23:02 | |
but yeah, generally masking stuff... | |||
sjn | doing XOR on a Buf, perhaps? # guessing | 23:03 | |
23:04
Herby_ joined
|
|||
Herby_ | Evening, everyone! | 23:04 | |
dalek | kudo/nom: 08ad4b6 | lizmat++ | src/core/Buf.pm: subbuf-rw only works on Buf:D See irclog.perlgeek.de/perl6/2016-02-26#i_12106997 - Since we're now using a Buf only, we can use nqp::splice - This means no longer making copies in memory - so this should be significantly faster for bigger Bufs |
||
jnthn | lizmat: Think I'll need to sleep on that last one. Something bothers me a bit about it, but too tired to put my finger on what... | ||
lizmat | sure... | 23:05 | |
jnthn | (Not the commit you just did, the distrbuting Int one) | ||
lizmat | I will first optimize the current cases | ||
yeah, I got that :-) | |||
jnthn | :) | ||
lizmat | jnthn: finally, would adding an infix ~|= cause problems ? | 23:06 | |
I guess I would need to add that to the grammar and various other places as well, right ? | 23:07 | ||
I guess I should ask after a good night's sleep :-) | |||
23:07
sevvie left
|
|||
jnthn | Aye :-) | 23:11 | |
23:12
dh7320 left
|
|||
jnthn implements a few bits of Dockerfile generation, then decides it's enough code for today :) | 23:12 | ||
sortiz | lizmat, we have now enough "building block", thought | 23:15 | |
Even the Int case is only sugar. | |||
lizmat | sortiz: it's not only sugar, it could be implemented to be 2x as fast | 23:16 | |
(that is, the single int case) | |||
it would also be much more memory friendly | |||
23:17
Herby_ left
|
|||
lizmat | try ~|= a 100K buffer, currently it would create 100K to mask with, and a 100K result buffer | 23:17 | |
sortiz | I like it! but if causes problems, I will not fight | ||
23:19
ely-se left
|
|||
sortiz | Right now the common cases Buf ~| Buf are slow. | 23:19 | |
lizmat | yeah, and they can be much faster... | 23:20 | |
sjn reads through S17 | |||
lizmat | conceptual ~=: | ||
sortiz | Yeah, with a few new ops. | ||
lizmat | multi sub infix:<~=>(Buf:D \a, Blob:D \b) { | ||
my $a := nqp::decont(a); | |||
nqp::splice($a, nqp::decont(b), nqp::elems($a), 0); | |||
} | |||
sortiz | nqp::splice rulez | 23:22 | |
lizmat | yup | ||
23:23
Zakkor joined
|
|||
Zakkor | hey guys, i made a wallpaper, maybe you'll like it - u.teknik.io/SdupS.png | 23:23 | |
Skarsnik | nice | 23:24 | |
lizmat | nice, but maybe more for #perl / Perl 5 ? | ||
I mean, I love the camel (we actually have a large one :-) | 23:25 | ||
mst | if it was for perl5 it'd be a raptor | ||
sjn | m: $*SCHEDULER.cue: in => 3, { say "3 seconds passed" }; # shouldn't this give a warning? | ||
camelia | ( no output ) | ||
23:26
Zakkor left,
telex joined
|
|||
lizmat | m: $*SCHEDULER.cue: in => 3, { say "3 seconds passed" }; sleep 5 | 23:26 | |
camelia | rakudo-moar 08ad4b: OUTPUT«3 seconds passed» | ||
lizmat | sjn: if you're falling off the end of a program, you will take all threads down with you, including the one in which you scheduled stuff to happen | 23:27 | |
sjn | yeah, that's fine, but if the program exits with stuff on the scheduler... | ||
a warning would be nice, wouldn't it? | |||
lizmat | a warning could definitely be in order... stopping it would be... troublesome | 23:28 | |
jnthn | Exiting with stuff on the scheduler is normal enough | ||
Especially anything repeatedly scheduled | |||
lizmat | well, maybe don't warn for stuff repeatedly scheduled ? | ||
jnthn | In general, though, you a) don't want to use the scheduler directly 99% of the time, and b) should have something waiting on the completion or failure of things you care about | 23:29 | |
sjn | sure, let's give the n00bs (like myself) hints about that :) | ||
lizmat | sjn: it would just be pretty hard to weed out all of the false positives... | 23:30 | |
sortiz | jnthn, at the nqp level, $i = $i + 1, is optimized or is converted to nqp::add_i($i,1) ? | 23:31 | |
jnthn | sjn: doc.perl6.org/language/concurrency clearly lists Scheduler as a low-level API | ||
sortiz: If $i is declared as a native int, certainly | 23:32 | ||
sortiz | *$i = nqp::add_i($i,1) | ||
jnthn | If it is then yes, it'll compile into the add op | ||
Plus "...where possible, avoid the lower level concurrency APIs (i.e. Thread and Scheduler ) and use the higher-level interfaces" right in the opening section | |||
sortiz | I was thinking in a missing nqp::inc_i($i)... | 23:33 | |
lizmat | sortiz: I'm pretty sure that's on jnthn's radar :-) | ||
jnthn | MoarVM does have an inc_i op already | 23:34 | |
Not sure if the optimizer spits it out yet, but I think we'll do it that way | |||
23:34
yqt left
|
|||
jnthn | Pretty sure the JVM would already be nailing that one :) | 23:34 | |
Ah, and by optimizer I mean "the one in MoarVM" | 23:35 | ||
lizmat | m: use nqp; my int $i = 42; nqp::inc_i($i); dd $i # so not exposed at NQP level yet ? | 23:36 | |
camelia | rakudo-moar 08ad4b: OUTPUT«===SORRY!===No registered operation handler for 'inc_i'» | ||
jnthn | lizmat: No, but I think we won't expose it at NQP level...it's a tad awkard | ||
sortiz | In loops is the more common op. So even with natives $i = $i + 1 is somewhat expensive. | ||
lizmat, I search for it. | 23:37 | ||
jnthn | lizmat: I think we'll just let spesh do the transform | ||
sortiz | Transform to machine INC ? | 23:38 | |
23:39
khw joined
|
|||
lizmat | jnthn: are you saying that native $i++ is already handled most efficiently ? | 23:39 | |
(if that's the case, there's some stuff to do in core :-) | |||
sortiz | That is the cuestion, I suspect No... | 23:40 | |
nine | lizmat: I seem to remember either ++$i or $i++ getting optimized now | 23:41 | |
lizmat | benchmarking a simple loop with $a = $a + 1 or $a++ doesn't perform differently afaics | ||
nine: for natives? it used to be for Int, I know | 23:42 | ||
nine | lizmat: yes for natives | ||
lizmat: commit 2d98de93ba16886ab7567d27d135a54c7aa657e3 | 23:44 | ||
lizmat | cool.. will take care of that tomorrow then :-) | ||
post and prefix ? | |||
nine | also commit 1f34b78a3b5da91f72476e8e17c8343b84bbb606 | ||
enable ++ native optimization at level >= 3 | |||
lizmat | nine: those commits don't seem to have anything to do with increment/decrement? | 23:46 | |
just with using an int as a conditional in a loop ? | |||
jnthn | lizmat: No, we can do better, but I'm saying we should deal with it in MoarVM | 23:51 | |
(As in, deal with the rest of it) | |||
lizmat | ok |