»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
00:00 yqt left 00:06 gfldex left 00:07 jack_rabbit joined 00:10 coffee` left, J-L joined 00:18 tinyblak joined 00:21 MadcapJake left 00:25 pippo_ joined
japhb Man, I wish `perl6-m -e ''` was as fast as `perl6-m -v` ... 00:25
pippo_ o/ #perl6
Any body could tel me if it is normal that "ababbabbbabbbabbbbbabb" ~~ m/<[ab]>+/ is faster than "ababbabbbabbbabbbbbabb" ~~ m/[a|b]+/ ? 00:28
m: my $t = now; for ^10_000 {"ababbabbbabbbabbbbbabb" ~~ m/<[ab]>+/}; say now - $
camelia rakudo-moar 9746e8: OUTPUT«use of uninitialized value of type Any in numeric context␤Instant:1427329759.810493␤»
00:28 colomon_ joined
pippo_ m: my $t = now; for ^10_000 {"ababbabbbabbbabbbbbabb" ~~ m/<[ab]>+/}; say now - $t; 00:28
camelia rakudo-moar 9746e8: OUTPUT«1.404720␤»
00:28 colomon left, colomon_ is now known as colomon
pippo_ m: my $t = now; for ^10_000 {"ababbabbbabbbabbbbbabb" ~~ m/[a|b]+/}; say now - $t; 00:29
camelia rakudo-moar 9746e8: OUTPUT«2.09785693␤»
pippo_ good night! 00:30
00:30 pippo_ left
raydiak retupmoca++ awesome! it seems to get past that part now, so I can only assume it's working like it should be, until I get the rest finished; thanks again, excited I can move forward again 00:31
yoleaux 25 Mar 2015 22:35Z <retupmoca> raydiak: install the newest Compress::Zlib, and then try: gist.github.com/retupmoca/5ea886e6d75f62d450b8
00:36 tinyblak left
flussence I was gonna write a late guesswork answer to that regex question, but I found a neater answer 00:38
00:39 tinyblak joined
flussence .tell pippo_ «perl6 --target=ast -e '/<[ab]>+/; /[a|b]+/' | grep QAST::Regex» explains that difference well; the [a|b] case creates slightly more code to run. 00:39
yoleaux flussence: I'll pass your message to pippo_.
timotimo flussence: we can't really skip that, because there'll be parse errors from browsers 00:42
browsers aren't meant to handle object literals in the mluti-digit megabytes
it seems
flussence aw, oh well.
timotimo if you have something better, it'd be nice to have something that is faster 00:43
can you do a bit of javascript work?
when replacing the angular version used in our template with the newest one in the 1 series, things break
apparently the ng-visible="..." stuff doesn't work any more
or was it "ng-show"
flussence I know JS, I might play around with it tomorrow but no promises :)
timotimo cool 00:44
it looks like angular just completely ignores ng-show in the new version or something?
it just shows all of the "alternatives" we've built
flussence I know almost zero about angular... but problems like that sound all too familiar, argh 00:45
(just in using js frameworks in general) 00:46
timotimo :)
flussence (the last big JS thing I worked on like that was at a job where they decided it'd be a good idea to redo the entire UI around a shinier framework mid-project...) 00:48
00:50 skids left
timotimo d'oh 00:51
well, three on the roof is worth more than one in the hand, eh?
00:57 laouji joined
kurahaupo1 flussence: usually a bad idea, but sometimes it's worth giving up on an impossibly bad framework 01:09
01:10 colomon left
flussence I acknowledge that, but I'd learned to cope with the bad bits by then :) 01:11
01:21 colomon joined
raydiak m: say pack "H*", "a" 01:25
camelia rakudo-moar 9746e8: OUTPUT«Cannot call Real(Failure: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in method Real at src/gen/m-CORE.setting:4813␤ in sub infix:<%> at src/gen/m-CORE.setting:5295␤ in block at src/gen/m-CORE.setting:6792␤ in sub pack at src/gen/…»
raydiak ^ github.com/rakudo/rakudo/pull/395 01:26
01:32 Akagi201_ left 01:33 Akagi201 joined 01:37 [particle] joined 01:39 [particle]1 left 01:49 Akagi201 left, Akagi201 joined 01:52 kurahaupo1 left 02:00 colomon left 02:01 colomon joined, tinyblak left 02:06 colomon left 02:07 colomon joined, tinyblak joined 02:17 adu_ joined 02:35 skids joined 02:45 ilbot3 left 02:46 ilbot3 joined 02:49 prime left 02:51 pochi joined 02:52 pochi_ left, Hor|zon_ joined 02:54 tinyblak left, BenGoldberg left 02:55 tinyblak joined, Hor|zon left 02:56 prime joined 02:57 Hor|zon_ left, Hor|zon joined 02:58 adu_ is now known as adu 03:06 noganex_ joined 03:09 noganex left
skids cannot figure out how to pass :%chosen into the nqp ModuleLoader.load_module. 03:10
Nothing I ave tried works. 03:11
03:18 Psyche^ joined 03:22 Patterner left 03:48 tinyblak left 03:49 kaleem joined 03:51 yoleaux left, yoleaux joined, ChanServ sets mode: +v yoleaux 03:52 kurahaupo1 joined 03:55 yoleaux left, yoleaux joined, ChanServ sets mode: +v yoleaux 04:03 tinyblak joined 04:05 Sqirrel left 04:15 skids left 04:17 kaleem left 04:21 anaeem1_ joined, anaeem1_ left 04:22 anaeem1_ joined 04:36 mr-foobar left 04:37 molaf left 04:52 Sqirrel joined 04:54 davido_ left 04:58 davido_ joined 05:02 kurahaupo1 left 05:10 davido_ left, davido_ joined 05:11 diana_olhovik_ left, davido_ left 05:21 davido_ joined
dalek c: 9d93967 | paultcochrane++ | lib/Type/Str.pod:
Correct output of split() examples

Thanks to @songzan for pointing this out! This commit closes issue #64.
05:44
c: fd6d1f8 | (Edwin Steiner)++ | lib/Language/setbagmix.pod:
Rephrase subtitle and introduction of "Sets, Bags, and Mixes" to

Add some words about immutable/mutable variants.
05:52
c: 23135c0 | paultcochrane++ | lib/Language/setbagmix.pod:
Merge pull request #63 from edwinst/master

Emphasize unorderedness of "Sets, Bags, and Mixes".
05:55 chenryn joined 06:00 adu left 06:07 sno left
dalek kudo/nom: fe9bade | raydiak++ | src/core/Buf.pm:
Fix a pack 'H' bug
06:20
kudo/nom: c5ba5b8 | FROGGS++ | src/core/Buf.pm:
Merge pull request #395 from raydiak/packfix

Fix a pack 'H' bug
raydiak thanks for the merge FROGGS[mobile]2++ :) 06:25
06:26 Akagi201 left 06:30 eiro left 06:31 Akagi201 joined 06:35 eiro joined 06:45 bjz joined 07:01 SamuraiJack joined 07:02 xprime joined 07:03 bartolin left 07:04 prime left 07:06 ecocode joined 07:08 LonelyGM left 07:09 diana_olhovik_ joined
moritz wow, we have a FROOGS and *two* mobile froggs 07:09
world domination must be around the corner
07:11 abraxxa joined
moritz erm, "world domination" is such an ugly phrase. I prefer to call it "world optimization". 07:20
07:22 bartolin joined, bjz left
dalek kudo/nom: 9210cc6 | TimToady++ | src/core/metaops.pm:
allow [Z] and such on indirect lols

We can now reduce with list infixes over an arbitrary number of lists.
07:27
ast: eed14ff | TimToady++ | S03-metaops/zip.t:
add tests for [Z] and [Z<] on indirect lols
07:27 rindolf joined 07:29 sno joined 07:30 darutoko joined 07:36 larion left 07:38 bjz joined 07:40 bjz left 07:41 bjz joined 07:42 jack_rabbit left 07:45 FROGGS joined, FROGGS[mobile]2 left
FROGGS moritz: everything back to normal :D 07:46
07:47 Ven joined
TimToady .tell grondilu now that [Zop] |lol is fixed, I've used that in the newest rosettacode.org/wiki/Longest_common...fix#Perl_6 07:48
yoleaux TimToady: I'll pass your message to grondilu.
07:49 larion joined 07:51 bjz left 07:54 larion left
TimToady things are normally abnormal here... 08:06
FROGGS which I consider normal in here
08:06 Ven left
TimToady the normal is normal to the normal here... 08:07
08:08 Alina-malina left
nwc10 which normal (and how many dimensions we have) is left as an exercise to the (confused) reader 08:08
08:08 virtualsue joined
FROGGS and when we invert the normal we stand behind ourselfs? 08:08
08:09 Alina-malina joined 08:14 Sqirrel left 08:18 Sqirrel joined 08:30 Alina-malina left 08:31 Alina-malina joined 08:36 bjz joined 08:42 Rounin joined 08:45 pdcawley joined 08:48 tgt joined, tgt left 08:56 smls joined
smls Morning 08:57
08:58 tinyblak left
FROGGS morning smls 08:58
smls TimToady, |Tux| (re backlog): How would you reliably check if the VAR of something has been passed in the "out => VAR($foo)" usecase? 09:01
Since not all variables/lvalues are Scalar's
Worse yet, whether something is a Scalar or, say, a Proxy, might be decided at a distance 09:02
Think of a case like «my $a = A.new; ... out => VAR(A.foo) ...;» -- someone might do that because it works, but then the author of class A releases a new version where .foo is upgraded from an auto-generated Scalar accessor to a Proxy-returning method. 09:06
s/A.foo/$a.foo/
moritz smls: maybe Proxy should be a subclass of Scalar 09:07
smls maybe
moritz smls: or there should be a common role that both Proxy and Scalar do
jnthn The low-level answer is nqp::iscont 09:09
Which covers Scalar and Proxy
smls moritz: things like native int variables would still be an issue, but at least those are not something you usually have without knowing it 09:10
jnthn And the various native reference containers.
smls: Actually the design is so you *can* not know you have them
In general, though, it's probably a very bad idea to write code that goes introspecting these things. 09:11
09:11 Ven joined
smls m: class A { has int $.foo = 42 }; say A.new.foo.VAR.WHAT 09:11
camelia rakudo-moar 9210cc: OUTPUT«(Int)␤»
09:12 virtualsue left
smls jnthn: I mean that you would usually only have one of them if you declared a lexical variable as "my int ..." 09:12
If ^^camelia is correct, you won't even get one from a class accessor
jnthn smls: Or you read a value out of a native array and we didn't know you were going to use it in l-value context, or...
That class accessor is ro 09:13
smls d'oh
jnthn "is rw" gives one
smls m: class A { has int $.foo is rw = 42 }; say A.new.foo.VAR.WHAT
camelia rakudo-moar 9210cc: OUTPUT«(IntAttrRef)␤»
smls hm, in that case yeah, the solution would need to cover native types as well
jnthn What is the problem at hand, ooc? 09:14
smls |Tux| wanted to port a CSV module API from Perl 5 where passing a reference as "output file name" writes the output to that variable instead of a file 09:15
TimToady suggested making the distinction by out => $foo vs out => VAR($foo) in Perl 6 09:16
jnthn uh...what... :)
I can't see how that'd work out 09:17
Oh, maybe I can
But it's...really weird.
The first thing I'd do if I was dealing with such code is refactor it to not use VAR :P
smls better than passing a Capture for the write-to-variable case ;) 09:18
jnthn That's a bunch more robust.
09:18 kjs_ joined 09:19 Alina-malina left, Alina-malina joined
jnthn Not to mention you can distinguish it with multi dispatch. 09:19
But I'd still just not do it that way. 09:20
smls jnthn: TimToady did suggest out => "filename".IO vs out => $variable as his first choice
The VAR() thing was apparently more of a suggestion to keep it close to the Perl 5 API 09:21
Tux__ the VAR thing never struck me as a serious suggestion
jnthn Well, given I don't think the Perl 5 API in question was even a good idea, I'm not too sad if it's tricky to replicate it very closely in Perl 6.
09:21 Tux__ is now known as |Tux| 09:22 noganex_ left
jnthn I fail to see a way in which methods to write to file and return as string wouldn't have been clearer. 09:22
|Tux| fails to parse that 09:23
09:23 telex left, larion joined
jnthn |Tux|: Why not have separate methods: one that returns a string, one that takes a file name and writes to that file? That'd avoid the whole problem *and* almost certainly be clearer to anybody reading the code. 09:24
09:24 telex joined
|Tux| maybe :) 09:24
jnthn Maybe there's some design motivation I'm missing, it just feels a little magical. :) 09:25
09:25 noganex joined
|Tux| feels *all* of perl{5,6} is magical, and I ♥ it! 09:26
smls Returning a string would also allow people to pass it straight to another routine without having to create a temporary variable.
|Tux| IIRC the routine in question does not return a string in any situation
09:26 fhelmberger joined
|Tux| one can pass a reference to a string in the out attribute, in which case you explicitely ask to write the data to the string 09:27
jnthn |Tux|: Yes, though in Perl 6 we tend to cast slightly mess mutable spells :)
09:27 Foxcool left
|Tux| the function/method itself will never return a string 09:27
jnthn *slightly less
psch *slightly less messy
\o
jnthn |Tux|: Yes, I was suggesting that you might want to have a method that returns a string, with a different name, rather than overloading that onto a "write" method that usually wants a file handle. 09:28
uh, or file name. 09:29
|Tux| ah, now I understand your remark
I'll ponder on that too
mutli methods are a blessing
jnthn As smls++ pointed out, then folks can write do-something-with($thingy.get-it-as-a-string) rather than needing to introduce a temporary variable to pass a reference to... 09:30
|Tux| indeed, though this function never was created with that in mind 09:31
it was created as a standalone top-level single-call api to do what people want to do *once*
read the entire CSV file into a LoL without having to write loops or care about errors 09:32
methods that can be used in process chains are all already done
09:33 risou is now known as risou_awy
jnthn Ah, I see 09:33
Ven thinks [Zeqv] looks really cool... :P
|Tux| as I myself use the function being discussed almost every day, I think it fully serves the goal it was written for
and I hada lot of feedback from end-users (SawyerX is very evil in suggesting what he thinks impossible but proved very useful) 09:34
I added «csv (in => sub { $dbh->fetch }, out => "file.csv");» -> dump a complete database table to CSV from perl in a single line streaming (no memory restraints) 09:35
09:35 dakkar joined
|Tux| $sth->fetch of course 09:36
jnthn *nod*
OK, if it's a high level thing like that, it makes more sense. 09:37
I'd still avoiding building it relying on VAR though.
jnthn bbi10
|Tux| I already did (I think)
09:37 grondilu joined 09:40 Sqirrel left
smls grondilu, Mouq: Metaops are specced to *not* preserve short-circuiting behaviors of the operators they're used on. 09:45
09:45 larion left
smls imo the best way to think about short-circuiting ops like && or xx as they exist in Perl 6 right naw, is to imagine that they exist both as a sub and as a macro with the same name. 09:45
The macro version provides short-circuiting magic and globbers the sub so it is used when the operator is invoked directly 09:46
09:46 Rounin left, larion joined
smls but places like [op] or &infix:<op> that explicitly refer to the function object of the operator, get the sub version that cannot short-circuit. 09:47
s/short-circuiting/thunking/ more generally 09:49
09:49 Sqirrel joined
smls hoelzro: Throwing a warning if a lexical variable is redeclared in the same scope, is imo a good thing. Perl 5 does the same with "use warnings". 09:53
grondilu wonders about reduce then 09:54
yoleaux 07:48Z <TimToady> grondilu: now that [Zop] |lol is fixed, I've used that in the newest rosettacode.org/wiki/Longest_common...fix#Perl_6
grondilu m: say so reduce * && *, map * > .1, rand xx *
camelia rakudo-moar 9210cc: OUTPUT«Type check failed in binding &with; expected 'Callable' but got 'Whatever'␤ in sub reduce at src/gen/m-CORE.setting:10526␤ in block <unit> at /tmp/67RnQ4K6CZ:1␤␤»
smls hoelzro: After all, the whole point of having explicit declarators (rather than first-assigment semantics like Python) is to make it extra clear and visible which lexical variable is which.
grondilu m: say so reduce { $^a && $^b }, map * > .1, rand xx * 09:55
nah that can't work.
camelia rakudo-moar 9210cc: OUTPUT«(timeout)»
grondilu I guess I just have to use !first as suggested by TimToady 09:56
TimToady: [Zop] |lol is quite tough to grasp
masak good always morning, #perl6 09:57
psch o/ masak
grondilu (but I guess one can get used to it)
tadzik always morning is the better "eternal september"? :) 09:58
smls
.oO(Just mention the word 'macro', and masak will appear...)
;)
jnthn Especially if you call the macro marco :D 10:01
o/ masak 10:02
arnsholt I still think the canonical names should be sub marine and macro polo 10:04
psch regex ~, we meet again *shakes fist*
arnsholt Not sure about the rest =)
psch FAILGOAL is interfering with my moreinput efforts
10:04 virtualsue joined
psch apparently the way i'm appending doesn't fit with how regex ~ is compiled 10:04
smls I suppose the only way [&&] could sensibly be respecced to short-cuircuit, is if thunking arguments becomes an official feature for Perl 6 routine signatures (rather than something that needs a "macro") 10:05
jnthn psch: a ~b c just becomes a c [b || <.FAILGOAL(...diag args...)>] 10:06
The compilation isn't more special than that, as far as I remember it. 10:07
And there's plently of || <.panic: ...> style things elsewhere in the grammar with the same kind of behavior.
FROGGS and if b is too greedy to also gobble c...
psch jnthn: right. i think the issue is that the ast for ~ doesn't get the Cursor where i append 10:08
jnthn FROGGS: I think you mixed up c and b? :)
FROGGS perhaps :P
psch but that's a guess right now, i'll have to look closer at it
eh, the ast doesn't get the Cursor anyway
but yeah, i think somewhere there is where i have a problem :l
jnthn psch: In every single token/rule/regex, about the first thing it does is read the (immutable) target str into a local. 10:09
timotimo o/ 10:10
FROGGS hi timotimo 10:11
10:11 espadrine joined
jnthn o/ timotimo 10:11
timotimo jnthn: did i understand correctly that your tuit-time has come right now? :) 10:12
psch o/ timotimo 10:13
timotimo perhaps that means local <-> localref is going to work in code-gen 10:15
and then i can build the optimizer support that turns lexicalref/lexical into localref/local
and then we may recover a big chunk of the performance hit we recently took
jnthn timotimo: Just about, yes 10:16
timotimo neato :)
jnthn timotimo: I need to make a run to the office this afternoon for admin stuff, small meeting, and to see the huge new shiny metal logo that's been added to the office wall since I was last there. :) 10:17
timotimo: After that I'll be able to focus on stuff more :)
Certainly tomorrow is undistracted Perl 6 time :)
jnthn still feels like he's catching up on sleep after 3 weeks largely "on the road"... 10:18
psch jnthn: what's "it" there? NQPCursor?
*Role
jnthn psch: No
nwc10 Swedish trains are *so* slow that it takes 3 weeks to get anywhere?
jnthn psch: The code the rule/token/regex compiles into
nwc10: No, and two of the trips were far enough away they were flights. 10:19
Well, actually, that's because Swedish/Norwegian politicians seem too silly to realize a high speed Copenhagen - Oslo line would actually be really darn useful. 10:20
nwc10 how many hills would it have to tunnel through?
jnthn Not terribly many on that particular route
nwc10 not that the Norwegians seem to be allergic to tunneling, given some of the pictures I've seen of their road tunnels 10:21
jnthn I don't remember it being especially tunnelly
It just takes 7+ hours and you gotta chance train somewhere.
arnsholt Oslo-Copenhagen is virtually tunnel-free
The mountains are mostly to the west and north of Oslo
jnthn I did it a couple of times for the fun of it but...7 hours is not a fun commute.
10:22 Rounin joined
nwc10 oh my, Google thinks that you can drive it in 6h17 10:22
arnsholt Skåne (where jnthn and masak are) in particular is almost as flat as Denmark
jnthn nwc10: Yeah, it's only 600km
nwc10 if trains are slower than cars, that's a wrongness
jnthn It trundles along at 70km/h for a chunk of the way, iirc.
It *does* mean you get to enjoy the scenery, which in places is quite pretty. 10:23
timotimo last night i had a weird idea where i thought we could have a Cursor or Grammar parameterized with the actions class/instance
nwc10 IIRC the train from Vienna to Nuremburg feels darn slow in the middle
(probably because it is)
then again, Austria's railJet is, um, misnamed.
jnthn psch: github.com/perl6/nqp/blob/master/s...T.nqp#L152 is the thing I'm referring to in the Moar code-gen, fwiw 10:24
nwc10 and the new high speed lines are insufficiently French.
jnthn As in, not 300km/h?
10:24 sven_123 left
nwc10 yes, exactly 10:24
jnthn Aww
timotimo railJit? 10:25
nwc10 only seems to beat an HST on the last bit into Vienna
arnsholt Train a Moyenne Vitesse? =)
nwc10 HST is *not new* technology, and not running on purpose built lines.
jnthn HSTs are soon to be a sight of the past, too...
timotimo the Holy Shit Train?
jnthn Basically. :)
As I understand it, they were built on a rather tight budget, came out darn awesome, and have been the bread and butter of intercity rail travel in the UK for some decades. :) 10:26
nwc10 I only recently discovered that "BFR" is one term being used for the post Falcon Heavy rocket from SpaceX
10:26 eli-se joined 10:27 eli-se left
jnthn sorts out OSDC.no submissions... 10:27
m: say 230 / 60 10:31
camelia rakudo-moar 9210cc: OUTPUT«3.833333␤»
timotimo almost four hours 10:32
jnthn That's how long I'll have to give a Perl 6 hands-on tutorial, apparently :)
timotimo wow 10:33
psch jnthn: i'm a bit confused, then. «say 1 +\n1;» works with my changes, but «if 1 {\nsay "hi";\n}» doesn't 10:35
jnthn: although the error for the second one indicates that you're probably right, 'cause it only has "if 1 {" in "Couldn't find '}'" or however exactly the error was
timotimo psch: fwiw, i'm very glad you're working on this 10:37
psch timotimo: well, not having a neat REPL is annoying me :) 10:39
jnthn psch: Yes, I don't really have any great answers on this right away...I'll ponder it a bit.
psch: Re-fetching the string and length after very subrule call feels...sub-optimal... 10:40
psch jnthn: thanks :)
jnthn Though could probably be hacked in easily enough
psch jnthn: fwiw, i'm about to push to branches, maybe i've missed something
smls Another sneak peek at my current (early-stages) perl6.org redesign work: i.imgur.com/QFtj4TQ.png (Close-up of the "Features" section on the main page. Only one Feature box can be expanded at the same time. Clicking outside the box closes it again.) 10:41
jnthn smls: neat! :)
timotimo smls: i like that
smls: also, i've been dreaming about building an in-browser thingie that'd let you execute code 10:42
every time i think too much about it, security concerns put me off, though
masak smls: can a person browse the site without JavaScript on?
psch timotimo: in-browser could be client-side without security concerns, couldn't it?
timotimo: i.e. nqp-js
jnthn timotimo: I wonder if we could do it by spinning up docker instances... 10:43
timotimo that's a bit off, though
jnthn timotimo: Which should be sufficiently isolated?
smls masak: In that case the feature names would be links to perl6.org/about/features which would have all of the boxes expanded as normal page sections (+ further info which is where the "more" link goes)
timotimo jnthn: hopefully :)
jnthn: and they'd also run inside the high-risk VM
jnthn And I seem to recall that's possible in O(seconds)
timotimo docker "instances" come up very fast, aye 10:44
jnthn Could be fun to build a Perl 6 thing to manage them too
masak smls: nice!
smls++
timotimo moritz: do you think it'd be a good idea to get a SElinux "enabled" distro for the high-risk vm?
dalek p/moreinput: 8aeba2a | peschwa++ | src/QRegex/Cursor.nqp:
Turn NQPCursorRole.{target,orig} into accessors.
jnthn Hm, it'd be a nice use case for Perl 6 async stuff to manage the docker things running too...
smls timotimo: I'd like a try.perl6.org too... ;) 10:45
dalek kudo/moreinput: 91b292d | peschwa++ | src/Perl6/Grammar.nqp:
Partially implement moreinput in our grammar.
kudo/moreinput: d7b0597 | peschwa++ | src/Perl6/Compiler.nqp:
Provide $*moreinput for the REPL.
tadzik :o
good times
psch jnthn: ^^^ in case there's an obvious stupid that i missed
smls timotimo: python.org has a "launch interactive shell" thingy which tries to open an ssh connection to an eval server, but it doesn't seem to work for me 10:46
oh, actually it does
it's fast, too (once it's connected)
timotimo i'd really like to have something that can do ANSI escape code commands properly, fwiw 10:47
can we get the console they have? :)
it even does a little "pling!" on \a 10:48
jnthn That's alarming... 10:49
tadzik *g*
10:53 larion left
jnthn psch: DEBUG_PLS is cute, but maybe best to prefix it with RAKUDO_ :) 11:03
If you intend to keep it :)
11:04 skids joined
jnthn psch: I'm a bit surprised by nil/Nil as NQP doesn't have them :) 11:05
Use NQPMu
smls Any chance deprecation messages could also become opt-in via envvar after 6.0 ?
jnthn That sounds like a great way for them to be missed... 11:06
smls If we make sure the envvar is set when unit tests are run, the original developer and distro packagers will see them
I really dislike the prospect of end-users of command-line apps being spammed with such messages. 11:07
nwc10 it's an awesome way for them to be missed
at some point in the deprecation cycle they have to be defaulting to on
smls STDOUT/ERR is basically the user interface of those apps; as developer I should have full control over them to fine-tune what users see.
nwc10 note, *defaulting*
11:08 chenryn left
jnthn I can see we want something there, but I suspect env var to enable them is the wrong way. 11:08
psch jnthn: DEBUG_PLS is probably a bad habit. i didn't intend for it to become public... :) 11:09
11:09 Akagi201 left
jnthn psch: OK, then no worries 11:09
11:09 Akagi201 joined
jnthn What is the $*NESTED_BLOCKS == 0 about, ooc? 11:10
nwc10 it's probably useful to have some sequence. defaulting to off (but can be enabled) and then nearer the time that they will go, defaulting to on (but can be disabled)
jnthn I'd have expected it to be != 0...
nwc10 and also, I suspect, I'd view how Perl 5 does no warnings; as a design error
psch jnthn: the mark is set when we don't want moreinput
nwc10 C<use warnings; no warnings;> is not a no-op
after it, enabled-by-default warnings get turned off 11:11
psch jnthn: but in moreinput itself it should be !=, yeah
...i think. i got distracted by having to help fixing a bike's gear change
jnthn psch: Hm, maybe we want to name it differently :)
Yes, I'm sure *something* is wrong
timotimo ah, neat! the console used in python.org's "try it out" shell thingie is from chromium OS 11:12
11:12 chenryn joined
jnthn I can understand why you care about nested blocks, but I'm sure something is off... 11:12
moritz timotimo: re selinux, only if you want me to not maintain it :-)
jnthn psch: As to 8aeba2a18d, I don't really like those becoming accessors 11:14
11:15 darutoko- joined
jnthn $cursor.orig($more); $cursor.target($more); is just bad OO design 11:15
11:15 gcole_ joined
psch jnthn: tbh, that was just the quickest way i could see to get started 11:15
jnthn Probably should be some (scary looking) method !REPLACE_ORIG($orig) { ... } that updates both.
I really don't want this to look like any kind of "normal" API for the time being. 11:16
psch *nod*
11:16 larion joined
jnthn (Those accessors become Perl 6 visible, which is why I get concerned.) 11:16
11:17 yeltzooo9 joined
psch yeah, that's where i tested with a small grammar at first 11:17
jnthn ah, OK
11:17 Gruber joined
timotimo moritz: then it's settled :D 11:17
jnthn But yeah, I suspect you are running into the whole "target/eos not updated" thing
psch - $result = Nil unless $result.to == $target.chars;
+ $result = Nil unless $result.to == $target.chars || $result.to == $result.CURSOR.target.chars;
is what i still have local
11:17 btyler_ joined
psch but don't plan to commit :) 11:17
11:18 yeltzooo left, tinita_ joined 11:19 japhb_ joined, haroldwu_ joined, bartolin_ joined, Ven_ joined 11:20 perlpilot joined, smls_ joined 11:21 virtualsue left
jnthn should probably have lunch :) 11:21
bbl
11:22 arnsholt_ joined, bartolin_ left 11:24 estrabd_ joined 11:25 Ven left, smls left, darutoko left, haroldwu left, btyler left, risou_awy left, Grrrr left, mst left, leedo left, cursork left, risou_awy joined 11:29 cursork joined, mst joined, leedo joined, bartolin_ joined 11:30 telex left, nwc10_ joined, telex joined, bartolin left, Peter_R left, kaare_ left, tinita left, PerlJam left, gcole left, [ptc] left, estrabd left, hugme left, japhb left, nwc10 left, arnsholt left, eiro left, yoleaux left, Psyche^ left, pochi left, petercommand left, vendethiel left, dj_goku left, ugexe left, erdic left, larks left, rjbs left, ruoso left, DrForr left, simcop2387 left, d^_^b left, mathw left, cosimo left, BooK left, nwc10_ is now known as nwc10
timotimo sigh ... one of these days i'll apparently have to actually implement websockets 11:31
or someone else
smls_ m: say (*.net *.split)
camelia rakudo-moar 9210cc: OUTPUT«WhateverCode.new␤»
smls_ ^^ no TTIAR?
masak smls_: multiplication 11:32
smls_ ah
timotimo tee hee
11:33 sirhouseboat left, hugme joined, Peter__R joined, [ptc] joined, kaare__ joined, eiro joined, yoleaux joined, Psyche^ joined, pochi joined, larks joined, petercommand joined, vendethiel joined, dj_goku joined, ugexe joined, erdic joined, rjbs joined, ruoso joined, DrForr joined, simcop2387 joined, d^_^b joined, mathw joined, cosimo joined, BooK joined, card.freenode.net sets mode: +v yoleaux
smls_ masak: But why does it not attempt to evaluate the .split immediately? 11:35
When constructing the WhateverCode 11:36
moritz m: say (.split).perl
camelia rakudo-moar 9210cc: OUTPUT«Cannot call split(Nil: ); none of these signatures match:␤ (Cool: Regex $pat, Any $limit = { ... }, Any :all($all), *%_)␤ (Cool: Cool $pat, Any $limit = { ... }, Any :all($all), *%_)␤ in block <unit> at /tmp/xNhaoTSWyk:1␤␤»
smls_ m: say (* + .split)
timotimo smls_: because it gets multiplied with a whatevercode
camelia rakudo-moar 9210cc: OUTPUT«WhateverCode.new␤»
timotimo so it gets assimilated
smls_ m: say (* + .split)(4)
camelia rakudo-moar 9210cc: OUTPUT«Cannot call split(Nil: ); none of these signatures match:␤ (Cool: Regex $pat, Any $limit = { ... }, Any :all($all), *%_)␤ (Cool: Cool $pat, Any $limit = { ... }, Any :all($all), *%_)␤ in block <unit> at /tmp/D5uqsqFvUk:1␤␤»
timotimo into the whatevercode
smls_ so WhateverCurrying operates on thunks?
moritz m: say (*.net).^name
camelia rakudo-moar 9210cc: OUTPUT«WhateverCode.new␤»
11:37 chenryn left, xfix joined
hoelzro smls_: I'm not objecting the warning; I'm curious if the behavior is specified 11:37
timotimo WhateverCurrying is a syntactic operation
11:37 chenryn joined 11:38 BenGoldberg joined
timotimo so there's really no reason to evaluate that .split there 11:39
it happens way earlier than evaluation does
smls_ m: my $a = 1; my &foo = $a + *; $a++; say foo 10 11:40
camelia rakudo-moar 9210cc: OUTPUT«12␤»
smls_ right, makes sense.
11:42 chenryn left
smls_ Wonders if the whitespace rules for infixes should be restricted to only allow leaving out surrounding whitespace if you're leaving it out on *both* sides of it. 11:43
dalek p/moreinput: 315106c | peschwa++ | src/QRegex/Cursor.nqp:
Make fiddling with Cursor internals scarier, jnthn++.
11:44 kaare__ is now known as kaare_
FROGGS psch++ # moreinput 11:45
timotimo hm. actually, i think we'll sort of want not only a REPL that you can try perl6 in, but also a "big editor and a run button" kind of deal
sort of like camelia + gist
jnthn It'd also be quite nice if many of the snippets we put around the site as examples, come with a link to directly put them into such a session too so people can run and play with them right away :) 11:47
11:47 coffee` joined
smls_ timotimo: The python.org shell even allows file I/O, which is nice 11:49
11:52 skids left 11:53 BenGoldberg left
timotimo smls_: cool, can you find out how they do it? do they upload local files or do they build a "service" on the user's browser that lets the python instance on the other end use a local file remotely? 11:54
psch oh huh 11:57
11:57 coffee` left, coffee` joined
psch i think that scary uc method probably doesn't work private 11:57
timotimo we have a perl6/perl6-docker and a perl6/docker now; should i delete one of those? 11:59
moritz yes please 12:00
smls_ timotimo: I have no idea how it works; I just tested the sequence of commands: «f = open('foo.txt', 'w')» «f.write('Hello World')» «f.close()» «g = open('foo.txt')» «print(g.read())» ...and the last one correctly prints Hello World 12:01
moritz 'docker' is newer, so delete perl6-docker?
timotimo oh
i thought you meant you could access files on the user's local machine
which is something i really want ours to be able to do
smls_ oh 12:02
timotimo also, i really want ours to be able to display pretty stuff in-line, like images that were generated from code :)
or play audio that the user's code generated :D
12:03 smls_ is now known as smls
jnthn meeting & 12:03
psch r-m is too slow for real time audio generation :/ 12:04
12:04 coffee` left
timotimo yeah, but it doesn't have to be real time yet 12:04
12:04 coffee` joined
timotimo that's tricky to pull off very good anyway ... WebRTC perhaps? i didn't really look into that yet 12:04
psch i have no idea about the web part, and the r-m RTA stuff i did i just half-finished portaudio bindings and a port of an example of that 12:05
i suppose those could still go into the ecosystem eventually, although i'll have to have another look at it
timotimo devnull-as-a-service.com/ <3 12:06
smls timotimo: Are those kinds of features really interesting for people who just want to toy around with a new (for them) language though?
timotimo smls: when they're paired with example code, i am convinced that it'd be awesome 12:07
smls (which seems to be the main audience for such "try in your browser" thingies)
12:07 laouji left
psch while we're at it, let's stuff saving sessions in there as well \o/ 12:07
so people can hold intro talks on the try-website and share the link afterwards 12:08
timotimo psch: github gist interop, sure.
smls right, the "open this example snippet in the interactive shell" feature that jnthn suggested would be cool.
12:09 eli-se joined
timotimo yes. yes. YES. 12:09
also, every line of camelia's should be visible on the corresponding page, directly openable and editable
12:12 tinyblak joined 12:15 pierrot left
psch timotimo: you mean something like "what #perl6 is trying right now"? 12:17
timotimo yeah 12:18
but also as a convenient place to work with camelia scripts that's not your irc client's line editor
psch ah
12:21 pierrot joined
smls timotimo: To let people usefully play around with demo snippets in the interactive shell, we should first teach our REPL (which I presume the shell would be based on) to play nice with multi-line statements 12:24
timotimo my first iteration will have to be limited to full programs
smls So it would treat e.g. a whole function definition as one statement, and only break after the closing brace
timotimo: Ah, more of a "editor + run button + output box" thing 12:25
that might actually be even more appropriate than a REPL for some of those use cases
timotimo yup
much like Farabi6
damn 12:28
docker doesn't support selinux + btrfs apparently
which is what both my laptop and desktop run 12:29
smls timotimo: Looks like the python.org interactive shell is powered by a commercial "Python IDE in your browser" service 12:30
Which suggests there may be a non-negligible maintenance effort involved to justify the prices
timotimo i know
local file io "on the server" is doable just by virtue of using docker and its throw-away filesystem
smls Can we maintain it on a volunteer basis? 12:31
I doubt moritz would be thrilled to do it ;)
12:31 Foxcool joined
timotimo i'll shoulder a significant amount of work. i must. 12:31
smls ++timotimo
timotimo (because i'll be writing the shitty code that'll get us into trouble)
moritz what do you want to use Docker for anyway? 12:35
it doesn't offer any extra security
and you can simply mkdir and chroot into a temp dir
12:36 kjs_ left
espadrine isn't docker the new chroot? What isn't secure about it? 12:37
(which is about chroot)
moritz espadrine: last I looked, the docker folks themselves said that it's not secure 12:38
timotimo moritz: i was thinking docker would allow easy-ish updating of the used compiler and battle-tested throw-away mechanics
12:39 chenryn joined
moritz espadrine: so you shouldn't ever give somebody in a docker container root, because that can compromise the host 12:39
timotimo: doesn't seem easier than rakudobrew to me
tadzik well, rakudobrew requires you to compile everything 12:40
espadrine moritz: giving them root access, sure, but giving them user access should be fine, I believe 12:41
moritz tadzik: that you most certainly have to do when updating the compiler :-)
tadzik not if you can update the compiler binary, no?
modules, yes
12:42 arnsholt_ is now known as arnsholt, SamuraiJack left
moritz well, we don't ship compiler binaries for linux 12:43
timotimo moritz: OK, i'll see how to go forward without docker. i haven't learned to use docker yet anyway :)
12:43 chenryn left
moritz timotimo: if docker offers us a real, tangible benefit, I'm all for using but. But so far I only heard the equivalent to "it's the cool new stuff" and "the concept sounds awesome" 12:44
12:44 SamuraiJack joined
timotimo hehe 12:44
moritz or stating the docker does things for us that it doesn't really
s/the/that/
espadrine can't find anything to back this up, so chroot may indeed be superior from a security standpoint
timotimo i'd put some cgroups in there for good measure 12:45
moritz espadrine: well, docker does things like a new LXC container / cgroups, but then so does any systemd service if you add one or two lines of config
docs.docker.com/articles/security/
[Coke] just added github.com/nyperlmongers/nyperlhac...st-Cleanup as a low hanging fruit project for a perl 6 track of projects at the NYC hackathon. Suggestions welcome, but they should be something I can help out potential hackers with (or have folks on channel available for answering questions during the time of) 12:46
moritz zeltser.com/security-risks-and-ben...plication/ "Along these lines, a process running as root (UID 0) in a container has root-level privileges on the underlying host when interacting with the kernel" 12:47
12:48 Ven_ left 12:49 SamuraiJack left
moritz one of the reasons I'm hesitant to use Docker is that every security update of the base OS means that you have to wait for an updated base image, and then rebase your image onto the new base image (iiuc), and then re-deploy your app image 12:50
[Coke] (updated that wiki page)
12:50 SamuraiJack joined
moritz and that's probably worth the effort if you can automate much of it, and have lots of container instances running on separate hosts 12:51
12:51 risou_awy is now known as risou
moritz but for just one host, it sounds like oh-so-much more work than 'apt-get update && apt-get dist-upgrade' 12:51
[Coke] moritz: in some places, that's faster than waiting for the server team to update the box-actual.
moritz (which I've automated further with an ansible script that does the update && upgrade for me) 12:52
[Coke] we're considering here for deploying web apps, but we've got ... hundreds.
moritz [Coke]: yes, but $here (hack / high-risk p6 server) we don't have separate ops teams for OS and Apps
[Coke] right, different equation. 12:53
moritz aye 12:54
in our equation, the main thing to consider is reduing the number of moving parts 12:55
[Coke] regarding rakudo PR #395 - spectest has been clean; does this mean this behavior was not tested?
12:56 anaeem1_ left
dalek kudo/tab-completion: d83d759 | hoelzro++ | README.md:
Add note about Linenoise in the README
12:57
FROGGS [Coke]: there is a test:
rakudo/t/spec/S32-str/pack.t:9: my $buf = pack('H*', "414243");
though, that happened to work since the string is numberish
m: say "414243" % 2 12:58
camelia rakudo-moar 9210cc: OUTPUT«1␤»
FROGGS m: say "414243".chars % 2 # but that was meant
camelia rakudo-moar 9210cc: OUTPUT«0␤»
13:02 zakharyas joined
[Coke] If we're fixing a bug, something in roast needs to change. 13:02
more tests, unfudged tests..
FROGGS +1 to more tests :o) 13:03
[Coke] falls victim to the last-minute-cancel. already on the call when the email comes in.
[Coke] guesses more コーヒー, instead. 13:04
FROGGS .tell raydiak can you add a test to roast for github.com/rakudo/rakudo/pull/395 ?
yoleaux FROGGS: I'll pass your message to raydiak.
[Coke] ++raydiak
and raydiak++
timotimo would it be ok to drop support for IE? 13:05
13:07 eli-se left
moritz timotimo: drop IE support from what? 13:08
timotimo the "try perl6" thing
actually
i think there's a polyfill for this api that i'm interested in
moritz timotimo: you can't drop support from something that doesn't exist :-) 13:09
[Coke] certainly we don't need to support anything before IE-latest.
espadrine project spartan and up
moritz by which I mean to say that it's better to have something that doesn't support IE than having nothing 13:10
timotimo espadrine: is that even available?
espadrine timotimo: in the next windows beta, I believe!
timotimo for "try perl6 in your browser" we should require windows 6 or upwards. 13:11
also, the "try perl6" applett for windows users should be an ActiveX thingie written in visual basic 6 13:12
psch that would make local file access easier. just use the applet to install R* 13:13
timotimo :D
if there's anybody out there hard core enough to allow activex applets from the internets 13:14
smls timotimo: Isn't google in the habit of creating overengineered JavaScript-based solutions for magically making non-IE web features work on IE? ;)
[Coke] wakes up at $dayjob, and realizes he has to fix this bug in his app in IE11. *sigh*
timotimo smls: in this particular case it's a yandex employee it seems 13:17
hmm 13:18
instead of offering a shitty web-based editor for code, why not just host vim, emacs, nano, ... instances and offer them via ssh? :D
13:18 vendethiel left
timotimo at least with vim we'll have proper syntax highlighting %) 13:19
13:19 vendethiel joined
tadzik no, let's run it all on users' computers using this linux.js thingy 13:20
13:31 gtodd joined 13:34 zakharyas left 13:37 skids joined 13:38 perlpilot is now known as PerlJam
moritz emscripten! 13:39
espadrine qemu.js 13:40
Ulti timotimo just boot a Linux image with Rakudo * installed using asm.js s-macke.github.io/jor1k/demos/main....MwFsjLaZ15 13:43
oh I was too late to the party 13:44
running monkey island in the browser virtually is kind of crazy
espadrine funnily enough, the emscripten treatment has been performed to a number of languages: repl.it/ 13:46
timotimo yeah right :D 13:48
13:49 anaeem1_ joined
Ulti espadrine that's quite cool 13:52
13:59 airdisa joined
masak indeed -- nice. 14:00
wasn't aware of that one. 14:01
timotimo huh? it doesn't even have perl5 14:02
14:02 kjs_ joined
masak unfortunately the modern web world seems to prefer to pretend that Perl does not exist... 14:02
it's their loss, but... still unfortunate.
PerlJam
.oO( the fools! )
masak :)
smls m: for (1, 2, 3).rotor -> [$a, $b] { say "$a, $b" } 14:07
camelia rakudo-moar 9210cc: OUTPUT«1, 2␤2, 3␤»
smls m: for (a=>1, b=>2, c=>3).rotor -> [$a, $b] { say "$a, $b" }
camelia rakudo-moar 9210cc: OUTPUT«Too few positionals passed; expected 2 arguments but got 0 in sub-signature␤ in block <unit> at /tmp/aGFoYuWHCm:1␤␤»
smls why does .rotor croak on a list or Pair's?
masak m: for ((a=>1), (b=>2), (c=>3)).rotor -> [$a, $b] { say "$a, $b" } 14:08
camelia rakudo-moar 9210cc: OUTPUT«Too few positionals passed; expected 2 arguments but got 0 in sub-signature␤ in block <unit> at /tmp/iNryPtEKHw:1␤␤»
masak no idea.
14:09 telex left 14:10 telex joined
psch m: say (:1a, :2b, :3c).rotor.perl 14:10
camelia rakudo-moar 9210cc: OUTPUT«($("a" => 1, "b" => 2), $("b" => 2, "c" => 3)).list␤»
timotimo we have no gzip binding at all yet?
PerlJam timotimo: does Compress::Zlib count? 14:14
timotimo oh 14:15
that does gzip, too?
14:16 morjo_ is now known as Morjo
timotimo cool 14:16
can i tell it to flush its buffer at any given point?
i'm interested in streaming data gzipped across the wire
smls m: given $("a" => 1, "b" => 2) -> [$a, $b] { say "$a, $b" } 14:18
camelia rakudo-moar 9210cc: OUTPUT«Too few positionals passed; expected 2 arguments but got 0 in sub-signature␤ in block <unit> at /tmp/xLYl8CXm0j:1␤␤»
smls ^^ more golfed version 14:19
does [] unpacking in signatures does something special with Pairs?
timotimo ah, i see stuff about flush in the readme
smls: it might interpret the pairs as named arguments in the capture it tries to unpack
m: $("a" => 1, "b" => 2).Capture.perl.say
camelia rakudo-moar 9210cc: OUTPUT«Capture.new(hash => {"b" => 2, "a" => 1})␤»
timotimo there we go 14:20
14:20 Ven joined
timotimo m: $(("a" => 1, "b" => 2)).Capture.perl.say 14:20
camelia rakudo-moar 9210cc: OUTPUT«Capture.new(hash => {"b" => 2, "a" => 1})␤»
timotimo m: $(["a" => 1, "b" => 2]).Capture.perl.say
camelia rakudo-moar 9210cc: OUTPUT«Capture.new(list => ("a" => 1, "b" => 2,))␤»
timotimo m: $(["a" => 1, "b" => 2], named => True).Capture.perl.say
camelia rakudo-moar 9210cc: OUTPUT«Capture.new(list => (["a" => 1, "b" => 2],), hash => {"named" => Bool::True})␤»
timotimo that must be why
smls :/ 14:21
timotimo m: $("a" => 1, "b" => 2).list.Capture.perl.say
camelia rakudo-moar 9210cc: OUTPUT«Capture.new(list => ("a" => 1, "b" => 2,))␤»
timotimo we may want rotor to do this
OTOH, it could be quite interesting to have rotor or combinations or what have you of named arguments and pass them to a sub; not sure how exactly that would be spelled if we make that change 14:22
smls I'd prefer to have such shenanicans go through |( ) interpolation
rather than happen unexpectedly 14:23
14:23 chenryn joined
smls finds the current state of lists-of-lists handling in Perl 6 quite confusing 14:27
14:27 sirhouseboat joined, chenryn left
moritz agrees 14:28
smls some things return Lists of Lists, others return Lists of itemized Lists, other Lists of itemized Arrays, others LoL
s/List/List or Parcel/g to make it even more messy 14:29
grondilu Parcels will disappear after GLR anyway, won't they?
timotimo yes
subsumed entirely by List 14:30
smls for example: 14:31
m: say (2, 4, 6).combinations.perl
camelia rakudo-moar 9210cc: OUTPUT«([], [2], [4], [6], [2, 4], [2, 6], [4, 6], [2, 4, 6]).list␤»
smls m: say (2, 4, 6).rotor.perl
camelia rakudo-moar 9210cc: OUTPUT«($(2, 4), $(4, 6)).list␤»
masak did we ever discuss making the positional in .min/.max into a named :by? to conform with the sub form?
m: say min(22, 4, :by(*.Str))
camelia rakudo-moar 9210cc: OUTPUT«22␤»
masak m: say (22, 4).min(:by(*.Str))
camelia rakudo-moar 9210cc: OUTPUT«4␤»
moritz masak: I think you did
masak m: say (22, 4).min(*.Str)
camelia rakudo-moar 9210cc: OUTPUT«22␤»
masak using :by in one case and not the other feels... a bit odd. 14:32
also, the op form doesn't have a :by, and it totally could
m: say 22 min 4 :by(*.Str)
camelia rakudo-moar 9210cc: OUTPUT«Unexpected named parameter 'by' passed␤ in sub infix:<min> at src/gen/m-CORE.setting:2301␤ in block <unit> at /tmp/ULW9bsTU_F:1␤␤»
timotimo mhm
smls consistency with sort would also be nice though
masak maybe accepting both an optional positional and a named :by would be a nice compromise. 14:33
and not a crappy "compromise just for the sake of making everyone happy", but something that actually benefits all parties.
smls Well the sub forms have it as a named arg because they need it to differentiate from positionals. The method form doesn;t need that, because the invocant vs argument separation is sufficient. 14:36
masak I just think it reads better with :by 14:37
moritz then it would make sense for &sort to have it named too
smls m: say sort 4, 22; say sort *.Str, 4, 22
camelia rakudo-moar 9210cc: OUTPUT«4 22␤22 4␤»
smls interesting.
masak too many corner cases :/ 14:38
smls who still uses the sub forms anyway? :P
14:39 ecocode left
masak OOP-deniers? 14:40
14:40 colomon left
gtodd Lisp users 14:42
PerlJam not every problem maps to OOP solutions in people's brains. Part of the appeal of P6 (and P5) is that is doesn't force you into a particular thought-context.
(or ... *I* use the sub forms when I'm thinking of solving a problem and that way occurs to me first ;)
14:43 ecocode joined
masak +1 14:43
smls well, I wouldn't think of say @numbers.max as "OOP programming" just because the method syntax was used.
masak some people definitely do.
timotimo yeah, because @numbers.&max isn't "OOP programming" either :P
Ven looks at UCFS and smiles snarkily 14:44
PerlJam It's all just syntax :)
masak I've heard Perl 6 proudly advertized as having "object orientation", with the example being something like `@array.push`...
Ven (ufcs*)
timotimo ah 14:45
it's the same as .&, but at compile-time and automatically choosing between "is this a method call" or "is this a sub call" based on existence of the method 14:46
smls Well, then I suppose the least confusing solution would be to consistently require any comparators to be passed as named args to the sub and operator forms of min/max/sort, and allow both positional and named passing with the methods forms 14:47
(basically what masak said, + changing sub sort)
it would break the symmetry between sub map and sub sort, but thats the smaller evil imo. 14:48
gtodd p6 has some Zen like imagery (e.g. "Mu") .... so maybe the question of whether it is "object oriented" is ultimately "Mu" ... first there is an object, then there is no object, then there is ...
14:49 airdisa left 14:50 airdisa joined
moritz it's NoOO, in the "Not only OO" sense :-) 14:50
gtodd moritz: nice 14:51
++! :-)
smls Adverbs are a good fit for comparators anyway, as they specify *how* the sorting/searching operation should be done.
14:51 ssutch joined, airdisa_ joined
gtodd Zen Koan: "Does a dog have Buddha nature?" Master: "Mu" ... 14:51
p6 koan: Student: "Master is an 'Object' a 'Type'? Master: "Mu";
no wait ...
14:54 airdisa left 15:08 tinyblak left
hoelzro ok, I think that the tab completion branch is getting close to ready 15:08
the only thing I would like to clean up is how Compiler.nqp loads Linenoise, if possible 15:09
if anyone would like to look at the code, I have a PR for it: github.com/rakudo/rakudo/pull/391 15:12
I feel like the completion mechanics can be improved post-merge 15:13
15:15 abraxxa left, airdisa_ left, airdisa joined 15:18 airdisa_ joined 15:20 airdisa left, eli-se joined 15:26 eli-se left 15:28 Rounin left
smls m: say (11905..64206).pick(50)».chr 15:28
camelia rakudo-moar 9210cc: OUTPUT«Error encoding UTF-8 string near grapheme position 9 with codepoint 32␤ in method print at src/gen/m-CORE.setting:17885␤ in sub say at src/gen/m-CORE.setting:18645␤ in block <unit> at /tmp/MJYiCsIcOt:1␤␤»
15:29 tinyblak joined
smls ^^ should this always work? 15:29
it sometimes works, sometimes fails with "OUTPUT«Error encoding UTF-8 string", and sometimes fails with "Iteration past end of grapheme iterator".
masak could you remove the randomness from that example? so we can talk about it with a concrete codepoint as an example. 15:30
moritz well, it could die with "Illegal codepoint" 15:31
or something like that 15:32
but everything else is either a bug, or an LTA error (which is also a bug, IMHO)
timotimo it sort of seems like in order to make anything work, i'll have to build an implementation of websockets
smls m: say 57116.chr # for example 15:33
camelia rakudo-moar 9210cc: OUTPUT«Iteration past end of grapheme iterator␤ in method print at src/gen/m-CORE.setting:17885␤ in sub say at src/gen/m-CORE.setting:18644␤ in block <unit> at /tmp/VQkIPKGVM3:1␤␤»
moritz timotimo: or use good old ajax 15:34
timotimo EventSource in one direction would be good, but if i want to offer repl-like stuff with a proper terminal emulator, i'd want something with very little overhead fro the "connection" in the other direction
moritz first make it work, then make it fast 15:36
timotimo hmm
fair enough 15:37
but then i'll have to actually start working on that stuff :P
moritz when you do, you might actually get contributors :-)
timotimo :D 15:38
15:43 J-L left
timotimo moritz: so, how do i best spawn a perl6 compiler + executor so that it gets cgroup'd and systemd'd and stuff? 15:44
smls m: say 1, 55296.chr
camelia rakudo-moar 9210cc: OUTPUT«(signal SEGV)1»
smls yikes 15:45
m: say 1 ~ 55296.chr
camelia rakudo-moar 9210cc: OUTPUT«Error encoding UTF-8 string near grapheme position 0 with codepoint 49␤ in method print at src/gen/m-CORE.setting:17885␤ in sub say at src/gen/m-CORE.setting:18644␤ in block <unit> at /tmp/EJGXFP5i14:1␤␤»
timotimo oh wow
moritz timotimo: you write some kind of eval server, write a service file for it, start it
smls m: say 55296.chr
camelia rakudo-moar 9210cc: OUTPUT«Iteration past end of grapheme iterator␤ in method print at src/gen/m-CORE.setting:17885␤ in sub say at src/gen/m-CORE.setting:18644␤ in block <unit> at /tmp/OFRND0GRvc:1␤␤»
smls ^^ three different failure modes with the same code point ;) 15:46
timotimo moritz: any good ideas for how to connect a tty from the evalserver to a "privileged" service that'd communicate stuff outwards?
moritz timotimo: no, but I don't know what you need a tty for either 15:47
they are kinda black magic to me
timotimo maybe the program the user's running wants to be a bit interactive
moritz you don't need a tty for interactive 15:48
timotimo hm
since we can't "isatty" anyway :P
moritz you just need it for stuff like ncurses
TimToady m: say uniname(55296)
camelia rakudo-moar 9210cc: OUTPUT«<Non Private Use High Surrogate>␤»
moritz promt() and get() and lines() just read from fd 1, and it doesn't matter if it's a terminal or not 15:49
timotimo right, fair enough
15:52 anaeem1_ left 15:53 maui joined 15:55 RabidGravy joined
maui hi where can i get a full package of Perl c the enviorment like say a QB or microsoft C ? 15:55
dalek href="https://modules.perl6.org:">modules.perl6.org: 011470e | timotimo++ | web/index.tmpl:
i hereby decree the search bar be focused upon page load.
15:56
FROGGS maui: I dont understand your question
timotimo quickbasic?
FROGGS maui: you want a full package of what?
hoelzro is anyone opposed to me merging the tab completion/linenoise work soon, perhaps this weekend? 15:57
timotimo does maui perhaps mean an IDE?
FROGGS maui: are you looking for a package that gives you a compiler and modules?
smls TimToady: Does that mean it should print "Invalid code point?" for that
maui yes like quick basic... it was a enviorment that you gust started up and could write code in it +dalek :) 15:58
FROGGS hoelzro: I can't tell, I've not reviewed it yet :S
hoelzro FROGGS: I should probably wait on some review before I merge =)
maui yes a full package froggs
FROGGS maui: the best we have is this: rakudo.org/2015/03/21/announce-raku...e-2015-03/
maui yes that is it forggs 15:59
TimToady maui: by "Perl c" did you mean "Perl 6"? or "Perl 5"?
smls: maybe more "No true codepoint would ever be a surrogate!" 16:00
maui i ment perl 6
smls TIL: "In the Python programming language, individual surrogate codes are used to embed undecodable bytes in Unicode strings" -- wikipedia
TimToady then star, as FROGGS mentioned
maui ty froggs :)
FROGGS maui: welcome to #perl6 :o) 16:01
timotimo is anybody anywhere close to making a syntax highlighter for codemirror?
TimToady You are!
flussence smls: eww...
timotimo because farabi6 has some precedent of using codemirror and adding stuff like annotations and things
maui i just have to find one for OS mac system froggs :) 16:02
FROGGS maui: you can build the tar.gz on mac 16:03
timotimo smls: would you be willing to help me with the HTML portion of the "try perl6 in your browser" thing?
FROGGS maui: you probably need xcode + clang + perl... (I am a linux user, so I can just guess) 16:04
flussence (oh, right, that reminded me... was planning to fiddle around with the profiler html...)
smls timotimo: Willing maybe, but not too capable... I'm really out of touch with client-side web development these days.
16:05 spider-mario joined
smls I mean, I can do tweak HTML and CSS till it does what it should, but know little about modern JavaScript libraries etc. 16:05
:)
timotimo i meant only HTML and CSS :)
maui ty froggs
smls ok then
timotimo i'll see to it that i can cope with the JS on my own
i'll just stack frameworks upon frameworks until the functionality i want is doable in ~60 characters of javascript 16:06
maui yes your right on xcode
FROGGS .oO( pay for your right to xcode! ) 16:07
16:08 Akagi201 left, Akagi201 joined
moritz but y code? 16:11
16:12 chenryn joined
masak because I z so. 16:13
espadrine I have done codemirror syntax highlighters in the past 16:14
well, the go one, and another, I can't recall
but is there any other syntax highlighthing in existence, say in ace, or orion, anything web-based? 16:15
timotimo we've got the beginnings of a textmate bundle highlighter
espadrine oh, that would help a lot
ace has a tool to convert those to their format 16:16
timotimo there exists a tool that can go from tmbundle to ace highlighter, but it's supposedly very bare bones and requires manual postconverting
16:16 larion left
timotimo postfiddling? 16:16
espadrine I have a tool to convert ace to codemirror
equally manual
although usually it works
16:16 chenryn left
timotimo github.com/textmate/perl.tmbundle - has perl6 support in it 16:17
you can try it on that first and see what it's like
moritz: is searching in the clogs b0rked?
16:18 Akagi201_ joined
moritz timotimo: dunno 16:18
maui timotimo just so your ide question yes that was the general idea i was tring to get at 16:19
moritz a quick check shows that it's not completly broken
timotimo oh, nick is "perfect match"? 16:21
moritz yes 16:22
16:22 Akagi201 left
moritz though iirc it includes nick_ if you search for nick 16:22
afk 16:23
timotimo hm, right
RabidGravy hi, am I write in thinking that adding a module to the modules list involves adding it to the META.list in the ecosystem in github and making a pull request? 16:24
timotimo maui: we have "Farabi6", which is a web-based "ide" that gives you a few niceties, but i haven't used it "productively", psecially not its local file reading/writing
i'd suggest using vim instead, because that has very good syntax highlighting
RabidGravy: correct
timotimo AFK
16:24 FROGGS left, ecocode left
RabidGravy cool, I've started porting my CPAN modules and was going to hold off until I had a few more under the belt but then concluded I might need to encourage some early feedback ;-) 16:27
16:27 fhelmberger_ joined
maui ty timotimo :) 16:28
16:29 fhelmberger_ left
RabidGravy does raw.githubusercontent.com/jonathan.../META.info look right? If so I'll do it 16:29
maui this is my problem i like windows based systems but have swithed to Apple since I BOOTcamp but now i need apple to run Visual Basic and all the other programs in OS 16:30
16:31 fhelmberger left
maui its matter of just turning on the windows system over the OS but who wants to work and not listen itunes 16:31
RabidGravy I think some OS virtualisation may be required there maui , visual basic is unlikely to work on Mac OS 16:32
maui it does not have to boot window to do it
PerlJam RabidGravy: what modules are you porting?
maui everything with IDE 16:33
from the old days cobal etc
RabidGravy PerlJam, as many of metacpan.org/author/JSTOWE as make sense and I can do before the bank manager makes me get a proper job ;-) 16:34
16:34 rararara left
maui if it wasnt for the new i3/ to i7 i would have to get a new 64 bit engine 16:34
like the new QB64 for basic
thats the way they should build every langage 16:35
PerlJam RabidGravy: It's just my opinion right now, but the Term* modules might readily get more feedback.
RabidGravy er, okay I've been VB free for ten years now but that's a bold statement maui 16:36
16:36 Perl6_newbee joined
maui well just saying RabidGravy its all in the .OBJ :) 16:37
flussence someone was requesting a ReadKey feature just a few days ago...
RabidGravy PerlJam, I'm actually working on Term::Cap right now (which is on the wanted list anyway), doing it dumb is quite easy, doing it nicely not quite so easy 16:38
[Coke] If you want an IDE for Perl 6, someone had an eclipse plugin in progress that would use the java backend of Rakudo.
smls [Coke]: Hm, that sounds slow.
flussence (if you just want an IDE with the functionality qbasic.exe provides, vanilla vim does that too) 16:39
RabidGravy flussence, I'm holding off on the Term::ReadKey largely because I'm not quite sure how to either deal with the cross platform issues in NativeCall or alternatively how to build, install and use a shim library with the current tools 16:40
maui RabidGravy does that mean you dont program in LISP or Scheme either?
[Coke] smls: I use eclipse daily. How much slower could it be? ;) 16:41
smls [Coke]: I remember reading that the QtCreator devs rejected their experiment of using clang to do all parsing of C++ code (to power code highlighting/navigating/refactoring features) because it was too slow
flussence RabidGravy: ah, ok. You might want to look at LibraryMake for the latter thing.
smls I shudder to think how rakudo-jvm would handle those real-time parsing tasks... :P
.oO( change one letter in the code, wait 20 seconds for highlighting to re-appear )
16:43
16:45 maui_ joined
[Coke] won't know until you try. won't be faster if you don't report on how slow it is. 16:45
The nice thing about eclipse is that it counts as "long running". 16:46
so you're not necessarily penalized for the startup time.
16:48 oso_ joined, oso_ left, p3432m joined 16:49 maui left
smls good point about start-up times 16:49
16:53 p3432m left, abraxxa joined, bubsssss joined 16:56 Ven left
timotimo RabidGravy: github.com/krunen/term-termios/ - does this intersect with termcap at all? 16:58
17:00 bubsssss left
RabidGravy timotimo, it sort of intersects in Term::Screen - the termios thing is lower level: how the OS interacts with the terminal at all rather than how to make the terminal do a particular thing 17:01
timotimo RabidGravy: for a shim library you'd probably want to look at either Inline::C or LibraryMake
m: my int $foo = 15; $foo +|= 0b100000; say $foo 17:03
camelia rakudo-moar 9210cc: OUTPUT«47␤»
timotimo m: my int $foo = 15; $foo +&= 0b100000; say $foo
camelia rakudo-moar 9210cc: OUTPUT«0␤»
timotimo good news, krunen! this works by now! :)
17:04 FROGGS joined
RabidGravy timotimo, yeah looking at it probably the latter as Term::ReadKey has a horrible set of #ifdef to cope with multiple different platforms 17:04
timotimo :S
krunen: so you can revert the newest commit in term-termios :D 17:05
smls Rakudo > Python > Perl start-up times each differ by 1 order of magnitude now on my machine (for warm start). Not great, but it means Rakudo is approaching "acceptable" speed. 17:06
m: for (perl=>0.002, python=>0.027, Rakudo=>0.298).rotor { say "{.[0].key} starts {[R/] $_».value} times faster than {.[1].key}" }
camelia rakudo-moar 9210cc: OUTPUT«perl starts 13.5 times faster than python␤python starts 11.037037 times faster than Rakudo␤»
17:11 diana_olhovik_ left
TimToady we could probably start up really fast if we were willing to force everyone to program in Standard Perl 6 :) 17:13
PerlJam just realized that rotor == sliding window 17:14
I don't know why that didn't click before
smls PerlJam: except if you set its second argument to 0, then it's non-sliding ;)
PerlJam well ... that's not as useful as it could be :) 17:16
RabidGravy just sent a pull request to ecosystem to add Linux::Fuser to the modules list, it's a bit dumb and probably not very idiomatic but it was easy and better tested than the p5 version '-) 17:17
TimToady I'd say it's non-sliding if the second arg is the same as the first, but arguably it's just sliding back and forth to the same place
smls PerlJam: It's useful if you want to iterate "2 at a time" and the list might have an odd number of elements, so you can't do for @list -> $a, $b { ... } because the last (single) element would cause a signature mismatch 17:18
TimToady usually better to use $b? in that case
smls oh
right :)
TimToady or a default
dalek osystem: 090a1b7 | (Jonathan Stowe)++ | META.list:
Add Linux::Fuser to the modules list
17:19
osystem: 4126647 | PerlJam++ | META.list:
Merge pull request #40 from jonathanstowe/master

