»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
colomon whats the reverse of ords? 00:02
benabik sdro 00:03
Mouq r: "abcd".ords.chrs.say
camelia rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
..rakudo-parrot 3164ca: OUTPUT«abcd␤»
benabik r: 'ords'.reverse.say
camelia rakudo-parrot 3164ca: OUTPUT«ords␤»
..rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
colomon Mouq++
I actually tried that, but it turns out... 00:04
benabik Huh. odds is the reverse of odds. Weird.
colomon rn: say (92,80,92,67).chrs
camelia rakudo-parrot 3164ca, niecza v24-98-g473bd20: OUTPUT«\P\C␤»
..rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
Mouq rn: 'ords'.flip.ords.reverse.chrs.say 00:05
camelia rakudo-parrot 3164ca, niecza v24-98-g473bd20: OUTPUT«ords␤»
..rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
00:05 ssutch left
lue That's weird. My callmethod op comes out as QAST::Op(call &postfix:<>) . No clue if that's right or not. 00:05
colomon huh. here's what I get locally
> (92,80,92,67).chrs
Method 'chrs' not found for invocant of class 'Parcel'
benabik nqp: say (92,80,92,67).chrs
camelia nqp-jvm: OUTPUT«Confused at line 2, near "say (92,80"␤ in panic (gen/jvm/stage2/NQPHLL.nqp:379)␤ in comp_unit (gen/jvm/stage2/NQP.nqp:922)␤ in TOP (gen/jvm/stage2/NQP.nqp:820)␤ in parse (gen/jvm/stage2/QRegex.nqp:1247)␤ in parse (gen/jvm/stage2/NQPHLL.nqp:1378)␤ in…» 00:06
..nqp-moarvm: OUTPUT«Confused at line 2, near "say (92,80"␤panic␤»
..nqp-parrot: OUTPUT«Confused at line 2, near "say (92,80"␤current instr.: 'panic' pc 16305 (gen/parrot/stage2/NQPHLL.pir:6018) (gen/parrot/stage2/NQPHLL.nqp:426)␤»
Mouq colomon: what's your version? as I recall, that was a recent thing
well, like last month or so
colomon 2013.08-99-ga13cec9
guess my Mac is way behind.
lue Mouq++ for the parse/ast tip. I've been stuck in "you can use the grammar tracer" land for a while, and I forgot the other debugging methods :) 00:07
Mouq lue: :) 00:08
00:08 preflex left 00:10 preflex joined, ChanServ sets mode: +v preflex
lue nqp seems to handle a callmethod correctly, so somehow NQP code is leaking into the AST of my stuff :/ 00:11
00:15 raiph left
Mouq r-p: say '°•°•.•.•°•°•.•°•.•°'~~/\°+%\•+%\./ 00:18
camelia rakudo-parrot 3164ca: OUTPUT«「°•°•.•.•°•°•.•°•.•°」␤␤»
00:22 risou_awy is now known as risou
jnthn .tell jaffa4 because you didn't pass a :actions(...), which is required 00:27
arnsholt: See docs/6model/repr-compose-protocol.markdown, the array section 00:29
00:30 ssutch joined
jnthn sleep & 00:32
00:38 risou is now known as risou_awy 01:05 raiph joined 01:22 nnunley left
timotimo r-j: say $*VM<name> 02:00
camelia rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
pdurbin timotimo: how's perl6 on the jvm going? 02:01
timotimo pretty good actually 02:02
jnthn++ has been making pretty darn cool parallelism constructs for us
and we have JVM interop, so that we can use classes from java and implement some interfaces like "runnable" (or something like that?) just by having a sub 02:03
pdurbin somewhere on 6guts.wordpress.com I looked at some pdf that gave a nice high level overview of perl6 on the jvm 02:04
timotimo ah damn. we need a pbc_to_exe equivalent for the jvm so that we can build a binary from rakudo-debugger. 02:05
yes, that would be his talk slides i'd bet
jnthn.net/papers/2013-yapceu-jvm.pdf
pdurbin it's was interesting to read how for certain workloads the jvm is much more efficient than parrot
timotimo yes, truly
the JIT is pretty darn good.
pdurbin yeah, page 47. 11 minutes vs. 7 hours, 52 minutes 02:06
timotimo and also the way our classes work is a bit nicer on the JVM than on parrot. and much nicer still on moarvm
pdurbin timotimo: thanks 02:07
timotimo you're welcome
lue idly considers Moar
pdurbin a guy at work gave a talk on scala. who knows. maybe we'll consider languages besides java on the jvm some day :) 02:09
timotimo :)
pdurbin his slides: lists.iq.harvard.edu/pipermail/tec...00006.html 02:10
timotimo: is there a place to check for general status of perl6 on the jvm? what's working, what's not working, etc. 02:13
timotimo yeah, the perl6-roast-data repository on coke's github gives you the percentages of relative spectest success and details which spectests are skipped 02:15
almost everything that works on parrot works on jvm. the one important thing that's missing before we make a Rakudo-jvm Star release is Native Call
in that case, it means calling C code from a rakudo-jvm
and the jvm has stuff that doesn't work on parrot. and now there's tests for the stuff that is not on parrot, so maybe rakudo-parrot will not stay the leader in the scoring :) 02:16
pdurbin looks at github.com/coke/perl6-roast-data/b..._rates.csv
wow, almost everything. so I see 02:18
timotimo sometimes there's problems with the test runs, though, like it hanging in the middle
yes, indeed :)
but 100% doesn't mean 100% of tests succeed. lots of tests are skipped or todos
i think that's the difference between the "spec" and "plan" columns 02:19
pdurbin ah ha. but still, the "pass" numbers are very similar 02:20
timotimo yes, indeed
once you get to a compiling and running CORE.setting, you already have a big chunk of things covered 02:21
aaw, i don't have a commit bit for rakudo-debugger 02:22
02:23 risou_awy is now known as risou
pdurbin "We hope to provide a JVM-based Rakudo Star release soon" -- rakudo.org/2013/10/29/rakudo-star-2...-released/ 02:24
BenGoldberg r-j: 1 02:25
camelia rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
BenGoldberg Why is that happening? 02:26
pdurbin timotimo: so nothing to download yet?
timotimo right. i'm not sure if the compiler release has the backend "in it". i'm sure it should (also, it's just a source release) 02:30
pdurbin ok 02:37
timotimo what OS are you on? if you're interested in building one yourself, i can probably walk you through it. it's pretty easy nowadays 02:38
pdurbin Fedora at home. Mac at work. Not sure I have time though :) 02:39
02:40 risou is now known as risou_awy
pdurbin but I appreciate the offer :) ... off to sleep 02:42
02:42 pdurbin left 02:52 REPLeffect left 03:07 REPLeffect joined 03:17 ssutch left 03:56 xinming_ joined 03:59 xinming left 04:02 ssutch joined 04:14 rurban joined 04:19 risou_awy is now known as risou 04:33 johnny5_ left 04:35 johnny5_ joined 04:51 BenGoldberg left, preflex_ joined, ChanServ sets mode: +v preflex_ 04:52 preflex left, preflex_ is now known as preflex 04:59 Karlo7 joined
Karlo7 rakudo 04:59
perl6:say rakudo 05:01
perl6:say rakudo; 05:02
perl6: rakudo; 05:03
camelia niecza v24-98-g473bd20: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'rakudo' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp…» 05:04
..rakudo-parrot 3164ca: OUTPUT«===SORRY!=== Error while compiling /tmp/PnIEjmyufV␤Undeclared routine:␤ rakudo used at line 1␤␤»
..rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
Karlo7 perl6: say 3; 05:05
dalek osystem: e72e6d7 | (Nick Patch)++ | META.list:
add CLDR::List
camelia rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
..rakudo-parrot 3164ca, niecza v24-98-g473bd20: OUTPUT«3␤»
05:09 Karlo7 left 05:14 rurban left 06:15 raiph left 06:19 ingy1 joined 06:20 rurban joined, ingy1 left 06:32 rurban left 06:47 bbkr joined 06:57 woolfy joined 06:58 darutoko joined 07:01 dansamo joined, dansamo left 07:02 dansamo joined 07:03 lizmat joined 07:11 k-ray joined 07:12 bbkr left 07:18 johnny5_ left 07:20 johnny5_ joined 07:25 tobyink joined 07:33 rurban joined 07:48 rurban left 07:49 woolfy left 07:51 tobyink left 07:54 lizmat left 07:55 hummeleB1 left 07:58 dansamo left 08:06 johnny5_ left 08:07 johnny5_ joined 08:08 ssutch left 08:15 tobyink joined 08:48 kaare_ joined 08:51 rurban joined 08:58 rurban left
FROGGS morning 08:58
09:06 lizmat joined
masak o/ 09:09
lizmat masak: /o 09:10
FROGGS morning lizmat
lizmat is catching up on backlog
the jnthn has not entered the building yet
FROGGS :o) 09:11
09:12 woolfy joined
lizmat correction: jnthn has entered the building 09:12
09:20 jaffa4 joined
woolfy update: jnthn is in the building and standing next to our table and talking to Nick 09:22
update: he still is talking...
...
lizmat update: woolfy is taking pictures 09:24
FROGGS hehe
I am feeling being involved :o) 09:25
lizmat update: woolfy stopped taking photos
woolfy confirms lizmat's updates
jaffa4 what is going on?
FROGGS jaffa4: they are at the perl workshop in Austria 09:26
woolfy FROGGS: would be nice if you would be here too. It's nice. Nice office, nice people, nice city. Already 14 people present in hackathon room. Some of them are really hacking.
FROGGS jaffa4: btw, jnthn replied to you in the backlog
jaffa4 What backdoor? 09:27
FROGGS woolfy: yeah, I wanted to come, but my wife is getting a job as it seems (starting tomorrow)
jaffa4 And replies on what?
FROGGS jaffa4: irc backlog, see irclog.perlgeek.de/perl6/search/?ni...p;q=jaffa4 09:28
woolfy FROGGS: wife's job is way more important. You did choose well. 09:29
jaffa4 not sure what his wife's job has to do anything 09:30
FROGGS woolfy: yeah, especially when she had none since four years now :o)
jaffa4: I have two young kids, somebody has to care :o) 09:31
so I can't travel around
woolfy Wife could have some moral (and household) support as well after first job in 4 years! 09:33
I can't find the Camelia logo graphics file on www.perl6.org . Anybody an idea where to find it? The scalable version would be nice.
FROGGS that too of course
woolfy: it is on wall.org I think 09:34
jaffa4 FROGGS: Austrlian workshops seems to be very small 09:35
woolfy hmmm, not a very helpful url
FROGGS woolfy: I am still searching
woolfy jaffa4: the workshop had 22 attendees yesterday. Today is hackathon and 14 people present, more coming in later.
FROGGS woolfy: commons.wikimedia.org/wiki/File:Camelia.svg 09:36
jaffa4: and we are talking about Austria in Europe
jaffa4 so am I. 09:37
FROGGS ahh,, k
woolfy FROGGS: thanks, that's the one.
jaffa4: quantity, not quality... :-)
jaffa4 you mean the reverise
lizmat "Austrlian" seems to be the love child of "Austrian" and "Australian"
jaffa4 I have typing difficulties 09:38
and I spend time in Autralia and I keep remembering I think
FROGGS: I need to pass :actions... so what do I need to do exactly? 09:40
FROGGS jaffa4: something like: Perl6::Grammar.parse( $code, :actions(Perl6::Actions.new) )
jnthn morning o/ 09:41
arnsholt 'lo
jnthn: Thanks for your reply last night 09:42
FROGGS hi jnthn, arnsholt 09:43
arnsholt I've put the CArray refactor idea on the back burner for now, as I need to get a better grip on how parametric classes work first =)
jnthn ok 09:44
.oO( me too! )
09:45
arnsholt: Maybe look at how I did Buf
arnsholt: And blob
We can steal those improvements
and use them for NativeCall
dalek ecs: 73b7398 | (Elizabeth Mattijsen)++ | S11-modules.pod:
Some more on CompUnitRepo and CompUnit
09:50
arnsholt jnthn: Yeah, I looked at Buf and Blob last night 09:53
I'll probably steal much from there
But first, I'll get CArray working on JVM =)
10:00 rurban joined
jaffa4 r: use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; say Perl6::Grammar.parse( 'my $b=4;', :actions(Perl6::Actions.new()) ); 10:09
camelia rakudo-parrot 3164ca: OUTPUT«No such method 'gist' for invocant of type 'NQPMatch'␤ in sub say at gen/parrot/CORE.setting:12843␤ in block at /tmp/oK31MAmT0h:1␤ in any at /tmp/oK31MAmT0h:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage…»
..rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
jaffa4 FROGGS: something is still wrong 10:10
r: use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; my $g = Perl6::Grammar.parse( 'my $b=4;', :actions(Perl6::Actions.new()) ); 10:11
camelia rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
..rakudo-parrot 3164ca: OUTPUT«Nominal type check failed for parameter '$got'; expected Any but got NQPMatch instead␤ in block at /tmp/WObpfq9ZTX:1␤ in any at /tmp/WObpfq9ZTX:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:113…»
moritz you'll get an NQP Match object back, not a Perl 6 Match object
so you have to be extra careful about what you do with it
jaffa4 I just put it into a variable 10:12
So what can I do with it?
FROGGS jaffa4: this message is some sort of success: No such method 'gist' for invocant of type 'NQPMatch'
jaffa4 yes, look at my second attempt 10:13
FROGGS it means that you get a Match back (from nqp land), but you can't gist it
jaffa4 I cannot put it into variable
FROGGS same thing, it is an nqp-object, not a perl6 one
r: use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; my Mu $g := Perl6::Grammar.parse( 'my $b=4;', :actions(Perl6::Actions.new()) ); 10:14
camelia ( no output )
..rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
FROGGS rp: use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; say Perl6::Grammar.parse( 'my $b=4;', :actions(Perl6::Actions.new()) ).dump; 10:19
camelia rakudo-parrot 3164ca: OUTPUT«- statementlist: my $b=4;␤ - statement: 1 matches␤ - EXPR: my $b=4␤ - scope_declarator: my $b=4␤ - sym: my␤ - scoped: $b=4␤ - DECL: $b=4␤ - initializer: 1 matches␤ - sym: =␤ …»
FROGGS rp: use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; say Perl6::Grammar.parse( 'my $b=4;', :actions(Perl6::Actions.new()) ).ast.dump
camelia rakudo-parrot 3164ca: OUTPUT«- QAST::CompUnit␤ - QAST::Block my $b=4;␤ - QAST::Var(local __args__ :decl(param))␤ - QAST::Stmts␤ - QAST::Op(call)␤ - QAST::Block ␤ - QAST::Stmts␤ - QAST::Var(lexical GLOBALish :decl(static))␤ - QA…» 10:20
10:20 rurban left
jaffa4 slooks good 10:25
FROGGS you still have the problem with the nqp <-> perl6 boundary 10:27
jaffa4 How do I enumarate this? 10:29
FROGGS do you mean iterate? there are ops for it, grep for nqp::iter* in nqp 10:33
jaffa4 yes 10:34
xenoterracide scratches head at the name `elems` why not `size` or `count` 10:36
moritz xenoterracide: because 'size' could be anything 10:37
xenoterracide: storage size, display size when printed, whatever
10:37 denisboyun joined
moritz count is better, but *what* is counted? elems! 10:37
xenoterracide List.elems makes me think I'm returning the elements... List.size or List.count would both make me think of a numeric context... idk, just a thought, I'd never guess what elems means 10:38
moritz that is a disadvantage, yes 10:39
lizmat xenoterracide: but, Perl6 doesn't return elemens: it returns a list or Parcel with elems
therefore .elems returns the number of elements 10:40
.list or .Parcel returns the list or a parcel with the elements
moritz or if you have a list, it already *is* the list of elems :-) 10:41
10:41 tobyink left
xenoterracide of course, when everything is an object... I'm just saying if I read this code, without referencing the docs I wouldn't know what it was doing 10:41
of course to be fair if I didn't know perl I'm not sure I'd innately know what shift/unshift did either 10:42
xenoterracide shrugs, not a language designer, going back to my corner 10:43
well, ok, I'll say one last thing I guess... my thought on any api design is that you should, in most cases, be able to read the class and method name and guess what the purpose is without (too much) prior knowledge 10:45
List.first is extremely obvious
moritz which immediately rules out List.size
10:57 cognominal__ joined
xenoterracide afaik, that may be common to other implementations, python uses count, java size, ruby size or length, js length, (I think length is weirder than size, but all seems better than elem ) 10:59
11:01 cognominal left
xenoterracide notes the only reason I brought this up is I'm poking around writing a perl 5 collection api 11:01
and decided to somewhat base it off perl6's method naming
moritz "length" is another example that lacks a unit 11:02
xenoterracide yeah I don't like length either
moritz lenght in bytes? in characters? Codepoints? display length?
xenoterracide but with elem, what about it? is it returning an elem object that's another collection type? telling me what type of elem (what of() does), it's just something I have to look up (barring familiarity) 11:04
I think for what I'm working on I'll go with count
Collection.count doesn't seem ambiguous
moritz what does Hash.count return?
number of keys? or number of elems of the hash table? 11:05
xenoterracide what does Hash.elem return? 11:06
moritz number of pairs
xenoterracide why would I guess that anymore than I would Hash.count
moritz because count doesn't say *what* is counted 11:07
xenoterracide how does elem?
moritz it counts *elem*s
xenoterracide a pair is an elem?
moritz yes
lizmat r: my @a=([],[],[]); sat @a.elems 11:08
r: my @a=([],[],[]); say @a.elems
camelia rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
..rakudo-parrot 3164ca: OUTPUT«===SORRY!=== Error while compiling /tmp/ge8VOTYfMw␤Undeclared routine:␤ sat used at line 1. Did you mean '&set', '&say'?␤␤»
rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
..rakudo-parrot 3164ca: OUTPUT«3␤»
moritz p: set(<a b a c>).elems 11:09
camelia ( no output )
moritz p: say set(<a b a c>).elems
camelia rakudo-parrot 3164ca: OUTPUT«3␤»
moritz p: say bag(<a b a c>).elems
camelia rakudo-parrot 3164ca: OUTPUT«3␤»
xenoterracide well maybe it makes more sense in perl6 though not sure if it does in perl 5... 11:10
I'll think on it
it's not like I'll release the library in a week
though knowing that it's looking at elems I'd probably still guess count was counting elems just have to know that detail... (which also seems relevant to understanding the name .elem) 11:12
moritz in the context of a Perl 5 library it might even make sense to call it length, simply because that's the p5 idiom 11:13
xenoterracide true, heh, forgot that function exists 11:14
Juerd "length" isn't a p5 idiom for lists or arrays. 11:15
Unless, of course, you want to know the number of digits of the number of elements... :P 11:16
moritz right, that would be 'scalar'
xenoterracide I coerce to scalar context alot
on more perl 6 notes... has any thought been given to a variance in Native backend, say wanting to use JDBC DBD vs C DBD 11:19
11:20 denis_boyun joined 11:21 denisboyun left
arnsholt I think moritz has mentioned the possibility, but nothing concrete exists so far AFAIK 11:21
lizmat p: say bag(<a b a c>).total 11:22
camelia rakudo-parrot 3164ca: OUTPUT«4␤»
11:25 denis_boyun left 11:26 denis_boyun joined 11:27 spider-mario joined
xenoterracide what's the difference between Blob and Buf? 11:29
jnthn Mutability...in theory :) 11:30
Though currently Rakudo doesn't let you mutate either. But Buf should be mutable. 11:31
11:31 denis_boyun__ joined 11:33 denis_boyun left 11:36 Rotwang joined 11:37 denis_boyun joined, fridim_ joined 11:38 denis_boyun__ left
arnsholt jnthn: There doesn't seem to be separate allocate and initialize steps in 6model on JVM, that right? 11:39
xenoterracide well in backend thought, if given a little API could largely leave it up to a convention ::PP or ::JVM ::Native and prefer JVM over Native on the jvm 11:40
11:41 rindolf joined, Rotwang left 11:43 denis_boyun left
xenoterracide if I do multi new ($param ) { ... } will that work as expected? also on native... is there an API that allows me to find out what the current environment is? 11:43
11:43 denis_boyun joined 11:49 pmurias joined
pmurias xenoterracide: re JDBC DBD vs C DBD, you mean on the NativeCall level or on the module naming level? 11:50
xenoterracide module naming, unless there was actually a saner way to do it 11:51
11:55 Rotwang joined 11:57 telex left 11:58 SmokeMachine left, telex joined
lizmat moritz: when wanting to run a single spectest file, I usually do "make t/spec/name/ofspectest.t" 11:59
on a dual installation, this uses the parakudo
moritz lizmat: it uses the first of the backends detected or passed --backends= 12:00
lizmat aha, ok 12:01
moritz lizmat: would you prefer some other semantics?
lizmat is looking 12:07
12:18 denis_boyun__ joined
xenoterracide equivalent to __PACKAGE__? and does that vary whether I'm in a class/role/module ? 12:19
12:19 denis_boyun left 12:20 denis_boyun__ left 12:23 denis_boyun joined 12:25 dansamo joined 12:26 denis_boyun_ joined 12:27 dansamo left, dansamo2 joined 12:29 denis_boyun left, djanatyn left 12:31 djanatyn joined, denis_boyun_ left 12:32 denisboyun joined
moritz r: class A { say $?PACKAGE } 12:34
camelia rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤» 12:35
..rakudo-parrot 3164ca: OUTPUT«(A)␤»
moritz rj: say 'alive?' 12:36
camelia rakudo-jvm 882e33: OUTPUT«Unhandled exception: java.lang.OutOfMemoryError: Java heap space␤ in (src/Perl6/Grammar.nqp)␤ in (src/vm/jvm/ModuleLoader.nqp:62)␤ in (src/vm/jvm/ModuleLoader.nqp:52)␤ in load_module␤ in ␤␤»
xenoterracide require( $class ).new (IIRC this is possible though I think my invocation is slightly off... 12:37
moritz require $class; ::($class).new
12:37 denisboyun left
moritz rj: say 'alive'; 12:37
camelia rakudo-jvm 882e33: OUTPUT«alive␤»
12:38 denis_boyun joined
moritz currently I wonder if I should start one eval server, and then kill it and start a new one after it has been used 12:42
lizmat fwiw, I just installed javac on my macbook 12:43
and trying to do jvm spectest
it starts failing after about 40 tests
the error I've been able to get out of that is: 12:44
Error in socket connection:Exception in thread "Thread-71"
java.lang.OutOfMemoryError: GC overhead limit exceeded
does that ring any bell with anyone
according to jnthn, this appears to be the same pb that [Coke] sees/ has seen 12:46
12:47 xenoterracide left 12:59 xenoterracide joined 13:02 Rotwang left
xenoterracide is it possible to have a class and a module of the same name and export subroutines from the module and the class? 13:05
timotimo does somebody want to build something like "pbc_to_exe" for the jvm port? it could create a sh on linux and a .bat on windows and find the right libraries and classpaths and stuff
FROGGS xenoterracide: it is specced to load a module/class under a different name (alias), that is what you want, but unfortunately NYI 13:06
like: use Foo:from<NQP>:name<Bar>; use Foo; 13:07
xenoterracide hmmm 13:08
FROGGS or you would load a Foo with a different version as the other Foo, and load one of them under an alias
jnthn xenoterracide: Why put the subs in a module at all?
xenoterracide: Just mark the class is export and then shove the subs after it and makr them as is export
they're lexical so it's not like they pollute anything.
FROGGS jnthn: yeah, if you have the modules/classes under control :o) 13:09
xenoterracide jnthn: suppose I could do that, (goes back to refactoring Digest)
nwc10 Thing I mentioned earlier - Devil's dictionary of programming: programmingisterrible.com/post/6578...rogramming 13:10
(from Peter da Silva from David Gerard)
xenoterracide trying to make Digest a little more ... Digestable heh. Make it more like the perl 5 version and allow algorithm selection 13:14
13:18 Rotwang joined
xenoterracide I suppose I could TIAS but if you're inside of a .pm ... but not inside of a "package scope" then what "package" are you in? do those subs auto end up in a lexical block of main or something? 13:25
arnsholt jnthn: Given that most REPRs use the same class as REPRData all the time, d'you think it would make sense to make STable on JVM STable<T>?
And then REPR<T>. It'd kill some casts in various places I think 13:26
jnthn Yeah, but since it's just type erasure it makes no differene at runtime anyway... 13:34
afaik, anyway
arnsholt Yeah, it'd be purely a convenience while coding 13:35
13:39 Rotwang left
jnthn ah, ok 13:41
13:43 dmol left
arnsholt I've noticed that uses of REPRData are always accompanied by casting stuff, and that'd be a way to get rid of that 13:45
13:46 dansamo2 left 13:53 tobyink joined 13:54 Rotwang joined 14:00 dmol joined 14:03 Rotwang left 14:08 raiph joined
lizmat std: my $p = ==> { ... } 14:14
camelia std 8adbc60: OUTPUT«===SORRY!===␤Malformed initializer at /tmp/Z1Kg553PWI line 1:␤------> my $p ⏏= ==> { ... }␤Parse failed␤FAILED 00:01 122m␤»
lizmat std: my $p ==> { ... } 14:15
camelia std 8adbc60: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix => instead at /tmp/T0aNKiGYxo line 1:␤------> my $p =⏏=> { ... }␤Parse failed␤FAILED 00:01 123m␤»
14:16 zakharyas joined 14:17 Rotwang joined 14:21 BenGoldberg joined 14:22 denis_boyun left 14:27 denis_boyun joined
lizmat TimToady: instead of async { ... }, maybe vow { ... } ? 14:27
14:28 rurban joined 14:33 Rotwang left 14:40 denis_boyun left, denisboyun joined 14:44 denis_boyun joined 14:46 denisboyun left 14:47 Rotwang joined 14:49 denis_boyun left 14:50 FROGGS left, denis_boyun joined 14:53 FROGGS joined 14:56 BenGoldberg left 15:01 denis_boyun left 15:05 dmol left
FROGGS k, I think I fixed run() so that it does not run the program via a shell 15:12
japhb__ lizmat: schedule {} ? 15:14
task {} ? 15:15
15:15 zakharyas left
FROGGS I dont think a noun is preferable 15:16
TimToady unfortunately the English verb is "extract a promise" :)
japhb__ TimToady: Actually, in retrospect, I kinda like your todo {} suggestion. 15:17
FROGGS ohh, task is a verb too
japhb__ Since you can 'todo' something.
FROGGS that feels more like NYI
like stub code
japhb__ :-/
TimToady but todo has strong overtones that I'm going to do it, not someone else 15:18
FROGGS (to me)
japhb__ That's a fair point
TimToady wish at least is what you do to a genie, which is a separate agency
japhb__ job {}
diakopter .
FROGGS steve { } 15:19
japhb__ FROGGS: .steve is clearly a method that gives you the current list of jobs.
FROGGS or that gives you style, and shouts at you in another moment :o)
TimToady unfortunately "delegate" is too long, and already means something else 15:20
japhb__ starts singing "Sailing the Wide Concurrency" to the tune of "Sailing the Wide Accountancy"
(in his head)
FROGGS *g*
japhb__ lazyperl {} 15:21
lizmat TimToady: re " but todo has strong overtones that I'm going to do it, not someone else", that's why I propose "go do" aka "godo"
japhb__ lazy {}
TimToady bikeshed {} 15:22
japhb__ blue {}
diakopter _ {}
japhb__ no, green {}
lizmat jim {}
FROGGS besides { }
geekosaur please {} 15:24
raiph tia {} # green, light 15:25
japhb__ jnthn: So, while they continue bikeshedding ... can you explain why BOOTSTRAPATTR is used beyond building Attribute (or maybe scalar_attr)?
FROGGS casual { } # my last one for today 15:26
japhb__ causal {} # Now what does *that* mean in this context?
FROGGS O.o 15:27
jnthn japhb__: Not really :) 15:28
japhb__: Maybe 'cus "that's how things ended up"
japhb__: I guess scalar_attr just needs Attribute and Scalar to exist. 15:29
And we can use it for the rest.
japhb__ OK, that makes sense to me. I kept looking at the code going "Why are we using BOOTSTRAPATTR way down here?" And then I wondered if there was some performance reason, or some extremely subtle detail somewhere I was missing. 15:30
jnthn japhb__: Well, the other reason is that it doesn't not vivify a Scalar in the attribute 15:31
Which can be important.
But we can find a way to do that and use Attribute
japhb__ jnthn: Well, but that's true of a regular Attribute, right?
I mean, I thought scalar_attr() was just a wrapper to weld Scalar viv to an Attribute, so if you just use Attribute by itself ... 15:33
jnthn Right.
So we can almost certainly reduce BOOTSTRAPATTR usage lots ;)
japhb__ \o/
jnthn Just copy paste...
15:35 spider-mario left
japhb__ lizmat: line 824 of github.com/perl6/specs/commit/73b7...a300e2R824 looks like you mixed languages. :-) 15:37
lizmat hehe 15:38
jnthn japhb__: Good you pointyd that out...
japhb__ >.< 15:39
dalek ecs: 327e599 | (Elizabeth Mattijsen)++ | S11-modules.pod:
Mixed languages: bad girl! spotted by japhb__++

Finally someone looks at this :-)
japhb__ jnthn: That one hurt when I felt the point of your linguistic arrow ... 15:40
japhb__ wonders if everything currently in BOOTSTRAP.nqp still needs to be there 15:44
15:45 ajr joined 15:46 ajr is now known as Guest16834, Guest16834 is now known as ajr_ 15:49 dansamo2 joined 15:51 xenoterracide left 15:54 raiph left
arnsholt CArray tests: 3/26 \o/ 15:54
15:55 raiph joined 15:57 denis_boyun_ joined
FROGGS arnsholt++ # \o/ 15:57
16:02 woolfy left
lizmat about to finish up the the APW Hackathon 16:02
16:03 kaare__ joined
dalek ecs: 0b11765 | jonathan++ | S17-concurrency-jnthn.pod:
Add a heretical S17, written from scratch.

This describes the current state of concurrency as found in Rakudo JVM as well as some other planned things. lizmat++ for review and much feedback. This is for discussion, and so we can start collectively working on better naming, API design, etc. where needed.
16:03
jnthn TimToady: Docs!!! :)
lizmat jnthn++ 16:04
offline&
jnthn airport &
16:04 lizmat left 16:05 kaare_ left 16:10 virtualsue joined
moritz jnthn++ 16:11
16:12 tobyink left
moritz whie PromiseStatus instead of Promise::Status? 16:16
also, IMHO async should be statement prefix, ie optionally taking a single statement 16:18
my $promise = async $object.meth();
dalek rl6-roast-data: c1e65a6 | coke++ | / (5 files):
today (automated commit)
16:22
moritz also I wonder if .subscribe should take named arguments for last/fail 16:25
16:25 Rotwang left
FROGGS pssst, just spec it while he is away 16:26
16:31 tobyink joined
dalek p: f42871d | (Tobias Leich)++ | src/vm/parrot/ops/nqp.ops:
let nqp::spawn don't use a shell to execute programs

This gives us the change to pass the argument array directly to execvp on linux, saves stringifying it and avoids messing with automatic quoting. CreateProcess on windows however only takes a string.
16:34
kudo/nom: 215ba6a | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp revision
16:36
16:38 Rotwang joined
FROGGS btw, run('"cmd" /c dir') recolves cmd.exe correctly, while run('cmd /c dir') tries to resolv a dir.exe in the folder 'cmd /c' or so 16:39
Mouq o/
jnthn++ FROGGS++
FROGGS hi Mouq
timotimo "flat =item grep =item map =item uniq =item squish" 16:44
:(
16:46 dansamo2 left
moritz timotimo: I'm going to push some whitespace fixes soon 16:46
timotimo cool
i wonder: can optimisations like "i know this part of the regex is exactly of length 3, there's a constant after it, i can look for the constant and do an offset 3 backwards" implementable only on the QAST of the regex or does that kind of thing have to go into each backend's regex compiler? 16:50
dalek ecs: 7b0188b | moritz++ | S17-concurrency-jnthn.pod:
[new 17] whitespace fixes

and close a dangling quote
16:51
16:53 virtualsue left
moritz timotimo: sounds like the detection of those properties could go into a module that works on QAST 16:54
timotimo: and sometimes special scan statements, early fails etc. could be inserted
but some usages certainly need backend support 16:55
timotimo mhm
moritz speaking of which: the scan using index() still isn't implemented in the JVM backend
timotimo i'm not sure if that specific optimisation would help rakudo parse the setting faster
moritz it doesn't
16:55 denysonique_ joined
timotimo that's what i feared 16:55
16:56 SamuraiJack joined
timotimo it seems like a good idea to do mostly things that help in the setting at this stage of rakudo 16:56
because obviously if the developer turn-around time is halved, we'll have twice as many commits!
17:00 denis_boyun__ joined 17:01 denis_boyun_ left 17:10 denysonique left 17:13 denis_boyun__ left 17:14 dmol joined 17:20 johnny5_ left 17:21 johnny5_ joined 17:25 pmurias left, tobyink left 17:26 mtk left 17:30 mtk joined
arnsholt Is tc.native_type set before something like a bind_pos_native, or should I just assume the right one is set? 17:32
jnthn: That last one was supposed to be pinged at you 17:33
17:33 samebchase joined 17:36 Mouq left 17:38 ssutch joined 17:47 Mouq joined 17:59 virtualsue joined
masak jnthn++ # S17 herecy 18:01
timotimo "heresy", no?
FROGGS timotimo: that is so awesome about MoarVM... you can fix something in moar, recompile only that and install (<3s), then type `make` again in rakudo's source dir 18:06
that is a round-trip of a few seconds
diakopter :D 18:07
FROGGS which would be minutes (about 3) for parrot or jvm backend, because you usually recompile nqp
moritz I'm pretty sure that if you fix something in the JVM, you don't have to rebuild NQP either 18:08
FROGGS hehe, yeah, that might be true :o) 18:09
masak timotimo: oh, ouch! yes, "heresy". I blame lack of dinner. 18:10
FROGGS IIRC rebuilding nqp on jvm takes about 3min, on optimized moar only 1.2minutes
moritz (though I'm pretty sure that build times for the JVM are higher than for MoarVM)
timotimo hehe 18:15
got any LHF for me? :\ 18:16
i feel like doing something today, but i don't know what 18:17
FROGGS hmmm, you could skim through RT
timotimo h
i still don't know how to tell rt to never show me tickets from the perl5 queue 18:18
FROGGS just click on the perl6 queue
rt.perl.org/Search/Results.html?Qu...talled%27)
timotimo r: our Int sub foo { fail('a') }; say foo() ~~ Failure
camelia rakudo-jvm 882e33: OUTPUT«a␤ in block at gen/jvm/CORE.setting:889␤ in method bless at gen/jvm/CORE.setting:805␤ in block at /tmp/YRxSn91LD6:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval a…»
..rakudo-parrot 215ba6: OUTPUT«a␤ in method sink at gen/parrot/CORE.setting:11951␤ in method BUILDALL at gen/parrot/CORE.setting:892␤ in method bless at gen/parrot/CORE.setting:812␤ in method new at gen/parrot/CORE.setting:797␤ in method new at gen/parrot/CORE.setting:7…»
timotimo maybe i can figure this out? 18:19
FROGGS good luck :o)
should be at least interesting
timotimo well, it's "just" that it's trying to sink something and causing the failure to be thrown 18:20
japhb__ FROGGS: re: github.com/perl6/nqp/commit/f42871...6a1eeR3743 , can you narrow the #ifdef's at all? e.g. in nqp_shell(), it looks like the two sides of the #ifdef can be narrowed to just 2-3 lines each. Or am I missing something?
FROGGS japhb__: no, the IMCC parser doesn't like it in any other way :( 18:21
japhb__ Oy vey.
FROGGS well, I can try again...
japhb__ shakes his fist at the IMCC parser then.
FROGGS humm, it seems to compile O.o 18:24
dalek p: 044221b | (Tobias Leich)++ | src/vm/parrot/ops/nqp.ops:
#ifdef cleanup, japhb++
18:29
lue hello world o/
FROGGS that is way better :o)
hi lue
18:32 sunnavy left 18:36 sunnavy joined, SamuraiJack left
lue anyone one here know why I get "Could not find sub &postfix:<>" after attempting Exercise 7.4 (jnthn's slides)? Do I need to do 7.5? Did I miss something in the Rubyish version? 18:36
18:37 risou is now known as risou_awy, dansamo2 joined 18:38 risou_awy is now known as risou 18:39 Timbus left 18:41 Timbus joined 18:42 sivoais joined 18:43 tobyink joined
timotimo i'm not sure why it sinks :\ 18:43
it blesses *some* object, then dies sinking something 18:44
18:44 darutoko left
timotimo but the most interesting line points into a block that'd die "invalid buildallplan" 18:45
so that can't be it ...
18:45 spider-mario joined, rindolf left 18:46 rindolf joined 18:50 Mouq left
timotimo i suppose sink works in mysterious ways? 18:50
perhaps the return from the BUILDALL sinks the failure object that it just created and fails? but then you wouldn't be able to create any failures ever 18:51
r: my $f = fail("why?");
camelia rakudo-jvm 882e33: OUTPUT«Unhandled exception: why?␤ in throw (gen/jvm/CORE.setting)␤ in sink (gen/jvm/CORE.setting)␤ in MAIN (gen/jvm/main.nqp:47)␤ in (gen/jvm/main.nqp:41)␤ in (gen/jvm/main.nqp)␤␤»
..rakudo-parrot 215ba6: OUTPUT«why?␤current instr.: 'throw' pc 403494 (src/gen/p-CORE.setting.pir:169509) (gen/parrot/CORE.setting:10561)␤called from Sub 'sink' pc 439547 (src/gen/p-CORE.setting.pir:182733) (gen/parrot/CORE.setting:11951)␤called from Sub 'MAIN' pc 399 (src/gen/p…»
18:51 Mouq joined
timotimo realised he knows nothing about how sink works 18:52
ah, right, there's sink calls added everywhere during compilation
18:54 risou is now known as risou_awy 18:57 zakharyas joined, ajr_ left 19:01 rindolf left 19:03 raiph left 19:04 raiph joined
moritz well, every statement in sink context, hopefully 19:05
timotimo er, yes 19:07
std: my $foo="+";&infix:($foo)(3,4).say
camelia std 8adbc60: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'infix:($foo)' used at line 1␤Check failed␤FAILED 00:01 133m␤»
timotimo this is supposed to work, right? 19:08
Mouq I think it's usually more like 19:10
std: my $foo="+";&infix:[$foo](3,4).say 19:11
camelia std 8adbc60: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'infix:[$foo]' used at line 1␤Check failed␤FAILED 00:01 133m␤»
Mouq But I'm not sure
std: &infix:['+'](3,4).say
camelia std 8adbc60: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'infix:['+']' used at line 1␤Check failed␤FAILED 00:01 131m␤»
Mouq r: &infix:['+'](3,4).say
camelia rakudo-parrot 215ba6, rakudo-jvm 882e33: OUTPUT«7␤» 19:12
moritz p: my $op = '+'; say &::("infix:$op")(3, 4)
camelia rakudo-parrot 215ba6: OUTPUT«No such symbol '&::infix:+'␤ in method <anon> at gen/parrot/CORE.setting:11948␤ in any at gen/parrot/Metamodel.nqp:2691␤ in any find_method_fallback at gen/parrot/Metamodel.nqp:2679␤ in any find_method at gen/parrot/Metamodel.nqp:946␤ in …»
moritz p: my $op = '+'; say ::("&infix:$op")(3, 4) 19:13
camelia rakudo-parrot 215ba6: OUTPUT«No such symbol '&infix:+'␤ in method <anon> at gen/parrot/CORE.setting:11948␤ in any at gen/parrot/Metamodel.nqp:2691␤ in any find_method_fallback at gen/parrot/Metamodel.nqp:2679␤ in any find_method at gen/parrot/Metamodel.nqp:946␤ in an…»
Mouq p: my $op = '+'; say &::("infix:<$op>")(3, 4)
camelia rakudo-parrot 215ba6: OUTPUT«7␤»
moritz Mouq++ # that would have been my next attempt
19:13 grondilu joined
grondilu rn: say Blob.new 19:13
camelia rakudo-jvm 882e33: OUTPUT«java.lang.OutOfMemoryError: Java heap space␤ in (gen/jvm/CORE.setting)␤ in (gen/jvm/ModuleLoader.nqp:349)␤ in load_setting (gen/jvm/ModuleLoader.nqp:340)␤ in (src/Perl6/World.nqp:304)␤ in load_setting (src/Perl6/World.nqp:300)␤ in (src…»
..rakudo-parrot 215ba6: OUTPUT«Buf:0x<>␤»
..niecza v24-98-g473bd20: OUTPUT«===SORRY!===␤␤Undeclared name:␤ 'Blob' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit…»
19:16 virtualsue left 19:22 ajr joined, ajr is now known as Guest38100, Guest38100 is now known as ajr_
jaffa4 Hi all I am trying to traverse a parse tree made npq Perl6 grammar 19:25
Mouq jaffa4: can you be more specific? 19:28
jaffa4 thanks, something came up , I may be back 19:33
Moug: here? 19:40
grondilu Do you guys know about OpenCog? I've been reading about it lately, and I found a few concepts are related to Perl6 development, imho. Here is for instance a blog article about hypergraphs and their relation to other stuff such as category theory (you guys love category theory, don't you?) blog.opencog.org/2013/03/24/why-hypergraphs/ 19:44
geekosaur suspects spelling their nick correctly would help 19:45
jaffa4 how to check if a method or property exists? 19:47
moritz jaffa4: with can
jaffa4 an example? 19:48
moritz r: if Int.^can('sqrt') { say "yes' }
camelia rakudo-jvm 882e33: OUTPUT«(timeout)» 19:49
..rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/ZKsLgBr3g2␤Unable to parse expression in double quotes; couldn't find final '"' ␤at /tmp/ZKsLgBr3g2:1␤------> if Int.^can('sqrt') { say "yes' }⏏<EOL>␤ expecting any…»
moritz p: if Int.^can('sqrt') { say "yes" }
camelia rakudo-parrot 215ba6: OUTPUT«yes␤»
moritz p: if Int.can('sqrt') { say "yes" }
camelia rakudo-parrot 215ba6: OUTPUT«yes␤»
19:50 REPLeffect left
jaffa4 What if it is from nqp? 19:50
No such method 'dispatch:<.^>' for invocant of type 'NQPMatch' 19:51
Mouq Class.HOW.can(Class, 'method')
Hypothetically… 19:52
19:52 logie joined
Mouq nqp: grammar A {}; say('Yup') if A.HOW.can(A,'parse') 19:54
nqp: grammar A {}; say('Nope') if !A.HOW.can(A,'eat')
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«Yup␤»
nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«Nope␤»
FROGGS nqp: grammar A {}; say('Nope') if !nqp::can(A, 'eat') 19:55
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«Nope␤»
FROGGS nqp: grammar A {}; say('Yup') if nqp::can(A, 'parse')
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«Yup␤»
jaffa4 I have a nqp object , I would like to know its type in Perl 6 19:56
moritz $obj.HOW.name($obj) 19:57
19:57 Khisanth joined
jaffa4 indeed 19:59
dalek ecs: b608ca3 | softmoth++ | S17-concurrency-jnthn.pod:
Use Thread.start() consistently (vs. Thread.run())

Most examples use Thread.start(), but the early description uses Thread.run(). These should be consistent; since the method on a thread object is $thread.start(), it seems one less thing to remember to call the class method .start() as well.
20:00
20:01 grondilu left 20:05 REPLeffect joined
masak data point: docs.python.org/2/library/threading.html has .start mean "start the thread's activity", while .run is a callback, meant to be overridden by the thread creator and contain the "thread code" to be run. 20:07
20:15 woolfy joined 20:17 REPLeffect left 20:18 REPLeffect joined, jnap joined
lue just had a vision of time-traveling thread( control)s. It was nonsensical. 20:22
20:23 jnap left
masak jnthn, lizmat, others: I like the .schedule/.schedule_in/.schedule_every troika. reminds me of Rx, and DOM's setTimer/setInterval. 20:24
however, I wonder if those shouldn't be dashes: .schedule-in/.schedule-every
the logic being that they are public and user-visible, not (socially) private and low-level. 20:25
s/logic/rationale/
20:25 virtualsue joined
moritz +1 20:25
masak ok, changing.
lue masak: don't you mean "private and low_level" ? :P 20:26
masak lue: I almost wrote that, yes :)
also, a big +1 from me on making schedulers be the unifying abstraction for all event/thread/async stuffs.
lue +1 as well. /me doesn't know too much about threading, though :) 20:28
masak also, I vote to nuke S17 *now*, and squarely place S17-jnthn-heresy atop its smoldering ruins.
moritz masak: +2 :-)
the old stuff is... LTU (less than useless) 20:29
lue masak: +*
masak ok, I'll do it. 20:30
lue I'd like to hear from the guy who defends current S17, actually :) 20:31
20:31 REPLeffect left
dalek ecs: b5099cb | masak++ | S17-concurrency-jnthn.pod:
[S17-jnthn] dashes, sir.

Dashes look down on underscores, and thumb their noses at them.
Leaving .handle_uncaught for now, as that one does seem low-level.
20:32
ecs: caa2b0a | masak++ | S17-concurrency.pod:
[S17-old] *boom*
ecs: 091aa78 | masak++ | S17-concurrency (2 files):
[S17] jnthn's heresy is the new law
moritz masak++
masak jnthn: handle_uncaught vs uncaught_handler -- did you really intend to spec both, or is one of them a typo for the other? 20:33
nwc10 masak: I assume he's on a $dhh plane, or making a 50 minute connection in Tegel 20:34
dalek ecs: 644f6cb | masak++ | S17-concurrency.pod:
[S17] oops, forgot a dash

Let me just dash back and fix that underscore.
20:34 raiph left
masak nwc10: oh, I was counting on him reading backlog. :) 20:34
good to know, though.
nwc10 he probably will
lue If only we had cyberman^W yoleaux back...
nwc10 but I think he arrives quite late tonight, so not sure when
20:35 dmol left 20:36 zakharyas left 20:38 lizmat joined, risou_awy is now known as risou, REPLeffect joined 20:42 REPLeffect left 20:43 logie left 20:44 REPLeffect joined
moritz off-topic UNIX file system question: how many files would you put into a directory, at most, before you split it up into multiple directories? 20:45
lizmat masak: I appreciate making jnthn S17 law, but the old S17 contains several things not yet covered by S17, such as signals, atomic / critical code blocks, STM
moritz: a few thousand
moritz lizmat: thanks
lizmat e.g. when creating a log file for every second, put all logs of 1 hour in 1 directory (aka 3600 files)
lue moritz: when I get tired of scrolling through ls (*not* ll) output :) 20:46
(s/scrolling through/finding a file in the/ rather) 20:47
20:48 REPLeffect left 20:49 ajr_ left 20:52 ajr joined 20:53 ajr is now known as Guest33453, Guest33453 is now known as ajr_
masak lizmat: I know atomic and (maybe) STM have implementations in Pugs. the rest of the old S17 is pure pie-in-the-sky. like moritz said, LTU. 20:54
lizmat: if, in the unlikely event, we need to specifically refer to details in the old S17, it's easy to find both through Git-on-the-CLI and Github. 20:55
20:57 risou is now known as risou_awy 21:03 REPLeffect joined
lizmat had no idea that S17 was so hated by masak, moritz c.s. to have it nuked at the first possible moment 21:04
masak not so much hate as "it's still there if you need it, in the history where it belongs" 21:05
lizmat as basically the only author of S17 still around here
I'd rather have seen it stripped of all things we've covered now 21:06
and the rest as a memo to look at later
lue is reminded of how masak similarly(?) nuked S32::Temporal 21:07
lizmat fwiw, it feels un #perl6 like to me, to just have it nuked like that
but I guess I will have to get used to that
masak lizmat: what lue said.
lizmat: we've done this before, and it came out all right.
21:07 REPLeffect left
masak lizmat: I disagree about it being un-#perl6. 21:07
lizmat well, then we agree we disagree :-) 21:08
masak no, two rational agents can't agree to disagree :)
lizmat who says I'm rational regarding this ? 21:09
masak lizmat: I feel my reasons for nuking it still hold: I'd rather see a reality-based S17 in the official place than a pie-in-the-sky-based S17.
lue
.oO(If there wasn't already a replacement S17 (and the nuke would leave behind "S17 is currently under construction"), I'd've objected, despite old S17's not-aged-well-ness.)
masak I didn't nuke the falsy S17 out of *history*, only out of the *present*.
21:10 raiph joined
dalek ecs: 7fb7173 | masak++ | S17-concurrency-OLD.pod:
[S17-OLD] resurrect

