»ö« 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:01
clkaoud_ joined,
xfix_ joined,
isacloud_____ joined
|
|||
grondilu | I won't put it in the ecosystem because it is awefully slow right now, but here is what I've been trying to do today: github.com/grondilu/clifford (geometric algebra in Perl 6) | 00:01 | |
00:02
Rounin_ joined,
haroldwu_ joined,
moritz_ joined,
japhb_ joined,
nwc10_ joined,
hoelzro_ joined,
rhr joined,
sjn_ joined,
ashleydev joined
00:03
BinGOs_ joined,
mst_ joined,
integral joined,
integral left,
integral joined,
sivoais_ joined
00:05
djanatyn1 joined,
BinGOs left
00:06
nbrown__ joined,
BinGOs_ is now known as BinGOs,
BinGOs left,
BinGOs joined
00:07
geekosaur left,
sjn left,
integral_ left,
hoelzro left,
djanatyn left,
moritz left,
mst left,
xfix left,
sivoais left,
Rounin left,
bjz left,
japhb left,
ashleyde1 left
00:08
bjz joined
00:09
geekosaur joined,
Alina-malina left,
isacloud____ left,
isacloud_____ is now known as isacloud____,
Alina-malina joined,
clkaoud_ is now known as clkaoud
00:10
raiph joined,
nbrown__ left
00:11
nwc10 left,
rhr_ left,
nebuchadnezzar left
00:17
nbrown__ joined
00:18
grondilu left
00:19
djanatyn1 is now known as djanatyn
00:23
Mouq left,
nbrown__ left
00:30
nbrown__ joined
00:34
nbrown__ left
00:35
araujo left
00:36
nbrown__ joined
00:38
araujo joined
00:40
nbrown__ left
00:42
nbrown__ joined
00:45
avuserow joined
00:46
nbrown__ left
00:53
galledallegator joined
00:56
nbrown__ joined
00:57
ivan`` left
01:03
nbrown__ left
01:06
FROGGS_ joined
01:07
JL235 left
01:08
Sqirrel left,
ivan`` joined
01:09
FROGGS left
01:17
ivan`` left
01:19
rindolf joined,
araujo left
01:21
araujo joined
01:23
ivan`` joined,
nbrown__ joined
|
|||
colomon | hmmm, no, openssl does have a Build.pm | 01:23 | |
01:24
raiph left
01:27
nbrown__ left
01:29
dayangkun joined,
dayangkun is now known as dayangkun_pto
01:30
PZt joined
01:42
Sqirrel joined
|
|||
colomon | Ah, I think the problem is that changing %*ENV<PERL6LIB> doesn't change @*INC in the currently running process. | 01:46 | |
got it! | 01:53 | ||
02:03
immortal left,
erkan joined,
erkan left,
erkan joined
|
|||
colomon | now just need to figure out how to clean up an older git commit so I can push my fix to emmentaler. | 02:08 | |
TimToady | m: my $p1 = (my $x = 42,1); my $p2 = (my $y = 42,1); say $p1 === $p2; say VAR($x).WHICH; say VAR($y).WHICH | 02:09 | |
camelia | rakudo-moar ebccb2: OUTPUT«TrueInt|47556464Int|47556464» | ||
TimToady | this is incorrect, since $x and $y are supposed to be different variables | ||
why VAR is not giving different WHICHes is perhaps the root of the problem; these are different objects | 02:10 | ||
lizmat: ^^ | |||
in any case, the expression should be False, not true, since the identity of a container is its "location" | 02:11 | ||
m: my $x = 42; my $y = 43; say VAR($x).WHICH; say VAR($y).WHICH | 02:12 | ||
camelia | rakudo-moar ebccb2: OUTPUT«Int|55125480Int|55125560» | ||
TimToady | m: my $x = 42; my $y = 42; say VAR($x).WHICH; say VAR($y).WHICH | 02:13 | |
camelia | rakudo-moar ebccb2: OUTPUT«Int|60179944Int|60179944» | ||
TimToady | yes, that's bogus | ||
02:16
chenryn joined
02:24
aborazmeh joined
|
|||
TimToady | m: my $p1 := (my $x = 42,1); my $p2 := (my $y = 42,1); say $p1 === $p2; | 02:26 | |
camelia | rakudo-moar ebccb2: OUTPUT«True» | ||
TimToady | m: my $p1 := (my $x = 42,1); my $p2 := (my $y = 42,1); say $p1 === $p2; say $p1.WHICH; say $p2.WHICH | 02:27 | |
camelia | rakudo-moar ebccb2: OUTPUT«TrueParcel|(47195968)(Int|1)Parcel|(47195968)(Int|1)» | ||
TimToady | the problem seems to be tha that variables are dereffing on WHICH when they shouldn't | 02:28 | |
so it's ending up with the location of 42, or some such | |||
rather than the location of the variable | 02:29 | ||
02:32
noganex_ joined
|
|||
TimToady | m: my $x; say VAR($x).WHICH | 02:35 | |
camelia | rakudo-moar ebccb2: OUTPUT«Any|17527800» | ||
02:35
noganex left
|
|||
TimToady | the type of the variable should be Scalar | 02:35 | |
m: my $x; say VAR($x).WHAT | |||
camelia | rakudo-moar ebccb2: OUTPUT«(Scalar)» | ||
TimToady | WHAT has it right, it's WHICH that is dereffing wrongly | 02:36 | |
02:43
xenoterracide joined
|
|||
dalek | mentaler: 4fe033f | (Solomon Foster)++ | smoker: Make exception handling more robust. |
02:44 | |
mentaler: a5eb593 | (Solomon Foster)++ | smoker: Custom Build.pm modules need path. |
|||
03:04
pyrimidine joined
|
|||
pyrimidine | any reason that unbase only takes a Str? Seems odd | 03:05 | |
m: :4(0123) | |||
camelia | rakudo-moar ebccb2: OUTPUT«Potential difficulties: Leading 0 does not indicate octal in Perl 6; please use 0o123 if you mean that at /tmp/0pZ67KXJXx:1 ------> :4(0123⏏)Type check failed in binding $str; expected 'Str' but got 'Int' in su…» | ||
pyrimidine | m: :4(‘0123’) | ||
camelia | rakudo-moar ebccb2: OUTPUT«===SORRY!=== Error while compiling /tmp/YXrCp1RM1yBogus statementat /tmp/YXrCp1RM1y:1------> :4(⏏‘0123’) expecting any of: lol composer prefix or term prefix or meta-pr…» | ||
TimToady | because :4(123) makes no sense | 03:06 | |
and you've got smartquotes on | |||
pyrimidine | ah | ||
TimToady | it's not so apparent there, but what about :16(deadbeef)? | 03:07 | |
pyrimidine | where is unbase specced? | 03:09 | |
TimToady | S02:3375 | 03:10 | |
synopsebot | Link: perlcabal.org/syn/S02.html#line_3375 | ||
pyrimidine | I think I need to re-read that spec :) | 03:17 | |
03:19
raiph joined
|
|||
TimToady | I think I need to rewrite it :) | 03:21 | |
ingy | TimToady: Perl? | 03:23 | |
ingy hasn't read the scrollback :) | 03:24 | ||
"I think I need to rewrite it :)" — Larry Wall | |||
TimToady | '"I think I need to rewrite it :)" — Larry Wall' -- Ingy Döt Net | 03:25 | |
ingy | "I think I need to make a language that can rewrite it!" — Ingy döt Net | ||
TimToady | s/D/d/ | 03:26 | |
ingy | don't shout that 'd' man... | ||
b00m! | |||
TimToady | I unshouted it first | ||
ingy | JYNX | ||
ingy is camping out at a Perl monger's house in SLC this week. I guess I wouldn't be here sans TimToady. :) | 03:28 | ||
thanks!! | |||
TimToady | trying to get a jump on YAPC::NA 2015? | 03:29 | |
ingy | aye! | ||
TimToady | yer a little early for the hackathon... | ||
ingy | well Perl 7 might take that long ;) | ||
TimToady | .oO(There is no Perl 7, and Ingy is not its prophet.) |
03:32 | |
ingy | .oO(A prophet is not without honor except in his HOME directory.) |
03:34 | |
03:47
BenGoldberg left
04:01
kaare_ joined
04:11
pyrimidine left
04:14
Salai left,
akaseki joined
04:16
sivoais_ is now known as sivoais,
sivoais left,
sivoais joined
04:18
Salai joined
04:19
akaseki left
04:20
akaseki joined
04:23
Salai left,
JL235 joined
04:25
Salai joined
04:26
akaseki left
04:29
cooper joined,
cooper left,
cooper joined
04:30
Salai left
04:33
jack_rabbit left,
akaseki joined
04:34
akaseki is now known as Salai
04:39
Salai left
04:41
akaseki joined,
akaseki is now known as Salai
04:48
kaare_ left
04:56
chenryn left
04:57
mr-foobar left
05:01
[Sno] left
05:10
chenryn joined
05:12
dwarring left,
araujo left
05:13
raiph left
05:17
Salai is now known as HatakeKakashi
05:18
kaare_ joined
05:22
SamuraiJack joined
05:24
dayangkun_pto left
05:27
HatakeKakashi is now known as Salai,
ecocode left,
ecocode joined
05:31
ecocode left
05:36
kaleem joined
05:40
Zhi joined
05:45
Akagi201 joined
06:01
ecocode joined
06:02
mj41_nb joined
06:06
gfldex joined
06:16
denis_boyun joined
06:19
chenryn left
06:20
sjn_ is now known as sjn
|
|||
cognome | r: ' { a b c } } ' ~~ m/ $<block> = [ '{' ~ '}' [ .+? <before '}'> ] ] /; say $<block>; | 06:22 | |
camelia | rakudo-jvm ebccb2: OUTPUT«(timeout)» | 06:23 | |
..rakudo-{parrot,moar} ebccb2: OUTPUT«「{ a b c }」» | |||
cognome | I thought the <before '}'> would be implicit with the '{' ~ '}' | ||
06:23
aborazmeh left
|
|||
cognome | r: ' { a b c } } ' ~~ m/ $<block> = '{' ~ '}' [ .+? <before '}'> ] /; say $<block>; | 06:24 | |
camelia | rakudo-{parrot,jvm,moar} ebccb2: OUTPUT«「{」» | ||
cognome | Also I thought the capture would include the whole span | ||
r: ' { a b c } } ' ~~ m/ $<block> = [ '{' ] ~ '}' [ .+? <before '}'> ] /; say $<block>; | 06:25 | ||
camelia | rakudo-{parrot,jvm,moar} ebccb2: OUTPUT«「{」» | ||
sergot | hi o/ | ||
cognome | And if I has wanted the opening construct, I would have explicetely grouped it. | ||
TimToady | = only works on atoms, and ~ does not create an atom | 06:26 | |
cognome | I think one can go either way for both but that should be said | ||
Well '{' ~ '}' ... creates something pretty tight, I could have construed that as an atom :) | 06:28 | ||
06:28
chenryn joined
|
|||
cognome | People are usually interested on the whole thing, not the opening construct :) | 06:29 | |
TimToady | it expresses the relationship of 3 atoms, and it's not really a pattern matcher but shorthand for an error check | ||
the purpose of it is to panic if you don't end up at } | |||
you can't simultaneously do that and also have it participate in backtracking | 06:30 | ||
cognome | Well, I find it so convenient that I wanted to do more than it does :) | ||
TimToady | well, but we can't define it to do contradictory things, alas :) | ||
cognome | Anyway, the "work around" were easy enough. | 06:31 | |
TimToady++ for the feedback | 06:35 | ||
06:37
darutoko joined
06:38
[Sno] joined
06:40
chenryn left
06:43
xenoterracide left,
dayangkun joined
06:48
mr-foobar joined
06:49
gfldex left,
chenryn joined,
nebuchad` is now known as nebuchadnezzar
06:51
mj41_nb left
06:58
zakharyas joined
07:10
jerrycheung left
|
|||
danaj | In rakudo from github, if I modify a file in nqp/MoarVM/src/..., what is the best way to get it incorporated into perl6-m at the top level? Even if I do make in nqp/MoarVM and nqp, I can't seem to get perl6 to include it. | 07:11 | |
TimToady | you have to do make install in MoarVM | 07:12 | |
and in nqp if you changed anything there | |||
danaj | tyvm, that's what I was missing. | ||
07:14
nwc10_ is now known as nwc10
07:20
domidumont joined
|
|||
moritz_ | \o | 07:22 | |
07:25
fhelmberger joined
07:34
Rounin_ is now known as Rounin,
FROGGS_ is now known as FROGGS
|
|||
FROGGS | o/ | 07:34 | |
dalek | line-Perl5: 6bc9619 | nine++ | README.md: Fix typo in README.md s/Inline::Perl6/Inline::Perl5/ |
07:35 | |
07:35
bjz left
07:36
bjz joined
08:00
xinming joined
|
|||
nine | FROGGS: I just realized that v5 might become the basis of a P5->P6 translator... | 08:10 | |
FROGGS | nine: when we can generate P6 code from AST, perhaps yes | 08:11 | |
nwc10 | I'm not sure how useful a translator is, in the general case. Even if it gets to 100% of the syntax (which it can't) it won't cover semantics of the Perl 5 runtime that poke through | 08:13 | |
Python's 2to3 didn't exactly help set the world on fire. | |||
so I don't think it's useful as a primary goal. | |||
other people's opinions may vary, and please don't let me stop anyone having fun trying things. | 08:14 | ||
nine | nwc10: not as a primary goal, no. 2to3 failed because one would have to use it on the entire code base including all used libraries to make the transition. | ||
But being able to migrate an application one piece at a time and being able to start with an automatic direct translation might help a lot. | 08:15 | ||
nwc10 | might. I'm still of the opinion that rewriting of working code from Perl 5 to Perl 6 is unlikely. | 08:16 | |
it's subsystem rewrites that we need to "capture" | |||
which is why Inline::Perl5 is awesome | |||
but, I repeat, these are my opinions. | 08:17 | ||
nine | Nobody's gonna rewrite working code just for the sake of it. Especially when with v5 we'll be able to execute P5 code faster. But if I have to do substantial changes to existing code anyway, I'll want to port it to Perl 6 first to be able to use the new features. That's when a translator might come in handy. | 08:19 | |
Even if it doesn't produce 100 % working code. | |||
08:19
telex left
08:20
telex joined,
dakkar joined
|
|||
nine | That's how we got rid of 1000s of lines of Python code anyway. There's still ~ 5000 LOC left, but it used to be twice that. | 08:20 | |
08:33
kjs_ joined,
rindolf left
08:48
domidumont left
08:49
brrt joined,
domidumont joined
08:50
mr-foobar left
08:51
mr-foobar joined
08:54
kjs_ left
08:56
jerrycheung joined
08:57
ecocode left
08:59
jerrycheung left
09:03
kjs_ joined
09:05
brrt left
|
|||
dalek | kudo/nom: fc79953 | (Elizabeth Mattijsen)++ | src/core/Scalar.pm: Fix $.VAR.WHICH |
09:13 | |
09:22
moritz_ is now known as moritz,
xinming left
|
|||
dalek | kudo/nom: 329adf8 | (Elizabeth Mattijsen)++ | src/core/Scalar.pm: Properly fix $.VAR.WHICH |
09:31 | |
kudo/nom: 4a6dbf5 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm: Fix Parcel.WHICH, as reported by TimToady++ |
|||
09:36
Shozan is now known as SHODAN
09:37
daxim joined
09:39
Sqirrel left
|
|||
dalek | ast: 993eb27 | (Elizabeth Mattijsen)++ | integration/advent2013-day07.t: Fix <a b c> === <a b c> test, with explanation |
09:40 | |
09:42
donaldh joined
|
|||
dalek | ast: 33818a0 | (Elizabeth Mattijsen)++ | integration/advent2013-day07.t: Add some descriptions |
09:44 | |
09:45
spider-mario joined
09:46
domidumont left
09:48
domidumont joined
|
|||
dalek | ast: 5dfd323 | (Elizabeth Mattijsen)++ | S02-literals/quoting.t: Unfudge now passing test |
09:48 | |
09:52
xfix_ is now known as xfix,
mr-foobar left,
xfix left,
xfix joined
09:53
mr-foobar joined
|
|||
moritz | m: say <a b c>.WHICH | 09:54 | |
camelia | rakudo-moar ebccb2: OUTPUT«Parcel|(Str|a)(Str|b)(Str|c)» | ||
moritz | m: say ('a', 'b)(Str|c)').WHICH | 09:55 | |
camelia | rakudo-moar ebccb2: OUTPUT«Parcel|(Str|a)(Str|b)(Str|c))» | ||
moritz | m: say ('a', 'b)(Str|c') === <a b c> | ||
camelia | rakudo-moar ebccb2: OUTPUT«True» | ||
moritz | bug (but not new) | ||
09:56
domidumont left
09:57
domidumont joined
10:00
zoosha joined
|
|||
dalek | osystem: 701b9d8 | (Filip Sergot)++ | META.list: a newline removed |
10:03 | |
sergot | "Sprockets" doesn't work on modules.perl6.org | 10:04 | |
I mean, it is printed wrongly | 10:05 | ||
dalek | ast: 83761ab | (Elizabeth Mattijsen)++ | S02-types/parcel.t: Add some Parcel === tests |
10:21 | |
10:21
Zhi left
|
|||
lizmat | moritz: aware of that problem | 10:23 | |
but I don't see a solution apart from creating a WHICH object to be used everywhere | |||
that has === overloaded as eqv | |||
10:23
pmurias joined
|
|||
lizmat | any string representation has the potential of false positives | 10:24 | |
pmurias | re perl5 -> perl6 translator, wouldn't translating test suits when porting modules be really usefull? | ||
lizmat | afk for most of the rest of the day& | 10:25 | |
10:27
mst_ is now known as mst,
mst left,
mst joined
|
|||
FROGGS | pmurias: probably, yes | 10:27 | |
10:32
cosimo left
10:33
cosimo joined
10:43
chenryn left
10:50
chenryn joined
|
|||
donaldh | porting test suites is probably more useful than the actual module. | 10:51 | |
dalek | kudo/nom: ed10d58 | (Elizabeth Mattijsen)++ | src/core/Scalar.pm: Fix Scalar.WHICH for type values |
||
donaldh | I'd want to refactor a module to make it idiomatic Perl 6 but i'd probably not care about the tests so much. | 10:52 | |
lizmat | donaldh: those two statement seem contradictory | 10:57 | |
donaldh | oh | ||
lizmat | .oO( seems we had a change of plan, I won't be afk for most of the day) |
10:58 | |
donaldh | I don't care about the tests being good idiomatic Perl6. I care about the tests testing my module. | ||
Does that make more sense? | |||
lizmat | ah, yes, much more | 10:59 | |
donaldh | It's how we try to work in $dayjob. If we're planning a refactor or rewrite, for whatever reason, try really hard to automatically salvage the tests. | ||
minimize test re-spend. minimized repeated mistake making. | 11:00 | ||
nwc10 | how does running the spectest differ from running a test individually? In that t/spec/S32-array/delete-adverb-native.t fails for me in the spectest (and I can get a coredump) but not if I run it by hand | 11:02 | |
coredump is in malloc (I suspect malloc corruption) called from | |||
#3 0x00003fffab6a5e78 in MVM_string_utf8_decode (tc=0x1002a9b0690, result_type=0x1002a9bd590, utf8=0x3fffcf13f841 "LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01"..., bytes=1314) at src/strings/utf8.c:198 | |||
however running under valgrind spots no problem | 11:03 | ||
11:13
chenryn left
11:20
chenryn joined
|
|||
colomon does a happy dance because OpenSSL (and at least five other modules that had been failing) passed overnight in the smoke test. | 11:29 | ||
dalek | kudo/nom: 5a21173 | (Elizabeth Mattijsen)++ | src/core/ (5 files): Fix many .WHICH related issues: - some cases typeobject.WHICH would fail - other cases WHICH method could be simplified |
11:33 | |
11:36
JL235 left
|
|||
lizmat | m: EVAL "Int".WHAT.say # there must be a better way to change a string into a typeobject | 11:43 | |
camelia | rakudo-moar ed10d5: OUTPUT«(Str)» | ||
lizmat | m: (EVAL "Int").WHAT.say | 11:44 | |
camelia | rakudo-moar ed10d5: OUTPUT«(Int)» | ||
lizmat | (not better but corrector :-) | 11:45 | |
moritz | m: say ::('Int').perl | 11:46 | |
camelia | rakudo-moar ed10d5: OUTPUT«Int» | ||
moritz | lizmat: ^^ | ||
lizmat | moritz++ | 11:47 | |
11:57
mr-foobar left
11:58
mr-foobar joined
11:59
araujo joined,
araujo left,
araujo joined
12:00
chenryn left
12:02
chenryn joined
|
|||
sergot | m: grammar H { token TOP { <a>* }; token a { <a>* }}; say H.new.parse(''); | 12:03 | |
camelia | rakudo-moar ed10d5: OUTPUT«(timeout)» | 12:04 | |
sergot | m: grammar H { token TOP { <a>* }; token a { <a>* }}; | ||
camelia | ( no output ) | ||
12:04
kaleem left
|
|||
lizmat | is there any reason why src/core/IO/Spec/QNX is not included in building the setting ? | 12:08 | |
seems like labster was the one working on that ~ 1 year ago | 12:09 | ||
12:10
rindolf joined
|
|||
dalek | kudo/nom: abd4fed | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm: Fix one more typeobject.WHICH error |
12:12 | |
12:13
chenryn left,
raiph joined
|
|||
lizmat adds IO/Spec/QNX: it's a subclass of IO::Spec::Unix, so hardly any extra code | 12:15 | ||
hmmm... in parrot, it was already added | 12:20 | ||
now added to JVM | |||
but where is the list of modules for moar gone??? | |||
ah, moar_core_sources | |||
moritz | a necessary hack for working around the mac os X make bug | 12:21 | |
lizmat | ah, ok, moritz++ :-) | 12:22 | |
FROGGS | m: grammar H { token TOP { <a>+ }; token a { <a>* }}; say H.new.parse(''); # you shouldn't quantify nothing very often :o) | 12:26 | |
camelia | rakudo-moar ed10d5: OUTPUT«(timeout)» | ||
FROGGS | eww | ||
ohh! | |||
token a calls itself?! | 12:27 | ||
dalek | kudo/nom: dd4baad | (Elizabeth Mattijsen)++ | tools/build/ (2 files): Add IO::Spec::QNX to JVM/MoarVM build It was already on Parrot, for some reason |
||
ast: e063ed7 | (Elizabeth Mattijsen)++ | S02-types/WHICH.t: Add tests for typeobject.WHICH |
12:28 | ||
lizmat | FROGGS: seems like a reasonable assumption ? | 12:29 | |
moritz | only if it consumes a non-empty string before doing so | 12:32 | |
13:03
slavik joined
|
|||
sergot | FROGGS: yeah, I was just curious what can happen then :) | 13:05 | |
it could be a secret sequence to launch something :) | 13:06 | ||
carlin | how often does the projects.json that panda downloads get updated? | 13:08 | |
13:09
kurahaupo left
|
|||
FROGGS | carlin: hourly AFAIK | 13:09 | |
13:09
slavik left
|
|||
carlin | It's missing projects that were added 18+ hours ago, something probably needs to be prodded somewhere | 13:12 | |
ohh the HTTP headers say Last-Modified: Wed, 27 Aug 2014 17:01:14 GMT | 13:13 | ||
13:14
guru joined
13:15
guru is now known as Guest90094,
Guest90094 is now known as ajr_
|
|||
timotimo | o/ | 13:16 | |
raiph | carlin: iirc the cronjobs on several feather hosts were stopped around then | 13:20 | |
(because of hard drive failures) | 13:21 | ||
13:25
aborazmeh joined
|
|||
dalek | kudo/nom: 7e61510 | (Elizabeth Mattijsen)++ | t/spectest.data: Add type.WHICH tests to spectest |
13:26 | |
13:27
kaare_ left
|
|||
jnthn | evening, #perl6 | 13:34 | |
13:34
jerrycheung joined
13:36
mr-foobar left
|
|||
FROGGS | hi jnthn | 13:36 | |
13:36
bjz_ joined
|
|||
FROGGS | jnthn: you are better today? | 13:36 | |
13:36
bjz left
|
|||
jnthn | FROGGS: Yes, in the relative rather than the absolute sense. | 13:37 | |
FROGGS | jnthn: that's a start :o) | 13:38 | |
jnthn | Anything anybody is blocking on that I might be able to address in the next 60-90 mins? | ||
13:39
galledallegator left
|
|||
FROGGS | jnthn: review carlins PR? I don't know about anything else | 13:39 | |
nwc10 | jnthn: PPC Linux works with SPESH disabled apart from 1 test that fails when run from make spectest, but not by hand | 13:40 | |
and I can't work out why | |||
so, seems problem was mostly between keyboard and chair | |||
seems that valgrind exists on PPC, but it's not telling me anything | 13:41 | ||
raiph | jnthn: nine said irclog.perlgeek.de/moarvm/2014-08-30#i_9270066 | 13:42 | |
jnthn | nwc10: Hm, so we know the PPC-argh is in spesh... | 13:44 | |
FROGGS: Which PR, in particular? | |||
13:44
haroldwu_ is now known as haroldwu
|
|||
nwc10 | we know most of it is, and it seems to be mostly in the spectsts for trigonmetric functions | 13:45 | |
jnthn | That sounds like someting I cna do... | ||
13:45
haroldwu left,
haroldwu joined
|
|||
jnthn | nwc10: How far do we get on PPC with spesh enabled? | 13:45 | |
raiph | jnthn: Q from Mouq: irclog.perlgeek.de/perl6/2014-08-31#i_9276802 | ||
nine | raiph: that one is already fixed :) | ||
nwc10 | jnthn: we have spectest failures. implication -> build builds, sanity tests pass, most spectests pass | 13:46 | |
jnthn | raiph: Well, the answer to the nine question is "you leaked an exception from a C callback", usually... :) | ||
nwc10: Ah, OK. Hmmm...that almost certainly means it's something to do with flaots... | |||
raiph | heh, you guys move way too fast | ||
nwc10 | jnthn: however, NQP nativecall test fails. I think it's confusion about 32 vs 64 bit. I've not dug into that one at all | ||
nine | that's exactly what I found out...and that getting refcounts in P5 XS code right is really hard. | ||
nwc10 | jnthn: might be. Seems to blow up with a NULL pointer in stringification. I'm not asking you to worry about this - I assume that I can figure it out | 13:47 | |
jnthn: actually, only question is "is there an easy way to disable spesh, "thing" by "thing", so that I can identify which one it is?" | |||
13:48
FROGGS[mobile] joined
|
|||
jnthn | nwc10: Stringification? Hmm. Try disabling optimize_smart_coerce. | 13:48 | |
(You'll have to hack the code) | |||
nwc10 | I assumed that I was hacking the code. | ||
jnthn | (But should be just commenitn gout the call to it in optimize.c) | ||
13:48
charsbar__ left,
tadzik left,
haroldwu is now known as suckwind
13:49
charsbar__ joined,
tadzik joined,
dirtyob joined
13:50
suckwind is now known as yenshine
|
|||
nwc10 | jnthn: anyway, it's in a lot better shape than I assumed | 13:50 | |
13:50
dirtyob left
|
|||
nwc10 | jnthn: and gives some hopes that we might be able to build on more debian platforms than the 2 usual suspects | 13:50 | |
jnthn | .tell Mouq there are two operations you can do regarding the current routine's MVMCallCapture: usecapture and savecapture. The first populates a per-thread singleton and so is not reentrant. The latter saves a copy. | ||
yoleaux | jnthn: I'll pass your message to Mouq. | ||
13:51
yenshine is now known as haroldwu
|
|||
jnthn | .tell Mouq both are worth avodiing on hot paths; savecapture has to allocate a GC-able, so it's the more expensive of the two. | 13:51 | |
yoleaux | jnthn: I'll pass your message to Mouq. | ||
jnthn | raiph: Thanks for the pointers. :) | ||
nwc10: Sounds good :) | 13:52 | ||
13:52
mls_ is now known as mls
|
|||
nwc10 | jnthn: I'd like mberends to return so that I can pass on the good news. | 13:55 | |
13:56
aborazmeh left
|
|||
jnthn | nwc10: I'm not sure making folks magically appear on IRC is within my capabilities, sorry. :) | 13:57 | |
13:59
nbrown__ joined,
pdcawley left
14:00
pdcawley joined
|
|||
moritz | nwc10: I'm pretty sure mberends has an email address that he still uses :-) | 14:01 | |
masak .oO( "this magical wand makes people appear on IRC. now, *this* one makes it so that they can't actually leave. use with caution." ) | 14:04 | ||
timotimo | that sounds like a pretty terrible fate | 14:05 | |
nwc10 | jnthn: commenting that out changes the SEGV from a NULL pointer to a garbage pointer | ||
jnthn: so it's part of the problem. | |||
I can dig further at some point | |||
timotimo | that is optimize_smart_coerce? | 14:06 | |
nwc10 | timotimo: yes. commenting that out changes the error | ||
timotimo | it may need to check for VMNull on top of a null pointer in the facts->type slot | ||
i had to put that into optimize_can_op to make it robust enough to pass almost all spec tests | 14:07 | ||
jnthn | Not sure why thatd make us a PPC-specific issue though. | 14:09 | |
timotimo | oh | 14:10 | |
i forgot about that part | |||
nwc10 | Big Endian | 14:11 | |
timotimo | maybe it's a problem with the way i'm assigning operands? | ||
they are unions; i'm just assigning them straight with = | |||
i think that generates the proper code, but i can't know for sure ... | |||
hm. i'm assigning to a .lit_i16; perhaps i'm not nulling out the value beforehand? | 14:13 | ||
Timbus | m: class A {}; my $test = (my $x = A.new(:a), A.new(:b), my $y = A.new(:c), A.new(:d)); say $test.perl | ||
camelia | rakudo-moar dd4baa: OUTPUT«$(A.new(), A.new(), $(A.new(), A.new()))» | ||
timotimo | nah, that comes from MVM_spesh_alloc, which nulls out everything properly | ||
Timbus | whys that parcelify the last two.. | 14:14 | |
timotimo | it also parcelifys "all" of it | 14:15 | |
not sure if that's because of the my $x in there | |||
jnthn | I guess 'cus you end up with list assignment precedence there | ||
(for the second assignment) | |||
timotimo | m: class A {}; my $test = (A.new(:a), A.new(:b), my $y = A.new(:c), A.new(:d)); say $test.perl | 14:16 | |
camelia | rakudo-moar dd4baa: OUTPUT«$(A.new(), A.new(), $(A.new(), A.new()))» | ||
timotimo | ah, ok, the $ in front probably comes from assigning to $test | ||
m: class A {}; my $test = (A.new(:a), my $x = A.new(:b), my $y = A.new(:c), A.new(:d)); say $test.perl | |||
camelia | rakudo-moar dd4baa: OUTPUT«$(A.new(), $(A.new(), $(A.new(), A.new())))» | ||
timotimo | m: class A {}; my $test = (A.new(:a), my $x = A.new(:b), my $y = A.new(:c), A.new(:d)); say $test.perl; say $x.perl | ||
camelia | rakudo-moar dd4baa: OUTPUT«$(A.new(), $(A.new(), $(A.new(), A.new())))$(A.new(), $(A.new(), A.new()))» | ||
timotimo | does this make it clearer? | ||
(see also: why you have to write { my ($a, $b) } rather than { my $a, $b }) | 14:17 | ||
Timbus | yeah i guess. makes gtk::simple a little less.. cool | ||
timotimo | have i been doing that wrong in the example code? | ||
Timbus | no, it will work as long as you avoid making parcels | ||
timotimo | ah, you mean inside an argument list it'll work fine? | 14:18 | |
m: say(my $a = "hello", my $b = "world"); say $a.perl; say $b.perl; | 14:19 | ||
camelia | rakudo-moar dd4baa: OUTPUT«helloworld"hello""world"» | ||
timotimo | apparently. phew :) | ||
Timbus | as long as you assign everything to a var, or only the first thing.. otherwise youll need to break out the ()'s | 14:20 | |
dalek | p: 12ac42b | jonathan++ | src/QRegex/Cursor.nqp: Avoid a bunch of str boxing in !cursor_pass. When we have a conditional in non-void context, it needs to produce a single kind of result; since a method call cannot be known to unbox to a native string, then this caused us to perform a boxing operation. This gets rid of a boxing operation on every !cursor_pass. |
14:24 | |
timotimo | neat! | ||
jnthn | profiler++ | 14:25 | |
lizmat | NQP_REVISION bump? | 14:26 | |
jnthn | Who says I'm done yet? :P | ||
lizmat | ah, ok | ||
timotimo | :D | ||
colomon | woah, that sounds like a handy optimization | ||
lizmat awaits do for { start { @jnthn_fixes } } # to make things faster in wallclock | |||
dalek | p: b40622d | jonathan++ | src/QRegex/Cursor.nqp: Save an integer boxing in every !reduce. Similar trick to the previous commit; again, saves an allocation on every Cursor that passes. |
14:29 | |
moritz | await Promise.allof(@jnthn_fixes) | ||
jnthn | Those two between them cut two GC runs off the benchmark nqp-m parse-json projects.json 10 | 14:31 | |
timotimo | that's amazing | ||
moritz | two out of how many? | ||
jnthn | moritz: From 31 down to 29 | ||
moritz | so about 6%. Not bad. | 14:32 | |
m: say 29 / 31 * 100 | |||
camelia | rakudo-moar dd4baa: OUTPUT«93.548387» | ||
moritz | m: say (31 - 29) / 31 * 100 | ||
camelia | rakudo-moar dd4baa: OUTPUT«6.451613» | ||
moritz | it's a poor testament for my math skills that I don'T get a simple percent calculation right on the first attempt | 14:33 | |
masak | it's these bloody abacus machines. | 14:34 | |
they have ruined real understanding of the underlying numbers. | |||
moritz | :-) | ||
jnthn | That or studying advanced enough math you forget what a number is... :P | ||
masak | my math only contains arrows these days. and knots. | 14:35 | |
colomon | moritz++ # I do the same thing at least 50% of the time I try to calculate a percentage | ||
masak | I haven't seen a number in months. | ||
14:36
nam_ joined
|
|||
jnthn | Such abstract... | 14:36 | |
tadzik | computer, messages | ||
hmm | |||
jnthn | Well, that was disappointing :P | 14:37 | |
moritz | I know understand why many of my friends were so bad at math | ||
they made the same stupid mistakes that I do | |||
tadzik | weechat says there was something | 14:38 | |
moritz | but I think "93%? that can't be right", and look further | ||
whereas they often say "yay, a result! We can play soccer now!" | |||
well, put that in past sense | |||
tadzik | oh, a rakudobrew.ad :) | 14:39 | |
jnthn | .ad? | ||
masak .oO( much .ad about nothing ) | 14:41 | ||
moritz | rakudobrew sells ads now? | 14:42 | |
nam_ | Code: 'my @a = abcadae ~~ m:g/a/' I would have exspected that @a contains 3 a's as it would in perl5. what am I doing wrong? | 14:43 | |
moritz | m: 'abcadae' ~~ m:g/a/; my @a = $/.list; say @a.elems | 14:44 | |
camelia | rakudo-moar 7e6151: OUTPUT«0» | ||
moritz | nam_: there's some only recently resolved spec issue around ~~ m:g// that's not yet implemented in rakudo | 14:45 | |
m: $_ = 'abcadae'; m:g/a/; say $/.list.elems | |||
camelia | rakudo-moar 7e6151: OUTPUT«0» | ||
moritz | m: $_ = 'abcadae'; say (m:g/a/).elems | 14:46 | |
camelia | rakudo-moar 7e6151: OUTPUT«3» | ||
TimToady | m: ('abcadae' ~~ m:g/a/).WHAT.say | ||
camelia | rakudo-moar 7e6151: OUTPUT«(Bool)» | ||
TimToady | that's wrong | ||
so not yet resolved | |||
moritz | TimToady: yes, m:g/a/ still returns a list in rakudo | ||
jnthn | m: say 'abcadae'.match(/a/, :g) | ||
camelia | rakudo-moar 7e6151: OUTPUT«「a」 「a」 「a」» | ||
moritz | TimToady: the spec issue is resolved, iirc | ||
TimToady | no, it's returning Bool ^^ | ||
jnthn | Use ^^, which has been reliable for ages... | ||
14:46
xenoterracide joined
|
|||
moritz | TimToady: no, $rhs ~~ m:g/a/ returns Bool | 14:47 | |
colomon | tadzik: can you please look at my two patches to emmentaler? the more recent I'm pretty confident about, but the exception handling stuff from before that might be better expressed in other ways. (I sort of only committed it by accident.) | ||
moritz | TimToady: it's the ~~ that turns the List into Bool | ||
TimToady | m: $_ = 'abcadae'; say m:g/a/.WHAT | 14:48 | |
camelia | rakudo-moar 7e6151: OUTPUT«(List)» | ||
TimToady | okay, NYI | ||
14:49
mr-foobar joined
|
|||
TimToady | and it's 0 because it's redispatching to List.ACCCEPTS | 14:49 | |
14:50
PotatoGim^Home joined
|
|||
TimToady | nam_: we'll get it close to working as you'd expect soonish, though I believe it still requries a .list because Match doesn't quite act like a Parcel | 14:51 | |
nam_ | hm this seems to work: say 'abcadae'.match(/a/, :g) a little confusing | 14:52 | |
moritz | yes, it is. It must be fixed. | ||
TimToady | m: $_ = 'abcadae'; m:g/a/; say @$/.elems | 14:55 | |
camelia | rakudo-moar 7e6151: OUTPUT«0» | ||
spider-mario | perl6.org/compilers/features | ||
what are “delayed declarations”? | |||
TimToady | m: $_ = 'abcadae'; m:g/a/; say $/.elems | ||
camelia | rakudo-moar 7e6151: OUTPUT«0» | ||
TimToady | m: $_ = 'abcadae'; m:g/a/; say $/.list.elems | ||
camelia | rakudo-moar 7e6151: OUTPUT«0» | ||
TimToady | m: $_ = 'abcadae'; m:g/a/; say $/[0].elems | ||
camelia | rakudo-moar 7e6151: OUTPUT«0» | ||
moritz | spider-mario: declaring stuff in a macro | ||
spider-mario | oh, ok | ||
moritz | spider-mario: (more specifically, inside an unquote) | 14:56 | |
TimToady | uh, in my coffeeless state I'd guess more like in a quasi | ||
masak | spider-mario: see D4 of news.perlfoundation.org/2011/09/hag...mplem.html | ||
14:56
fhelmberger left
|
|||
spider-mario | thanks | 14:57 | |
masak | briefly, if you do `class C {}` in normal code, it registers with the package scope and you can use it directly. | ||
if you do the same in a quasi, you don't expect to get a class C (or whatever) to play with. not until you install the quasi in some actual code. | 14:58 | ||
TimToady | it's the problem of generic code | ||
masak | yes. | ||
TimToady | so there needs to be a "compose" somewhere | ||
moritz | TimToady: yes, in a quasi | ||
TimToady | otherwise known as instantiation | ||
not to be confused with instantiation :) | 14:59 | ||
masak | it's a bit of functions:invocations :: quasis:splicings. | ||
moritz | well, one could also argue it's a problem of scope | ||
if all declarations were lexical, it would be much less of an issue | |||
masak | that's not the language I have to implement this thing in, though :) | 15:00 | |
TimToady | in some ways it's easier with textual macros, because you know you have to reparse, and it's clear at what level the declarations happen | ||
when "reparsing" must happen at a deeper level, it's a little more abstract | 15:01 | ||
15:01
nam_ left
|
|||
TimToady | "what would the text that would have produced this AST have done besides producing this AST?" | 15:01 | |
masak | right. AST macros are semi-digested already. the trick is keeping track of all the semi-digested information (tree, scopes, world-style declarations) | ||
D4 is tempered a little bit for me by the fact that we now know that the foundation on which it rests needs to be rethought. | 15:02 | ||
moritz | you mean the macro part? or World? | 15:03 | |
masak | the macro part. | ||
TimToady | or the grammar part? | ||
masak | oh, the grant is/was fully aware of Worlds, thank blog. | ||
moritz | or the rest? :-) | ||
masak | yes, the grammar part is part of what needs to be worked into it all. | ||
TimToady | he's already had the rest :P | 15:04 | |
moritz | the World is not enough.. | ||
lizmat | m: my $p1 := (my $x = 42,1); my $p2 := (my $y = 42,1); say $p1 === $p2; say $p1.WHICH; say $p2.WHICH # TimToady: is that better ? | ||
camelia | rakudo-moar 7e6151: OUTPUT«FalseParcel|(Scalar|71759448)(Int|1)Parcel|(Scalar|71759520)(Int|1)» | ||
masak | I have a number of use cases mulling/mulching around in my head. | ||
but what I really need to do is sit down and collect everything that's happened in the past year or so, and try to find a kind of synthesis. | |||
15:05
domidumont left
|
|||
TimToady | lizmat: yes, that looks better | 15:07 | |
m: my $x; say VAR($x).WHICH | 15:08 | ||
camelia | rakudo-moar 7e6151: OUTPUT«Scalar|67054336» | ||
TimToady | \o/ | ||
15:09
fling is now known as larie
|
|||
lizmat | TimToady: any suggestions as to the point that moritz raised at irclog.perlgeek.de/perl6/2014-09-01#i_9278769 | 15:09 | |
? | |||
jnthn | m: say 963420 / 1867062 | 15:10 | |
camelia | rakudo-moar 7e6151: OUTPUT«0.5160086» | ||
Ulti | m: say (1,2,3;4,5,6).perl | 15:11 | |
camelia | rakudo-moar 7e6151: OUTPUT«(1, 2, 3; 4, 5, 6)» | ||
moritz | lizmat: to me, the solution is pretty clear | ||
dalek | p: 1058b96 | jonathan++ | src/QRegex/Cursor.nqp: Various micro-optimizations to MATCH. These avoid various bits of boxing. In fact, all of the boxing that we accidentally did in MATCH. In a parse-heavy benchmark such as the NQP JSON parser, this cuts the number of object allocations roughly in half by number (though since it cuts down on boxing, and boxes are comparatively small, it's a much smaller decrease on GC runs needed, from 29 to 25). |
||
moritz | lizmat: Parcel.WHICH needs to escape the characters ( and ) in the .WHICH strings from its elements | 15:12 | |
TimToady | lizmat: yes, our current implementation of WHICH is subject to injection attacks | ||
and as we know, escaping is only a partial solution | 15:13 | ||
and bug prone | |||
jnthn | All todays patches guided by pfoiler++ | ||
uh | |||
profiler++ | |||
15:13
dayangkun left
|
|||
lizmat | hence my reluctance to go down that path | 15:13 | |
I see .WHICH being used in 2 ways in the setting: | |||
1. as a string, for typed hashes and sets/bags/mixes | 15:14 | ||
TimToady | identity is a sequence of assertions, any one of which can falsify | ||
lizmat | 2. for comparisons | ||
TimToady | but these assertions could be integer comparisons | ||
lizmat | for the typed hashes etc, we need a string | ||
TimToady | and integers are possibly easier to hash than chars | ||
FROGGS | tadzik: there is a message for tadzik2 from me :o) | 15:15 | |
lizmat | but for comparisons, I would argue, I would argue we need some === overload that would do a sort of eqv on whatever the objects are | ||
maybe an "eqw" operator ? | 15:16 | ||
moritz | or maybe we just need a single routine that can collapse a tree of ObjAt objects into a single one | ||
lizmat | moritz: how would that help value based objects? | ||
moritz | lizmat: what would be the difference between eqw and === ? | 15:17 | |
TimToady | if your cryptohash is good enough, you can do the git trick, yes | ||
TimToady thinks the string notion of identity is a bit misguided in the first place | |||
lizmat | === checks the stringification of the .WHICH object | ||
eqw would do an eqv on the .WHICH of the object tree | |||
eqw could be cheaper, as most === are not true | 15:18 | ||
jnthn | Let's be clear *why* ObjAt is currenlty a string. It's because the existing portable hash support we have over different backends, that was to hand when getting object arrays in there in the first place, was string keys. | ||
TimToady | you should be able to ask an object for a hash of its identity | ||
15:18
zakharyas left
|
|||
lizmat | and could therefore fail on the first mismatch | 15:18 | |
15:18
larie is now known as fling
|
|||
moritz | lizmat: as long as that's something internal, and not another user-exposed equivalence operator, I'm all fine with that | 15:19 | |
jnthn | That does not mean we should keep it that way; it was done that way so we could actually have object hashe at all, 'cus too many things blocked on them, and a passable-for-now implementation "now" beat a perfect one "later" | ||
TimToady gets the feeling eqw is a bandaid over a suboptimal design, yes | 15:20 | ||
we should fix the notion of identity to be composable | |||
if you later have to serialize *that* in order to hash, so be it | 15:21 | ||
lizmat | quite likely so: but needing to build a string of a Set of 1M entrues for an ===, when you know the Set you're comparing with is most likely not the same | ||
seems less optimal to say the least | |||
TimToady | but I was thinking of the precise phrase "injection attack" several days ago with respect to this problem | ||
and that's exactly what moritz++ did | 15:22 | ||
thankfully he did it with good intentions :) | |||
lizmat | (and has done before, I know, it wasn't forgotten moritz++) | ||
TimToady | but this really is a security issue, or governments would not issue us identity cards | 15:23 | |
lizmat | how about we create a WHICH class, and that all .WHICH methods return an object of that type | ||
moritz | lizmat: we have that part already. It's called ObjAt | 15:24 | |
TimToady | though the At is a misnomer | ||
lizmat | and then handle the comparison code (the "eqw" thing) in there | ||
15:24
nbrown__ left
|
|||
TimToady | and the internal algorithm can remain hidden and optimizable | 15:24 | |
you do need to be able to ask it for a .hashval or so | 15:25 | ||
15:25
nbrown__ joined
|
|||
TimToady | which it might or might not cache | 15:25 | |
masak | hashing is a typical domain where not looking at how other big languages do things would be almost criminally stupid. | ||
TimToady | it's sort of a smart ID card :) | ||
well, python has a way to ask objects what their hash is | 15:26 | ||
masak | I think you can get pretty far by doing `$hash = 31 * $hash + hash($part);` over all parts. 31 is prime and has nice optimization properties. | ||
tadzik | FROGGS: oh! :) | 15:27 | |
masak | that's what I tend to see in Java. I'm by no means an expert, but that trick alone seems to carry pretty far. | ||
15:27
tadzik is now known as tadzik2
|
|||
tadzik2 | computer, messages | 15:27 | |
TimToady | well, modulo having a non-randomized hash algo is also a potential dos hole | ||
tadzik2 | FROGGS: :( | ||
FROGGS | or tadzik3 *g* | ||
I thought I told you something | 15:28 | ||
tadzik2 | :D | ||
15:28
tadzik2 is now known as tadzik
|
|||
TimToady | time travel? | 15:28 | |
parallel worlds? | |||
masak | TimToady: I'll let others weigh in on that. I don't know enough about the DOS aspects of hashing. (although I find them fascinating.) | ||
TimToady | ESP? | ||
tadzik | colomon: okay, I'll take a look | ||
FROGGS | tadzik: maybe I just pinged you | ||
colomon | tadzik: thanks | 15:29 | |
FROGGS | (was about the PR colomon++ merged) | ||
TimToady | tachyons? | ||
transactional QM? | |||
15:29
nbrown__ left
|
|||
moritz | "now will rollbacks!" | 15:29 | |
masak | :P | 15:30 | |
TimToady forgets what we were talking about | |||
masak | today's mini-challenge: (been a while since we had one) | ||
you're given the text "The quick brown fox jumps over the lazy dog." | |||
FROGGS | shall we dance it? | 15:31 | |
masak | and two operations: italic($from, $len) and bold($from, $len), where $from and $len work like in substr. | ||
given an input of N such italic/bold operations, emit the most sensible properly nested markup of <i>...</i> and <b>...</b> tags on the text. | 15:33 | ||
the task is interesting because (a) one has to decide what an operation on a "mixed" piece of text does, and (b) the operations are allowed to mis-nest, but the tags in the markup aren't. | 15:34 | ||
moritz | masak: what about mutliple-times bolding and italicing? | 15:35 | |
FROGGS | right, operating on .words | ||
moritz | ie, what shoudl bold(0, 20); bold (0, 10); yield? | ||
TimToady | Really Really Bold | ||
jnthn | Well, I'm done with the Cursor allocation opts now. If somebody fancies bumping NQP_REVISION, go for it :) | ||
TimToady | maybe translate to Double Struck | 15:36 | |
FROGGS | jnthn: let me test it first :P | ||
moritz | TimToady: well, "good" fonts support 5 or more font weights | ||
15:36
grondilu joined
|
|||
masak | moritz: same as in Office Suites: if it's completely unbold when you bold it, it becomes bold -- otherwise, it becomes unbold. | 15:36 | |
grondilu | p6: my $a = (1, 2); $a ,= 3 | 15:37 | |
masak | moritz: that, incidentally, is also the same semantics that empty/intermediate/checked checkboxes have. | ||
camelia | rakudo-jvm 7e6151: OUTPUT«(timeout)» | ||
( no output ) | |||
15:37
khisanth_ is now known as Khisanth
|
|||
moritz | masak: ok | 15:37 | |
grondilu | m: my $a = (1, 2); say $a ,= 3 | ||
camelia | rakudo-moar 7e6151: OUTPUT«(signal )» | 15:38 | |
grondilu | my $a = (1, 2); $a ,= 3 # this hangs in the REPL | ||
lizmat | confirmed locally | ||
15:39
molaf joined
|
|||
lizmat | m: my $a = (); say $a ,= 3 # more golfed down | 15:39 | |
camelia | rakudo-moar 7e6151: OUTPUT«(signal )» | ||
moritz | m: (my $a = ()) ,= 3 | 15:40 | |
camelia | ( no output ) | ||
lizmat | the signal is probably from using too much memory | ||
masak | once you start adding threes, it's really hard to stop. | ||
lizmat | i very quickly grew to 1G on my machine | ||
*it :-) | |||
jnthn | At least we're fast at allocating these days... :P | ||
grondilu | m: (my $ = ()) ,= 1 # I win the golfing contest ;) | ||
camelia | ( no output ) | ||
FROGGS | m: say (my $ = ()) ,= 1 | 15:41 | |
TimToady | m: $ = () ,= 1 | ||
dalek | kudo/nom: af0fa9f | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Locally.pm: Fix one more type-object.WHICH failure |
||
camelia | rakudo-moar 7e6151: OUTPUT«(timeout)» | ||
( no output ) | |||
TimToady | m: ($=()),=1 | 15:42 | |
camelia | ( no output ) | ||
TimToady | hmm | ||
m: @,=1 | |||
camelia | ( no output ) | ||
dalek | ast: 3bd9a0b | (Elizabeth Mattijsen)++ | S02-types/WHICH.t: Check for ObjAtness of .WHICH |
||
moritz | masak: pity we don't have a Set::IntSpan implementation in Perl 6 | 15:43 | |
TimToady | m: say @,=1 | ||
camelia | rakudo-moar 7e6151: OUTPUT«1» | ||
TimToady | m: say $,=1 | ||
camelia | rakudo-moar 7e6151: OUTPUT«===SORRY!=== Error while compiling /tmp/dS9vvtxoFXUnsupported use of $, variable; in Perl 6 please use $*OUT.output_field_separator()at /tmp/dS9vvtxoFX:1------> say $,⏏=1» | ||
TimToady | heh | ||
moritz | masak: would come in handy for this problem | ||
TimToady | m: say $ ,=1 | ||
camelia | rakudo-moar 7e6151: OUTPUT« 1» | ||
TimToady | I guess it has to be a my | 15:44 | |
dalek | kudo/nom: df2245d | (Tobias Leich)++ | tools/build/NQP_REVISION: bump nqp rev for MATCH/!reduce opts by jnthn++ |
||
masak | moritz: I should add that I haven't thought enough about the problem (in this form) to have formed an elegant model of it myself. | 15:45 | |
but yes, IntSpan seems to be vaguely in the right direction. | |||
TimToady | not to me; seems more like hyper XOR on a slice | 15:46 | |
masak | hm, interesting. | ||
15:46
kaare_ joined
|
|||
masak | I was thinking of boundaries, not individual characters. | 15:46 | |
TimToady | doubtless there are problem sets where one or the other approach will do better | 15:47 | |
15:47
noganex joined
|
|||
moritz | TimToady: I thought about bit fields too | 15:48 | |
TimToady | depending on how much boundary simplification transformations you're forced to do, vs the single final boundary pass of the xor approach | ||
moritz | TimToady: but in the end, you have to extract ranges again, and skiplists can also XOR | ||
TimToady goes for conceptually simpler in that case :) | 15:49 | ||
tadzik | colomon: both patches look good to me | ||
one of them hints at panda throwing wrong exceptions somewhere | |||
TimToady | elegant does not always mean impenetrable :) | ||
15:50
noganex_ left
|
|||
masak | I think my solution leans towards the boundaries solution: I would try to keep a tree of objects corresponding to the final XML structure, and then have each line of input percolate down the tree, making the necessary transformations. | 15:51 | |
TimToady | and, actually, in the xor approach, you never actually have to locate the boundaries at all, since deciding the font is done on each character anyway | ||
masak: as I said, impenetrable :P | |||
masak | heh :) | 15:52 | |
TimToady | er, my previous point was in how your wysiwyg editor, not xml | ||
15:52
denis_boyun left
|
|||
TimToady | s/editor/editor works/ | 15:52 | |
obviously xml is boundary oriented | |||
unless you wrap each xml character individually :) | 15:53 | ||
masak | well, my solution would certainly make serialization easy by the end. dunno how elegant the tree transformation logic could be made, though. | ||
TimToady | which makes the boundaries Someone Else's Problem :) | ||
masak | feels like it could be interesting if approached from a Haskell/pattern matching angle. | ||
TimToady | .oO(impenetrable) |
||
TimToady doesn't actually like his Red-Black solution on RC much... | 15:54 | ||
masak | TimToady: well, "most sensible" in the requirements was meant to forbid things like "each characters is marked up individually" | ||
character* | 15:55 | ||
15:55
kaleem joined,
nuggs joined
|
|||
TimToady | well, it's not like detecting runs isn't about the 9th problem of the 99 problems | 15:56 | |
15:57
khisanth_ joined
|
|||
TimToady | so it's very FP, which must mean it's elegant :) | 15:57 | |
masak | :P | ||
masak is reminded that he never did create a lagging-variable module | |||
15:58
Khisanth left,
khisanth_ is now known as Khisanth
15:59
raiph left
|
|||
TimToady averts his gaze from the shiny squirrel and looks back upon the log | 16:00 | ||
nuggs | Dense me can't find the list of supported platforms for Rakudo. I failed to build on Arm, and wonder if that's expected. | ||
lizmat | nuggs: nwc10 is currently unbitrotting on ARM | 16:01 | |
nuggs | lizmat: thanks. | ||
TimToady | we could use more continuous testers to do more continuous testing :) | ||
jnthn | Well, really it depends on backend. Rakudo on JVM will run anywhere that's resourceful enough and can run a JVM. Rakudo on MoarVM...what lizmat said. It certainly *has* worked on ARM, but bitrot... | 16:02 | |
Anyways, sleep o/ | |||
TimToady | o/ | ||
masak | m: sub forl(@vals, &block) { for @vals[1..*] Z @vals[0..*-1] -> $current, $last { &block($current, $last) } }; forl 24..77, -> $c, $l { if $c div 10 > $l div 10 { say "Passed from {$l div 10}0s to {$c div 10}0s" } } | 16:04 | |
camelia | rakudo-moar 7e6151: OUTPUT«Passed from 20s to 30sPassed from 30s to 40sPassed from 40s to 50sPassed from 50s to 60sPassed from 60s to 70s» | ||
masak | in fact, lagging variables are a lot about boundaries. | 16:05 | |
masak wants to think about this issue more, but needs sleep | |||
'night, #perl6 | |||
lizmat | night masak | 16:06 | |
TimToady | \o | ||
colomon | tadzik: thanks | ||
o/ | |||
is masak in China too? | |||
lizmat | colomon: yes | 16:07 | |
colomon | lizmat: thanks | ||
lizmat | he's +0800 GMT | 16:08 | |
or was it +0900 because of summetime? | |||
colomon | I'm just used to him going to bed at dinner time rather than lunch time. :) | 16:09 | |
16:14
donaldh left
|
|||
timotimo | should i expect many spec test failures? | 16:14 | |
lock.rakudo.moar is probably flappy, but there's also a whole bunch of io-spec-* tests failing | 16:15 | ||
uniq and split are failing, too :( | |||
colomon | :( | ||
lizmat | timotimo: apart the known segfault in t/spec/integration/99problems-51-to-60.t , my spectests have been clean? | 16:16 | |
timotimo | OK, it seems like my addition of bindattrs_* to the jit has caused failures | 16:18 | |
ooooh | 16:19 | ||
haha :) | |||
copy-paste programming strikes again | |||
16:22
PotatoGim^Home left
16:25
jack_rabbit joined
|
|||
timotimo | back to only known spectest failures. great! :) | 16:25 | |
16:27
pmurias left
|
|||
cxreg | planeteria still down? :/ | 16:28 | |
timotimo | .tell brrt if we could see "beginning of inlined frame for function $foobar" in the jit log, that'd be interesting | 16:29 | |
yoleaux | timotimo: I'll pass your message to brrt. | ||
timotimo | .tell brrt for example, i see !cursor_pass only jitted like 50% of the time, spesh'd the other 50%, but in the jit log i can only see successful jittings of that frame, so it's probably in-lined versions of that otherwise? | 16:30 | |
yoleaux | timotimo: I'll pass your message to brrt. | ||
jdv79 | its not like planet perl 6 has fresh content more than once a week anyway | 16:36 | |
but it was nice when it was up | 16:37 | ||
timotimo | nothing's wrong with planetaria itself; the domain has been "stolen", though | 16:38 | |
16:39
mberends joined
16:41
vendethiel left
16:48
mberends left
16:50
gfldex joined,
mberends joined
16:54
dakkar left
16:55
xenoterracide left,
nuggs left
16:58
bjz_ left,
bjz joined
17:00
xenoterracide joined,
Ven_ joined
17:01
kaleem left
17:03
xenoterracide left
17:05
[Sno] left
17:06
slavik joined
17:08
vendethiel joined,
SamuraiJack left
17:09
xenoterracide joined
17:10
kurahaupo joined
17:11
ajr_ left
|
|||
grondilu | if %h{$a} :exists { my $b = %h{$a}; ... } # how can I write this but avoiding calling %h{$a} twice? | 17:13 | |
grondilu notices he can't write (my $b = %h{$a}) :exists | 17:14 | ||
vendethiel | grondilu: the :exists would apply to the my | ||
m: my $v = 'a'; my %h = b => 1; given %h{$v} { .say if .defined } | 17:15 | ||
camelia | ( no output ) | ||
vendethiel | m: my $v = 'a'; my %h = a => 1; given %h{$v} { .say if .defined } | ||
camelia | rakudo-moar df2245: OUTPUT«1» | ||
vendethiel | grondilu: something like that? Won't work if you hold `Nil`s; tho | ||
grondilu | .defined is equivalent to :exists? If so I'll use that. | ||
vendethiel | no, not exactly | 17:16 | |
m: say Nil.defined | |||
camelia | rakudo-moar df2245: OUTPUT«False» | ||
vendethiel | which is why you don't want what I wrote if you might have non-`defined` values in your hash. | ||
grondilu | I don't think there will so it will do. | ||
jdv79 | wanted to do some simple testing with p6 which leads to rakudobrew and then perlbrew. i guess centos 5 is "old" now. | 17:23 | |
17:24
FROGGS[mobile] left
|
|||
TimToady | .oO(First make it work, then make it fast, then make it work everywhere, then make it work everywhen...) |
17:24 | |
17:27
mberends left
|
|||
vendethiel | ... then debug it everywhere | 17:27 | |
TimToady | nah, that's what downstream is for | 17:28 | |
17:29
telex left
|
|||
TimToady is attempting to remove from roast the assumption that parcels autoflatten under elems and .[] | 17:29 | ||
so that parcels being used a tuples behave more as expected | 17:30 | ||
17:30
telex joined,
bjz left
17:31
bjz joined
17:34
MilkmanDan left
|
|||
vendethiel | TimToady: I'm afraid "which-method-flatten-which-don't" is gonna be like learning which method takes a LIST or a scalar in p5 | 17:34 | |
is it a macro or a function in lisp. Is it a ... | |||
17:35
kjs_ left
17:38
MilkmanDan joined
|
|||
japhb_ | Looking at today's commits ... what was the total effect of jnthn++'s MATCH optimizations? | 17:39 | |
17:47
Ven_ left
|
|||
TimToady | vendethiel: yes, I'm thinking about that problem, but I also don't want to force everyone to write .flat everywhere either | 17:49 | |
17:49
brrt joined
17:50
dwarring joined
|
|||
TimToady | japhb_: compile looked maybe 3-4% faster, but might've just been a cold CPU :) | 17:51 | |
rindolf | Hi all. | 17:52 | |
TimToady: hi, happy labour day. | |||
vendethiel | TimToady: I don't have a lot of my brain focused on that, but it'd seem *very* natural to me to have EVERY method flatten EXCEPT methods that change said flattening (.item, .tree, .flat ... wait no not flat :P) | 17:56 | |
"does it flatten ? Well, the answer is easy. If it needs not to (because it's going to change the structure), then no, else yes" | 17:57 | ||
as I said, I'm only considering this with a VERY naive approach. | |||
TimToady | What is this "labour" of which you speak? | 17:59 | |
vendethiel | TimToady: question would be: can we make this seem "natural" *and* "logical" to people? You're certainly the best placed to answer that | 18:00 | |
18:01
labster joined
|
|||
vendethiel | ("best placed" looks pretty terrible to me now, english-wise) | 18:03 | |
18:05
Ven_ joined
|
|||
jdv79 | wow, compiling p6 drove my under-mem'd box into swap | 18:09 | |
i think i'll look tomorrow to see if its done | |||
18:10
bjz left
18:11
bjz joined,
molaf_ joined
18:13
bjz left,
bjz joined
18:14
bjz left,
molaf left,
firefish5000 joined,
bjz joined
18:16
bjz left,
bjz joined
|
|||
dalek | p: 3d14d41 | (David Warring [email@hidden.address] | examples/rubyish/rubyish.nqp: Add custom Rubyish::Compiler eval method. Work around for #177. |
18:21 | |
firefish5000 | m: say "{$_}" for (1, 2, 3); | 18:22 | |
camelia | rakudo-moar df2245: OUTPUT«» | ||
firefish5000 | m: say "$_" for (1, 2, 3); | ||
camelia | rakudo-moar df2245: OUTPUT«123» | ||
Ven_ | m: say "$($_)" for (1, 2, 3); | ||
camelia | rakudo-moar df2245: OUTPUT«123» | ||
firefish5000 | m: for (1, 2, 3) { say "{$_}" ; } | 18:23 | |
camelia | rakudo-moar df2245: OUTPUT«123» | ||
18:23
jdv79 left
|
|||
Ven_ | Don't ask me. | 18:24 | |
18:25
jdv79 joined
|
|||
rindolf | TimToady: labour is the British spelling of "labor". | 18:25 | |
jdv79 | well, i guess one can't compile p6 on a box with 512M ram and 1G swap | ||
that sucks | 18:26 | ||
the thing just OOM'ed out i guess | |||
firefish5000 | ask "are these supose to interpoliate differently?" unless ($User.name eq 'Ven_'); | 18:27 | |
Ven_ | answer: I don't interpoliate a lot :P | ||
firefish5000 | Ven_: Neither do I, and I don't seem to be very good at either. | 18:30 | |
labster | lizmat: QNX was a platform that was trivially easy to support its minor differences (unlike VMS), so I went ahead and ported that from p5 File::Spec | 18:35 | |
of course no one actually uses it, so no one knows it's missing | |||
Ven_ | jnthn: for async, WRT cancellation - do you want a separate class for this? | 18:39 | |
Or do you want to do it the .net way, with CancellationTokens? | |||
(and TryCancellable) | |||
dalek | p: 883e264 | (David Warring [email@hidden.address] | examples/rubyish/ (4 files): drop @@package vars misfeature |
18:47 | |
firefish5000 | m: $_=q<cat>; say "{$_}" for (1,2); | 18:58 | |
camelia | rakudo-moar df2245: OUTPUT«catcat» | ||
firefish5000 | m: $_=q<cat>; say "{$_}$_" for (1,2); | ||
camelia | rakudo-moar df2245: OUTPUT«cat1cat2» | ||
firefish5000 | ... | ||
m: $_=q<cat>; { say "{$_}$_"; } for (1,2); | 19:00 | ||
camelia | rakudo-moar df2245: OUTPUT«1122» | ||
colomon | m: qx/ls/ | ||
camelia | rakudo-moar df2245: OUTPUT«qx, qqx is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in sub QX at src/RESTRICTED.setting:9 in block <unit> at /tmp/E48VaiZgUV:1» | ||
19:02
darutoko left
|
|||
firefish5000 | m: $_=q<cat>; say "<$_>$_"; for (1,2); | 19:03 | |
camelia | rakudo-moar df2245: OUTPUT«===SORRY!=== Error while compiling /tmp/P06_FzMmg0Missing blockat /tmp/P06_FzMmg0:1------> $_=q<cat>; say "<$_>$_"; for (1,2)⏏; expecting any of: postfix parameterized block» | ||
firefish5000 | m: $_=q<cat>; say "{$_}$_"; for (1,2); | ||
camelia | rakudo-moar df2245: OUTPUT«===SORRY!=== Error while compiling /tmp/c61fSiDwGUMissing blockat /tmp/c61fSiDwGU:1------> $_=q<cat>; say "{$_}$_"; for (1,2)⏏; expecting any of: postfix parameterized block» | ||
firefish5000 | m: $_=q<cat>; say "{$_}$_" for (1,2); | 19:04 | |
camelia | rakudo-moar df2245: OUTPUT«cat1cat2» | ||
firefish5000 | m: $_=q<cat>; say "<$_>$_" for (1,2); | ||
camelia | rakudo-moar df2245: OUTPUT«<1>1<2>2» | ||
firefish5000 | m: $_=q<cat>; say "{$_}OUTER::<$_>" for (1,2); | 19:05 | |
camelia | rakudo-moar df2245: OUTPUT«catOUTER::<1>catOUTER::<2>» | ||
firefish5000 | m: $_=q<cat>; say "{$_},OUTER::<$_> for (1,2); | ||
camelia | rakudo-moar df2245: OUTPUT«===SORRY!=== Error while compiling /tmp/KJ58qI8MKRUnable to parse expression in double quotes; couldn't find final '"' at /tmp/KJ58qI8MKR:1------> q<cat>; say "{$_},OUTER::<$_> for (1,2);⏏<EOL> expectin…» | ||
FROGGS | firefish5000: the {$_} is a code block where the $_ default to OUTER... and it seems to miss the correct outer | ||
19:06
Ven_ left
|
|||
firefish5000 | alright, that makes since.. Is this an inteded effect though, or a bug? | 19:07 | |
FROGGS | firefish5000: I think it is a but, but I'm not sure | 19:08 | |
firefish5000 | FROGGS: alright, Thanks. (It took me an hour to figure out what was wrong with my grammar, so I got a little fixated on it once I found out) | 19:11 | |
19:14
brrt left
19:22
Tene_ is now known as Tene,
[Sno] joined
19:24
bjz left,
bjz joined
|
|||
dalek | kudo-star-daily: beebbed | coke++ | log/ (14 files): today (automated commit) |
19:31 | |
kudo-star-daily: 3a48b48 | coke++ | log/ (15 files): today (automated commit) |
|||
kudo-star-daily: a4e1771 | coke++ | log/ (13 files): today (automated commit) |
|||
rl6-roast-data: df1102b | coke++ | / (6 files): today (automated commit) |
|||
rl6-roast-data: 0867c6d | coke++ | / (6 files): today (automated commit) |
|||
rl6-roast-data: 3e242db | coke++ | / (6 files): today (automated commit) |
|||
19:31
denis_boyun joined
19:33
Ven_ joined
19:34
virtualsue joined
19:35
Ven_ left
19:36
rindolf left
19:38
denis_boyun_ joined
19:39
Ven_ joined
19:40
denis_boyun left
|
|||
grondilu | m: say ([0, 1] => 1, [0, 1] => 2).classify(*.key); | 19:43 | |
camelia | rakudo-moar df2245: OUTPUT«"0 1" => [[0, 1] => 1, [0, 1] => 2]» | ||
grondilu | it would be nice if classify could return a typed array when relevant. | ||
so that ([0, 1] => 1, [0, 1] => 2).classify(*.key) returns [0, 1] => [[0, 1] => 1, [0, 1] => 2] | 19:44 | ||
grondilu probably meant "typed Hash" | |||
19:45
denis_boyun joined
|
|||
TimToady | indeed, I'd call that a bug | 19:45 | |
Ven_ | .tell masak you might think my "Map[K, V]" naming is unfortunate, but we can't type hashes. | ||
yoleaux | Ven_: I'll pass your message to masak. | ||
Ven_ | (or we'd look like go: terrible) | ||
19:46
denis_boyun_ left
|
|||
japhb_ | .tell brrt Sorry I missed you, please ping me again when you're back | 19:46 | |
yoleaux | japhb_: I'll pass your message to brrt. | ||
grondilu | it may only be possible when the closure argument given to classify has a clearly identified return type, though. | ||
TimToady | nah, just declare it @hash{Any} | 19:47 | |
cognome | I don't care with Python, but that will be fun to do it in Perl 6. www.coursera.org/course/automata | ||
TimToady | inheritance has to be good for something | ||
grondilu | ok, then it should be easy to implement. Nice. | 19:48 | |
FROGGS | perl6 -e 'use NativeCall; sub xmlParserVersion is cglobal("libxml2") returns Str { * }; say xmlParserVersion;' | ||
20901 | |||
\o/ | |||
I'd like to have that as a variable instead of a sub though :/ | |||
19:50
denis_boyun left
19:51
DarthGandalf joined
19:54
denis_boyun joined
|
|||
lizmat | FROGGS: Proxy FETCH ? | 19:56 | |
FROGGS | lizmat: does not work sadly | ||
my $foo is cglobal # <--- that trait is called by Perl6::Actions directly, and I cannot bind anything into that variable at that time | 19:57 | ||
lizmat | but you can "say" it? then surely you must be able to put the value into a variable | 19:58 | |
if that's possible, shouldn't you be able to wrap that in a Proxy ? | |||
FROGGS | I... don't understand... | ||
ahh | 19:59 | ||
lizmat: I'd like to have variables (with a trait), that fetch C globals | |||
like in: my int $errno is cglobal; say $errno # 2 | 20:00 | ||
but that would mean that $errno is a Proxy | |||
and that is something I can't do | |||
lizmat | feels like it should be possible to create a Variable trait that would wrap the variable in question in a Proxy that would fetch the right value on demand | 20:01 | |
FROGGS | the question is: how | ||
20:01
kurahaupo left
|
|||
FROGGS | m: multi trait_mod:<is>(Variable $v, :$cglobal!) { $v := Proxy.new( FETCH => -> | { 42 }, STORE => -> | { } ) }; my int $errno is cglobal | 20:02 | |
20:02
denis_boyun left
|
|||
camelia | rakudo-moar df2245: OUTPUT«===SORRY!=== Error while compiling /tmp/pdWetpELY1Type check failed in binding; expected 'Variable' but got 'Int'at /tmp/pdWetpELY1:1------> » | 20:02 | |
FROGGS | that's my problem | ||
lizmat | I see | 20:03 | |
FROGGS | I think it explodes in the actions somewhere | ||
vendethiel | FROGGS: can't you ::T that :P ? | 20:05 | |
for some use | |||
FROGGS | then I thought I might have to fiddle with the container descriptor, like 'is rw' and 'is default' does it... perhaps with a bind constraint | ||
m: multi trait_mod:<is>(::T $v, :$cglobal!) { $v := Proxy.new( FETCH => -> | { 42 }, STORE => -> | { } ) }; my int $errno is cglobal | 20:06 | ||
camelia | rakudo-moar df2245: OUTPUT«===SORRY!=== Error while compiling /tmp/16wfmcWY3xCannot use bind operator with this left-hand sideat /tmp/16wfmcWY3x:1------> TCH => -> | { 42 }, STORE => -> | { } ) ⏏}; my int $errno is cglobal expect…» | ||
FROGGS | vendethiel: like this? | ||
lizmat | da bin ich ueberfragt | 20:07 | |
vendethiel | I see | ||
lizmat | I guess we need jnthn to shed some light on this... | 20:08 | |
FROGGS | I hope he has his deluminator with him :o) | ||
lizmat | hehe | 20:10 | |
TimToady: re irclog.perlgeek.de/perl6/2014-09-01#i_9280131 and S02:642 | |||
synopsebot | Link: perlcabal.org/syn/S02.html#line_642 | ||
lizmat | I would almost say: why don't we do s/ObjAt/WHICH/ in bothe the spec and the code ? | 20:11 | |
*both | |||
at S02:652 it even says: "So C<WHICH> still returns a value rather than another object, but that value must be of a special C<ObjAt> type... | |||
synopsebot | Link: perlcabal.org/syn/S02.html#line_652 | ||
lizmat | so why would be call the object to be returned by WHICH an ObjAt? | 20:12 | |
if we would follow the lead of the .Set coercer, one could even think of .WHICH as a coercer to the identity of the object | 20:13 | ||
.Set returns a Set object, .WHICH returns a WHICH object | |||
and possibly in the spec only mention that a memory address *could* be part of an identitty, but would not need to be | 20:14 | ||
nine | .tell raiph I'd say it's really made possible by NativeCall. As NativeCall does conversion of char* and int to Perl 6 types for me and converts all other pointers to OpaquePointer types, I didn't have to figure out how to create such objects on MoarVM. The parts where I had to create such objects for Perl 5 I took directly from Inline::Python's source and conerted it to Perl 6. | 20:16 | |
yoleaux | nine: I'll pass your message to raiph. | ||
jack_rabbit | I have these lines, class HTTPParser::Request::Actions {...}; class HTTPParser::Request::Actions { [definitions and stuff] }; | 20:18 | |
But I'm still getting: The following packages were stubbed but not defined: HTTPParser::Request::Actions | |||
lizmat | do you refer to HTTPParser::R::A between the stub and the class definition? | 20:19 | |
jack_rabbit | Yes. | 20:20 | |
Here's the full file: lpaste.net/110359 | |||
20:20
denis_boyun joined
|
|||
lizmat is looking | 20:22 | ||
20:22
BenGoldberg joined
|
|||
jack_rabbit | Weirdly, if I define class HTTPParser { };, it works. | 20:25 | |
20:25
Ven_ left
|
|||
vendethiel | nice, nice, nice; R*! | 20:26 | |
jack_rabbit | Or if I remove module HTTPParser::Request; | 20:27 | |
lizmat | why *did* you want to put module in there ? | 20:29 | |
I mean, it's all class oriented | |||
20:29
bjz_ joined
20:30
bjz left
|
|||
lizmat | s/class/object/ | 20:30 | |
jack_rabbit | Hmm. I'm probably just confused. What is the purpose of the module keyword anyway? | ||
TimToady | for when you want to export but don't want a class | ||
but a class can export too | 20:31 | ||
jack_rabbit | Is there a S** I can read? | ||
TimToady | now, now, watch your language :) | ||
jack_rabbit | heh. | ||
TimToady | S11 and S12, maybe start with S10 | ||
jack_rabbit | Also, how would I construct a class hierarchy, where I could just do something like user HTTPParser, and have access to HTTPParser::Request, HTTPParser::Response, etc. | 20:32 | |
s/user/use/ | |||
TimToady | those are all in the global namespace once the worlds are merged | ||
jack_rabbit | :/ over my head. I guess I'll read those docs. | ||
TimToady | m: class Foo { class Foo::Bar {} }; say Foo::Bar.new.WHAT | 20:33 | |
camelia | rakudo-moar df2245: OUTPUT«(Foo::Bar)» | ||
TimToady | no need to export the inner class, it's already visible as a global name | 20:34 | |
otoh... | |||
m: class Foo { my class Foo::Bar {} }; say Foo::Bar.new.WHAT | |||
camelia | rakudo-moar df2245: OUTPUT«(Foo::Bar)» | ||
lizmat | m: module Foo; class Foo::Bar { ... }; class Foo::Bar { } # golfed down version of the problem | ||
camelia | rakudo-moar df2245: OUTPUT«===SORRY!=== Error while compiling /tmp/eaTcKAzkbXThe following packages were stubbed but not defined: Foo::Barat /tmp/eaTcKAzkbX:1------> } # golfed down version of the problem⏏<EOL> expecting …» | ||
TimToady | now that's interesting | ||
m: class Foo { my class Bar {} }; say Foo::Bar.new.WHAT | |||
camelia | rakudo-moar df2245: OUTPUT«Could not find symbol '&Bar' in method <anon> at src/gen/m-CORE.setting:13290 in any find_method_fallback at src/gen/m-Metamodel.nqp:2632 in any find_method at src/gen/m-Metamodel.nqp:946 in block <unit> at /tmp/Iiy1HQyiHg:1» | ||
lizmat | TimToady: classes in rakudo do not know their parents | 20:35 | |
20:35
kaare_ left
|
|||
lizmat | m: class Foo::Bar { ... }; class Foo::Bar { } # this works, the "module Foo" is the interferer | 20:36 | |
camelia | ( no output ) | ||
TimToady | was just a little surprised that the inner my class didn't end up being Foo::Foo::Bar or so | ||
m: class Foo; class Foo::Bar { ... }; class Foo::Bar { } | 20:37 | ||
camelia | rakudo-moar df2245: OUTPUT«===SORRY!=== Error while compiling /tmp/BTk6YsEQzjThe following packages were stubbed but not defined: Foo::Barat /tmp/BTk6YsEQzj:1------> ass Foo::Bar { ... }; class Foo::Bar { }⏏<EOL> expecting …» | ||
FROGGS | TimToady: it is smart about the names :o) | ||
TimToady | m: package Foo { class Foo::Bar { ... }; class Foo::Bar { } } | ||
camelia | rakudo-moar df2245: OUTPUT«===SORRY!=== Error while compiling /tmp/H9KjCQtVF8The following packages were stubbed but not defined: Foo::Barat /tmp/H9KjCQtVF8:1------> s Foo::Bar { ... }; class Foo::Bar { } }⏏<EOL> expecting …» | ||
TimToady | m: package Foo { class GLOBAL::Foo::Bar { ... }; class GLOBAL::Foo::Bar { } } | 20:38 | |
camelia | rakudo-moar df2245: OUTPUT«===SORRY!=== Error while compiling /tmp/Fo3Ze8XCvYThe following packages were stubbed but not defined: Foo::Barat /tmp/Fo3Ze8XCvY:1------> ar { ... }; class GLOBAL::Foo::Bar { } }⏏<EOL> expecting …» | ||
TimToady | so not a difference in name interpretation, probably | 20:39 | |
lizmat | m: class Foo { my class Bar {}; method new { Bar.new } }; say Foo.new.WHAT # TimToady: even if the class leaks outside, it still is a "Bar" | ||
camelia | rakudo-moar df2245: OUTPUT«(Bar)» | ||
lizmat | not a Foo:Bar | ||
TimToady | I know, but .gist isn't trying to give a complete identity in any case | 20:40 | |
lizmat | m: class Foo {class Bar {}; method new {Bar.new}}; class Bar { }; my $f=Foo.new; my $b=Bar.new; say $f.WHAT, $b.WHAT, $f ~~ $b, $f === $b | 20:42 | |
camelia | rakudo-moar df2245: OUTPUT«(Bar)(Bar)FalseFalse» | ||
lizmat | somehow rakudo knows that the two Bar's are not the same | ||
20:43
bjz_ left
|
|||
TimToady | m: class Foo { my class Bar is export {} }; say Foo::Bar.new.WHAT | 20:43 | |
camelia | rakudo-moar df2245: OUTPUT«Could not find symbol '&Bar' in method <anon> at src/gen/m-CORE.setting:13290 in any find_method_fallback at src/gen/m-Metamodel.nqp:2632 in any find_method at src/gen/m-Metamodel.nqp:946 in block <unit> at /tmp/Dds_yqHEOa:1» | ||
20:43
bjz joined
|
|||
TimToady | m: class Foo { my class Bar is export {} }; import Foo; say Foo::Bar.new.WHAT | 20:43 | |
camelia | rakudo-moar df2245: OUTPUT«Could not find symbol '&Bar' in method <anon> at src/gen/m-CORE.setting:13290 in any find_method_fallback at src/gen/m-Metamodel.nqp:2632 in any find_method at src/gen/m-Metamodel.nqp:946 in block <unit> at /tmp/6MfI7Pr6DL:1» | ||
TimToady | m: class Foo { my class Bar is export {} }; import Foo; say Bar.new.WHAT | ||
camelia | rakudo-moar df2245: OUTPUT«(Bar)» | ||
20:44
bjz left
20:45
bjz joined,
kjs_ joined
|
|||
grondilu wonders how to turn an Array into a Parcel: | 20:46 | ||
m: my @a = ^3; say @a.Parcel.WHICH; | |||
camelia | rakudo-moar df2245: OUTPUT«Parcel|(Scalar|84525024)(Scalar|84525024)(Scalar|84525024)» | ||
grondilu | ^the scalar is repeated | 20:47 | |
TimToady | that seems wrongish | ||
TimToady is guessing the WHICH is not deconting a loop var | |||
lizmat: ^^ | |||
grondilu | any workaround? | ||
TimToady | m: my @a = ^3; say @a.list.Parcel.WHICH; | 20:48 | |
camelia | rakudo-moar df2245: OUTPUT«Parcel|(Scalar|78778384)(Scalar|78778384)(Scalar|78778384)» | ||
TimToady | m: my @a = ^3; say @a.eager.Parcel.WHICH; | ||
camelia | rakudo-moar df2245: OUTPUT«Parcel|(Scalar|61785808)(Scalar|61785808)(Scalar|61785808)» | ||
TimToady | I think the bug is in .Parcel | 20:49 | |
colomon | m: my @a = ^3; say @a.list.WHICH; | ||
camelia | rakudo-moar df2245: OUTPUT«Array|69899344» | ||
TimToady | er, or Parcel's WHICH | ||
list is a noop, likely | |||
grondilu | m: my @a = ^3; say (map +*, @a).Parcel.WHICH;' # found this workaround | 20:50 | |
camelia | rakudo-moar df2245: OUTPUT«===SORRY!=== Error while compiling /tmp/TXRfkYIMXsUnable to parse expression in single quotes; couldn't find final "'" at /tmp/TXRfkYIMXs:1------> .Parcel.WHICH;' # found this workaround⏏<EOL> expectin…» | ||
grondilu | m: my @a = ^3; say (map +*, @a).Parcel.WHICH; # found this workaround | ||
camelia | rakudo-moar df2245: OUTPUT«Parcel|(Int|0)(Int|1)(Int|2)» | ||
jack_rabbit | How does perl6 look for modules? How should my file containing HTTPParser::Request be named? | ||
colomon | self.^name ~ '|' ~ @(self).map( {'(' ~ .VAR.WHICH ~ ')'} ).join; # doesn't seem insane…. | ||
TimToady | m: my @a = ^3; say @a.Parcel.WHICH; say @a[$_].VAR.WHICH for ^3; | 20:51 | |
camelia | rakudo-moar df2245: OUTPUT«Parcel|(Scalar|76500888)(Scalar|76500888)(Scalar|76500888)Scalar|76500888Scalar|76500888Scalar|76500888» | ||
TimToady | that's interesting | ||
TimToady expected the last 3 to be different | |||
so maybe the bug is not where I thought | 20:52 | ||
jack_rabbit | HTTPParser.p6 just contains 'use HTTPParser::Request;', but perl6 -I . HTTPParser.p6 gives: Could not find HTTPParser::Request in any of: (...) | ||
colomon | TimToady: what you did is just a restatement of what Parcel.WHICH is doing (my last comment) | ||
So yeah, bug is in VAR.WHICH somehow? | |||
TimToady | dunno, brane is frazzled right now, probably coming down with something, so should take a nap | 20:54 | |
colomon has no idea what VAR is | |||
TimToady | zzz & | ||
timotimo | hm. now i implemented findcclass and findnotcclass, but many of the "expensive" frames in json parsing are still only spesh'd | 20:55 | |
lizmat | TimToady: I guess I got caught cheating :-( | 20:59 | |
colomon | lizmat: do you understand what's going wrong? | 21:00 | |
lizmat | I think the problem is deeper, actually: | 21:01 | |
m: my @a = ^3; say @a.Parcel.perl # not right! | |||
camelia | rakudo-moar df2245: OUTPUT«(ListIter.new(),)» | ||
vendethiel | www.dropbox.com/s/7h2g8eu3i84nl68/...8.png?dl=0 <- whoaw, clojure is getting rails-like debug tools :P I'm jealous | ||
21:02
donaldh joined
|
|||
lizmat | colomon: also seems we're missing some coercers: | 21:05 | |
m: say (^3).Parcel | |||
camelia | rakudo-moar df2245: OUTPUT«No such method 'Parcel' for invocant of type 'Range' in block <unit> at /tmp/cQZwNd0A6k:1» | ||
colomon | lizmat: do we know for sure what Range.Parcel should do? | 21:08 | |
lizmat | Range.list.Parcel I would think | ||
21:08
kjs_ left
|
|||
colomon | m: say 1.Parcel | 21:08 | |
camelia | rakudo-moar df2245: OUTPUT«No such method 'Parcel' for invocant of type 'Int' in block <unit> at /tmp/jsTLO1Eh8r:1» | ||
21:09
denis_boyun left
|
|||
lizmat | Any is missing a method Parcel { self.list.Parcel } | 21:09 | |
adding that now | |||
dalek | kudo/nom: 556ae70 | (Elizabeth Mattijsen)++ | src/core/Any.pm: Make sure we can .Parcel anything |
21:10 | |
colomon is sure he understands Parcel well enough to be confident that's the right thing to do... | |||
*isn't | |||
sigh | |||
lizmat++ | |||
lizmat | look at all the other methods in Any: | ||
method elems { self.list.elems } | 21:11 | ||
all they do is first coerce to list, then call the method on that | |||
colomon | true | ||
colomon is browsing rakudo on github.com | 21:12 | ||
21:16
gfldex left
|
|||
lizmat | I realize what the problem is now | 21:16 | |
basically, it is using the Array's descriptor's address, which is the same for each element | 21:17 | ||
21:17
denis_boyun_ joined
|
|||
[Coke] yawns. | 21:17 | ||
21:18
bjz left
|
|||
colomon | lizmat: I thought it might be something like that. but had no idea how to track it down. | 21:18 | |
21:18
bjz joined
|
|||
lizmat | src/core/Scalar.pm | 21:18 | |
21:18
raiph joined
21:23
denis_boyun joined,
denis_boyun_ left
|
|||
timotimo | i've noticed i'm not terribly good at using the profiler yet | 21:26 | |
[Coke] | r: use Test; is d('2014-03-14').earlier(weeks => 2), d('2014-02-28'), "parrot?" | 21:27 | |
camelia | rakudo-{parrot,jvm,moar} df2245: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUndeclared routine: d used at line 1» | ||
21:27
denis_boyun left
|
|||
[Coke] | r: use Test; sub d($x) { Date.new($x); }; is d('2014-03-14').earlier(weeks => 2), d('2014-02-28'), "parrot?" | 21:27 | |
camelia | rakudo-{jvm,moar} df2245: OUTPUT«ok 1 - parrot?» | ||
..rakudo-parrot df2245: OUTPUT«not ok 1 - parrot?# Failed test 'parrot?'# at /tmp/tmpfile line 1# expected: '2014-02-28'# got: '4014-23996-29'» | |||
lizmat | m: my @a = (1,1,1); my $b = @a.Parcel; $b[0] = 42 # this should bomb | ||
camelia | ( no output ) | ||
[Coke] | ^^ lots of recent parrot failures. | ||
lizmat | m: my $b = (1,1,1); $b[0] = 42 # this bombs | 21:28 | |
camelia | rakudo-moar df2245: OUTPUT«Cannot modify an immutable Int in method assign_pos at src/gen/m-CORE.setting:1867 in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2566 in block <unit> at /tmp/kjfUqh4xZm:1» | ||
lizmat | so the List.Parcel is faulty | ||
[Coke] | in fact, that may be all of the recent parrot failures. | ||
21:29
augustus joined
|
|||
itz_ | what is $?DISTRO and $?KERNEL supposed to return on non linux UNIX systems? | 21:29 | |
augustus | quick question all, is there a replacement for plaeteria? where are we supposed to go to read all the p6 blogging? | 21:30 | |
lizmat | $?DISTRO and $?KERNEL are still NYI afaik | ||
timotimo | augustus: raiph quite dilligently posts interesting stuff on reddit in r/perl6 | ||
lizmat | $*DISTRO and $*KERNEL are | ||
suggestions on what they should say, are welcome :-) | 21:31 | ||
timotimo | sadly, the planeteria domain has been taken directly after the current payment stopped | ||
lizmat | yuck | ||
[Coke] | timotimo: where are you getting your intel on that? | ||
lizmat | is there no time between taking it out of DNS and releasing the domain?? | ||
itz_ | probably $?DISTRO.name I meant .. and I guess most of the time they are the same | ||
augustus | i thought planeteria was deliberatey shut down, are you saying it was just an oversight? | 21:32 | |
grondilu | lizmat: after update and recompilation I still get identical scalars with (my @ = ^3).Parcel.WHICH; | ||
raiph | I typically post stuff to /r/perl6 stuff that isn't on planeteria. could we make /r/perl6 our new planeteria? | ||
yoleaux | 20:16Z <nine> raiph: I'd say it's really made possible by NativeCall. As NativeCall does conversion of char* and int to Perl 6 types for me and converts all other pointers to OpaquePointer types, I didn't have to figure out how to create such objects on MoarVM. The parts where I had to create such objects for Perl 5 I took directly from Inline::Python's source and conerted it to Perl 6. | ||
[Coke] | Yes, it was an oversight, the lead tech guy is working on restoring the domain and the service. | ||
lizmat | itz_: src/core/Distro and src/core/Kernel may contain non-linux specific code :-) | ||
[Coke] | raiph: I thought the point of something like planeteria was that you didn't have to repost. | 21:33 | |
augustus | coke: ok thanks, good to know. i'll check back periodically and in the meantime check out reddit. does anybody have any idea what kind of readership it had? I know I check it compulsively, but the blogs never got many comments so I always wondered. | 21:34 | |
21:36
denis_boyun joined
|
|||
[Coke] | sorry, no aggregated stats, as far as I know | 21:36 | |
timotimo | [Coke]: because planeteria is now owned by someone who is "parking" that domain | ||
[Coke] | I have a feedly subscription to r/perl6 which hasn't been updated in 90+ days. :( | ||
timotimo: I have spoken to the tech lead for planeteria, who is working to restore service. | 21:37 | ||
augustus | do we have any stats on rakudo downloads etc? anything to tell us how many ppl are at least trying perl6? | ||
[Coke] | I suspect that a payment was inadvertently missed, but it sounded like he still had the opportunity to renew. | ||
timotimo | [Coke]: good to know, thanks | 21:38 | |
[Coke] | (weird. feedly's guess at what the URL was was apparently wrong. putting in the manual RSS to /r/perl6 is just fine) | 21:41 | |
21:41
ggoebel1111112 joined
21:43
ggoebel1111111 left
|
|||
augustus | hmm, looks like reddit has a lot more stuff on it than planeteria anyway | 21:43 | |
colomon | [Coke]: what is the manual RSS to /r/perl6? | 21:46 | |
lizmat | m: my @a = 1; my $p = @a.Parcel; $p[0] = 42; say @a # something *REALLY* screwy with List.Parcel | 21:51 | |
camelia | rakudo-moar df2245: OUTPUT«42» | ||
lizmat | ^^^ that should die and at least not change @a | ||
if that gets fixed, the Parcel.WHICH problem is also history | 21:52 | ||
colomon | lizmat: isn't that behavior necessary to make array slices work? | ||
m: my @a = 1; my $p = @a[0..*]; $p[0] = 42; say @a | 21:53 | ||
camelia | rakudo-moar df2245: OUTPUT«42» | ||
21:54
denis_boyun left
|
|||
dalek | kudo/nom: 0a4af1c | (Elizabeth Mattijsen)++ | src/core/List.pm: Slight opt for infix:<xx> (more code esthetics) |
21:54 | |
lizmat | colomon: indeed, that seems to be the case | 21:56 | |
colomon | lizmat: when I spectest'ed 556ae70bdabe60c69ca4fdf8a836f84ce6db9701 (your previous, I thknk) I got errors in S32-list/permutations.t, S32-list/uniq.rakudo.t, and integration/99problems-51-to-60.t | ||
lizmat | but then that should probably be called Parcel-rw | ||
21:57
denis_boyun joined
|
|||
colomon | hmmm | 21:57 | |
21:57
kjs_ joined
|
|||
lizmat | colomon: integration/99problems-51-to-60.t is a known issue: it segfaults | 22:02 | |
colomon: the other two are fine when I run them | 22:03 | ||
22:04
pecastro left,
denis_boyun_ joined
|
|||
lizmat | TimToady: looks like the current implementation of .Parcel is more an internal function, *not* a coercer | 22:04 | |
22:04
Ben_Goldberg joined
22:05
BenGoldberg left,
bjz left
22:06
bjz joined,
denis_boyun left
|
|||
[Coke] | perl6.rss | 22:10 | |
colomon: ^^ | |||
22:10
denis_boyun_ left
|
|||
[Coke] | Is there anything better than smolder for reporting on TAP results? | 22:11 | |
22:12
denis_boyun joined
22:13
bjz left
|
|||
[Coke] | ah. better path is to probably port TAP::Harness::Junit | 22:15 | |
22:17
kjs_ left
22:19
denis_boyun left
22:21
virtualsue left
|
|||
timotimo | p6weekly.wordpress.com/?p=224&s...4f15ed3e76 - can has feedback for the latest weekly? | 22:21 | |
flussence | ooh neat, never knew wp had a feedback thingy... | 22:22 | |
[Coke] | ... whee, no need to port since we're still using prove5 | 22:23 | |
timotimo | it's a very necessary thing | ||
lizmat gives up on the @a.Parcel.WHICH issues | 22:25 | ||
a night of sleep will bring inspiration (I hope) | |||
gnight #perl6! | |||
timotimo | gnite lizmat! | ||
flussence | wait, is implementing DESTROY actually happening? that demo I wrote for advent2010 will finally work properly! | 22:26 | |
timotimo | going to happen soon-ish | ||
flussence | (or at least, I *hope* it'll work properly... though it's been working through 4 years of changes :) | 22:27 | |
timotimo | what thing did you write in advent2010? | ||
flussence | perl6advent.wordpress.com/2010/12/1...om-perl-6/ | ||
it's survived a zavolaj rewrite and at least one major rakudo refactor. :) | 22:28 | ||
22:30
ponpon is now known as ponbiki
|
|||
timotimo | d'oh. with MVM_SPESH_DISABLE=1, on my shared host, it gets to "stage mast" and then gets killed | 22:33 | |
that's much further than getting to the middle of stage parse | |||
we can obviously still get the memory usage during compilation down further | 22:34 | ||
22:37
donaldh left
|
|||
timotimo | stage parse is now done in 26.680 on my desktop. not sure if it's ever been this low before | 22:37 | |
nothing more in the way of feedback for the weekly? | 22:38 | ||
flussence | one sec... | ||
[Coke] | timotimo: looks good | 22:41 | |
22:41
Ben_Goldberg left
|
|||
[Coke] | Did you mention the compiler release last week? | 22:41 | |
timotimo | i think so, let me double-check | ||
[Coke] | I think you did, now thqt I ask out loud. nevermind. | ||
timotimo | yup, i did mention | 22:42 | |
[Coke] arglebargles, as TAP::Foramtter::JUnit doesn't build on my mac. | |||
timotimo | ;( | ||
[Coke] calls SQUIRREL and looks at something else. | 22:43 | ||
22:43
BenGoldberg joined
|
|||
timotimo | %) | 22:44 | |
flussence | if anyone else is proofreading that article preview, throw this in the browser console to make it highlight funny-looking words: «jQuery('.entry-content').attr('contenteditable', true).attr('spellcheck', true);» | 22:47 | |
dunno if you saw, timotimo, but I *did* send a bunch of nitpicks through the form on that page :) | 22:50 | ||
22:55
jepeway joined
|
|||
timotimo | oh | 22:55 | |
that didn't reach me ;( | 22:56 | ||
flussence | not at all? bleh. | 22:57 | |
s/carbin/carlin/; .ucfirst for <youtube rakudo tuesday>; | 22:58 | ||
not major stuff | |||
timotimo | now i don't know what to work on next in perl6land ... again :P | 23:01 | |
23:01
xragnar left
23:03
xragnar joined
|
|||
[Coke] | timotimo: my "LHF" are : make sure every fudge has an RT (or is NYI, or unspecced) | 23:10 | |
make sure all the spectest runs are clean. If not, fudge them. | |||
Find any tickets that are marked testneeded and test them. | |||
timotimo | hmm, that doesn't seem to inspire me right now | ||
[Coke] | I am currently bisected to find the cause of the giant rakudo-parrot failures. | 23:11 | |
timotimo: yah, it's boring as f***. | |||
timotimo does a benchmark run of nqp with/without jit for 2014.08 and the current nqp head | |||
oh | |||
actually | |||
derp. | |||
i built the 2014.08 nqp's with moar/master >_< | |||
well, i can still run the master/master benchmarks and then just rebuild the nqp to be proper | 23:14 | ||
i still want a proper mechanism for supplying things like "use the most up-to-date moarvm version" vs "use the MOAR_REVISION" on the commandline | 23:15 | ||
currently i really update the components.json by hand >_< | 23:16 | ||
[Coke] | for Configure, or for bench? | ||
ah, that sounds like a bench thing | |||
jepeway | ola, peeps. | 23:21 | |
23:27
itz joined
|
|||
colomon | \o | 23:27 | |
jepeway | o/ | 23:29 | |
i'm looking @ RT #122319 , and I have some basic questions unrelated to that RT, more like "can somebody help me with <this-thing-basic-p6-thing-here>" | |||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122319 | ||
23:29
itz_ left
|
|||
jepeway | m: DateTime.new(now).local.Str.substr(*-5).say # get the offset for camelia's server's current time (I hope) | 23:31 | |
camelia | rakudo-moar 0a4af1: OUTPUT«1:30Z» | ||
jepeway | m: Date.time(now).local.say # get current time | ||
camelia | rakudo-moar 0a4af1: OUTPUT«No such method 'time' for invocant of type 'Date' in block <unit> at /tmp/EANMnlijqz:1» | ||
jepeway | ...urk, no. | 23:32 | |
m: DateTime(now).local.say | |||
camelia | rakudo-moar 0a4af1: OUTPUT«Cannot find method 'DateTime' in block <unit> at /tmp/uYs72zdDbC:1» | ||
jepeway | bleah...not quite. | 23:33 | |
m: DateTime.new(now).say | |||
camelia | rakudo-moar 0a4af1: OUTPUT«2014-09-01T23:33:56Z» | ||
jepeway catches up...maybe. | 23:34 | ||
m: $*TZ = 60*60 ; DateTime(now).local.say | 23:35 | ||
camelia | rakudo-moar 0a4af1: OUTPUT«Cannot find method 'DateTime' in block <unit> at /tmp/RB1Ylyj0ye:1» | ||
jepeway | m: DateTime(now).in-timezone(60*60).say | 23:36 | |
camelia | rakudo-moar 0a4af1: OUTPUT«Cannot find method 'DateTime' in block <unit> at /tmp/DJFjcSKvOS:1» | ||
jepeway | m: DateTime.new(now).in-timezone(60*60).say | ||
camelia | rakudo-moar 0a4af1: OUTPUT«2014-09-02T00:36:30+0100» | ||
jepeway apologizes for the spam, promises this goes to a question prolly anybody grokking perl6 can answer | 23:37 | ||
m: DateTime.new(now).in-timezone(60*60).substr(*-5).say | |||
camelia | rakudo-moar 0a4af1: OUTPUT«No such method 'substr' for invocant of type 'DateTime' in block <unit> at /tmp/UayAZ0LPUB:1» | ||
jepeway | m: DateTime.new(now).in-timezone(60*60).subst(*-5).say | ||
camelia | rakudo-moar 0a4af1: OUTPUT«No such method 'subst' for invocant of type 'DateTime' in block <unit> at /tmp/29eQ_R0j7b:1» | ||
timotimo | .Str.substr? | 23:38 | |
jepeway | m: DateTime.new(now).in-timezone(60*60).Str.subst(*-5).say | ||
camelia | rakudo-moar 0a4af1: OUTPUT«Cannot call 'subst'; none of these signatures match::(Cool: Any $matcher, Any $replacement, *%adverbs):(Str: Any $matcher, Any $replacement, Any :ii(:samecase($samecase)), Any :ss(:samespace($samespace)), Any :SET_CALLER_DOLLAR_SLASH($SET_CALLER_DOLL…» | ||
jepeway | m: DateTime.new(now).in-timezone(60*60).Str.substr(*-5).say | ||
camelia | rakudo-moar 0a4af1: OUTPUT«+0100» | ||
timotimo | ah, you know that already | ||
subst is for "substitute" | |||
jepeway | timotimo: ty | ||
timotimo | jepeway: if you're worried about posting too much stuff, you can also talk to camelia in a query | ||
23:40
xenoterracide left,
xenoterracide joined
|
|||
jepeway | timotimo: mostly have this worked out with locally compiled rakudo, just too...er...non-proficient to present it well enough. | 23:41 | |
m: DateTime.new(now + $_ * 60 * 60 * 24).in-timezone(60*60).Str.substr(*-5).say for ^3 | |||
camelia | rakudo-moar 0a4af1: OUTPUT«+0100+0100+0100» | ||
timotimo | that's fine, we're a patient bunch ;) | ||
23:42
kst left
|
|||
jepeway | so...how do I change that ^3 to a ^365 and stick it all in a set and print all the set elts? | 23:42 | |
timotimo | elts? | ||
jepeway | elements, sorry. | ||
timotimo | you can ^365.map({ DateTime.new...substr(*-5) }).Set.say | 23:43 | |
otherwise you can have the same code you had up there and put a ( at the beginning and a ).Set.say after the "for ^356" | |||
jepeway | omg...hrm...trying to grok | ||
timotimo | hehe | ||
TimToady | well, except say gives up after 100 elements now | 23:44 | |
timotimo | oh | ||
in that case you probably want .fmt("%s")? | |||
or .print? | |||
23:44
spider-mario left,
augustus left
|
|||
timotimo | or .Str.say | 23:44 | |
TimToady | well, just stringify and say | ||
timotimo | .Str.say should be the most elegant, yeah | ||
jepeway | should only be 2 elements in the set, problem is there's just one. | ||
jepeway trying the ().Set.say locally. | |||
timotimo | oh, a *set*, derp :) | ||
TimToady | oh, right, | ||
derp too. | |||
timotimo | i'm not 100% sure why that ought to give two different values? | 23:45 | |
TimToady | standard vs daylight savings | ||
jepeway | TimToday: yuppers. | ||
timotimo | does "in-timezone" give you that, actually? | ||
(ugh, dates) | 23:46 | ||
TimToady | of course, in +0100 it's more likely "summer time" :) | 23:47 | |
jepeway | m: "summer time".subst("sum", "ha") # worky? | 23:49 | |
camelia | ( no output ) | ||
jepeway | m: "summer time".subst("sum", "ha").say # worky? | ||
camelia | rakudo-moar 0a4af1: OUTPUT«hamer time» | ||
jepeway | heh. | ||
m: (DateTime.new(now + $_ * 60 * 60 * 24).local.Str.substr(*-5) for ^365).Set.say # should be 2 elts: -0400 & -0500 | |||
camelia | rakudo-moar 0a4af1: OUTPUT«set(9:59Z, 0:00Z, 0:01Z, 0:02Z, 0:03Z, 0:04Z, 0:05Z)» | 23:50 | |
jepeway | oh, sorry, .local is a bust when $*TZ is 0. | ||
timotimo | aaah | ||
camelia ought to CTCP Time the person that sends an evaluation request and set the time zone accordingly :P | |||
23:51
kst joined
|
|||
jepeway | m: (DateTime.new(now + $_ * 60 * 60 * 24).in-timezone(-60*60*4).Str.substr(*-5) for ^365).Set.say # might like this to be 2 elts (-0400 & -0500) in US/Eastern timezone | 23:52 | |
camelia | rakudo-moar 0a4af1: OUTPUT«set(-0400)» | ||
timotimo | it's definitely nice that you're torturing our datetime implementation :) | ||
jepeway | but DateTime isn't sensitive to timezone rules, just current timezone offset | 23:53 | |
timotimo: blame/praise FROGGS++, he put me onto this RT | |||
jack_rabbit | IO::Socket::INET is not available through panda? | ||
jepeway | and since offsets don't map back to rules, then you can't determine localtime for any time other than "now"...well, so I'm thinking/guessing atm. | 23:57 |