»ö« 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. |
|||
00:00
Mouq joined
|
|||
Mouq | nqp: 1+"abcd" | 00:04 | |
camelia | ( no output ) | ||
00:08
aindilis left
00:09
aindilis joined
00:15
Psyche^_ left
00:17
Psyche^ joined
|
|||
Mouq | nqp: nqp::croak("wait a minute") | 00:19 | |
camelia | nqp-moarvm: OUTPUT«No registered operation handler for 'croak'compile_op» | ||
..nqp-parrot: OUTPUT«Error while compiling block : Error while compiling op croak (source text: "nqp::croak(\"wait a minute\")"): No registered operation handler for 'croak'current instr.: '' pc 55111 (gen/parrot/stage2/QAST.pir:20131) (gen/parrot/stage2/QAST.nqp:3320)» | |||
..nqp-jvm: OUTPUT«No registered operation handler for 'croak' in compile_op (gen/jvm/stage2/QAST.nqp:231) in as_jast (gen/jvm/stage2/QAST.nqp:3696) in as_jast (gen/jvm/stage2/QAST.nqp:2968) in (gen/jvm/stage2/QAST.nqp:3665) in compile_all_the_stmts (gen/jvm/stage2…» | |||
BenGoldberg | npq: say(1+"abcd") | 00:22 | |
Mouq | nqp: say(1+"abcd") | 00:28 | |
00:28
wbill joined
|
|||
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«1» | 00:28 | |
Mouq | .oO( Not Perl? — Quite. ) |
||
diakopter | Not Quit Perl | ||
Not Quiet Perl | 00:29 | ||
No Quip Perl | |||
colomon | No Quip Perl will never happen. | ||
00:34
dmol left
|
|||
Mouq | Never Queenside-castle, Pierre! | 00:35 | |
r: sub infix:<\x227c>(\a, \b) { 1 + 2 }; say 1 ≼ 2; # backclogged problem | 00:49 | ||
camelia | rakudo-parrot ec29c0, rakudo-jvm 882e33: OUTPUT«False» | ||
colomon | r: say 1 ≼ 2 | 00:52 | |
camelia | rakudo-parrot ec29c0, rakudo-jvm 882e33: OUTPUT«False» | ||
colomon | r: sub infix:<+>(\a, \b) { 42; }; say 1 + 2 | 00:53 | |
camelia | rakudo-parrot ec29c0, rakudo-jvm 882e33: OUTPUT«42» | ||
colomon | interesting | ||
r: sub infix:<≼>(\a, \b) { 1 + 2 }; say 1 ≼ 2; # backclogged problem | 00:54 | ||
camelia | rakudo-parrot ec29c0, rakudo-jvm 882e33: OUTPUT«3» | ||
colomon | .x227c | ||
BenGoldberg | r: sub infix:<\x227>(\a, \b) { 1 + 2 }; say 1 [\x227] 2; | ||
camelia | rakudo-parrot ec29c0, rakudo-jvm 882e33: OUTPUT«3» | ||
BenGoldberg | preflex: seen yoleaux | 00:55 | |
preflex | yoleaux was last seen on #perl6 1 day, 5 hours, 33 minutes and 17 seconds ago, saying: 18:23Z <diakopter> Mouq: awesome work on stdsigspace Mouq++ | ||
lue | r: say 1 ≤ 2; say 3 ≠ 3; | 00:56 | |
camelia | rakudo-parrot ec29c0: OUTPUT«===SORRY!=== Error while compiling /tmp/O8vbPCHmvcTwo terms in a rowat /tmp/O8vbPCHmvc:1------> say 1 ⏏≤ 2; say 3 ≠ 3; expecting any of: postfix infix stopper infix o…» | ||
..rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/5P2n_iD4fATwo terms in a rowat /tmp/5P2n_iD4fA:1------> say 1 ⏏≤ 2; say 3 ≠ 3; expecting any of: postfix infix stopper infix or m…» | |||
lue | ._. | ||
BenGoldberg | r: say '≼'.ord | ||
camelia | rakudo-parrot ec29c0, rakudo-jvm 882e33: OUTPUT«8828» | ||
BenGoldberg | r: say '≤'.ord | ||
camelia | rakudo-parrot ec29c0, rakudo-jvm 882e33: OUTPUT«8804» | ||
BenGoldberg | r: say "\x2654" ... "\x265f" | 00:59 | |
camelia | rakudo-parrot ec29c0, rakudo-jvm 882e33: OUTPUT«♔ ♕ ♖ ♗ ♘ ♙ ♚ ♛ ♜ ♝ ♞ ♟» | ||
01:04
betterwo1ld joined,
gabriel__ joined,
huf_ joined,
gabriel__ is now known as Guest40800
01:08
huf left,
betterworld left,
_sri left
01:12
Mouq left
01:17
vael joined
02:16
ilogger2 joined,
ChanServ sets mode: +v ilogger2
02:19
raiph joined
|
|||
raiph | rurban: did you see this (and following exchange with jnthn)? irclog.perlgeek.de/perl6/2013-10-16#i_7722276 | 02:19 | |
02:22
raiph left
|
|||
lue | O.o ilogger2 was gone for hour ‽‽ | 02:28 | |
*an hour | 02:29 | ||
02:46
_ilbot joined
03:00
Mouq joined
03:04
raiph joined
03:06
Mouq left
|
|||
raiph | p5eval: say 1 | 03:08 | |
p5eval | raiph: 11 | ||
BenGoldberg blinks | |||
p5eval: print 1 | 03:09 | ||
p5eval | BenGoldberg: 11 | ||
BenGoldberg | p5eval: print 2 | ||
p5eval | BenGoldberg: 21 | ||
BenGoldberg | p5eval: print "\r" | ||
p5eval | BenGoldberg: 1 | ||
BenGoldberg | p5eval: print "\b" x 3 | ||
p5eval | BenGoldberg: 1 | ||
raiph | is it possible to use p5eval with /msg? | ||
BenGoldberg | p5eval: help | 03:10 | |
p5eval | BenGoldberg: help | ||
raiph | (i get no response in a privmsg session with camelia) | ||
(to "p5eval: say 1"; whereas I do to "r: say 1") | |||
BenGoldberg | p5eval is a seperate bot from camelia | 03:11 | |
If you type p5eval: foo while privmsg-ing with camelia, the p5eval bot doesn't see it. | |||
raiph | k | 03:12 | |
BenGoldberg | The only reason it responds *here* on #perl6, is because it has /join-ed the channel, and sees what we are (publicly) typing | 03:13 | |
raiph | heh. i've used dozens of irc lines to try avoiding spamming the channel :) | 03:14 | |
p5eval: say $?BINGO | 03:15 | ||
p5eval | raiph: No output | ||
raiph | p5eval: say $?%(BINGO | ||
p5eval | raiph: ERROR: syntax error at (eval 7) line 2, at EOF | ||
lue | BenGoldberg: who authorized that kind of sentience for p5eval? :) | 03:18 | |
03:32
cognominal joined
|
|||
raiph | in p5 code, $?FOO is the "special variable" $? followed without a space by the "bareword" FOO. what does a variable followed by a bareword *mean* in p5? if $? and FOO are defined, how is "say $?FOO" interpreted? | 03:46 | |
p5eval: $? = "boo"; FOO = "bar"; say $?FOO | 03:47 | ||
p5eval | raiph: ERROR: Can't modify constant item in scalar assignment at (eval 7) line 1, at EOF | ||
raiph | p5eval: FOO = "bar"; say $?FOO | 03:48 | |
p5eval | raiph: ERROR: Can't modify constant item in scalar assignment at (eval 7) line 1, at EOF | ||
raiph | p5eval: $? = "boo"; say $?FOO | ||
p5eval | raiph: No output | ||
raiph | p5eval: $? = "boo"; sub FOO { say "bar" }; say $?FOO | ||
p5eval | raiph: bar | ||
lue | raiph: I assume this is why Perl 6 doesn't follow that behavior :) | 03:51 | |
raiph | lue: i was surprised to see p5eval interpret it. i thought it would reject it as ttiar | 04:05 | |
04:33
dansamo joined
04:41
preflex_ joined,
ChanServ sets mode: +v preflex_
04:42
preflex_ is now known as preflex
|
|||
moritz | lue: for release R* you just need commit access to rakudo/star, not rakudo/rakudo | 05:12 | |
lue: and for rakudo/star you don't need a CLA | |||
lue: in fact I've just given you a commit bit | 05:13 | ||
lue | moritz: ooh. | ||
moritz | lue: in that repo, tools/star/release-guide.pod contains instructinos | ||
lue | moritz: does it need to happen RIGHT NOW or could it wait for a few hours? It's getting late here (not that I couldn't stay up a while longer :P). | 05:15 | |
moritz | lue: no hurry; should just happen this month | 05:27 | |
r: say Date.new(2013, 10, 31) - Date.today | |||
camelia | rakudo-parrot ec29c0, rakudo-jvm 882e33: OUTPUT«4» | ||
lue | One more question: For Step 2, how do I pick the right revisions? Is there a rule of thumb? | 05:28 | |
05:28
SmokeMachine joined
|
|||
moritz | lue: 2013.10 for rakudo and nqp | 05:28 | |
always the released versions | |||
and for parrot, the version that's in nqp's tools/buil/PARROT_REVISION | 05:29 | ||
lue | I had a feeling it was something like that :) . | ||
♘, #perl6 o/ [I just decided arbitrarily that the white horse is for when I say bye to this channel] | 05:34 | ||
TimToady | looks black to me | 05:35 | |
05:36
SmokeMac_ joined
|
|||
lue | r: say "\c[WHITE CHESS KNIGHT] \c[BLACK CHESS KNIGHT]" | 05:37 | |
camelia | rakudo-parrot ec29c0, rakudo-jvm 882e33: OUTPUT«♘ ♞» | ||
05:38
SmokeMachine left
|
|||
TimToady | they should be labelled FOREGROUND and BACKGROUND instead of BLACK and WHITE | 05:40 | |
05:41
SmokeMac_ left,
SmokeMachine joined
05:42
dansamo left
05:45
raiph left
05:46
SmokeMachine left
05:47
SmokeMachine joined
05:52
SmokeMachine left
05:54
aindilis joined
05:59
isBEKaml joined
06:15
isBEKaml left
|
|||
dalek | ar: a4b16fa | moritz++ | tools/star/release-guide.pod: [release guide] clarify which versions to use, lue++ |
06:41 | |
06:46
darutoko joined
06:50
kaare_ joined
07:02
SamuraiJack_ joined
|
|||
Woodi | hi all :) | 07:30 | |
about: < jnthn> And a $!x in a base class will not conflict with a $!x in a subclass. | |||
this is what looks natural for me: www.angelfire.com/tx4/cus/shapes/java.html | 07:31 | ||
what are use cases making "conflicts" important ? anyone is realy redefine priv attributes ? for me, it is bad huffmanization of features... | 07:32 | ||
becouse after instantiation there is no super class - it is just definition sugar | 07:33 | ||
07:34
darutoko left
07:44
_sri joined
|
|||
japhb__ | I'm about to trundle off to bed, but if anyone is looking for a task before I get back, making Buf actually writable would be excellent; it's the next thing blocking me on the protobuf work. | 07:54 | |
That is, if anyone's looking for LHF. Otherwise, I'll attack it myself. :-) | 07:55 | ||
Dream well, * | |||
& | |||
08:01
SamuraiJack_ left,
SamuraiJack_ joined
08:03
dmol joined
08:30
darutoko joined
|
|||
hoelzro | morning #perl6 | 08:33 | |
masak | morning, #perl6 | ||
Woodi: the underlying principle here is that the name of a private attribute is scoped to the class block. | 08:34 | ||
dalek | p: 1b64b46 | (Tobias Leich)++ | tools/build/MOAR_REVISION: bump moar revision |
||
08:35
FOAD joined
|
|||
dalek | p: f76801b | (Tobias Leich)++ | Configure.pl: fix copy&pasto |
08:37 | |
08:48
lizmat joined
|
|||
lizmat | good *, #perl6, again from the T-Dose | 08:49 | |
FROGGS | o/ | 08:50 | |
lizmat | FROGGS: /o | 08:53 | |
08:56
[Sno]_ joined
|
|||
dalek | p: f077bf9 | (Tobias Leich)++ | tools/build/MOAR_REVISION: bump moar rev (unbust dynamic lib loading) |
08:59 | |
09:04
xenoterracide joined
09:07
spider-mario joined
09:11
[Sno] joined,
[Sno]_ left
09:12
ssutch joined
09:25
ssutch left
|
|||
lizmat | r: augment class Cool { method fnirble { say "fnirble" } }; say 42.fnirble # this should work according to S02:1893, no ? | 09:30 | |
synopsebot | Link: perlcabal.org/syn/S02.html#line_1893 | ||
camelia | rakudo-parrot ec29c0: OUTPUT«===SORRY!=== Error while compiling /tmp/HvzV2mXzmBaugment not allowed without 'use MONKEY_TYPING'at /tmp/HvzV2mXzmB:1------> augment class Cool ⏏{ method fnirble { say "fnirble" } }; sa expecting any …» | ||
..rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/CS9XAE_Oiwaugment not allowed without 'use MONKEY_TYPING'at /tmp/CS9XAE_Oiw:1------> augment class Cool ⏏{ method fnirble { say "fnirble" } }; sa expecting any of:…» | |||
09:35
woolfy joined
|
|||
jnthn | Woodi: The point is that you can inherit from something and name your attributes what you like without caring if the base class has one with the same name. In some languages, the attribute storage is like a dictionary/hash, which means they would conflict. I think Java's private has the Perl 6 behavior. | 09:37 | |
masak | yeah. what jnthn said. | 09:40 | |
with roles, however... | |||
10:09
denis_boyun joined
|
|||
Woodi | ok, understood something more now. but my problem is with internal methods of subclasses: pastebin.com/xXhu1zLw | 10:14 | |
10:26
kaare_ left,
kaare_ joined
|
|||
moritz | \o | 10:33 | |
FROGGS | hi moritz | 10:34 | |
10:35
dmol left
|
|||
lizmat | moritz o/ | 10:35 | |
10:35
sqirrel joined
|
|||
masak | Woodi: that is a problem in your expectations, not in Perl 6. | 10:37 | |
dalek | kudo/nom: 0026bfb | (Elizabeth Mattijsen)++ | src/Perl6/Grammar.nqp: Make Cool mutable, as per S02:1893 This just removes the error, this does not fix the subclasses not seeing any augmentation. |
10:38 | |
synopsebot | Link: perlcabal.org/syn/S02.html#line_1893 | ||
10:38
dmol joined
|
|||
masak | Woodi: most of the OOP realizations get that one wrong, and give subclasses special access to the private storage locations of the attributes of the superclass. | 10:38 | |
Woodi: if you want that kind of access, provide accessors. | |||
10:45
xinming joined
10:46
wbill joined
|
|||
masak | Woodi: for more on this, see duckduckgo.com/?q=inheritance+brea...apsulation | 10:48 | |
10:48
dmol left
10:51
dmol joined
|
|||
moritz | .oO( lmddgtfy ) |
10:55 | |
10:57
dmol left
|
|||
masak is happy-go-ducky | 11:00 | ||
dalek | ecs: 5c0b6dd | (Elizabeth Mattijsen)++ | S99-glossary.pod: Add lmddgtfy lemma |
11:02 | |
11:03
dmol joined
|
|||
masak | heh. | 11:03 | |
it's not a gloss just by *one* use! :P | |||
more like a frivolous productive infix. | 11:04 | ||
masak .oO( lmbtfy, lmytfy, lmatfy, lmdbtfy ) | 11:05 | ||
that's <Bing Yahoo/Yandex, Altavista, Baidu> | |||
s/,//g | 11:06 | ||
masak .oO( lm[lmgtfy]fy ) | |||
this reminds me of category theory... | 11:07 | ||
:) | |||
lizmat | "[12:07:29] <masak> this reminds me of category theory..." reminds me of category theory as well :-) | 11:10 | |
moritz | «12:10 < lizmat> "[12:07:29] <masak>I this reminds me of category theory..." reminds me of category theory as well :-)» this reminds me of recursion :-) | 11:13 | |
lizmat | .oO( finally someone took the bait :-) |
||
11:13
xenoterracide left
|
|||
masak | :P | 11:18 | |
you could say that what category theory does is take induction and turn it into a data structure (a category). | 11:19 | ||
moritz | GlitchMr: in your last "Perl 6 changes" blog, you missed the :sigspace change in rakudo, which IMHO is pretty significant (pun intended) | ||
masak .oO( it's significant, so it should take up some space in the blog post ) | 11:21 | ||
11:21
darutoko left
|
|||
lizmat | .oO( maybe it's hidden in the whitespace ) |
11:22 | |
moritz | ok, I should have said "pun indented" :-) | 11:23 | |
masak | there's that recursion again. | 11:24 | |
moritz | lizmat: fwiw I understand the specs that Cool is indeed mutable, but you still need 'use MONKEY_PATCHING;' | ||
(all classes are mutable by default) | |||
GlitchMr: also, the " | 11:26 | ||
Null regular expressions now throw compile time exceptions. | |||
" | |||
links seems to have nothing to do with the link text | |||
lizmat reads up on S12 | 11:28 | ||
masak | GlitchMr++ # doing the "changes" posts week after week | 11:30 | |
moritz | GlitchMr++ indeed | 11:38 | |
moritz needs to check if JSON::Tiny still works after the sigspace changes | |||
Woodi | masak: it is me or there is no "special access to the private storage locations of the attributes of the superclass | 11:41 | |
moritz | there is no special access | 11:42 | |
since the parent class doesn't control who its child classes can be, it doesn't make sense to give them special permissions | |||
Woodi | ..." becouse it subclass instance use OWN storage, just declared via "is also..." | ||
moritz | it's like saying "you can access this attribute ONLY if you wear that funny, yellow hat" | 11:43 | |
Woodi | for me inheriting is just inlining parrent definition and using private storage | ||
moritz | but that's not what it's meant to be | ||
Woodi: storage and types are orthogonal | 11:44 | ||
(mostly) | |||
don't argue with storage when you talk about types | |||
and inheritance is a type feature | |||
Woodi | so instance of subclass include instance of superclass ?? | ||
moritz | what do you mean by "include"? | 11:45 | |
Woodi | for now I see that instantiating subclass makes creates private instance of cuperclass and delegates or calls method on it... | ||
moritz | Woodi: whatever it does, it's an implementation detail you shouldn't care about when discussion semantics | 11:46 | |
Woodi | for me instantiating superclass is like making struct { } with superclass struct definition inilined | ||
moritz | Woodi: you are again conflating the storage and the type/semantics level | 11:47 | |
don't do that. | |||
Woodi | yes, I thinking about what it is under cover. just wanting to avoid method calls | 11:48 | |
masak | Woodi: I just came back from the backlog. you are not yet healed from the damage most other OO languages has done to your thinking about privacy and subclassing. keep trying. :) | 11:49 | |
s/from the/to the/ | |||
Woodi | masak: very pleas, use argument :) | ||
moritz | Woodi: Rakudo's implementation of the P6Opaque representation inlines the parent classes' storage | 11:50 | |
Woodi: but that's totally irrelevant for any discussion of semantics; it's an implementation detail | |||
masak | Woodi: like moritz points out, subclassing is not a structural thing. if you're arguing "they should be visible because it's just a struct", then you're not doing OO and encapsulation. | ||
you're doing C and structs. | |||
Woodi | thats just words to visualize... | ||
moritz | no | 11:51 | |
structs is talking about representation | |||
and representation != type/behavior | |||
masak | Woodi: subclasses can't see the private attributes of super classes. that has nothing to do with the way things are laid out in memory. | ||
Woodi: the limitation is in the *language*, not in memory. | 11:52 | ||
moritz | TODO: teach ufo about perl6-j | 11:54 | |
masak | oh! | ||
mind if I file a github issue about that? | 11:55 | ||
moritz | I compiled my rakudo with --backends=jvm,parrot, so the 'perl6' executable is actually perl6-j | ||
masak: it's your project; the correct question is if *you* mind :-) | |||
masak | why don't we just call the executable 'perl6'? | ||
moritz | and perl6-j doesn't understand --target=pir | ||
masak: which one? | 11:56 | ||
masak | I see the problem. they both get generated, so they can't have the same name :/ | ||
moritz | aye | ||
masak | is it only when you build with several backends that it gets the horrible names? | ||
moritz | so they are called perl6-j and perl6-p, and there's a convenience script called 'perl6' | ||
masak | wut's the convenience script do? | 11:57 | |
moritz | masak: it launches one of the explicitly named binaries | ||
masak | moritz: my original question was "could you please file a github issue about that?", but I changed my mind at the last minute :) | ||
moritz | or more precisely, it's a copy of one of the others | ||
masak | moritz: what needs to be done for the issue to be closed? | ||
11:57
iSlug joined
|
|||
masak | moritz: which one? | 11:57 | |
moritz | masak: 'ufo && make test' should succeed even when the default 'perl6' is a perl6-j | 11:58 | |
Woodi | hmm, still, with just behavior part, and without implementation details, obj.x = z is quite nice, short syntax :) | ||
moritz | masak: if there is only one, than that. If there is more than one, corresponding to the first backend passed to the --backends option | ||
and if the backends are autodetected, the first one that was detected | 11:59 | ||
(so from a user's perspective, essentially "undefined" | 12:00 | ||
12:04
Ulti joined
|
|||
masak | github.com/masak/ufo/issues/8 | 12:04 | |
moritz | p: say ' a s b ' ~~ m:s/^ a* % s $/ | 12:05 | |
camelia | rakudo-parrot 0026bf: OUTPUT«False» | ||
masak | p: say 'a s b ' ~~ m:s/^ a* % s $/ | ||
camelia | rakudo-parrot 0026bf: OUTPUT«False» | ||
masak | p: say 'a s a ' ~~ m:s/^ a* % s $/ | 12:06 | |
camelia | rakudo-parrot 0026bf: OUTPUT«False» | ||
moritz | p: say ' a s b ' ~~ m:s/^ a* % [ s ] $/ | 12:07 | |
camelia | rakudo-parrot 0026bf: OUTPUT«False» | ||
moritz | p: say ' a s b' ~~ m:s/^ a* % [ s ] $/ | ||
camelia | rakudo-parrot 0026bf: OUTPUT«False» | ||
moritz | p: say 'a s b' ~~ m:s/^ a* % [ s ] $/ | ||
camelia | rakudo-parrot 0026bf: OUTPUT«False» | ||
moritz | p: say 'a sb' ~~ m:s/^ a* % [ s ] $/ | ||
camelia | rakudo-parrot 0026bf: OUTPUT«False» | ||
diakopter | moritz: I kindof like lue's suggestion that the perl6 convenience script could take a flag to attempt to use a backend other than the default it calls without the flag | ||
moritz | p: say 'asb' ~~ m:s/^ a* % [ s ] $/ | 12:08 | |
camelia | rakudo-parrot 0026bf: OUTPUT«False» | ||
moritz | n: say 'a s b' ~~ m:s/^ a* % [ s ] $/ | ||
camelia | niecza v24-98-g473bd20: OUTPUT«False» | ||
moritz | diakopter: but then why not use that particular executable righ away? | ||
12:09
denis_boyun left
|
|||
moritz | if you know you want to compile to PIR, use perl6-p | 12:09 | |
tadzik | and what if there are 3 of them :) | ||
perhaps rakudo now wants something equivalent to 'rakudobrew current', as in "what impl am I running anyway" | 12:10 | ||
moritz | n: say 'a s a' ~~ m:s/^ a* % [ s ] $/ | ||
camelia | niecza v24-98-g473bd20: OUTPUT«「a s a」» | ||
tadzik | maybe setting an env variable or so | ||
moritz | p: say 'a s a' ~~ m:s/^ a* % [ s ] $/ | ||
camelia | rakudo-parrot 0026bf: OUTPUT«False» | ||
diakopter | moritz: well, actually that makes me think it should call the default executable always, but the other executable should recognize another backend was requested.. | ||
(.. and exec it instead) | 12:11 | ||
12:11
SamuraiJack_ left
|
|||
lizmat | r: $ perl6 -e 'module A is Int {} # this is a LTA error, right ? | 12:11 | |
moritz | diakopter: let's step back, and ask: what is the use case? | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
..rakudo-parrot 0026bf: OUTPUT«===SORRY!=== Error while compiling /tmp/OBPuIegmjWUnsupported use of $ variableat /tmp/OBPuIegmjW:1------> <BOL>⏏$ perl6 -e 'module A is Int {} # this  expecting any of: statement list…» | |||
moritz | r: modula A is Int { } | 12:12 | |
camelia | rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/N7AjgpNg6lUnexpected block in infix position (two terms in a row, or previous statement missing semicolon?)at /tmp/N7AjgpNg6l:1------> modula A is Int ⏏{ } expecti…» | ||
..rakudo-parrot 0026bf: OUTPUT«===SORRY!=== Error while compiling /tmp/28wKF3QgBnUnexpected block in infix position (two terms in a row, or previous statement missing semicolon?)at /tmp/28wKF3QgBn:1------> modula A is Int ⏏{ } expe…» | |||
moritz | r: module A is Int { } | ||
camelia | rakudo-parrot 0026bf: OUTPUT«===SORRY!=== Error while compiling /tmp/AxHoxFt70AMethod 'add_parent' not found for invocant of class 'Perl6::Metamodel::ModuleHOW'at /tmp/AxHoxFt70A:1------> » | ||
..rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/4Nht8C6cnJMethod 'add_parent' not found for invocant of class 'Perl6::Metamodel::ModuleHOW'at /tmp/4Nht8C6cnJ:1------> » | |||
lizmat | moritz++ for fixing pasto | ||
moritz | lizmat: would be much nicer if it said "modules do not support subclassing; maybe you want to write a class instead?" | ||
lizmat | indeed | ||
diakopter | definitely not a hot path, so worth adding a check for a better error, imho | ||
lizmat | so, how can I find out the "type" of the type object easily? | 12:13 | |
diakopter | moritz: I'll try to nail down what I'm imagining, and get back to you sometime :) | ||
moritz | lizmat: at compile time you can look into $*DECL or so | ||
lizmat | the only way I figured was to take the HOW.perl and then match on (\w+)HOW ? | ||
aha, ok | |||
moritz | lizmat: another approach is to write a role Perl6::HOW::NoInheritance[$kind] { method add_parent(|) { die $kind ~ "s do not support inheritance" } | 12:15 | |
and apply that to ModuleHOW | |||
no idea if that's sane design or not :-) | |||
lizmat | seems to depend on an implementation detail of "add_parent" | 12:16 | |
diakopter hopes it is | |||
moritz | lizmat: well, that's how inheritance is done on the MOP level | ||
lizmat | I guess that's true | ||
moritz | lizmat: and while it is an implementation detail now, it's something we have to spec eventually | ||
otherwise the MOP won't be very usefl | 12:17 | ||
lizmat | ok, so why not simply add "add_parent" to ModuleHow ? | ||
*ModuleHOW | |||
moritz | lizmat: that's what I'm saying, basically, except that PackageHOW and EnumHOW also want the same | 12:18 | |
lizmat | gotcha | ||
moritz | lizmat: so I proprosed to factor it into a role | ||
masak | +1 on Perl6::HOW::NoInheritance | 12:20 | |
diakopter | Perl6::HOW::Infertile | ||
lizmat | Perl6::Metamodel::NoInheritance ? | ||
diakopter | Perl6::HOW::Scrooge | ||
moritz | lizmat: aye | ||
the REPL without readline is no fun :( | 12:21 | ||
masak | moritz: isn't there a way we can include readline semantics, always? | 12:22 | |
moritz | masak: there sure is, but I have no idea how much or little effort that would be | 12:24 | |
like, re-implementing readline in NQP | |||
moritz wants a mobile phone that runs on NQP-OS | |||
diakopter | o_O | 12:25 | |
12:27
sqirrel left
|
|||
lizmat | hmmm.... do I need to add a "use" for the new file somewhere? in BOOTSTRAP.nqp ? | 12:29 | |
moritz | lizmat: doesn't look like it | 12:31 | |
lizmat: they are all mushed together into one file in the build process | |||
lizmat | ah, hmm... | ||
moritz | lizmat: you just have to add it to the list of metamodel sources in tools/build/Makefile-{Parrot,JVM}.in before it is used | ||
lizmat | ack | ||
oops, I shouldn't say that :-) | 12:35 | ||
12:35
_sri left
12:37
_sri joined
|
|||
lizmat | moritz: argh: $parent.HOW.archetypes.inheritable() | 12:45 | |
12:45
dansamo joined
|
|||
lizmat | checks whether it has an "add_parent', and assumes that's ok hen | 12:45 | |
actually $parent.HOW.archetypes.inheritalizable() | 12:46 | ||
12:46
sizz joined,
kaare__ joined
|
|||
moritz | lizmat: then maybe the code that calls add_parent should check that :-) | 12:48 | |
12:50
kaare_ left
|
|||
lizmat | well, indeed, but then I wonder about the usefullness of creating a role for this | 12:50 | |
moritz | agreed | 12:51 | |
oh wait | |||
maybe you need to check the same thing on $package and not on $parent | 12:52 | ||
not sure if the relation is symmetric though | |||
(ie anything that you can inherit from can inherit itself) | |||
12:54
jaffa4 joined
|
|||
jaffa4 | hi all | 12:54 | |
I get a bug Default constructor for 'Path::Util' only takes named arguments | 12:55 | ||
and submethod BUILD($filename) { | |||
That does not look named to me... What can you see? | |||
moritz can see a confused jaffa4 | 12:56 | ||
jaffa4 | rather stuck. | ||
moritz | jaffa4: perlgeek.de/blog-en/perl-6/object-c...ation.html | ||
jaffa4: doc.perl6.org/language/objects | |||
more specifically, doc.perl6.org/language/objects#Obje...nstruction | 12:57 | ||
dalek | nda: 08e09b0 | moritz++ | ext/JSON__Tiny: update JSON::Tiny (whitespace parsing fix) |
13:03 | |
13:05
sqirrel joined
|
|||
jaffa4 | ok.. Passing an object candidate to Mu.bless is deprecated? | 13:11 | |
lizmat | there were some spec changes in that area recently | 13:12 | |
moritz | jaffa4: yes; sadly I haven't updated all the docs yet | ||
jaffa4: but usually that just means to write self.bles(things) instead of self.bless(*, things) | 13:13 | ||
lizmat | de909c2d578b75871a14e59b260c446cd9a691fe to be precise | 13:14 | |
jaffa4 | yes | ||
moritz | lizmat++ # citing your sources | ||
masak .oO( [SHA-1 needed] ) | 13:23 | ||
diakopter | masak: :) | 13:24 | |
jaffa4 | Is there way of matching and regex and puttign captured groups into a variable? | ||
In one step? | |||
lizmat | $/<groupname> ? | 13:26 | |
jaffa4 | $f = ( $filename =~ /[.]([^\\\/.]+?)$/ );? | 13:27 | |
That was in Perl | 13:28 | ||
moritz | and what happens when you do that in Perl 6? | 13:30 | |
(with a Perl 6 regex, of course) | |||
FROGGS | r: my $b = @("abc".match(/.(.)./)); say $b | ||
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«「b」» | ||
moritz | or simply use $/ as an array | ||
or $/.list | |||
or whatever you want to have in the end | 13:31 | ||
FROGGS | r: my ($a, $b, $c) = @("abc".match(/(.)(.)(.)/)); say "$c-$b-$a" | ||
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«c-b-a» | ||
FROGGS | r: my ($a, $b, $c) = "abc".match(/(.)(.)(.)/).list; say "$c-$b-$a" | ||
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«c-b-a» | ||
moritz | r: my ($extension) = 'foo.txt' ~~ /\. <( <-[.]>+ $ / | 13:32 | |
camelia | ( no output ) | ||
moritz | r: my ($extension) = 'foo.txt' ~~ /\. <( <-[.]>+ $ /; say ~$extension | ||
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«txt» | ||
13:34
raiph joined
|
|||
masak | r: my $extension = .Str given 'foo.txt' ~~ /\. <( <-[.]>+ $ /; say $extension | 13:39 | |
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«txt» | ||
13:39
pippo joined
|
|||
moritz | masak: that's quite clever | 13:41 | |
masak | it felt a bit original, yes. | 13:42 | |
and you can probably use that to pluck out results, too. | |||
r: my ($a, $b, $c) = @($_) given "abc".match(/(.)(.)(.)/); say "$c-$b-$a" | |||
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«c-b-a» | 13:43 | |
masak | r: my ($a, $b, $c) = .[^3] given "abc".match(/(.)(.)(.)/); say "$c-$b-$a" | ||
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«c-b-a» | ||
FROGGS | r: my ($a, $b, $c) = "abc".match(/(.)(.)(.)/).list.[^3]; say "$c-$b-$a" | 13:44 | |
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«c-b-a» | ||
FROGGS | r: my ($a, $b, $c) = "abc".match(/(.)(.)(.)/).list.[2;0;1]; say "$c-$b-$a" | ||
camelia | rakudo-parrot 0026bf: OUTPUT«WARNINGS:Useless use of constant integer 2 in sink context (line 1)Useless use of constant integer 0 in sink context (line 1)use of uninitialized value of type Any in string context in sub warn at gen/parrot/CORE.setting:674use of uniniti…» | 13:45 | |
..rakudo-jvm 882e33: OUTPUT«WARNINGS:Useless use of constant integer 0 in sink context (line 1)Useless use of constant integer 2 in sink context (line 1)use of uninitialized value of type Any in string contextuse of uninitialized value of type Any in string context--b» | |||
13:45
wbill left
|
|||
FROGGS | r: my ($a, $b, $c) = "abc".match(/(.)(.)(.)/).list.[2,0,1]; say "$c-$b-$a" | 13:45 | |
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«b-a-c» | ||
jaffa4 | ok | 13:46 | |
13:46
nebuchadnezzar joined
|
|||
jaffa4 | How do you format perl6? | 13:46 | |
FROGGS | format? | ||
jaffa4 | the source code | 13:47 | |
clean up, tidy, beautify, indent | |||
FROGGS | manually, like I do with all what I write :o) | ||
masak | a perl6 indenter could definitely be written, and might be very useful. | 13:48 | |
pippo | Hello. Does anybody tried this on rakudo-jvm? my $file = ""; for ^20000 {$file ~= "$_;"}; say $file ~~ /(\d+) +% ';'/; | ||
masak | pippo: ...probably not? | 13:49 | |
pippo | It takes too much long to execute! | ||
FROGGS | no, not exactly this line... why? | ||
pippo: how too muh long? | |||
pippo | Really I do not know. It blows me out before it finishes. Niecza does it in few seconds. | 13:50 | |
masak | jaffa4, FROGGS: like p5's metacpan.org/pod/release/SHANCOCK/...l/Tidy.pod | ||
jaffa4 | no, that spoils the code, I just tried | 13:51 | |
masak | pippo: that sounds like a bug, then. | ||
jaffa4: "spoils"? | |||
13:51
ajr joined,
ajr is now known as Guest42319
|
|||
jaffa4 | the result does not look nice. | 13:51 | |
13:51
Guest42319 is now known as ajr_
|
|||
pippo | I do not know. I arrived at this trying to nderstand why slurping a long file about 20'000 lines takes so long (lines slurp "myfile"). | 13:52 | |
masak | pippo: it would be interesting to see timings of this for <p5 niecza r-p r-j> | 13:53 | |
on your machine. | |||
pippo | I'll do... | 13:54 | |
jaffa4 | what is the meaning of having a sub in a class? | 13:56 | |
lizmat | to call it from more than one method/sub in that class ? | ||
jaffa4 | defining a sub as sub name in a class.... | 13:57 | |
lizmat | example ? | ||
jaffa4 | pastebin.com/1YBkjN4p | 13:58 | |
see sub getbasename | 13:59 | ||
13:59
[Sno] left
|
|||
lizmat | feels like a typo to me | 14:00 | |
or a thinko | |||
FROGGS | nqp-p: nqp::bitand_s("a", "b") # does somebody understand that? | ||
camelia | nqp-parrot: OUTPUT«error:imcc:syntax error, unexpected SREG, expecting '(' ('$S5001') in file '(file unknown)' line 48194631» | ||
lizmat | like trying to make an alternate accessor for "basename" | ||
jaffa4 | I would iike to have static method, is that possible? | 14:01 | |
in a class | |||
pippo | masak: Niecza: real0m7.866s user0m13.510s sys0m0.135s (but changed 20'000 to 10'000 in the for loop) | ||
masak | pippo: nice. | 14:02 | |
pippo | masak: rakudo-jvm I am still waiting after 4 minutes | ||
lizmat | jaffa4: without using multi methods: | 14:03 | |
r: class A { method a { self ?? "instance" !! "static" } }; say A.new.a; say A.a | |||
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«instancestatic» | ||
14:03
guy40 joined
|
|||
masak | pippo: ok, submitting rakudobug. | 14:03 | |
14:05
[Sno] joined
|
|||
masak | jaffa4: subs can be quite useful inside of class blocks. they're not methods; they just do utility things for other routines, like methods usually do. | 14:06 | |
lizmat | jaffa4: using multi methods: | ||
r: class A { multi method a (A:D:) { "instance" }; multi method a (A:U:) { "static" } }; say A.new.a; say A.a | |||
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«instancestatic» | ||
dalek | kudo/nom: aab740c | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/ (3 files): Fix prentending_to_be typo before it proliferates |
14:07 | |
jaffa4 | is smiling face intentional> | ||
masak | depends what you mean by "intentional"... | 14:09 | |
lizmat | jaffa4: that's probably your IRC client interpreting : ) | ||
r: class A { multi method a (A:D: ) { "instance" }; multi method a (A:U: ) { "static" } }; say A.new.a; say A.a | |||
camelia | rakudo-parrot 0026bf, rakudo-jvm 882e33: OUTPUT«instancestatic» | ||
lizmat | that better ? | ||
jaffa4 | yes | 14:10 | |
masak | whatever client you're using... consider switching | ||
:) :) :) :) :) :) | |||
jaffa4 | because? | 14:12 | |
FROGGS | jaffa4: if you see smilies in perl code... how will you know what is really there? | ||
jaffa4 | Is this a feature or a bug? | ||
lizmat | the makers of your IRC client probably consider it a feature | 14:13 | |
14:13
ajr_ left
14:14
guy40 left
|
|||
geekosaur | there's usually some way to turn it off | 14:14 | |
14:14
ajr_ joined
|
|||
geekosaur | www.kvirc.ru/forum/?topic=674.0 | 14:16 | |
14:19
ajr_ left
|
|||
jaffa4 | yes | 14:19 | |
masak | jaffa4: my personal preference for IRC clients tends towards those that don't destroy the text, smilies or otherwise. | ||
14:21
ajr_ joined
14:22
colomon joined
|
|||
jaffa4 | Using an accessor give me different result than printing out a class variable | 14:29 | |
masak | code? | 14:31 | |
jaffa4 | pastebin.com/tkMYGim9 | 14:33 | |
if you run it, the last line willl be strange | 14:34 | ||
say "getbasename2"~Path::Util.getbasename("c:\\g\\c.mp4"); looks ok | 14:35 | ||
but say Path::Util.getbasename("c:\\g\\c.mp4"); | |||
does not | |||
masak | r: class A { method x { if self { say "self" } else { say "not self" } }; A.x; A.new.x | 14:36 | |
camelia | rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/Rr4mnqE4nCUnable to parse expression in block; couldn't find final '}' at /tmp/Rr4mnqE4nC:1------> else { say "not self" } }; A.x; A.new.x⏏<EOL> expecting any of:…» | ||
..rakudo-parrot aab740: OUTPUT«===SORRY!=== Error while compiling /tmp/36S6UXwFYzUnable to parse expression in block; couldn't find final '}' at /tmp/36S6UXwFYz:1------> else { say "not self" } }; A.x; A.new.x⏏<EOL> expecting any …» | |||
masak | r: class A { method x { if self { say "self" } else { say "not self" } } }; A.x; A.new.x | ||
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«not selfself» | 14:37 | |
masak | r: my $filename = "c:\\g\\c.mp4"; ($filename ~~ /<[\\\/]>?(<-[\\\/]>+)$/ )[0] | ||
camelia | ( no output ) | ||
masak | r: my $filename = "c:\\g\\c.mp4"; say ($filename ~~ /<[\\\/]>?(<-[\\\/]>+)$/ )[0] | ||
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«「c.mp4」» | ||
masak | jaffa4: ah. I just ran it locally. | 14:39 | |
jaffa4: it returns the Match object, so what you see is "「c.mp4」". correct? | |||
jaffa4: if you want just the string "c.mp4", you have to stringify the match object at some point. | 14:40 | ||
for example `return ~($filename ~~ /<[\\\/]>?(<-[\\\/]>+)$/ )[0]` | |||
jaffa4 | would not [0] return the first capture group? | ||
masak | yes. | ||
...which is a match object, not a string. | |||
it's match objects all the way down. | |||
FROGGS | hehe | ||
jaffa4 | So I need to use ~ | 14:41 | |
masak | or .Str | ||
jaffa4 | ok | 14:42 | |
14:42
iSlug left
14:43
Mouq joined
|
|||
Mouq | r: my $file = ""; for ^20000 {$file ~= "$_;"}; $file ~~ /(\d+) +% ';'/; say now - BEGIN now | 14:44 | |
camelia | rakudo-parrot aab740: OUTPUT«4.33376393» | ||
..rakudo-jvm 882e33: OUTPUT«5.668» | |||
Mouq | r: my $file = ""; for ^20000 {$file ~= "$_;"}; $file ~~ /(\d+) +% ';'/; say $/[0]; say now - BEGIN now | ||
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«(timeout)» | 14:45 | |
Mouq | ^^^ We're doing something wrong accessing $/, me thinks | ||
dalek | p: 94eaca0 | (Tobias Leich)++ | / (2 files): mapped bitand_s, bitor_s and bitxor_s |
||
jaffa4 | How to get OS type from a variable? | 14:47 | |
FROGGS | r: say $*OS | ||
camelia | rakudo-parrot aab740: OUTPUT«linux» | ||
..rakudo-jvm 882e33: OUTPUT«Linux» | |||
lizmat | hehe | ||
Mouq | nqp: my $file := ""; my $i := 0; while $i < 20000 {$file ~= "$_;"; $i := $i + 1}; $file ~~ /(\d+) +% ';'/; | ||
camelia | nqp-parrot: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near "$file ~= \""current instr.: 'panic' pc 16306 (gen/parrot/stage2/NQPHLL.pir:6018) (gen/parrot/stage2/NQPHLL.nqp:426)» | ||
..nqp-jvm: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near "$file ~= \"" in panic (gen/jvm/stage2/NQPHLL.nqp:377) in FAILGOAL (gen/jvm/stage2/NQPHLL.nqp:384) in blockoid (gen/jvm/stage2/NQP.nqp:983) in pblock (gen/jvm/stage2/NQP.…» | |||
..nqp-moarvm: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near "$file ~= \""panic» | |||
Mouq | nqp: my $file := ""; my $i := 0; while $i < 20000 {$file := "$file$_;"; $i := $i + 1}; $file ~~ /(\d+) +% ';'/; | ||
camelia | nqp-jvm: OUTPUT«java.lang.NullPointerException in (/tmp/1NI8y7kZ_e:1) in (gen/jvm/stage2/NQPHLL.nqp:1098) in eval (gen/jvm/stage2/NQPHLL.nqp:1084) in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1290) in command_eval (gen/jvm/stage2/NQPHLL.nqp:1194) in command_line…» | 14:48 | |
..nqp-moarvm: OUTPUT«No lexical found with name '$_'frame_name_0» | |||
..nqp-parrot: OUTPUT«Null PMC access in get_string()current instr.: '' pc 96 ((file unknown):62) (/tmp/FwXFcPyLul:1)» | |||
Mouq | nqp: my $file := ""; my $i := 0; while $i < 20000 {$file := "$file$i;"; $i := $i + 1}; $file ~~ /(\d+) +% ';'/; | ||
camelia | ( no output ) | ||
..nqp-moarvm: OUTPUT«(timeout)» | |||
Mouq | nqp: my $file := ""; my $i := 0; while $i < 20000 {$file := "$file$i;"; $i := $i + 1}; say($file ~~ /(\d+) +% \;/) | 14:50 | |
pippo | Mouq: how is it possible that Camelia does it in 5 seconds? In my machine camelia it took more that 9minutes and I had java.lang.OutOfMemoryError: Java heap space | ||
Mouq: how is it possible that Camelia does it in 5 seconds? In my machine it took more that 9minutes and I had java.lang.OutOfMemoryError: Java heap space | |||
camelia | nqp-moarvm: OUTPUT«(timeout)» | ||
..nqp-jvm, nqp-parrot: OUTPUT«0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;8…» | |||
Mouq | pippo: I'm not `say`ing $/ | 14:51 | |
That's what I golfed the problem to. And it seems not to be nqp's fault either | |||
pippo | Understand | ||
Mouq goes to get breakfast | 14:52 | ||
pippo | Mouq: I arrived at this because I had a problems loading a file of 20'000 or so line with "lines slurp "myfile"" | 14:53 | |
I thought it was a problem of the "lines" method. I then tried .split("\n") but did not improve either. | 14:54 | ||
Mouq: I finally tried with /(\d+) +% \;/ but neither this helped. | 14:55 | ||
moritz | pippo: how about reading line by line in the first place? | 14:56 | |
open('myfile').lines | 14:57 | ||
pippo | I'll check... | ||
Mouq | (well, just doing that by itself should be pretty fast; .lines is a lazy list ^_^) | ||
r: say [~] "{(state$)++};" xx 20000 | 14:59 | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
..rakudo-parrot aab740: OUTPUT«0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;87;…» | |||
Mouq | r: say "{(state$)++};" x 20000 # duh | 15:00 | |
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0…» | ||
15:00
zakharyas joined
15:07
denis_boyun joined
15:12
raiph left,
denis_boyun left
15:15
rurban joined
15:18
raiph joined
|
|||
pippo | moritz: I have to assign the result of open('myfile').lines to an array to make later comparisons with another one. So I cannot take advantage of the "lines" laziness. | 15:24 | |
colomon | pippo: why can't you lazily bind it to the array? | 15:26 | |
lizmat | my @a := $handle.lines ? | 15:27 | |
Mouq | r: my @ℕ = 0..Inf; say @ℕ[5] | ||
r: my @ℕ := 0..Inf; say @ℕ[5] | |||
moritz | pippo: but you can take advantage of $fh.lines being more efficient (hopefully) than lines($string) | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
..rakudo-parrot aab740: OUTPUT«5» | |||
rakudo-jvm 882e33: OUTPUT«(timeout)» | |||
..rakudo-parrot aab740: OUTPUT«5» | |||
moritz | .u ℕ | 15:28 | |
so, rakudo-jvm doesn't like laziness? | |||
lizmat | looks like :-( | 15:29 | |
moritz | nah, it's just too slow for camelia | 15:33 | |
works fine for me on the command line | 15:34 | ||
Mouq | r: $*EXECUTIONTIME-- for $*TUITS | 15:35 | |
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
..rakudo-parrot aab740: OUTPUT«Dynamic variable $*EXECUTIONTIME not found in method <anon> at gen/parrot/CORE.setting:11921 in any at gen/parrot/Metamodel.nqp:2682 in any find_method_fallback at gen/parrot/Metamodel.nqp:2670 in any find_method at gen/parrot/Metamodel.…» | |||
Mouq | r: $*COMPILATIONTIME-- for $*TUITS # Rather | 15:36 | |
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
..rakudo-parrot aab740: OUTPUT«Dynamic variable $*COMPILATIONTIME not found in method <anon> at gen/parrot/CORE.setting:11921 in any at gen/parrot/Metamodel.nqp:2682 in any find_method_fallback at gen/parrot/Metamodel.nqp:2670 in any find_method at gen/parrot/Metamode…» | |||
pippo | moritz: I have to do some other works in my program i.e. many .slit and and .join on strings. Is is too much slow and memory hungry. | 15:40 | |
moritz | pippo: I can imagine that :( | ||
pippo | I think Mouq found where the bug lies i.e. accessing $/ | 15:41 | |
doing this on rakudo jvm will take only few seconds: my $file = ""; for ^20000 {$file ~= "$_;"}; $file ~~ /(\d+) +% ';'/; | 15:42 | ||
which is good. | |||
But this will take immense more time (at least on my machine): my $file = ""; for ^20000 {$file ~= "$_;"}; $file ~~ /(\d+) +% ';'/; say $/; | 15:43 | ||
15:43
ajr_ left
|
|||
moritz | yes, that has to compile 20k regexes | 15:43 | |
which is quite costly | 15:44 | ||
if you just want to search for a string literal, use index instead | |||
15:45
ajr joined
15:46
ajr is now known as Guest40117,
Guest40117 is now known as ajr_
15:48
iSlug joined,
iSlug left
|
|||
pippo | moritz: you say quite costly. But Niecza does it at speed of light compared to rakudo jvm (if it did not complain about memory exhaust which mostly the case after minutes of mumbling and computer fan throttling) | 15:48 | |
moritz | pippo: I'm not saying it should be slow, just that it is | ||
pippo | ok :-( | 15:49 | |
:-( <= for jvm to be slow | |||
:-( <= for rakudo-jvm to be slow | 15:50 | ||
Mouq | r: my $file = [~] "{(state$)++};" xx 2000; $file ~~ /[\d+] +% \;/; say $/ | 15:53 | |
lizmat gives up on getting smarter "is foo" detection | |||
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«「0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80…» | ||
Mouq | r: my $file = [~] "{(state$)++};" xx 20000; $file ~~ /[\d+] +% \;/; say $/ | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | 15:54 | |
..rakudo-parrot aab740: OUTPUT«「0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80;81;82;83;84;85;86;…» | |||
lizmat | just too many strange errors in bootstrap / settings building | ||
pippo | moritz: you said "if you just want to search for a string literal, use index instead" | ||
moritz: could you provide an example? | 15:55 | ||
moritz | r: if defined 'foobar'.index('bar') -> $offset { say "'foobar' contains 'foo' at offset $offset" } | 15:56 | |
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«'foobar' contains 'foo' at offset True» | ||
moritz | erm | ||
r: my $offset = 'foobar'.index('bar'); if defined $offset { say "'foobar' contains 'foo' at offset $offset" } | 15:57 | ||
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«'foobar' contains 'foo' at offset 3» | ||
jaffa4 | inside a mehtod I should be able to call another method in the same class? | 15:58 | |
I get getbasename($filename) | |||
no, I get no ICU lib loaded | |||
pippo | moritz: Thank you very much. | 15:59 | |
moritz | pippo: you're welcome | ||
jaffa4: of course getbasename($filename) isn't a method call | |||
jaffa4 | Is self needed? | 16:00 | |
16:01
PacoAir joined
16:05
fridim_ joined
16:06
telex joined
|
|||
moritz | either self.getbasename($filename), or $.getbasename($filename) | 16:06 | |
16:06
denis_boyun joined
|
|||
moritz | (if it returns a scalar) | 16:07 | |
16:07
dansamo left
16:19
xinming left
|
|||
jaffa4 | any idea why this ($filenamelocal ~~ m:g/<[\\\/]><before .>/); returns one mathce for $filenamelocal = "c:\\g\\c.mp4" | 16:20 | |
16:20
xinming joined
|
|||
jaffa4 | r: my $filenamelocal = "c:\\g\\c.mp4"' ;($filenamelocal ~~ m:g/<[\\\/]><before .>/); say +lol(); | 16:21 | |
camelia | rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/XW6RgEEVSkTwo terms in a rowat /tmp/XW6RgEEVSk:1------> my $filenamelocal = "c:\\g\\c.mp4"⏏' ;($filenamelocal ~~ m:g/<[\\\/]><befo expecting any of: pos…» | ||
..rakudo-parrot aab740: OUTPUT«===SORRY!=== Error while compiling /tmp/27ZbizQNk8Two terms in a rowat /tmp/27ZbizQNk8:1------> my $filenamelocal = "c:\\g\\c.mp4"⏏' ;($filenamelocal ~~ m:g/<[\\\/]><befo expecting any of: …» | |||
16:21
sqirrel left
16:22
woolfy left
|
|||
lizmat | decommute from T-Dose & | 16:22 | |
16:22
lizmat left
16:23
rurban left
|
|||
pippo | Mouq: the following takes "only" 11s on my machine: my $file = ""; for ^20000 {$file ~= "$_;"}; $file ~~ /[\d+] +% \;/; say $/; | 16:38 | |
jaffa4 | lizmat:? | 16:39 | |
16:39
sizz left
|
|||
pippo | Mouq: if I change the noncapturing brackets to capturing parens then it blows out | 16:39 | |
16:41
zakharyas left
|
|||
pippo | r: my $file = ""; for ^20000 {$file ~= "$_;"}; $file ~~ /[\d+] +% \;/; say $/; | 16:42 | |
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«「0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;73;74;75;76;77;78;79;80…» | ||
pippo | r: my $file = ""; for ^20000 {$file ~= "$_;"}; $file ~~ /(\d+) +% \;/; say $/; | 16:43 | |
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
timotimo | i wonder if it's the stringification that takes so long | ||
pippo | timotimo: I do not think so. Otherwise the first (with non capturing brackets) shoud also have failed | 16:45 | |
timotimo | no | 16:46 | |
if you have a capturing bracket, it will print 20000 times " 0 => some-number\n" | |||
in addition to the first line | |||
r: my $file = ""; for ^5 {$file ~= "$_;"}; $file ~~ /(\d+) +% \;/; say $/; | |||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
..rakudo-parrot aab740: OUTPUT«「0;1;2;3;4」 0 => 「0」 0 => 「1」 0 => 「2」 0 => 「3」 0 => 「4」» | |||
timotimo | that timeouts on jvm?! | 16:47 | |
weird. | |||
but you see what i mean? | |||
pippo | r: say "hello" | 16:48 | |
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«hello» | ||
pippo | r: my $file = ""; for ^5 {$file ~= "$_;"}; $file ~~ /(\d+) +% \;/; say $/; | ||
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«「0;1;2;3;4」 0 => 「0」 0 => 「1」 0 => 「2」 0 => 「3」 0 => 「4」» | ||
pippo | timotimo: I think youare right. | 16:55 | |
r: my $file = ""; for ^20000 {$file ~= "$_;"}; $file ~~ /(\d+) +% \;/; say $/[0][20000-1]; | |||
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«「19999」» | 16:56 | |
timotimo | you can do [*-1] | ||
pippo | timotimo: OK :-) | ||
16:56
pmurias joined
|
|||
pippo | r: my $file = ""; for ^20000 {$file ~= "$_;"}; $file ~~ /(\d+) +% \;/; say $/[0][*-1]; | 16:56 | |
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«「19999」» | ||
jaffa4 | r : my $str = "aaaaa"; $str ~~ m:g/a/; say $/.perl; | 16:57 | |
r: my $str = "aaaaa"; $str ~~ m:g/a/; say $/.perl; | |||
camelia | rakudo-jvm 882e33: OUTPUT«Match.new(to => 5, hash => EnumMap.new(), ast => Any, list => ().list, orig => "aaaaa", from => 4)» | ||
..rakudo-parrot aab740: OUTPUT«Match.new(orig => "aaaaa", from => 4, to => 5, ast => Any, list => ().list, hash => EnumMap.new())» | |||
jaffa4 | Is this correct? | ||
timotimo | indeed, the gist method uses ~= instead of pushing into a list and joining | ||
that's going to be painfully slow for big matches | |||
pippo | timotimo: there is aslo a problem of heap space. I do not why but trying to print the $/ after the above 20'000 cycles for loop gives me out of heap space... | 17:01 | |
dalek | p: 8b48712 | (Tobias Leich)++ | / (2 files): mapped inf, neginf, nan and isnanorinf |
17:02 | |
timotimo | is this for rakudo-jvm? | ||
because afaict the jvm is started with a limit on the heap space it can allocate | 17:03 | ||
as a commandline option | |||
pippo | timotimo: yes jvm. I have put -Xms500m but exhausted also that | 17:04 | |
timotimo | oh yeah, 500m is nothing to rakudo ;) | ||
pippo | I can try 1g and see if it bails out... | 17:05 | |
timotimo | rakudo guzzles ram like a ... very thirsty person would a tasty drink | ||
17:06
sqirrel joined
|
|||
dalek | Heuristic branch merge: pushed 29 commits to rakudo-star-daily by coke | 17:09 | |
17:10
Rotwang joined
17:11
rindolf joined
17:15
Vlavv` joined
17:16
ajr_ left
17:18
xenoterracide joined
17:30
raiph left
|
|||
dalek | kudo/nom: bec62b4 | moritz++ | tools/lib/NQP/Configure.pm: import NQP::Configure from NQP |
17:33 | |
17:36
Rotwang left
|
|||
jaffa4 | Are there alises in Perl 6? | 17:36 | |
moritz | which aliases? | 17:37 | |
timotimo | like references? | 17:41 | |
jaffa4 | variables referred under different names | 17:42 | |
moritz | r: constant &sinus = &sin; say sinus(pi) | 17:43 | |
camelia | rakudo-parrot aab740: OUTPUT«1.22464679914735e-16» | ||
..rakudo-jvm 882e33: OUTPUT«1.2246467991473532E-16» | |||
moritz | jaffa4: binding does that (unill you rebind one of them) | ||
17:43
ssutch joined
|
|||
timotimo | r: my $x = 10; my $y := $x; $y = "hello"; say $x; | 17:43 | |
camelia | rakudo-parrot aab740, rakudo-jvm 882e33: OUTPUT«hello» | ||
jaffa4 | I would like to have duplicate property names | ||
moritz | why? | 17:44 | |
jaffa4 | usibilitiy | ||
some people can remember one name better than other | |||
timotimo | well, properties are just methods | ||
moritz | just write another accessor for the same attribute | ||
jaffa4 | I have has $.filedir; | ||
timotimo | they work like method name-of-thing is rw { $!private-name } i believe | ||
moritz | if they are rw, yes | 17:45 | |
jaffa4 | it would like to have $.dir | ||
$.directory | |||
17:45
denis_boyun left
|
|||
moritz | has $.dir; method directory { $!dir }; | 17:45 | |
and maybe use the aliasing trick in submethod BUILD that the docs that I gave you earlier uses | |||
17:45
felipe joined
|
|||
moritz | so that initialization works for both too | 17:46 | |
jaffa4 | I am thinking about upload Path::Util | ||
17:47
denis_boyun joined
|
|||
jaffa4 | moritz: I see | 17:47 | |
17:47
preflex left
|
|||
dalek | kudo/moar-support: 4799ab9 | jonathan++ | src/vm/moar/Perl6/Ops.nqp: Stub in p6bindsig. Due to the many calls the binder makes back into the interpreter, we will just write it in NQP code on Moar. This will be a little slower at first but (a) we expect Moar to get faster, and (b) we expect to start "lowering" simple signatures down to QAST::Var usage, which is also going to be useful for making better use of invokedynamic on the JVM backend. |
17:47 | |
jnthn | dinner & | 17:48 | |
17:48
preflex joined,
ChanServ sets mode: +v preflex
17:50
Rotwang joined,
raiph joined
|
|||
timotimo | huh, var usage? | 17:53 | |
lue | hello world o/ | 17:56 | |
17:58
sqirrel left,
denis_boyun__ joined
|
|||
moritz | \o lue | 17:59 | |
18:00
denis_boyun left
|
|||
timotimo | not sure how that var usage thing is going to work, but it sounds good already | 18:00 | |
the sub will just give the inner lexicals (parameters) to the caller directly? or something? | |||
18:01
risou_awy joined
|
|||
diakopter | jnthn: hooking compiled code into the compiler directly? WATFACE. QAST::WVal.new( :value(nqp::getcodeobj(&bind_sig)) ) | 18:15 | |
18:15
SamuraiJack_ joined
|
|||
diakopter | jnthn: that's, like, an impressive trick... and not un-revolutionary, in fact. | 18:16 | |
18:16
denisboyun joined
18:18
denis_boyun__ left,
risou_awy is now known as risou
|
|||
masak | diakopter: sounds interesting -- what's happening, step by step? | 18:20 | |
18:21
labster joined
18:23
logie joined
18:27
SamuraiJack_ left,
logie left
|
|||
diakopter | masak: in the trick I find impressive? | 18:30 | |
18:32
kurahaupo joined
|
|||
jaffa4 | How do I add a module to panda? | 18:33 | |
diakopter | he's typing code into the compiler source that gets invoked at runtime, injected with that wval hook, which is a code reference that gets resolved at deserialization time... so basically, it's like "hmm, I want the compiler to convert this 'opcode' or construction into something that runs this code I'm typing right here in the compiler source.." | ||
tadzik | jaffa4: send a pull request for perl6/ecosystym on github | 18:34 | |
also, wiki.perl6.org/Create%20and%20Distr...%20Modules | |||
diakopter | masak: if you squint a certain way (by swapping your eyeball sockets or something), you can imagine the entire runtime library being written in the source of the compiler in that manner... | 18:35 | |
18:35
risou is now known as risou_awy
|
|||
masak | I see. | 18:35 | |
interesting. | |||
dalek | osystem: c3ae1d7 | jaffa4++ | META.list: Update META.list added Path::Util |
18:39 | |
18:39
denisboyun left
18:43
denisboyun joined
|
|||
benabik | Why is there an install-moar-runner and a gen-moar-runner? | 18:44 | |
Why not just gen and then cp? | |||
colomon | jaffa4++ | 18:51 | |
timotimo | seems like someone didn't play the "shake hands with meta" workplace safety video to jnthn | 18:53 | |
18:56
pippo left
18:58
pippo joined
|
|||
pippo | timotimo: java.lang.OutOfMemoryError: Java heap space after real46m28.040s user110m46.425s sys0m28.380s | 18:59 | |
timotimo: -Xmx2g | 19:00 | ||
timotimo: "java.lang.OutOfMemoryError: Java heap space" after real46m28.040s user110m46.425s sys0m28.380s | 19:01 | ||
19:01
pippo left
|
|||
timotimo | holy fuck. | 19:01 | |
jnthn | diakopter: I discovered the trick, or tricks of that nature, when I was doing the Rakudo Debugger, fwiw :) | 19:05 | |
19:06
denisboyun left
|
|||
jaffa4 | timotimo: what are you surprised at? | 19:09 | |
19:09
sqirrel joined
19:10
denisboyun joined
19:15
kurahaupo left
|
|||
lue | For step 13 of the release guide, 1) must I subscribe to the appropriate mailing lists before posting an announcement (I assume yes), 2) what's with the parrot mailing list? (just curious) | 19:17 | |
moritz | benabik: iirc the 'gen-moar-runner' sets up paths from the build directory, and the 'install-' with the $(PREFIX) | 19:18 | |
benabik | moritz: Couldn't that be done by passing different options to one script? | 19:19 | |
I guess that's secondary to getting DESTDIR to work properly. | |||
moritz | benabik: presumably, yes | 19:20 | |
benabik: much of the build system falls into the category "it works", not "it's optimal" :-) | |||
benabik | Hm. I wonder if running java in a parallel build actually helps. | 19:21 | |
timotimo | jaffa4: that thing ran for 46 minutes | ||
moritz | lue: iirc you don't need to be subscribed to the mailing lists, but the mails will be manually moderated | 19:23 | |
lue: and the parrot mailing lists are parrot-{dev,users}@lists.parrot.org | |||
lue | it'd be worth signing up to the P6 lists at least. | ||
Oh, so both -dev and -users, or just -users (which the RG says)? | |||
moritz | trust the release guide, not me :-) | 19:24 | |
lue | Alright then, that's the last thing I was wondering about, so... | ||
==> STAR RELEASE MODE ACTIVATED (non-release-related messages from luebot will be limited) | |||
timotimo | oh cool :) | ||
lue | ✔ ① Clone/update star repo | ||
moritz | wow, somebody actually reads the WHOLE release guide first | 19:25 | |
tadzik | :D | ||
jnthn | .u tick in a box | ||
Aww | |||
moritz | .u check mark | ||
benabik | ENOYOLEAUX | ||
moritz | ENOUNICODEBOT | ||
WHERE IS THAT LAZY BOT? | 19:26 | ||
geekosaur | it only lived once | ||
moritz | 2705 ✅ WHITE HEAVY CHECK MARK | ||
2713 ✓ CHECK MARK | |||
2714 ✔ HEAVY CHECK MARK | |||
App::Uni++ | |||
lue | this is where r: say "☃".unicharname would come in handy ;) | ||
moritz | au++ # App::Uni | ||
19:27
rindolf left
|
|||
lue | ✔ ② Update Makefile | 19:27 | |
19:29
Rotwang left
|
|||
benabik | \o/ | 19:29 | |
dalek | p: a8d0acb | benabik++ | tools/build/Makefile-Moar.in: [Configure] Fix building nqp-m with DESTDIR |
19:30 | |
moritz | benabik++ | 19:31 | |
benabik | That took a while, but that's also because I was updating my build scripts to handle multiple nqps. | 19:32 | |
timotimo is going to tackle questhub.io/realm/perl/quest/526d50...583500002d | 19:33 | ||
lue | File::Find cloning randomly asked for my SSH. Is this normal? | 19:34 | |
timotimo | if it uses a [email@hidden.address] url, yeah | ||
[Coke] | looks like you can open a ticket in rt vi the web now. | 19:36 | |
lue | \o/ | 19:37 | |
FROGGS | cool! | ||
[Coke] | yup. | ||
(verified) | |||
FROGGS | [Coke]: btw, is it hard to rerun the tests an update this? gist.github.com/coke/6799633 | ||
[Coke] | FROGGS: not really. | 19:38 | |
benabik | How much heap do people generally need to give Java in order to build NQP? 1g seems to work, but I can't tell if its slow because its slow or if its slow because too much GC. | ||
tadzik | I just use defaults | ||
benabik | Defaults gives me OOM. :-P | 19:39 | |
lue | ✔ ③ Utilize updated Makefile | ||
I'm going to take a wild guess here and say that there are no new modules to be added to star this time 'round, correct? | |||
benabik | Huh. Although -XshowSettings:vm says the max heap is 1.78G | 19:40 | |
19:40
dmol left
19:41
dmol joined
|
|||
[Coke] | FROGGS: done: slight change, I put all the moar related fails in a single gist subfile | 19:42 | |
lue: that is the safe answer, typically. should be fine. | 19:43 | ||
FROGGS | ahh, thank you! | ||
[Coke]++ | |||
lue | ✔ ④ Add new modules to repo. (0 modules were added) | ||
[Coke] | if you want your own live copy, It's "prove -v -e ./nqp t/docs/opcodes.t | ack "^not ok" | ack moar | 19:44 | |
19:44
Rotwang joined
|
|||
FROGGS | cool, I wondered if it was in the repo somewhere :o) | 19:45 | |
benabik | not a valid number again? I thought that went away. :-( | ||
diakopter | masak: you could use that compiler trick to... simplify the implementation of macros tremendously. and probably make them a lot righter | 19:46 | |
[Coke] | r: my $foo="+";&infix:($foo)(3,4).say | 19:47 | |
camelia | rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/MjZaok_nJYYou can't adverb thatat /tmp/MjZaok_nJY:1------> my $foo="+";&infix:($foo)⏏(3,4).say» | ||
..rakudo-parrot bec62b: OUTPUT«===SORRY!=== Error while compiling /tmp/s_Jn4qX1CoYou can't adverb thatat /tmp/s_Jn4qX1Co:1------> my $foo="+";&infix:($foo)⏏(3,4).say» | |||
[Coke] | Anyone have opensolaris? we have several old RTs for you to verify. | 19:48 | |
diakopter | masak: by setting up the injected macro as something that saves the ASTs from compile time directly like that, then simply defers something that compiles the resulting AST (with the args directly passed as ast args to the call), and then once compiled once at runtime, updates itself with the newly compiled code. | 19:50 | |
lue | ✔ ⑤ Update modules | ||
diakopter | masak: OR | ||
evaluate it right then, actually. duh. | 19:51 | ||
lue | moritz: is there anything in the current ChangeLog that I should not include in the announcement? I notice you omitted a couple lines and even added one last month. | 19:56 | |
timotimo | Unable to parse expression in object; couldn't find final '}' - why did parse errors lose their file/line output? | 20:01 | |
oh, this is not a perl6 source code parse failure | |||
never mind | |||
20:03
sqirrel left
|
|||
masak | diakopter: now I feel like I need to understand this technique deeply. | 20:04 | |
20:05
colomon left
|
|||
[Coke] | I'm also getting OOME building rakudo now. (with backends=parrot,jvm) | 20:06 | |
lue | r: say "hello".ucfirst | ||
camelia | rakudo-jvm 882e33: OUTPUT«No such method 'package' for invocant of type 'Scalar' in sub DEPRECATED at gen/jvm/CORE.setting:16642 in block at /tmp/Zranh1FpeM:1 in any eval at gen/jvm/stage2/NQPHLL.nqp:1084 in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1290 in any…» | ||
..rakudo-parrot bec62b: OUTPUT«HelloSaw 1 call to deprecated code during execution.================================================================================Method ucfirst (from Cool) called at: /tmp/zy2G8Ldnb9, line 1Please use 'tc' instead.------------------…» | |||
[Coke] | oh, not even on make, on config. | ||
timotimo is staring at a json file that doesn't work and can't tell what's wrong | |||
20:07
denisboyun left
|
|||
tadzik | jsonlint.com? | 20:07 | |
masak | I have a regression to report. | ||
lue | questions based on 2013.09's "deprecated list": | ||
1. Is that unary hyper ops change in effect, slated for 2013.11, or indeterminately in the future | |||
20:07
wbill joined
|
|||
masak | std: my @a = 0..4; @a.=[1, 2]; say @a | 20:07 | |
camelia | std 8adbc60: OUTPUT«ok 00:01 127m» | ||
masak | rn: my @a = 0..4; @a.=[1, 2]; say @a | 20:08 | |
camelia | niecza v24-98-g473bd20: OUTPUT«1 2» | ||
..rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/UuTtIcx5t8Cannot use .= on a non-identifier method callat /tmp/UuTtIcx5t8:1------> my @a = 0..4; @a.=[1, 2]⏏; say @a» | |||
..rakudo-parrot bec62b: OUTPUT«===SORRY!=== Error while compiling /tmp/Ayfc4RauXBCannot use .= on a non-identifier method callat /tmp/Ayfc4RauXB:1------> my @a = 0..4; @a.=[1, 2]⏏; say @a» | |||
timotimo | i made it \o/ | ||
masak submits rakudobug | |||
lue | 2. Is the :sigspace !~~ <.ws> rule in effect, slated for 2013.11, or indeterminately in the future? | ||
timotimo | lue: that change with unary hyper ops is not yet there | ||
i've a bit of code waiting to be finished for that | |||
lue | would "next release" be a fair statement on 1. then? | ||
20:09
zakharyas joined
|
|||
masak | lue: only the one who is about to implement it could answer that... | 20:09 | |
moritz | lue: the ":sigspace not for leading whitespace" will be in 2013.11 | ||
lue | timotimo indicated he's about to implement it :) | ||
(1. that is) | 20:10 | ||
timotimo | haha | ||
about to | |||
you're so sweet | |||
blergh, still running into that segfault with "but" | |||
moritz | lue: re changelog lines, I usually copy those from the rakudo release announcement | ||
masak | I'm pretty sure @a.=[1, 2]; used to work, because I have recent code that uses it, and just broke when I upgraded Rakudo. | 20:11 | |
lue initially misread the :sigspace item as ":sigspace never means <.ws> anymore, but something different". He didn't quite parse "Leading whitespace" in the item :) | |||
moritz: I had a feeling, I was just wondering about the differences from the ChangeLog. (I didn't see any irrelevant lines in this month's fwiw) | |||
timotimo | r: for ^50 { 10 but True }; | 20:12 | |
camelia | ( no output ) | ||
timotimo | r: for ^50 { 10 but True; 1 }; | ||
camelia | ( no output ) | ||
..rakudo-parrot bec62b: OUTPUT«(signal ABRT)» | |||
timotimo | can this please please please just be fixed ;_; | ||
moritz | r: class A { has $!x is rw } | 20:13 | |
camelia | rakudo-jvm 882e33: OUTPUT«useless use of 'is rw' on $!x» | ||
..rakudo-parrot bec62b: OUTPUT«useless use of 'is rw' on $!x in sub warn at gen/parrot/CORE.setting:674» | |||
dalek | kudo/nom: a33b165 | moritz++ | docs/ChangeLog: [ChangeLog] add some items for 2013.11 |
20:16 | |
p: 5aee41a | dwarring++ | examples/rubyish/ (2 files): rubyish - added 1.9 '->' lambda syntax |
20:19 | ||
20:19
risou_awy is now known as risou
|
|||
lue | ✔ ⑥ Create 2013.10 announcement. (Review at: gist.github.com/lue/5339bde633d86129998c) | 20:19 | |
moritz | lue: why don't you commit and push it? | 20:20 | |
20:20
FOAD left
|
|||
lue | ...because I read the whole guide and I'm being a bit too literal-minded. :) (commited, but no push 'til step 8) | 20:20 | |
moritz | push, push, push! | 20:21 | |
+1 to the draft | |||
(but I only skimmed it) | |||
dalek | ar: 528fe30 | lue++ | modules/ (7 files): Update to all modules [RG Step 5] |
||
ar: 76b69c9 | lue++ | docs/announce/2013.10.md: Create 2013.10 announcment [RG Step 6] |
|||
ar: 01db706 | lue++ | .gitignore: Tell .gitignore to ignore emacs temporary files. |
|||
timotimo | the next release for nodality? oh my | 20:22 | |
20:22
FOAD joined
|
|||
dalek | ar: 67ffe19 | lue++ | docs/announce/2013.10.md: [2013.10.md] Fix left-in mistake. |
20:23 | |
lue | timotimo: ^^^ | ||
20:24
woolfy joined,
fhelmberger joined
|
|||
timotimo | postcircumfix:<{ }> not defined for type Failure ... | 20:26 | |
20:26
dmol left,
pdurbin joined
20:27
dmol joined
|
|||
timotimo | r: my @l = {(:foo<bar>).hash, (:foo<baz>).hash}; say @l.first(*.<foo><bar> eq "quux"); | 20:27 | |
camelia | rakudo-parrot bec62b: OUTPUT«postcircumfix:<{ }> not defined for type Failure in method Str at gen/parrot/CORE.setting:11915 in method Str at gen/parrot/CORE.setting:956 in method Stringy at gen/parrot/CORE.setting:966 in method Stringy at gen/parrot/CORE.setting:965…» | ||
..rakudo-jvm 882e33: OUTPUT«postcircumfix:<{ }> not defined for type Failure in sub infix:<eq> at gen/jvm/CORE.setting:1362 in block at /tmp/lIHDiphY1L:1 in any eval at gen/jvm/stage2/NQPHLL.nqp:1084 in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1290 in any comman…» | |||
timotimo | star: my @l = {(:foo<bar>).hash, (:foo<baz>).hash}; say @l.first(*.<foo><bar> eq "quux"); | ||
camelia | star 2013-09: OUTPUT«postcircumfix:<{ }> not defined for type Block in method postcircumfix:<{ }> at src/gen/CORE.setting:12032 in block at /tmp/CERKmK5KVW:1» | ||
timotimo | ...block? | 20:28 | |
dalek | p: c5aa3c2 | (Tobias Leich)++ | / (2 files): mapped getlexrel |
20:29 | |
timotimo | well, this is problematic. | 20:30 | |
r: ().hash.<foo> | 20:31 | ||
camelia | ( no output ) | ||
timotimo | r: ().hash.<foo><bar> | ||
camelia | ( no output ) | ||
timotimo | r: ().hash.<foo>.<bar> | ||
camelia | ( no output ) | ||
timotimo | r: ().hash.map: *.<foo>.<bar> | ||
camelia | rakudo-jvm 882e33: OUTPUT«Unhandled exception: postcircumfix:<{ }> not defined for type Failure in throw (gen/jvm/CORE.setting) in <anon> (gen/jvm/CORE.setting) in (gen/jvm/Metamodel.nqp:2599) in find_method_fallback (gen/jvm/Metamodel.nqp:2598) in find_method (…» | ||
..rakudo-parrot bec62b: OUTPUT«postcircumfix:<{ }> not defined for type Failurecurrent instr.: 'throw' pc 402850 (src/gen/p-CORE.setting.pir:169223) (gen/parrot/CORE.setting:10534)called from Sub '<anon>' pc 438826 (src/gen/p-CORE.setting.pir:182410) (gen/parrot/CORE.setting:119…» | |||
timotimo | r: *.<foo>.<bar> | ||
camelia | rakudo-jvm 882e33: OUTPUT«Unhandled exception: postcircumfix:<{ }> not defined for type Failure 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 bec62b: OUTPUT«postcircumfix:<{ }> not defined for type Failurecurrent instr.: 'throw' pc 402850 (src/gen/p-CORE.setting.pir:169223) (gen/parrot/CORE.setting:10534)called from Sub 'sink' pc 438903 (src/gen/p-CORE.setting.pir:182447) (gen/parrot/CORE.setting:11924…» | |||
timotimo | so it just doesn't autocurry any more | 20:32 | |
r: try *.<foo>.<bar> | |||
camelia | rakudo-jvm 882e33: OUTPUT«Unhandled exception: postcircumfix:<{ }> not defined for type Failure 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 bec62b: OUTPUT«postcircumfix:<{ }> not defined for type Failurecurrent instr.: 'throw' pc 402850 (src/gen/p-CORE.setting.pir:169223) (gen/parrot/CORE.setting:10534)called from Sub 'sink' pc 438903 (src/gen/p-CORE.setting.pir:182447) (gen/parrot/CORE.setting:11924…» | |||
moritz | probably relted to .{ } now being a sub instead of a method | ||
*related | |||
timotimo | yes, probably | ||
timotimo creates spectests | |||
r: *.(1).(2) | |||
camelia | rakudo-jvm 882e33: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Whatever' in any at gen/jvm/BOOTSTRAP.nqp:1658 in block at /tmp/agOHxZ1QUh:1 in any eval at gen/jvm/stage2/NQPHLL.nqp:1084 in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1290 in…» | ||
..rakudo-parrot bec62b: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Whatever' in any at gen/parrot/BOOTSTRAP.nqp:1687 in any at gen/parrot/BOOTSTRAP.nqp:1669 in block at /tmp/N7IX4BbqXk:1 in any at /tmp/N7IX4BbqXk:1 in any at gen/parrot/s…» | |||
dalek | ar: 4375f28 | lue++ | tools/star/ (2 files): Update to Makefile and Release Guide Release Guide now a bit more detailed for literal-minded dolts such as myself, and the Makefile wasn't commited earlier thanks to that literal-minded idiocy :) . |
20:33 | |
timotimo | er, of course that doesn't work | ||
... wait, shouldn't that work? | |||
r: say (* + *).WHAT | 20:34 | ||
camelia | rakudo-parrot bec62b, rakudo-jvm 882e33: OUTPUT«(WhateverCode)» | ||
timotimo | r: say (*(1)).WHAT | ||
camelia | rakudo-parrot bec62b: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Whatever' in any at gen/parrot/BOOTSTRAP.nqp:1687 in any at gen/parrot/BOOTSTRAP.nqp:1669 in block at /tmp/k0zWdb4PNh:1 in any at /tmp/k0zWdb4PNh:1 in any at gen/parrot/s…» | ||
..rakudo-jvm 882e33: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Whatever' in any at gen/jvm/BOOTSTRAP.nqp:1658 in block at /tmp/WBKz43ljGG:1 in any eval at gen/jvm/stage2/NQPHLL.nqp:1084 in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1290 in…» | |||
timotimo | hm, actually not sure if that was ever supposed to work | ||
r: say (*.foo(1)).WHAT | |||
camelia | rakudo-parrot bec62b, rakudo-jvm 882e33: OUTPUT«(WhateverCode)» | ||
timotimo | r: say (*.[1]).WHAT | ||
camelia | rakudo-parrot bec62b, rakudo-jvm 882e33: OUTPUT«(Failure)» | ||
timotimo | is there a known bugs section to the release document or something? | 20:35 | |
20:35
risou is now known as risou_awy
|
|||
moritz | only if you add one | 20:37 | |
lue | ✔ ⑦ Update README, Makefile.in | ||
dalek | ar: 6af4334 | lue++ | / (2 files): Update README and Makefile.in [RG Step 7] |
20:38 | |
20:38
fhelmberger left
|
|||
lue | ✔ ⑧ Push un-pushed local changes | 20:38 | |
20:38
zakharyas left,
raiph left
|
|||
lue | I'm assuming the VERSION= in step 9 is still necessary, despite modifying Makefile.in? | 20:38 | |
✔ ⑨ Generate tarball | 20:41 | ||
timotimo | posting this into a known bugs section seems a bit too dramatic, i guess | 20:42 | |
dalek | ast: ce4fdbf | (Timo Paulssen)++ | S02-types/whatever.t: tests for RT #120385 |
20:44 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120385 | ||
lue hopes this wraps in three hours' time | 20:48 | ||
masak | lue++ # star performance | 20:51 | |
lue | :) | ||
dalek | p: 661eeb6 | (Tobias Leich)++ | / (2 files): mapped getlexreldyn |
||
lue | And I really, really hope Step 10 doesn't fail. | 20:52 | |
masak .oO( given an arbitrary base, everyone really hopes Step 10 doesn't fail ) | |||
20:53
kaare__ left
|
|||
timotimo | r: say ([1, 2, 3].[*]).WHAT | 20:54 | |
camelia | rakudo-parrot bec62b, rakudo-jvm 882e33: OUTPUT«(Parcel)» | ||
benabik | Arg. Rakudo-j doesn't understand DESTDIR. | 20:56 | |
20:56
jaffa4 left
|
|||
moritz | benabik: would it be enough to add it to the j-install rule? | 21:02 | |
benabik | moritz: Also have to modify create-jvm-runner. Working on it. | ||
timotimo notices he doesn't quite know how whatever-currying works internally | 21:05 | ||
hm, so EXPR is responsible for that | 21:06 | ||
diakopter | lue: if you need a linux machine with lots of ram on which to build/test, moritz can help (07) [and I'm sure tons of others could too]; afk& | 21:09 | |
lue | diakopter: thankfully, not anymore. It just takes time. | 21:10 | |
If I was still on my 384MiB RAM computer, this would all be happening on feather :) | |||
benabik | Arg. Working on Configure is so painful. Change something wait forever for things to build, repeat. | 21:11 | |
lue | During module precomp, I got a couple ===SORRY!=== When pre-compiling a module, its dependencies must be pre-compiled first. I shouldn't worry about that I suspect. | 21:12 | |
21:13
rafl joined
|
|||
benabik | Huh. nqp-j and rakudo-j give me a /usr/local/languages | 21:15 | |
I suspect that should be something like share/nqp/languages | |||
masak | 'night, #perl6 | 21:16 | |
timotimo | 'night masak | ||
still looking forward to t4 reviews :) | |||
but don't let that keep you from sleeping tonight | |||
lue | ♞ masak o/ There'll be a Star release at your doorstep in the morning :) | 21:17 | |
lue is now in the whirlpool of the spectest. | |||
timotimo | ok 81 - *.[1] is some kind of code# TODO whatevercode with postcircumfix [] and {} | ||
\o/ | |||
benabik | Huh. rakudo is the 1 repo I don't have access to. :-D | 21:18 | |
PR opened. | 21:20 | ||
errands & | |||
lue will likely do the whole CLA business tonight, after * and the DW special. | |||
timotimo | github.com/rakudo/rakudo/pull/223 - would appreciate a quick review and spectest run | 21:21 | |
i'm running the spectests myself, but just in case ... | |||
i'm not 100% sure it should be = 2 in these cases, i don't understand what the difference is exactly. i have a suspicion this could break (1, 2 ,3).[*] | 21:24 | ||
dalek | p: 9ac6475 | jonathan++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Implement nqp::takedispatcher on MoarVM backend. |
||
timotimo | nope, seems to bestill right | ||
not ok 11 - warning reports correct line number and subroutine | 21:26 | ||
this is the only failure i get. this is not my fault, though, right? | |||
in t/spec/integration/error-reporting.t | |||
21:30
denis_boyun joined
|
|||
dalek | p: 1eed27d | (Tobias Leich)++ | / (2 files): mapped getlexrelcaller |
21:33 | |
kudo/nom: 3a6b388 | (Timo Paulssen)++ | src/Perl6/Actions.nqp: curry *.[] and *.{} again |
21:36 | ||
kudo/nom: 3cef562 | (Tobias Leich)++ | src/Perl6/Actions.nqp: Merge pull request #223 from timo/postcircumfix_whatevercode curry *.[] and *.{} again |
|||
timotimo | \o/ | ||
perl6-bench is failing to see the revisions it's supposed to extract, something with run may be going wrong | 21:42 | ||
21:47
djanatyn joined
|
|||
timotimo | my local changes to run have probably caused this | 21:48 | |
dalek | kudo/moar-support: 6838abf | jonathan++ | src/vm/moar/ (2 files): Stub a couple more nqp::p6 ops on Moar. |
21:51 | |
[Coke] | stackoverflow.com/questions/1961828...-reporting | 21:59 | |
22:03
denis_boyun left
|
|||
dalek | p: 64007fd | (Tobias Leich)++ | src/vm/moar/QAST/QASTCompilerMAST.nqp: added method as_mast(QAST::Want, ...) |
22:12 | |
22:16
konundra joined
22:17
Rotwang left,
konundra left
22:20
risou_awy is now known as risou
|
|||
timotimo | how do i properly test %*ENV? | 22:20 | |
tadzik | launch an external process and make it print %*ENV, maybe | 22:21 | |
timotimo | say run( 'sh', '-c', 'echo $GIT_DIR' ) | ||
like that? | |||
FROGGS | I think the sh -c is implicit | 22:22 | |
timotimo | thatd oesn't seem to work | ||
run 'echo' '$GIT_DIR' doesn't output anything helpful | |||
FROGGS | ~/dev/nqp$ GIT_DIR=abc perl6 | 22:24 | |
> say run( 'sh', '-c', 'echo $GIT_DIR' ) | |||
abc | |||
worx | |||
timotimo: if you run it as a one-liner, the $GIT_DIR might get swallowed | 22:25 | ||
timotimo | this is in my repl | ||
how about changing %*ENV | 22:26 | ||
because that doesn't seem to work | 22:27 | ||
FROGGS | perl6 -e '%*ENV<GIT_DIR> = "xyz"; say shell q{echo $GIT_DIR}' # works | 22:28 | |
run does not seem to get env | |||
timotimo | well, shit. | ||
FROGGS | I think this is the one I made a branch (nqp_spawn) for | ||
timotimo | everything b0rks all the time :/ | ||
FROGGS | run() works on windows in my branch I think, the linux version needs a bit love (aka implementation) | 22:29 | |
timotimo | didn't this use to work?! | ||
FROGGS | not when it comes to ENV afaik | 22:30 | |
ingy just ran a sync for github.com/acmeism/RosettaCodeData | |||
first time since YAPC :\ | |||
timotimo | that surprises me; perl6-bench relied on %*ENV + run working | 22:31 | |
lue | gist.github.com/lue/7188705 Spectest results. | ||
Should I continue step 10 (modules-test), or proceed to fix/report these errors? | |||
timotimo | that's strange | 22:32 | |
lue | (gist updated with specific failures) | 22:35 | |
22:36
risou is now known as risou_awy
|
|||
timotimo | filestat is probably noatime mount? | 22:37 | |
the other one might be missing icu or something like that? | |||
lue | $ eix -e icu[I] dev-libs/icu (so I have icu, v. 51.1) | 22:38 | |
timotimo | hm. | 22:39 | |
22:39
cognominal__ joined
|
|||
lue | My drives are mounted as noatime according to /etc/fstab, so that's proably it :) | 22:39 | |
timotimo is going to try running perl6-bench with rakudo-jvm instead of rakudo-parrot | |||
22:39
cognominal left
|
|||
lue | r: my $s = [~] (0x20..0xFF)».chr; say $s ~~ /[(<[:Punctuation]>)? .*]+/ | 22:41 | |
camelia | rakudo-parrot 3cef56, rakudo-jvm 882e33: OUTPUT«(timeout)» | 22:42 | |
timotimo | r: say "\x20"..."\xff"; | ||
camelia | rakudo-parrot 3cef56, rakudo-jvm 882e33: OUTPUT« ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ ^H …» | ||
22:43
xinming left
|
|||
timotimo | r: say ([~] "\x20"..."\xff") ~~ /[(<[:Punctuation]>)? .*]+/ | 22:43 | |
lue | r: my $s = "\x20".."\xFF"; say $s.comb(/<:Punctuation>/); | ||
22:43
xinming joined
|
|||
camelia | rakudo-parrot 3cef56, rakudo-jvm 882e33: OUTPUT«(timeout)» | 22:44 | |
rakudo-jvm 882e33: OUTPUT«(timeout)» | |||
..rakudo-parrot 3cef56: OUTPUT«! " # % & ' ( ) * , - . / : ; ? @ [ \ ] _ { } ¡ « · » ¿» | |||
timotimo | ... huh weird | ||
lue | I think it may be rakudo's problem. | ||
n: my $s = "\x20".."\xFF"; say $s.comb(/<:Punctuation>/); | |||
timotimo | that regex you're using is ... weird | ||
camelia | niecza v24-98-g473bd20: OUTPUT«(timeout)» | ||
timotimo | why does it do punctuation? and then .* +? | ||
lue | timotimo: I misunderstood how :Punctuation was supposed to work. | ||
timotimo | that seems like it could have pretty terrible backtracking behavior | ||
lue | (I didn't initially actually look at the test :P) | 22:45 | |
star: my $s = "\x20".."\xFF"; say $s.comb(/<:Punctuation>/); | |||
camelia | star 2013-09: OUTPUT«ICU not loaded in regex at /tmp/yHWwkFSEIf:1 in method match at src/gen/CORE.setting:6127 in method comb at src/gen/CORE.setting:6115 in method comb at src/gen/CORE.setting:3624 in method comb at src/gen/CORE.setting:3626 in method comb …» | ||
lue | o.o | ||
timotimo | huh | 22:46 | |
lue | So the filetest failure is due to my system (note to self: later improve that spectest to somehow know about noatime?), but the regex thing feels like rakudo's bad. | ||
(I remember tadzik(?) working on this a few days ago.) | 22:47 | ||
timotimo | a few days ago would probably be after the rakudo release, so it's just a matter of too new tests | 22:48 | |
lue | 2013.10-72-g71041aa is my non-star version and it fails exactly the same, fwiw. | 22:49 | |
FROGGS | but... dont you take the testsuite from the compiler release tarball? | ||
timotimo | oh, yeah, that should be the case, sorry | ||
22:50
xinming left,
dmol left
22:51
xinming joined
|
|||
timotimo | make all install 603,02s user 6,12s system 129% cpu 7:51,23 total - for a parrot + jvm build, not bad (not including the Configure.pl step that runs gen-nqp) | 22:51 | |
lue | Mouq was working with it on the 24th: irclog.perlgeek.de/perl6/2013-10-24#i_7760385 | 22:52 | |
should this be considered a blocking bug? I fear it is. | 22:53 | ||
Hang on, I just noticed the problem was *extra* characters, not *missing* ones! | 22:56 | ||
timotimo | "Unhandled file open mode 'rp'" on jvm :( | ||
i thought somebody was hacking on that recently? | 22:57 | ||
22:57
dmol joined
|
|||
lue | www.fileformat.info/info/unicode/ca...o/list.htm | 22:57 | |
*Thank Goodnes*, the "expected" portion is incorrect. I can fix this! :D | |||
*Goodness | 22:58 | ||
23:00
BenGoldberg joined
|
|||
timotimo | hm, i can't use -j2 to build parrot and jvm stuff in parallel? | 23:02 | |
it seems like i can actually do a parallel build | 23:03 | ||
23:03
spider-mario left
|
|||
dalek | ast: 97db6ff | lue++ | S05-mass/charsets.t: [S05-mass] Fix punctuation tests. Section sign and Pilcrow are part of the Po (Punctuation, Other) category, and also within the 0x00..0xFF range. |
23:04 | |
lue | ✘ ⑩ (recoverable; return to ⑧) | 23:07 | |
✔ ⑧ Push un-pushed local changes (no changes need to be pushed) | 23:08 | ||
timotimo | r: class foo { has int $.foo; }; foo.new(:foo(123)); | 23:09 | |
lue | ✔ ⑨ Generate tarball | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
..rakudo-parrot 3cef56: OUTPUT«Cannot modify an immutable value in block at gen/parrot/CORE.setting:849 in method BUILDALL at gen/parrot/CORE.setting:832 in method bless at gen/parrot/CORE.setting:821 in method new at gen/parrot/CORE.setting:806 in method new at g…» | |||
timotimo | so, in my nativeattr_buildplan branch i get "This representation can not unbox to a native int" and a success respectively for that code | 23:10 | |
that's an overall improvement, right? | |||
lue wouldn't know :( | |||
timotimo | r: class foo { has int $.foo; }; foo.new(:foo(123)); | ||
i have no idea why this would timeout | 23:11 | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
..rakudo-parrot 3cef56: OUTPUT«Cannot modify an immutable value in block at gen/parrot/CORE.setting:849 in method BUILDALL at gen/parrot/CORE.setting:832 in method bless at gen/parrot/CORE.setting:821 in method new at gen/parrot/CORE.setting:806 in method new at g…» | |||
BenGoldberg | r: say 1 | 23:12 | |
timotimo | could someone run that code on rakudo-jvm locally? | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
..rakudo-parrot 3cef56: OUTPUT«1» | |||
timotimo | ah, that's good | ||
BenGoldberg | For some definition of good | 23:13 | |
timotimo | that's right | ||
BenGoldberg | r-p: say 1 | ||
camelia | rakudo-parrot 3cef56: OUTPUT«1» | ||
BenGoldberg | r-p: my $c = class { has int $foo }; $class.new(:foo(42); | 23:14 | |
camelia | rakudo-parrot 3cef56: OUTPUT«===SORRY!=== Error while compiling /tmp/0k88nEP1zmUnable to parse expression in argument list; couldn't find final ')' at /tmp/0k88nEP1zm:1------> s { has int $foo }; $class.new(:foo(42);⏏<EOL> expect…» | ||
BenGoldberg | r-p: my $c = class { has int $foo }; $class.new(:foo(42)); | ||
camelia | rakudo-parrot 3cef56: OUTPUT«===SORRY!=== Error while compiling /tmp/kUM7eJAH09Variable '$class' is not declaredat /tmp/kUM7eJAH09:1------> s { has int $foo }; $class.new(:foo(42))⏏; expecting any of: postfix» | ||
BenGoldberg | r-p: my $c = class { has int $foo }; $c.new(:foo(42)); | ||
camelia | ( no output ) | ||
BenGoldberg | r-p: my $c = class { has int $foo }; say $c.new(:foo(42)); | ||
camelia | rakudo-parrot 3cef56: OUTPUT«<anon>.new()» | ||
BenGoldberg | n: my $c = class { has int $foo }; say $c.new(:foo(42)); | 23:15 | |
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!===Malformed has at /tmp/UL7GEbVNnb line 1:------> my $c = class { has⏏ int $foo }; say $c.new(:foo(42));Parse failed» | ||
lue | r-p: my $c = class { has int $.foo }; say $c.new(:foo(42)); | ||
camelia | rakudo-parrot 3cef56: OUTPUT«Cannot modify an immutable value in block at gen/parrot/CORE.setting:849 in method BUILDALL at gen/parrot/CORE.setting:832 in method bless at gen/parrot/CORE.setting:821 in method new at gen/parrot/CORE.setting:806 in method new at g…» | ||
lue | r-p: my $c = class { has Int $.foo }; say $c.new(:foo(42)); | ||
camelia | rakudo-parrot 3cef56: OUTPUT«<anon>.new(foo => 42)» | ||
timotimo | why can you even write "has $foo"? | 23:17 | |
std: class foo { has int $bar } | |||
camelia | std 8adbc60: OUTPUT«ok 00:01 123m» | ||
lue | r: has $.a; | ||
timotimo | huh. | ||
lue | r-p: has $.a | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
..rakudo-parrot 3cef56: OUTPUT«===SORRY!=== Error while compiling /tmp/2p2hpfnegWYou cannot declare attribute '$.a' here; maybe you'd like a class or a role?at /tmp/2p2hpfnegW:1------> has $.a⏏; expecting any of: scoped d…» | |||
rakudo-parrot 3cef56: OUTPUT«===SORRY!=== Error while compiling /tmp/9fTXYnTd_4You cannot declare attribute '$.a' here; maybe you'd like a class or a role?at /tmp/9fTXYnTd_4:1------> has $.a⏏<EOL> expecting any of: scop…» | |||
lue | r-p: has $a | ||
camelia | rakudo-parrot 3cef56: OUTPUT«===SORRY!=== Error while compiling /tmp/gsyHtOvQKiYou cannot declare attribute '$a' here; maybe you'd like a class or a role?at /tmp/gsyHtOvQKi:1------> has $a⏏<EOL> expecting any of: scoped…» | ||
lue | r-p: my $a | ||
camelia | ( no output ) | ||
lue | r-p: my $.a | ||
camelia | rakudo-parrot 3cef56: OUTPUT«Useless declaration of a has-scoped method in mainline» | ||
lue | r-p: my $!a | 23:18 | |
camelia | rakudo-parrot 3cef56: OUTPUT«===SORRY!=== Error while compiling /tmp/kf0iF9iNcnCannot use ! twigil on my variableat /tmp/kf0iF9iNcn:1------> my $!a⏏<EOL> expecting any of: scoped declarator constraint» | ||
lue | ... | ||
BenGoldberg | n: my $c = class { has int $.foo = 42 }; say $c.new(); | ||
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!===Malformed has at /tmp/_50eUJwElY line 1:------> my $c = class { has⏏ int $.foo = 42 }; say $c.new();Parse failed» | ||
BenGoldberg | n: my $c = class { has int $.foo is default(42) }; say $c.new(); | ||
camelia | niecza v24-98-g473bd20: OUTPUT«===SORRY!===Malformed has at /tmp/nyVF7Mr5RQ line 1:------> my $c = class { has⏏ int $.foo is default(42) }; say $c.new(Parse failed» | ||
23:19
xenoterracide left
23:20
xenoterracide joined
|
|||
timotimo | so, nobody has a rakudo-jvm locally? let me build another one :) | 23:24 | |
23:25
dmol left
23:26
xenoterracide left
|
|||
lue | timotimo: if I weren't busy with something else, I'd proably go ahead and build a rakudo JVM (already got the VM part anyways) :) | 23:29 | |
(as it stands I'm current building rakudo-p) | |||
23:30
dmol joined
|
|||
timotimo | i'm almost done, but thanks! | 23:30 | |
i wasn't expecting you to add even more work to your load right now | |||
lue | I'll probably build one tonight or tomorrow, at least to play with the JVM again for a bit. | 23:33 | |
23:34
benabik joined
|
|||
timotimo | OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f5520315000, 421888, 0) failed; error='Cannot allocate memory' (errno=12) | 23:34 | |
:( | 23:35 | ||
23:39
pippo joined
|
|||
pippo | timotimo: class foo { has int $.foo; }; foo.new(:foo(123)); on my local jmv gives me... | 23:39 | |
java.lang.RuntimeException: Cannot access a native attribute as a reference attribute foo.new(foo => 0) | |||
timotimo | great | 23:40 | |
23:40
xenoterracide joined
|
|||
timotimo | now all i have to find out is how to make the unbox thing not happen and it should be working on both backends | 23:40 | |
23:41
dmol left
23:42
dmol joined
|
|||
timotimo | r: for ^100 { 10 but True; 1 }; | 23:43 | |
camelia | ( no output ) | ||
..rakudo-parrot 3cef56: OUTPUT«(signal ABRT)» | |||
timotimo | r: my @dirty-hack; for ^100 { @dirty-hack.push(10 but True); 1 }; | ||
camelia | ( no output ) | ||
lue | .oO( if $variable.isn't-in-a-box { $variable } else { $variable.de-box } ) |
23:44 | |
jnthn | .oO( "It's my $var in a box..." ) |
||
timotimo | r: my @dirty-hack; for ^100 { @dirty-hack.push(10 but True); 1 }; for ^1000 { 1 + 1 }; # will hopefully give me some GC pressure or something | ||
camelia | ( no output ) | ||
timotimo | hmm | ||
r: my @dirty-hack; for ^100 { @dirty-hack.push(10 but True); 1 }; @dirty-hack = [] ;for ^1000 { 1 + 1 }; # will hopefully give me some GC pressure or something | 23:45 | ||
camelia | ( no output ) | ||
jnthn | I wonder if it's about freeing of the mp_int | ||
23:46
dmol left
|
|||
jnthn | r: for ^100000 { nqp::clone(42) } | 23:46 | |
camelia | ( no output ) | ||
jnthn | r: for ^10000000 { nqp::clone(42) } | ||
camelia | rakudo-parrot 3cef56, rakudo-jvm 882e33: OUTPUT«(timeout)» | 23:47 | |
timotimo | r: for ^100000 { nqp::clone(42); "sink" } | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
( no output ) | |||
jnthn | r: for ^100000 { 42.clone } | ||
camelia | rakudo-parrot 3cef56, rakudo-jvm 882e33: OUTPUT«(timeout)» | 23:48 | |
diakopter | heh | ||
timotimo | jnthn: github.com/timo/rakudo/commit/289d...4bf978R187 - can you see immediately where this may be causing "this representation cannot unbox to a native int"? not even sure where exactly the error occurs, all i know is it's in BUILDALL | 23:54 | |
diakopter | timotimo: prob you need nqp::atpos_i | 23:56 | |
(in some place or another) | |||
jnthn | Where? | ||
I don't see anywhere that'd help right off, fwiw | |||
I don't see where the problem is either :( | |||
diakopter | line 190? | 23:57 | |
jnthn | Wait, why is the 5/6/7 case handled all together with bindattr in one place and not in the others? | ||
timotimo | parrot vs !parrot | 23:58 | |
jnthn | diakopter: No, it's using atpos to get stuff out of an object array there | ||
23:58
raiph joined
|
|||
diakopter | which arg to bindattr_i is the i? | 23:58 | |
jnthn | Last one | ||
timotimo | so the decont is hitting it? | 23:59 |