To make lizmat++ feel better. :)
21:11
21:11 lizmat left, lizmat joined, lizmat left, lizmat joined
lizmat even if you did do it out of the "present", it is hidden from all but the most ardent archivist now 21:12
lue I will say we were probably a bit too abrupt in the vote for replacement. [ "Wanna replace S17?" parallel("YES", "YES", "YES") ]
masak lizmat: see that last commit.
lizmat and so we run the risk of making the same mistakes
masak lizmat: you can stop arguing now ;)
moritz the old mistake was waterfall methodology
masak lizmat: I painted the bikeshed your favorite color.
but seriously, I would advocate removing S17-OLD.pod at the earliest opportunity. 21:13
21:13 REPLeffect joined
lizmat first I'll strip out all of the things covered by the new S17 21:14
lue Maybe we could put a link to *old* S17 on the synopsis index... if the index ever updated anymore.
masak lue++ just provided another reason jnthn's version should be the official one.
lue
.oO(perlcabal.org/syn and feather.perl6.nl/syn *still* don't reflect my months-old "add a link to S99" change :/)
21:15
jaffa4 how to embed a variable in a string as in Perl 5: "${i}th" 21:16
moritz "{$i}th" 21:17
masak lue: clearly there is a script somewhere that needs to be run. 21:18
lue masak: yep :) I just don't where it is (supposed to be), why it's not running anymore, and if I could start it back up again (likely no) 21:19
moritz lue: seems that syn/index.html is still stuck in SVN land :( 21:20
lue O.o
moritz no, actually not
... updated. 21:21
lue \o/ moritz++ 21:22
moritz seems that the mu copy had some local modifications, which caused merge commits on 'git pull'
masak oops
moritz would be happy if he weren't the only one taking care of such things on feather
dalek ecs: e3bc30c | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Mangle the introduction into a "real" S17 intro
masak lizmat++ 21:23
dalek ecs: 05b6aab | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Clarify the $ex parameter on subscribe
21:26
21:27 kaare__ left 21:30 denisboyun joined, dansamo2 left
dalek ecs: efec538 | softmoth++ | S17-concurrency.pod:
Fix minor typos and grammar
21:32
21:33 benabik left
jaffa4 for nqpmatch, should not there be a both list and hash property and should not not they be the same? 21:34
I mean if hash is not empty, then list is not empty
timotimo you mean every entry should be duplicated? 21:35
moritz it might be that NQP stores it all in a hash
jaffa4 I guess
moritz and simply maps $/[0] to $/<0> internally
you'd have to look at the sources to find out
NQP isn't quite Perl 6, you know? :-) 21:36
jaffa4 because I managed to walk through the parse tree 21:37
but only the hash line returns something.
and some hash keys return the same underlying tree 21:39
eternaleye lizmat: In the new S17, the "Grammar wise" bit in subscribables doesn't seem to match the text above it
lizmat eternaleye: will look at that 21:40
eternaleye lizmat: I parse the text above it as equivalent to either 'next [ last [ fail ]? ]?' or 'next [ [ last ]? fail ]?', but the last doesn't make sense with how optional arguments work. 21:41
21:41 woolfy left
jaffa4 eg.level:0 use of uninitialized value of type Any in string context in sub warn at src\gen\CORE.setting:663 entering by key: NQPMatch bool:1 Show would you compare if two npq object are the same? 21:42
eternaleye lizmat: What'
gha
jaffa4 ow would you compare if two npq object are the same?
lizmat =:= 21:43
eternaleye lizmat: The grammar snip there instead seems to say there are zero-or-more next callables, and at-most-one-of last and fail may be specified
arnsholt Same object is =:=, eq and == for string/numeric equality
lizmat not sure that works in nqp thourgh
arnsholt =:= is in the NQP grammar. I just checked =) 21:44
21:44 virtualsue left
masak nqp: say([] =:= []) 21:44
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«0␤»
masak \o/
nqp: say(42 =:= 42)
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«0␤»
masak #perl6 /o\
jaffa4 how would you comprare if two npq objects are the same in Perl 6?
masak jaffa4: =:= 21:45
moritz === I'd hope
masak um, yeah.
=== does not work in nqp, though.
I guess object equality is not necessary to implement Rakudo ;)
moritz =:= is container equality, and its use in NQP is really a cheat/mistake/screwup 21:46
masak jaffa4: define "the same" here.
jaffa4 same npq object
masak jaffa4: is what you want really deep equality, not object identity?
jaffa4 same pointer
object identity
masak ok.
I don't know how to do that in NQP.
jaffa4 in Perl 6, I have nqp objects 21:47
masak from an OO purist's perspective, you shouldn't really be asking that question, though :)
timotimo .o( he was asking too many wrong questions ... )
masak as in, who cares if it's the same instance? that's an implementation detail at best.
moritz jaffa4: does === work?
masak moritz: no, not in NQP. 21:48
moritz masak: the question is about Perl 6, with objects leaked out from NQP
masak oh!
jaffa4 The truth is put them into a hash... I would like to check if the object has been storedi in the hash. Should that work correctly?
masak moritz: is there a way to test that on camelia? 21:49
moritz masak: yes, but it's not trivial
p: my $x := nqp::list(); say $x === $x;
camelia rakudo-parrot 215ba6: OUTPUT«False␤»
moritz jaffa4: you could always just compare .from 21:50
we usually do not capture zero-width matches
jaffa4 from can be the same
moritz or .from/.to combination 21:51
masak moritz: I would almost consider the above a rakudobug. 21:52
moritz masak: almost, yes :-)
masak of the infix:<===> operator.
21:53 avuserow joined
dalek ecs: a6275df | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
There is no event loop, only subscribables:$*POSIX
21:53
jaffa4 almost??????
masak jaffa4: yes, almost!!!!!!
jaffa4 Why? 21:54
masak jaffa4: it's a "the question is who's to be master" situation.
21:54 ajr_ left
jaffa4 masak: tell me more about this... who is who... 21:54
moritz because it uses internals (nqp::), and thus it cheats 21:55
p: say nqp::null()
camelia rakudo-parrot 215ba6: OUTPUT«(Mu)␤»
moritz nqp: nqp::say(nqp::null())
camelia nqp-jvm: OUTPUT«java.lang.NullPointerException␤ in (/tmp/vX2ecpthN6:1)␤ in (gen/jvm/stage2/NQPHLL.nqp:1100)␤ in eval (gen/jvm/stage2/NQPHLL.nqp:1086)␤ in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1292)␤ in command_eval (gen/jvm/stage2/NQPHLL.nqp:1196)␤ in command_line…»
..nqp-parrot: OUTPUT«Null PMC access in get_string()␤current instr.: '' pc 42 ((file unknown):61133864) (/tmp/cw_xAb4tVJ:1)␤»
..nqp-moarvm: OUTPUT«␤»
moritz this isn't an NQP bug, even though it's a Null PMC access / Null pinter exception
masak jaffa4: what wins, the fact that infix:<===> semantics should answer True on all X === X, or the fact that nqp:: are internals, and (a) fraught with bootstrapping problems even on a good day, and (b) not very highly prioritized to get perfect in these cases.
jaffa4 ok 21:57
what is the idea behidn this: %h1<a>:exist? 21:58
lizmat jaffa4: you mean :exists ? 21:59
masak r: my %h = a => 42; say %h<a> :exists; say %h<b> :exists;
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
..rakudo-parrot 215ba6: OUTPUT«True␤False␤»
jaffa4 I mean syntactilly what is :?
masak jaffa4: it's an adverb.
jaffa4: it modifies a preceding operator, in this case .<> 22:00
lizmat it's a short way to write "exists => True"
timotimo oh man r-j, you gotta step your game up
lizmat: so i could write %h<a> exists => True, too?
lizmat timotimo: jnthn is aware of the r-j problem
timotimo: no, because that's not how the syntactic sugar works
timotimo :) 22:01
lizmat but for someone coming from p5, :foo is really foo => True, and :foo<bar> is really foo => 'bar', and :$foo is really foo => $foo
timotimo yeah, but %h1<a>:exists isn't really %h1<a> exists => True 22:02
i thought he was specifically asking for that
Mouq p: my %h = a => 42; %h.&postcircumfix«< >»('a', exists => True).say
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/Gnk2kSbwHN␤Undeclared name:␤ &postcircumfix used at line 1␤␤»
Mouq p: my %h = a => 42; %h.&postcircumfix:«< >»('a', exists => True).say
avuserow I've been reading the new S17, and was curious why there is a schedule_with_catch({...}, -> $ex {...}) when you (presumably) could just do schedule({...; CATCH { ... }})
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/itEDjMm8PM␤Undeclared name:␤ &postcircumfix:<< >> used at line 1␤␤»
Mouq Hurm
avuserow rp: {say "alive"; die "foo"; say "ERR"; CATCH {say "got here";}} 22:03
camelia rakudo-parrot 215ba6: OUTPUT«alive␤got here␤foo␤ in block at /tmp/ZENS3Sn1j1:1␤ in any at /tmp/ZENS3Sn1j1:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles at gen/parrot/stage2/NQPHLL.nqp:1339␤ …»
lizmat p: my %h = a => 42; %h.&postcircumfix:«{ }»('a', exists => True).say
avuserow rp: {say "alive"; die "foo"; say "ERR"; CATCH {default {say "got here";}}}
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!===␤Null PMC access in get_bool()␤»
rakudo-parrot 215ba6: OUTPUT«alive␤got here␤»
Mouq lizmat: Oh, duh
p: my %h = a => 42; %h.&postcircumfix:<{ }>('a', exists => True).say 22:04
camelia rakudo-parrot 215ba6: OUTPUT«True␤»
Mouq The guillemets should work though…
lizmat jaffa4: %h<a>:exists is syntactic sugar for what Mouq++ just showed 22:05
timotimo to be honest, i find that a bit too magical; in a way the adverb seems too far removed from the circumfix to clearly be so directly influencing it 22:06
traditionally it would look like the :exists would operate on the result of the postcircumfix
22:07 gaussblurinc_ joined
Mouq traditionally, it would be two terms in a row :p 22:07
jaffa4 IS there way to get integer address of an object?
lue timotimo: I imagine it's the best way to provide other arguments to functions with funny syntax. And I do disagree with you on the too magical front :)
jaffa4: perlcabal.org/syn/S02.html#The_ObjAt_Type (no, because 22:08
memory is a funny thing, cross-platform)
r: say 42.WHICH; say 42.WHICH.WHAT; 22:09
camelia rakudo-jvm 882e33: OUTPUT«java.lang.OutOfMemoryError: Java heap space␤ in (gen/jvm/CORE.setting)␤ in (gen/jvm/ModuleLoader.nqp:349)␤ in load_setting (gen/jvm/ModuleLoader.nqp:340)␤ in (src/Perl6/World.nqp:304)␤ in load_setting (src/Perl6/World.nqp:300)␤ in (src…»
..rakudo-parrot 215ba6: OUTPUT«Int|42␤(ObjAt)␤»
dalek ecs: e7a8d5a | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Fix typo
22:10
ecs: 74566e1 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Stress that we're talking about invocations
jaffa4 ok, bue all
lizmat eternaleye: hope that makes it clearer?
22:10 jaffa4 left
Mouq p: say 4\ .&[+]: 5 22:10
camelia rakudo-parrot 215ba6: OUTPUT«9␤»
lue p: my Int|Str $a; $a = 42; $a = "dna"; 22:11
22:11 lizmat left
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!===␤Type 'Int' is not declared. Did you mean 'int'?␤at /tmp/tzxBj8BQzl:1␤------> my Int⏏|Str $a; $a = 42; $a = "dna";␤Malformed my␤at /tmp/tzxBj8BQzl:1␤------> my Int⏏|Str $a; $…» 22:12
lue ...
22:12 lizmat joined, Rotwang left
lue I was not expecting that error upon polymorphic types attempt. 22:12
Mouq std: my Int|Str $a; $a = 42; $a = "dna";
camelia std 8adbc60: OUTPUT«===SORRY!===␤Multiple prefix constraints not yet supported at /tmp/mC93PTTzwZ line 1:␤------> my Int⏏|Str $a; $a = 42; $a = "dna";␤Malformed my at /tmp/mC93PTTzwZ line 1:␤------> my Int⏏|Str $a; $a =…»
lue P: my Int|Str $a; $a = 42; $a = "dna"; # just ooc 22:13
camelia pugs: OUTPUT«Segmentation fault␤»
lue n: my Int|Str $a; $a = 42; $a = "dna"; # just ooc
camelia niecza v24-98-g473bd20: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/rZuDdD7NlB line 1:␤------> my⏏ Int|Str $a; $a = 42; $a = "dna"; # just␤␤Parse failed␤␤»
masak using junctions for ambiguous types like that has fallen out of fashion. 22:14
please use subset types. 22:15
lue r: class FooIntStr is Int is Str { }; my FooIntStr $a; $a = 42; $a = 'dna';
camelia rakudo-jvm 882e33: OUTPUT«java.lang.OutOfMemoryError: Java heap space␤ in (gen/jvm/CORE.setting)␤ in (gen/jvm/ModuleLoader.nqp:349)␤ in load_setting (gen/jvm/ModuleLoader.nqp:340)␤ in (src/Perl6/World.nqp:304)␤ in load_setting (src/Perl6/World.nqp:300)␤ in (src…»
..rakudo-parrot 215ba6: OUTPUT«Type check failed in assignment to '$a'; expected 'FooIntStr' but got 'Int'␤ in block at /tmp/O3hJzF4A03:1␤ in any at /tmp/O3hJzF4A03:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in a…»
lue notes to self once more: always always always use p:
masak lue: that trivially fails to typecheck.
eternaleye lizmat: Ah, yes. That does make it clear.
lue I could swear that's how RatStr and friends do it...
masak lue: I meant 'subset IntOrStr of Any where { $_ ~~ Int || $_ ~~ Str } 22:16
'
lue r: class FooIntStr is Int is Str { }; my FooIntStr $a; $a = '42';
masak lue: yes, but note that a RatStr is a Rat *and* a Str, not a Rat *or* a Str.
camelia rakudo-jvm 882e33: OUTPUT«java.lang.OutOfMemoryError: Java heap space␤ in (gen/jvm/CORE.setting)␤ in (gen/jvm/ModuleLoader.nqp:349)␤ in load_setting (gen/jvm/ModuleLoader.nqp:340)␤ in (src/Perl6/World.nqp:304)␤ in load_setting (src/Perl6/World.nqp:300)␤ in (src…» 22:17
..rakudo-parrot 215ba6: OUTPUT«Type check failed in assignment to '$a'; expected 'FooIntStr' but got 'Str'␤ in block at /tmp/knTS_QnTkO:1␤ in any at /tmp/knTS_QnTkO:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in a…»
lue That has *got* to be wrong, though.
masak lue: please stop and think.
22:17 benabik joined
lue (what I just did) 22:17
masak instead of trying the same crazy twice.
lue masak: perlcabal.org/syn/S02.html#Allomorp..._semantics
masak r: class FooIntStr is Int is Str { }; say Str ~~ FooIntStr
lue ( there are the ... in the class braces in that link, but that can't mean anything, right? :) ) 22:18
camelia rakudo-jvm 882e33: OUTPUT«java.lang.OutOfMemoryError: Java heap space␤ in (gen/jvm/CORE.setting)␤ in (gen/jvm/ModuleLoader.nqp:349)␤ in load_setting (gen/jvm/ModuleLoader.nqp:340)␤ in (src/Perl6/World.nqp:304)␤ in load_setting (src/Perl6/World.nqp:300)␤ in (src…»
..rakudo-parrot 215ba6: OUTPUT«False␤»
masak lue: there is the problem. you can't store a Str in a FooIntStr container.
22:18 denisboyun left
lue So does Allomorphic Value Semantics mean to say that the {...} is where P6 takes care of the problem? 22:18
lizmat perl-j is a sick puppy atm: gist.github.com/lizmat/7295532 22:19
masak lue: note that the spec you linked never tries to store a Str in a RatStr.
lizmat jnthn: I hope this helps you
the fact that it ran for 17 seconds wallclock, but burned 41+ seconds CPU, seems very suspect to me 22:20
22:20 denisboyun joined, spider-mario left
lue r: class FooIntStr is Int is Str { }; my FooIntStr $a; $a = FooIntStr('42'); # me suspects the lack of a relevant 'new' breaks this. 22:21
camelia rakudo-jvm 882e33: OUTPUT«java.lang.OutOfMemoryError: Java heap space␤ in (gen/jvm/CORE.setting)␤ in (gen/jvm/ModuleLoader.nqp:349)␤ in load_setting (gen/jvm/ModuleLoader.nqp:340)␤ in (src/Perl6/World.nqp:304)␤ in load_setting (src/Perl6/World.nqp:300)␤ in (src…» 22:22
..rakudo-parrot 215ba6: OUTPUT«No such method 'FooIntStr' for invocant of type 'Str'␤ in any at gen/parrot/BOOTSTRAP.nqp:1674␤ in any at gen/parrot/BOOTSTRAP.nqp:1669␤ in block at /tmp/4TncmJDov4:1␤ in any at /tmp/4TncmJDov4:1␤ in any at gen/parrot/stage2/NQPHLL.nq…»
lue gah
lizmat wishes #perl6 a good night, long decommute coming up tomorrow
lue p: class FooIntStr is Int is Str { }; my FooIntStr $a; $a = FooIntStr.new('42')
camelia rakudo-parrot 215ba6: OUTPUT«Default constructor for 'FooIntStr' only takes named arguments␤ in method new at gen/parrot/CORE.setting:800␤ in method new at gen/parrot/CORE.setting:795␤ in block at /tmp/j1syDCxYOE:1␤ in any at /tmp/j1syDCxYOE:1␤ in any at gen/parrot…»
Mouq night lizmat
lue lizmat o/
masak: I think my brain been thoroughly de-broken now in this regard :) 22:23
masak 'night, lizmat
lue: the section in S02 hand-waves a working .new 22:24
lue masak: yes. I noticed that when I notice the braces came with "more to come" ellipses :)
*noticed
Mouq Ohhhhhh! 22:25
p: &circumfix:«{"{ }"}»(4,5).say # :D
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!===␤Null PMC access in get_bool()␤»
Mouq :(
But, anyway, «» interpolate {}, so duh
lue p: &circumfix:«\{ \}»(4,5).say # :D 22:26
camelia rakudo-parrot 215ba6: OUTPUT«("4" => 5).hash␤»
lue Mouq: you interpolated a block containing a string containing an interpolated block :)
Mouq ._.
22:26 kivutar joined
Mouq p: &circumfix:«{'{ }'}»(4,5).say # ? 22:27
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!===␤Null PMC access in get_bool()␤»
lue p: &circumfix:«'{ }'»(4,5).say
camelia rakudo-parrot 215ba6: OUTPUT«("4" => 5).hash␤»
Mouq I think the problem besides my brainos is that {...} isn't the compile-time-value it needs
22:29 avuserow left
masak I think it's just a case of an empty string. 22:30
p: &circumfix:«»(4,5).say 22:31
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/H5MHAALPeA␤Undeclared name:␤ &circumfix:<> used at line 1␤␤»
lue r: say «{4 + 2} 4+2»
camelia rakudo-jvm 882e33: OUTPUT«java.lang.OutOfMemoryError: Java heap space␤ in (gen/jvm/CORE.setting)␤ in (gen/jvm/ModuleLoader.nqp:349)␤ in load_setting (gen/jvm/ModuleLoader.nqp:340)␤ in (src/Perl6/World.nqp:304)␤ in load_setting (src/Perl6/World.nqp:300)␤ in (src…»
..rakudo-parrot 215ba6: OUTPUT«64+2␤»
lue p: say ‹{4 + 2} 4+2›
masak p: &circumfix:« »(4,5).say
camelia rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/cdXXaK171j␤Two terms in a row␤at /tmp/cdXXaK171j:1␤------> say ⏏‹{4 + 2} 4+2›␤ expecting any of:␤ argument list␤ prefix or term␤ pref…»
rakudo-parrot 215ba6: OUTPUT«===SORRY!=== Error while compiling /tmp/WF_OkqNYsE␤Undeclared name:␤ &circumfix:<> used at line 1␤␤»
22:31 tobyink left
lue clearly, I think ‹› should be the single-quote form of «», and thus make <> the Texas equiv. ‹›/<> «»/<<>> :) 22:32
dalek p: e56b199 | (Tobias Leich)++ | / (2 files):
apped nqp::spawn, bumped moar revision
22:34
22:35 rurban left, BenGoldberg joined 22:38 FROGGS left 22:39 risou_awy is now known as risou 22:43 gaussblurinc_ left 22:46 raiph left 22:55 risou is now known as risou_awy 22:56 raiph joined 23:01 cognominal__ is now known as cognominal
dalek ast: 476f04f | lue++ | S02-literals/quoting-unicode.t:
Add test to ensure 「...」 is shortform for Q[...]

Currently skipped in rakudo to allow the test file to run.
23:11
23:16 lizmat left 23:22 dmol joined
masak 'night, #perl6 23:26
lue masak o/ 23:27
23:28 kivutar left 23:36 [particle] joined 23:38 dmol left
Mouq is trying to implement `is parsed` 23:46
Aaaaaaannnd Null PMC access in get_string() 23:50
dalek rl6-roast-data: 1867c22 | coke++ | / (3 files):
today (automated commit)
23:55