Add Linux::Fuser to the modules list
spider-mario smls: what’s R/?
smls reverse the order of arguments
PerlJam spider-mario: just like / but with the args reversed
spider-mario oh, ok
thanks
that’s ~ in J
:p
17:20 molaf joined
smls TimToady: Should a lone ».value be allowed as shortcut for $_».value ? 17:20
TimToady well, .».value is supposed to work 17:21
smls ok
TimToady and not allowing random closers where openers are expected tends to cache a certain class of syntax errors 17:22
masak m: my @a; say @a»value # I find myself accidentally doing this sometimes
camelia rakudo-moar 9210cc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0ziC8AZNN5␤Two terms in a row␤at /tmp/0ziC8AZNN5:1␤------> 3my @a; say @a»7⏏5value # I find myself accidentally doing␤ expecting any of:␤ infix stopper␤ infix or meta-infix␤»
RabidGravy » is the only non-ASCII character I have worked out how to type without knowing the codepoint ;-)
masak maybe we should have a dedicated error message for ^^ ?
TimToady std: my @a; say @a»value 17:23
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Two terms in a row at /tmp/cGRV7Ekpuz line 1:␤------> 3my @a; say @a»7⏏5value␤ expecting any of:␤ infix or meta-infix␤ postcircumfix␤ postfix␤ postfix_prefix_meta_operator␤ postop␤Parse failed␤FAILED 00:01 138m␤»
TimToady wonders how that's parsing...
generally it should say Confused if it's not sure there are two terms there... 17:25
17:26 gfldex joined 17:29 anaeem1 joined 17:38 anaeem1 left 17:39 ssutch left, espadrine left 17:40 anaeem1 joined, dakkar left 17:41 ssutch joined 17:43 rurban_ joined 17:44 TimToady left 17:45 eli-se joined
masak std: value 17:46
camelia std 28329a7: OUTPUT«ok 00:00 134m␤»
masak std: »value
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Bogus statement at /tmp/h3xcAybJ1z line 1:␤------> 3<BOL>7⏏5»value␤Parse failed␤FAILED 00:00 136m␤»
eli-se hi 17:47
17:49 rurban_ left
timotimo smls: can i get something barebones but pretty-ish looking to plop a codemirror into and try out some ajaxy stuff? 17:50
17:52 Alina-malina left 17:53 abraxxa left 17:55 TimToady joined, diana_olhovik_ joined, diana_olhovik_ left 17:59 diana_olhovik_ joined 18:01 chenryn joined, kjs_ left 18:02 anaeem1 left
RabidGravy anyone got a few minutes to look at gist.github.com/31c8e72d86d889489f0f.git ? It's a test of the guts of Term::Cap - the original sequence of regex substitutions is in the pod at the top, a working translation to the p6 substitutions at the bottom 18:04
18:05 chenryn left
RabidGravy the not working bit is the grammar which I would rather use, the problem seems to be something to do with the <!special> bit which causes the whole thing to eat up a whole CPU "forever" 18:05
TimToady without looking, is <!special> supposed to eat a character like a negated character class? if so, should be <-special> 18:08
RabidGravy any other possible locution I can think of doesn't do the right thing (i.e. <literal> eats the rest of the characters
ah,
TimToady I don't see anything in that gist offhand 18:09
just an empty page
RabidGravy TimToady, erk 18:10
TimToady something added a .git for you helpfully, which doesn't 18:11
yes, <!special>+ will match the null string eternally 18:12
RabidGravy yeah that's weird I didn't have the .git
roight, yes - that was the last of the explanations I thought of
TimToady p6 regex doesn't attempt to detect multiple matches of '' currently 18:13
RabidGravy never been good with regular expressions of any flavour :-\ 18:14
18:14 mohij joined
TimToady it also appears that you're using hard 4-column tabs, which is a bit antisocial 18:15
RabidGravy so I need to express <literal> as "anything other than literal but at least one character" 18:16
TimToady actually, 2-column
or something that is really screwing up the formatting... 18:17
most of us just use spaces and avoid tabs these days
18:17 ssutch left
RabidGravy TimToady, yeah it's shit, I don't actually use that - I started the file as 'pp' just to test a few lines and the editor couldn't guess my wishes 18:17
dalek rl6-roast-data: 5454868 | coke++ | / (9 files):
today (automated commit)
18:18
RabidGravy let me fix that before anyone gets distracted
18:19 Rounin joined
bartolin_ TimToady: a while ago you mentioned that some tests in roast (e.g. tests for error messages) are overly specific to a specific implementation (Rakudo) -- irclog.perlgeek.de/perl6/2015-03-06#i_10236778 18:20
I remember a short discussion with FROGGS++ and nine++ about that topic from last year: irclog.perlgeek.de/perl6/2014-10-02#i_9444022
I wrote one or two tests for an exact error message. and looking at all those tickets about 'LTA error message' it somehow seems appropriate to me to have tests for those good error messages we settled for. OTOH the wording of the error messages are implementation details -- in contrary to the exception types used, right?
18:20 Perl6_newbee left
bartolin_ so maybe it would make sense to move those overly specific tests from roast to S02-rakudo? that would imply to du 18:20
plicate some test code, but it would be a clean separation, IMHO
TimToady heh, if I make it complain about missing postfix on 42»foo, then it catches all the poeple who write @a»+«@b without spaces 18:21
well, some of the tests are just intermixed, like requiring particular words in an error message 18:22
but we still want some of the test to be cross-platform
bartolin_ so you would say those tests (requiring particular words) would be okay in roast? 18:24
TimToady I'm saying some of them are not okay, because a different implementation might choose different words 18:25
itz RabidGravy: you supping the p6 kool-aid? :)
TimToady but we do need to test the errors in a generic way
RabidGravy itz! hey! you alright? Still at the fun party place in EC2? 18:26
itz I have an errr friend who works in a boring bank but one day soon will leave and do perl6 :) 18:27
RabidGravy ;-)
18:28 anaeem1 joined
dalek ast: eca749d | TimToady++ | S (2 files):
hyper infix ambig with hyper postfix
18:29
18:29 atweiden joined
masak does his duty in reducing the incidence of the "drinking the X kool-aid" meme by pointing out that the metaphor is based on a suicide cult from 1978 18:29
18:29 lichtkind joined, mr-foobar joined
dalek kudo/nom: 663a22b | TimToady++ | src/Perl6/Grammar.nqp:
require postfix after postfix prefix
18:29
RabidGravy okay gist.github.com/jonathanstowe/31c8...d889489f0f maybe properly formatted now 18:30
masak or maybe "snowclone" more than "meme", now that we have a term for that.
18:30 SamuraiJack left
masak RabidGravy: wow, that looks like an excellent grammar to write tests for :) 18:30
RabidGravy so how do I express "anything that is not matched by <special>" in a sane way> 18:31
?
18:32 colomon joined
TimToady usually you just want to have it in an alternation: <special> | <otherstuff> and let LTM handle it 18:33
masak m: grammar G { regex TOP { [<!before <special>> .]+ }; regex special { BOO } }; say so G.parse($_) for "abcde", "abBOOde"
camelia rakudo-moar 9210cc: OUTPUT«True␤False␤»
RabidGravy masak, this is just a small part of it - trying to do Term::Cap by parsing the whole termcap with a grammar and I have the level above this working 18:34
masak RabidGravy: cool.
TimToady negative lookaheads are kind of a smell though
masak RabidGravy: my statement about grammars and tests (and in particular your grammar and tests) still stands. :)
RabidGravy masak, my plan involves using the p5 Term::Cap to generate the test data as that has been "right" for many years 18:36
masak sounds like a plan.
maybe even add the conversion script to the repository...
smls timotimo: Sure, but I gotta go now. Be back in 2 hours or so. 18:41
timotimo: In the meantime, maybe get someone with more up-to-date webdev-fu to select an appropriate bare-bones template (like "HTML5 Boilerplate" or whatever is cool these days) for handling browser compatibility and whatnot. 18:42
18:42 smls left 18:52 colomon left 18:54 Alina-malina joined 19:01 kaare_ left 19:03 sno left
bartolin_ TimToady: if I may ask again with an example: github.com/perl6/roast/commit/496aa2ffa9 I wonder what to do with that: 19:08
a) just remove the parts about "message => ..." 19:09
b) same as a) but also copy the current tests to t/02-rakudo/errors.t (duplicating test code)
FROGGS c) leave it that way 19:10
bartolin_ or that ... 19:12
FROGGS I opt for c) 19:13
because for most tests we *have to* check for the exception types and their properties
like in: 19:14
throws_like 'use MONKEY-TYPING; augment class No::Such::Class { }', X::Augment::NoSuchType,
package => 'No::Such::Class';
19:18 ssutch joined 19:20 Guest68239 joined
TimToady well, but what if we decide a better message is "Nothing before quantifier for it to modify", did the language Perl 6 actually change? 19:21
obviously the message should probably mention "quantifier" somehow, but the whole reason for having exception types is to be able to test for them without relying on searching for any particular phrase 19:24
and mandating any particular level of awesome tends to get in the way of further levels of awesome 19:25
TimToady has had to fix a number of tests due to this, and would not like to have to issue a 6.1 roast merely because we decided an error message was LTA 19:26
speakin' o' which, I noticed we had a dispatch error last night that failed to match an invocant of (Failure: ) 19:28
19:28 kjs_ joined
RabidGravy yes, if you are testing structured exceptions then testing the text of an attribute is somewhat redundant at best 19:28
TimToady surely it would be nice to actually say what the original failure was...
RabidGravy however if one was testing for internationalized versions of that text then it would be perfectly valid 19:29
TimToady so I think testing the message should be restricted to ensuring that appropriate bits of data find their way into the message
vendethiel TimToady: we should obviously have i18n'd error messages, as well: P 19:30
RabidGravy yep, you test the exception's "message builder"
TimToady vendethiel: yes, it's obvious, but much less obvious now than twenty years ago, when the technical hegemony of English was less established 19:31
cultural imperialism has to be good for something... :P
vendethiel TimToady: I was joking. I hate translated error messages. They're making you unable to google anything, they usually make no sense
RabidGravy ORA19245 19:32
vendethiel because it's hard to translate technical terms to one's language (and I know that by experience), they render HORRIBLY BAD due to accents (I'm french)... I really don't want translated error messages
TimToady you must be Parisian :)
RabidGravy but you don't want to close the door on doing that in someone's application specific exceptions 19:33
vendethiel TimToady: that because I'm always complaining? :P
TimToady no, but Parisians are much less likely to accept broken French than in the rest of France :)
vendethiel fwiw, I definitely understand *why* people want/need them. *I*, as a mostly-english-speaking-and-technical person, really hate them.
TimToady nodnod 19:34
RabidGravy I understand French in Paris and Nice and not so much elsewhere
skids You could have an ancillary spec that is not part of "The Perl 6.x Specification", and that could get pickier while playing it looser with version numbers.
19:34 _edwin joined
vendethiel well, it's not the problem of "broken" french. Some technical words are just untranslatable -- and I've tried. No idea how to translate something like "scope". It really doesn't work (the french word is "portée", but... nope) 19:34
TimToady something more like a literary passage? 19:35
RabidGravy most technical language is a metaphor of sorts, you need to get the poets in on it
TimToady something more like a context?
well, it's not my job to translate into French :)
vendethiel "literary passage"?
TimToady something smaller than a book chapter 19:36
like a piece of text between two whitespaces?
vendethiel ah, hm
TimToady something longer than a paragraph
RabidGravy verse
vendethiel I meant "lexical scope", if you're refining my use of "scope"
TimToady lexical means having to do with text, so yes 19:37
bartolin_ I find TimToady's reasoning wrt error messages convincing. it's only that I don't dare to decide which are the appropriate bits of data (which belong into the message) for most cases. so I back off from reviewing our tests in roast wrt to overly specific error messages ...
masak .oO( lexical means never having to say you're sorry )
TimToady we could just as easily and more clearly called them textual scopes in English
*have 19:38
bartolin_ but thanks for explaining!
skids stanza. Oh I thought TimToady was trying to complete a crossword. :-) 19:39
19:40 Guest68239 left 19:41 lucas_ joined
vendethiel TimToady: it's just that we always use english technical words :) we don't really have a "technical word culture" 19:42
_edwin hi all! is someone around who could give me some hints for building Rakudo on Windows 7?
I'd like to take a look at the input/output problems in the REPL
RabidGravy fwiw, where something is going to throw a structured exception just test the type of the exception. where the exception itself has some behaviour with respect to the message text then make separate tests for the exception itself
skids
.oO(cheese word culture. Mmmm.)
19:43
bartolin_ RabidGravy: my motivation to (additionally) test for the message test was mainly that a lot of efford goes into the wording, so it seemd appropriate to ensure it doesn't change accidentially. 19:45
RabidGravy if an exception could mean something different depending on the content of the exception message then it probably means it wants to be a diffetent type
19:45 telex left
skids RabidGravy++ that I think most everyone would agree with. 19:46
lucas_ Hello.
19:46 telex joined
lucas_ Why calling methods without parentheses is not allowed? Is it a technical limitations or is it by design? 19:46
RabidGravy bartolin_, okay, that's a test of the exception itself not the code that might throw it
lucas_, method:
(I don't actually like that visually but it's there) 19:47
bartolin_ RabidGravy: yes, it's a diffent thing. Therefore my idea to move the test for the wording out of roast
RabidGravy yep, I'm with you 19:48
19:48 grondilu left
TimToady lucas_: we never allow two terms in a row, and without parens or colon, a method call is just an attribute access usually 19:48
and colon naturally means "here's more" in English 19:49
bartolin_ RabidGravy++ # pointing out the difference between "test of the exception itself" and "test of the code that might throw it" 19:51
lucas_ RabidGravy, TimToady: thanks
skids m: (1,2).map: *.say # example for lucas_
camelia rakudo-moar 663a22: OUTPUT«1␤2␤»
lucas_ I'm glad that colon exists. It works more or less the same thing as dollar ($) in Haskell, right?
TimToady it's one of our precedence droppers, yes
masak yes, that's a good comparison
similarly, listops have an implicit Haskell colon on them 19:52
TimToady it's kind of a left paren without its corresponding right
the practical difference being that a listop has no arguments yet, so is likely to take more, while a method already has an invocant as one argment, so is less likely to want more arguments 19:53
RabidGravy Got that grammar working now gist.github.com/jonathanstowe/31c8...d889489f0f - inasmuch as the grammar and the old school loadsasubsitutions gets the same
cheers for the pointers TimToady
TimToady RabidGravy++
[Coke] _edwin: what compiler do you have? 19:54
You'll need an install of perl5 and a C compiler.
TimToady m: my @a; say @a»value 19:56
camelia rakudo-moar 663a22: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QbaBZ6caV4␤Missing postfix␤at /tmp/QbaBZ6caV4:1␤------> 3my @a; say @a»7⏏5value␤ expecting any of:␤ postfix␤»
_edwin my first try was with strawberry perl and the included gcc
TimToady masak: ^^^
_edwin [Coke], actually I'd like best to reproduce the Rakudo Star build for Windows, because it's with Rakudo Star that I see the IO problems 19:57
masak TimToady: huh.
"Missing postfix"...
TimToady would you prefer Malformed?
masak not sure.
I guess this is fine. 19:58
_edwin [Coke], with strawberry gcc I got stuck in the MoarVM build: "auto-detecting x86 toolchain ... FAIL"
TimToady in your case malformed is perhaps more accurate
m: @a>>
camelia rakudo-moar 663a22: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qVaJSQQrsn␤Missing postfix␤at /tmp/qVaJSQQrsn:1␤------> 3@a>>7⏏5<EOL>␤ expecting any of:␤ postfix␤»
TimToady in that case, it's just missing though
FROGGS "Malformed or missing postfix"
TimToady they're two difference exception types >.<
FROGGS ohh
_edwin my perl 5 is: Strawberry Perl (64-bit) 5.16.3.1-64bit README
FROGGS :/
masak I was thinking something like "...(Did you mean '».value'?)" 19:59
_edwin I'll try to tell it to use gcc 20:00
[Coke] _edwin: I think FROGGS just recently posted directions on how the msi is built. 20:01
_edwin [Coke], ok, those instructions would be greatly helpful for me. are they in the irc backlog or a blog? 20:02
[Coke] github.com/rakudo/star/blob/master...ws-msi.pod 20:04
FROGGS _edwin: though it seems we have to patch moarvm and tweak nqp+rakudo's build system to compile using mingw 20:05
_edwin [Coke]++, thanks! 20:06
FROGGS, I will try to follow the steps in the windows-msi.pod 1:1 to maximize my chance to reproduce the problem
FROGGS k 20:07
20:07 rindolf left 20:08 beastd joined 20:10 pippo joined, yqt joined
pippo .tell flussence Thank you very much. That is interesting. Cheers. 20:11
yoleaux pippo: I'll pass your message to flussence.
20:11 pippo left
dalek kudo/nom: 0730963 | TimToady++ | src/Perl6/Grammar.nqp:
be more specific on malformed/missing postfix
20:11
DrForr m: class Foo { }; use Foo; 20:12
camelia rakudo-moar 663a22: OUTPUT«===SORRY!===␤Could not find Foo in any of: /home/camelia/rakudo-inst-1/share/perl6/lib, /home/camelia/rakudo-inst-1/share/perl6␤»
TimToady m: class Test { }; use Test;
camelia rakudo-moar 663a22: OUTPUT«===SORRY!===␤Merging GLOBAL symbols failed: duplicate definition of symbol Test␤»
lucas_ For example, "obj1.foo + obj2.bar" could either mean "obj1.foo() + obj2.bar()" or "obj1.foo(+obj2.bar)". I think Ruby gets it right which one I want. By the time I call the methods, the Perl 6 compiler already knows it's signature (if expects arguments or not), right? I guess my original concern was why can't it use that knowledge to act one way or another? Would it be to ambiguous/difficult? 20:13
FROGGS lucas_: method calls always require either parens or a colon 20:14
so you example always means this: obj1.foo() + obj2.bar()
only subroutines can appear as listops without further indication 20:15
DrForr class Foo is still created and can be instantiated, but I'm not sure if 'use Foo;' should throw the error it does.
FROGGS obj1.foo: + obj2.bar would be obj1.foo(+obj2.bar) though
[Coke] DrForr: you're trying to use a file that doesn't exist; how can we change the error message to be more helpful? 20:16
m: use Foo;
camelia rakudo-moar 663a22: OUTPUT«===SORRY!===␤Could not find Foo in any of: /home/camelia/rakudo-inst-1/share/perl6/lib, /home/camelia/rakudo-inst-1/share/perl6␤»
DrForr Well, I've already declared class Foo{} just before that. My n\"aive expectation was that the class declaration would make the 'use' statement redundant. If 'use' is meant to go out to the filesystem that's fine. 20:19
20:20 darutoko- left
skids Just because you use "Foo" does not mean that it contains a package or module names "Foo". For sanity purposes we hope is does but, that could actually be legal. 20:20
DrForr Understood. The 'new' crashing bug I'd found is still present in the current build, I was writing test cases to narrow down the cause to see if the problem had changed. 20:21
lucas_ FROGGS: Thanks, I understand. 20:22
20:22 e joined, e is now known as Guest38847
FROGGS \o/ 20:23
first time I tested Foo: 20:24
==> Successfully installed Foo
==> Submitted test report as: testers.perl6.org/reports/38222.html
seond time I tested foo:
==> Successfully installed Foo
==> Test report is duplicate of: testers.perl6.org/reports/38222.html
second*
skids nice.
tadzik nice! 20:26
FROGGS++
skids Sorry for this next paste. You actually have to read m-ModuleLoader.nqp to understand why I am beating my head on a wall. 20:27
m: nqp::callmethod(nqp::gethllsym("perl6", "ModuleLoader"), nqp::unbox_s("load_module"), nqp::unbox_s("Foo"), nqp::hash("from", "foo"), :chosen(nqp::hash("load","foo")))
camelia rakudo-moar 663a22: OUTPUT«Do not know how to load code from foo␤ in any load_module at src/gen/m-ModuleLoader.nqp:186␤ in method load_module at src/gen/m-CORE.setting:26323␤ in block <unit> at /tmp/UmSmemrRWl:1␤␤»
dalek osystem: 10c3699 | raydiak++ | META.list:
Add Git::PurePerl gitless Git interface

