Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-03-28

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:08 Ben_Goldberg joined #perl6
00:09 BenGoldberg joined #perl6
00:15 nadim joined #perl6
00:20 vendethiel joined #perl6
00:20 _nadim joined #perl6
00:26 Actualeyes joined #perl6
00:31 znpy joined #perl6
00:38 kurahaupo joined #perl6
00:47 telex joined #perl6
01:14 vendethiel joined #perl6
01:38 Fatalnix_ joined #perl6
01:40 bjz joined #perl6
01:46 kalkin- joined #perl6
01:47 ilbot3 joined #perl6
01:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
02:02 BenGoldberg joined #perl6
02:48 noganex_ joined #perl6
03:15 bjz_ joined #perl6
03:15 TeamBlast joined #perl6
03:37 cdg joined #perl6
03:58 kaare_ joined #perl6
03:59 woosley joined #perl6
04:05 skids m: my @s = (supply { my $l = 5000 + $_ * 100; emit [*] $l..^$l+100; done } for 0..^10); my $s = [*] await(@s); say now - BEGIN now;
04:05 camelia rakudo-moar d0c675: OUTPUT«0.064998␤»
04:05 skids m: my @s = (supply { my $l = 50000 + $_ * 1000; emit [*] $l..^$l+1000; done } for 0..^10); my $s = [*] await(@s); say now - BEGIN now;
04:05 camelia rakudo-moar d0c675: OUTPUT«(signal ABRT)»
04:05 skids m: my @s = (supply { my $l = 500000 + $_ * 10000; emit [*] $l..^$l+10000; done } for 0..^10); my $s = [*] await(@s); say now - BEGIN now;
04:05 camelia rakudo-moar d0c675: OUTPUT«7.65016807␤»
04:06 skids the middle one reliably gets an Abort on my local machine as well.
04:09 bjz joined #perl6
04:09 Hotkeys skids: http://i.imgur.com/o94Yusy.png
04:10 skids Hrm...
04:12 skids I wonder if it's a magic number depending on machine speed/cores.
04:13 skids Or -- are you on Linux?
04:15 skids Oh wait -- try it by -e not in the REPL.
04:16 Hotkeys I am on the windows
04:16 Hotkeys oh
04:17 Hotkeys still workin' okay http://i.imgur.com/t2bobPT.png
04:17 Hotkeys but I am also on windows so
04:17 Hotkeys /o\
04:18 skids interesting that REPL is 2 slower.
04:18 Hotkeys yeah
04:20 Hotkeys much faster on the 500000 one
04:20 Hotkeys http://i.imgur.com/0cvR6Fh.png
04:20 Hotkeys oops
04:20 Hotkeys forgot to up the other numbers
04:21 Hotkeys about 2 seconds faster on the big one
04:21 skids For me the 500000 one aborts in the REPL.
04:21 skids Maybe something to do with handling of the "BEGIN now".
04:22 skids (the REPLY being slower, I mean)
04:25 skids Oh, actually I can't get an abort without doing the 'BEGIN now' part.
04:32 Hotkeys the repl does it in 10 and the -e does it in 7.8
04:32 Hotkeys for me
04:32 Hotkeys also I thought the idiom was now - INIT now
04:32 Hotkeys is BEGIN the better way to do it?
04:32 skids Hrm dunno.
04:36 skids Yeah I guess INIT is better.
04:40 skids well anyway, time for bed
04:50 Cabanossi joined #perl6
04:59 bjz_ joined #perl6
05:41 ponbiki joined #perl6
05:52 TimToady joined #perl6
06:15 labster joined #perl6
06:16 sortiz m: say ?IterationEnd; # Why True?
06:16 camelia rakudo-moar d0c675: OUTPUT«True␤»
06:28 ZoffixWin joined #perl6
06:41 CIAvash joined #perl6
06:48 domidumont joined #perl6
06:52 timotimo why care about the details of IterationEnd? its only quality is its identity
06:53 domidumont joined #perl6
06:54 timotimo i thought we would've put IterationEnd into RakudoInternals by now
06:56 firstdayonthejob joined #perl6
07:04 kaare_ If I 'panda install App::GPTrixie' should I be able to find the bin/gptrixie somewhere?
07:04 teatime kaare_: I ran into this the other day
07:04 teatime kaare_: you probably need to do 'panda rehash' afterward
07:05 timotimo you mean "rakudobrew rehash"
07:05 timotimo i think?
07:05 timotimo m: say uniname(0x180e)
07:05 camelia rakudo-moar d0c675: OUTPUT«MONGOLIAN VOWEL SEPARATOR␤»
07:06 teatime heh yes I guess so.
07:06 teatime and I guess that assumes the use of rakudobrew.
07:06 teatime so, I still don't know how it works in the general case.
07:06 timotimo in the general case, you'll have put the folder that binaries land in into your $PATH
07:06 timotimo like panda tells you at the end of bootstrap, iirc
07:07 teatime ok.
07:07 teatime maybe I should make a PR to add 'rakudobrew rehash' to the rakudobrew README.  it befuddled me for quite a while.
07:07 timotimo could be a good idea, yeah
07:16 jameslenz joined #perl6
07:18 fireartist joined #perl6
07:43 fireartist left #perl6
07:44 fireartist joined #perl6
07:50 _nadim joined #perl6
07:56 sortiz timotimo, If Iterable is a public API, IterationEnd should be. I understand with should be tested by identity, can't be other way. But as a Mu, I expect to be False :)
07:56 sortiz s/with/why/
07:57 wamba joined #perl6
07:59 timotimo it's a defined Mu, though
07:59 timotimo m: say so Mu.new
07:59 camelia rakudo-moar d0c675: OUTPUT«True␤»
08:03 Actualeyes joined #perl6
08:03 sortiz Yep, at first that surprises me, but it's irrelevant, though
08:04 timotimo Iterelevant :)
08:12 sivoais joined #perl6
08:14 darutoko joined #perl6
08:29 ufobat joined #perl6
08:30 sno joined #perl6
08:36 rindolf joined #perl6
08:44 masak antenoon, #perl6
08:45 teatime wb.
08:45 * masak needs regular scheduled downtime, much like other alie^Whumans
08:48 masak anyone here good at database design (or wants to discuss it regardless of skill)?
08:48 masak I have a design I'm about to commit to, and I'd like for someone to check if it's sane...
08:49 teatime can you link it?  I'm curious, if unskilled.
08:49 masak yeah. about to put together a gist.
08:50 nine masak: shoot
08:53 masak basically this: https://gist.github.com/masak/b357e469b40403672839
08:53 masak (I don't know how to best transmit a database schema, but I think that gets the idea across)
08:55 teatime you could use explicit foreign keys.
08:55 teatime and auto-increment IDs
08:55 masak both of those are good ideas. consider it done.
08:55 teatime and do you have to store JSON rather than create more DB structure
08:56 teatime that's kindof a red flag, but may make sense for your specific case.
08:56 masak (I'm actually going to go with postgres, not sqlite3. but I wanted an environment to type my commands into to double-check them)
08:56 masak teatime: yes, that red flag is why I brought it up here.
08:56 masak and it's borderline off-topic, except that my web application is running Perl 6.
08:57 masak teatime: the JSON blob is basically saying "hands off, DBMS, I'm a black box and schemaless!"
08:57 masak which is a red flag until proven innocent, kind of
08:58 teatime yes.
08:59 masak and that's where I'd like to be further enlightened, too. I know about the normalization forms, and I basically know why they are good and desirable.
08:59 masak but under which circumstances should and shouldn't I use a JSON blob like this in a database design?
08:59 masak what's the underlying principle that makes this a red flag, and how can I check whether I qualify?
09:00 DrForr AKA "I could have any random cr*p in me, have fun guessing what my data layout might look like!"
09:00 ninjaaron joined #perl6
09:01 masak yes, I appreciate that point.
09:01 teatime one benefit of RDMS is auto-checking referential integrity.  kindof like how in a typed language the compiler can detect more errors than in a loosely typed language.  if you use blobs like that, you at least lose that benefit for that data.
09:01 masak the Move table basically quickly descends into being... CouchDB.
09:01 teatime yes, if you're just going to store schema-less JSON blobs, might as well use a nosql DB.
09:02 ninjaaron is there a simple way to do "my @x = `ls -l`" in Perl6?
09:02 masak nine: qx[ls -l]
09:02 masak er, ninjaaron
09:02 masak sorry, nine :)
09:02 moritz ninjaaron: my @x = qx/ls -l/.lines
09:03 masak ah, moritz++ saw the need for .lines which I missed :)
09:03 ninjaaron moritz, masak Thanks! Does that grant a shell to the command?
09:03 Timbus yo.. just a headsup. postgres has json specific support: http://www.postgresql.org/docs/9.3/static/functions-json.html
09:03 masak teatime: it seems to me that if I don't have *references* in my JSON -- and I don't -- then I don't need to feel bad about losing checking for those.
09:04 masak teatime: remains then checking data types.
09:04 Timbus not that i'd suggest using it, but its there
09:04 teatime masak: and there's also checking on- exactly, the types of data, and existence/non- of items.
09:04 masak Timbus: why wouldn't you suggest using it?
09:04 Timbus teatime is handling that argument for me
09:04 teatime also I dunno how efficient variable-length field lookups are, but I don't know much about SQL.
09:04 Timbus :P
09:05 masak teatime: checking types/existence is a benefit that might do me some good in the future, yes.
09:05 teatime there are also disadvantages to laying everything out in SQL.
09:05 masak teatime: but I have to weigh it against the cost of increased schema complexity.
09:05 masak right.
09:05 teatime exactly.
09:05 masak I have three types of moves.
09:05 teatime you could always use an ORM :)
09:06 masak so if I started laying this out, I'd have to model a sum type in SQL.
09:06 masak yes, I could use an ORM, of course :)
09:06 masak it doesn't sound more attractive than "serialize the stuff into JSON"... :)
09:06 moritz you could not use an ORM, of course :-)
09:06 teatime that's a fair enough assessment.
09:07 * masak .oO( <intuitionist> you could not not use an ORM, of course :) )
09:07 teatime in general, though, you may find that thinking about your data model up-front is time well spent, regardless of whether it's to create an SQL schema or not.
09:07 masak oh, no doubt
09:08 teatime while we're on the subject.  is there any mature / non-painful JSON schema tool?
09:08 masak it's that kind of thinking that led me to storing the *moves* rather than the board state
09:08 Timbus https://www.compose.io/articles/is-postgresql-your-next-json-database/ here ya go btw, masak. nice overview and stuff
09:08 moritz teatime: for Perl 6, or in general?
09:08 teatime in general.
09:09 moritz jsonschema is mature, but not painless
09:09 teatime the last time I tried to make use of actual "JSON Schema" I eventually gave up, it was terrible.
09:09 teatime I don't remember in what way, just that it was infuriating.
09:09 sortiz masak, I'm interested in the details_json structure: what's a "move".
09:10 sortiz ?
09:10 Timbus rjbs (?) made a json schema tooly thingy.. which looked okay.
09:10 masak sortiz: detailed here: https://github.com/masak/nex/blob/master/README.md
09:11 Timbus was it rx? yes. google says it's rx
09:11 masak sortiz: besides those two move types, there's also "swap", "resign" and (I guess) "timeout"
09:11 teatime a generic schema language w/ a validator that could do both JSON and YAML would be sweet.  even if it only handled the most basic types.
09:11 Timbus thats the one.
09:12 teatime I mean it could even do Python/Perl/etc. aggregate datastructures.
09:13 perlawhirl joined #perl6
09:14 RabidGravy joined #perl6
09:17 teatime Timbus: looks like what I asked for :)
09:18 sortiz masak, ok, so for every move type, the data to store is different; so json seems good to me. The other option is to create a table per type, per move store the type and the row-id of the specific entry. I don't see the need.
09:22 masak right; that's what I meant by "sum type"
09:22 masak it seems over-the-top to me too
09:23 masak if I could imagine some situation where I'd get returns from having all that structure in the database... but I can't
09:23 timotimo to be fair, postgresql outperformn many "nosql" DBs out there in some benchmarks :)
09:23 sortiz Yep, RDBMS are good for *regular tabular* data, otherwise nonsql are better options.
09:23 masak right; great.
09:24 masak so the underlying principle is "follow the normalization principles for regular tabular data; disappear into a blob when the data gets heterogenous"
09:24 masak that's the kind of rationale I was looking for :)
09:24 timotimo the thing with nosql is that you almost never have something truly schemaless
09:24 masak indeed; I *could* make this into a schema
09:25 masak it's a sum type, and I know how to model one in SQL
09:25 timotimo for this use case, i'd say a json field is fine
09:25 masak cool.
09:25 sortiz timotimo, Yes, but many *other* "nosql" outperform any SQL solution.
09:26 sortiz Sometimes a simple KV store can suffice.
09:26 RabidGravy with Sofa I'm working toward being able to do a Document Object Mapping thing, where your class definitions are the schema
09:27 RabidGravy also see rethinkdb which is "NoSQL" but has some relational and schema capabilities
09:29 Hotkeys http://m.imgur.com/xY2xDxo?r
09:29 Hotkeys Oops wrong chan
09:30 timotimo poor doge
09:30 masak such scorpion. much regrets.
09:30 teatime oh god, Hotkeys, that's terrible.
09:34 masak poor scorpion
09:35 Woodi hi today :)
09:37 * masak .oO( always jam yesterday or jam tomorrow, never jam today... )
09:39 timotimo http://suppe.tobold.cc/post/681686396/Image - have a pleasant animal picture/gif to compensate
09:39 DrForr No boom today. Boom tomorrow.
09:39 masak teatime, Timbus, DrForr: thank you for your input on schemas. that was valuable to me.
09:39 timotimo big badaboom
09:39 teatime thank you.
09:39 teatime for the eyebleach.
09:39 timotimo YW
09:39 timotimo :3
09:39 DrForr Or "*Raspberry*. Only one man would *DARE* give me the raspberry."
09:40 timotimo Whatever Starrr! >:(
09:40 Woodi masak: about: CREATE TABLE Game(id INTEGER PRIMARY KEY);  looks like perfect but players ids or just description could be added
09:41 masak Woodi: yes, of course.
09:42 masak I guess I like to focus on one slice of the problem space at a time. ;)
09:42 masak there's also no mention of the game type, or the board size.
09:43 masak or timestamps for the moves.
09:43 DrForr Go, by chance?
09:43 timotimo not quite
09:43 timotimo it's called nex and lives on github under masaks user
09:43 masak https://github.com/masak/nex
09:44 DrForr You have my interest :)
09:44 masak I already have a working game engine, in 189 LoC Perl 6.
09:44 timotimo DrForr: so far you know it's a game that has moves to it ... so ...? :D
09:44 DrForr Ah, got it. (having played Hex...)
09:44 Woodi masak: as with 99% things, schema depends on how you use it. even redundand columns are usefull. eg. you can have column with values that are in json blob but you use them a lot. a bit like extracting some data from raw data in data mining
09:44 masak now I "just" need to expose it on the web so I can play it with a friend...
09:44 timotimo Woodi: why not just use a view for that?
09:44 Hotkeys Nice masak
09:44 nine masak: note that PostgreSQL also supports inheritance of tables. That could work for your different move types, too.
09:45 masak nine: intriguing -- even if I don't believe I'll make use of it :)
09:45 masak nine: url?
09:46 Woodi timotimo: for no-players-ids thing or second one ?
09:46 masak Woodi: are you familiar with the distinction between OLTP and OLAP?
09:46 nine masak: what I don't like about your use of JSON is, that your JSON does actually have very limited options for the structure. So it's far from schemaless. Question is: is it imaginable that you'd ever want to query only parts of this JSON-data or use parts of it in a where clause or an aggregate?
09:46 timotimo Woodi: for whatever's in the json blob
09:46 Woodi masak: not from my head, but I'm sure wiki will have short definition for them :)
09:47 masak nine: actually, for my use of the JSON I might as well use a comma-separated list
09:47 masak nine: the only thing JSON gives me over that is descriptive key names
09:47 nine masak: http://www.postgresql.org/docs/9.5/static/ddl-inherit.html
09:47 Woodi timotimo: becouse it is blob and situation is that that data are black boxed. but some part can be copied to some column, if usefull
09:48 masak Woodi: my point is that the shape of the schema depends a lot on whether you're doing mostly-reads or mostly-writes on the database
09:48 nine masak: then you can as well use PostgreSQL's arrays for these lists and get Perl 6 arrays back from your queries.
09:48 nine AFAIK DBIish already supports that
09:48 timotimo i don't understand why you would copy that data out instead of just using a view, though
09:48 DrForr If I were back in the US I'd have access to my Hex strategy book.
09:48 masak Woodi: your advice wrt denormalization is good for mostly-reads, but bad for mostly-writes :)
09:48 masak nine: ooh, excellent
09:49 masak nine: so in the end I had an XY problem, and you managed to suggest the right solution. awesome.
09:49 masak nine++
09:49 nine masak: I think your biggest problem is that PostgreSQL really has excellent support for all the possible designs. Even if you want to select only part of the JSON or need an index on it, you can do that.
09:50 masak sounds like a nice problem to have, at least in the long run
09:50 masak DrForr: would that be the Cameron Browne book, by any chance?
09:51 Woodi masak: right. but you need to analize that data later and parse that blob anyway :)
09:51 DrForr The name rings a bell, let me look.
09:51 masak http://www.amazon.com/Hex-Strategy-Making-Right-Connections/dp/1568811179
09:52 DrForr Yes, it is.
09:52 masak that book is... decent. nothing wrong with it. but at some point I felt that we had a much bigger corpus online than was collected in that book.
09:52 masak at http://www.hexwiki.org/ to be exact.
09:52 masak still hoping to bring that site back at some point... :/
09:53 timotimo MadcapJake: i've had an expert friend tell me what the difference between VAO and VBO is. interested?
09:53 Hotkeys After reading the Nex readme I was like "this sounds like go" but then I read the wiki and it isn't go
09:53 masak Hotkeys: connection games have quite a different feel than Go.
09:53 DrForr No, it's not.
09:53 Woodi timotimo: I assume parsing json is not sql db job. so: no possibility to create view
09:54 masak Hotkeys: in Go the main resource is territory. in Hex and Nex, your main abstractions tend to be chains and connections.
09:54 Hotkeys Ah
09:54 timotimo postgres has json and jsonb fields along with operators to operate on them, and it can also create views and indices from json blobs
09:54 sortiz Btw, what's the best/fastest perl6's JSON engine? Need to use that in DBIish for the JSON column types.
09:54 Hotkeys Provably json::fast
09:54 masak provably!
09:54 Hotkeys Probably*
09:55 tadzik provably too
09:55 * masak .oO( it has "::fast" in the name. QED! )
09:55 Hotkeys Yeah I realized that I can't just leave that typo :p
09:55 Hotkeys Masak++
09:55 Hotkeys Actually isn't there a json::faster
09:55 masak *groan*
09:55 timotimo there was, but it got nommed by JSON::Fast
09:55 masak I'd skip directly to json::fastest
09:55 DrForr I keep meaning to finish writing my Kamisado solver.  https://en.wikipedia.org/wiki/Kamisado - There's apparently a 43-move forced win.
09:56 timotimo json::faster only provided a to_json that was fast, while json::fast only provided a from_json that was fast
09:56 Hotkeys Ah ok
09:57 sortiz timotimo, there are in core?
09:57 masak DrForr: by the looks og images.google.com, looks like a fun game (with no sense of color scheme) :P
09:57 timotimo sortiz: there are what in core?
09:58 sortiz json::faster and/or json::fast
09:58 timotimo no, both in the ecosystem
09:58 DrForr masak: If you're coming to NLPW I'll bring my set.
09:59 sortiz timotimo, There are plans for something in core?
10:00 timotimo not for json, as far as i know.
10:01 sortiz ok, thks
10:01 timotimo we do have to_json and from_json in rakudo, but that's not per perl6 spec
10:01 timotimo m: say from_json('["hi sortiz", "how are you"]')
10:01 camelia rakudo-moar d0c675: OUTPUT«5===SORRY!5=== Error while compiling /tmp/rB9ZFrs6bn␤Undeclared routine:␤    from_json used at line 1. Did you mean 'from-json', 'to-json'?␤␤»
10:01 timotimo m: say from-json('["hi sortiz", "how are you"]')
10:01 camelia rakudo-moar d0c675: OUTPUT«[hi sortiz how are you]␤»
10:01 timotimo m: say from-json('["hi sortiz", "how are you"]').perl
10:01 camelia rakudo-moar d0c675: OUTPUT«$["hi sortiz", "how are you"]␤»
10:02 Hotkeys How do those compare to the functions in json::fast
10:03 timotimo they are slower
10:03 araujo joined #perl6
10:05 araujo joined #perl6
10:05 sortiz Umm, oki.
10:07 timotimo i think they were brought in for supporting older variants of our compunitrepo spec
10:07 araujo joined #perl6
10:07 sortiz timotimo, and seems buggy!
10:07 timotimo or maybe we still need it for that?
10:08 masak DrForr: I'll not be at NLPW, sadly :/
10:08 sortiz m: my @a = from-json('["hi sortiz", "how are you"]'); say @a.elems
10:08 camelia rakudo-moar d0c675: OUTPUT«1␤»
10:09 timotimo yeah, it returns an itemized array there
10:09 masak DrForr: have to be much more selective now that @family > 0
10:09 timotimo m: my @a = from-json('["hi sortiz", "how are you"]'); say @a.list.elems
10:09 camelia rakudo-moar d0c675: OUTPUT«1␤»
10:09 timotimo uhm...
10:09 araujo joined #perl6
10:10 timotimo m: my @a = from-json('["hi sortiz", "how are you"]'); say @a.perl; say @a[0].perl
10:10 camelia rakudo-moar d0c675: OUTPUT«[["hi sortiz", "how are you"],]␤$["hi sortiz", "how are you"]␤»
10:10 timotimo ah, yeah
10:10 timotimo when you assigned the itemized list to the array, you got an array with a single element in it
10:10 timotimo that's why .elems and .list.elems gave 1
10:11 sortiz Yep, the itemized return is the bug.
10:11 _nadim joined #perl6
10:14 timotimo IMO it could move to Rakudo::Internals
10:14 DrForr masak: I understand, no worries.
10:20 Woodi anyway, "schemaless" things are recipe for disaster or unhappines at least :)  usually stable schema skeleton is known and free form data can be put into "extension". I think never protocols are designed with ways to extend them
10:20 Woodi newer* ?
10:24 teatime Is it safe to assume that this syntax for regexes is not available in rakudo?  https://en.wikipedia.org/wiki/Parser_Grammar_Engine#Internals
10:25 teatime for defining regexes/grammars, not Perl operators.
10:26 timotimo the operator precedence parser is a special feature built in a grammar, but it's not a feature of perl6 grammars in general
10:27 teatime forgive me, I don't understand.
10:27 teatime do you mean, operator precedence is something you have to explicitly/manually implement for a given grammar?
10:27 teatime if so, is there many a module to help?
10:27 teatime s/many/maybe/
10:28 timotimo you understood correctly
10:29 timotimo we don't seem to have an OPP in the ecosystem yet
10:29 teatime I really enjoy this perl6 feature.  I should probably learn more about parsing in general.
10:29 tadzik OPPa grammar style
10:29 masak teatime: I implemented that once, if you're interested
10:29 timotimo for 007? :)
10:30 masak for GGE
10:30 teatime masak: sure.  I've seen one or two methods.
10:30 masak oh yeah, and for 007
10:30 masak teatime: http://strangelyconsistent.org/blog/what-you-can-do-with-ggeoptable-that-you-couldnt-without
10:30 perlawhirl does p6 have an equivalent to PERL5LIB ?
10:30 tadzik yes, it's called PERL6LIB
10:30 teatime there's supposedly a PERL6LIB, but the doc said it may go away
10:31 masak the doc is wrong
10:31 masak or at least alarmist
10:32 teatime I think there are lots of wrong perl6 docs out there :)
10:32 perlawhirl yeah i tried PERL6LIB but it still doesn't find my module
10:32 masak try harder! :)
10:32 masak teatime: yes, but there's an excellent team here working quite hard on making it less wrong all the time.
10:33 RabidGravy yeah it definitely works as half the modules tested on travis use it
10:33 teatime masak: no offense intended.
10:33 perlawhirl right... commencing try harder :D
10:33 teatime and there's nothing you can do about blog posts from e.g. 2006 anyway.
10:34 masak m: class C { method foo {}; method bar { self!foo() } }; C.new.bar
10:34 camelia rakudo-moar d0c675: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zJP3e7gf8_␤No such private method 'foo' for invocant of type 'C'␤at /tmp/zJP3e7gf8_:1␤------> 3 { method foo {}; method bar { self!foo(7⏏5) } }; C.new.bar␤»
10:35 masak this error message leaves something to be desired. the most likely problem is that the author wanted to make `method foo` private, but forgot/failed somehow.
10:36 masak teatime: oh, none taken. and I'm actually not part of that team, even though I've told myself many times that I should put some tuits on that.
10:40 dvinciguerra joined #perl6
10:41 teatime masak: do GGE::Exp / GGE:: OPTable still exist/work ?
10:42 spider-mario joined #perl6
10:43 teatime 'Tests: 43 Failed: 42' hehe, nice.
10:43 masak teatime: was gonna say 'probably not'
10:44 masak this is where I also hand you that all-uppercase NO WARRANTY part of the license :P
10:44 teatime thank you for the inspiration nonetheless
10:45 masak hold on, I'll link you to the working one in 007 :)
10:45 RabidGravy well, I just tested 48 of my modules and they all pass
10:46 masak https://github.com/masak/007/blob/00fac05d30552187614b61f22e6dc9e3770e517e/lib/_007/Parser/Actions.pm#L289-L399
10:47 masak actually, https://github.com/masak/007/blob/00fac05d30552187614b61f22e6dc9e3770e517e/lib/_007/Parser/Actions.pm#L218-L399
10:47 masak in 007 things happen in two levels, sort of.
10:48 masak because EXPR is basically `rule EXPR { <termish> +% <infix> }`
10:48 masak we handle infix precedence resolution in `EXPR`, and prefix/postfix precedence resolution `termish`
10:48 masak Perl 6 is not so lucky, since the precedence of infixes and prefixes/postfixes can mix
10:51 teatime perhaps I am just being overly ambitious, given my compsci-fu.
10:52 kaare_ teatime, timotimo: Thanks for panda/rakudobrew help.
10:52 timotimo sure :)
10:54 masak teatime: I for one encourage you heading down this road :)
10:54 masak I've had a lot of fun on it over the years
10:58 FROGGS joined #perl6
11:01 Actualeyes joined #perl6
11:04 sortiz m: use Test; is \(:id(1), :name('First')), \(:name('First'), :id(1)); # I don't see that before!
11:04 camelia rakudo-moar d0c675: OUTPUT«This representation (VMIter) cannot unbox to a native string␤  in sub is at /home/camelia/rakudo-m-inst-1/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 136␤  in block <unit> at /tmp/p8rcCdmq55 line 1␤␤»
11:09 masak looks like a bug of some kind
11:17 vendethiel joined #perl6
11:19 edehont joined #perl6
11:19 teatime <![{]>    # }], you're welcome vim
11:20 teatime lolol, I suspect will use this trick.
11:22 timotimo yeah :|
11:22 jnthn Guess it needs to learn about Perl 6 char classes :)
11:24 teatime yeah.  there's a perl6 syntax definition but hard to tell how old it is
11:24 teatime and/or how old the typical distro vim release is
11:24 kid51 joined #perl6
11:25 timotimo that has recently (well, maybe a year ago now) gotten a really nice overhaul
11:25 timotimo but i don't know if that version is shipped with your vim
11:25 timotimo it is on github, though. as "vim-perl" i think?
11:27 RabidGravy yeah
11:27 teatime installed.  we'll give it a shot.
11:45 RabidGravy today I am hating the interaction of roles and BUILD :(
11:46 Begi joined #perl6
11:47 timotimo i think many people aren't quite happy with that, either
11:50 RabidGravy is there any way at all to ensure the role's attributes get initialised in the presence of a BUILD in a consumer without the consumer doiing anything special?
11:51 timotimo you can probably call $?PACKAGE's BUILD or some trick like that
11:52 RabidGravy but the consumer has to do that
11:52 timotimo not if you override the BUILD via the role?
11:53 RabidGravy role's BUILD doesn't get called at all
11:53 timotimo darn :|
11:53 lizmat RabidGravy: even if it's the only BUILD in town
11:54 RabidGravy oh, if the role has a BUILD and the consumer doesn't then it's fine
11:55 vendethiel joined #perl6
11:55 RabidGravy but if the role is part of a public interface then you can't guarantee that to be the case
11:56 lizmat I guess we will need some compose trickery, because if the client has a BUILD, the role's build is never really composed, right ?
11:57 timotimo .o( will we create a ROLEBUILD that gets special magic added to it? )
12:09 jnthn We've sometimes speculated that submethods will compose in such a way that all of them get called
12:10 jnthn Probably a 6.d feature, which will be made 6.d+ only by passing an option to the .^compose method
12:10 jnthn (As in, having the compiler do so)
12:10 teatime masak: what is the purpose of 007?  Exercising features of Perl6?  Personal learning/playing?
12:11 jnthn teatime: So far as I know, research/exploration of macros/slangs to inspire an implementation of these features in Perl 6.
12:12 jnthn And probably some amount of other reasons :)
12:15 teatime hrm, you know what would be sweet (and might exist):  an aggregator of perl6 blogs.
12:15 teatime planet.perl6.org ?  :)
12:15 tadzik perl6planet is like that
12:15 tadzik yeah
12:16 lizmat pl6anet.org
12:17 timotimo we could totally redirect to pl6anet.org from planet.perl6.org
12:19 timotimo to be fair, the "Blogs" link in the footer of perl6.org already links to the pl6anet
12:23 sufrostico joined #perl6
12:26 Josh4all joined #perl6
12:27 MadcapJake timotimo: yes, do tell!
12:34 perlpilot joined #perl6
12:41 RabidGravy right, having reviewed all the options I have concluded that there is no hack I can do in a role that will ensure its attributes will get initialised whatever the consumer does so am going for the "document in bold" option
12:41 [Coke] ORM-- # my 2¢ on a backscroll
12:42 RabidGravy I think that could be simplified to "software--" without the need for backscroll
12:48 stmuk_ RabidGravy: does https://github.com/stmuk/MoarVM/commit/eba9b0f00c0e1b7f6f4721f68183d5ae0d4b0fc3 fix your FreeBSD 8 issue?
12:48 Begi m: say 'yes !' if 'a' ~~ ('a', 'b', 'c');  #how can I do ?
12:48 camelia rakudo-moar e5174b: ( no output )
12:50 jnthn m: say 'yes !' if 'a' (elem) ('a', 'b', 'c'); # one way :)
12:50 camelia rakudo-moar e5174b: OUTPUT«yes !␤»
12:50 RabidGravy or
12:50 RabidGravy m:  say 'yes !' if 'a' ~~ any('a', 'b', 'c')
12:50 camelia rakudo-moar e5174b: OUTPUT«yes !␤»
12:51 Begi Okey, thanks ! I've forget the 'any' :-°
12:51 RabidGravy stmuk_, let me see
12:57 cdg joined #perl6
12:57 timotimo MadcapJake: so, a VAO combines configuration options, so to speak, of multiple VAOs into one object that you can bind in one step. sadly, it seems like you can't use a VAO without writing a tiny little pixel shader to work it, as opposed to VBOs, for which there are sufficiently many functions to set up all kinds of stuff
12:58 * stmuk_ does the clang 3.4 src/core/interp.o wait :/
12:58 timotimo hah
12:58 MadcapJake timotimo: neat, so stick to the VBOs ;)
12:59 timotimo ideally, we'd bind all functions necessary to work shaders, though
13:02 sortiz RabidGravy, In DBIish I have the same problem with the roles. :-(
13:03 RabidGravy stmuk_, it appears to help yes
13:03 stmuk_ ty
13:07 RabidGravy but yeah that thing after interp.o taking forever is a pain, I've abandoned building on FBSD10 on a VM here more than once
13:07 Actualeyes joined #perl6
13:07 Ven joined #perl6
13:08 stmuk_ clang 3.6 at least (which is in ports) works fine
13:09 stmuk_ there are probably NC problems with using a diff compiler to the system one however, hopefully FB 11 has a more recent cd lang
13:09 stmuk_ ^ recent clang
13:15 masak teatime: what jnthn said.
13:16 masak teatime: 007 emerged as a basically-necessary side project to prototype Perl 6 macros in something more "fluid" than Rakudo (and where the consequences of failed experiments are smaller)
13:17 masak (and feel free to take the "fluid" as meaning "I understand the 007 code base better than the Rakudo code base") :P
13:18 teatime :)
13:18 teatime as a much-smaller-scope language parser, it is a super-useful example.
13:29 skids joined #perl6
13:38 mullagain joined #perl6
13:42 rudi_s Is this expected?
13:42 rudi_s m: sub foo(:%args) { say %args.perl }; foo :args(a => 1); foo :args(a => 1, b => 2);
13:42 camelia rakudo-moar e5174b: OUTPUT«:a(1)␤Type check failed in binding %args; expected Associative but got List ($(:a(1), :b(2)))␤  in sub foo at /tmp/DPyNLmRhpz line 1␤  in block <unit> at /tmp/DPyNLmRhpz line 1␤␤»
13:42 rudi_s Do I have to call it with foo :args(%(a => 1, b => 2)) or is there a better way?
13:42 zakharyas joined #perl6
13:43 molaf joined #perl6
13:43 masak I use private methods in Perl 6 more than I thought I would
13:43 masak rudi_s: you do have to do that, to a first approximation
13:44 jnthn It's expected
13:44 masak rudi_s: `a => 1, b => 2` is definitely a List and not an Associative
13:44 jnthn m: sub foo(:%args) { say %args.perl }; foo(:args{a => 1, b => 2});
13:44 camelia rakudo-moar e5174b: OUTPUT«{:a(1), :b(2)}␤»
13:44 jnthn That's the shortest way to force a hash
13:44 rudi_s Yeah. Automatic "conversion" would've been nice in this case, but I can live with it.
13:44 rudi_s Thanks.
13:45 jnthn Well, when you can be explicit about the hash in the same number of chars... :)
13:45 RabidGravy or "foo(args => { a => 1, b => 2 })"
13:45 rudi_s Yeah, {..} is really nice. Thanks.
13:46 ecocode joined #perl6
13:49 teatime you could also take a list of pairs as varargs, and make it into a hash yourself at the beginning of the function?  would that be a bad idea?
13:49 teatime I thought arbitrary/not-validated variable-length kwargs was built-in
13:51 masak they are
13:51 masak m: sub foo(*%_) { say %_.perl }; foo(oh => "hai", how => "are you?")
13:51 camelia rakudo-moar e5174b: OUTPUT«{:how("are you?"), :oh("hai")}␤»
13:51 jnthn We just generally don't confuse a list of pairs with a hash, 'cus they ain't the same thing. Something somewhere has to say it wants to make a hash of them, 'cus it's an information-losing operation
13:52 masak even in Perl 5 they are not the same thing
14:09 sue joined #perl6
14:14 [Coke] jnthn++ for the work on the heap analyzer.
14:14 Roamer` joined #perl6
14:14 * masak .oO( the ultimate heapster )
14:16 sortiz m: my $f = sub :: { (1,2,3,4) }; say $f(); # So far, so good
14:16 camelia rakudo-moar e5174b: OUTPUT«(1 2 3 4)␤»
14:16 pmurias joined #perl6
14:17 sortiz m: my $f = sub :: { (1,2,3,4) }; for $f() { say $_ }; # What!
14:17 camelia rakudo-moar e5174b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KyjgNPrCLc␤This appears to be Perl 5 code␤at /tmp/KyjgNPrCLc:1␤------> 3my $f = sub :: { (1,2,3,4) }; for 7⏏5$f() { say $_ }; # What!␤»
14:17 sortiz m: my $f = sub :: { (1,2,3,4) }; for $f.() { say $_ }; # Works, LTA
14:17 camelia rakudo-moar e5174b: OUTPUT«1␤2␤3␤4␤»
14:18 Roamer` Hi, is it expected that I can't do a ~~ match within a grammar's action method?
14:18 Roamer` m: grammar a { token TOP { \w } }; class Actions { method TOP($/) { if "abc" ~~ /b/ { say "yep" } } }; a.parse("w", :actions(Actions))
14:18 camelia rakudo-moar e5174b: OUTPUT«Cannot assign to a readonly variable or a value␤  in method TOP at /tmp/eCiUnztAtu line 1␤  in regex TOP at /tmp/eCiUnztAtu line 1␤  in block <unit> at /tmp/eCiUnztAtu line 1␤␤»
14:18 masak sortiz: congratulations, you managed to trigger a p5 warning false positive!
14:19 moritz Roamer`: yes, because you specified $/ as a parameter, which makes it read-only
14:19 Roamer` moritz, ah, it works if I rename the parameter.  Thanks!
14:19 moritz Roamer`: if you name it $m or so, a smart-match which sets $/ is possible again
14:19 sortiz rakudobug, I hope ;.)
14:23 sortiz masak, if it were only a warning, but is a compiler error :-(
14:24 masak sortiz: arguably the p5 compat error overreaches a bit here, yes
14:24 masak sortiz: in order for it to be p5 code, it'd have to be `$f` without the `()` after
14:25 sortiz m: my $f = 1; for $f { .say }; # and this works well.
14:25 camelia rakudo-moar e5174b: OUTPUT«1␤»
14:26 masak oh!
14:26 masak the compiler thinks that the parens are for the Perl 5 list!
14:27 masak $ perl -Mstrict -wE 'my $f; for $f() {}'
14:27 masak syntax error at -e line 1, near "() "
14:27 masak but that still doesn't make sense. seems there has to be whitespace there.
14:28 sortiz m: my \f := sub :: { (1,2,3,4) }; for f() { say $_ }; # and this
14:28 camelia rakudo-moar e5174b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/M4xOpe7wia␤Variable '&f' is not declared␤at /tmp/M4xOpe7wia:1␤------> 3my \f := sub :: { (1,2,3,4) }; for 7⏏5f() { say $_ }; # and this␤»
14:29 jnthn The form f() always looks up &f (unless there's some type f, in which case it's a coercion type)
14:29 jnthn m: my &f := sub :: { (1,2,3,4) }; for f() { say $_ }
14:29 camelia rakudo-moar e5174b: OUTPUT«1␤2␤3␤4␤»
14:29 jnthn m: my \f := sub :: { (1,2,3,4) }; for f.() { say $_ }
14:29 camelia rakudo-moar e5174b: OUTPUT«1␤2␤3␤4␤»
14:30 sortiz jnthn, In my use case f (or $f) is in fact an object with a defined CALL-ME method
14:31 diakopter m: class f {};  my &f := sub :: { (1,2,3,4) }; for f() { say $_ }
14:31 camelia rakudo-moar e5174b: OUTPUT«Method 'shortname' not found for invocant of class 'Perl6::Metamodel::CoercionHOW'␤  in block <unit> at /tmp/JrxCb7whpD line 1␤␤»
14:31 diakopter You're a CoercionHOW!
14:32 jnthn sortiz: $f.() will also work as a workaround for now, while the Perl 5 warning is toned down some
14:32 jnthn I guess making it insist on whitespce before teh ( would help
14:34 telex joined #perl6
14:34 khw joined #perl6
14:39 sortiz jnthn, ok. At the moment I'll live with that. ;-)
14:45 sufrostico joined #perl6
14:45 znpy joined #perl6
14:46 ptolemarch joined #perl6
14:49 [Coke] m: role Foo[$x] { }; say Foo[42].WHO.^name
14:49 camelia rakudo-moar e5174b: OUTPUT«VMNull␤»
14:49 masak VMNull!? :)
14:50 teatime if cwd has lib/ and resources/ and t/, 1) how do you run the tests in t/, and 2) how do you allow use'ing your module and accessing your resources as-if installed?  is PERL6LIB="." or something sufficient?  or can you tell panda to install-editable like you can w/ python virtualenvs?  just looking for a pointer to the basic dev workflow.
14:50 jnthn Interesting answer. :) A CurriedRoleHOW really has no meaningful .WHO, though I guess we could shove some throw-away Stash on there
14:51 [Coke] https://rt.perl.org/Ticket/Display.html?id=123488
14:51 RabidGravy teatime, I usually just "panda-test"
14:51 [Coke] it used to segfault back in 2014, so, progress.
14:51 jnthn Yeah
14:51 teatime oh, and 3) how do you make scripts in ./bin/ able to find modules in ./lib/
14:52 jnthn I guess desired behavior is perhaps an empty Stash
14:53 jnthn Though if you access the .WHO here, it's hugely likely that you're actually very confused about how things work :)
14:55 masak getting VMNull is a bit like the VM coming to the small convenience store that you run, going "nice little store you got here -- would be a real shame if something were to... happen to it", and then just leaving
14:56 teatime is this really not something all of you do like every day?
14:56 teatime RabidGravy: I appreciate that, v. helpful.
14:56 jnthn masak: It's the "you deserved a segfault but I did better than that" value :)
14:57 masak yes, that's what I mean :)
14:57 RabidGravy teatime, as to the bin thing, once they are installed they don't need anything special, to test I tend to just do "perl6 -Ilib bin/foo"
14:57 teatime oh right, I forgot -I works for other-than-REPL.
14:57 moritz right, what RabidGravy said
14:58 hoelzro it works for REPL now too
14:58 teatime hoelzro: since the last couple of days?
14:58 hoelzro since...Thursday?
14:58 * hoelzro forgot when he merged
14:58 teatime k, excellent!
14:59 dbohdan left #perl6
15:00 RabidGravy the %*RESOURCES also just works if you specify the -I or PERL6LIB as the CUR it uses is clever enough to work it out
15:08 masak I tend to just `export PERL6LIB=lib` in the terminal tab where I do development :)
15:08 masak no need for -I after that
15:10 maybekoo2 joined #perl6
15:12 ufobat joined #perl6
15:16 [Coke] RT: 1298; SEGV: 11; LTA: 129; WEIRD: 14; NOM: 7; GLR: 7; PERF: 13; JVM: 58
15:31 teatime since I abuse virtualenvwrapper for all of my projects (not just python), I shall add a post-activate hook to set PERL6LIB :)
15:40 Ven joined #perl6
15:43 ufobat i want to use a "is rw" on an optional paramter.... but it is not supposed to work, isn't it?
15:45 jnthn m: sub foo($x is rw = 42) { }; foo()
15:45 camelia rakudo-moar 27dca5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4dYN8jz_Mm␤Cannot use 'is rw' on an optional parameter␤at /tmp/4dYN8jz_Mm:1␤»
15:45 jnthn Seems it's outright refused
15:45 jnthn You'd have to write something like
15:46 ufobat i thought to myself that with a default value it actually makes sense
15:46 jnthn m: sub foo($x is raw = 42) { }; foo()
15:46 camelia rakudo-moar 27dca5: ( no output )
15:46 jnthn But note that then you can't be sure $x is assignable
15:47 jnthn Might be easier to write a pair of multi subs
15:47 jnthn One that takes an rw thing, one that doesn't
15:47 ufobat omg! yeah of course
15:48 ufobat thanks for the hint
15:48 ufobat i am going to read the "is raw" thingy, i dont know it yet
15:48 ufobat *being curious*
15:49 sufrostico teatime: I run the tests with prove -e perl6
15:50 sufrostico teatime: and for the test files... I usually add the line «use lib 'lib'«
15:51 sufrostico teatime: use lib 'name-of-the-folder-with-my-private-library';
15:51 teatime does it make any sense to mix perl5 and perl6 code in the same repo and/or lib/ directory?
15:55 cognominal joined #perl6
15:58 sue joined #perl6
16:00 awwaiid teatime: depends on what you're doing, but I imagine that it would be mostly one or the other
16:01 ufobat if i do the multi method way, and in one method i want to call the other with the additional is rw parameter, do i use samewith(..oldparams.. $rw-int) or callwith(..oldparams.., $rw-int)
16:01 * lizmat is working on the Perl 6 Weekly
16:01 lizmat so let me know of anything you would like to see in the weekly!
16:02 jnthn lizmat: I'd like to see a worse pun that the one in my blog post this week :D
16:02 jnthn *than
16:02 timotimo it's hard to pun "bunny" to "punny"
16:03 lizmat .oO( very punny )
16:03 awwaiid lizmat: I don't have it posted, but on April 16 in Baltimore we'll have a short intro-to-Perl6 tutorial from myself and more advanced nativecall/async tutorial from [Coke]. dcbpw.org
16:03 jnthn Damn, that place name makes me hungry... :)
16:03 lizmat yeah, the DCBaltimoreW is on my list  :-)
16:03 awwaiid lizmat++ # lists!
16:05 MadcapJake reCaptcha added to sixbug, now just the final gmail smtp integration and this should be good to launch!
16:06 diakopter MadcapJake: probably have it relay to other individuals (such as your self) who can also shut it off in case of emergency (in case it gets spammed)
16:07 ufobat if i do the multi method way, and in one method i want to call the other with the additional is rw parameter, do i use samewith(..oldparams.. $rw-int) or callwith(..oldparams.., $rw-int)
16:07 ufobat oups sorry
16:07 ufobat this keystroked was supposed to go to my emacs :)
16:08 MadcapJake diakopter: yes agreed, reCaptcha should be enough, if anyone wants to help they can take a peak through the code it's on github (pushing latest work after lunch though)
16:09 cdg_ joined #perl6
16:11 hoelzro o/ #perl6
16:11 MadcapJake still planning on adding the ability to shortcut using the smtp impl and just get a redirect mailto, then I want to add a redirect to the actual ticket after submission, and I also still have to finish issue templates too.  But the basics are there and ready to be used!
16:11 * MadcapJake off to lunch &
16:12 hoelzro how do people feel about easter eggs in rakudo? I know we have this:
16:12 hoelzro m: say "Life, the Universe, and Everything".WHY
16:12 camelia rakudo-moar 27dca5: OUTPUT«42␤»
16:12 lizmat hoelzro: could you explain in a few lines the state of the REPL since you merged your work ?
16:13 hoelzro sure!
16:13 hoelzro basically the higher-level features of the REPL (line editing, tab completion, etc) are now implemented in Perl 6, not NQP
16:13 hoelzro this will allow new users to read, understand, and modify the REPL itself more easily
16:14 hoelzro and make the lives of those of us who would like to extend it a little easier
16:14 hoelzro it also works with -I now
16:14 hoelzro and it saves your history to ~/.perl6/rakudo-history or RAKUDO_HIST
16:15 Dunearhp joined #perl6
16:16 lizmat hoelzro: thanks!
16:16 lizmat dinner&
16:17 hoelzro anyway, the reason I ask about easter eggs is in a fit of feeling silly, I added this: http://hoelz.ro/files/lod.png
16:18 hoelzro and I was wondering if I should include it in rakudo, or if that's just too silly for the compiler
16:23 dalek DBIish: f1e36d2 | (Salvador Ortiz)++ | t/ (3 files):
16:23 dalek DBIish: Add missing 'use'
16:23 dalek DBIish: review: https://github.com/perl6/DBIish/commit/f1e36d2dde
16:23 dalek DBIish: 07226c7 | (Salvador Ortiz)++ | lib/DBDish/ (2 files):
16:23 dalek DBIish: Pg/mysql: Propagate conn params
16:23 dalek DBIish: review: https://github.com/perl6/DBIish/commit/07226c78c2
16:23 espadrine joined #perl6
16:32 spintronic joined #perl6
16:32 TEttinger joined #perl6
16:36 dalek DBIish/data-sets: 1ed8466 | (Salvador Ortiz)++ | / (4 files):
16:36 dalek DBIish/data-sets: WIP/RFC: A new DataSet interface for DBIish
16:36 dalek DBIish/data-sets:
16:36 dalek DBIish/data-sets: See added t/50-DataSet.t for details
16:36 dalek DBIish/data-sets: review: https://github.com/perl6/DBIish/commit/1ed8466da2
16:47 spintronic joined #perl6
16:51 espadrine joined #perl6
16:56 MadcapJake anyone know if I can just save an SSL certificate or should I request it freshly every time I need it (to send data to an SMTP server)
17:02 spintronic Why can't rakudobrew build panda correctly? I keep getting "Cannot find Shell::Command"
17:04 Begi spintronic : with "$ rakudobrew build panda " ?
17:05 spintronic_ joined #perl6
17:06 spintronic_ I'm running on Centos 6.7. Maybe it's too old...
17:07 pnu joined #perl6
17:11 moritz spintronic_: which rakudo did you build?
17:11 Hotkeys moritz: spintronic_ I've been getting that too
17:13 sufrostico joined #perl6
17:13 Hotkeys Something broke a couple weeks ago in panda (Shell::Command?) That won't let it build on windows for me
17:16 spintronic joined #perl6
17:16 spintronic I'm running the latest rakudobrew and perl6
17:20 Relsak joined #perl6
17:27 spintronic something breaks in panda all the time. My local perlmongers say just wait and try building again in a couple of days.
17:27 pnu masak, about heroku and (data) persistence... yes, you'd want to use postgresql, redis etc. for any storage. Lookup heroku _addons_ for those two. Dynos' local storage doesn't survive even restarts/scaling; dynos (and build process) are completely isolated. Only things shared are the slug (code image created by the build), heroku config (copied to system env
17:27 pnu on startup) and the attached addons.
17:30 jameslenz joined #perl6
17:31 pnu .. for manual testing and seeing how your slug looks like you can do "heroku run bash". That too will be a separate new dyno, not a "live" server.
17:33 MadcapJake spintronic: you could try nuking your install
17:34 spintronic_ Ok I'll try that
17:35 abaugher joined #perl6
17:42 spintronic do we still download rakudobrew from https://github.com/tadzik/rakudobrew ?
17:43 Begi spintronic: yes, and just follow the installation instructions
17:43 spintronic ok rebuilding moar now...
17:44 RabidGravy yeah, you may also try simply "rakudobrew self-upgrade; rakudobrew nuke moar; rakudobrew build moar; rakudobrew build-panda"
17:45 pnu RabidGravy, masak, I think http://12factor.net/ describes pretty well the ideas how/why heroku lifecycle goes as it goes.
17:45 spintronic yeah I did but nuke moar didn't seem to work.
17:45 spintronic So I'm starting all over again.
17:45 spintronic nuke jvm did work.
17:46 spintronic Is zef working for anyone yet?
17:49 Hotkeys Zef and panda both worked for me on Linux last time I tried
17:49 Hotkeys But I can't get panda to build on windows
17:49 Hotkeys spintronic:
17:49 Hotkeys I ended up just building an older version of panda
17:49 Hotkeys You can specify the commit you want to build with rakudobrew
17:50 spintronic Hotkeys: building panda now. If it doesn't work I'll go with an older rev. Which one are you useing?
17:50 Hotkeys I don't remember and I'm not at my computer right now
17:51 Hotkeys If you look at the commits
17:51 Hotkeys Its the one before stuff was squashed into shell__command
17:51 Hotkeys I think
17:52 Hotkeys On Feb 22
17:52 Hotkeys There might be a later one that works
17:52 Hotkeys Not sure
17:52 MadcapJake Does Nil work for nativecall subs as NULL?
17:53 hoelzro MadcapJake: for calling?
17:53 MadcapJake yeah for calling a native sub, I want to pass NULL
17:53 hoelzro I've always just used the type object for the required type
17:54 spintronic Hotkeys: oh ok. Well it the latest still doesn't work.
17:54 hoelzro ex. something_that_takes_a_null_string(Str)
17:54 MadcapJake will that work with a repr('CStruct') class?
17:54 Hotkeys Yeah
17:55 Hotkeys I think panda occasionally pulls shell command into an include
17:55 MadcapJake spintronic: also take a look at the paths it tries to find shell::command in
17:55 Hotkeys And I think it just hasn't for a month now
17:56 Hotkeys MadcapJake: I tried putting a newer version into its local copy of shell::command like last week and it refused to work
17:56 Hotkeys I suppose I should file an issue
17:57 MadcapJake I think the problem is that panda uses shell:command to build itself so it's inside panda's build dir somewhere
17:57 Hotkeys It is
17:57 MadcapJake strange
17:57 Hotkeys Its in ext/Shell__Command
17:58 Hotkeys I tried replacing that with a new version and it didn't help any
17:58 MadcapJake strange
17:59 MadcapJake does rakudobrew build-panda give you a list of paths it searches for it in?
18:00 MadcapJake so looking at bootstrap.pl right now (in panda repo)
18:01 MadcapJake why no «use lib 'ext'» https://github.com/tadzik/panda/blob/41888ba36ed83aacfacbdb710943a34d7a13e1df/bootstrap.pl#L5
18:01 MadcapJake that might be enough to make it work actually
18:04 spintronic__ joined #perl6
18:05 MadcapJake tadzik: shouldn't bootstrap.pl in panda have «use lib 'ext'» instead of the paths to each of the modules internal lib dirs?
18:09 Ven joined #perl6
18:09 moritz MadcapJake: but the modules aren't directly unlder ext/
18:09 MadcapJake aren't they?
18:10 moritz MadcapJake: no, they are under ext/File__Find/lib/File/Find.pm and the likes
18:10 MadcapJake the module files you mean
18:11 MadcapJake hmm, trying to figure out why Hotkeys and spintronic were getting "cannot find shell::command" error
18:12 DrForr This.. is interesting. Subjecting a Crust servr to 15 concurrent users under siege(1) for a single request works. 16 hangs consistently.
18:13 DrForr I don't suppose 'grep -r 15' is going to find anything useful, but here goes :)
18:22 cpage_ joined #perl6
18:25 cdg joined #perl6
18:25 RabidGravy DrForr, perhaps it is the number of threads available to the scheduler?
18:26 DrForr Entirely possible.
18:26 RabidGravy this would be easily provided, just set $*SCHEDULER to a ThreadPoolScheduler with a smaller number
18:26 RabidGravy proved
18:27 DrForr Hadn't really yet looked into the threading mechanism, but I'll scribble a note for a few minutes hence :)
18:28 dha joined #perl6
18:29 DrForr I also managed to trigger an error in Crust that I can't replicate.
18:30 RabidGravy is it possible that it is failing to close the client connections in a timely fashion and is getting deadlocked before it is able to do when it reaches the max number of threads
18:30 RabidGravy (I haven't looked in the code)
18:30 DrForr Nod.
18:31 DrForr Its behavior *after* trying to handle 16 threads is also reminiscent of a deadlock.
18:32 diakopter notably, these 15 would be in addition to the main program thread, right?
18:32 DrForr Power of 2, I don't believe this to be a coincidence :)
18:37 dbohdan joined #perl6
18:39 dbohdan A person on Hacker News asks, "What would you use to build a super simple web app?" and says "I don't care if it's in Ruby, PHP, Golang, Perl 6..."
18:39 dbohdan https://news.ycombinator.com/item?id=11374752
18:40 dbohdan Perhaps you could recommend a Perl 6 approach to making a simple web app to him/her. :-)
18:41 DrForr Funny you shoud mention that :)
18:42 Hotkeys Are you making a simple web app DrForr
18:42 Hotkeys dbohdan: I'm just surprised they mentioned perl 6 as an option to be honest
18:42 * perlpilot too (happily surprised)
18:42 RabidGravy well if I wanted a super-super-simple web app I'd just hook up a shell script to inetd ;-)
18:43 diakopter to be fair(-ish), it may be the "absurd final option"
18:43 Hotkeys we need something like django or flask for p6
18:43 RabidGravy do feel free to write it :)
18:43 Hotkeys >_>
18:43 perlpilot diakopter: except that it's not.   It's in between Golang and JS
18:43 spintronic__ MadcapJake: I'm trying to move the shell::command library now to see if panda can find it.
18:43 diakopter oh
18:44 Hotkeys I was gonna say "We can call it Oyster" but apparently that's a thing
18:44 diakopter it's hard to find things that aren't already things
18:44 Hotkeys perhaps "Chaos" as a play on the butterfly effect (see: camelia)
18:45 Hotkeys but chaos might be a bad word for a thing
18:45 diakopter camelot?
18:46 diakopter cameliot
18:46 perlpilot camelion ;)
18:46 MadcapJake Crust is pretty nice already, a sugary wrapper around it would make for a super simple webapp experience (there's got to be a good name there too: crust + sugar)
18:46 Begi For what's the name you're looking for ?
18:46 dbohdan My approach to naming tiny HTTP frameworks is "${language}http" if that isn't take. :-)
18:46 diakopter Crust sounds like something for Rust
18:46 Hotkeys lol
18:46 RabidGravy MadcapJake, I think that's precisely what DrForr is doing
18:47 Hotkeys ah
18:47 dbohdan *taken
18:47 DrForr Aroo?
18:47 RabidGravy Boop boop sheboop
18:48 dbohdan "Tea"?
18:48 * DrForr files a Crust bug and returns to testing...
18:48 dbohdan (Tea's species name is Camellia sinensis.)
18:48 Hotkeys nice
18:49 DrForr Ooo, I might have to rename mine to Marzipan.
18:50 MadcapJake some sugar + crust ideas: pie, bundt, canoli, truffle
18:51 diakopter CARBanana
18:51 RabidGravy (Creme) Brulée
18:52 dbohdan "Truffle" would clash the JVM: https://wiki.openjdk.java.net/display/Graal/Truffle+FAQ+and+Guidelines
18:52 dbohdan *on the JVM
18:53 MadcapJake bummer, I think canoli is my favorite (mostly cus they're my favorite treat)
18:53 DrForr Hotkeys: https://github.com/drforr/perl6-App-prancer for an idea.
18:54 MadcapJake DrForr: looks like I need to take it for a spin again!
18:55 Woodi DrForr: is "glaze" taken ? :)
18:56 masak if it's crust and sugar you want, just call it "cougar" :D
18:56 Begi O_o
18:56 perlpilot Woodi: http://link.springer.com/chapter/10.1007%2F978-3-642-03655-2_95  not quite the same space, but close
18:57 Woodi perlpilot: damn :)
18:57 DrForr Hrm. 9 transaction/sec on a rather overworked VM, holding up at 300k/sec transfer.
18:58 DrForr Woodi: No idea. I'd go for Krispy::Kreme but would run afoul of branding laws.
18:58 DrForr And now I'm wishing my NLPW trip went through Heathrow.
18:58 Woodi DrForr: if you want something more chocolte-y then ganache maybe ? :)
18:58 DrForr And the wish just passed, as I remember how much I despise it.
18:59 DrForr (Heathrow, not KK)
19:01 Hotkeys I think I might try to make Inline::Factor
19:01 Hotkeys because Factor is dope
19:02 MadcapJake DrForr: I'm noticing the same freezing at >15 connections on Crust
19:03 cpage_ joined #perl6
19:03 DrForr MadcapJake: Yeah, I haven't dug into the code yet, just scoping out performance in general.
19:04 labster joined #perl6
19:05 MadcapJake I'm only getting 3 Req/Sec on my machine (just using it right on my rig though)
19:05 DrForr I'd guess if I had to that it's assuming that the thread pool is infinite so it simply spawns what it needs, and when resources run out it deadlocks trying to allocate the new threads rather than puts requests in a queue.
19:05 MadcapJake oops that's per thread! I'm getting 29 req/sec in total
19:05 DrForr Better than I'm doing here, but my VM is somewhat overworked.
19:06 MadcapJake I was a little worried that my dev rig was slower than a VM ;)
19:06 DrForr I could put it on my linode, but that puts me at the tender mercies of my network connection.
19:06 dvinciguerra_ joined #perl6
19:07 MadcapJake Hopefully, moritz will let me put this up on the p6c server
19:07 DrForr Even locally I'm seeing ~700k/sec and ~20 req/sec.
19:07 DrForr Doing a longer run right now, we'll see what the results are.
19:07 MadcapJake Wow I am only getting 300kb/sec locally
19:08 sue joined #perl6
19:08 MadcapJake Every once in a while I am getting these core.settings errors in my log
19:08 DrForr Heh, I just coredumped siege, FD table overflow.
19:08 MadcapJake broken pipe
19:08 MadcapJake i'm using wrk
19:09 MadcapJake HTTP::Server::Tiny keeps throwing this at me http://hastebin.com/ejisizodim.txt
19:10 DrForr Regardless my original problem with Crust not being able to handle >1 connection per client seems to have vanished.
19:10 DrForr MadcapJake: Without looking I"m guessing that's what I filed on GH.
19:11 MadcapJake no "broken pipe" errors on MoarVM repo
19:12 DrForr You're right, that's a different error.
19:14 MadcapJake I submitted on there, not really sure what's going on, just happy that HTTP::Server::Tiny seems to just trudge right on through it :)
19:15 dogbert joined #perl6
19:18 Hotkeys oh neat
19:18 DrForr 18.5 transactions/sec, 800K/sec, concurrency 12.42. Not great, but better than I'd expected.
19:18 Hotkeys NativeCall can do cpp
19:19 Hotkeys I have no idea how to do an inline thing
19:19 Hotkeys fun learning adventure time
19:20 DrForr Hotkeys: Inline::Scheme::Guile :)
19:20 Hotkeys Yeah I've been perusing all the inline modules
19:20 yqt joined #perl6
19:20 Hotkeys does guile use cpp :D
19:21 Hotkeys it seems the answer is no
19:21 timotimo well, gnu people do their glibc stuff
19:21 timotimo which is "their own" object system
19:22 DrForr It'll let you link in c libraries, probably c++ as well FAIK.
19:22 Hotkeys nativecall does c++ apparently
19:22 Hotkeys so that's fun
19:22 MadcapJake Hotkeys: no docs though, but you can also just create a C wrapper of C++ functions
19:23 timotimo yeah
19:23 Hotkeys the base of Factor's compiler is written in c++
19:23 Hotkeys so I assume that's what I need to use
19:23 DrForr Inline::Scheme::Guile builds a C helper library if it helps.
19:24 DrForr Hotkeys: I should also point out I'm testing with a custom Prancer app that spits out about 100K of HTML per query.
19:25 Hotkeys ah
19:25 Hotkeys I found factor.hpp
19:25 Hotkeys this seems like what I need
19:26 Hotkeys maybe
19:27 Guest73352 Hi #perl6, anyone up for a simple/stupid newbie question?
19:28 Guest73352 I have a problem with SetHash
19:28 diakopter probably! give it a try
19:28 Guest73352 m: my $numSet = (0..10).SetHash; $numSet<5> = False; say $numSet.keys.sort; # why is the 5 still there?
19:28 camelia rakudo-moar 27dca5: OUTPUT«(0 1 2 3 4 5 6 7 8 9 10)␤»
19:29 Begi i've a newbie problem with LWP::Simple, I guess. My header doesn't work : https://gist.githubusercontent.com/Emeric54/60856d92645a5093bf0b/raw/84986b9549a95e80f808ffab09468453949b3a2e/request.p6
19:29 Begi Any idea why ? thanks !
19:30 [Coke] m: my $numSet = (0..10).SetHash; $numSet.perl.say
19:30 camelia rakudo-moar 27dca5: OUTPUT«SetHash.new(5,7,9,4,8,3,0,1,6,2,10)␤»
19:30 [Coke] m: my $numSet = (0..10).SetHash; $numSet<5>:delete; say $numSet.keys.sort;
19:30 camelia rakudo-moar 27dca5: OUTPUT«(0 1 2 3 4 5 6 7 8 9 10)␤»
19:32 [Coke] m: my $numSet = (0..10).SetHash; $numSet{5} = False; say $numSet.keys.sort;
19:32 camelia rakudo-moar 27dca5: OUTPUT«(0 1 2 3 4 6 7 8 9 10)␤»
19:32 [Coke] ^^
19:32 [Coke] 5 NE "5"
19:32 [Coke] <5> is "5". {5} is a raw 5.
19:33 Guest73352 Aha, thanks Coke++ told you it was simple :-)
19:33 MadcapJake m: (SetHash.new(1..10) (^) SetHash.new(5)).keys.sort
19:33 camelia rakudo-moar 27dca5: ( no output )
19:33 MadcapJake m: (SetHash.new(1..10) (^) SetHash.new(5)).keys.sort.say
19:33 camelia rakudo-moar 27dca5: OUTPUT«(1 2 3 4 6 7 8 9 10)␤»
19:34 Guest73352 Ah, nice
19:35 MadcapJake Guest73352: http://doc.perl6.org/language/setbagmix#infix_%28%5E%29
19:35 Guest73352 Thx MadcapJake, will take a look
19:36 MadcapJake I love a good chance to use those operators :) If I wasn't worried that you'd leave IRC, I'd have taken the time to use the unicode version (⊖) xD
19:38 diakopter m: (SetHash.new(1..10) (^) SetHash.new(5)).keys.sort.say
19:38 camelia rakudo-moar 27dca5: OUTPUT«(1 2 3 4 6 7 8 9 10)␤»
19:38 diakopter m: (SetHash.new(1..10) ⊖ SetHash.new(5)).keys.sort.say
19:38 camelia rakudo-moar 27dca5: OUTPUT«(1 2 3 4 6 7 8 9 10)␤»
19:39 buharin joined #perl6
19:39 diakopter m: SetHash.new(1..10 ⊖ 5).keys.sort.say
19:39 camelia rakudo-moar 27dca5: OUTPUT«(1 2)␤»
19:39 MadcapJake So I'd say 34 reqs/sec is pretty respectable (especially because right now we're--artificially?--restricted to 15 connections)
19:39 MadcapJake m: (SetHash.new(1..10) (^) 5).keys.sort
19:39 camelia rakudo-moar 27dca5: ( no output )
19:40 diakopter where does that rank on https://www.techempower.com/benchmarks/
19:40 MadcapJake m: (SetHash.new(1..10) (^) 5).keys.sort.say
19:40 camelia rakudo-moar 27dca5: OUTPUT«(1 2 3 4 6 7 8 9 10)␤»
19:40 MadcapJake diakopter: thanks was looking for something like this!
19:40 * MadcapJake is really tempted to try Ur/Web
19:41 RabidGravy I think I am going to set fire to my computer, then all the other computers in the world
19:41 MadcapJake please leave mine out of this!
19:42 RabidGravy I have just spent *hours* typing in the docs for this module, got distracted, forgot I hadn't saved and exited without saving
19:42 MadcapJake oi! pretty much the worst thing in the world right there. I feel your pain.
19:42 japhb RabidGravy: autosave FTW?
19:43 DrForr MadcapJake: Yep, respectable. I may dig into the queueing aspect later in the week, but bedtime waits for no person.
19:43 diakopter the fastest Perl one on there is 5.9% the performance of the fastest
19:44 diakopter (for the fortunes benchmark)
19:44 diakopter has someone written a fortunes benchmark for rakudo?
19:45 MadcapJake diakopter: their payload is quite a bit smaller than mine (several CSS files, icon fonts, a few external CDN resources) so I'd be curious to try to match their benchmark and see how it goes!
19:46 diakopter MadcapJake: sounds like you're the right person for it!
19:47 MadcapJake diakopter: It doesn't look too bad really
19:48 diakopter I had thought jnthn's blog posts from earlier this year were building toward a simple http server
19:48 diakopter (and maybe they still are ;)
19:48 MadcapJake The best one out there right now is HTTP::Server::Tiny (I think)
19:49 MadcapJake I think it's the only one (that I know of) that can send binary data :P
19:52 spider-mario joined #perl6
19:52 o_sutur joined #perl6
19:54 MadcapJake I can't seem to make this debug env variable go away!
19:55 musiKk_ joined #perl6
19:56 perlawhirl joined #perl6
19:57 sufrostico joined #perl6
19:58 geekosaur ?
20:00 MadcapJake aha I know what's going on here
20:01 MadcapJake HTTP::Server::Tiny puts the HST_DEBUG environment variable in a constant, so the no matter what I do to the HST_DEBUG in my shell, it's already been set when it compiled
20:05 m0li joined #perl6
20:06 kmwallio left #perl6
20:07 kmwallio joined #perl6
20:08 cdg joined #perl6
20:10 cdg joined #perl6
20:14 cdg joined #perl6
20:20 MadcapJake RabidGravy: can I change the $*SCHEDULER to one with a higher max_threads?
20:21 masak m: say $*SCHEDULER.clone(max_threads => 32)
20:21 camelia rakudo-moar 27dca5: OUTPUT«ThreadPoolScheduler.new(initial_threads => 0, max_threads => 32, uncaught_handler => Callable)␤»
20:22 RabidGravy yeah
20:22 masak dunno how to install that new scheduler in $*SCHEDULER, though
20:22 MadcapJake right that's what I want to do
20:22 diakopter m: $*SCHEDULER.=clone(max_threads => 32)
20:22 camelia rakudo-moar 27dca5: OUTPUT«Cannot modify an immutable ThreadPoolScheduler␤  in block <unit> at /tmp/12KVD0Gqey line 1␤␤»
20:22 RabidGravy just
20:22 diakopter m: $*SCHEDULER.:=clone(max_threads => 32)
20:22 camelia rakudo-moar 27dca5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VIda26nwvT␤Malformed postfix call␤at /tmp/VIda26nwvT:1␤------> 3$*SCHEDULER.:7⏏5=clone(max_threads => 32)␤»
20:22 RabidGravy m: my $*SCHEDULER = ThreadPoolScheduler.new(max_threads => 32)
20:22 camelia rakudo-moar 27dca5: ( no output )
20:23 RabidGravy before you do anything that requires the scheduler
20:23 diakopter m: say $*SCHEDULER.clone(max_threads => 9*9*9)
20:23 camelia rakudo-moar 27dca5: OUTPUT«ThreadPoolScheduler.new(initial_threads => 0, max_threads => 729, uncaught_handler => Callable)␤»
20:23 RabidGravy (or anything that you want to be affected thus)
20:23 diakopter m: say $*SCHEDULER.clone(max_threads => 9**9**9)
20:24 camelia rakudo-moar 27dca5: OUTPUT«(timeout)»
20:24 diakopter ETOO....JUST....TOO
20:25 masak don't immanentize the eschaton
20:26 diakopter Immanuesch
20:26 MadcapJake it doesn't work just putting it in my app's script, would probably need to be in the server module
20:27 diakopter one would think TreadProolSchreduler would lazily allocate
20:29 MadcapJake the `my` means that the scheduler is probably only limited to my script's scope and any sub routines I call inside it. the way Crust works, it EVAL's your script, so it would need to be higher that Crust's EVAL calls
20:29 diakopter mod_perl did eval, very early on
20:32 MadcapJake still not working :(
20:32 MadcapJake RabidGravy: I've tried placing that in both HTTP::Server::Tiny and Crust::Runner but i'm still getting 0 requests with anything over 15 connections
20:33 ecocode left #perl6
20:35 MadcapJake ok i got strange results now :P
20:35 MadcapJake If I place it in Crust::Runner.run(), it gives me 6 requests/sec! Why is it lower!? o_O
20:41 labster joined #perl6
20:43 itaipu joined #perl6
20:43 ptolemarch joined #perl6
20:43 Begi1 joined #perl6
20:44 RabidGravy because you don't have that many cores in your computer so it takes longer waiting to sort them out? or something. I'm not au-fait with the minutae
20:44 kmwallio So I did my int32 $blah = 1; but when I pass it into a nativecall method, I'm getting "Native call expected argument that references a native integer, but got P6int"
20:47 kmwallio the code I'm trying to run is: https://gist.github.com/kmwallio/8565b36d1fe9e2b18401
20:48 geraud joined #perl6
20:48 MadcapJake kmwallio: you're call is missing the final argument, just has a type
20:49 kmwallio isn't that how you pass null?
20:49 kmwallio or no...
20:49 MadcapJake oh yeah that is
20:49 kmwallio or maybe I should pass 0 since it's an int...
20:49 Xliff kmwallio, couldn't hurt to pass 0 just to see.
20:49 MadcapJake if it expects NULL then you should pass the type not 0
20:50 Xliff MadcapJake, he's already passing the type and getting an error.
20:50 kmwallio creating another variable set to 0 make it seem to run happy
20:50 MadcapJake passing the type won't make the method think you gave it a P6int though
20:50 MadcapJake so it must be the other two arguments causing the error
20:51 MadcapJake weird then i guess i'm wrong, could be some sort of reportable bug
20:51 Xliff Hrm. OpenCL not in Ubuntu?
20:51 kmwallio not by default
20:51 kmwallio you need to install some packages
20:52 MadcapJake Xliff: https://gist.github.com/rmcgibbo/6314452
20:52 rindolf joined #perl6
20:53 Xliff Well, hell. Probably won
20:53 kmwallio http://packages.ubuntu.com/search?keywords=libopencl&amp;searchon=names
20:53 Xliff Probably won't work inside a VM, then.
20:53 Xliff *sigh*
20:53 tadzik MadcapJake: everything in panda's bootstrap.pl runs by black magic
20:54 Xliff When I have to fill out a form to download a file, my interest wanes.
20:54 MadcapJake tadzik: lol seems so!
20:54 tadzik MadcapJake: every "why" can be answered with "really, we tried"
20:54 kmwallio Xliff: if you have an extra graphics card, you might be able to do a PCI passthrough
20:54 Xliff kmwallio, I do. Don't know if I can do that using Virtualbox, tough.
20:54 MadcapJake tadzik: I've had that shell::command not found error, but I don't remember how I fixed it, probably just reinstalled everything :P
20:55 Xliff s/tough/though/
20:55 tadzik MadcapJake: it may be that things got saner these days and a lot of these things is not needed anymore
20:55 kmwallio Xliff: https://www.virtualbox.org/manual/ch09.html#pcipassthrough
20:55 kmwallio not sure if it's worth it though
20:55 tadzik with precomp being in place and stuff being generally relocatable it may be completely unnecessary these days even
20:55 MadcapJake tadzik: can you change where modules are installed now?
20:56 tadzik I have some time allocated for the toolchain stuff
20:56 Xliff kmwallio, yeah. Well I also have dual-boot into KUbuntu on this box, so I may try again next time I am on the other side.
20:56 tadzik MadcapJake: that's not my responsibility anymore
20:56 Xliff Still. I hate it when I have to fill out a fscking form to download a file.
20:57 MadcapJake tadzik: ah, someone (nine?) mentioned that it was almost there a few days ago
20:57 tadzik MadcapJake: yeah, it's his child now :) I think panda can still overwrite it with DESTDIR iirc
20:57 MadcapJake Xliff: what kind of form is it? no-looky-at-sourcy? no-writing-your-own-similar-sourcy?
20:58 MadcapJake no-suey-in-courty-for-anythingy? :P
20:59 Xliff No. It's the gimme-your-email-before-downloady type.
20:59 Xliff In other words: "download this file so we can spam you!"
20:59 MadcapJake tadzik: eventually, I plan on writing a gx-p6, but I need to be allowed to do local module installs for it to work
20:59 MadcapJake Xliff: lol
21:00 Xliff MadcapJake, do you have intel_sdk_for_ocl_applications_2013_xe_sdk_3.0.67279_x64.tgz
21:00 tadzik MadcapJake: oh, it's definitely possible'
21:00 tadzik I think DESTDIR is what you're after
21:00 Begi joined #perl6
21:00 tadzik I also think sergot wrote some thing that installs dependencies in the app directory, quite like Carton
21:00 MadcapJake tadzik: I'll take a look, cus that's exactly what I'm trying to do
21:01 tadzik MadcapJake: https://github.com/sergot/bamboo
21:01 MadcapJake Xliff: nope, I've never delved into OpenCL (just barely getting my feet wet in OpenGL!)
21:01 Xliff *shudder&
21:01 Xliff *shudder* OpenGL *shudder*
21:02 MadcapJake lol it doesn't help that I have basically zero experience with matrix math xD
21:03 kmwallio MadcapJake: I saw your OpenGL stuff and was going to try using it, but OpenGL is limited to 4x4 matrices
21:03 kmwallio I also tried the latest gist, and the animation is pretty smooth
21:04 MadcapJake kmwallio: what would you need bigger matrices for? I think you're supposed to use VertexArrayObject's to manage multiple sets of them
21:06 kmwallio MadcapJake: for markov chains, you can use a transition matrix which has rows and columns equal to the number of nodes
21:06 Xliff I used to love matrix math. I was good at it. Like.... 25 years ago.
21:07 MadcapJake kmwallio: woah that would be quite a huge matrix then, right?
21:07 kmwallio yeah :/
21:07 Xliff Now my matrix neurons have shriveled.
21:08 kmwallio So for https://github.com/kmwallio/p6-Lingua-EN-Summary , it takes a little over a minute to generate summaries for some of the samples
21:08 kmwallio the Dr. Jekyll and Mr. Hyde takes ~10 minutes
21:08 kmwallio but then again, my implementation probably isn't that great
21:08 kmwallio but if you use the GPU, it's pretty instance
21:09 kmwallio instant*
21:09 MadcapJake I've been trying to delve into neural networks a bit (didn't realize how much math is at the core of them :S ) but I noticed that most people say "we *could* do each node at a time but that would mean lots of concurrency so instead we use matrices!" has anyone ever tried to just do the concurrent approach? Didn't have any luck finding anything. But I
21:09 MadcapJake instantly though, "hey that could be a neat Perl 6 experiment"
21:09 MadcapJake s/though/thought/
21:10 MadcapJake kmwallio: are there any C libaries that implement GPU-based math? we could wrap one up.
21:10 teatime "Recursive descent allows you to hook in custom-written bottom-up logic at every top-down choice point, and it is a technique which is completely understandable to programmers with little or no training in parsing theory. When dealing with recursive descent parsers, it is more useful to be a seasoned, far-thinking programmer than it is to be a mathematician."  this gives me hope, heh.
21:10 kmwallio https://developer.nvidia.com/gpu-accelerated-libraries
21:11 masak teatime: that quote reminds me of how action methods work.
21:11 MadcapJake probably most of them are C++ though
21:11 teatime MadcapJake: exactly.
21:11 teatime er, masak
21:12 MadcapJake one extra char before you tab-complete teatime ;)
21:12 masak teatime: because rules naturally match from leaves up to the whole program, an action method has all the AST results of its descendants available.
21:13 kmwallio MadcapJake: Neural Nets are pretty cool.  Google and Microsoft (and everyone) are switching to them for everything
21:13 teatime masak: perl6 grammars seem to be the perfect combination of top-down and bottom-up to make them user-friendly and require no comp sci skills to use effectively.  maybe.
21:13 kmwallio they improved part of speech tagging and translation, when they used to use markov chains
21:13 masak a grammar is just a funny class
21:13 teatime masak: perl6 regexes then.
21:13 kmwallio also text to speech now uses deep neural nets
21:13 MadcapJake kmwallio: very interesting stuff, I just need to take some serious time to learn more about them. I probably need to read a few books instead of expecting 10 minute youtube videos to explain it all to me :P
21:13 masak teatime: but I'd be lying if I said writing grammars isn't an art, one that's not quickly acquired
21:14 masak teatime: the grammar in 007 is definitely 007's weakest point right now. it still fails in quite brittle ways sometimes.
21:14 * geekosaur remembers when neural nets were discovered... and then dropped because nobody could work with them. the state of the art had to catch up first...
21:14 kmwallio MadcapJake: it depends though, if you using a library, the youtube video is probably good.  If you want to know what's going on under the hood, you probably need a deeper look
21:14 teatime masak: luckily my intended use should be much much simpler than 007.
21:15 kmwallio geekosaur: how old were you...
21:15 * kmwallio was born after neural nets were discovered
21:15 kmwallio :P
21:15 MadcapJake kmwallio: true, that's the thing, I'm looking to do something with them in Perl 6 and those videos just give surface-level stuff that focuses on (typically Python) APIs
21:15 teatime I've looked at parser generators for other languages, and perhaps I just haven't looked at the right ones, but I haven't found one that looks nearly as painless as perl6.
21:15 kmwallio Yeah, python has all of the toolkits, and even nodejs is getting some now
21:16 diakopter *boggle*
21:17 geekosaur oh actually they were discovered much earlier, first described in 1943. 1972 (I was still a kid but one who read a lot...) was what I was thinking of, and was pretty much the end of the "old way"
21:17 teatime also suggestions for mature languages that make parsing extremely natural/easy are welcome.  not LISP.  or haskell.
21:18 teatime but perl6 has been so much fun and my project is so non-critical that I think I will just stick w/ that.
21:18 geekosaur came back in the 1980s but didn't really take off until the late 90s-ish
21:18 kmwallio geekosaur: my professor in college said Neural Nets were a nice toy, but weren't useful for "real machine learning/ai"
21:18 kmwallio and then a few years later, there was the resurgence
21:19 kmwallio and new advancements in deep neural nets
21:19 kmwallio :/
21:19 diakopter kmwallio: I find it hard to believe that python has an advantage to nodejs in terms of number and quality of parsing libraries
21:20 diakopter since nodejs has 4.5x as many published packages/libraries as python
21:20 teatime diakopter: I think he was talking about AI tools.  and there's a lot of utter crap in npm...
21:21 diakopter there's a lot of utter crap in all of them
21:21 geekosaur yeh
21:21 moritz until I see numbers that suggest otherwise, I'm going to assume that 90% of everything is crud.
21:21 kmwallio I'll be introducing utter crap to the Perl 6 modules :D
21:21 kmwallio Acme::UtterCrap
21:21 kmwallio :P
21:21 kmwallio jk
21:21 mst ooh, you're implementing an npm client?
21:22 kmwallio my js to perl 6 compiler?
21:22 diakopter transpiler you mean
21:26 diakopter I'd be hard-pressed to find 10% of usableness in the Perl 6 Ecosystem..
21:26 diakopter I assume anyway.. I haven't looked closely lately.
21:27 geekosaur looks like they hit walls several times and gave up.. and a few years later would realize they could solve the problems that made them stop, and started working with them again until they hit the next wall. (this is even continuing although the walls now are not complete show-stoppers)
21:27 * geekosaur sighs... daily loss of connectivity to bouncer has begun again
21:28 geekosaur one of the current issues with neural nets is that unlearning something is unreasonably expensive. have seen some stuff on re-chunking things so it's easier to "subtract out" unwanted things
21:31 kmwallio geekosaur: wasn't IBW Watson delayed or something because it accidentally "read" urbandictionary?
21:31 kmwallio IBM*
21:32 kmwallio then there was also Tay from a few days ago...
21:33 geekosaur there's a reason one common class of science fiction involves AI becoming sentient and deciding that humans are unredeemable >.>
21:34 kmwallio is it possible with NativeCall to typedef things?
21:35 kmwallio because cl_int is just int32, but I don't want to lose track in my head somewhere
21:35 moritz kmwallio: constant cl_int = int32
21:39 kmwallio moritz: thanks
21:43 Khisanth joined #perl6
22:03 spintronic /join #abcl
22:03 kid51 joined #perl6
22:07 nowan joined #perl6
22:08 Xliff joined #perl6
22:10 MadcapJake kmwallio: though not GPU-based, this one has machine-specific optimized libraries: http://www.netlib.org/blas/
22:11 MadcapJake hey actually: https://developer.nvidia.com/cublas
22:22 Sgeo joined #perl6
22:23 kmwallio MadcapJake: thanks, I'll look into that after work
22:28 Begi joined #perl6
22:28 Khisanth joined #perl6
22:32 Sgeo joined #perl6
22:33 Khisanth joined #perl6
22:35 spider-mario joined #perl6
22:35 sufrostico joined #perl6
22:46 dvinciguerra__ joined #perl6
22:47 Xliff joined #perl6
22:47 nadim joined #perl6
22:50 skids joined #perl6
22:54 masak 'night, #perl6
22:55 tony-o later gator
22:55 perlawhirl joined #perl6
22:57 Khisanth joined #perl6
23:01 perlawhirl joined #perl6
23:03 arc__ joined #perl6
23:04 arcetera joined #perl6
23:11 raiph joined #perl6
23:20 Khisanth joined #perl6
23:20 * lizmat got distracted after dinner: P6W will come tomorrow
23:20 lizmat good night, #perl6!
23:30 itaipu joined #perl6
23:39 avuserow joined #perl6
23:40 avuserow hi #perl6 folks, I've been out of the loop for a while. Is it possible to use NativeCall with a C++ library? A blogpost or some other reference would be greatly appreciated.
23:40 yoleaux 3 Feb 2016 04:26Z <AlexDaniel> avuserow: https://gist.github.com/AlexDaniel/1e2d1c50963d37c5d43a
23:41 kid511 joined #perl6
23:41 avuserow AlexDaniel++ # ALL of the cute ways
23:42 perlawhirl haha wow! that's from a while back... i remember i came up with one of those
23:46 teatime does panda know how to upgrade modules?  maybe --force install will at least do it?
23:48 perlawhirl avuserow: i was sure someone asked that a few days ago... sure enought: http://irclog.perlgeek.de/perl6/2016-03-25#i_12238141
23:48 timotimo yes, teatime. ideally a newer version of the module would actually have a newer version, so --force isn't necessary
23:49 Khisanth joined #perl6
23:55 MadcapJake So panda install X just automatically installs the very latest version of module X?
23:55 RabidGravy yes
23:55 RabidGravy anyway bedtime
23:55 RabidGravy toodles
23:57 captian-adequate exit
23:57 captian-adequate Oops... Sorry about that.
23:57 captian-adequate Meant to close my terminal. ha ha
23:57 * MadcapJake feels there should be an upgrade command that can be tweaked to only upgrade to certain newer versions

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo