»ö« 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 1Unhandled 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/PnIEjmyufVUndeclared 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/ge8VOTYfMwUndeclared 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 failedFAILED 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 failedFAILED 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 1Check failedFAILED 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 1Check failedFAILED 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 1Check failedFAILED 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 1Unhandled 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/ZKsLgBr3g2Unable 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«TrueFalse» | |||
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/Gnk2kSbwHNUndeclared 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/itEDjMm8PMUndeclared 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«alivegot herefoo 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«alivegot 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 myat /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"; # justParse 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/H5MHAALPeAUndeclared 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/cdXXaK171jTwo terms in a rowat /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_OkqNYsEUndeclared 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 |