Nascent Perl 6 port of search.cpan.org/dist/Git-PurePerl/
20:28
FROGGS skids: what's the problem? 20:29
skids I put the :from<foo> in to show that it does not get anything in %chosen, because if it did "Do not know how to load" would not be reachable.
I just want it to see what I put in chosen and it disappears into the ether.
And I have zero clue as to why.
FROGGS ahh
skids (The problem that led to this one, BTW, is that CompUnit.load is broken) 20:30
20:31 sno joined
FROGGS tadzik: I pushed that to panda right now... (it does not seem to get dalek'd) 20:33
masak .oO( it was exTERminated!!! )
FROGGS skids: seems nqp::callmethod is unable to pass nameds along 20:36
ummm, wait 20:38
ugexe could someone with rakudobrew permissions pull in this PR for the s/languages/share/ change so it works for smoke testing again? github.com/tadzik/rakudobrew/pull/34 20:39
FROGGS tadzik: ^^ 20:40
skids m: my class A { method foo($module_name, %opts, *@GLOBALish, :$line, :$file, :%chosen) { %chosen.perl.say } }; nqp::callmethod(A, nqp::unbox_s("foo"), nqp::unbox_s("Foo"), nqp::hash("from", "foo"), :chosen(nqp::hash("load","foo"))) # this works fine.
camelia rakudo-moar 663a22: OUTPUT«("load" => "foo").hash␤»
FROGGS skids: I know why the :%chosen get lost
20:40 genio joined
tadzik ugexe: thanks :) 20:41
atweiden i'm parsing text and trying to build classes with the results. is it possible to do from grammar action methods? 20:42
FROGGS atweiden: yes
skids atweiden: yes, but you won't be happy if you backtrack and the class doesn't go away :-) 20:43
atweiden FROGGS: do i need to use make/made for this?
FROGGS atweiden: in the action methods you'd use make to attach something to $/, aye 20:44
20:44 Guest38847 left
FROGGS atweiden: and then you can access it via .made in the 'outer' method 20:44
atweiden i tried using make/made
with this grammar github.com/atweiden/nightscape/blo...Grammar.pm
i got stuck because i have make overwriting previously captured results 20:45
20:45 pdcawley left
dalek kudo/nom: 59f7cb9 | FROGGS++ | src/core/CompUnitRepo.pm:
pass around %chosen in load_module

Since the module loader in CUR intercept the Perl6::ModuleLoader, we are supposed to pass along what we got in. skids++ for finding it.
20:46
atweiden moved to initializing a class from Actions.pm, and tried adding to it but doesn't seem to be working either
skids FROGGS++ now I know I am not crazy :-) 20:47
ugexe what is %chosen anyway? th emodule its tryign to load?
FROGGS skids: no :o)
skids ugexe: when you already know the exact files you want to load.
FROGGS ugexe: it is a way to tell load_module that we already know what has to be loaded
it it does not need to look for a file on disk 20:48
japhb_ It appears that non-main threads are eating compiler errors, such as binding failures. For example:
m: start { my Bool $foo = now; }
camelia ( no output )
FROGGS atweiden: I don't see that you are calling make/made anywhere
japhb_ m: await start { my Bool $foo = now; }
camelia rakudo-moar 663a22: OUTPUT«===SORRY!===␤Type check failed in assignment to '$foo'; expected 'Bool' but got 'Instant'␤»
japhb_ Grr, I thought that was a golf, but I need to obviously get sneakier
atweiden FROGGS: that code is obscenely ugly and local :) 20:49
FROGGS :o)
20:49 japhb_ is now known as japhb
atweiden but in general, do i need to structure my grammar differently so that make works? 20:49
FROGGS atweiden: example: you add a 'method TOP($/) { make $<journal>.made }' to your action class 20:50
atweiden: no, you basically just structure your action identically to your grammar
atweiden FROGGS: i was trying this ix.io/h89 20:51
but it overwrites previous captures since there are multiple accounts
FROGGS I think that this is wrong: 20:53
make %( $<header>».made,
$<posting>».made );
I think it is supposed to read: make $<header>».made Z[=>] $<posting>».made
or so
hmmm, is Z correct here?
I'm too tired to know
masak looks right 20:54
since you're in a %(), you could prolly get away with just Z too
FROGGS atweiden: is it possible that you loose information because you hit duplicate keys? 20:55
this could explain your 'overwritten captures'
atweiden yes, but it only occurs with make/made 20:56
a posting looks like
Expenses:Personal:Fuel $10.00 USD
Assets:Personal:Bankwest:Cheque -$10.00 USD
so it has to capture <account> many times
RabidGravy so it's maintain an internediate hash at account and add the items on to it 20:59
you may need to adust your grammar to have an additional level
20:59 diana_olhovik_ left
ugexe or store it in a state hash using a code block... thought i remember seeing an example of something like that 21:00
as in right in the token/rule
21:01 virtualsue joined 21:03 Possum left 21:04 Possum joined, smls joined
smls back 21:04
21:07 e joined 21:08 e is now known as Guest35307
FROGGS smls: I cannot tell, but I like this version better (how the camelia sticks out): i.imgur.com/0kDEeeu.png 21:08
smls: though, that the bordeaux background is window-wide is unfortunate me thinks 21:09
smls interesting (re Camelia)
re background: why?
21:10 skids left
FROGGS smls: and the list of features is actually hard to read... I love the blurry image though 21:10
and alse the Get Started/Get Involved text, and how the text underneath looks like
smls: hard to put in words... I just *feels* wrong :o) 21:11
I think it wants to stop where the content stops.. 21:12
the color is too dark to be window-wide 21:13
the camelia in here would look good on its own, but it looks "boring" on the page: i.imgur.com/jBXkUgW.png
(sorry, don't want to be mean) 21:14
smls no worries :)
21:14 kjs_ left
FROGGS :o) 21:14
RabidGravy as a matter of interest is there an emergent etiquette regarding the porting of modules other people have done in p5?
FROGGS RabidGravy: I dont know of any... 21:15
I've talked to maintainers of P5 modules and said that I am going to port them and the result is often: Cool, have fun! :o)
RabidGravy that is to say I have some modules that have hard dependencies like Device::LibUSB, Device::SMBus etc 21:16
FROGGS RabidGravy: so, talk to them (if possible), and perhaps mention that it is based on their work in the readme
RabidGravy okay that's where I was going really
smls FROGGS: I'll ponder on your feedback. Other people's opinions would be helpful too.
FROGGS RabidGravy: these are interesting deps :o) 21:17
RabidGravy oh and Net::LibLo ;-) 21:18
smls Regarding module porting: I'd recommend to think twice before porting Perl 5 modules too literally.
RabidGravy I like my hardware these days what can I say ;-) 21:19
smls Often the best way to do an API in Perl 6, is different from Perl 5
jnthn evening, #perl6 o/
smls Not to mention some Perl 5 CPAN module carry API baggage from Perl 4 times
FROGGS hi jnthn
smls It would be unfortunate if the best / most generic module names in Perl 6 CPAN would be squatted by modules with Perl 4 APIs :P
FROGGS *g* 21:20
21:20 kjs_ joined
RabidGravy oh I know, but if you've got to use a library to talk to hardware there's not much getting out of it 21:20
ugexe squatting shouldnt be a problem with authority
smls Well, theres a social incentive to not make a module with the same name as someone else's. 21:21
It just creates more confusion for everyone.
(I'm talking about CPAN here. CPAN vs random github account vs companies non-public stuff, would not use the same namespace.) 21:22
RabidGravy which is why I'm cracking on with making the ones that I already have on CPAN
ugexe that depends how you look at it. as i see it, the authority is simply part of the module name and thus you arent copying anything 21:23
smls So are we really expected to writre out the full authority all the time?
FROGGS smls: I think so 21:24
ugexe you could also do some META.json magic
RabidGravy "authority"?
smls That just increases the verbosity of the "boilerplate" part at the start of scripts.
ugexe that option that says 'this modules takes the place of that other'
smls Anyway, tl;dr: If you port a module from Perl 5 to Perl 6, consider redesigning the API to make it more awesome in the context of Perl 6. 21:26
21:27 espadrine joined
ashleydev is src/Perl6/Grammer.nqp the same as the STD grammer... is there a difference between the STD grammer and what rakudo is using? 21:28
ugexe emulates, supercedes, etc handle the boilerplate from a module author standpoint
japhb Ah, I see the problem. I was starting things in other threads, and expecting that if I didn't do anything else, exceptions would bubble up and be visible. But no, they just go into a Broken Promise, and if I don't check it on occasion, I'd never know it went boom. 21:30
m: start { my Bool $foo = now; }; sleep 2;
camelia ( no output )
japhb m: my $p = start { my Bool $foo = now; }; say $p.status; sleep 2; say $p.status;
camelia rakudo-moar 59f7cb: OUTPUT«Planned␤Broken␤»
japhb m: my $p = start { my Bool $foo = now; }; say $p.status; sleep 2; say $p.cause;
camelia rakudo-moar 59f7cb: OUTPUT«Planned␤Type check failed in assignment to '$foo'; expected 'Bool' but got 'Instant'␤ in block at /tmp/c3bdVACM0F:1␤ in block at src/gen/m-CORE.setting:23195␤ in block at src/gen/m-CORE.setting:22980␤␤»
Ulti FROGGS++ can I suggest a couple of edits to your announcement? 'come now' -> 'now come' and 'had build Rakudo' -> 'had to build Rakudo'
japhb I feel myself wanting some way to say "I know this is in another thread, but I want it to go BOOM as soon as there's an exception, since I'm writing unexceptional code .... 21:31
FROGGS ashleydev: src/Perl6/Grammer.nqp follows STD in some way, but is not identical
jnthn japhb: You should really always await or get the result of a Promise 21:32
FROGGS Ulti: thanks, fixed :o) 21:33
jnthn japhb: Since it runs on a background thread, if you don't wait for it somewhere you don't even know it'll complete before program exit.
FROGGS jnthn: and an implicit await at exit is an antipattern and a nogo? 21:34
Ulti FROGGS I'll try the new one out on windows 8.1 64 now :3
japhb jnthn: Fair enough, but I've gone from "Running a bunch of tasks all started at once from the same point" to "spinning a web of tasks that makes my own head spin". So I do keep an array of promises started, drop completed ones every so often, and wait for that array to empty before exiting.
FROGGS Ulti: ohh, that'll be interesting :o)
but, as I know Windows, it'll just work 21:35
21:35 kjs_ left
jnthn Well, we could say that if a Promise is sunk then it goes on some global queue to be dealt with at exit. 21:35
japhb The problem is, I don't know in a *timely* way that a thread has crashed, so at the rate I'm producing log entries, a whole heck of a lot can happen in other threads before the main reaper notices the Broken promise.
jnthn But that feels risky and unpredictable in different ways.
japhb I want some way to raise that exception to the surface RIGHT NOW.
Ulti FROGGS: well it runs 21:36
jnthn japhb: What do you mean by "a thread has crashed"?
japhb: start { ... } should always catch the exception and stash it away in the Promise.
japhb Exception thrown. Sorry, was mixing wording because I can, in fact, crash r-m pretty easily on thread join. Dunno why, but it's why I do the heavy stuff in r-j. But in this case I was talking about an exception, which ends that thread (and as you pointed out, stashes the exception in the Promise) 21:37
21:37 xfix left
jnthn start != thread, it's scheduling a bit of work on one. 21:37
The thread itself is then free to go on and work on another Promise. 21:38
RabidGravy ah
21:38 chenryn joined
jnthn You can always write some sub immedi-whine($prom) { $prom.then({ if $prom.status == Broken { ...flag it up... } }) } or so I guess 21:38
japhb Hmmm, looking at my thread IDs, I don't actually see that happening, but that could be because I'm building a web of tasks, and having a task throw an exception means the portion of the task graph rooted at that point gets pruned (or rather, never created) 21:39
jnthn: Hmmmm, there may be value in a wrapper for that in my code.
I'm not saying I necessarily have the best idea for dealing with this, just ... hmmm, is it possible to hook the moment that an exception is caught and stuffed in the Promise? Did you already provide for that? 21:40
jnthn japhb: Not as such (more) 21:41
21:41 eli-se left
jnthn Promise.start (which start { ... } uses) is just one Promise factory, however. 21:41
You can put any semantics you like behind one really. 21:42
21:42 bjz left
japhb thinks about this a bit 21:42
timotimo evening, jnthn :)
21:43 chenryn left
FROGGS gnight #perl6 21:43
jnthn japhb: github.com/rakudo/rakudo/blob/nom/...se.pm#L158 is the implementation of start, fwiw.
21:43 FROGGS left
jnthn o/ timotimo, o\ FROGGS 21:43
japhb Yeah, I was looking at that.
Almost feels like Promise.start could use a :&catch that gets called *along with* the vow breaking. So L163 becomes: :catch(-> $ex { $vow.break($ex); &catch() }) ); 21:45
jnthn japhb: BTW, from tomorrow my tuit supply for Perl 6 improves notably. I feel I dropped the ball on various things you were wanting looking at; feel free to give me an updated "top few things". :)
japhb jnthn: I really appreciate that. Let me think upon it, but sincerely, thanks for the offer to consider them.
jnthn (The tuit supply will also be improving in a sustainable way, as in I should have multiple days a week for Perl 6 from April onwards. :)) 21:46
japhb \o/
TimToady there's that word, "should", again...
japhb TimToady: Take it up with the Chief Artist. ;-)
jnthn Well, it's highly likely, but if I get hit by a bus or something... :P 21:48
21:48 ssutch left, anaeem1 left
jnthn Seriously though, I'm taking a step back from a bunch of $dayjob responsibilities for the coming months, to focus on Perl 6 stuff. 21:49
21:49 anaeem1 joined
japhb I don't know whether it's appropriate, but jnthn.employer++ to the extent they're making this easier for you. 21:49
_edwin is anyone familiar with this error when building nqp?: NMAKE : fatal error U1077: 'C:\rakudo\bin\moar.EXE' : return code '0xc0000005' 21:50
jnthn _edwin: Well, the error code is the Windows version of SIGSEGV... 21:51
21:51 dnk joined
_edwin uh, the command that fails is: C:\rakudo\bin\moar --libpath=src\vm\moar\stage0 src\vm\moar\stage0\nqp.moarvm --bootstrap --setting=NULL --no-regex-lib --target=mbc --output=gen\moar\stage1\nqpmo.moarvm gen\moar\stage1\nqpmo.nqp 21:51
21:51 dnk is now known as Guest22985
_edwin there is no error message, before that 21:52
jnthn japhb: Yes, they've been understanding about it :) 21:53
_edwin: Well, if it explodes that dramatically, something is really rather wrong.
21:53 ssutch joined 21:54 Guest22985 is now known as demayl
jnthn _edwin: That's the first build step, so it means the MoarVM build has somehow gotten you something busted. 21:54
21:54 pmurias joined
RabidGravy I 21:54
jnthn _edwin: Does "C:\rakudo\bin\moar --version" help? 21:55
RabidGravy er
jnthn er
s/help/work/ :)
pmurias react-native is now open source :) , I need to figure out how to get more nqp-js tuits :/
_edwin jnthn, This is MoarVM version 2015.03 built with JIT support
jnthn Hmmm
_edwin: What platform (CPU, OS, compiler)? 21:56
pmurias react native is only for ios, I need to wait when it works on a phone made by a not completly evil company :( 21:57
21:57 pmurias left
_edwin jnthn, Windows 7, 64-bit, Intel Core i7-3667U, Visual Studio 2010 21:57
dalek p: 73573da | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for startup improvements.
21:58
jnthn _edwin: huh, that - aside from VS versin - is about identical to what I have here.
_edwin I followed the steps in windows-msi.pod with the only exception that I use strawberry perl instead of ActiveState
I'm building from the rakudo-star-2015.03 tarball 21:59
jnthn Ah, I do it with ActiveState 22:00
But even so, I don't think we pull enough from Perl 5's Configure for that to be an issue...
dalek kudo/nom: dd13105 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get latest MoarVM.

This brings both lazy deserialization and tuning of the spesh/JIT thresholds, both improving startup time.
22:01
demayl hi all, can i get a little help about nativecast
jnthn _edwin: Does SET MVM_JIT_DISABLE=1 help at all?
demayl: You can try, at least :) 22:02
demayl :) ok then
im playing with libcurl callbacks, but i get a error for mallformed utf-8 22:03
22:03 eli-se joined
demayl Malformed UTF-8 at line 5 col 36 in method CALL-ME at lib/NativeCall.pm:233 in method download at test_curl.p6:52 in block <unit> at test_curl.p6:73 22:03
when the data is only latin it works 22:04
jnthn Do you know you're actually getting UTF-8?
demayl it can be in any encoding
thats the point
_edwin jnthn++, that seems to get me further 22:05
jnthn _edwin: Hm, OK, then we could do with figuring out what configuration works out differently...
demayl here is the callback function 22:06
japhb m: sub foo(&a, :&b) { say "Optional block sent" if &b; }; foo { say "Bar" }, :b({ say "Baz" });
camelia rakudo-moar 59f7cb: OUTPUT«Optional block sent␤»
japhb m: sub foo(&a, :&b) { say "Optional block sent" if &b; }; foo { say "Bar" } :b({ say "Baz" });
camelia rakudo-moar 59f7cb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9TjdLUIoKI␤You can't adverb that␤at /tmp/9TjdLUIoKI:1␤------> 3; }; foo { say "Bar" } :b({ say "Baz" })7⏏5;␤»
demayl sub callback( Str $ptr , int $size, int $nmemb, OpaquePointer $wtf --> int ) { }
japhb m: sub foo(&a, :&b) { say "Optional block sent" if &b; }; foo({ say "Bar" }) :b({ say "Baz" });
camelia rakudo-moar 59f7cb: OUTPUT«Optional block sent␤»
smls .tell timotimo How about this as a rudimentary start? gist.github.com/smls/623a9831832a3f20f9e8
yoleaux smls: I'll pass your message to timotimo. 22:07
22:07 Hor|zon left
jnthn demayl: Str really wants to know an encoding 22:07
japhb m: sub foo(&a, :&b) { say "Optional block sent" if &b; }; foo({ say "Bar" });
camelia ( no output )
demayl ok, then how can i store it raw 22:08
jnthn demayl: Go with a CArray[int8] or so
demayl ok, will try, thanks
_edwin woohoo, rakudo has built and installed to c:\rakudo! (with the JIT disabled) 22:09
jnthn _edwin: OK, then it's at least something fairly specific :)
_edwin and it has the AltGr input problem, which is what I want to take a look at
TimToady m: my @a; @a»value 22:10
camelia rakudo-moar 59f7cb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/j32j7PnXHU␤Missing dot on method call␤at /tmp/j32j7PnXHU:1␤------> 3my @a; @a»7⏏5value␤ expecting any of:␤ postfix␤»
jnthn Cute :)
TimToady++
masak TimToady++!
TimToady m: my @a; @a» value
camelia rakudo-moar 59f7cb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ncXO6SItmb␤Missing postfix␤at /tmp/ncXO6SItmb:1␤------> 3my @a; @a»7⏏5 value␤ expecting any of:␤ postfix␤»
TimToady m: my @a; @a»/ 22:11
camelia rakudo-moar 59f7cb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FdFWCKp6lH␤Malformed postfix␤at /tmp/FdFWCKp6lH:1␤------> 3my @a; @a»7⏏5/␤ expecting any of:␤ postfix␤»
masak yeah, the "Missing dot" is the error message I wish I had gotten.
worthy of a Perl 6 error message.
japhb
.oO( Chief Parse Error Awesomizer )
22:12 larion joined
masak I want to be an awesomizer when I grow up. 22:13
22:13 kjs_ joined 22:15 lucas_ left 22:21 anaeem1 left, anaeem1 joined
japhb I think that's what parents are, really.</themoreyouknow> 22:21
jnthn gets another early night :) 22:22
o/
masak 'night, jnthn
22:23 sunnavy left 22:24 sunnavy joined, kjs_ left, smls left 22:25 anaeem1 left
_edwin jnthn++, thanks for your help, good night 22:30
22:30 _edwin left 22:31 Rounin left
masak 'night, #perl6 22:32
vendethiel o/, masak 22:35
22:35 anaeem1_ joined, anaeem1_ left, anaeem1 joined 22:37 BenGoldberg joined 22:38 kjs_ joined
dalek kudo/nom: f5d0bc2 | (Geoffrey Broadwell)++ | src/core/Promise.pm:
Support a :&catch argument for start() and Promise.start()

