»ö« 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 avgn5 joined, BenGoldberg joined
avgn5 p6: say 3; 00:06
camelia rakudo-moar 64e1c7: OUTPUT«3␤»
avgn5 notices the '/msg camelia' part...
00:11 avgn5 left 00:14 rurban joined 00:17 SCHAAP137 left, pmurias left 00:18 rurban left 00:23 guru joined 00:24 guru is now known as guru__
guru__ I've just installed rak* 2016.01, tried to install Readline as recommeded, it failed its tests 00:25
Is this a known problem, or should I start trying to debug?
00:26 sevvie left 00:37 k-man left 00:39 tmch left 00:40 k-man joined, Ben_Goldberg joined 00:42 wamba1 left 00:43 BenGoldberg left 00:50 Actualeyes joined 00:52 rburkholder joined 00:54 secwang joined 00:56 guru__ left
sortiz guru__, Readline works well for me, what failed tests or problems you have? 00:56
01:11 RabidGravy left 01:18 BenGoldberg_ joined 01:19 kid511 joined, BenGoldberg_ left 01:20 kid51 left, Ben_Goldberg left 01:21 BenGoldberg_ joined 01:22 secwang left 01:33 cdg_ left 01:35 travis-ci joined
travis-ci Rakudo build failed. Will "Coke" Coleda 'use errata branch for testing, not original tag' 01:35
travis-ci.org/rakudo/rakudo/builds/111340254 github.com/rakudo/rakudo/compare/a...01c3a4cf53
01:35 travis-ci left 01:39 BenGoldberg_ left 01:40 BenGoldberg_ joined 01:44 TimToady left 01:45 secwang joined, BenGoldberg joined 01:46 BenGoldberg_ left 01:47 raiph left 01:50 BenGoldberg left 01:51 TimToady joined 01:58 sftp left 02:03 secwang left 02:09 secwang joined 02:23 raiph joined 02:32 iloveunix joined, ka joined 02:44 kid511 left 02:45 abaugher left 02:46 ilbot3 left, abaugher joined, kid51 joined, kid51 left 02:47 ilbot3 joined 03:03 noganex_ joined 03:07 noganex left 03:16 rburkholder left 03:18 Actualeyes left 03:37 revhippie joined 03:46 perturbation left 03:47 vendethiel joined 03:49 toddr joined 03:50 a3r0_ is now known as a3r0 03:53 yqt left 03:54 Herby_ joined
Herby_ Evening, everyone! 03:54
\o 03:55
04:02 secwang left
MadcapJake super quiet in here... 04:04
Herby_ Herby is here! 04:06
contemplating how difficult it would be to create a " 04:07
"On-Call Schedule" program for my hospital
turns out they don't currently have one
It would have to be a web app of some sort, which I don't think is currently Perl 6's strong suit 04:08
but I could be wrong
04:14 vendethiel left 04:24 toddr left
tadzik yeah, webdev is not exactly perl6's strong suit indeed 04:31
then again, depending on how little you need, we may be able to figure something out :) 04:33
04:34 beatdown left
jdv79 p5 has serious webdev chops. you could do it there and then port over if you like with Inline::Perl5/6 when it suits... 04:35
04:36 secwang joined 04:44 revhippie left
Herby_ yeah, if I was thinking Perl 5 if I started working on it 04:44
I'd have to learn Dancer 2 I guess
jdv79 or mojo or web::simple or cat or, shudder, mason2 if you really need to contort perl into php 04:51
sorry jon if you ever read that 04:52
04:52 sortiz left 05:08 remmie joined 05:11 autarch left 05:13 Actualeyes joined 05:17 secwang left, remmie left 05:24 Herby_ left
MadcapJake .tell Herby_ i'd suggest trying Crust if you do want to peruse webdev in Perl 6 05:27
yoleaux MadcapJake: I'll pass your message to Herby_.
05:27 skids left 05:45 nakiro joined
raiph .tell moritz I'm writing a Type System p6doc page. I've made good progress but will have to pause on it for a couple days. It's not ready to publish in a gist. I wanted to "let #perl6 know" to reduce the chances of duplicated effort. 05:45
yoleaux raiph: I'll pass your message to moritz.
06:00 Cabanossi left 06:02 ka left 06:03 Cabanossi joined 06:04 ka joined 06:06 vendethiel joined 06:10 dayangkun joined
Woodi so Mint ISO was hacked by absentvodka via Wordpress... that blogging platform will beat BIND soon :) 06:11
06:17 raiph left 06:23 zpmorgan left 06:25 CIAvash joined 06:27 vendethiel left 06:46 pierrot left, dayangkun left 06:51 vendethiel joined 06:55 khw left 06:58 CIAvash left, CIAvash joined
moritz . 07:01
yoleaux 05:45Z <raiph> moritz: I'm writing a Type System p6doc page. I've made good progress but will have to pause on it for a couple days. It's not ready to publish in a gist. I wanted to "let #perl6 know" to reduce the chances of duplicated effort.
[Tux] Any news on untouched CRNL RT#127358 and/or UTF8-C8 ? 07:05
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127358
[Tux] or longdouble perl5 support in Inline::Pelr5
07:05 domidumont joined
[Tux] test 23.298 07:08
test-t 12.060
csv-parser 50.995
07:10 domidumont left 07:11 domidumont joined 07:12 vendethiel left 07:27 firstdayonthejob joined, sno left 07:30 vendethiel joined, _mg_ joined 07:33 jeek left 07:36 jeek joined 07:42 azawawi joined
azawawi good morning #perl6 07:42
github.com/azawawi/atom-perl6-edit...nippets.md # Supported snippets in Atom Perl 6 editor tools. PRs are more than welcome. 07:43
07:44 azawawi left 07:50 sno joined 07:52 vendethiel left, adu joined, fireartist joined 07:55 sjoshi joined 07:57 Ven joined 07:59 Ven_ joined 08:02 Ven left 08:12 abraxxa joined 08:20 darutoko joined 08:33 tmch joined, zakharyas joined 08:35 ka left 08:38 john51_ left 08:39 firstdayonthejob left, john51 joined 08:43 brrt joined, dakkar__ joined 08:46 rurban joined, rurban left 08:51 ely-se joined 08:56 gregf_ joined
abraxxa the perl6 --help output is confusing: 08:57
--doc extract documentation and print it as text
--doc=[module] Use Pod::To::[module] to render inline documentation.
the same parameter controls how pod is displayed and which pod is displayed? 08:58
08:59 RabidGravy joined
moritz where do you read the "how" aspect? 09:00
it tells you that it renders it as text by default
abraxxa ReadLine fails its tests on 2016.02 09:01
moritz: how do I specify the modulename of which i want to display the docs?
perl6 --doc Some::Module doesn't work 09:02
perl6 -M Some::Module --doc neither
09:02 adu_ joined
abraxxa misses a perldoc6 09:02
moritz there's a p6doc in the perl6/doc repo
09:03 zakharyas left
abraxxa @Readline: # Type check failed in binding $version; expected Version but got Str ("v6") 09:03
DrForr Sigh.
abraxxa moritz: but that isn't installed by default when using rakudobrew?
09:04 adu left, adu_ is now known as adu
moritz abraxxa: no 09:04
abraxxa moritz: how can I install it and are there plans to do so by default? 09:06
DrForr Okay, what *should* I be using for the version, I was just using constant LIB = ('readline', 'v6') as someone else was doing.
DrForr checks doco again hoping to find something...
moritz abraxxa: with panda
abraxxa: and no, no plans; rakudo star ships it by default, and that's what we recommend to do 09:07
abraxxa moritz: ah, great, thanks!
DrForr Version.new(6)?
moritz m: say Version.new('v6')
camelia rakudo-moar 64e1c7: OUTPUT«vv.6␤»
moritz m: say Version.new('6')
camelia rakudo-moar 64e1c7: OUTPUT«v6␤»
09:08 kurahaupo joined
DrForr quoted, riiight. 09:08
09:08 kurahaupo left
moritz m: say Version.new(6) 09:08
camelia rakudo-moar 64e1c7: OUTPUT«v6␤»
moritz works without the quotes too
but in general, versions are strings, not just integers 09:09
DrForr That's what I thougt as well, which is why I just used ('readline',v6) thinking that v-strings were the way to go. 'sokay. 09:10
DrForr reruns tests. 09:11
moritz oh, nativecall?
well, C libraries don't share version objects with Perl 6 :/
09:11 Actualeyes left
DrForr points at abraxxa's failure report. 09:11
I'm running test suits now, no worries. 09:12
abraxxa p6doc installed successfully but the command p6doc can't be found in the path 09:13
DrForr abraxxa: Fixed and pushed, give it a try. 09:14
abraxxa DrForr: ok
DrForr++ # ==> Successfully installed Readline 09:15
DrForr Yay. 09:17
abraxxa it seems p6doc wasn't installed by panda... 09:18
panda list --installed doesn't work although documented 09:19
09:19 wamba joined
fireartist it needs to be `panda --installed list` :-( 09:19
that had me stumped yesterday for a minute
09:19 sjoshi left
abraxxa oh, the example is even shows 09:20
quite non-standard
have I done something wrong? panda install p6doc 09:21
09:21 kurahaupo joined
abraxxa but there is no p6doc in the perl6 bin directory 09:21
moritz abraxxa: do other programs show up in your $PATH when you install them via panda? 09:22
abraxxa moritz: i can't find the p6doc file at all 09:23
fireartist I used panda to install Task::Star, and it put p6doc in ~/.rakudobrew/bin/
abraxxa panda --installed list already takes minutes but doesn't display anything ;(
09:23 vendethiel joined
abraxxa there is a p6doc in ~/.rakudobrew/moar-2016.02/install/share/perl6/site/bin/p6doc 09:23
but none in ~/.rakudobrew/bin/ where the perl6 executable is and which is in my PATH 09:24
09:25 sjoshi joined
abraxxa github.com/tadzik/Task-Star/blob/m.../META.info doesn't show something obvious 09:25
strace shows that panda --installed list hangs at epoll_wait(5, 09:27
open("/home/ahartmai/perl5/perlbrew/perls/22.1/lib/5.22.1/vars.pm", O_RDONLY) = 5 09:28
09:28 adu left
brrt suggestion. i get a complaint about p6doc-index build when using it for a single file 09:28
eh, single function 09:29
p6doc -f foobar
however, p6doc-index build takes a neglible time here
why not just run it on the first time?
09:31 FROGGS joined
fireartist abraxxa: in case it helps, this is what I did yesterday, and got a p6doc in my PATH 09:31
abraxxa: rakudobrew build moar 2016.02 && rakudobrew switch moar-2016.02 && rakudobrew build panda && panda install Task::Star
abraxxa fireartist: same there but panda install p6doc instead of Task::Star 09:32
09:36 lustlife left 09:41 labster joined, domm_ left, CIAvash left 09:44 domm_ joined 09:46 vendethiel left
stmuk_ brrt: PR welcome for p6doc Build.pm :) 09:47
abraxxa: you may have to rakudobrew rehash
abraxxa stmuk++ # that was it! 09:48
brrt stmuk_: where be the repo
stmuk_ brrt: panda info p6doc
09:48 iloveunix left
brrt aha 09:48
moritz now if panda had a post-install hook which rakudobrew could use...
09:51 kurahaupo left
tadzik or it can just rehash after each 'panda' run, just in case :) 09:52
abraxxa p6doc does nothing when executed without params
moritz tadzik: but how does rakudobrew even know that panda ran?
abraxxa what does rehash do?
tadzik moritz: rakudobrew generates the 'panda' script that runs the actual panda, so yes 09:53
moritz tadzik: ah right
stmuk_ its shims all the way down!
09:53 atta left 09:54 atta joined
abraxxa p6doc Net::AMQP hangs too 09:54
stmuk_ abraxxa: its a bug in perl6 -doc 09:55
10:02 brrt left 10:04 xinming left, tinita_ is now known as tinita 10:07 cognominal left, vendethiel joined 10:13 Ven_ left 10:16 sno left
abraxxa stmuk_: ok, thanks 10:18
10:19 espadrine joined 10:31 vendethiel left 10:33 zakharyas joined 10:37 rindolf joined 10:41 vendethiel joined 10:42 AlexDaniel left 10:56 dakkar__ is now known as dakkar 10:58 CIAvash joined 11:02 vendethiel left 11:05 vendethiel joined
stmuk_ receives 40 bottles of Club Mate 11:07
11:07 ka joined 11:08 telex left 11:10 telex joined, dvinciguerra joined 11:14 Beelu joined, Beelu left 11:17 Skarsnik joined
Skarsnik Hello 11:18
11:19 Ven joined
DrForr o/ 11:22
jnthn o/ 11:23
psch o/
8/25 passes in 03-jvm/interop.t \o/ 11:25
11:26 vendethiel left 11:28 rindolf left 11:29 sjoshi left
psch and the broken bits should be expected, fwiw. the dying test is the one for CRC32/update([B)V, but list-y marshalling is NYI 11:31
curious that it doesn't die with that message though, but with an NPE...
dalek kudo/jvminterop: abe034b | peschwa++ | src/vm/jvm/ (2 files):
Get basic JVM Interop working again.

As in, basic (i.e. natives and their box types) work again, as do simple callouts, e.g. System.out.println.
11:34
11:34 dvinciguerra left
psch s/ types\)/) types/ 11:35
FROGGS psch++ # \o/
tadzik nice!
11:40 rurban joined 11:42 sjoshi joined
psch now to get back into thinking in this somewhat annoying indy abstraction level... :S 11:42
11:44 labster left
ilmari psch's github username makes me think of peshwari naan 11:45
ilmari wants curry now
jnthn Damn...me too :P
psch++
11:48 molaf joined 11:49 tmch left 11:58 frederico left 12:07 brrt joined 12:17 mkz left
FROGGS shakes his fist at the function scoping of variables in javascript 12:17
12:18 xinming joined 12:22 vendethiel joined 12:25 dvinciguerra joined
lizmat good *, #perl6! 12:25
lizmat wonders whether she should announce the P6W herself on reddit/r/perl6 in the future
moritz lizmat: or just reddit/r/perl 12:26
lizmat wishes she should not need to get a reddit login 12:28
12:29 sufrostico joined, rurban left
jnthn FROGGS: Use `let` and `const` ;) 12:31
(And an ES6 => ES-whatever-crap-browsers-run compiler :))
Or "transpiler", as the "we don't know what we're building is called a compiler" kids say :P 12:32
moritz lizmat: I can submit the stuff for you if you just /msg me the URL 12:33
lizmat p6weekly.wordpress.com/2016/02/22/2016-8-yacr/ 12:34
moritz++
moritz www.reddit.com/r/perl/comments/47c...nd_perl_6/ 12:35
www.reddit.com/r/perl6/comments/47...nd_perl_6/ 12:36
lizmat++ # weekly
timotimo lizmat++ # weekly 12:37
FROGGS jnthn: nah, I jst try to remember the scoping rule... my functions arnt that big so there is hardly a problem
brrt ohai lizmat
i would not get a reddit login if i could avoid it
12:38 pierrot joined
DrForr moritz: Heh, next week is the last part of my series on regex and grammars, and I'm trying to stay away from the term 'transpiler'. Sounds too much like something from the Hunger Games. 12:38
moritz DrForr: :-)
DrForr: just call it a compiler, which is what it is :-)
jnthn FROGGS: tbh, I still use var a load anyway...the main thing that makes it worth it for me is the short syntax for lambdas :) 12:39
.oO( So much for let over lambda :P )
lizmat jnthn: I was thinking about augment in precompiled modules 12:40
I was thinking, maybe that should become a role in precomp, to be mixed in at runtime ?
jnthn Mixed in to what, exactly? 12:41
You mix in to objects, which changes the type of an object. Whereas an augment is a mutation on a type. 12:42
lizmat yes, in the scope of the import, the class would get transmogrofied with the role mixed in
only for accesses in that scope 12:43
jnthn That isn't the semantics of augment.
kent\n Archeology q: iirc, Perl5 Moose + Type Constraints stole the idea from Perl6. Are there other languages which have this concept? Did P6 steal it from one?
12:43 kent\n left
lizmat jnthn: well, maybe we shouldn't call it augment then 12:44
12:44 vendethiel left
lizmat maybe we should call it an export role to be applied to any creation of objects with the given class 12:44
jnthn That already exists today: constant foo is export = TheType but MyRole
And is pre-comp safe 12:45
lizmat yeah, but then people all of a sudden need to say foo.new instead of Bar.new
jnthn Fine 12:46
constant TheType is export = SETTING::TheType but MyRole; :)
12:47 Guest84889 joined
lizmat would that allow me to export a method "unpack" to Blob ? 12:47
12:47 Guest84889 left, Guest84889 joined, Guest84889 is now known as kent\n
lizmat Ah, I guess it would 12:47
jnthn lizmat: Well, with the caveat it only helps Blobs that are created in the scope in question
12:47 CIAvash left
jnthn lizmat: And doesn't help, say, Buf which does Blob 12:48
lizmat well, that would work for me :)
12:48 kent\n left
jnthn So you'd need similar on those too 12:48
lizmat well, rins and repeat yes
jnthn But you can do a little loop in a BEGIN block and shove things in EXPORT::DEFAULT :)
12:48 kent\n joined, kent\n left, kent\n joined, xinming left
lizmat well, I guess that means the death of augment then... 12:48
RabidGravy nah 12:49
psch "Wrong number of arguments passed; expected 2..2, but got 2" # /o\
jnthn Well, augment is different. :)
RabidGravy m: role Foo {}; constant Blob = Blob but Foo
camelia rakudo-moar 64e1c7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wR6K1Aj7_W␤An exception occurred while evaluating a constant␤at /tmp/wR6K1Aj7_W:1␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Method 'mixin' not found for invocant of class 'Perl6…»
12:49 pmurias joined
lizmat yeah, but if we use that for e.g. Str in 6.d, nobody can augment Str down the line, no? 12:49
kent\n wow, I chose a suck time to ask a question, my network flaked out right afterwards :/ 12:50
jnthn lizmat: Right, which is why we don't try to solve the "can't see methods from future Perl 6 versions" thing :)
So we don't have to augment :)
lizmat ok
jnthn kent\n: What are you referring to in partiuclar by type constraints? Lots of languages have type annotations...the incorporation of them into Perl 6 was somewhat guided by work on gradual typing. And the `where` stuff was from work on refinement types, if you mean those bits. 12:52
12:52 TEttinger left 12:53 skids joined
jnthn kent\n: Both I became aware of from academic papers, which were shared among various Perl 6 folks back in the Pugs days, iirc. 12:54
But it was before I was really involved with things :)
12:55 skids left
kent\n jnthn: with regards to being able to subclass things like "String" and add additional constraints to things that are "also strings", where in the constraint doesn't actually change the type, just serves as a convenience factor for reliable/reusable validation 12:56
I was asked if they bore any resemblance to "constraints for haskell type classes" . I don't think they do, but I've had a hard time working out what that is exactly ;) 12:58
jnthn m: subset Id of Str where /^ \w ** 5..10 $/; # You mean things like this? 12:59
camelia ( no output )
12:59 tmch joined
stmuk_ how are the docs to handled with 6.c and 6.d? I assume the new sections are tagged as version specific somehow? 13:00
RabidGravy tries to remember why he called his wife's laptop "ozymandius"
13:00 dakkar left
psch m: subset ShortStr of Str where .chars < 5; class DiffStr is Str { }; my ShortStr $shstr = DiffStr.new(:value("foo")) 13:00
camelia ( no output )
psch m: subset ShortStr of Str where .chars < 5; class DiffStr is Str { }; my ShortStr $shstr = DiffStr.new(:value("foobar"))
camelia rakudo-moar 64e1c7: OUTPUT«Type check failed in assignment to $shstr; expected ShortStr but got DiffStr ("foobar")␤ in block <unit> at /tmp/noz8vSd8Wg line 1␤␤»
psch hm, can we get the constraint for the subset in that error msg? 13:01
kent\n I think so. I'm just not too familiar with the P6 syntax, and I'm mostly using my knowledge of Moose type-constraints.
psch feels like that would make it a bit more awesome
it'd probably also have to throw something somewhat different for subsets, similarly to how we already do for constraints in Signatures iirc 13:02
jnthn kent\n: Yeah, the refinement types...some references at en.wikipedia.org/wiki/Refinement_(...ment_types
lizmat psch: you of course realize that could be quite a lot of code in the refinement.. ? 13:03
kent\n jnthn++ # that term gives much more useful results when I throw "haskell" at it + google =) 13:04
psch lizmat: "refinement" means the subset constraint? no, i hadn't though about that, but it seems a good point against getting it there
Skarsnik what is the tag to make Test stop at the first faillyre? 13:09
arnsholt RabidGravy: Recently re-read Watchmen when you set it up? =) 13:12
13:13 brrt left
RabidGravy unlikely, it's almost certain from the Shelley sonnet 13:15
13:15 guru__ joined
dalek kudo-star-daily: a5f00b4 | coke++ | log/ (9 files):
today (automated commit)
13:17
arnsholt Yeah, that was my other option. But new computer named after a poem on the inevitability of death was a bit weird, yeah =) 13:18
RabidGravy it's an HP Mini so probably appropriate 13:20
13:25 autarch joined
dalek Iish/oracle: b4b0bad | (Sylvain Colinet)++ | / (6 files):
Remove all the Num stuff in Pg/sqlite/mysql, everything is Rat. Fix the tests
13:27
Skarsnik Was a bit 'tricky' to 'fix'
some drivers does not type Null result
13:28 Ven left
Skarsnik We will need to add capabilities to the drivers to have proper tests 13:28
sufrostico Hi! 13:31
moritz hello sufrostico
sufrostico Is there a way to represent the C function pointers (within an struct) by using the native call library ?
timotimo not yet, sorry! 13:32
only as an opaque pointer that you cannot invoke
Skarsnik Well you can as Pointer
but you will not be able to call it
timotimo and you cannot yet put a perl6 function into a struct as a function pointer
Skarsnik but you can still pass it to C
stmuk_ hmm I can kernel panic OS X by using rakudo to access a non-thread safe library (SDL) with threads 13:33
Skarsnik Oo
stmuk_ I suspect this is Apple's problem
jnthn Yup. Wow. 13:34
A kernel should never let userspace panic it 13:35
13:35 kaare_ joined
moritz submit an applebug :-) 13:36
presumably a security one
13:36 dakkar joined
timotimo well, SDL does opengl stuff, or perhaps the apple-proprietary metal thing 13:36
moritz (hey, you could even get money for that; dunno if apple does that)
jnthn Was gonna say, if you found one of those on something actually used for servers it'd be a decided DoS vector... 13:37
stmuk_ yeah maybe the apple graphics level is privileged for performance somehow
DrForr Quartz, no? 13:38
timotimo i think graphics APIs are in general a very good target for crashing systems, which is why some security engineers were very much looking forward to WebGL and friends
jnthn Windows used to do that :P
moritz which might lead to interesting privilege escalation
stmuk_ I may try and golf it if I can get OS X virtualized
timotimo in general, apple's OpenGL drivers are absolute and utter crap. 13:39
they don't update them, or something like that
well, what do i know :)
i know the krita devs (a painting program) are super annoyed by OSX and their stance towards OpenGL on their system
BBL 13:40
sufrostico Skarsnik: so... something like this should work gist.github.com/Sufrostico/49a8bb3a92ca62624a8c ?
RabidGravy Skarsnik, I think there's still a problem with the mysql tests
timotimo yes, that should work
sufrostico as long as I don't try to call the functions from perl6 ?
moritz sufrostico: you should get a redeclaration error 13:41
timotimo well, you want to call those things different names
moritz also notice that "has" already implies on level of pointer
13:41 ocbtec joined 13:42 Ven joined 13:43 ocbtec left
sufrostico moritz: why redeclaration error ? 13:43
moritz sufrostico: because you're declaring the attribute 'create' three times
13:44 guru__ left, ocbtec joined
Skarsnik sufrostico, yes 13:44
13:45 guru__ joined
sufrostico moritz: damn copy/paste. 13:46
Skarsnik RabidGravy, damn and I don't have a mysqlservre working to test on this vm
sufrostico ok, thanks to everyone... going to work on that now
Skarsnik try GPTrixie if you are binding something x)
13:47 ocbtec left 13:48 brrt joined, rurban joined
RabidGravy Skarsnik, I'll take a look later, I installed a mysql on the little computer 13:51
13:51 Psyche^_ joined
dalek Iish/oracle: 90e295a | (Sylvain Colinet)++ | t/lib/Test/DBDish.pm6:
Put the numeric untyped ref data as the right Str
13:51
Skarsnik I have no idea what is the crash on the Int thingy
13:54 avenj joined 13:55 avenj left, avenj joined, Psyche^ left
lizmat jnthn: thinking about the constant Blob is export = SETTING::Blob but Extra 14:03
14:03 cdg_ joined
lizmat that would not really work if we have two exports to Blob in the same scope :-( 14:03
so maybe we need something smarter than SETTING:: ?
that would take the one from the scope to be imported into and if it's not there, use the SETTING:: one ? 14:04
14:05 sno joined 14:06 rindolf joined 14:07 pmurias left 14:08 pmurias joined, rindolf left 14:09 pmurias left
jnthn lizmat: I think it'd give an error rather than silently fail, at least... 14:09
lizmat: Not sure how we can do soemthing smarter...there's no way at present to reach the scope to import into...
lizmat :( 14:10
14:11 kid51 joined 14:13 zpmorgan joined 14:20 skids joined
psch aha! 14:21
the failing test for CRC32."method/update/([B)V" fails correctly, if LTA
14:22 rurban left
psch as in, the test is iterating over 'Hello, Java'.encode('utf-8') and passes $_ into that method 14:22
m: 'Hello, Java'.encode('utf-8')[0].WHAT.say
camelia rakudo-moar 64e1c7: OUTPUT«(Int)␤»
psch ^^^ that's clearly not a byte array though
m: sub f(@a) { say @a.perl }; f 5 # not sure i can get it this pretty though... 14:23
camelia rakudo-moar 64e1c7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/h8poR39gEY␤Calling f(Int) will never work with declared signature (@a)␤at /tmp/h8poR39gEY:1␤------> 3sub f(@a) { say @a.perl }; 7⏏5f 5 # not sure i can get it this pretty ␤»
14:23 rurban joined, zakharyas left
psch m: for 'abc'.encode('utf-8') { $_.say } 14:24
camelia rakudo-moar 64e1c7: OUTPUT«97␤98␤99␤»
psch that used to give only one iteration when i wrote the tests iirc
14:24 zakharyas joined 14:25 gorgor joined 14:27 rurban1 joined, rurban left
jnthn psch: Perhaps changed with GLR single arg rule 14:29
14:30 nakiro left 14:31 rurban1 left
psch m: say utf8 ~~ List 14:31
camelia rakudo-moar 64e1c7: OUTPUT«False␤»
14:31 rurban joined
psch m: say utf8 ~~ Iterable 14:31
camelia rakudo-moar 64e1c7: OUTPUT«False␤»
psch m: say utf8 ~~ Positional
camelia rakudo-moar 64e1c7: OUTPUT«True␤»
psch well, it does get me up to 23/25 vOv 14:32
i'll have to add tests for wrong argument types though...
14:36 rurban left, rurban1 joined 14:41 rurban1 left, rurban joined, rurban left 14:43 raiph joined, n0xff_ left 14:44 _mg_ left 14:45 _mg_ joined 14:57 zakharyas left, zakharyas joined 14:58 Actualeyes joined 15:01 zakharyas left 15:04 CIAvash joined 15:05 brrt left
dalek ast/6.c-errata: 0f3e1f4 | lizmat++ | / (1223 files):
Change v6 to v6.c / add v6.c where appropriate

All your files are belong to us
15:09
hoelzro o/ #perl6 15:10
dalek ast: 85bbd8d | lizmat++ | / (179 files):
Add use v6 where appropriate
15:12
lizmat afk for a few hours& 15:13
15:23 Guest72897 left
Skarsnik this NC-explicit-managed role leakage in dbiish ref data is becoming annoying 15:26
15:27 rindolf joined
RabidGravy Str,new 15:28
Skarsnik ?
RabidGravy I found another way of removing roles but creating a new object from the one with the role works 15:29
m: role Foo { }; my $a = "hdhd"; $a does Foo; say $a.WHAT; say Str.new(value => $a).WHAT 15:30
camelia rakudo-moar 64e1c7: OUTPUT«(Str+{Foo})␤(Str)␤»
15:31 tmch left
Skarsnik Well it's not really a fix in this case 15:33
the ref data have nothing to do with NC, they should not get the role at the first place xD
15:36 fireartist left 15:39 xinming joined 15:44 sjoshi left 15:45 mkz joined 15:50 ely-se left, Perleone joined, ely-se joined 15:53 sufrosti1o joined, sufrostico left, xinming left
Perleone Something for the PR department: Perl 6 has made it onto the cover of German IT pro magazine "iX": www.heise.de/ix/inhalt/thumbnails/2016/03/1.jpg 15:54
15:54 Ven_ joined, Ven_ left
tadzik nice, that's the second IT magazine where Perl 6 makes the cover :) 15:55
Perleone Larger: www.heise.de/ix/inhalt/2016/3/titelseite.pdf
15:56 kent\n left, Ven left
psch tadzik: which was the first one, ooc? 15:57
tadzik psch: Polish "Programista"
let me take a pic
psch ponders getting the iX tomorrow
perlpilot What does "endlich verfugbar" mean? 15:58
15:58 kent\n joined, kent\n left, kent\n joined
psch perlpilot: "finally available" 15:58
perlpilot danke
Perleone "finally available"
too slow :>
tadzik i.imgur.com/Cs9VvFQ.jpg 15:59
it even has half-camelia :P
psch hah yeah
that's a bit more focused on Perl 6 than the other cover :)
Perleone The iX article is written by ... (drum roll) ... moritz!
perlpilot and apparently they are very excited about perl 6
Perleone moritz++
psch moritz++ 16:00
tadzik moritz++ indeed :)
timotimo moritz++ # iX article
16:01 xinming joined
moritz wow, I didn't know I'd get front-page'd 16:03
perlpilot now all someone needs to do is get a regular Perl 6 column in a reasonably well-circulated magazine or two 16:04
Perleone moritz: And it's a nice contrast to C++, also on the front page
moritz perlpilot: I do plan to ask them if they want follow-up articles (though I probably won't be able to deliver a regular column) 16:06
perlpilot moritz: #perl6 could tag-team for a regular column 16:07
timotimo all the german #perl6ers?
moritz perlpilot: my experience with such things has been mixed
the last advent went surprisingly well 16:08
16:08 zakharyas joined
moritz but you can see the trouble that timotimo and lizmat are having with p6w (like, not always actually managing to publish it weekly) 16:08
perlpilot aye, it would require some more advanced coordination to do a regular column 16:09
16:09 domidumont left
moritz and then a magazine will want a single point of contact, most likely 16:09
16:15 kurahaupo joined 16:17 nchambers is now known as BackupHeddwch, _mg_ left 16:18 ely-se left
nemo wow. zoffix must be really sick 16:19
it's been like a week and a half? 16:20
timotimo i think we should really do something about rakudo.org's outdated wordpress installation 16:21
like, i'm surprised it hasn't gotten pwned already 16:22
skids What, someone has to provide a "back door to the Internet"
timotimo nemo: i'm a little worried, too :S 16:24
perlpilot timotimo: re rakudo.org ... Ping [email@hidden.address] about it. See what happens. 16:25
16:25 zakharyas left
timotimo pm is super busy, i'm not sure if i should bother him about stuff like that. especially since i'm probably not the right person to do a migration to the p6c servers for example ... 16:26
nemo timotimo: hedgewars drupal instance is like a decade old :/ 16:28
timotimo: no one around willing to go through a painful migration
16:30 CIAvash left
hoelzro parsed initially parsed that "painful migraine" 16:31
geekosaur no. that comes later 16:32
hoelzro hehe
perlpilot timotimo: if you send him an email, he can ignore it, update WP himself, give you the ability to do it, etc. If you don't send an email ... we'll still be talking about upgrading WP on rakudo.org next year :)
16:33 cdg_ left
nemo timotimo: I'd just wanted to mention to Zoffix manpages.ubuntu.com/manpages/gutsy/...tch.8.html 16:34
timotimo: since I'd managed to screw up my XCompose on a machine, and this nice lil' utility fixed it
16:34 cdg joined
nemo timotimo: (related to perl6 unicode input) 16:34
16:34 BackupHeddwch is now known as bACKUPhEDDWCH
nemo timotimo: I figured zoffix might be interested since he'd had similar issues 16:34
16:38 vendethiel joined, zakharyas joined 16:41 ka left 16:44 ka joined, zakharyas left 16:45 dfcarpenterak joined
[Coke] Anyone pondering a perl 6 talk for yapc::na ? 16:46
16:46 lichtkind joined
DrForr Several, I just need time to write up talks. 16:48
16:50 khw joined 16:53 zakharyas joined 16:54 dvinciguerra left, bACKUPhEDDWCH is now known as nchambers 16:57 stmuk joined 16:58 abraxxa left 17:00 stmuk_ left, lostinfog joined 17:02 CIAvash joined 17:03 ka left 17:04 yqt joined 17:06 FROGGS left 17:10 zakharyas left
dalek Iish: 037c377 | (Salvador Ortiz)++ | lib/DB (9 files):
Rationalize 'use' and 'need' in modules

With module 'require' fixed, now DBDish.pm loads roles and other modules only needs DBDish.
17:12
Iish: 5250f2a | (Salvador Ortiz)++ | lib/DBDish/ (6 files):
Use exported typed Pointers for type safety
17:15 sortiz joined 17:16 tmch joined, kurahaupo left
[Coke] anyone pondering a response to RT #127601 ? 17:16
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127601
[Coke] DrForr: I was also fishing for "about what?" :) 17:17
(RT) I am working on one now
timotimo we've been meaning to get loop ( ... ) that return values; do we have that?
jnthn m: my @list = lazy loop (my $i = 0; $i < 10; $i++) { $i }; say @list 17:18
camelia rakudo-moar 64e1c7: OUTPUT«[...]␤»
psch ...the example for the lazy list seems awefully contrived
jnthn m: my @list = lazy loop (my $i = 0; $i < 10; $i++) { $i }; say @list[^10]
camelia rakudo-moar 64e1c7: OUTPUT«(0 1 2 3 4 5 6 7 8 9)␤»
jnthn We already have that feature. :)
timotimo good
17:18 yqt left
jnthn But the ticket reads like "omfg more than a couple of non-alaphenumeric chars in a row!!!" :P 17:18
17:18 CIAvash left
timotimo perl6 may not be the right thing for them. though of course a slang can be proposed 17:19
jnthn None of the tickets by that submitter were well researched.
ugexe m: my @x = 1,2,3,4; my $lazylist = lazy @x; say $lazylist
camelia rakudo-moar 64e1c7: OUTPUT«(...)␤»
psch m: my $llist = (0, { $_ + 3 } ...^ * > 10; say $llist.is-lazy
camelia rakudo-moar 64e1c7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EwnTQlKFnF␤Unable to parse expression in parenthesized expression; couldn't find final ')' ␤at /tmp/EwnTQlKFnF:1␤------> 3$_ + 3 } ...^ * > 10; say $llist.is-lazy7⏏5<EOL>␤ expecting any of:␤ …»
psch m: my $llist = (0, { $_ + 3 } ...^ * > 10); say $llist.is-lazy
camelia rakudo-moar 64e1c7: OUTPUT«False␤»
psch hue hue
vOv
jnthn m: my $llist = lazy (0, { $_ + 3 } ...^ * > 10); say $llist.is-lazy 17:21
camelia rakudo-moar 64e1c7: OUTPUT«True␤»
jnthn Can mark it easy enough :)
17:21 vendethiel left
timotimo well, why isn't it lazy in the first place? :P 17:21
psch yeah, i guess that's just another hint for the "badly researched" comment before
17:21 neilb left 17:22 neilb joined
jnthn timotimo: Lazy implementers didn't work hard enough at the halting problem... :P 17:22
17:23 neilb left
jnthn notes that the loop also introduces state to the program, while the sequence operator is free of it :) 17:23
ugexe a shame he didnt just ask first
17:24 neilb joined
jnthn Well, I suspect we'll see an amount of people submitting essentially questions to the bug queue. 17:24
timotimo shouldn't it just set is-lazy by virtue of being a ... operator?
psch m: my $llist = (0, { $_ + 3 } ... *); say $llist.is-lazy
camelia rakudo-moar 64e1c7: OUTPUT«True␤»
jnthn timotimo: I think we've been down the "make more things lazy by default" road and it ended up worse in various cases.
timotimo hmm. like array access, eh? 17:25
jnthn Well, the big one was trying making gather/take assume lazy.
timotimo so, um, who will write the reply? :)
jnthn I thought [Coke]++ said he was working on one? :)
ugexe m: my @a = 1,2,3,4,5; @a[1]:delete; say @a[0..*]; say @a[lazy 0..*]; # :(
camelia rakudo-moar 64e1c7: OUTPUT«(1)␤(1)␤»
timotimo cool
jnthn ugexe: Marking things lazy is only useful for operations that will do something different. 17:27
ugexe: And array indexing ain't one of them (yet).
ugexe its used in method splice
jnthn Oh?
ugexe @arr[lazy 0..X]
its why .splice and .splice(0) give different results when you @a[1]:delete 17:28
17:28 neilb left
jnthn m: my @a = 1..*; my @b = @a[lazy 3..*]; say @b[^10] 17:28
Figured that'll hang 17:29
m: my @a = 1..*; my @b := @a[lazy 3..*]; say @b[^10]
camelia rakudo-moar 64e1c7: OUTPUT«(timeout)»
jnthn Figure that one will do
*too
ugexe m: my @a = 1,2,3,4; @a[1]:delete; say @a.splice; my @b = 1,2,3,4; @b[1]:delete; say @b.splice(0)
camelia rakudo-moar 64e1c7: OUTPUT«(timeout)»
rakudo-moar 64e1c7: OUTPUT«[1 (Any) 3 4]␤[1]␤»
jnthn ugexe: But if you remove the lazy does it not behave the same? 17:30
Oh...or...
ugexe .splice takes the first method splice candidate, and .splice(0) takes the 2nd or 3rd hitting this: github.com/rakudo/rakudo/blob/0871...ay.pm#L688
m: my @a = 1,2,3,4,5; @a[1]:delete; say @a[0..4]; say @a[lazy 0..*]; 17:31
camelia rakudo-moar 64e1c7: OUTPUT«(1 (Any) 3 4 5)␤(1)␤»
jnthn Oh, I mis-remembered
Something marked lazy will *not* return a lazy list
However, it will auto-bound to the elems of the array
Or something like that 17:32
jnthn reads the code more carefully
17:32 zakharyas joined 17:33 leont joined
jnthn Yeah, POSITIONS doesn't do the .eager itself, but rather the things that call it 17:33
So, I was right in so far as you ain't getting a lazy list back from a lazy slice 17:34
But wrong in that lazy is useless there
And the actual semantics are "keep going until an element doesn't exist"
ugexe darn, i was just going to ask if the `lazy` could just be removed
jnthn Or so the comment said 17:35
Oh no, it's almost right :)
See array_slice.pm line 15
Anyway, :delete causes EXISTS-POS to return False
And so a "lazy" will cause anything beyond a deleted element to be ignored 17:37
Which I think is what you're seeing
So the interesting question is maybe "why is the lazy there" :)
ugexe yea
psch felt @:delete to be somewhat foot-ropey for quite some time
ugexe heh, jnthn you added the lazy it looks like 17:38
jnthn Very possibly. Doesn't mean I'll remember why. :)
Does the commit message say why? :)
ugexe Make @a[^2] consistent with @a[0,1] 17:39
That is, it doesn't auto-truncate. Only lazy ranges will now truncate. An infinite range is automatically lazy; the existing behavior is now available as @a[lazy ^2].
17:39 von_cheam joined
ugexe there is also a @array[lazy 0..X] in Str.pm (added in same commit) 17:39
jnthn Hmm 17:40
17:41 raiph left
jnthn It may not be needed 17:41
Since I *think* the code is already bounds-checking $s
I guess "remove it and spectest" is one option :) 17:42
17:43 Actualeyes left
jnthn The lazy may have been added conservatively to preserve semantics. 17:43
17:43 zakharyas left
jnthn is running a spectest without the lazy ATM 17:44
dalek osystem: 15a121e | leont++ | META.list:
Add Getopt::Long to ecosystem
osystem: 598a95f | jnthn++ | META.list:
Merge pull request #160 from Leont/master

