»ö« 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:02 cire joined 00:03 tadzik left 00:04 QORRiE left, tadzik joined
sortiz jnthn, my last one today: There are many MoarVM ops not exposed at the nqp level? 00:05
lizmat good night, #perl6!
00:06 firstdayonthejob left
kjs_ good evening. I’m using JSON::Tiny to parse large files most of which have simple key-value entries, but some value entries are arrays. However, when parsing it (using the “from-json” method), I can’t seem to iterate over the values of arrays. 00:06
sortiz gnight lizmat
kjs_, Do you have a minimal example that shows the problem? 00:09
jnthn sortiz: Not that many, no.
sortiz: Provided you discount spesh ops, but those aren't part of the VM interface, and you can't even use them in a bytecode file. 00:10
sortiz: Those ones are marked .s in oplist
kjs_ nopaste?
sortiz kjs_, sure.
kjs_ eh, that used to give a link many years ago :-) 00:11
sortiz: nopaste.linux-dev.org/?958277 00:12
sortiz: that isn’t the code, that’s the result of the parse
jnthn Time for some rest...'night o/ 00:13
sortiz jnthn, thanks and gnight
kjs_ the “technologies” field has an array of values, but I don’t understand how I can iterate over them.
00:17 tadzik left
sortiz kjs_, seems that technologies in fact has [Objective C iOS 5.0] as value, so not a problem with JSON::Tiny, can be in your iteration code. 00:17
kjs_ sortiz: yes, it’s probably in the code alright. Only starting out with Perl 6 (no Perl experience) 00:18
00:19 cognominal joined
sortiz kjs_, I suggest you write a small test program to test the concepts of nested arrays. 00:20
kjs_ sortiz: nopaste.linux-dev.org/?958297.
if I run this, I just get a b c, but I think I need to write for @a -> @e , and then a nested loop 00:21
00:21 tadzik joined
sortiz kjs_, nop, you should test inside the loop the kind of $e and act accordingly, may be with an inner loop. 00:22
00:24 skids joined, neilb_ left
sortiz m: my %h = (a => 1, b => [1,2,3]); for %h { say .value if .value ~~ Array } 00:25
camelia rakudo-moar 08ad4b: OUTPUT«[1 2 3]␤»
kjs_ sortiz: ah thanks, I’ll try that 00:26
I think I got it. I’ll work further on it. 00:27
sortiz kjs_, you can use a Hash directly in a for, the element will be a Pair 00:28
00:30 abaugher joined 00:32 kent\n joined, kent\n left, kent\n joined
timotimo yo 00:33
dalek ecs: e441a27 | skids++ | S17-concurrency.pod:
Pass 2 at react/supply blocks, clarify some grammar, add some examples
timotimo saw deadpool now 00:35
00:37 hankache joined 01:06 wamba joined 01:10 hankache left 01:13 _dolmen_ left 01:28 wamba left
SmokeMachine____ I think I found a bug on rakudo.. shouldn't be printing 2 different counters? www.irccloud.com/pastebin/s6erYoU2/ 01:43
and if I kill the first one (the bged one) the second starts counting... 01:45
01:45 espadrine left
geekosaur I think the only bug visible there is that your shell doesn't tell you the first one caught SIGTTOU when it tried to do output? 01:45
SmokeMachine____ the same thing happens if I run the code on two different terminals... 01:46
01:49 iloveunix joined
SmokeMachine____ I think this version is easier to see what I'm talking about... www.irccloud.com/pastebin/PE4rbDVa/ 01:49
geekosaur: ^^ 01:50
I don't know how, but it looks like one process is "pausing" the other process... 01:51
ugexe what if you dont use `-I. -MNode -MData` 01:55
01:55 labster left 01:57 tmch left 01:58 zpmorgan joined
ugexe without those it works for me. and thats because module loading/precomp uses locks, which is what is "pausing" your second process 01:58
SmokeMachine____ ugexe: removing the -MData from the 2nd one works for me too... www.irccloud.com/pastebin/PL4G21Ws/
ugexe: but shouldn't the first works too?
ugexe first what? 01:59
SmokeMachine____ the one with the -MData on both scripts...
ugexe get rid of the =I. and it probably will 02:00
-I.
dont misunderstand, they all *should* work. but its a known bug 02:01
llfourn rt.perl.org/Public/ # down for me 02:02
SmokeMachine____ oh! is it a known issue?! ok! thanks! 02:03
02:03 AlexDaniel joined
AlexDaniel huh! RT is down? 02:04
llfourn AlexDaniel: yep
AlexDaniel nice
:/
llfourn
.oO( where do I send the RT for that )
I just had a pub report to file too :( 02:05
try: perl6 -e 'sub MAIN($foo,*%) { }'
AlexDaniel llfourn: perhaps you can send an email and it will be processed once it is up 02:06
llfourn it probably would work
hmm it processed the email immediately 02:09
02:09 molaf_ joined
AlexDaniel llfourn: awesome bug by the way 02:12
llfourn XD
dalek kudo-star-daily: 839ed18 | coke++ | log/ (9 files):
today (automated commit)
02:23
llfourn is there a way to get the current Distribution object? 02:25
inside a distribution's bin/some-script.p6 in this case. 02:27
AlexDaniel llfourn: does it say Usage: -e '…' ? 02:32
why does it say*
llfourn: it seems like it treats the first arg as a file name or something?
and in this case it is ‘-e’? 02:33
geekosaur would suspect -e is implemented with a custom MAIN and addition of a second one breaks things?
ugexe use $?FILE to get the sha1 of the bin script, grep CURLI/dist/* for the one containing the sha1 ($?FILE), and from-json(slurp($that-file)). if its not installed then use from-json(slurp("../META6.json")). then Distribution.new(|%meta)
llfourn AlexDaniel: that usage -e thing is normal 02:34
what geekosaur said
ugexe: :D ahhhhh
AlexDaniel oh, right, it actually works 02:35
timotimo well, RT may be down, but at least synopsebot6 is happy
llfourn Ok what I want to do is get the version of the thing I am currently in so I can so in the USAGE 'blah blah v3.2' or whatever 02:37
02:38 telex left
ugexe i dont think it can know that 02:39
llfourn hmmm so how does it figure out %?RESOURCES if it doesn't already parse MET6.json 02:40
ugexe if you have it installed already and you run bin/myscript without -Ilib, then its not running in your local Distribution, but you arent really running the installed one either
its because if you are in a root module path its a ::FileSystem or whatever
so it'll use the resources locally before the installed i believe 02:41
llfourn so what if it's an ::Installation?
is there a way to do it there?
ugexe github.com/ugexe/zef/blob/master/l...t.pm6#L453 02:45
llfourn I guess that makes sense now that I think about. You don't want your bin/ stuff reading META6.json.
ugexe you can do that with a regular Distribution (doesnt have to be Zef::Distribution
llfourn ugexe: yep thanks. I'm going to do something like that in USAGE. $?FILE.parent.parent.child("META6.json").slurp.&from-json<version> 02:48
02:49 telex joined
llfourn $?FILE.IO* 02:49
ugexe for that specifically you might be able to use BEGIN { } to just do it once 02:51
i output the current config file being used (its dynamic) so i didnt think about that 02:52
llfourn ugexe++ that is a splendid idea
hmm maybe I should add this to CompUnit::Util 02:53
since I can find the meta from the repo I think. I could say given a compunit try and find its version. 02:55
02:57 labster joined
llfourn AlexDaniel: it actually works fine if you do '*%foo' instead of '*%' 03:04
it's sometime to do with printing usage with 0-length variable name
also *%vars in MAIN seem to be goofy in general in terms of printing out usage 03:05
03:11 kid511 joined 03:36 BenGoldberg joined 03:41 kid511 left, colomon joined 03:42 labster left
ugexe shouldnt the version be available without loading the meta though? 03:42
llfourn It would be nice. You could insert some variable at compile time into each compunit, assuming you have the MET6.json at compile time. 03:44
ugexe you can get at the namespace, seems like you should be able to get at the identity
llfourn $?DISTRIBUTION #?
ugexe well CURLI has a .resolve method. and there is *supposed* to be a $?PACKAGE
note that .resolve requires a newer rakudo 03:45
then you couuld theoretically do .resolve($?PACKAGE).distribution.ver
llfourn What do we call .resolve on? 03:46
$?PACKAGE?
03:47 adu joined
ugexe $*REPOS>>.can-install # you get the idea 03:47
its a method in compunit::repository::installation
llfourn oh ok
ugexe it will do the lookup for you 03:48
llfourn can ::filesystem do it too?
ugexe no
llfourn ah 03:49
ugexe it probably could, it would be trivial i'd think
llfourn ugexe: according to S02: $?MODULE Which module am I in? 03:50
ugexe zef does it. but it uses its own ::DependencySpecification to match against
llfourn I think $?MODULE means distribution? 03:51
ugexe it should just mean module not distribution, but you can look up a distribution from the module
llfourn what is a module then?
ugexe the key is it needs to include the version
llfourn there is already $?PACKAGE
$?MODULE ~~ CompUnit?
ugexe package { } vs module { }, but both would be in `provides` id imagine 03:52
so your lookup needs to look at provides
llfourn ugexe: ah anyway in S02: %?META The META6.json data associated with the module
ugexe now that would be nice 03:53
llfourn it should be doable -- though I'm not sure how it works for stuff in bin/ of a distribution 03:54
seeing as they are not loaded via CompUnit:: afaik
(which is where I want it)
ugexe it also goes well with Distribution as an interface
then it would be trivial 03:55
bin/ gets listed in `files` of the META6 that gets installed (the META6 that gets installed is slightly different from the original META6)
llfourn I see. 03:56
ugexe or maybes its resources, but it gets *added* in the install process
llfourn right but if you are just doing perl6 -Ilib bin/whatever.pl it might be tricky to set any compile time variables 03:57
03:57 noganex_ joined
llfourn but not impossible. There could just be a static check like $?FILE.parent.parent('META6.json').e in the case of directly running a .pl. 03:57
ugexe not if you have Distribution as an interface
role files { } role sources { } for example. now you can switch role files with whatever parses the correct META6 file 03:58
Distribution does LocalMeta { method meta { slurp(...) } }
llfourn hmm yeah I'm not really familar with how Distribution is used 03:59
I'm sure i will learn from your PR that implements these things :D
ugexe excellent, so think of how you would *want* to use it
llfourn well my curreny use case is doing have a bin/script.pl --version thing that just gives the right answer 04:00
(we could even include it as part of the default USAGE generation)
ugexe as long as you dont use --ver heh 04:03
(github.com/rakudo/rakudo/blob/nom/...ion.pm#L39 install wrapper will eat it)
llfourn ugexe: yeah... do we have to do that install wrapping thing? 04:04
ugexe i think so yes
you have 2 versions of a Distribution installed. which bin/ script wins? what if you want to use the older version? 04:05
04:05 adu left
llfourn I'd suggest that the newest one should just be in the path, then if you want the old one just use the absolute path 04:06
obviously it's a bit of work
ugexe it could be improved though; if it actually did like `use <bin/script.pl6>` then we could precompile the bin scripts
llfourn but most of the time you just want the newest one
ugexe (instead of running in a new proc)
llfourn yeah the new proc thing is what bugs me :\
ugexe because there has to be a perl6 entry point
to get the fastest start up time my bin script is just `use Zef::CLI;`, and all my MAINs are in Zef::CLI which gets precompiled as a module 04:07
mst needing to do an exec may not have to be forever, or at least not actually always required, but for the moment it's a good way to give us freedom of movement later
ugexe make the perl6 entry point as bare as possible
llfourn wonders if the wrapper is preserving STDIN 04:08
mst er. I'm unsure what you're imagining, but it doesn't read anything, so fd 0 will be handed on untouched 04:09
llfourn hmm ok I didn't know what's how run works
phew
mst try and avoid imagining extra problems that don't exist - programming is hard enough when you only have to deal with the real ones. 04:10
llfourn docs: $in, $out and $err are the three standard streams of the to-be-launched program, and default to "-" # :) 04:11
mst writing a wrapper that does an exec is a time honoured unix tradition and generally it's difficult to screw it up *subtly* 04:14
i.e. either it works or it's completely foobar
note: I have seen it be completely foobar, briefly. diagnosing that and proposing a fix (which lizmat then improved in the process of writing it competently, which I couldn't've done ;) is one of the few useful things I've done so far 04:15
04:16 MadcapJake1 joined
llfourn run isn't exec though afaik. But its default seems to emulate it. 04:16
mst++ for useful things :) 04:17
mst I'm reasonably sure we don't fork a child process and leave it around? or maybe my lack of knowledge is showing
do remember that if I ever appear to know what I'm talking about, it's usually because I'm talking about toolchain-y stuff which I know too much about from other areas combined with reasoning from first principles and frantically diving the rakudo sources to provide the illusion of knowing things about perl6 ;) 04:19
04:19 autarch joined
llfourn heh gotcha. I don't know much either. But you can definetly use run create a new process not exec. 04:20
if called wihtout args it just seems to attach the fds in all the right places
my $proc = run 'echo', 'Hallo world', :out; #eg
s/args/options/ 04:21
but that's a good point why doesn't it just exec..
m: say &exec 04:22
camelia rakudo-moar 08ad4b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_66z0AJuUF␤Undeclared routine:␤ exec used at line 1␤␤»
llfourn can we even do exec?
04:24 labster joined
mst ... surely ... 04:24
llfourn I know we don't have a direct way of doing fork
04:25 Ben_Goldberg joined
ugexe the wrapper indeeds leaves a process living, waiting for the spawned process to finish 04:25
mst huh
is there some writeup of the 'no direct fork' thing?
llfourn mst: docs.perl6.org/language/5to6-perlfunc#fork 04:26
04:26 BenGoldberg left
llfourn Nothing in Perl 6 exactly replicates the Perl 5 exec. shell and run are similar to Perl 5's system, but exec's behavior of not returning after executing a system command would have to be emulated by something like shell($command);exit(); or possibly exit shell($command); 04:26
ugexe exit run($*EXECUTABLE, @binaries[0].hash.<files><bin/#name#>, @*ARGS).exitcode
llfourn so there's our explanation
ugexe i believe the .exitcode should wait for the process to finish
mst that doesn't explain anything though.
llfourn well it exlpains why the implementor of the wrapper didn't use exec 04:27
ugexe probably should use Proc::Async?
llfourn ugexe: why?
ugexe i guess its still has to wait for the exitcode 04:28
llfourn run is blocking isn't it?
mst ugexe: if you've forked, you don't want the parent process to exit before the child does, because somebody may be waitpid()ing on you 04:29
llfourn ah no it isn't... I see what you mean :P
ugexe its blocking once its sunk, or something
llfourn ugexe: k thanks for the info :)
I wonder if by "Nothing in Perl 6 exactly replicates the Perl 5 exec" it means nothing in "rakudo" or that Perl 6 by desgin is really not meant to have exec... 04:30
04:31 adu joined
geekosaur exec isn't portable. I was under the impression that things like fork and exec would be left to an ecosystem POSIX module 04:31
and likewise for win32-specific things 04:32
llfourn ah right.. windows
geekosaur perl 5 has to do fairly disgusting things to emulate both on windows 04:34
mst oh, yes, I'd be perfectly happy with saying "this isn't going to be portable" 04:38
but "you can't have exec(), even when exec() is available on your platform and would have exactly the behaviour you want", seems ... distinctly LTA to me 04:41
04:50 tmch joined 04:55 Ben_Goldberg left 04:57 sortiz joined
sortiz \o #perl6 04:58
llfourn \o 04:59
05:00 molaf_ left
llfourn ugexe: putting BEGIN my $ver = $?FILE.IO.parent.parent.child("META6.json").slurp.&from-json<version>; 05:10
doesn't work because when you run it after intalling it aint relative to META6.json anymore :\
eg Failed to open file /home/travis/rakudo/install/share/perl6/site/META6.json
05:10 MadcapJake1 left
llfourn ($?DISTRIBUTION or w/e seems all the more necessary it seems) 05:11
ugexe right, you have to slurp all the files in site/dist, turn it into a meta6 hash, and determine if thats the distribution you want or not 05:19
llfourn :S 05:20
ugexe you determine that by looking at $?FILE, which will have a sha1 basename. that sha1 basename will be in the site/dist/whatever-file that you are looking for 05:21
under `files` or `resources` or some such as a `bin/script` => `<SHA1>` pair
llfourn ugexe++ for figuring that out 05:22
05:22 tmch left
ugexe maybe you can abuse RAKUDO_MODULE_DEBUG=1 output to skip slurping random files to find the right one 05:24
but from what i see its just shows the source files, not the dist file that would have the version info easy to find 05:25
llfourn I guess if I'm going to do the work to do that though I might as well try and implement %?META or w/e 05:26
a lot of work for just getting the 5 or so characters of the version :P
ugexe there are changes coming to the distribution layout / meta format i think 05:27
that will make this stuff easier
llfourn \o/
ugexe if you look at that wrapper code in ::Installation though it uses a .files method to look up a Distribution it looks like 05:28
that or a CompUnit that has a Distribution attached? 05:29
05:30 khw left
llfourn compunits have distributions attached? 05:30
ugexe well, they *could*: github.com/rakudo/rakudo/blob/nom/...on.pm#L314 05:31
llfourn ahh ha...they do
so yeah I could do a fun work around where I get the compunit from a module in the distribution 05:32
and grab the distribution from it to get the version
ugexe .files looks like it returns an array of META info
llfourn it's slightly odd but it should work
05:33 ka joined
ugexe so .files('bin/original-script-name')[0].ver 05:33
$?FILE wouldnt work if it was installed, as it would be the precomp sha1 path
but a fix for that is in the works too i think
llfourn right I think I have a hacky way forward at least :P
05:38 tmch joined 05:40 kaare_ joined 05:44 tmch left 05:47 Cabanossi left 05:50 Cabanossi joined
sortiz m: use Test; for $*REPO.repo-chain { for .loaded { say .short-name, .version } } 05:57
camelia rakudo-moar 08ad4b: OUTPUT«Testv6.c␤»
06:03 tmch joined
llfourn I've been using ES6 over the past day. It makes JS quite a lot better. Continuations, Promises, () => { } anonymous function syntax. 06:07
also.. lexical scoping with let and const
or at least they seemed lexical... I'm just reading now and they're calling it "block scoping" 06:10
I guess that's the same thing? 06:11
geekosaur sort of? I'd expect block scoping to allow use-before-"declaration" since the declaration gets re-scoped to the beginning of the block 06:12
but for all I know they expected block scoping and lexical scoping to be "the same thing" 06:13
06:14 anaeem1_ joined, anaeem1_ left
llfourn I've seen this "Also, just like var, variables declared with let are visible before they are declared in their enclosing block" but I don't get what they means 06:14
geekosaur what I said. basically 06:15
strict lexical scope would begin the scope at the point of declaration and end it at the end of the containing block
block scope means variables declared in the block come into existence *when the block does*
so they can be used before their declaration as long as you're in the same block 06:16
llfourn I had no idea that var/let did that...
I wonder why they made that decision
but you still get new copies of the variables for each invocation of the block I hope
I haven't tested that yet.. 06:17
geekosaur it's actually easier to implement if you make all such names part of the structure representing the block
ancient (into the 1960s) languages did that rather than have to track scope properly
come to think of it, perl 5 does that under some circumstances iirc --- only visible when doing some BEGIN hackery 06:18
llfourn makes sense I think.. but then don't you have to parse the block twice. Once to figure out what variables are declared and then once to actually compile it?
geekosaur no, you can compile the block as you go, it's the runtime representation that in block scope begins when the block comes into scope vs. when the declaration does 06:19
llfourn but maybe since JS allows globals it just figures that later on
yep I getcha
geekosaur JS beiing untyped there is no real reason to care about the declaration /per se/ at compile time 06:20
er, JS variables
06:56 hippie joined 07:02 CIAvash joined 07:16 adu left 07:19 pierrot joined 07:24 xiaomiao joined 07:25 pierrot left 07:26 skids left 07:35 pierrot joined, pierrot is now known as Guest15040 07:36 domidumont joined
masak I think there is a bit of confusion above as to let/const's "can be used before their declaration" 07:36
see dzone.com/articles/learning-es6-us...l-dead-zon
"The variables are created when their containing Lexical Environment is instantiated, but may not be accessed in any way until the variable’s LexicalBinding is evaluated." 07:37
what makes the TDZ a bit tricky is that the "temporal" and the "until" mean that (for example) a nested function is allowed to precede a `let` declaration (and use that variable), as long as it's *called* after the `let` declaration 07:39
07:40 domidumont left 07:41 domidumont joined 07:55 RabidGravy joined 07:59 dh7320 joined 08:06 firstdayonthejob joined 08:10 darutoko joined 08:16 geraud left 08:17 sammers joined 08:22 neilb joined 08:30 Actualeyes joined 08:45 iloveunix left 08:46 TreyHarris joined
moritz \o 08:48
08:48 zpmorgan left 08:49 SCHAAP137 joined 08:53 vendethiel left 08:55 rindolf joined, cgfbee joined 08:56 cfloare joined 09:01 neilb left
llfourn masak: Thanks for clearing that up. It's a bit weird but I get it now. 09:13
09:14 dh7320 left 09:15 FROGGS joined
masak it's weird. I greatly prefer Perl 6's semantics: uses need to be textually downstream of declarations. 09:18
but I suspect things like function hoisting made that not an option in JavaScript. 09:19
llfourn I don't really understand what is meant by hoisting 09:20
but ES6 seems to have a lot of really handy perl6ish features
like being able to something similar to some.method(:$foo,:$bar)
or at least being able to do that in hash construction 09:21
masak aye
function hoisting is what makes it possible to call a JS function before it was declared, if it was declared using the `function foo() {}` statement form 09:22
llfourn foo(); function foo() { ... } # you can do this? 09:23
masak conceptually, it's a little bit as if all the function declarations were "lifted" (hoisted) to the top of their surrounding block
llfourn: yes
llfourn ah ok
masak one of the uses of that is mutual recursion
llfourn yep makes sense
09:23 neilb joined
masak but it's useful just in general -- for example, many people prefer a style where they have the "mainline code" first, and utility functions later 09:23
llfourn m: foo(); sub foo() {}; 09:24
camelia ( no output )
masak note that Perl 6 doesn't do function hoisting. it's just lenient with calls, resolving them at the latest possible time during the compile
llfourn hmm right foo() will still fail at compile time if it isn't declared later 09:25
masak m: say abs(5); sub abs() { "OH HAI" }
camelia rakudo-moar 08ad4b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KFPHhufhUL␤Calling abs(Int) will never work with declared signature ()␤at /tmp/KFPHhufhUL:1␤------> 3say 7⏏5abs(5); sub abs() { "OH HAI" }␤»
masak m: say abs(5); sub abs($n) { "OH HAI" }
camelia rakudo-moar 08ad4b: OUTPUT«OH HAI␤»
masak note that there's already an `abs($)` in the setting. but ours in the program overrides that -- and Perl 6 won't know that until it's parsed the whole program 09:26
same thing with operators, incidentally
m: say 4 + 4; sub infix:<+>($, $) { "ha-haa!" } 09:27
camelia rakudo-moar 08ad4b: OUTPUT«ha-haa!␤»
llfourn yes subs declarations are lexical
masak aye 09:28
my point is that the call doesn't "bind" right away when we see it. it binds after we parsed the compunit and know about all the declarations.
llfourn understood. I've never actually seen that code. It creates a list of things to bind later? 09:30
or is it something to do with a special QAST node
masak not sure where it's implemented, actually 09:31
in 007, we install "deferred checks" that go back and check after the parse that everything resolves
09:32 azawawi joined
azawawi hi #perl6 09:32
llfourn o/
azawawi anyone know how to get lexically scoped variables information from rakudo?
llfourn azawawi: like get a list of them? 09:33
azawawi im working on something like this atom.io/packages/refactor
yup
in each scope
llfourn m: my ($a,$b,$c); .say for MY::.keys
camelia rakudo-moar 08ad4b: OUTPUT«$=pod␤!UNIT_MARKER␤$c␤EXPORT␤$_␤$!␤$b␤::?PACKAGE␤GLOBALish␤$¢␤$a␤$=finish␤$/␤$?PACKAGE␤»
09:33 polyfloyd joined
llfourn hmm in each scode 09:34
in what context is this code executing?
azawawi js will be executing a `perl6` process
like the linter is currently doing a `perl6 -c`
llfourn hmmm 09:35
azawawi wrap the source code at END { ... } ?
i remember there was a perl6 --target command line for that information 09:36
llfourn you can get a text version of the AST
with --target=ast
but will that help you? 09:37
it sounds like you want to descend each lexical scope in the file and get a list of variables in each one?
i suppose you could grab some of that from the AST 09:38
look for QAST::Var declarations
azawawi im looking at it... thanks :) 09:39
llfourn good luck :)
azawawi atom.io/packages/refactor # way too cool animation :)
llfourn pretty nice 09:40
09:40 pmurias joined
azawawi llfourn: it is perfect with one exception... line/column number information 09:42
llfourn HrrmHm
pmurias azawawi: is the info in QAST::Var.node incorrect?
llfourn pmurias: he's just looking at the text output which doesn't have it I don't think 09:43
--target=ast
azawawi yup
llfourn azawawi: maybe you can try and get your hands on the actual QAST...
and then tell me how you did it! 09:44
pmurias azawawi: did you try disabling the optimizer?
azawawi :)
09:45 kurahaupo joined, kurahaupo left 09:46 Actualeyes left
pmurias azawawi: --target=ast is for human consumption only 09:46
azawawi pmurias: so how do I get the line number information? 09:47
llfourn pmurias: is there some nqp code where you can get the perl6 compiler to return you a QAST tree given some code
pmurias I'm trying to work out the snippet to get to the QAST tree 09:48
azawawi i like also the message "For more information, see the perl6(1) man page." which rakudobrew doesnt install any man page lol
llfourn pmurias++ # It would be great to be able to do it 09:49
azawawi llfourn: the reason that i asked for `perl6 --target=something` is that some time ago we had that line number information while i was doing syntax highlighting via rakudo :) 09:50
llfourn oh ok so there used to be line number info?
azawawi .tell moritz irclog.perlgeek.de/perl6/search is forbidden (403)
yoleaux azawawi: I'll pass your message to moritz.
azawawi llfourn: yup because that's what an AST is :) 09:51
llfourn well it could be that :P
09:57 _dolmen_ joined
shadowpaste "pmurias" at 217.168.150.38 pasted "getting the QAST from some chunk of Perl6 code" (4 lines) at fpaste.scsys.co.uk/506347 09:57
llfourn pmurias: awesome! 09:58
azawawi: so I guess you need to write a nqp helper script that will descend the tree and give you what you want. 10:00
azawawi cool
pmurias++
llfourn+
llfourn you could do some pretty spectactular things in atom with that I bet 10:01
you might need to write/copy some stuff from rakudo to do lexical lookups 10:02
azawawi pmurias: your excellent rakudo-js could work wonderfully with atom given that electron is chromium 10:08
pmurias: it means we could run it natively and that's way faster than the currrent `perl6 -c` process 10:09
llfourn that would be pretty nice
10:10 _dolmen_ left
azawawi also it could be a perfect match for my `Electron` module :) 10:10
10:10 Actualeyes joined
azawawi now im using a JSON::RPC bridge to call electron js API 10:10
10:11 Red_ joined
nine How can loading a precompiled NativeCall error out with "Missing or wrong version of dependency '&return_hash_for'" when return_hash_for is defined _in_ NativeCall? 10:11
Red_ hi everyone
azawawi once rakudo-js is working, electron can host it and native Perl 6 can be truly written as desktop web apps :) 10:12
Red_ How can we move people from perl5 to perl6?
nine Red_: do we want to?
10:13 tmch left
Red_ nine: If Perl6 is the future, why not? 10:13
llfourn I'd say we'd like to move python, ruby people just as much as perl people :)
or people that don't know any language yet
nine Red_: if Perl 6 is _the_ future of Perl, people will come one their own. 10:14
masak Perl 5 still has speed, stability, features, and modules on Perl 6. there are plenty of legitimate reasons not to move yet.
nine There are fewer reasons for not using both ;)
Red_ PHP, Perl, Python, Ruby. I hope that one day all 4 of these languages gets merged into one... 10:15
masak why?
llfourn with all these nice things in ES6 I am move likely to move p5 code to node than p6
masak heh. 10:16
10:16 pmurias left
Red_ in a world of Django, Rails and PHP where will Perl6 stand? 10:16
llfourn Red_: Django and rails and PHP are all losing ground to other things as far as I can tell 10:17
masak it will stand with web framewords of its own?
llfourn and Perl6 is growing and improving
10:18 pmurias joined
azawawi llfourn: es6 is not that perfect btw yet... im using it already in atom-perl6-editor-tools :) 10:19
llfourn azawawi: do you have any good JS atom workflow
10:19 Red_ left
llfourn im just trying out atom -- what's the best way to run a node file? 10:19
azawawi llfourn: install `script` 10:20
llfourn azawawi: right this looks like what I'm missing
azawawi llfourn: script has already perl6 support :)
llfourn azawawi: I think I'll get used to it in node and then see if atom is a better fit than emacs for p6 10:21
azawawi it is :)
Perl 6 FE is way too cool
llfourn I am mostly just missing the way emacs feels
azawawi github.com/MadcapJake/language-perl6fe 10:22
atom.io/packages/atom-perl6-editor-tools
llfourn like where it puts my cursor when I move to different frames
I'm excited to see what the above^ can do
10:23 kjs_ joined
azawawi llfourn: install github.com/DanBrooker/file-icons and minimap ... and you'll never look back :) 10:24
llfourn will do thanks
azawawi llfourn: mind you... emacs and vim are better match for editing big data files
llfourn: s/better/a better/
pmurias azawawi: putting rakudo-js in electron/atom plugins/react.native/other cool places is definietly part of the plan for Perl 6 10:35
azawawi pmurias: so when does the grant start? :) 10:36
pmurias hopefully soon, it's currently voted on 10:37
10:41 RabidGravy left
pmurias azawawi: I'm hoping for next week 10:43
azawawi pmurias: good luck :)
pmurias thanks 10:44
Hotkeys Grant? 10:45
10:46 pmurias_ joined
dalek kudo/nom: 138441c | lizmat++ | src/core/Buf.pm:
Make ~|, ~& and ~^ about 600x faster

  - for two 10K buffers, YMMV for larger / smaller buffers
  - no longer creates work copies of buffers in P6 space
  - buffers of unequal length just copy (~| and ~^) or set to 0 (~&)
10:48
10:49 pmurias left 10:50 vendethiel joined
azawawi Hotkeys: news.perlfoundation.org/2016/02/ian...plica.html 10:51
lizmat afk for most of the rest of the day& 10:54
10:54 TEttinger left 10:57 azawawi left 11:10 Skarsnik joined
Skarsnik Hello 11:10
sortiz \o Skarsnik
cognominal m: my class A {}; say A.WHICH; say A.^attributes; { my class A { has $a }; say A.WHICH; say A.^attributes }; say A.^attributes 11:13
camelia rakudo-moar 138441: OUTPUT«A␤()␤A␤(Mu $!a)␤()␤»
cognominal Hi. Two different homonymous classes with same .WHICH This must be wrong. 11:14
On a different but related matter, I think that class default scope should be lexical in interactive mode. 11:15
llfourn I guess Mu.WHICH isn't quite right? 11:16
cognominal m: say Mu.WHICH 11:18
camelia rakudo-moar 138441: OUTPUT«Mu␤»
cognominal m: say Mu.WHICH does True
camelia rakudo-moar 138441: OUTPUT«Mu␤»
cognominal oops
m: say (Mu does True).WHICH 11:19
camelia rakudo-moar 138441: OUTPUT«Cannot use 'does' operator with a type object.␤ in block <unit> at /tmp/o7nIoRqmlQ line 1␤␤»
cognominal m: say (1 does True).WHICH
camelia rakudo-moar 138441: OUTPUT«Int+{Bool}|1␤»
cognominal m: say (1 but True).WHICH
camelia rakudo-moar 138441: OUTPUT«Int+{<anon|68546912>}|1␤»
cognominal m: say (Mu but True).WHICH 11:20
camelia rakudo-moar 138441: OUTPUT«Mu+{<anon|62720752>}␤»
11:23 pmurias_ left 11:25 labster left 11:39 wamba joined 11:53 tmch joined 11:57 neilb left
masak m: say ((1 does True) does False).WHICH 12:01
camelia rakudo-moar 138441: OUTPUT«Int+{Bool}+{Bool}|1␤»
12:05 rindolf left, musiKk joined
timotimo o/ 12:08
12:14 vendethiel left 12:18 vendethiel joined 12:39 vendethiel left 12:46 dbrunton joined 12:49 dbrunton left 12:50 wamba left 12:52 wamba joined, cire` joined 12:54 musiKk left 12:55 musiKk joined, vendethiel joined 12:59 MadcapJake1 joined 13:07 cire left 13:08 cire` left 13:16 wamba left 13:17 baest joined 13:25 yqt joined 13:33 kid51 joined 13:43 brrt joined 13:45 MadcapJake1 left 13:57 MadcapJake1 joined 14:01 wamba joined, QORRiE joined 14:14 MadcapJake1 left 14:17 RabidGravy joined 14:18 _dolmen_ joined 14:20 wamba left, wamba joined 14:23 CIAvash left 14:28 Skarsnik left, musiKk left 14:31 Skarsnik joined 14:49 rindolf joined 14:57 brrt left 15:00 neilb joined 15:03 neilb left 15:09 sena_kun joined, sena_kun left 15:11 Actualeyes left 15:19 firstdayonthejob left 15:20 zpmorgan joined 15:27 _dolmen_ left 15:31 khw joined 15:48 secwang joined 15:50 sftp joined 15:53 sufrostico joined, brrt joined
RabidGravy is the resolution of Supply.interval milliseconds? 15:59
psch m: Supply.interval(1).tap(-> $_ { say now }); sleep 5 16:00
camelia rakudo-moar 138441: OUTPUT«Instant:1456588847.753151␤Instant:1456588848.753479␤Instant:1456588849.754596␤Instant:1456588850.755744␤Instant:1456588851.756780␤»
psch not sure how to interpret "resolution" there
m: Supply.interval(.1).tap(-> $_ { say now }); sleep 1
camelia rakudo-moar 138441: OUTPUT«Instant:1456588881.599752␤Instant:1456588881.699183␤Instant:1456588881.799324␤Instant:1456588881.899514␤Instant:1456588881.999679␤Instant:1456588882.099817␤Instant:1456588882.199981␤Instant:1456588882.300210␤Instant:1456588882.400348␤Inst…»
16:02 brrt left
RabidGravy perl6 -e 'my $a = 0; Supply.interval(0.01).tap({$a++}); sleep 1; say $a 16:03
m: my $a = 0; Supply.interval(0.01).tap({$a++}); sleep 1; say $a
camelia rakudo-moar 138441: OUTPUT«99␤»
RabidGravy so good for hundreds
psch m: my $a = 0; Supply.interval(0.00001).tap({$a++}); sleep 1; say $a
camelia rakudo-moar 138441: OUTPUT«1␤»
psch m: my $a = 0; Supply.interval(0.001).tap({$a++}); sleep 1; say $a
camelia rakudo-moar 138441: OUTPUT«932␤»
RabidGravy so sorta kinda 16:04
16:12 zpmorgan left
RabidGravy just about good enough for 96ppqn for a sane tempo 16:12
psch heh, the repo i played around with just went with Supply.interval(1/8) 16:16
16:17 xpen joined
psch i probably showed that off already, it's definitely broken in current nom, and i'm not sure it'd work on the jvminterop branch either vOv 16:17
16:18 xpen left
psch m: my $a = 0; Supply.interval(0.001).tap({$a++}); sleep 1; say $a # curious about variance... 16:18
camelia rakudo-moar 138441: OUTPUT«934␤»
psch m: my $a = 0; Supply.interval(0.001).tap({$a++}); sleep 1; say $a # curious about variance... 16:19
camelia rakudo-moar 138441: OUTPUT«937␤»
timotimo relying on exact timing from a Supply.interval is likely foolish. running a measurement on camelia is also a very bad idea, as the server camelia runs on also does other stuff
psch timotimo: oh, it's not about exact measurements for me right now, just a completely unscientific first impression :) 16:20
timotimo i'd even go as far as to call it anti-scientific :P
RabidGravy I'm calling it "close enough for jazz"
psch haha
timotimo hehe, jazz 16:21
RabidGravy Roger Linn spent years perfecting the "swing" in the MPC devices and then the DSI Tempest, we just get it for free
I'll leave the 960ppqn resolution to the hardware though 16:22
16:23 [Tux] joined
psch wonders what ex tempore (or similar) support on that front 16:24
i've been meaning to have an actual look at that for a year or so, but (1) lisp and (2) tuits... vOv
timotimo you wanna see how my local machine fares with the 0.001 thing?
psch sure 16:25
i don't have a local rakudo atm
timotimo gist.github.com/timo/fcc7e78808dd2dda89ca
RabidGravy mine's actually a lot worse
psch huh
jnthn Hah, mine's owning it: gist.github.com/jnthn/77ad2eed127aafe4f1c0 16:26
timotimo wow, windows!
jnthn was a little surprised :) 16:27
timotimo i've updated mine with more results
16:28 sufrostico left
timotimo mine basically makes a sawtooth wave 16:28
RabidGravy doesn't Windows have a millis event in the eventloop thingy (years since I touched any of that) 16:29
16:31 ilbelkyr joined 16:32 nowan_ joined 16:34 FreezerburnV joined 16:37 nowan joined 16:38 nowan_ left 16:44 skids joined, musiKk joined 16:45 ka left 16:50 Ben_Goldberg joined 16:52 BenGoldberg_ joined 16:54 kjs_ left 16:55 Ben_Goldberg left 16:56 FreezerburnV left 17:03 kent\n left 17:04 skids left, kent\n joined, kent\n left, kent\n joined, rburkholder joined, kjs_ joined 17:06 yqt left, kjs_ left 17:10 sjoshi joined 17:19 Ven joined
Skarsnik hu, what kind of error is that 17:22
17:22 kid511 joined
Skarsnik ===SORRY!=== 17:22
Missing serialize REPR function for REPR VMException
17:23 kid51 left, kjs_ joined 17:28 kurahaupo joined, kurahaupo left
ugexe the 'ol randomly change things until it works error 17:30
17:30 zakharyas joined
RabidGravy Skarsnik, it almost certainly means that you are doing something in the compile time mainline that is causing a Failure 17:32
such as "try require Foo" which seems quite common
17:33 kurahaupo joined
RabidGravy horrible, horrible error message though, almost my least favourite after "cannot invoke this object" 17:33
Skarsnik Oh must have been UA when missing the ssl module 17:34
because I don't have it anymore x)
RabidGravy that's fixed in H::UA now
Skarsnik maybe, but I am using a old rakudo
or should I forget to panda update?
17:34 ka joined
FROGGS try require Foo shouldnt return anything when being sink 17:35
RabidGravy it was indeed "try require IO::Socket::SSL" in the mainline
Skarsnik I just installed H::UA
RabidGravy well it definitely causes that error in the mainline
17:38 wamba left 17:46 sjoshi left 17:47 sufrostico joined 17:48 musiKk left
timotimo "panda update" doesn't actually update packages, just the ecosystem list 17:58
18:00 sufrostico left
Skarsnik oh just a list 18:01
timotimo yeah
Skarsnik hm \w does not catch line return? 18:02
18:02 firstdayonthejob joined
timotimo m: say "\n\n\n".comb(/\w/).perl 18:02
camelia rakudo-moar 138441: OUTPUT«().Seq␤»
timotimo seems like
m: say "\n\n\n".comb(/\W/).perl
camelia rakudo-moar 138441: OUTPUT«("\n", "\n", "\n").Seq␤»
Skarsnik m: say "dd \n\r\n\n dd" ~~ /dd\w+dd/ 18:04
camelia rakudo-moar 138441: OUTPUT«Nil␤»
timotimo i think \w is for "horizontal whitespace" and \s is for "whitespace", eh?
and then \v is for "vertical whitespace" if i'm not mistaken
Skarsnik m: say "dd \n\r\n\n dd" ~~ /dd\s+dd/ 18:05
camelia rakudo-moar 138441: OUTPUT«「dd ␤
geekosaur mrrr
looks to me like \w is the same as in perl 5: word characters 18:06
Skarsnik Oh yeah 18:08
nvm
w = word, not whitespace xD
18:10 CIAvash joined 18:11 BenGoldberg_ left
psch m: say " \n" ~~ /\h\v/ 18:12
camelia rakudo-moar 138441: OUTPUT«「 ␤」␤»
18:21 BenGoldberg_ joined
lucs A WHAT is showing me 「(Foo])」 -- what's that closing square bracket? 18:26
Skarsnik a capture 18:27
huggable, Capture 18:28
huggable Skarsnik, class Capture [Argument list suitable for passing to a]: doc.perl6.org/type/Capture
Skarsnik hm
or it's an ast. I am not sure, it's the type a regex return you when you capture thing 18:29
lucs Uh, okay. 18:30
timotimo uh, what 18:32
that's weird
moritz Skarsnik: that's a Match 18:33
yoleaux 09:50Z <azawawi> moritz: irclog.perlgeek.de/perl6/search is forbidden (403)
moritz is that forbidden for anybody else?
timotimo i get the search page
lucs No problem here either. 18:34
moritz too
.tell azawawi cannot reproduce (re 403 for irclog.perlgeek.de/perl6/search); if the problem persists, please /msg me your public IP address
yoleaux moritz: I'll pass your message to azawawi.
ugexe m: for ^5 { next() R, say $_ if 1; say 666; } # i like being able to put the next() before the message it should produce sometimes. is there a better way to express it? 18:38
camelia rakudo-moar 138441: OUTPUT«0␤1␤2␤3␤4␤»
ugexe as to why i like to do that, its usually because the message itself is long and would otherwise conceal the small `next` itself 18:39
if it were on the right side
moritz just put it on the next line
that way the long message doesn't obscure the next 18:40
ugexe i could, but many times the conditional is postfix and thus on the next line
moritz if the message is so long that you fear it obscures the next, you shouldn't use a postfix conditional 18:42
it seems to me you're stretching some shortcuts to (and maybe past) their limits, but instead of recognizing that, and stopping to use the shortcut, you're looking for more tricks to stretch those limits 18:44
which won't lead to readable code, in my experience 18:45
18:49 cdg joined 18:53 zakharyas left, atweiden joined
atweiden flussence: with the libtommath 1.0 release, are you building moarvm with system libtommath? 18:54
18:55 tmch left
atweiden i ask because you note in your ebuild "Note that the bundled libtommath has patches that have been sent upstream, but aren't in any released version; 0.42 will compile but causes slight bugs." 18:56
18:56 AlexDaniel left
flussence didn't know it had a release, I'll go try it 18:56
it *can* build with the system libtommath already, I've just force-disabled the option due to that bug
ugexe i suppose it just depends. for debugging/output/unimportant details of a routine i prefer to be as concise as possible, letting the important bits express themselves verbosely and (to me) improving the overall readability 18:59
19:00 kjs_ left
rudi_s Hi. I know you can exclude a function from a stacktrace but I can't find it anymore. Any ideas? 19:03
flussence sub foo() is hidden-from-backtrace
rudi_s Thank you! 19:04
rudi_s feels stupid, first hit in the search doc.perl6.org - but didn't find it using $SEARCH-ENGINE.
19:08 kent\n left
rudi_s Can I modify the message of an existing exception? 19:08
19:09 kent\n joined 19:14 yqt joined
FROGGS rudi_s: do you ask if you can do it technically or do you ask whether this will be a back-compat breaking change? 19:22
rudi_s FROGGS: Technically. I want to include additional information in a X::Proc::Unsuccessful exception. 19:24
FROGGS rudi_s: you can augment it at first
rudi_s: and also augment the class/method that throws it 19:25
and when you are happy, you move your changes to the rakudo sources, and create a pull request
rudi_s FROGGS: It's not because there's an issue in rakudo. I just want to add additional information which are then later used in my program. 19:26
Hm. Now that I think about it, maybe it would be nice to have in Rakudo. I want to add the original command to the exception message. 19:27
FROGGS then perhaps subclass it, and throw your own
ohh...
sounds helpful indeed
19:27 Ven left 19:28 rindolf left 19:32 kurahaupo left 19:40 secwang left 19:43 secwang joined
ugexe maybe should be added to Proc object itself 19:45
19:45 Ven joined
RabidGravy yeah, that would make sense 19:46
rudi_s That was the plan. 19:48
Btw. I'm confused. Should run 'foo'; cause an exception? 19:49
:m run 'foo';
m: run 'foo';
camelia rakudo-moar 138441: OUTPUT«run is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in sub run at src/RESTRICTED.setting line 14␤ in block <unit> at /tmp/EQC2apOtT1 line 1␤␤»
rudi_s Obviously it failed to start the program so I'd except an exception, but it seems to work fine.
timotimo well, it gives an exception on camelia 19:50
timo@schmetterling ~> perl6 -e 'run "false"'
The spawned process exited unsuccessfully (exit code: 1)
Skarsnik false is a real cmd
19:51 secwang left
rudi_s > run 'wtf' 19:51
Proc.new(in => IO::Pipe, out => IO::Pipe, err => IO::Pipe, exitcode => -1, pid => Any, signal => 254, args => ["wtf"])
(The args part is from my workings on a patch.)
Hm, even more confused: 19:52
$ ./perl6 -e 'run "foo"'
The program foo exited unsuccessfully (exit code: -1)
in block <unit> at -e line 1
But when I run that in perl6's interactive mode it doesn't raise an exception.
Ok, it works in a normal program. 19:53
FROGGS: Proposed patch regarding the arguments: pbot.rmdir.de/awHAobg1S4lbaTPxu-Ka7g 19:54
ugexe i wouldnt just dump $.proc.args, that could be a pretty long line of text 19:55
rudi_s Basically that's the idea. Personally I often want to know which exact program failed to run - and normally I have to fall back to strace. Printing everything sounds like a good solution to me. 19:56
ugexe its a good idea if you only run process with a few arguments
if you run processes with many arguments, often times long such as absolute paths, it would be confusing 19:57
timotimo if you have code that tries to run, it can catch the exception and just decorate it with the extra information from local variables
ugexe if you want to dump all of that, just catch the exception and dump if if you want
its like the JSON exception that dumps the entire json data structure, so most times you dont even know it just dumped out an exception. just that a bunch of json was printed on your screen for some reason 19:58
FROGGS I +1 outputting the cmd that failed by default... I'd just print it below the known error message 19:59
19:59 cdg_ joined
RabidGravy I'd actually go for putting it in the exception and not printing it 20:01
20:02 cdg left
rudi_s Like this? "The spawned process exited unsuccessfully (exit code: $.proc.exitcode())\n" ~ "Process arguments: {$.proc.args}" 20:02
That doesn't help me as user of the program which just raised the exception.
ugexe it does if its caught and then output
RabidGravy "/usr/lib64/erlang/erts-6.3/bin/beam.smp -W w -A 64 -P 1048576 -K true -B i -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.5.7/sbin/../ebin -noshell -noinput -s rabbit boot -sname rabbit@coriolanus -boot start_sasl -config /etc/rabbitmq/rabbitmq -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file," 20:03
/var/log/rabbitmq/rabbit@coriolanus.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@coriolanus-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.5.7/sbin/../plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@coriolanus-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/v
ar/lib/rabbitmq/mnesia/rabbit@coriolanus" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672"
rudi_s But I want to get the output per default.
RabidGravy just saying
20:03 cdg_ left
rudi_s RabidGravy: So? Looks good to me. I can immediately see which program failed. 20:03
ugexe CATCH { when X::Proc::Unsuccessful { say $_.proc.args }; };
Hotkeys Morning nerds
rudi_s ugexe: But the program must do this. And most of them won't.
RabidGravy no
ugexe that is a fault of the program 20:05
rudi_s My work flow without full output is always this: 1.) swearing that the programm is stupid, 2.) starting the program with strace -e execve -f ..., 3.) finding the command line - I'd like to skip that step.
Sure, but I don't see the problem of providing good defaults. If you don't like the long exception, just catch it and replace it with something shorter.
ugexe because thats backwards compared to catching it and outputting the additional details as needed if you ask me 20:06
RabidGravy or if you want the full command just catch it and print it
20:06 rindolf joined
rudi_s RabidGravy: And how do I do that for a program I don't write? Sure I can patch it, but that doesn't help if it's distributed on the system and I don't have root access. 20:07
ugexe: But it helps all users who need the additional information. Which is IMHO everybody who stumbles over that exception.
RabidGravy sorry, I'm confused
rudi_s "failed to start program" <- how is that useful? - it's like "failed to open file" <- wow, thanks, I really know whats going on. 20:08
I want to see "failed to start /usr/bin/program-which-is-not-installed" or "failed to start /usr/bin/foo file-which-doesnt-exist" so I know exactly what's going on.
RabidGravy right, but you can catch the exception and it will have which command it is, i don't understand how that requires changing the program
timotimo can't we just extract the first argument, which ought to be the command name?
RabidGravy you want tto change the way the exception is constructed, changing it so that it has the command 20:09
rudi_s RabidGravy: I'm not talking about what I'd do in the programs _I_ write, but what happens when other people use run in their programs without catching the exception.
RabidGravy so you put that it in the exception, you catch the exception
20:09 kurahaupo joined
dalek kudo/nom: b7db53a | (Salvador Ortiz)++ | src/Perl6/Compiler.nqp:
Multi-line REPL: Detect grammar's failed goals.

That allows the following session:
  > my $a = <
241e5e5 | lizmat++ | src/core/IO/ (2 files): Make .slurp-rest(:bin)/.slurp(:bin) 8x faster
for a 2.5MB file
More importantly, it no longer allocates a new Buf to accomodate for data already read + new chunk. So this is now *much* more memory friendly than before. All thanks to wonder that is Buf.push.
20:09
timotimo anyway, exceptions are now a thing of 6.c conformance; adding new attributes, is that fine? probably only for 6.d, eh?
RabidGravy that isn't *your* problem, or mine or anyone apart from the author of the program
rudi_s timotimo: I'd prefer the full command line. 20:10
20:10 dalek joined, ChanServ sets mode: +v dalek
rudi_s RabidGravy: Well, it's mine as a user of Perl6 programs. 20:10
ugexe i'd argue the average user who isnt a develoeper is not interested in the full path of the command that failed. if you are catering to developers, then catch the exception and add stuff they would be interested in 20:11
RabidGravy sticking 2048 characters of garbage into an exception message is profoundly unhelpful to most people
rudi_s Of course the author could have checked the exception and whatever. But I just want to make it easier for all users of the program.
ugexe maybe it only seems easier to you, a developer 20:12
rudi_s Of ourse.
If a program raises an exception then it won't be easy for the user even if we don't print the full path.
RabidGravy I'll paste that rabbitmq command line again if you insist and you tell me how that is useful to a *user*
ugexe joe blow who doesnt care about the details will likely be able to do more with a short sensible default than some multi line monster 20:13
rudi_s RabidGravy: It's useful because he can paste it and send it in the bug report to the dev without starting strace.
20:13 domidumont left 20:14 buharin joined
psch i'd suggest RAKUDO_VERBOSE_EXCEPTIONS 20:15
ugexe the developer who isnt catching the exception to do that themselves probably isnt the developer who cares about bug reports
psch as env var
rudi_s ugexe: Are you serious?
psch otoh, that might as well be something a given developer wants to put into their script vOv
rudi_s I really really like to program without ever catching any exception which will "never" occour. Why should I make my program more complicated with useless exception checks when it can just die if an unlikely error occurs. And when that happens, I really want to get the full output so I can fix it. 20:16
timotimo actually i wouldn't mind if the exception had a field for the args
but putting it into the output by default - especially in full - i wouldn'n be for 20:17
FROGGS ugexe: did you ever write services that run unattended and where your only source of information is log files?
wrote*
20:18 darutoko left
FROGGS timotimo: that's like "Unable to fetch file" without stating the url or protocol or anything 20:18
timotimo hmm
ugexe yes. i generally log the commands I run when the settings are at a somewhat high verbosity level
timotimo but why would you not catch the exception close to the code that uses &run?
psch fwiw, i don't like using programs that give me untreated, language specific exception
timotimo yes, exactly 20:19
mspo rudi_s: let it crash
psch so i do agree with ugexe here. if the developer doesn't anticipate a &run call ever failing he's not paying enough attention
mspo oh wait, wrong channel :)
rudi_s timotimo: Because the developper is/was stupid or lacy.
Still I was user, want to get the information I need to debug this issue.
Like FROGGS said, it's like "could not open file". Absolutely useless error message. 20:20
timotimo it also gives you a backtrace
rudi_s And I want software (and languages) which generate helpful error messages per default. And to debug the issue, I need the path.
timotimo hmm
rudi_s timotimo: Sure, and what? I don't speak perl6 (assuming I'm a normal user/sys admin) and can't read the code. 20:21
psch rudi_s: note i don't disagree with having the field, but i don't think always printing (potentially 2**11 chars long) command lines is the right idea
hence RAKUDO_VERBOSE_EXCEPTIONS
timotimo rudi_s: well, hopefully methods and subs are named well by the developer
psch i'm pretty sure there's other Exceptions that could benefit form that, if not now then later
rudi_s psch: RAKUDO_VERBOSE_EXCEPTIONS doesn't help, because I (as user) don't know about it.
timotimo i.e. "load_configuration_file" rather than "a"
FROGGS timotimo: often enough the files you work with or the commands you rung are kinda dynamic... and you need a way to get information to reproduce the case
what if that command only fails one out of 100 runs?
psch eh, nevermind then vOv 20:22
timotimo k
FROGGS how do you debug that just with the stack trace
rudi_s timotimo: That's besides the point. I want sane defaults even if (or especially when) the programmer was lazy/stupid. I want the language to help _me_, the user of the program.
FROGGS aye
psch thinks there's different definitions of "user" at work here
timotimo 'k
psch which is part of what makes this an actual argument
ugexe you mean _you_, a developer who uses the program. not _regular user_, the user of most programs
FROGGS psch: surely
psch: if we had dba we could generate messages for the "real user" 20:23
psch when i say "user" i mean the person who i can tell to type < RAKUDO_VERBOSE_EXCEPTION=1 $program > instead of < $program >, because they don't have any idea why it doesn't work in the first place
FROGGS: oh, :dba yeah 20:24
that's something i wanted to look into as well
iirc there was even a bug that stopped happening with :dba or something..?
rudi_s When I say user, I mean a person who knows to use a command line but has no idea about perl6 or what exactly the program is doing. Think of an sys-admin or a programmer.
ugexe why not just dump :err too?
FROGGS psch: it's not that easy... I've got a middleware service and I cant just "rerun the program"
rudi_s Of course there might be users which are discomforted by a longer error message, but I think the debug aid with the full output is more important than that. 20:25
FROGGS ... not when something starts to fail after weeks of incoming traffic from foreign company servers
so, the default should add enough information that you can start investigating
rudi_s +1
FROGGS imagine a "file not found" without the actual filename :D 20:26
and it really is the same here
psch FROGGS: like < mkdir $nested-path > ?
RabidGravy yes, but not a full unadorned possibly multi line bunch of command like
psch without -p that is
20:26 _dolmen_ joined
FROGGS psch: what do you mean? 20:27
20:27 kurahaupo left
FROGGS psch: it should print the path it tried (and failed) to create, no? 20:27
psch $ mkdir bar/baz/quux
mkdir: cannot create directory ‘bar/baz/quux’: No such file or directory
ugexe run 'perl6', '-e', $large-perl-script.IO.slurp
psch FROGGS: it does, yes, but doesn't say which level doesn't exist
that error might mean bar doesn't exist or bar/bar doesn't exist
FROGGS psch: yes, but you can check now easily without rerunning the program
and that's my point 20:28
psch well, i'm definitely back at "i don't have a strong opinion either way", from "i like this one solution" :) 20:32
the thing with mkdir, in my opinion, is that it still doesn't tell me enough
similar to a Proc::Unsuccessful that only tells me the line number and not the exact args 20:33
line number of the p6 program that is
mind, mkdir isn't supposed to be an example for what to strive for, but an example of what people deal with just fine
rudi_s I've just created a pull request for rakudo and I'd really like to get it merged. 20:34
ugexe mkdir isnt quite the same because its argument/exception output will always be a single line 20:36
run 'perl6', '-e', $large-perl-script.IO.slurp # it does not have the potential for gargantuan exception messages like this 20:37
FROGGS then we limit it to 100 chars 20:38
20:39 Ven left
RabidGravy or less, such that it would fit in one line of an average terminal 20:39
20:40 rburkholder left 20:42 CIAvash left
rudi_s Could we at least say something like 300 or so? 100 is way too short to be useful. - I'm against cutting the output, but if we do, could we cut it in the middle, so the file names (which are most of the time at the end) are still present? 20:42
20:43 pmurias joined
pmurias maybe it would make sense to print the command line arguments to a failed executions if they are short? 20:43
RabidGravy why is 100 too short to be useful 20:44
20:44 Ven joined
lizmat good *, #perl6! 20:46
pmurias lizmat: hi
rindolf lizmat: hello.
lizmat pmurias rindolf o/
rindolf lizmat: how are you? 20:47
20:48 kaare_ left
lizmat pretty good: spent most of the afternoon at a NL comic-con like event (Stripdagen) 20:48
rindolf lizmat: ah, nice. 20:49
lizmat: I quite enjoy Sci-Fi/Fantasy/etc. cons.
lizmat: did you take any photos? 20:50
lizmat alas... none: too busy nosing around comics and associated memorabilia :-)
rindolf lizmat: ah. 20:51
lizmat still another day tomorrow... but we won't go there then. 20:52
20:54 Ven left
rindolf lizmat: ah. 20:54
atweiden do p6 sub signatures allow for referencing parameters in the sig, e.g. 20:55
sub path-is-child-of-from(@from where *.elems == @path.elems, @path where *.elems == @from.elems) {*}
is there some other way to do that in the sig?
20:56 Ven joined
buharin hey 20:56
can I put smh like has constant $?MAIN_LINK
in my class?
I get an error
psch m: sub f(@a, @b where @a.elems == @b.elems) { }
camelia ( no output )
psch m: sub f(@a, @b where @a.elems == @b.elems) { }; f [1,2], [3,4,5]
camelia rakudo-moar 7c6254: OUTPUT«Constraint type check failed for parameter '@b'␤ in sub f at /tmp/BA4a_R6W1F line 1␤ in block <unit> at /tmp/BA4a_R6W1F line 1␤␤»
FROGGS buharin: dont use the question mark twigil for now 20:57
buharin ok
atweiden psch: got it
buharin FROGGS, how to make class constant 20:58
FROGGS m: class Foo { my constant $.bar = 42 }; say Foo.bar
camelia rakudo-moar 7c6254: OUTPUT«5===SORRY!5=== Error while compiling /tmp/14e4eVkE2o␤Variable $.bar used where no 'self' is available␤at /tmp/14e4eVkE2o:1␤------> 3class Foo { my constant $.bar7⏏5 = 42 }; say Foo.bar␤»
FROGGS m: class Foo { my $.bar = 42 }; say Foo.bar
camelia rakudo-moar 7c6254: OUTPUT«42␤»
FROGGS m: class Foo { constant $.bar = 42 }; say Foo.bar
camelia rakudo-moar 7c6254: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ycaTKnkI8l␤Variable $.bar used where no 'self' is available␤at /tmp/ycaTKnkI8l:1␤------> 3class Foo { constant $.bar7⏏5 = 42 }; say Foo.bar␤»
FROGGS m: class Foo { my $.bar := 42 }; say Foo.bar
camelia rakudo-moar 7c6254: OUTPUT«42␤»
buharin use :=?
FROGGS buharin: binding 20:59
buharin: this binds the constant value 42 to the class attribute
buharin ok
21:00 labster joined
ugexe sounds like i need to redo some project benchmarks soon 21:03
dalek kudo/nom: cc0472b | FROGGS++ | src/core/CompUnit/PrecompilationRepository.pm:
fix precompiling a file that outputs to stdout

A file that gets precompiled outputs the hash and path of the compilation units it depends on. The process that invoked the precompilation records it and puts it into a file. Writing to stdout can therefore mess with this mechanism. This patch is just a bandaid until a more robust solution arrives.
21:06
lizmat FROGGS++ 21:07
FROGGS hoelzro: ^^ that should fix the issue we were talking about yesterday
there was an rt ticket but I cant find it
21:07 musiKk joined, ely-se joined
FROGGS .tell FreezeburnV This patch should solve your issue: github.com/rakudo/rakudo/commit/cc0472b43e 21:09
yoleaux FROGGS: I'll pass your message to FreezeburnV.
jnthn lizmat: You may be able to get binary slurp-rest even fasterer by asking for the length of the file. Be careful when that returns 0 'cus it's not actually a normal file, though. 21:16
lizmat: Or just by asking for a bigger amount 21:17
lizmat jnthn: yeah, I was thinking about that... but would that take info from directory, or would it actually do a seek to the end of the file internally at the OS level ?
jnthn lizmat: The former, I think 21:18
Since you can .s a file that ain't been opened
lizmat so that could work for IO::Path.slurp, but not IO::Handle.slurp-rest 21:19
jnthn: do you think a 64K buffer for reading is too conservative ?
jnthn Can perhaps got a bit bigger... Asking for more than is available isn't really a problem though. 21:20
lizmat wouldn't it allocate a buffer of that size beforehand ? 21:21
I mean, I'd like to see things go faster, but I would also like to see things run on R Pi's
jnthn Yeah...which is why I suggested using file size as a guess 21:22
lizmat yeah, that's for IO::Path, will do that shortly 21:23
but that won't work for IO::Handle, or I should also find out its current seek position
moritz oooh, Monday is leap day! 21:24
I wonder if some big site or service goes down again :-)
like Azure for years ago 21:25
(wow, Azure is already 4 years old?) 21:26
21:27 FROGGS left
RabidGravy leap monday! 21:30
lizmat I guess we should also run the 6.c-errata spectest on Monday, to check for any artefacts :-) 21:31
21:39 gregf__ joined, jnthn_ joined 21:40 Upasaka_ joined, f3ew_ joined 21:41 petercom1and joined 21:42 jameslen_ joined 21:44 TreyHarris left, lestrrat left, felher left, awwaiid left, LGD left, arnsholt left, captain-adequate left, sjn left, jevin left, breinbaas left, Util left, bpmedley left, emdashcomma left, ingy left, jdv79 left, perigrin left, ely-se left, rindolf left, atweiden left, nowan left, RabidGravy left, sammers left, Ven left, yqt left, kid511 left, baest left, noganex_ left, ilbelkyr left, xiaomiao left, cognominal left, ka left, SCHAAP137 left, tadzik left, uruwi left, Skarsnik left, hippie left, buharin left, colomon left, labster left, pmurias left, _dolmen_ left, cgfbee left, musiKk left, firstdayonthejob left, cfloare left, dalek left, khw left, polyfloyd left, telex left, ilbot3 left, QORRiE left, Cabanossi left, sftp left, sortiz left, camelia left, gtodd left, kent\n left, [Tux] left, cibs left, decent joined 21:46 dustinm` joined 21:51 sivoais_ joined, lestrrat joined, polyfloyd joined, Praise joined, Util joined, skaji joined, luis` joined, LGD_ joined, telex joined, jferrero joined, ingy joined, rafl joined, El_Che_ joined, Bucciarati_ joined, woodruffw joined, jcallen_ joined, ChoHag joined, tharkun_ joined, havenwood joined, cosarara joined, cfedde_ joined, riatre joined, Jarcode_ joined, hoelzro_ joined, stmuk_ joined, ruoso joined, sjn__ joined, nine_ joined, hahainte1net joined, Ulti joined, masak_ joined, perigrin_ joined, pRiVi_ joined, psch_ joined, diakopte1 joined, rudi_s joined, jdv79_ joined, japhb_ joined, breinbaa1 joined, arnsholt_ joined, squain joined, captain-1dequate joined, TreyHarr1 joined, Brock joined, zostay_ joined, DrForr joined, charsbar___ joined, john51 joined, jevin_ joined, sm0x_ joined, kst` joined, nebuchad` joined, ab5tract joined, Jonis joined, rvchangue joined, emdashcomma_ joined, mattp__ joined, sQuEE` joined, [particle]1 joined, pnu joined, pdcawley_ joined, musiKk joined, labster joined, Ven joined, pmurias joined, _dolmen_ joined, buharin joined, yqt joined, kent\n joined, firstdayonthejob joined, ka joined, kid511 joined, ilbelkyr joined, [Tux] joined, sftp joined, Skarsnik joined, QORRiE joined, baest joined, cfloare joined, cgfbee joined, SCHAAP137 joined, xiaomiao joined, hippie joined, Cabanossi joined, sortiz joined, noganex_ joined, colomon joined, tadzik joined, cognominal joined, uruwi joined, gtodd joined, camelia joined, go|dfish joined, |Tux| joined, tepper.freenode.net sets mode: +v camelia, mtj_ joined, saaki joined, siriu5b joined, Amnez777- joined, eyck_ joined, smash_ joined, mls_ joined, PerlJam joined, andrewalker joined, shmibs_ joined, bakedb_ joined, risou joined, domm__ joined, diego_k joined, pyrimidi_ joined, vike joined, DarthGandalf joined, Juerd joined, krunen joined, agent008 joined, khagan joined, bitmap joined, retupmoca joined, KotH joined, grondilu joined, [Sno] joined, ggoebel16 joined, gfldex joined, huggable joined, TeamBlast joined, autogen_ joined, huf joined, gorgor joined, Psyche^_ joined, caasih joined, PotatoGim joined, sjohnson joined, skarn joined, Celelibi joined, Timbus_ joined, Possum joined, pederindi joined, MadcapJake joined, rdleon joined, ambs joined, cpage joined, Vitrifur joined, adrusi joined, salv0 joined, tinita joined, BooK_ joined, gypsydav15 joined, yoleaux joined, gensym joined, hahainternet joined, f3ew joined, charsbar__ joined, ponbiki joined, pRiVi joined, richi235 joined, zostay joined, rntz joined, solarbunny joined, jantore joined, jervo joined, wtw joined, literal joined, crux joined, avar joined, matt_ joined, avalenn joined, robinsmidsrod joined, [ptc] joined, Peter_R joined, daxim joined, timrs2991 joined, sjohnsen joined, BinGOs joined, timotimo joined, xxpor joined, anshin joined, ashleydev joined, garu joined, Fleurety joined, lnx joined, drforr1 joined, frew joined, mephinet joined, integral joined, geekosaur joined, burnersk joined, eiro joined, [Coke] joined, broquaint joined, tepper.freenode.net sets mode: +v yoleaux, moritz joined, rjbs joined, mst joined, au joined, Grauwolf joined, ranguard joined, Woodi joined, xnrand joined, leedo joined, dpk joined, inokenty joined, ribasushi joined, simcop2387 joined, ugexe joined, lnrdo joined, gabiruh joined, Hotkeys joined, pochi joined, mspo joined, damnlie joined, edenc joined, ilmari joined, mrsolo joined, hobbs joined, alnewkirk joined, peteretep joined, mithaldu_ joined, roguelazer joined, mindos joined, maddingue joined, SmokeMachine____ joined, Lucas_One_ joined, apathor joined, dylanwh_ joined, rodarmor joined, chansen_ joined, Spot__ joined, kipd joined, clkao joined, parisba joined 21:53 pnu left, solarbunny left, zostay left, richi235 left, pRiVi left, ponbiki left, charsbar__ left, rntz left, f3ew left, hahainternet left, cibs joined, nchambers joined, dg joined, bartolin joined, zacts_ joined, konobi_ joined, dsp-_ joined, ely-se joined, atweiden joined, nowan joined, RabidGravy joined, sammers joined, orbus joined, a3r0 joined, Exodist joined, nemo joined, notbenh joined, Roamer` joined, erdic joined, agentzh joined, mohae joined, vytas joined, rhr joined, brabo joined, MilkmanDan joined, mohae left 21:54 hacst joined, mohae joined, ambs left, ambs joined, cbk joined, susmus joined, b2gills joined, Bucciarati_ left, cfedde_ left, mohae left, jercos joined, mohae joined, shadowpaste joined, cfedde joined
lizmat
.oO( a storm ate my local back log )
21:54
21:56 pRiVi_ left, mohae left
RabidGravy Boom! 21:56
21:56 pRiVi joined, mohae joined 21:57 BuildTheRobots joined, sivoais_ left
moritz good thing that the cloud keeps a backlog for lizmat (and everybody else) 21:57
21:58 atta joined
lizmat moritz++ # indeed! 21:58
21:58 sivoais joined, Bucciarati joined 21:59 mohae left
timotimo aye 22:00
22:01 mohae joined, silug joined 22:05 pyrimidine joined, [dpk] joined, Skarsnik left 22:06 ilbot3 joined, diegok joined, ggoebel17 joined 22:07 _dolmen_ left, bitmap_ joined, TreyHarris joined, shmibs joined, Some-body_ joined, camelia left, andrewalker left, dpk left, burnersk left, nchambers left, diego_k left, bitmap left, shmibs_ left, Psyche^_ left, camelia joined, ambs left, Util left, gtodd left, DarthGandalf left, ggoebel16 left, gfldex left, ribasushi left, Woodi left, mst left, bitmap_ is now known as bitmap, [dpk] is now known as dpk, Util_ joined, Psyche^ joined, ambs_ joined
lizmat moritz: your comment isn't actually in the backlog 22:07
22:07 Woodi_ joined, sftp left
lizmat nor is mine 22:07
22:08 mst joined, gfldex joined, andrewalker joined, woodruffw left, arnsholt_ left, TreyHarr1 left, sortiz left, mls_ left, bakedb_ left, pyrimidi_ left, grondilu left, gypsydav15 left, inokenty left, leedo left, xnrand left, ranguard left, moritz left, rjbs left, [Coke] left, ranguard joined, gypsydave5 joined, [Coke] joined, Some-body_ is now known as DarthGandalf, arnsholt joined, xnrand joined, moritz joined, gtodd joined, grondilu joined, Khisanth joined 22:09 woodruffw joined, woodruffw left, inokenty joined, leedo joined, petercom1and left, petercom1and joined, petercom1and is now known as petercommand, woodruffw joined, woodruffw left, sortiz joined 22:10 sftp joined, woodruffw joined, burnersk joined 22:11 ChanServ sets mode: +v camelia, diegok left, diego_k joined 22:12 nchambers joined, ribasushi joined 22:13 TEttinger joined 22:14 revhippie joined 22:15 yqt left 22:16 noganex_ left, noganex joined, zpmorgan joined, rjbs joined, mls joined, Exodist left, notbenh left, dsp- joined 22:17 pyrimidi_ joined, xnrand left, domm_ joined, bartolin left, konobi_ left, sammers left, a3r0 left, nemo left, erdic left, agentzh left, brabo left 22:18 revhippie left, sortiz left, pyrimidine left, dg left, zacts_ left, dsp-_ left, ely-se left, atweiden left, RabidGravy left, orbus left, Roamer` left, vytas left, rhr left, MilkmanDan left, yubimusubi joined 22:19 nowan left, baest left, konobi joined, smash joined, yoleaux left 22:20 konobi is now known as Guest79597, rhr joined, zacts joined, nowan joined, pnu joined, solarbunny joined, rntz joined, richi235 joined, ponbiki joined, pnu left, pnu joined, zacts is now known as Guest39191, notostraca joined, mohae_ joined 22:21 nebuchad` left, xnrand joined, ely-se joined, felher joined, breinbaas joined 22:22 LGD_ left, inokenty1 joined, mohae left, [particle] joined, saaki_ joined 22:23 kipd left, Amnez777 joined, cpage_ joined, domm_ left, nebuchad` joined 22:24 bartolin joined 22:42 ilogger2 joined 22:43 Celelibi joined, kipd joined, musca joined, orbus joined, ambs joined, Grrrr joined, a3r0 joined, Vitrifur joined 22:44 RabidGravy joined, ChoHag_ joined, pederindi joined
timotimo huh, that seems quite strange 22:44
22:44 cosimo joined
timotimo i think strace has a mode that can time individual system calls for you 22:44
22:44 mkz__ joined
timotimo perhaps we can see what's up by observing that? 22:44
oh, is that binary vs string reading?
22:44 decent joined
lizmat timotimo: did you just repeat those lines? 22:45
22:45 eyck joined, go|dfish joined, BenGoldberg joined, petercommand joined, flussenc1 joined
lizmat is seeing weird timewarps 22:45
22:46 SmokeMachine____ left, mathw joined, TEttinger joined 22:47 stux|RC-only joined, tharkun joined, zhmylove joined, lsm-desktop joined, bhm joined 22:48 ChanServ sets mode: +v ilogger2, dustinm` joined, kipd left, kipd joined, vytas joined, BenGoldberg left 22:49 mst joined, cfloare joined, olinkl joined 22:50 raydiak_ joined, rodarmor left, sunnavy joined, autarch joined 22:51 rodarmor joined, kshannon joined, Amnez777 joined
timotimo i did not, i think? 22:52
22:52 cxreg joined
timotimo since we're just coming out of a netsplit, i guess things are just wacky in general 22:52
22:52 kipd left 22:54 khw joined, TEttinger left, gregf__ joined
revhippie it's astounding! 22:54
22:54 cosimo left 22:55 brabo joined 22:56 atta joined
lizmat timotimo: your lines from 22:35 GMT in the backlog, arrived with me at 22:44 GMT 22:56
22:57 nchambers joined, SmokeMachine____ joined, SmokeMachine____ left, SmokeMachine____ joined, ggherdov joined, musiKk joined 22:58 flussenc1 is now known as flussence, TEttinger joined, cosimo joined 23:00 kipd joined
timotimo weird timowarps? 23:00
23:01 riatre joined, esh joined 23:02 rhr joined, apejens joined 23:03 gregf__ left 23:04 dylanwh_ left, jnap joined 23:06 zacts joined 23:10 dylanwh_ joined 23:12 mohae joined, TEttinger left, xinming joined 23:16 jsimonet1 joined 23:18 gregf__ joined 23:19 decent left, [particle] joined
dalek kudo/nom: fb74abc | lizmat++ | src/core/Buf.pm:
Make prefix ~^ Blob:D about 300x faster

  - on a 10K buffer
  - more importantly, it now also handles Buf's correctly
23:19
23:19 lizmat joined, nchambers left 23:21 leedo joined
RabidGravy right, bed time for bonzo 23:21
23:21 decent joined
lizmat yeah, was just about to say the same 23:21
RabidGravy: toodles
#perl6: hope to see you tomorrow after the storm is over
23:21 polyfloyd joined 23:22 esh left 23:24 nchambers joined 23:25 sivoais joined, RabidGravy left 23:26 [Coke] joined, musiKk_ joined 23:27 tony-o joined, musiKk left, esh joined 23:28 bakedb joined 23:31 Sgeo joined, sivoais left 23:33 sivoais joined, dalek joined, ChanServ sets mode: +v dalek, telex joined 23:35 firstdayonthejob joined 23:36 xnrand joined 23:37 esh_ joined, esh left 23:38 jnap left 23:40 jnap joined 23:41 TEttinger joined 23:44 cdg joined 23:49 mls joined, pdcawley joined 23:51 hahainternet joined 23:57 cxreg left 23:58 kid51 joined 23:59 bakedb left, cxreg joined