This allows timely detection of exceptions thrown by tasks that may not be await'ed for some time (e.g. because they are background tasks not expected to complete for a long time), and mirrors the same parameter on ThreadPoolScheduler.cue().
22:39
RabidGravy nice 22:40
in lieu of an oct() and in the presence of a string representation of what I know to be an octal number I have been prepending "0o" and calling Int on on it 22:42
but that seems shit, is there a better way?
22:42 kaare_ joined
TimToady m: say :8('077') 22:43
camelia rakudo-moar dd1310: OUTPUT«63␤»
RabidGravy :-*
22:43 skids joined
RabidGravy perfect, I'm just crap at reading the documentation 22:45
TimToady m: say :8('0x077') 22:46
camelia rakudo-moar dd1310: OUTPUT«119␤»
TimToady note it just changes the default
(from decimal)
RabidGravy TimToady++ # top toad 22:47
dalek kudo-star-daily: 43762c3 | coke++ | log/ (9 files):
today (automated commit)
22:48
22:48 spider-mario left
RabidGravy the cases where I've encountered this are in the aforementioned termcap entries with \\(\d\d\d) things and in the /proc/<pid>/fdinfo/<fd> flags field where it is the string representation of the octal flags 22:50
22:57 mohij left 22:58 kurahaupo1 joined 23:03 raiph joined 23:05 ssutch left
jdv79 what is the p6ism for p5's Storable::dclone? 23:05
23:09 espadrine left 23:10 kjs_ left
japhb m: my $p = start { my Bool $foo = now; }, :catch({ say "Gotcha! $_" }); say $p.status; sleep 2; say $p.status; 23:11
camelia rakudo-moar dd1310: OUTPUT«Unexpected named parameter 'catch' passed␤ in sub start at src/gen/m-CORE.setting:23236␤ in block <unit> at /tmp/uwxr5ExY8W:1␤␤»
japhb Gah, rebuild not done yet 23:12
23:12 anaeem1 left, eli-se left, ssutch joined, anaeem1 joined 23:17 anaeem1 left
[Coke] m: say 3 23:24
camelia rakudo-moar f5d0bc: OUTPUT«3␤»
23:27 chenryn joined
RabidGravy in the p5 version of Term::Cap there is a test for EBCDIC that does "ord('A') == 193 " - I'm right in saying that is useless in p6? (not having an EBCDIC system to test on) 23:30
I'm inclined to ignore the issue entirely until someone complains and sends a patch 23:31
23:31 chenryn left
[Coke] p6 doesn't support ebcdic. 23:32
RabidGravy I guess even the last holdouts of it (z/OS ettc) do utf-8 these days 23:33
23:34 Woodi left
RabidGravy the last time I touched one was almost twenty years ago 23:35
23:39 atweiden left 23:41 ssutch left, Woodi joined 23:42 molaf_ joined 23:44 molaf left 23:52 ssutch joined 23:57 kurahaupo1 left
jdv79 how does this error make sense?: "Unsupported use of $# variable; in Perl 6 please use .fmt" 23:59