Add Getopt::Long to ecosystem
von_cheam Hello. Total newcomer to Perl6 here! I have a question - is there a way I can convert an array of strings to a single string, delimited by newline characters? I've tried: 17:45
for @strings -> $string { $big_string ~= $string ~ '\n'; }
But it doesn't work. (Ultimately what I want to do is write my array of strings to an empty file, but ideally in one go, avoiding multiple reads and writes; if there's a better way of doing this than creating one big newline-delimited string, that's cool too!)
ugexe @strings.join("\n") 17:46
timotimo the fastest way to create that large string would be @strings.join("\n") in any case
psch m: my @a = <abc def ghi>; my $str = @a.join("\n"); say $str
camelia rakudo-moar 64e1c7: OUTPUT«abc␤def␤ghi␤»
von_cheam Okay, awesome, thanks!
alpha123 von_cheam: the OS probably buffers multiple reads/writes anyway
psch von_cheam: note that .join doesn't give you a trailing newline (or whatever else you'd join with) 17:48
timotimo right. if you want a newline at the end, you can .say it into a file handle and get one appended for free
von_cheam By the by, is this the right place for newbie Perl6 questions, in general, or are you folks mostly here for maintenance, ongoing devolpment of the language, etc.?
alpha123 if it's related to perl6, you're fine here ^_^ 17:49
jnthn dinner &
von_cheam Magic. Thanks, all!
17:51 virtualsue joined 17:52 von_cheam left, guru__ left 17:54 bioexpress joined 17:56 Actualeyes joined 17:58 vendethiel joined 17:59 bioexpress left, bioexpress joined 18:02 bioexpress_ joined, bioexpress left 18:03 bioexpress joined 18:06 bioexpress_ left
perlpilot wonders how long before "put" becomes as common as "say" 18:08
18:08 leont left
[Coke] jnthn: rejected that ticket with something like your code snippet. 18:12
I definitely took a deep breath before responding.
psch [Coke]++ 18:13
very reasonable reply
18:15 musiKk joined 18:16 dakkar left 18:17 bioexpress left, andrewalker left 18:19 andrewalker joined 18:20 cognominal joined 18:21 vendethiel left, bioexpress joined
cognominal hi, is there a parser of Perl 5 in Perl 6 ? 18:23
perlpilot cognominal: not that I know of 18:24
18:26 prammer left
DrForr [Coke]: Probably Prancer, assuming I can get it into decent shape by then. 18:26
18:27 prammer joined
jnthn ugexe: Removing the lazy causes a regression 18:27
ugexe: So, not quite so simple.
18:28 yqt joined 18:29 bioexpress_ joined 18:30 virtualsue left 18:31 guru_ joined 18:32 ka joined 18:33 xinming left 18:35 xinming joined 18:38 addison_ joined 18:39 vendethiel joined
timotimo it could very well be we don't have anything in the docs yet for the combination of lazy and loop 18:41
18:42 virtualsue joined 18:43 yqt left 18:45 leont joined 18:46 domidumont joined 18:47 bioexpress_ left 18:48 musiKk left, bioexpress left 18:52 bioexpress joined 18:56 firstdayonthejob joined
[Coke] DrForr: is prancer like dancer but not? 18:57
If so, I need some kind of webapp handling I can run in p6, so let me know if I can help.
DrForr github.com/drforr/perl6-App-prancer 19:00
perlpilot It would be perfect if someone did a talk on Crust too 19:01
RabidGravy I'll really give it a good kicking when I'm done with this stupid XML thing
19:01 wamba left 19:02 bioexpress left
timotimo didn't the author of crust actually give a talk? at fosdem maybe? 19:03
RabidGravy I think so
perlpilot I dunno, but I haven't seen one.
DrForr One of the authors, yes.
Hotkeys Hey all
I've been using panda since I started perl6ing but I was wondering if there's any reason I should switch to zef? 19:04
or should I just stick with panda
RabidGravy it's whatever works for you really
Hotkeys are there any major differences?
or is the functionality more or less the same 19:05
[Coke] right now it's survival of the fittest, I think (panda v. zef)
I wish cpanm would ask me if I meant Vroom when I said vroom 19:06
TimToady
.oO(maybe someone should write zenda...)
Hotkeys just to be clear that's zef x panda? 19:07
TimToady well, zenda sounds cooler than paf 19:08
19:08 cdg left
Hotkeys true 19:08
RabidGravy :) 19:09
Hotkeys oh nice, "Str.trans can now be up to 160x faster" 19:10
that's quite an optimization
19:13 virtualsue left
Hotkeys was .trans just really slow before 19:14
or is it now lightning speed
psch m: for ^500 { "foo".subst(/o/, 'u', :g) }; say now - BEGIN now
camelia rakudo-moar 64e1c7: OUTPUT«0.2355113␤»
psch m: for ^500 { "foo".trans("o" => "u") }; say now - BEGIN now 19:15
camelia rakudo-moar 64e1c7: OUTPUT«0.02786291␤»
19:15 prammer left
psch Hotkeys: i don't think that's lightning speed yet, but i'd guess further optimizations will come from general optimization 19:16
i.e. lower method call overhead or things like that vOv
timotimo oh it's the toady :)
19:17 prammer joined
skids
.oO("general optimization" verges on an oxymoron :-)
19:17
psch *more* general optimization then :)
[Coke] .seen ingy 19:19
yoleaux I saw ingy 30 Jan 2016 23:04Z in #perl6: <ingy> {} are special in ""?
19:21 prammer left 19:22 virtualsue joined, espadrine left 19:23 prammer joined 19:27 Actualeyes left, _mg_ joined 19:28 virtualsue left
leont A while ago someone posted an example of how to make MAIN-HELPER(?) work, anyone still got a pointer? 19:28
19:29 prammer left 19:30 prammer joined, labster joined
leont Ah, google tells me it's MAIN_HELPER, but that doesn't get me far either 19:30
MadcapJake leont, this? gist.github.com/hoelzro/7fd925b4f4617a5c46b5 19:31
leont Yes that
19:32 fireartist joined
perlpilot but, it should be called MAIN-HELPER to jibe with the other kebab things 19:32
timotimo we have a rule for when things are UNDER_UPPER'd, though
like the mop is UNDER_UPPER'd perhaps?
MadcapJake perlpilot, I think it has to be MAIN_HELPER to work
lizmat cognominal: you mean something like "v5" ? 19:33
perlpilot timotimo: Well ... where is that rule written? :) 19:34
leont Now I'm wondering how MAIN_HELPER works with arguments… 19:35
timotimo *shrug* 19:36
perlpilot leont: maybe read src/core/Main.pm to see how the original MAIN_HELPER works? 19:37
s/original/default/
leont Ah, yeah that'd help 19:38
It works \o/ 19:42
dalek kudo/nom: 6952bec | lizmat++ | src/core/Buf.pm:
Get rid of unnecessary private methods

nqp::splice already returns the first argument, so no need for methods to make it return self
Skarsnik is p6-valgrind-m usable? 19:46
timotimo should be, yeah 19:47
it doesn't really have a way to specify what valgrind tool you want to use
RabidGravy I've found it quite useful in the past 19:48
timotimo yeah, it's good
but it really should also give "--full-cleanup" to moar
19:48 domidumont left
perlpilot didn't know or had forgotten about perl6-valgrind-m 19:49
timotimo we also have perl6-gdb-m
perlpilot those would make a good article or two about Perl 6 for some well circulated tech magazine :) 19:50
or maybe a YAPC talk or two 19:51
19:53 darutoko left
hoelzro I'm going to try and work on some improvements to the REPL today or tomorrow - I was thinking the next step is to create src/core/REPL.pm and have the higher level functionality live in Perl 6 rather than NQP. Does anyone think this is a *bad* idea? 19:57
19:58 wamba joined
[Coke] no. 19:59
perlpilot hoelzro: not knowing anything about the implementation, it sounds like an incredibly *good* idea.
[Coke] nqp doesn't really need an advanced repl.
hoelzro that's what I'm thinking =)
perlpilot If someone wanted to switch out the REPL, what would they have to do? Redefine a sub like we do with MAIN_HELPER? 20:01
20:01 SCHAAP137 joined
hoelzro hmm...that's an interesting idea. 20:01
I had not considered that 20:02
20:02 zpmorgan left
hoelzro I'm thinking that we could have a RAKUDO_REPL env var that specifies the name of a module that extends the existing REPL 20:02
if the module is not available, we fall back to the default
perlpilot If the redefine-a-sub pattern is something we're going to repeat, we may want to namespace such routines. 20:03
hoelzro like CORE::MAIN_HELPER or something? 20:04
cognominal lizmat++ ok, I see indeed that v5 includes a Perl 5 parser in Perl 6 github.com/rakudo-p5/v5/blob/maste...Grammar.pm
hoelzro I don't know if I
ugh
I don't know if I'd call it redefining subs - it's more like shadowing them 20:05
perlpilot yes, something like that. More like "over shadowing", but you're right :) 20:06
hoelzro++ btw 20:08
DrForr cognominal++ lizmat++ # that's what I need for another project... 20:09
perlpilot must be getting forgetful in his old age ... 20:11
I knew about (but had forgotten) v5 as well
20:11 pierrot left 20:12 molaf left 20:14 pierrot joined
cognominal DrFoor: note that some stuff is pasted from HLL::Grammar, maybe if the grammar were derived from HLL::Parser that would be not ncessary. On the other hand that makes it immune to change in HLL::Parser. 20:14
DrForr Yeah, the methods were familiar.
20:16 musiKk joined 20:19 yqt joined
DrForr waits to see if Crust::Request doesn't spontaneously die this time 'round. Not sure what was going on, the traceback was useless. 20:26
20:31 fireartist left 20:40 ely-se joined 20:44 addison_ left 20:48 sufrosti1o left 20:50 kjs_ joined
kjs_ good evening. quick question if I wanted to generated SQL statements from a JSON file (to store that json file in a database), what would be the best way to go about? 20:51
20:51 wamba left, wamba joined
kjs_ s/generated/generate/ 20:51
20:51 _dolmen_ joined 20:52 firstdayonthejob left
rindolf kjs_: can you use a JSON parser? 20:52
kjs_ rindolf: well that’s what I was thinking - inherit an existing JSON parser and override the methods to Do The Right Thing. But JSON::Fast and JSON::Tiny don’t support inheritance. 20:53
but perhaps that’s the wrong way.
rindolf kjs_: maybe use composition instead of inheritance. 20:54
20:54 TreyHarris left
kjs_ rindolf: mm ok. this isn’t as easy as I thought. Thanks for the hint, I’ll have to read up on that. 20:54
20:54 firstdayonthejob joined
rindolf kjs_: you're welcome . 20:55
20:57 zakharyas joined
perlpilot kjs_: look at JSON::Tiny. You could use its grammar and write your own action class. other than that, you'd only have to replace from-json which is like 5 lines or something 20:58
kjs_ perlpilot: great, thanks. I’ll look at that.
leont I think that with a tiny PR to JSON::Tiny, that from-json override isn't necessary either 21:01
I would add a :$actions argument to from-json, that defaults to the current value
moritz kjs_: why not simply use JSON::Tiny, and work no the data structure it returns
?
kjs_: then you'd be totally independent from the JSON implementation, and could easily switch it out later 21:02
leont Probably easier, yes
That's the XY question, really
kjs_ moritz: yes that’s probably easier. I’m not a perl programmer, but thought about the fact that perl6 has grammars, and I figured that the actions could emit SQl, as if it were the generated code. 21:03
moritz as the maintainer of JSON::Tiny, I strongly discourage subclassing of its action class; it's not part of the documented API
kjs_: even when you write a compiler, you usually don't emit code from the actions; you first put it into an abstract syntax tree
kjs_ moritz: yes, right. good point 21:04
moritz and the return value from from-json can act as your abstract syntax tree
dalek kudo/nom: 85172b2 | lizmat++ | src/core/Buf.pm:
Eliminate need for extra int unshift/prepend case
kudo/nom: fb1be44 | lizmat++ | src/core/Buf.pm:
Don't use CATCH to catch non-int push

Two reasons: 1. jnthn++ tells us that blocks with CATCH don't optimize very well. 2. the resulting private methods can be used in more places
21:04 zakharyas left
moritz kjs_: funny thing is, I recently talked somebody else out of the idea of mucking around with the JSON::Tiny internals :-) 21:06
21:08 rindolf left
kjs_ moritz: yes that makes sense now. Don’t know what I was thinking. Is there a function to read JSON from a file? 21:08
perlpilot moritz: clearly someone should make JSON::Huge to go along with JSON::Tiny where JSON::Huge's guts are fully exposed and tweakable. :)
kjs_ in J::T
Skarsnik from-json("myjson.json".IO.slurp)
something like that
21:09 cdg joined
leont I originally based YAMLish's internals on JSON::Tiny's, but it turns out to need way more guts… 21:09
21:11 _mg_ left
kjs_ Skarsnik: aha that works! 21:11
moritz perlpilot: well, I'm kinda considering that; offer a stream-based API maybe 21:12
perlpilot that would be nice. 21:13
Sounds like another potential article for a well-circulated tech mag too ;)
21:17 sufrostico joined 21:40 addison_ joined 21:45 Amnez777 left, Amnez777 joined, addison_ left 21:46 khw left
timotimo yeah, a stream-based api for json would probably be quite nice 21:50
i expect JSON::Fast could grow that rather quickly
21:51 firstdayonthejob left
timotimo it'd be ... fast ... even :) 21:52
21:53 firstdayonthejob joined, sno left 21:54 kid51 left, kid511 joined 21:56 skids left
timotimo hm. will i put that in a sub-namespace? 21:57
JSON::Fast::Streaming? sounds a bit backwards to have the "authority" in the middle, the functionality at the end and the "group" at the beginning 21:58
21:58 sftp joined
psch assuming it can be decoupled enough i'd put it as JSON::Streaming and let the user choose the actual 'backend' 21:59
no idea if that's actually feasible though 22:00
otherwise i'd probably use different EXPORT tags
i.e. < use JSON::Fast :streaming; >, if i don't misremember the syntax
timotimo so from-json would either be a streaming version or a object-generating version depending on the export tag? 22:01
i'm not sure i like that 22:02
22:02 musiKk left
timotimo well, i could use export tags as well as give the things different names 22:02
stream-json-from(...) perhaps
psch hm, yeah, exporting the same symbols with different semantics is a bad idea 22:03
timotimo can you link me to some prior art on streaming json parsers?
to see what exact tokens people would expect in the stream? 22:04
or would they expect to pass an object that has "on-object-enter"-like methods?
psch *i* personally definitely can't :)
dalek kudo/nom: ce32045 | lizmat++ | src/core/Buf.pm:
Make Buf.splice fully functional
psch i did find one via google though, in PHP :P 22:05
github.com/salsify/jsonstreamingparser
timotimo oke
psch there's a blog post linked from the github README which is probably better than perusing the source 22:06
timotimo my first idea was to expose the token stream as a lazy list rather than calling methods on an object
or even a supply would be neat, that'd allow for chunkwise json to come in, too, and have Supply in, Supply out
22:07 khw joined
timotimo does it make things easier to have a class with methods or a given with a bunch of whens? 22:09
Skarsnik why not having both? xD
timotimo well, i'll have to implement each one that i'd want to support 22:10
psch i'm not sure outputting streamily is that useful 22:11
22:11 espadrine joined
psch as in, one advantage of streaming parsers is to not keep the *source* in memory 22:11
but you'll still want to have finished the source before acting on the data you parsed, no? 22:12
22:12 sno joined
Skarsnik I am not fan off the object method, but giving callable is very C for me x) 22:12
22:13 lostinfog left
timotimo why would you want to wait for the document to complete before outputting the stream? 22:14
that sounds totally wrong to me
dalek kudo/nom: 7b2b7a1 | lizmat++ | src/core/Buf.pm:
Move private support methods to the Blob role
22:14 kaare_ left, TreyHarris joined, kaare_ joined
psch well, from what i understand you want to use JSON::Fast to get deserialized JSON as data into your perl6 program 22:16
which means as a user of JSON::Fast i need nothing less but finished top-level objects
so yeah, maybe the stream doesn't have to be completely finished, but the outer most started scope has to be 22:17
i do admit that i'm not really used to thinking with streaming parser, so take that as you may... :)
ingy hi [Coke] 22:19
timotimo yeah, i think you have the idea of streaming parsers completely wrong :) 22:20
22:20 autarch left
psch eh, i object on the "completely" :P 22:20
i'd agree with "mostly" though :)
timotimo i'm rather sure you want to receive the individual stream parts immediately 22:21
psch probably, yes. i think this comes down to me not being able to make up a use case 22:22
Skarsnik think of a jhuge html page you only want the header, stopping the processing of the document make sense, before parsing everything 22:24
psch huh. yes, known early data is definitely a use case
timotimo fwiw, using a streaming parser for the profiler would also be doable. if chrome came with such a thing
i'm not going to implement that, though :) 22:25
if you have a json structure where you mostly iterate over a bunch of arrays in it, you'll likely be able to benefit from a streaming parser
22:28 guru_ left
timotimo mhhh, with "next", "last", "succeed" and such, the listener that gets the data streamed to could be instructed to do specific things with the stream 22:28
i wonder if that'd be cool
22:29 kurahaupo joined 22:30 kurahaupo left
Skarsnik you mean like parse-json-stuff{sub { START { hey a thing}, END { finished parsing the thing }}} ? 22:30
psch ...i don't get the intent behind having the parser instruct the listener 22:31
timotimo nah
sorry
i meant the other way around, of course
psch oh
kjs_ Does anyone have a suggestion as to how to generate a ‘create table’ statement based on a hash? (which is generated by JSON::Tiny). I’m playing with prepared statements supported by DBIsh, which works great.
timotimo like "yeah, i don't care about this object at all, just go find the closing brace for me, will ya?"
psch hm, i'd rather export new CX for that 22:32
ControlException, that is
the semantics feel a bit different
[Coke] ingy: hio. pinged you some other channel.
#pkg, I think. 22:33
Skarsnik kjs_, well iterate over the hash and build the sql request?
kjs_ Skarsnik: yes, like, construct the sql query and then execute it. I suppose I got spoiled so quickly that it seemed like a naive solution :-) 22:34
22:35 sufrostico left 22:36 perlpilot_ joined 22:37 perlpilot_ left
psch eh, on the other hand 'next' or 'last' probably read much better than whatever statement_control token could be exported... 22:39
timotimo :)
i wonder how the streaming interface ought to handle errors 22:41
i'm not sure about the "trailing non-whitespace data" for example
if that kind of exception could be resumed, maybe something like "comments until newlines are now allowed" could be implemented with a custom listener that advances the $pos and just resumes work on stuff 22:45
22:49 sufrostico joined, Skarsnik left 22:50 prammer left 22:53 raiph joined 22:55 sufrostico left 22:59 mohae left, mohae joined
flussence «error: pathspec '2016.02' did not match any file(s) known to git.» -- I think --gen-moar needs a `git fetch --tags` somewhere... 23:03
23:11 ely-se left 23:13 vendethiel left
hoelzro sortiz: I took a look at your REPL PR, and it looks like it will do the job of handling unfinished "braced" input just fine! I'm a little concerned, however, that it will match too many other expressions for which multi-line mode wouldn't make sense 23:14
23:18 yurivish joined, vendethiel joined 23:21 skids joined 23:22 prammer joined, prammer left
sortiz hoelzro, I do a good amount of testing, and think the the context, for example the test for $inner.pos, results in a safe use. Have you an example of a failed case? 23:24
hoelzro I don't yet, I'm going to try to break it later ;)
sortiz *that the context*
23:24 TEttinger joined
sortiz In the grammar that kind of exceptions are produced when white-space isn't important and the parser can't get the expected token, in combination with the logic of the new eval, testing for end of line, gives me confidence. 23:29
And, indeed, much more testing is desired. 23:30
dalek kudo/nom: 0bf86c3 | lizmat++ | src/core/Buf.pm:
Make Blob.new be more like Buf.new.shift

With regards to error checking and giving sensible error messages. Also fix some issues with push/unshifting things like Ranges.
23:32
23:32 _dolmen_ left
dalek kudo/nom: a7ec540 | lizmat++ | src/core/Buf.pm:
Fix ordinal number of value with error
23:36
lizmat and with that, I wish #perl6 a good night!
sortiz 'night lizmat, good trick: ... ~ "ing! 23:40
23:41 vendethiel left 23:42 addison_ joined 23:43 espadrine left 23:45 Trey_ joined 23:46 tmch left, TreyHarris left, addison_ left 23:47 wamba left 23:48 firstdayonthejob left 23:49 ka left
RabidGravy right, that's enough. toodles! 23:53
23:57 kjs_ left, autarch joined 23:58 RabidGravy left