»ö« 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:09
Guest32443 left
00:12
Psyche^ joined,
jnap left
00:14
fridim__ joined
00:15
Psyche^_ left,
EvanTeitelman joined
|
|||
[Coke] | so many versions of trunk not building in this bisect. :( :( | 00:26 | |
00:31
Mouq left
|
|||
flussence | I made a thing today that takes almost as long to parse as the setting \o/ | 00:37 | |
if anyone's looking for a pathological test case for optimisation work, have at it: github.com/flussence/HTML5-Entitie...upTable.pm | |||
diakopter | aw jeez pghpw.org/ppw2013/talk/5126 | 00:40 | |
00:51
jonathanmarvens left
|
|||
diakopter | flussence: what makes it pathological? | 00:53 | |
00:54
jonathanmarvens joined
|
|||
flussence | it's just two hashes, but it takes 3 minutes to load on my desktop machine | 00:55 | |
and I imagine that it'd take 3 seconds in perl5... | |||
diakopter | wat.. | ||
diakopter tries moarvm | 00:56 | ||
flussence | I haven't tried in jvm yet (won't build recently :/) | ||
diakopter | well I'll make an nqp version of it | 00:57 | |
TimToady just built it | |||
flussence | TimToady: it's giving me Java OOM errors, even though I've got 6GB RAM free :( | ||
TimToady | building it? | 00:58 | |
flussence | I'll try again, just to get the exact error... | ||
00:58
jnap joined
|
|||
flussence | but IIRC, something about "not enough heap space" | 00:58 | |
TimToady | 32 or 64-bit? | 00:59 | |
diakopter | nqp: gist.github.com/diakopter/6693648 | ||
camelia | nqp: OUTPUT«(timeout)» | 01:00 | |
diakopter | consarn it | ||
flussence | 64-bit | ||
TimToady | why don't you just invert the first table to get the second? | 01:01 | |
diakopter | cannot stringify this | ||
at nqp-src\NQPHLL.nqp:803 (./NQPHLLMoar.moarvm:quote_atom:43) | |||
from nqp-src\QRegex.nqp:669 (./QRegexMoar.moarvm:!reduce:40) | |||
from nqp-src\QRegex.nqp:633 (./QRegexMoar.moarvm:!cursor_pass:64) | |||
from <unknown>:1 (./NQPHLLMoar.moarvm:quote_atom:506) | |||
from <unknown>:1 (./NQPHLLMoar.moarvm:quote_delimited:104) | |||
from nqp-src\NQPHLL.nqp:345 (./NQPHLLMoar.moarvm:quote_EXPR:151) | |||
from <unknown>:1 (nqp.moarvm:quote:sym<apos>:66) | |||
from nqp-src\QRegex.nqp:702 (./QRegexMoar.moarvm:!protoregex:125) | |||
01:01
EvanTeitelman left
|
|||
diakopter | from <unknown>:1 (nqp.moarvm:quote:8) | 01:01 | |
from <unknown>:1 (nqp.moarvm:value:90) | 01:02 | ||
from <unknown>:1 (nqp.moarvm:term:sym<value>:63) | |||
from nqp-src\QRegex.nqp:702 (./QRegexMoar.moarvm:!protoregex:125) | |||
oops | |||
WOW | 01:03 | ||
25 seconds to parse and compile it to pir from nqp-parrot | |||
flussence | TimToady: my original intent was to avoid doing extra work at runtime, but that's probably a lost cause right now | 01:04 | |
TimToady | you can use BEGIN to run things at compile time too | ||
flussence | and now that I've seen the actual speed of it, maybe an invert would work out faster... | 01:05 | |
TimToady | esp since rakudo is currently somewhat allergic to non-ASCII | ||
performance-wise | |||
parsing-wise | 01:06 | ||
it would also probably parse a lot faster (under current rakudo) if you use \x instead of actual chars | |||
diakopter | maybe | ||
.8s for parrot to run the generated .pir | 01:08 | ||
:S | |||
flussence | hm, rakudo-jvm seems to be building okay today... | 01:09 | |
diakopter | I wonder what moarvm can't stringify | ||
and why it's stringifying something...? | |||
[Coke] | flussence: if you're having memory issues, did you try modifying the startup script? | ||
flussence | [Coke]: this is just from following the build instructions in the readme. Either way, it seems to have fixed itself now | 01:10 | |
diakopter | flussence: flussence one problem is the .pir is using 5000 parrot local registers *doh* | 01:12 | |
01:14
stevan_ left,
stevan_ joined
01:17
Guest37284 is now known as ponbiki
|
|||
[Coke] | .to lizmat you were right, 42a5487b92347d4f8b64ad838c118a7b12127616 broke rakudo.jvm's test suite. (tested against S02-types/autovivification.t) | 01:23 | |
yoleaux | [Coke]: I'll pass your message to lizmat. | ||
[Coke] | .to jnthn 42a5487b92347d4f8b64ad838c118a7b12127616 broke rakudo.jvm's test suite. (tested against S02-types/autovivification.t) | ||
yoleaux | [Coke]: I'll pass your message to jnthn. | ||
[Coke] | (that took way too long) | 01:24 | |
01:29
kst` joined
01:31
kst left
01:34
jnap left
|
|||
[Coke] | can you .to more than one person at a time? | 01:34 | |
.to diakopter,flussence "jsut checking" | |||
yoleaux | [Coke]: What kind of a name is "diakopter,flussence"?! | ||
diakopter | .to [Coke] [Coke] | 01:35 | |
yoleaux | diakopter: I'll pass your message to [Coke]. | ||
[Coke] | ~ | 01:36 | |
yoleaux | 01:35Z <diakopter> [Coke]: [Coke] | ||
01:43
jnap joined
01:47
Mouq joined
|
|||
Mouq | rn: say so "aaa" ~~ / a ** { 2 + 1} / | 01:48 | |
camelia | niecza v24-95-ga6d4c5f: OUTPUT«True» | ||
..rakudo 7e2d8b: OUTPUT«===SORRY!=== Error while compiling /tmp/Ke7OSVRFXcQuantifier quantifies nothingat /tmp/Ke7OSVRFXc:1------> say so "aaa" ~~ / a ** ⏏{ 2 + 1} / expecting any of: postfix infix stopper infix or me…» | |||
01:49
slavik joined
01:50
jnap left
|
|||
Mouq finds RT #73172 | 01:51 | ||
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=73172 | |||
[Coke] | r: my %h;%h<a>:exists; | 01:54 | |
camelia | ( no output ) | ||
[Coke] | rakudo-jvm: my %h;%h<a>:exists; | ||
camelia: help | |||
camelia | [Coke]: Usage: <(nqp-jvm|star|pugs|nqp|std|niecza|rakudo|b|nom|npr|n|r|perl6|prn|rn|p|rnp|nrp|pnr|rpn|p6|nr)(?^::\s) $perl6_program> | ||
[Coke] | ah. | 01:55 | |
.to lizmat "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot | |||
yoleaux | [Coke]: I'll pass your message to lizmat. | ||
[Coke] | .to jnthn "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot | ||
yoleaux | [Coke]: I'll pass your message to jnthn. | ||
01:56
jonathanmarvens left,
jonathanmarvens joined
|
|||
Mouq | What does a bare pair of curly braces, “{}”, do in a regex? | 01:59 | |
.oO( Perl 6, the Movie, starring Curly Braces' Bear pair ) |
02:00 | ||
02:04
kst` is now known as kst
|
|||
flussence | I'd guess that's an empty code closure which forces proceduralness instead of declarativeness | 02:05 | |
02:06
slavik left
02:07
jonathanmarvens left
|
|||
Mouq | Could you clarify the *ness'es for me? Like, STD uses `token comment:sym<#> { '#' {} \N* }` | 02:07 | |
02:10
colomon left,
colomon joined
|
|||
flussence | I'm not much of an expert on that bit of the language, sorry. It's something to do with backtracking IIUC | 02:19 | |
Mouq | Okay, thank you very much flussence | 02:20 | |
02:23
dayangkun_ joined
02:24
dayangkun_ left
02:27
dayangkun left
02:29
xinming left
02:31
xinming joined
03:13
preflex left,
preflex_ joined,
ChanServ sets mode: +v preflex_
03:14
preflex_ is now known as preflex,
raiph joined
|
|||
Mouq | So, if an action method does make QAST::Stmts(), and you take the .ast of that, do you get QAST::Stmts or the result of the evaluation? | 03:18 | |
I'm guessing the former | 03:19 | ||
*the result of the evaluated statement list | |||
03:20
cognominal joined
03:21
labster joined
|
|||
[Coke] | .to jnthn current version complains: getextype needs an object with VMException representation | 03:26 | |
yoleaux | [Coke]: I'll pass your message to jnthn. | ||
raiph | nqp: sub foo { 'boo' }; grammar A { rule TOP { 'a' } }; class B { method TOP ($/) { make foo } }; say A.parse("a", :actions(B)); say $<TOP> | 03:41 | |
camelia | nqp: OUTPUT«Routine declaration requires a signature at line 2, near "{ 'boo' };"current instr.: 'panic' pc 14693 (src/stage2/gen/NQPHLL.pir:5223) (src/stage2/gen/NQPHLL.nqp:279)» | ||
raiph | ww | ||
04:11
colomon left
04:25
wtw left
04:26
BenGoldberg left,
rafl left,
nyuszika7h left
04:27
broquaint joined,
wtw joined
04:28
gfldex left,
gfldex joined
04:29
nyuszika7h joined
04:31
rafl joined
|
|||
Mouq | ( I've realized that my previous question about QAST::Stmts pretty much *has* to be the former, btw ) | 04:40 | |
TimToady | the {} in a regex terminates the longest token match there | 04:41 | |
so \N* is not considered part of the token to match with a DFA | |||
04:42
raiph left
|
|||
Mouq | Oh, cool, I understand. Thank you TimToady | 04:42 | |
04:44
ponbiki left
04:49
fridim__ left
04:54
ponbiki joined
05:00
PacoAir left
05:02
xenoterracide left
|
|||
[Coke] | r: &&::{}[];; | 05:07 | |
camelia | rakudo 7e2d8b: OUTPUT«===SORRY!===ResizablePMCArray: index out of bounds!» | ||
[Coke] | masak: ^^ | ||
r: ~~::??{}~~[];; | 05:10 | ||
camelia | rakudo 7e2d8b: OUTPUT«===SORRY!===Found ?? but no !!at /tmp/_QtlfDw2eh:1------> ~~::??{}~~[]⏏;;Confusedat /tmp/_QtlfDw2eh:1------> ~~::??{}~~[]⏏;; expecting any of: postfix» | ||
[Coke] | in the REPL, that dies with: Null PMC access in get_string() | 05:11 | |
JimmyZ | n: &&::{}[];; | 05:12 | |
yoleaux | 24 Sep 2013 16:56Z <jnthn> JimmyZ: 3c49a76a claims to to make things more consistent, but makes function names inconsistent with the op names that delegate to them. D'oh. | ||
24 Sep 2013 16:59Z <jnthn> JimmyZ: though, there's no strong convention there anyway, looking at a bunch of the others... | |||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in <…» | ||
yoleaux | 24 Sep 2013 17:02Z <jnthn> JimmyZ: 6c8aa5c replaces a MVM_string_ascii_decode_nt with a MVM_string_ascii_decode and an explicit count, which is a silly idea in general as it makes it easy to change the string and forget to update the count. Please don't do/undo such changes. | ||
24 Sep 2013 22:48Z <jnthn> JimmyZ: in 208ee87d, body->states[i][j].arg.s = reader->read_str(tc, reader); needs doing with MVM_ASSIGN_REF so it gets the wb | |||
05:21
SamuraiJack joined
|
|||
TimToady | std: &&::{}[];; | 05:37 | |
camelia | std 7c17586: OUTPUT«ok 00:00 46m» | ||
TimToady | std: ~~::??{}~~[];; | ||
camelia | std 7c17586: OUTPUT«===SORRY!===Expecting a term, but found either infix ~~ or redundant prefix ~ (to suppress this message, please use space between ~ ~) at /tmp/A36qY27NP9 line 1:------> ~~⏏::??{}~~[];;Parse failedFAILED 00:00 41m…» | ||
moritz | good morning | 05:38 | |
TimToady | o/ | ||
06:21
darutoko joined
06:22
sjn joined
06:24
sqirrel joined
06:25
kaleem joined
|
|||
timotimo | good mroing | 06:29 | |
06:36
darutoko- joined
06:38
darutoko left
06:39
darutoko joined,
pernatiy joined
06:41
darutoko- left
06:51
thou left
06:54
FROGGS joined
07:04
ssutch left
07:08
denis_boyun joined
07:39
colomon joined
|
|||
masak submits [Coke]'s rakudobug | 07:48 | ||
mornin', #perl6 | 07:49 | ||
r: &&::{}[]; | |||
camelia | rakudo 7e2d8b: OUTPUT«===SORRY!===ResizablePMCArray: index out of bounds!» | ||
masak | r: &&::{}[] | 07:50 | |
hoelzro | morning all | ||
camelia | rakudo 7e2d8b: OUTPUT«===SORRY!===ResizablePMCArray: index out of bounds!» | ||
masak | r: &&::{} | ||
camelia | rakudo 7e2d8b: OUTPUT«===SORRY!===ResizablePMCArray: index out of bounds!» | ||
masak | r: &::{} | ||
camelia | rakudo 7e2d8b: OUTPUT«===SORRY!===ResizablePMCArray: index out of bounds!» | ||
masak | could be golfed some :) | ||
moritz | current instr.: 'variable_components' pc 26971 (src/gen/perl6-symboltable.pir:10438) (src/Perl6/World.nqp:1858) | 07:51 | |
if you run it with --ll-exception | |||
masak adds that to the ticket | |||
moritz++ | |||
moritz | @result[+@result - 1] := $sigil ~ $twigil ~ @result[+@result - 1]; | 07:52 | |
this line looks like it might fail if @result is empty | |||
std: &::{} | 07:53 | ||
camelia | std 7c17586: OUTPUT«ok 00:00 42m» | ||
moritz | so, what does it mean? | ||
an access to the anonymous variable & ? | |||
timotimo struggles to understand the purpose or function or sense of urbit | 07:56 | ||
hoelzro | you too? | ||
moritz | wtf is urbit? | 07:57 | |
timotimo | i mean, i kind of sort of get what it can do | ||
urbit.org | |||
moritz | Hoon can be classified as a pure, strict higher-order static type-inferred functional language, with co/contra/bivariance and genericity. However, Hoon does not use lambda calculus, unification, or other constructs from “PL theory.” | 07:58 | |
wait, what? a "pure, strict higher-order static type-inferred functional language" without any programming language theory? | 07:59 | ||
timotimo | tee hee | 08:00 | |
reading the docs feels a bit like playing an alternate reality game | |||
hoelzro | I think part of it is that the docs are kinda dry | ||
"X is ... Y is ..." | |||
timotimo | i don't think i've reached that point yet | 08:01 | |
i'm only in the chapter on avro | |||
arnsholt | moritz: Sounds like it's either a joke or written by people who don't know what they're talking about =) | 08:04 | |
"Its self-compiling kernel, 7000 lines of code, specifies Hoon unambiguously; there is no Hoon spec." HA HA HA HA! | 08:05 | ||
moritz | also, the VM (Nock) spec is 200 words | 08:06 | |
arnsholt | The language is defined by its implementation. What could possibly go wrong! | ||
moritz | so all of the IO sub system can be described precisely in 200 words? | ||
timotimo | arnsholt: nobody is going to use this in production! | ||
moritz: there is no IO. | |||
(well, that's not true of course) | 08:07 | ||
arnsholt | "The only arithmetic operator is increment" that sounds like a terrible, terrible idea | 08:09 | |
moritz | arnsholt: sounds like somebody has been reading lots of FP theory | 08:12 | |
:-) | |||
hoelzro | so...it's a BF VM? | 08:13 | |
how do you implement minus? counter wrap? | |||
timotimo | We should note that in Nock and Hoon, 0 (pronounced “yes”) is true, and 1 (“no”) is false. Why? It’s fresh, it’s different, it’s new. And it’s annoying. And it keeps you on your toes. And it’s also just intuitively right. | ||
hoelzro | is that a direct quote? | 08:14 | |
timotimo | yes | ||
hoelzro | what is this guy smoking? | ||
jnthn | morning, #perl6 | ||
yoleaux | 01:24Z <[Coke]> jnthn: 42a5487b92347d4f8b64ad838c118a7b12127616 broke rakudo.jvm's test suite. (tested against S02-types/autovivification.t) | ||
01:55Z <[Coke]> jnthn: "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot | |||
03:26Z <[Coke]> jnthn: current version complains: getextype needs an object with VMException representation | |||
moritz congratulates the makers on the most elaborate joke he has seen in quite some time | |||
timotimo imagines being the creator of urbit and seeing it show up on a publically logged irc channel of a similarly insane language design community via a google alert | 08:15 | ||
08:16
stevan__ joined
08:17
stevan_ left
08:18
dmol joined
|
|||
timotimo | In particular, please remember that you are not too stupid to program in Hoon. Hoon is FP made stupid - for the stupid, by the stupid. (This is the real reason it’s only 3400 lines.) | 08:19 | |
08:20
sqirrel left
|
|||
masak | True and False are dual in some sense. | 08:24 | |
so of course you could flip their numifying values. | 08:25 | ||
a good idea? no. but you can. | |||
diakopter | "deterministic functional operating system" | 08:29 | |
hee | |||
masak | well, that *is* innovative. | 08:30 | |
all the OSes I know are non-deterministic and dysfunctional :P | |||
moritz | but useful. | ||
diakopter | "Nock’s only arithmetic operator is increment" | 08:32 | |
hee | |||
masak | "The goal of any programming language is to become a standard. Universal standardization equals world domination." -- there is some truth to this. | 08:33 | |
well, it's the kind of vastly oversimplified statement that's still not entirely wrong. | |||
I'm thinking of JavaScript, for example. | 08:34 | ||
diakopter | Haskell has higher-order type inference; Hoon has “higher-order” “type” “inference.” | 08:37 | |
timotimo | .o( ich möchte haskell werden anstelle des haskellen! ) | ||
hoelzro | hehe | 08:39 | |
timotimo | .o( je veux devenir hazkél à la place du hazkél ) | 08:40 | |
diakopter | Learning Hoon involves learning nearly 100 ASCII digraph “runes.” | ||
timotimo | is that even a catchphrase that rings any bells to people? | ||
moritz | it does for me | 08:42 | |
en.wikipedia.org/wiki/Iznogoud | |||
tadzik | \o/ | 08:43 | |
Iznogoud! | |||
08:43
sqirrel joined
|
|||
timotimo | \o/ | 08:44 | |
diakopter | [email@hidden.address] | 08:50 | |
08:50
dakkar joined
|
|||
moritz | diakopter: wrong window? | 08:55 | |
diakopter | no, just reporting the author of urbit | 08:56 | |
"reporting" used losely | |||
moritz: it's actually not a joke | 09:03 | ||
just described farcicly | |||
timotimo | diakopter: will it be done by christmas? :) | 09:04 | |
nwc10 | good *, jnthn | ||
moritz | diakopter: how do you know? | 09:06 | |
09:06
daxim joined
|
|||
jnthn | o/ nwc10 | 09:06 | |
diakopter | moritz: b/c it feels unlikely to me that the documented inputs/outputs are made-up | 09:07 | |
(I mean, I could download and build/run the code...) | |||
moritz | diakopter: that doesn't mean the whole thing, including the code, isn't a huge, elaborate joke | 09:09 | |
JimmyZ | good morning, jnthn | ||
diakopter | in that the writing is meant to be funny, I agree | ||
but I suspect he's wanting to get points across and teach (and mock) with the farce (why would someone actually make a system as cutesy as this?) | 09:10 | ||
so I doubt it's entirely whimsical | 09:11 | ||
09:11
pernatiy left
09:13
fhelmberger joined
|
|||
diakopter | heh, a prior iteration: urbit.sourceforge.net/u.txt | 09:16 | |
moritz | diakopter: I just don't see why it would be made so *useless* if it's not meant as a joke | 09:17 | |
I mean, increment as the only arithmetic operation. Come on. | |||
(I can understand not doing much IO, because it's hard and annoying. But every platform already offers arithmetics which you'd just have to wire up) | 09:18 | ||
diakopter | that's the only operation at that level.. but as he explains, the implementation can recognize higher level patterns and replace with calls to C functions | ||
but I think the purpose of that minimalistic level was to see how small it could get | 09:19 | ||
arnsholt | It's a bit optimistic that an optimizer can magically optimize all the things based on a single operation though | ||
"Sufficiently smart compiler" and all that | 09:20 | ||
Especially since a very small instruction isn't a magical bullet against large search spaces | |||
diakopter | yeah. he doesn't say whether those optimizations are implemented | 09:21 | |
(maybe they are though) | |||
(some, at least) | |||
09:23
iSlug joined
|
|||
masak | I took a look at the Hoon syntax, and then closed the tab pretty soon after that. | 09:24 | |
hoelzro | it's edgy! | ||
masak | though I did like the one-syllable names of <> {} () [] -- very aesthetic! | ||
only problem is that the listener needs to be in on it :) | |||
timotimo | i'm not sure i get it | 09:25 | |
jnthn | .oO( Is the point of the project to distract Perl 6 devs? :P ) |
09:26 | |
timotimo | i apologize for mentioning it ;) | 09:27 | |
diakopter would have been distracted by something else anyway | 09:28 | ||
jnthn | r: say Hash.^attributes[0] | ||
camelia | rakudo 7e2d8b: OUTPUT«No such method 'gist' for invocant of type 'BOOTSTRAPATTR' in sub say at src/gen/CORE.setting:12659 in block at /tmp/BBgfMFPJjA:1» | ||
jnthn | r: say Hash.^attributes[0].type | ||
camelia | rakudo 7e2d8b: OUTPUT«(Mu)» | ||
jnthn | r: say Hash.^attributes[0].package | 09:29 | |
camelia | rakudo 7e2d8b: OUTPUT«(Hash)» | ||
diakopter | boots trap a ttr? | ||
jnthn | poor ttr | 09:30 | |
09:42
pmurias joined
|
|||
dalek | p: 6b4b034 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: nqp::iscont should not blow up over a null value. This fixes a broken case of .clone that the subscripting changes in Rakudo hit. Thus, this fixes a more general issue. |
09:42 | |
FROGGS | jnthn++ # more general karma | 09:43 | |
jnthn is doing another Rakudo JVM spectest run at the moment | 09:44 | ||
But think this will clean up many fails | 09:45 | ||
FROGGS | awesome, I like these kind of fixes :o) | ||
09:58
rindolf joined
|
|||
jnthn | r: my Int @a=<foo bar>; say @a | 10:02 | |
camelia | rakudo 7e2d8b: OUTPUT«Type check failed in assignment to '@a'; expected 'Int' but got 'Str' in method REIFY at src/gen/CORE.setting:8073 in method reify at src/gen/CORE.setting:7006 in method reify at src/gen/CORE.setting:6993 in method reify at src/gen/CORE.setting:6993 i…» | ||
jnthn | Yeah, JVM tests look better now | 10:05 | |
jnthn looks what else fails | |||
I've got various passing todo tests... | |||
10:17
stevan_ joined
10:19
stevan__ left
10:47
odoacre left
10:49
krokite joined
|
|||
moritz gets failing tests in S06-other/main-usage.t on rakudo/parrot | 10:52 | ||
... at least as part of the spectest; seems tow work fine when run separately | |||
werid | |||
*weird | |||
dalek | ar: a8fdc35 | moritz++ | docs/announce/2013.09.md: Update release announcement a bit |
10:55 | |
FROGGS | moritz: I get the same, since weeks | 10:57 | |
moritz | :( | ||
FROGGS | moritz: and it passes the spectest run sometimes when I decrease TEST_JOBS and when I shut down my virtualbox VMs | 10:58 | |
moritz | so, a race condition? | 10:59 | |
diakopter | cross process?? | ||
FROGGS | there is another test file that behaves like that, something with args in the filename I think | ||
I believe donaldh said something about run() or shell() | |||
10:59
odoacre joined
|
|||
moritz | diakopter: maybe the temp files used by that test module aren't very good | 10:59 | |
moritz.faui2k3.org/tmp/rakudo-star-...RC0.tar.gz # Rakudo Star release candidate | 11:00 | ||
diakopter | or wrongly sharing file descriptors, I gues...? | ||
dalek | ast: c3da895 | jnthn++ | S16-filehandles/io.t: Be sure to close before trying to unlink. On Windows, this is required, otherwise the unlink fails. |
||
moritz | my $fnbase = 'getout-'; | 11:01 | |
$fnbase ~= $*PID // 1_000_000.rand.Int; | |||
doesn't look too bad | |||
FROGGS | btw, this test file kills my virtualbox VM when I run the test suite with TEST_JOBS=4 | 11:03 | |
11:05
sqirrel left
|
|||
lizmat | goo *, #perl6! | 11:09 | |
yoleaux | 01:23Z <[Coke]> lizmat: you were right, 42a5487b92347d4f8b64ad838c118a7b12127616 broke rakudo.jvm's test suite. (tested against S02-types/autovivification.t) | ||
01:55Z <[Coke]> lizmat: "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot | |||
lizmat | jnthn: re irclog.perlgeek.de/perl6/2013-09-24#i_7624879 : the logic for handling [] and {}'s adverbs is the same, apart for the naming of the methods at_key/at_pos and in the future exists_key/exists_pos and delete_key/delete_pos | 11:11 | |
hence my reasoning to use .can, to create a single code that can handle both, depending on a single switch passed | |||
an alternate method would be to pass all three methods as parameters, but that didn't feel very elegant to me, nor very efficient, as e.g. the "delete" case is only needed if ":delete" is specified | 11:13 | ||
or spit off the delete case to a seperate set of support subs | |||
jnthn | lizmat: I'm not (yet) objecting to the approach, just saying that .can is fairly high-level and we could use the things it's implemented in terms of directly to be a bit faster. | 11:14 | |
lizmat | or write a script that would generate both support subs | ||
suggestions welcome :-) | |||
11:14
iSlug left
|
|||
jnthn | (And no, it's not pressing...) | 11:15 | |
lizmat | ok, I'll leave that for the future then | ||
jnthn has a bunch of Win32 fixes for Rakudo JVM spectest coming up :) | |||
lizmat | I guess more pressing would be to actually optimize the sub calls now ? | ||
11:16
krokite left
|
|||
lizmat continues with backlogging | 11:16 | ||
FROGGS | moritz: IIRC it dies telling it can't open or find the file, even when the file exists | 11:21 | |
jnthn | Well, even more pressing for me is to try and make sure we can have a JVM-based Rakudo * release in October... :) | 11:22 | |
dalek | ast: 590fb96 | moritz++ | integration/error-reporting.t: unfudge error reporting tests for rakudo.jvm |
11:23 | |
11:28
sqirrel joined
|
|||
dalek | ast: f3ec9a8 | moritz++ | S06-other/main-usage.t: more rakudo.jvm unfudges |
11:33 | |
p: 3898d17 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Normalize $*OS on Windows to be MSWin32. Many things identify Windows in this way at present. |
11:37 | ||
kudo/nom: 7cede9d | jnthn++ | src/core/IO/Spec.pm: Pick correct IO::Spec when running on JVM. |
11:38 | ||
kudo/nom: 74bb712 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java: Fix double-container bug with 'as'. |
|||
lizmat | jnthn: re: github.com/perl6/nqp/commit/6b4b03434f , could you point out how an attempt at cloning a null value was made ? | 11:40 | |
dalek | p: a47a76b | jnthn++ | src/QRegex/P6Regex/ (2 files): Parse _ in ** quantifier values. Also sneak in a decent NYI error for the ** {...} case. |
11:41 | |
lizmat | I'm wrecking my brains on how that could be the case, and the only way I see currently is a problem in MMD \ | ||
jnthn | lizmat: $!descriptor was null | ||
lizmat: It wasn't cloning a null value | |||
lizmat: It was cloning an object within which an attribute had a null value | |||
lizmat | ah, ok … hmmm | 11:42 | |
jnthn | lizmat: Which (independent of all else) should not exlode | ||
*explode | |||
lizmat | okidoki, you're welcome :-) | ||
tadzik | jnthn: re 3898d17, I encountered a similar thing when working on socket-inet tests, "linux" vs "Linux" | ||
istr donaldh++ fixed it somehow | 11:43 | ||
jnthn | lizmat: The slicing and adverb tests run very nicely on the JVM backend now, anyways. :) | 11:45 | |
lizmat | cool | ||
is there a way to test for warnings being emitted ? | |||
r: "abc".ucfirst | |||
camelia | rakudo 7e2d8b: OUTPUT«please change to tc in block at /tmp/xTr7G7L3I1:1» | ||
FROGGS | throws_like? | ||
lizmat | isn't that for fail/die ? | 11:46 | |
r: say "abc".ucfirst | |||
camelia | rakudo 7e2d8b: OUTPUT«please change to tc in block at /tmp/NMWiNLhVOW:1Abc» | ||
FROGGS | hmmm | ||
jnthn | r: CONTROL { say $_ }; say "abc".ucfirst | ||
camelia | rakudo 7e2d8b: OUTPUT«please change to tc in block at /tmp/pEXofXx602:1Abc» | ||
jnthn | r: CONTROL { say "here" }; say "abc".ucfirst | 11:47 | |
camelia | rakudo 7e2d8b: OUTPUT«please change to tc in block at /tmp/DzxEL247mN:1Abc» | ||
lizmat | NYI ? | ||
jnthn | hm, not like this... | ||
tadzik | r: { CONTROL { say "here" }; say "abc".ucfirst } | ||
camelia | rakudo 7e2d8b: OUTPUT«hereplease change to tc in block at /tmp/g2ceyMDF8D:1Abc» | ||
jnthn | ah :) | ||
So, that works. | |||
tadzik | here, let me be your blocker | ||
r: { CONTROL { default { say "here" } }; say "abc".ucfirst } | 11:48 | ||
camelia | rakudo 7e2d8b: OUTPUT«here» | ||
tadzik | now it doesn't even say Abc | ||
FROGGS | r: use Test; { CONTROL { default { ok($_ eq 'please change to tc')} }; say "abc".ucfirst } | 11:49 | |
camelia | rakudo 7e2d8b: OUTPUT«ok 1 - » | ||
jnthn | Doesn't say it 'cus you didn't resume :) | 11:50 | |
11:50
iSlug joined
|
|||
lizmat has learned a lot just now | 11:51 | ||
FROGGS | r: use Test; { CONTROL { default { ok($_ eq 'please change to tc'); nqp::resume($_) } }; say "abc".ucfirst } | 11:53 | |
camelia | rakudo 7e2d8b: OUTPUT«ok 1 - This type does not support associative operations in block at /tmp/X02DitIpsN:1 in block at /tmp/X02DitIpsN:1» | ||
FROGGS | r: use Test; { CONTROL { default { ok($_ eq 'please change to tc'); nqp::resume($!) } }; say "abc".ucfirst } | ||
camelia | rakudo 7e2d8b: OUTPUT«ok 1 - This type does not support associative operations in block at /tmp/8pjaYXKQdC:1 in block at /tmp/8pjaYXKQdC:1» | 11:54 | |
FROGGS | r: use Test; { CONTROL { default { ok($_ eq 'please change to tc') }; nqp::resume($!) }; say "abc".ucfirst } | ||
camelia | rakudo 7e2d8b: OUTPUT«ok 1 - » | ||
FROGGS | hmmm | ||
dalek | p: b591400 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/ProcessHandle.java: nqp::openpipe handling for Windows. |
11:55 | |
p: 9591fa8 | jnthn++ | t/jvm/02-pipes.t: Make 02-pipes.t Windows-friendly. |
|||
jnthn | FROGGS: Call .resume iirc | 11:56 | |
FROGGS | r: use Test; { CONTROL { default { ok($_ eq 'please change to tc'); $!.resume } }; say "abc".ucfirst } | ||
camelia | rakudo 7e2d8b: OUTPUT«ok 1 - No such method 'resume' for invocant of type 'Nil' in block at /tmp/YEXdWuzcOS:1 in block at /tmp/YEXdWuzcOS:1» | ||
tadzik | $_? | ||
FROGGS | r: use Test; { CONTROL { default { ok($_ eq 'please change to tc'); $_.resume } }; say "abc".ucfirst } | ||
camelia | rakudo 7e2d8b: OUTPUT«ok 1 - Abc» | ||
tadzik | yay | ||
FROGGS | \o/ | ||
pmurias | FROGGS: did you manage to deal with run on parrot? | ||
FROGGS | pmurias: no | 11:57 | |
pmurias: because I don't see how I can create a linux/windows process where I can pass the args as a list | 11:58 | ||
12:00
FROGGS left
|
|||
dalek | p: bd3d68a | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Fix mkdir on JVM on Windows. |
12:01 | |
12:05
census joined
|
|||
dalek | ast: cb4fc4e | jnthn++ | S26-documentation/0 (2 files): Make a couple of tests cope better with \r's. |
12:07 | |
lizmat | fwiw, t/spec/S29-os/system.t is still failing for me on OS X | 12:08 | |
ok((run("dir", "t") != BEGIN { run("dir", "t") } ), 'run() is affected by chdir()'); # specifically | |||
jnthn | That one fails for me on Windows too, at least on JVM... | 12:09 | |
moritz | comparison with != seems a bit fragile | ||
12:09
sqirrel left
|
|||
moritz | that just counts files | 12:10 | |
dalek | kudo/nom: f87ed39 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for ** parse fix, Win/JVM fixes. |
||
lizmat runs spectest again | 12:11 | ||
12:14
pernatiy joined
|
|||
lizmat | .oO( jnthn is going to love his new i7, SSD and 16G RAM :-) |
12:14 | |
jnthn | lizmat: Well, apart from my desktop machine already has that, expect a more-core'd i7 :) | 12:15 | |
lizmat doesn't have a separate desktop machine | |||
Fatalnix | If I had the ultimate choice | ||
I'd get a 128 thread SPARC | 12:16 | ||
and build an OS out of Erlang that all it does is complain about the user using it. | |||
in parallel. | |||
lizmat | I'll guess I'll hold out for a macbook with an 64core A10 | ||
tadzik | woot | 12:17 | |
arnsholt | A friend on Facebook asked if an SSD is worth it yesterday. And everyone went "OMG LIEK SO WORTH IT!" =D | ||
tadzik | yeah, a not-really-techy friend of mine got one recently too. He's amazed | ||
nwc10 | jnthn: your "laptop died" sufficiently badly that it can't be ressurected? | 12:18 | |
tadzik | my old laptop is living his retirement as a server at home :) | ||
jnthn | nwc10: It's nearly 4 years old. It had a hard disk failure that was non-fatal for the disk, but destroyed enough of its contents that it couldn't boot. | 12:19 | |
nwc10: It appears not to have destroyed *everything* that was on the disk. But...it's hardly something you want to depend on. :) | 12:20 | ||
nwc10 | yeah. So the low budget solution is just to buy the SSD. But you're going to wrap the SSD in a new laptop too? | 12:21 | |
jnthn | Yeah. There's no need to take the low budget option. :) | ||
12:21
FROGGS joined
|
|||
jnthn | I travel plenty to do $dayjob tasks as well as Perl ones. So something lighter and faster is easily justifiable :) | 12:22 | |
tadzik | but you're polluting mother earth with unnecessary laptops! /o\ :) | ||
jnthn | I think 4 years is longer than many people stick with a laptop :P | ||
nwc10 | mine is 5 | 12:23 | |
jnthn | hm, so why on earth does substr-rw stack overflow on JVM... | ||
nwc10 | but it's rarely used to actually *build* anything | ||
JimmyZ | mine is 6 ,and going to 7 | ||
nwc10 | the SSD it now has is probably the most valuable part | 12:24 | |
JimmyZ doesn't have a SSD | |||
nwc10 | actually maxing out the RAM turned out to be a better win | 12:25 | |
start with that one | |||
JimmyZ | I have a SSHD with 4GB SSD though | 12:26 | |
[Coke] | jnthn++ java fixes. | 12:32 | |
jercos | Fatalnix: slap a T1 card in? 23 phone calls at the same time to the user's house, mechanically stating that the incorrect compoile flags were set on the driver. | 12:36 | |
('cause Erlang does nothing so well as telephony, amirite?) | |||
I do love my 128G SSD for my OS. Shame I can't keep all my games on it though. The ones that do fit run blazingly fast. | |||
Fatalnix | jercos: 24. | 12:38 | |
:D | |||
well, 23 if you have one for data | |||
jercos: erlang is designed for actor model parallel development | 12:39 | ||
jercos | yeah PRI signalling is best | ||
Fatalnix | so if you have a problem with 500 processes all doing simular or slightly different things Erlang will probably be a good fit. | ||
if you want to recursively rename all your dirs with regular expressions however in one script, Erlang probably isn't for you :P | 12:40 | ||
FROGGS | hopefully we an do this in lazily in parallel with perl 6 in future | 12:41 | |
12:41
ajr joined
|
|||
jercos | that of course, is best suited for a bash script utilizing sed and awk :p | 12:41 | |
FROGGS | (lazy because it will rename the you currently want to open) | ||
12:41
ajr is now known as Guest29323
|
|||
Fatalnix | well heres the thing FROGGS, with the JVM I think theres a port of the jvm that runs on baremetal x86 hardware isnt there? | 12:41 | |
12:41
Guest29323 is now known as ajr_
|
|||
Fatalnix | some weird port | 12:41 | |
it probably requires some sort of layer between it somehow | 12:42 | ||
jercos | like the thing that was used for JNODE? | ||
or JNode | |||
Fatalnix | possibly | ||
jercos | or however you're supposed to capitalize it | ||
Fatalnix | oh whatever, them java guys can have all their damn camel case | 12:43 | |
I'm not surprised they capitalize their projects weird. | |||
jercos | But Perl is best camel :o | ||
Fatalnix | :P: | ||
12:46
iSlug left
|
|||
dalek | p: f97e725 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Provide a non-decont'ing version of istype. |
12:53 | |
12:54
iSlug joined
|
|||
jnthn | [Coke]: Don't suppose you have that list of "tests we pass on Rakudo Parrot but not Rakudo JVM" handy somewhere? | 12:56 | |
[Coke] | ack -A3 "rakudo.jvm" $(ack -fa t/spec | ack '\.t$') | 12:57 | |
pmurias | FROGGS: for windows we could steal code from Perl5: github.com/mirrors/perl/blob/blead...32.c#L3739 | ||
jnthn | LHF: write a test for rt.perl.org/rt3/Ticket/Display.html?id=119513 then we can resolve it :) | ||
masak | a latecomer comment in the "Who moved my cheese?" discussion: abstrusegoose.com/507 | ||
FROGGS | pmurias++ # good idea | 12:58 | |
jnthn | [Coke]: I...thought there was a gist :) | ||
[Coke] | jnthn: one sec. | ||
jnthn | [Coke]: Think I finally fixed the substr-rw on JVM at least :) | ||
FROGGS | pmurias: do you have time for it or shall I try? | ||
[Coke] | gist.github.com/coke/5879701 | 12:59 | |
jnthn: oooh. | |||
jnthn | r: sub infix:<add> (@a, $n) is equiv(&infix:<X>) { @a <<+>> $n }; say 1 .. 3 add 5; | 13:00 | |
camelia | rakudo 74bb71: OUTPUT«===SORRY!=== Error while compiling /tmp/8OW1RIM_QHRoutine given to equiv does not appear to be an operatorat /tmp/8OW1RIM_QH:1------> » | ||
[Coke] | jnthn: I had stopped catalogging the failures since we skipped everything, but the latest copy of that is here: | ||
github.com/coke/perl6-roast-data/b....out#L2041 | 13:01 | ||
jnthn | [Coke]: Hm, but that has the weird "everything past a certain point fails" issue? | 13:02 | |
pmurias | FROGGS: I don't have a working windows dev env :/ | ||
jnthn will be curious to see if that is still the case today | |||
FROGGS | pmurias: k | ||
[Coke] | jnthn: if we were having trouble with :exists, I'm not surprised a ton of stuff failed. | ||
pmurias | FROGGS: and I am working on my nqpjs REPL now ;) | ||
jnthn | [Coke]: All non-trivial slicing/adverbs, in fact. | 13:03 | |
[Coke]: Should be better in the next run. | |||
[Coke] | jnthn: I can kick off another run right now to get a more up to date view, but it may take me a few hours to post it. | ||
FROGGS | pmurias: yeah, I dont want to make you fall behind in the rakudo/js <=> rakudo/moarvm race :P | ||
[Coke] | gotta ->; jnthn++ again. | ||
jnthn | 5879701 is helpful, thanks... | 13:04 | |
[Coke] | jnthn: ah, good. | ||
jnthn | [Coke]: Another run is great whenever you can. | 13:05 | |
dalek | ast: 6432283 | jnthn++ | S02-literals/quoting.t: Unfudges; q:x and qq:x work on JVM now. |
13:10 | |
colomon is trying another smoke run, because nothing (not even a failure message) came from last night's. :( | |||
13:10
iSlug left
|
|||
dalek | ast: dc06e88 | jnthn++ | S02-literals/quoting.t: qx and qqx are fixed too. |
13:11 | |
lizmat | Q: given sub a { once DEPRECATED( 'alternative', $r ) }, how can I make $r be the code object of 'sub a' ? | 13:13 | |
13:13
lichtkind joined,
ajr_ left
|
|||
lizmat | jnthn: any idea? | 13:14 | |
FROGGS | $?ROUTINE ? | ||
masak | &a ? | ||
FROGGS | r: $?ROUTINE | ||
camelia | rakudo 74bb71: OUTPUT«===SORRY!=== Error while compiling /tmp/u9cnctotRPVariable '$?ROUTINE' is not declaredat /tmp/u9cnctotRP:1------> $?ROUTINE⏏<EOL> expecting any of: postfix» | ||
FROGGS | r: sub a { $?ROUTINE }; a() | 13:15 | |
camelia | rakudo 74bb71: OUTPUT«===SORRY!=== Error while compiling /tmp/_n5wiGzIh6Variable '$?ROUTINE' is not declaredat /tmp/_n5wiGzIh6:1------> sub a { $?ROUTINE⏏ }; a() expecting any of: postfix» | ||
FROGGS | r: sub a { &?ROUTINE }; a() | ||
13:15
PacoAir joined
|
|||
camelia | ( no output ) | 13:15 | |
jnthn | &?ROUTINE | ||
13:15
ajr_ joined
|
|||
lizmat | cool, thanks! | 13:15 | |
13:15
SamuraiJack left
|
|||
lizmat | I was trying &?BLOCK, but that is NYI apparently | 13:15 | |
masak | r: sub a { &?ROUTINE }; say a() | ||
camelia | rakudo 74bb71: OUTPUT«sub a() { ... }» | ||
masak | \o/ | ||
FROGGS | perl6++ | ||
JimmyZ | r: say &?ROUTINE | 13:18 | |
camelia | rakudo 74bb71: OUTPUT«===SORRY!=== Error while compiling /tmp/WHYbzZ6xzFUndeclared name: &?ROUTINE used at line 1» | ||
masak | that's not a routine, silly :) | 13:19 | |
tadzik | well, MAIN is :) | ||
masak | do you *see* any MAIN there? no? thought so. | ||
lizmat | seems &?ROUTINE is affected by "is hidden_from_backtrace ? | ||
tadzik | read between the lines :) | ||
lines() read() lines() | |||
masak .oO( ladies and gentlemen, this lack of any routine is perfectly normal and no cause for alarm, panic, or absolute and utter terror ) | 13:20 | ||
jnthn | lizmat: Affected in what sense? | ||
moritz | r: say &?ROUTINE | ||
camelia | rakudo 74bb71: OUTPUT«===SORRY!=== Error while compiling /tmp/X7bEo4k0aJUndeclared name: &?ROUTINE used at line 1» | ||
lichtkind | lizmat: ping | ||
masak | moritz: two minutes later, still doesn't work :P | ||
lizmat | lichtkind: pong | ||
dalek | p: 82ea40f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: More OS name canonicalization. |
13:21 | |
lichtkind | lizmat: your a great ping pong player, i currently sontemplating what to submit to erl dev foom at fosdem | ||
lizmat: any wished? | |||
wishes | |||
dalek | kudo/nom: f390e41 | jnthn++ | / (2 files): Fix Proxy and thus substr-rw on JVM. |
13:22 | |
kudo/nom: cc5e06f | jnthn++ | tools/build/NQP_REVISION: Get OS canon fix. |
|||
ast: 8e1c86c | jnthn++ | S02-magicals/config.t: Unskip a config.t test for JVM. |
|||
lizmat | jnthn: wrt is hidden_from_backtrace affecting &?ROUTINE: it doesn't | 13:23 | |
but it does affect the underlying object, see: gist.github.com/lizmat/6699511 | |||
jnthn | lizmat: OK, that's what I'd expect... | ||
13:24
iSlug joined
|
|||
lizmat | Ah, it mixed in the role | 13:24 | |
ok, fixable | |||
jnthn | lizmat: The +{anon} is almost certainly from "is DEPRECATED"... | ||
lizmat | is hidden_from_backtrace, there is no is DEPRECATED in this picture yet | ||
jnthn | lizmat: I think there's a mixin_base method you can use to get back to an unmixedinto type | ||
lizmat | indeed | ||
jnthn | oh, yeah, I see it now | ||
lizmat | :-) | ||
jnthn | misread | ||
lizmat | now to have warn skip one more level of the stack | 13:25 | |
hmm…. maybe that's the once block | 13:26 | ||
jnthn | oh yay, my fix for substr-rw seems to have fixed more general .VAR issues on JVM | ||
lizmat | yup, it's the once block | ||
I guess we want once blocks to appear in stack traces generally, right ? | 13:27 | ||
jnthn | I'd say so | 13:28 | |
lizmat | but we currently have no way to hide it | 13:29 | |
jnthn | Oh? | ||
lizmat | do we? | ||
moritz | hidden_from_backtrace is a Routine trait | ||
jnthn | r: sub foo() { once { die "here"; } }; foo() | ||
camelia | rakudo f87ed3: OUTPUT«here in sub foo at /tmp/0CmsXGhmyy:1 in block at /tmp/0CmsXGhmyy:1» | 13:30 | |
moritz | so you can't hide blocks with it | ||
jnthn | ah | ||
If we made it handle block then you maybe can do | |||
once { also is hidden_from_backtrace; ... } | |||
moritz | does 'also' work? | ||
lizmat | r: once { also is hidden_from_backtrace; ... } | ||
camelia | rakudo f87ed3: OUTPUT«===SORRY!=== Error while compiling /tmp/zQuAli2MTtCannot call 'trait_mod:<is>'; none of these signatures match::(Mu:U $child, Mu:U $parent):(Mu:U $type, :rw(:$rw)!):(Mu:U $type, :nativesize(:$nativesize)!):(Mu:U $type, :unsigned(:$unsigne…» | 13:31 | |
jnthn | r: sub foo() { also is hidden_from_backtrace; die "omg" }; foo() | ||
camelia | rakudo f87ed3: OUTPUT«omg in block at /tmp/7g4cDMjoCc:1» | ||
jnthn | Looks like :) | ||
Was pretty sure it was implemented... :) | |||
moritz | then it might be as simple as changing the signature of the trait | ||
lizmat will try that when she's back from some cycling | 13:32 | ||
moritz | (fwiw the backtrace filter filters out blocks more readily than subroutines, so that's why jnthn++'s first example didn't include the once block) | ||
or maybe it's the static/dynamic chain intersection thingy | |||
no idea how once-blocks are dynamically scoped | 13:33 | ||
13:35
lowpro30 joined
13:36
xenoterracide joined
|
|||
dalek | ast: f0d78db | jnthn++ | S02-names/ (4 files): Lots of unskip for Rakudo JVM thanks to VAR fix. |
13:39 | |
13:40
iSlug left
13:42
lowpro30_ joined,
census left
|
|||
lizmat | cycling& | 13:42 | |
13:44
denis_boyun left
13:45
lowpro30 left
13:55
lowpro30 joined
|
|||
masak | there should be a single word for "this is not another framework". | 13:57 | |
13:58
lowpro30_ left
|
|||
dalek | p: 4280732 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (2 files): Include class in method not found errors. |
13:59 | |
kudo/nom: 3d25fb3 | jnthn++ | / (2 files): Throw X::Method::NotFound on JVM. |
|||
13:59
kaleem left
14:03
skids left,
rindolf left
14:05
iSlug joined
|
|||
dalek | ast: bf4c89e | jnthn++ | / (2 files): X::Method::NotFound unfudges for JVM. |
14:05 | |
lichtkind | lizmat: so no preferences? | 14:06 | |
14:07
btyler joined
|
|||
moritz | masak: "this is not another framework" = tinaf :-) | 14:07 | |
tadzik | then you can say that's someone's initials :) | ||
Tina Fey: This is not another framework, ey | 14:08 | ||
14:08
thou joined
|
|||
tadzik | I wonder if there's such person | 14:08 | |
"an American actress, comedian, writer and producer" | |||
colomon | she's quite famous here | 14:10 | |
jnthn | Wasn't she the one who played Sarah Palin on some show? | 14:11 | |
colomon | yes | 14:12 | |
Saturday Night LIght (incredibly famous here) | |||
lichtkind | jnthn: she is | ||
masak | "Light"? "Live"? | ||
colomon | Live, sorry | 14:13 | |
moritz | in Sovjet Russia, Sarah Palin plays YOU! | ||
tadzik | in Soviet Russia, Violin plays you | ||
colomon | "Fey won the Primetime Emmy Award for Outstanding Guest Actress in a Comedy Series for her impersonation of Palin." | 14:14 | |
wait, there's an award for Outstanding Guest Actress in a Comedy Series?! | |||
daxim | Emmys are strange | ||
moritz | if you make the awards specific enough, you can hand out more of them :-) | 14:15 | |
colomon: or maye there's a "Primetime Emmy Award", and the rest is the reason she won it? | |||
colomon | moritz: no, the Emmys are like the Academy Awards, but for TV | ||
14:16
berekuk left
|
|||
colomon | there are dozens of Primetime Emmy Awards | 14:16 | |
best actor, comedy | |||
best actor, drama | |||
best actress, comedy | |||
etc. | |||
tadzik | best drama, actor | ||
colomon | en.wikipedia.org/wiki/Emmy_Award | ||
moritz | tadzik++ | 14:17 | |
14:18
kaare_ joined,
berekuk joined
|
|||
moritz | did anybody test the R* release candidate I posted earlier? | 14:21 | |
masak | no -- url? | 14:23 | |
nvm, found it. | |||
moritz | moritz.faui2k3.org/tmp/rakudo-star-...RC0.tar.gz ftr | ||
14:24
odoacre left
|
|||
masak | (btw, when you re-post a reminder, please also re-provide the link. it makes the on-ramp for volunteering/participation that much easier.) | 14:24 | |
dalek | kudo/nom: 153daeb | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoContainerSpec.java: Correct Nil handling on JVM. |
||
ast: 5f763f9 | jnthn++ | S0 (7 files): Lots of JVM un-skips/un-todos from today's fixes. |
14:25 | ||
[Coke] | jnthn++ # on a roll. | 14:27 | |
at this rate, I will just leave the daily run to kick off, I'm not going to keep up with you. ;) | |||
-> | 14:28 | ||
masak builds the R* RC | 14:29 | ||
PerlJam too | 14:31 | ||
14:35
ssutch joined
|
|||
dalek | ast: 0e6ed92 | jnthn++ | S32- (5 files): Another bunch of JVM un-skip/un-todo from today. |
14:37 | |
TimToady wonders what the percentage is now... | 14:38 | ||
jnthn | Dunno :) | 14:39 | |
TimToady | jnthn++ # surpassed the roll, now on a tear... | 14:40 | |
14:40
ajr_ left,
ajr joined
|
|||
jnthn | r: say'ö'.encode('UTF-8')[0] | 14:40 | |
camelia | rakudo 3d25fb: OUTPUT«===SORRY!=== Error while compiling /tmp/v_SrigjQNbTwo terms in a rowat /tmp/v_SrigjQNb:1------> say'ö⏏'.encode('UTF-8')[0] expecting any of: argument list postfix infix stopper infix or…» | ||
jnthn | r: say 'ö'.encode('UTF-8')[0] | ||
camelia | rakudo 3d25fb: OUTPUT«195» | 14:41 | |
jnthn | hm, gets the uint8 right there... | ||
14:41
denis_boyun joined,
ajr is now known as Guest21756,
Guest21756 is now known as ajr_
|
|||
jnthn | Oh... | 14:42 | |
14:42
odoacre joined
|
|||
jnthn | I didn't implement the unsigned int arrays at all on JVM yet. No wonder. | 14:42 | |
GlitchMr | Preceding context expects a term, but found infix , instead | ||
, is not an infix? | |||
masak | yes. | ||
that's why it's not a term. | |||
GlitchMr | rn: 1,,2 | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===Preceding context expects a term, but found infix , instead at /tmp/b0Rl43xlg0 line 1:------> 1,⏏,2Parse failed» | 14:43 | |
..rakudo 3d25fb: OUTPUT«===SORRY!=== Error while compiling /tmp/8P4tGt7ozBPreceding context expects a term, but found infix , insteadat /tmp/8P4tGt7ozB:1------> 1,,⏏2» | |||
GlitchMr | oh, ok | ||
TimToady | you may omit the final argument, not the middle ones | ||
GlitchMr | I just misread error message. | ||
masak | yes. | ||
TimToady | .u 2062 | 14:47 | |
yoleaux | U+2062 INVISIBLE TIMES [Cf] (<control>) | ||
TimToady | yow | ||
jnthn | I never saw that codepoint before... :P | 14:48 | |
nwc10 | strangely, LOLCODE doesn't allow it yet | 14:50 | |
TimToady | nr: sub infix:<> ($x,$y) { $x * $y }; say 2pi; | 14:52 | |
camelia | niecza v24-95-ga6d4c5f: OUTPUT«6.2831853071795862» | ||
..rakudo 3d25fb: OUTPUT«6.28318530717959» | |||
TimToady | yowsers | ||
jnthn | std: sub infix:<> ($x,$y) { $x * $y }; say 2pi; | ||
camelia | std 7c17586: OUTPUT«ok 00:00 46m» | ||
GlitchMr | INVISIBLE TIMES? Seriously? | 14:53 | |
jnthn | I...thought we complained about a null operator not being allowed for those... :) | ||
oh wait... | |||
.u <> | |||
yoleaux | U+003C LESS-THAN SIGN [Sm] (<) | ||
U+003E GREATER-THAN SIGN [Sm] (>) | |||
U+2062 INVISIBLE TIMES [Cf] (<control>) | |||
jnthn | hah! | ||
(it quite literally *is* invisible in my client :)) | |||
TimToady | and in the ir clogs | 14:54 | |
GlitchMr | But I guess it will be bad idea to use it. I mean, it's invisible. | ||
TimToady | who would ever know? | ||
GlitchMr | Esoteric language made entirely of Unicode invisible characters would be interesting. | ||
And I mean, really invisible, not spaces (like in Whitespace). | 14:55 | ||
TimToady | well, U+2061 is also apparently invisible | 14:56 | |
.u 2061 | |||
yoleaux | U+2061 FUNCTION APPLICATION [Cf] (<control>) | ||
14:56
odoacre left
|
|||
GlitchMr | .u 2063 | 14:57 | |
yoleaux | U+2063 INVISIBLE SEPARATOR [Cf] (<control>) | ||
GlitchMr | .u 2064 | ||
yoleaux | U+2064 INVISIBLE PLUS [Cf] (<control>) | ||
GlitchMr | .u 2065 | ||
yoleaux | No characters found | ||
GlitchMr | I was hoping for more. | 14:58 | |
But seriously, invisible plus. Hm, actually that makes sense, if you use AWK. | |||
14:58
ajr_ left
|
|||
TimToady | what we need is a COMBINING MAKE INVISBLE character :) | 14:58 | |
nwc10 | you have enough. map INVISIBLE TIMES, PLUS and SEPARATOR to Ook! | ||
someone should implement that atop NQP :-) | |||
14:59
ajr_ joined
|
|||
dalek | p: 645b0c3 | jnthn++ | src/vm/parrot/6model/storage_spec.h: Fix typo. |
14:59 | |
p: 37c6d7f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/StorageSpec.java: Add is_unsigned slot to JVM StorageSpec. |
|||
TimToady | .u | 15:00 | |
yoleaux | U+E005F TAG LOW LINE [Cf] (<control>) | ||
U+E006B TAG LATIN SMALL LETTER K [Cf] (<control>) | |||
U+E006F TAG LATIN SMALL LETTER O [Cf] (<control>) | |||
TimToady | oops, typo | ||
GlitchMr | Why so many esoteric programming languages limit themselves to ASCII. | ||
World would be better with Unicode. | 15:01 | ||
TimToady | or should I say ooks? | ||
GlitchMr | I could find just one esoteric language which uses Unicode - esolangs.org/wiki/Sclipting | ||
15:01
mtk left
|
|||
GlitchMr | Also, one which supports Unicode in identifiers. | 15:02 | |
that supports* | |||
丟낆녬닆묬긅덯댦롤긐 | 15:03 | ||
gtodd1 | :) | 15:04 | |
masak | one hanzi and 9 hangul chars? how random. :) | 15:05 | |
gtodd1 | a totally iconic programming language would be neat :) | ||
masak | also, it's probably never been done, ever. | 15:06 | |
I bet we totally won't realize the flexibility and freedom of text along the way. | |||
TimToady | nr: say "Yikes, invisible ASCII!".ords.map(* - 64 + 0xE0000).chrs | ||
gtodd1 | maybe with little animated gifs of human hands for doing hard stuff :-) | ||
camelia | rakudo 3d25fb, niecza v24-95-ga6d4c5f: OUTPUT«» | 15:07 | |
GlitchMr | Actually, 丟 is instruction, and 낆녬닆묬긅덯댦롤긐 is data. | ||
15:07
gtodd1 is now known as gtodd
|
|||
GlitchMr | .u | 15:07 | |
yoleaux | No characters found | ||
GlitchMr | Invisible? | ||
I see it as a placeholder. | |||
TimToady | nr: say "�����������������������".ords.map(* - 0xE0000 + 64).chrs | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«=======================» | ||
..rakudo 3d25fb: OUTPUT«Invalid character for UTF-8 encoding in method chr at src/gen/CORE.setting:4145 in method dispatch:<hyper> at src/gen/CORE.setting:1159 in method chrs at src/gen/CORE.setting:6723 in block at /tmp/gRiR2V9Eji:1» | |||
TimToady | hah | ||
.u tag | 15:08 | ||
15:08
ajr_ left
|
|||
yoleaux | U+1700 TAGALOG LETTER A [Lo] (ᜀ) | 15:08 | |
U+1701 TAGALOG LETTER I [Lo] (ᜁ) | |||
U+1702 TAGALOG LETTER U [Lo] (ᜂ) | |||
TimToady | .u E0001 | ||
yoleaux | U+E0001 LANGUAGE TAG [Cf] (<control>) | ||
GlitchMr | I'm suspicious about these letters. | ||
I bet they can be used for IDN spoofing. | |||
TimToady | oh, wrong offset | ||
nr: say "�����������������������".ords.map(* + 0xE0000).chrs | 15:09 | ||
camelia | rakudo 153dae, niecza v24-95-ga6d4c5f: OUTPUT«» | ||
TimToady | nr: say "Yike, invisible ASCII!".ords.map(* + 0xE0000).chrs | ||
camelia | rakudo 153dae, niecza v24-95-ga6d4c5f: OUTPUT«» | ||
TimToady | nr: say "����������������������".ords.map(* - 0xE0000).chrs | 15:10 | |
camelia | rakudo 153dae: OUTPUT«Invalid character for UTF-8 encoding in method chr at src/gen/CORE.setting:4145 in method dispatch:<hyper> at src/gen/CORE.setting:1159 in method chrs at src/gen/CORE.setting:6723 in block at /tmp/nsEaUcINye:1» | ||
..niecza v24-95-ga6d4c5f: OUTPUT«����������������������» | |||
TimToady | well, I guess it's pasting the replacement character | ||
yes | 15:11 | ||
GlitchMr | nr: þ³²€²ź¢ż³²ą©ł¢ł©≥ąææ…œ¢³œðæ”óæąę→ęœ–³→œæęœśæðśŋ≤³¢µ’€µþc6t³¢ęð≥³≠²ęðwfc | ||
camelia | rakudo 153dae: OUTPUT«===SORRY!=== Error while compiling /tmp/Ix2O8WoGMeTwo terms in a rowat /tmp/Ix2O8WoGMe:1------> þ⏏³²€²ź¢ż³²ą©ł¢ł©≥ąææ…œ¢³œðæ”óæąę→ęœ–³→œæę expecting any of: argument list postfix infix stopper…» | ||
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===Confused at /tmp/sKQBrmabTZ line 1:------> þ⏏³²€²ź¢ż³²ą©ł¢ł©≥ąææ…œ¢³œðæ”óæąę→ęœ–³→œæęUndeclared routine: 'þ' used at line 1Parse failed…» | |||
15:11
ajr_ joined
|
|||
GlitchMr | Two terms in row? Where? | 15:11 | |
TimToady | right where it points to | ||
GlitchMr | I see one term, and the character that isn't defined. | 15:12 | |
TimToady | nr: say '³' ~~ /\w/ | ||
GlitchMr | (because I assume xB3 means nothing in Perl 6) | ||
camelia | rakudo 153dae, niecza v24-95-ga6d4c5f: OUTPUT«Nil» | ||
GlitchMr | Nothing, as in, syntax error, not whitespace. | 15:13 | |
TimToady | it's not clear why rakudo thinks ³ is the start of another term; niecza++ is being more honest here | ||
nr: ³ | 15:14 | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===Bogus statement at /tmp/VlBqdWXG8i line 1:------> <BOL>⏏³Parse failed» | ||
..rakudo 153dae: OUTPUT«===SORRY!=== Error while compiling /tmp/ILMKEZ2KONBogus statementat /tmp/ILMKEZ2KON:1------> <BOL>⏏³ expecting any of: statement list prefix or term prefix or meta-prefix» | |||
PerlJam | Maybe the LTM is slightly broken. | ||
TimToady | I think it's just a spot where it never converged on STD quite | ||
there's no LT to LTM there | 15:15 | ||
TimToady is a little surprised niecza doesn't say: WTF at line 1 :) | 15:16 | ||
but I guess we want Perl 6 to be 7-year-old safe | |||
not that there's many 7-year-old English speakers on the planet that don't already know what WTF means... | 15:17 | ||
PerlJam | where's the fudge? | ||
I have two 7-year-olds at home. I wonder what they would say if I asked them what WTF meant? | 15:19 | ||
colomon | why the face? | ||
jercos | WTF does that mean? | ||
TimToady | so it's actually making Perl 6 safe for the *parents* of 7-year-olds :) | 15:20 | |
15:24
alester joined
|
|||
masak | r: say $! | 15:29 | |
camelia | rakudo 153dae: OUTPUT«Nil» | ||
15:29
skids joined
|
|||
masak | r: run 'echo "OH HAI"'; say $! | 15:29 | |
camelia | rakudo 153dae: OUTPUT«run is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:2 in sub run at src/RESTRICTED.setting:8 in block at /tmp/BIW0K5MmL_:1» | ||
masak | $ perl6 -e 'run "echo OH HAI"; say $!' | ||
Nil | |||
I'd expect either some output or an error/exception in $! | 15:30 | ||
what did I miss? | |||
(I know &run expects its arguments as single words, to be quoted by the shell) | 15:31 | ||
jnthn | What does the call to run evaluate to? | 15:32 | |
FROGGS | maybe try $@ :P | ||
masak | $ perl6 -e 'say run "echo OH HAI"' | 15:33 | |
255 | |||
15:34
daxim left
|
|||
TimToady | you'll note it's 255 but False | 15:34 | |
TimToady doesn't think returning 'but False' is very unsmelly | |||
masak doesn't disagree | 15:35 | ||
TimToady | the original apocalyptic notion was that it return only a boolean, and you had to visit $! for the result if false | 15:36 | |
not sure when it mutated to the 'but False' notion, or why that prevented $! from getting set | |||
15:37
iSlug left
|
|||
masak | oh, I thought 'but False' was apocalyptic. maybe I misremember. | 15:39 | |
TimToady could also be misremembering | |||
certainly the unification of $! was apocalyptic | |||
masak | aye. | 15:42 | |
TimToady | 'but' is old, but not the application of it to run/shell, iirc | 15:43 | |
masak | hm, does &run still ignore $*CWD in Rakudo HEAD? it does in my built version. | 15:47 | |
masak uses &shell for the time being | |||
15:48
bluescreen10 joined
15:54
[particle] joined
|
|||
masak | TimToady: A12 mentions '0 but true'. but it doesn't do so in a &shell or &run setting. | 15:55 | |
15:55
vk joined
|
|||
masak | (or &system, as we probably thought of it back then) | 15:55 | |
besides that, I can't find any references to 'but False' or 'but True' in the apocalypses. | |||
Damian has 5 'but true' in his E04. | 15:56 | ||
but also unrelated to shell games. | |||
15:57
dmol left
|
|||
timotimo | masak: it HEAD, rakudo shouldn't ignore $*CWD on parrot | 15:58 | |
it does an explicit nqp::chdir right before doing the run; i'm pretty sure the cwd emulation is only in rakudo, so that chdir should work | 15:59 | ||
TimToady | A06 thinks system() exists as &*system, since we hadn't invented the setting yet | 16:01 | |
masak | timotimo: ok, I might update and rebuild, then. thanks. | 16:03 | |
moritz: all tests and spectests passed in Rakudo R* RC0. | 16:04 | ||
moritz: any other tests to run -- something module-related, perhaps? | |||
pmichaud | good morning, #perl6 | ||
timotimo | greetings pm! | 16:06 | |
TimToady wonders when we'll get Rakudo Jar | |||
pmichaud: o/ | |||
timotimo | rakudo czar? | ||
jnthn | o/ pmichaud | 16:07 | |
dalek | p: 9561e47 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (3 files): Have P6int on JVM handle unsigned in compose. |
||
p: f3ce73e | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (5 files): Unsigned native int array support for JVM. Means we can get buf8, utf8, buf16, utf16 types behaving on JVM. |
|||
PerlJam | pmichaud: hey! o/ | ||
arnsholt | Ooooh, unsigneds! | 16:09 | |
moritz | masak: make modules-test | ||
TimToady | timotimo: rakudo czar would have to be a port to МК-61/52 or so | 16:10 | |
dalek | kudo/nom: d50a0fc | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for unsinged int bufs on JVM. |
16:11 | |
ast: 55dc1ad | jnthn++ | S32-str/encode.t: .encode unfudges for JVM. |
|||
jnthn | arnsholt: Just the bits I needed for Buf for now :) | ||
TimToady | Rakudo JarJar | 16:12 | |
a port of Rakudo Starwars | |||
pmichaud binks TimToady++ on the head. | |||
TimToady shakes his head floppily | |||
timotimo | rakudo jarjar is the one nobody wants | 16:13 | |
so probably runs on cobol or something | |||
TimToady | it's the one everyone *wishes* was pining for the fjords | ||
and of course, Rakudo Tar is the port to run on Bourne Shell plus standard Unix commands | 16:14 | ||
timotimo | that would be amazing | ||
masak | moritz: well, first off, that fails without doing 'make install' first :) | 16:15 | |
moritz | masak: that's known, and I won't change it for this release :-) | ||
masak | *nod* | 16:16 | |
moritz | if rakudo doesn't speed up, it'll be know as Rakudo TarPit :-) | 16:17 | |
TimToady | it already speeds up on the JVM :P | ||
I saw it on a graph, so it must be true! | 16:18 | ||
moritz | was the graph on the internet? :-) | 16:19 | |
TimToady | Rakudo Car is the port to Lisp, obviously... | ||
moritz | and Rakudo Cdr its evil twin | ||
TimToady | the port to JS should maybe be Rakudo Var | ||
masak .oO( put your cdrma in your carma ) | 16:20 | ||
timotimo | car is lisp, cdr is scheme? perhaps? | ||
dalek | p: 76820d4 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Fix readfh for Buf[uint8]. |
||
masak runs modules-test | |||
TimToady | what language is WoW programmed in? | 16:21 | |
arnsholt | Mostly C++, I assume, with Lua for scripting | ||
TimToady | Rakudo War for them, I guess | ||
16:22
ajr_ left
|
|||
TimToady | Rakudo Par for the golfers... | 16:22 | |
TimToady stops perseverating, for the moment | 16:23 | ||
16:23
ajr joined,
ajr is now known as Guest21513,
Guest21513 left
16:25
Rix left,
ajr_ joined
|
|||
timotimo | i'm personally excited for rakudotnet | 16:25 | |
16:25
ajr_ left
|
|||
masak | the jsonrpc module gives the Mu.bless warning. | 16:27 | |
overall, all tests are successful in the modules-test so far, but quite a lot of warnings, not just that one. | |||
TimToady | .oO(Rakudo Sharp) |
16:28 | |
masak | yep, all tests successful. | ||
timotimo | Raku.js | ||
masak | that concludes my RC0 testing, I believe. | ||
TimToady | .u sharp | ||
yoleaux | U+00DF LATIN SMALL LETTER SHARP S [Ll] (ß) | ||
U+1E9E LATIN CAPITAL LETTER SHARP S [Lu] (ẞ) | |||
U+266F MUSIC SHARP SIGN [Sm] (♯) | |||
moritz | masak: bbkr_ has promised to update jsonrpc today-ish | ||
16:29
ajr_ joined
|
|||
moritz | masak: so I'll wait until that's done, update the submodule, and release away | 16:29 | |
masak: thanks for testing | |||
timotimo | also, RakuDOS | 16:30 | |
bbkr_ | hi. 2013.09 is building right now, JSON::RPC fix and tests will follow | ||
TimToady notes that googling for C♯ is largly a feyl | |||
*gely | |||
so we should make them call C# "C octothorpe" or some such | 16:31 | ||
GlitchMr | duckduckgo.com/?q=C%E2%99%AF | 16:33 | |
It's not just Google. | |||
At least it linked to C♯ (musical note). | 16:34 | ||
Still, the language is called C#, not C♯, even when it's pronounced see sharp. | 16:36 | ||
16:36
mtk joined
16:37
mtk left,
Rix joined
16:38
mtk joined,
ajr_ left
16:39
kaleem joined
16:40
mtk left
|
|||
timotimo | i pronounce it "clattenzaun" | 16:41 | |
16:41
mtk joined
16:42
ajr_ joined
|
|||
ajr_ | C# should be pronounced "C hash" | 16:42 | |
jnthn | bah, now I want to start a .net open source project called Smoke# :P | 16:43 | |
16:44
mtk left
16:45
mtk joined
16:48
mtk left
16:49
mtk joined
16:51
mtk left
|
|||
dalek | p: ced8450 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Fix writefh on JVM to not emit trailing nullbytes. |
16:53 | |
16:53
dakkar left
|
|||
FROGGS | I always wanted to name something FOAM (something SOAPy) | 16:55 | |
16:57
mtk joined
|
|||
TimToady | .u #井⌗⧣#𐄹♯ | 16:57 | |
yoleaux | U+0023 NUMBER SIGN [Po] (#) | ||
U+2317 VIEWDATA SQUARE [So] (⌗) | |||
U+266F MUSIC SHARP SIGN [Sm] (♯) | |||
16:58
kaleem left
|
|||
TimToady | wow, my firefox knows aegean | 16:58 | |
tell you what, if you can get the Unicode Consortium to add a $*OS symbol, we can leave it in Perl 6... | 17:04 | ||
FROGGS | *g* | ||
jnthn | std: multi method a( %t, *@l ) { foo( -> $v { %t{$v} }, *@l ) } | 17:05 | |
camelia | std 7c17586: OUTPUT«===SORRY!===Unable to parse argument list at /tmp/aSmZ0W8nv6 line 1:------> multi method a( %t, *@l ) { foo⏏( -> $v { %t{$v} }, *@l ) }Couldn't find final ')'; gave up at /tmp/aSmZ0W8nv6 line 1:------> a( %t, *@l ) {…» | ||
jnthn | r: multi method a( %t, *@l ) { foo( -> $v { %t{$v} }, *@l ) } | ||
camelia | rakudo 153dae: OUTPUT«===SORRY!=== Error while compiling /tmp/b1vYdREClPUnable to parse expression in argument list; couldn't find final ')'at /tmp/b1vYdREClP:1------> a( %t, *@l ) { foo( -> $v { %t{$v} }, *⏏@l ) } expecting any of: …» | ||
jnthn | Rakudo seems to place the highwater mark better than STD here, somehow :) | ||
TimToady | huh | 17:06 | |
std: *@_ | |||
camelia | std 7c17586: OUTPUT«===SORRY!===Two terms in a row at /tmp/d7j_zlx6Kb line 1:------> *⏏@_ expecting any of: POST feed_separator infix or meta-infix infixed function postcircumfix postfix postfix_prefix_meta_operator postop | ||
..statemen…» | |||
jnthn | (the problem being the *, when a | was most likely meant) | ||
TimToady | std: (*@_) | 17:07 | |
camelia | std 7c17586: OUTPUT«===SORRY!===Two terms in a row at /tmp/zoiQBHqgLp line 1:------> (*⏏@_) expecting any of: POST infix or meta-infix infixed function postcircumfix postfix postfix_prefix_meta_operator postop statement | ||
..modifier loo…» | |||
TimToady | std: sin(*@_) | ||
camelia | std 7c17586: OUTPUT«===SORRY!===Unable to parse argument list at /tmp/M2cmibmwEW line 1:------> sin⏏(*@_)Couldn't find final ')'; gave up at /tmp/M2cmibmwEW line 1:------> sin(*⏏@_) expecting any of: POST infix or met…» | ||
jnthn is looking at 119133 and thinking Rakudo did a decent job of pointing out where the problem was... :) | |||
RT#119133 that is | 17:08 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=119133 | ||
TimToady | n: sin(*@_) | 17:10 | |
camelia | niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===Unable to parse argument list at /tmp/ErmiFAZ0XD line 1:------> sin(⏏*@_)Couldn't find final ')'; gave up at /tmp/ErmiFAZ0XD line 1:------> sin(*⏏@_)Parse failed…» | ||
17:12
ajr_ left
|
|||
bbkr_ | moritz: JSON::RPC is now fixed and passes all tests | 17:13 | |
masak | jnthn: agree. | ||
dalek | kudo/nom: 6336d4d | jnthn++ | src/core/IO.pm: Fix double-open/close issues. |
17:14 | |
kudo/nom: ded7250 | jnthn++ | tools/build/NQP_REVISION: Bump to get various binary IO fixes. |
|||
masak | jnthn: in fact, the RT ticket is a bit unclear about what's wrong. the biggest clue is in the ticket title. | ||
dalek | ast: e9256d1 | jnthn++ | S32-io/s (2 files): Some binary IO unfudges for JVM. |
||
masak | jnthn: but even that is misleading, as the parse error happens in the argument list, not in the method signature. | 17:15 | |
17:15
SamuraiJack joined
|
|||
jnthn | masak: The error clearly says argument list, I think it's a case of being tired and not reading the error carefully. | 17:17 | |
Which is all fine and stuff, but not worthy of an RT ticket. :) | |||
Anyway, ticket rejected. | 17:18 | ||
Down to 60 #?rakudo.jvm markers in the test suite | 17:19 | ||
r: 42.fmt('%+d') | |||
camelia | ( no output ) | ||
jnthn | r: say 42.fmt('%+d') | ||
camelia | rakudo 153dae: OUTPUT«+42» | ||
jnthn | hm, that seems to work on JVM too...why da fudge... | 17:20 | |
17:20
pernatiy left
17:22
zakharyas joined
|
|||
FROGGS | maybe forgot to unfudge after fixing it... | 17:23 | |
jnthn | yeah | ||
FROGGS | should work this way for a while now | ||
jnthn | There is a genuine sprintf issue though | ||
FROGGS | ohh | ||
jnthn | advent2009-day16.t's fudges | ||
If anybody who knows the sprintf stuff well wants to look | 17:24 | ||
FROGGS | is that about Hash.fmt? | ||
FROGGS looks | |||
dalek | ast: 2f243cc | jnthn++ | integration/advent2009-day02.t: Unskip a sprintf test JVM now passes. |
||
jnthn | FROGGS++ | ||
hoelzro | is R* going out today? | 17:26 | |
dalek | ast: 2511217 | jnthn++ | S02-magicals/env.t: Unfudge a now-passing %*ENV test. |
17:27 | |
TimToady | .oO(R⽸) |
||
jnthn | r: constant grtz = 42; grtz = 23 | 17:30 | |
camelia | rakudo d50a0f: OUTPUT«Cannot modify an immutable value in block at /tmp/SW8hQyGbSi:1» | ||
TimToady | r: constant grtz = 42; my \grtz = 23; | ||
camelia | rakudo d50a0f: OUTPUT«===SORRY!=== Error while compiling /tmp/O0Uc8u15C7Redeclaration of symbol grtzat /tmp/O0Uc8u15C7:1------> constant grtz = 42; my \grtz = 23⏏; expecting any of: postfix» | ||
jnthn | r: 42 = 23 | 17:31 | |
camelia | rakudo d50a0f: OUTPUT«Cannot modify an immutable value in block at /tmp/2j5S0JmzIG:1» | ||
jnthn wonders why that comes out with null pointer exception on JVM... | |||
oh, duh... | 17:32 | ||
dalek | kudo/nom: 1e238c8 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java: Fix thinko in error reporting. |
17:35 | |
17:37
sqirrel joined
|
|||
dalek | ast: edbad65 | jnthn++ | S (2 files): Unfudge ro-assignment error tests for JVM. |
17:38 | |
[Coke] | chrome | 17:40 | |
ww. | |||
jnthn | fail | ||
[Coke]: Down to 52 JVM-specific skip/todo spread over 36 files. | 17:41 | ||
[Coke] | jnthn++ jnthn++ | ||
timotimo | from how much? | 17:42 | |
[Coke] | timotimo: that many: gist.github.com/coke/5879701 | ||
TimToady | building Moose and nqp/jvm at the same time will peg a 2-core machine... | ||
timotimo | that's really not bad! | ||
[Coke] | 141 earlier today. | 17:43 | |
timotimo: plus the several thousand test failures. | |||
timotimo | jnthn always does amazing things | ||
[Coke] | I've been glancing at some of these for weeks and wasn't sure where to dig in. :) | 17:44 | |
TimToady | even when he's doing nothing, he does it amazingly well... | ||
dalek | ast: d7042ed | jnthn++ | S32-exceptions/misc.t: Another un-skip from an earlier fix. |
||
jnthn | There's -1 off both of thsoe numbers :) | ||
A handful of these, I don't think we're going to really fix until we move from Java strings to NFG. | 17:45 | ||
TimToady | yeah, jvm is gonna thing 𐄹 is two characters | 17:46 | |
diakopter .oO( surely there's something to parse to nfc already ... ) | |||
oh good, Normalizer | |||
[Coke] | java run just started, with an hour old roast. | ||
jnthn | ooh, I should probably eat something... | 17:47 | |
timotimo | breakfast? :) | ||
diakopter too | |||
[Coke] vanishes in a puff of logic. | |||
FROGGS | rakudo-jvm$ ./perl6 -e 'sprintf "%3.6371897073027277s", "A"' | ||
java.lang.StringIndexOutOfBoundsException: String index out of range: -443201331 | |||
timotimo | [Coke]: it's cool to begin the run before everything new is in there | 17:48 | |
because the day after that you get another bump "for free" ;) | |||
FROGGS | rakudo-jvm$ ./perl6 -e 'say sprintf "%3.6371897073s", "A"' | ||
A | |||
jnthn | shop & | 17:52 | |
TimToady | $ ./perl6 -e 'say "𐄹".chars' | 17:53 | |
2 | |||
nr: say "𐄹".chars | 17:54 | ||
FROGGS | it should output: "2" | ||
camelia | rakudo d50a0f: OUTPUT«1» | ||
..niecza v24-95-ga6d4c5f: OUTPUT«2» | |||
TimToady | 1 is correct :) | ||
FROGGS | I know :o) | ||
TimToady | lovely word, "should" | ||
nr: say "2" but 1; | 17:55 | ||
camelia | rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«2» | 17:56 | |
TimToady | nr: say +("2" but 1); | ||
camelia | rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«2» | ||
TimToady | eh? | ||
nr: say +("2" but True); | |||
camelia | rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«2» | ||
TimToady | nr: say + ?("2" but True); | 17:57 | |
camelia | rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«1» | ||
TimToady | nr: say +?("2" but True); | ||
camelia | rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«1» | ||
17:59
odoacre joined
18:03
fhelmberger left
|
|||
dalek | ar: 99d66b0 | moritz++ | modules/jsonrpc: Update module jsonrpc, bbkr++ |
18:04 | |
arnsholt | So, um, I decided to start writing a Python compiler in NQP (it seemed like a good idea at the time) | 18:06 | |
But I've run into some weirdness in the grammar. Anyone feel like contributing a pair of eyes? | |||
diakopter | ok.. :) | ||
jnthn | nr: say ("2" but 1).Int | ||
camelia | rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«1» | 18:07 | |
jnthn | TimToady: .Numeric is defiend directly on Str, I guess. | ||
geekosaur | .oO { Numeric is de fiend } | 18:08 | |
lizmat | lichtkind: anything Perl related, with Perl 6 for bonus points ? | 18:12 | |
18:12
raiph joined
|
|||
diakopter | r: say ("2" but Positional).list.WHAT | 18:14 | |
camelia | rakudo d50a0f: OUTPUT«(List)» | ||
diakopter | r: say ("2" but Positional).WHAT | 18:15 | |
camelia | rakudo d50a0f: OUTPUT«(Str+{})» | ||
perigrin | Playful but Professional | ||
18:19
_ilbot left
18:20
_ilbot joined
|
|||
lichtkind | lizmat: i submitted perl 6 roles (with moose part) for main track, because i think its interesting enough for all | 18:20 | |
lizmat: but i can repeat it in dev room as well | 18:21 | ||
raiph | arnsholt: link? | ||
lizmat | that would be cool, especially should your talk for the main room not be accepted | ||
arnsholt | raiph: github.com/arnsholt/nqpy | ||
pmurias | a python-on-QAST seems great | 18:23 | |
the python libraries should be more vm independent then the p5 ones as python seems to have more implementations | |||
18:23
_ilbot left
|
|||
arnsholt | Well, a fair number of them rely on C extensions I think | 18:24 | |
18:24
_ilbot joined
|
|||
dalek | p: 61f2f50 | (Tobias Leich)++ | src/HLL/sprintf.nqp: only substr to precision when needed |
18:25 | |
pmurias | arnsholt: so much for my uninformed optimism :/ | ||
arnsholt: re weirdness in the grammar? anything I should look at? | 18:27 | ||
dalek | kudo/nom: f0b3edb | (Tobias Leich)++ | tools/build/NQP_REVISION: bump nqp revision |
||
arnsholt | pmurias: try "if 1:\n\tnqp::say(1)" in a file | ||
For some reason it doesn't parse the if correctly | |||
With --rxtrace it seems like it insists on the <EXPR> for the conditional to read a term:sym<identifier>, which is weird | 18:28 | ||
dalek | ast: 0b22d96 | (Tobias Leich)++ | integration/advent2009-day16.t: unfudge for rakudo.jvm |
||
arnsholt | Which is odd, since something like "nqp::say(1)" works fine | 18:29 | |
18:30
darutoko left
|
|||
pmurias | arnsholt: the Makefile is broken | 18:32 | |
TimToady | how many of them count on a GIL? | ||
(pylibs) | |||
pmurias | arnsholt: as I get a dependencies error after changing the grammar file | 18:35 | |
arnsholt | pmurias: Oh, right. You need to make clean nqpy | 18:36 | |
nwc10 | TimToady: I wonder if that question is going to be answered soon by other people, if PyPy's STM works out | 18:37 | |
18:37
_ilbot left,
_ilbot joined
18:38
_ilbot left,
_ilbot joined
|
|||
arnsholt | TimToady: No idea. Would be fun to know =) | 18:39 | |
18:39
Rotwang joined
|
|||
pmurias | arnsholt: I managed to fix the Makefile ;) | 18:43 | |
arnsholt: could I please have a commit bit to commit my fix? | 18:44 | ||
arnsholt | Sure. You're pmurias on GitHub too, right? | 18:51 | |
pmurias | yes | 18:52 | |
arnsholt | Commitbitted. | 18:53 | |
18:56
dmol joined
|
|||
raiph | arnsholt: irclog.perlgeek.de/perl6/2013-01-07#i_6306701 # might be easier ;) | 19:10 | |
arnsholt | Hip hip Array? | 19:13 | |
arnsholt doesn't get it | |||
FROGGS | make an nqp::debugger and step through your problems :o) | ||
pmurias found the first problem in the grammar | 19:14 | ||
arnsholt | Super! | 19:15 | |
Was it something silly? =) | |||
perigrin | improper noun declension at line 63 | ||
pmurias | "Whitespace is ignored within square brackets" | ||
in the synopsis spec for <[...]> | 19:16 | ||
arnsholt | Oh. | 19:17 | |
That might count as silly, yeah | |||
lue | hello world o/ | 19:18 | |
19:19
sqirrel left
19:22
dmol left
19:24
dmol joined
19:30
zwut00 joined
|
|||
pmurias | arnsholt: you might want to add dalek hooks to nqpy | 19:31 | |
hoelzro | nqpy? | 19:34 | |
arnsholt | I read the RaNIW course notes =) | ||
And started writing a Python compiler | |||
19:34
zwut00 left
|
|||
diakopter | arnsholt: did you look at pynie? | 19:35 | |
it has a .pg grammar | |||
arnsholt | Haven't yet, but that sounds like a good idea | 19:36 | |
jnthn | .pg is pre-protoregex and the OPP worked different, but if it got far along I'd guess various bits are stealable. | ||
moritz | yes, I think pmichaud gave the whole indention-based parsing a deep thought | 19:37 | |
jnthn | Yeah, I remember him saying he found a good way to encode that. | 19:38 | |
arnsholt | Yeah, my current version of it is relatively simple, actually | ||
MARKER/MARKED was useful | |||
Victory! | 19:39 | ||
The if statement now parses | |||
pmurias++ # Reading the specs | |||
Wow, reading Grammar.pg from Pynie brings back memories | 19:43 | ||
19:47
kay__ joined,
kay_ left
|
|||
dalek | kudo/nom: 7e981ca | jnthn++ | src/core/List.pm: Fix squish with :as to work on JVM. |
19:47 | |
19:48
zakharyas left
|
|||
lizmat | jnthn: would that have been needed on parakudo as well? | 19:49 | |
jnthn | lizmat: Native types are meant to be constrainty rather than coercy. | ||
lizmat: The JVM backend gets that right; Moar should as well. | |||
lizmat: On Parrot they have coercier than they really should. | |||
lizmat | gotcha | 19:50 | |
jnthn | lizmat: 6model made a very clean split between coerce and unbox; Parrot's v-tables didn't...and we still see some legacy of that... | ||
lizmat | btw, doing Routine->add_phaser at compile time is not enough to get the routine to execute that phaser | 19:51 | |
jnthn | It has to be before the closing } of that routine. | ||
Routines have a kinda "compose time" a bit like classes. | |||
Less formalized, but basically "when the routine_def action method runs" | 19:52 | ||
lizmat | $r.add_phaser( 'ENTER', -> { once DEPRECATED($DEPRECATED) } ); is the only inside the trait_mod: is DEPRECATED | ||
dalek | ast: 103d5ad | jnthn++ | S32-list/squish.t: Unfudge some squish tests for JVM. |
||
lizmat | *thing | ||
jnthn | Oh, it's inside the trait_mod... | ||
That should be early enough... | 19:53 | ||
lizmat | but it isn't | ||
jnthn | Hmmm. | ||
lizmat | I verified this by adding an extra ENTER in the sub with the trait, and then it works | ||
jnthn | If you write "also is DEPRECATED;" inside the routine instead of applying it as an "is DEPRECATED" at the top, are the semantics any different, ooc | ||
? | |||
It may just be an ordering problem. | 19:54 | ||
lizmat tests that | |||
19:55
raiph left
19:58
dmol left
|
|||
lizmat | Null PMC access in get_string() :-( | 19:58 | |
$ perl6 -e 'sub a { also is DEPRECATED("bar"); say "a" }; a' | 19:59 | ||
$ perl6 -e 'sub a is DEPRECATED("bar") { say "a" }; a' | 20:00 | ||
a | |||
$ perl6 -e 'sub a is DEPRECATED("bar") { ENTER {}; say "a" }; a' | |||
Sub 'a' has been deprecated, please use bar instead in any at -e:1 | |||
a | |||
timotimo | :| | ||
arnsholt | Maybe there's something wrong in the routine_def action? | 20:01 | |
Like it only does the phaser thing if there's an actual phaser in the code? | 20:02 | ||
moritz | lizmat: can't you just .wrap the code inside the DEPRECATED trait? | ||
diakopter | try END instead of ENTER | ||
jnthn | arnsholt: yeah, routine_def is suspect...moment... | 20:03 | |
lizmat | not sure, $r at that moment is still incomplete | ||
diakopter | .wrap would be a runtime thing, not on the ast | ||
jnthn | yeah | 20:04 | |
finish_code_object happens before trait application. | |||
lizmat | in the end, I would like to see this as a phaser block that removes itself from the list of phasers after having been executed | ||
jnthn | And finish_code_object is what looks at what phasers we have and emits code to run them. | ||
lizmat: That's probably overkill... | 20:05 | ||
arnsholt | Yeah, I was going to suggest moving the trait application. It's pretty late in the action | ||
lizmat | ok, let me try that | ||
diakopter | lizmat: maybe better to inject a state var so it runs only once? | ||
lizmat | that's what the once block is for | 20:06 | |
diakopter | ah, I missed that | ||
20:06
SamuraiJack left
|
|||
jnthn | I only worry what the effect may be on traits that wrap... | 20:08 | |
Hopefully, nothing. | |||
lizmat | we'll see, it appears to compile so far :-) | ||
jnthn | r: Duration.new(1) | 20:09 | |
camelia | ( no output ) | ||
jnthn | r: say Duration.new(1).WHAT | ||
camelia | rakudo f0b3ed: OUTPUT«(Duration)» | ||
jnthn | r: say Duration.new(1).Num.WHAT | ||
camelia | rakudo f0b3ed: OUTPUT«(Rat)» | ||
jnthn | wtf... | ||
has Rat $.x = 0; | |||
method Num(Duration:D:) { $!x } | 20:10 | ||
d'oh! | |||
20:10
raiph joined
|
|||
jnthn | And that's why sleep.t has JVM fudges.. :) | 20:10 | |
masak | hah :) | 20:13 | |
dalek | kudo/nom: ddf3222 | jnthn++ | src/core/Duration.pm: Make Duration.Num actually Num. |
20:14 | |
lizmat | ./perl6 --target=pir --output=lib/Test.pir lib/Test.pm | ||
===SORRY!=== Error while compiling lib/Test.pm | |||
Null PMC access in get_string() | |||
dalek | ast: afaa30d | jnthn++ | S29-context/sleep.t: Unskip sleep-till test on JVM. |
||
jnthn | lizmat: I think we may need to move the finish_code_object call down more than the traits up... | 20:15 | |
lizmat | yes, was figuring that too :-) | ||
jnthn | lizmat: At a guess, I think it may matter that they apply after the multi stuff. | 20:16 | |
47 #?rakudo.jvm in 32 files now | 20:17 | ||
FROGGS: If you're up for another sprintf one, there's a single rakudo.jvm specific fudge in sprintf.t | 20:18 | ||
r: my $num = 123.456789; say $num.round(1e-5) | 20:19 | ||
20:19
kivutar joined
|
|||
camelia | rakudo 7e981c: OUTPUT«123.45679» | 20:19 | |
20:19
ksh left
|
|||
jnthn | grr, comes out as 123.45678999999998 on JVM... | 20:20 | |
diakopter | r: my $num = 123.456789; say $num.round(-0) | ||
camelia | rakudo 7e981c: OUTPUT«Divide by zero in method sink at src/gen/CORE.setting:11765 in method BUILDALL at src/gen/CORE.setting:861 in method bless at src/gen/CORE.setting:802 in method new at src/gen/CORE.setting:787 in method new at src/gen/CORE.setting:785 in method floo…» | ||
masak | r: my $num = 123.456789; say $num.round(0) | 20:21 | |
camelia | rakudo 7e981c: OUTPUT«Divide by zero in method sink at src/gen/CORE.setting:11765 in method BUILDALL at src/gen/CORE.setting:861 in method bless at src/gen/CORE.setting:802 in method new at src/gen/CORE.setting:787 in method new at src/gen/CORE.setting:785 in method floo…» | ||
jnthn | r: (123.456789 / 1e-5 + 1/2).floor * 1e-5 | 20:22 | |
camelia | ( no output ) | ||
jnthn | r: say (123.456789 / 1e-5 + 1/2).floor * 1e-5 | ||
camelia | rakudo 7e981c: OUTPUT«123.45679» | ||
20:22
ksh joined
|
|||
jnthn | r: say (1e-5 + 1/2).WHAT | 20:23 | |
camelia | rakudo 7e981c: OUTPUT«(Num)» | ||
jnthn | oh, wait... | ||
r: say (123.456789 / 1e-5).WHAT | |||
camelia | rakudo 7e981c: OUTPUT«(Num)» | ||
jnthn | r: say (123.456789 / 1e-5) | ||
camelia | rakudo 7e981c: OUTPUT«12345678.9» | ||
jnthn | r: say (123.456789 / 1e-5 + 1/2).floor | 20:24 | |
camelia | rakudo 7e981c: OUTPUT«12345679» | ||
jnthn | It's consistent up to there; it's the final multiplication that gets it off on JVM. Hmmm. | 20:25 | |
.tell colomon If you're interested in a mathy one on JVM, see the rakudo.jvm fudge in rounders.t :) | 20:26 | ||
yoleaux | jnthn: I'll pass your message to colomon. | ||
20:28
stevan_ left
|
|||
jnthn | hmm... is_run tests seem less reliable under the evalserver... | 20:28 | |
oh, no wonder... | 20:29 | ||
my $fnbase = 'getout-'; | |||
$fnbase ~= $*PID // 1_000_000.rand.Int; | |||
I guess $*PID is always the same under the eval server... | |||
[Coke] | jnthn: yes, it is. | 20:31 | |
jnthn | Trying a spectest run with that fixed | ||
diakopter | moritz: so I was right... using the same file descriptor, ish :) | 20:32 | |
jnthn | I guess any time we ran multiple tests at once that did is_run they clobbered each other | 20:33 | |
moritz | diakopter: right, ish | ||
jnthn | diakopter: Just file names, not even descriptors | ||
dalek | kudo/nom: 6ff75a5 | (Elizabeth Mattijsen)++ | src/core/ (4 files): Simplify DEPRECATED / is DEPRECATED for now Before, I was thinking of having sub DEPRECATED figure out what is was warning for, with using callframe(). But this proved to be very fragile. So instead, sub DEPRECATED now just gets the old and new name, and the "is DEPRECATED" trait adds a closure in the form of once block in an ENTER phaser for the routine. For this to work inside routines without explicit ENTER blocks, the time that "finish_code_object" in Actions.nqp is called, must be changed. But I'll leave that for tomorrow. |
||
[Coke] | jnthn: github.com/perl6/roast/blob/9f9626.../pid.t#L16 | ||
diakopter | I know; hence the ish | ||
jnthn | [Coke]: That one always passes for me, though | 20:34 | |
[Coke] | windows freak. :) | ||
jnthn | [Coke]: I think because is_run tests spawn a clean run, not an evalserver call. | ||
[Coke] | always fails for me. | ||
jnthn | Oh... | ||
lizmat gets an early night for a change | |||
gnight, #perl6! | |||
[Coke] | lizmat: ~~ | ||
jnthn | 'night, lizmat++ | 20:35 | |
[Coke]: I wonder if that's 'cus another is_run using test happens around the same time... | |||
[Coke] | plausible, though I think I'm single threading when I run the tests. | ||
(not sure. whatever test_summary.pl does by default) | |||
crap. seeing a lot of aborts again. | 20:37 | ||
I wonder if I should stop running with the eval server and just take the hit on time. :| | |||
I may manually mixin a rakudo.jvm run against a later roast this evening and forget this run happened. | 20:38 | ||
-> | 20:39 | ||
jnthn | [Coke]: Odd. I've been running the spectests all day against evalserver without issue... | 20:40 | |
It is eating a fair bit of memory, though | |||
How do the aborts look? | |||
20:40
iSlug joined
|
|||
jnthn | The really weird thing is that we got a good run on the 19th, and a bad one on the 20th | 20:43 | |
And bad since then | |||
But all the commits on 19th/20th are just release engineering | 20:44 | ||
Aside from the NQP_REVISION bump, I guess | |||
20:45
iSlug left,
btyler left
|
|||
jnthn | But nothing looks too likely in the range of NQP commits either. Hm. | 20:47 | |
20:49
btyler joined
20:56
iSlug joined
20:58
kaare_ left
20:59
genehack left
21:01
skids left
21:11
genehack joined,
vk left
|
|||
dalek | ast: c84521b | jnthn++ | packages/Test/Util.pm: Make is_run evalserver safer. Before, two test files run in parallel could trample each other's files. This makes it highly unlikely they will. |
21:14 | |
21:20
SmokeMachine left,
SmokeMac_ joined
21:24
alester left
21:26
raiph left
21:28
Rotwang left
21:29
donaldh joined,
denis_boyun left
21:34
mtk left
21:35
PacoAir left,
mtk joined
21:36
Mouq left
|
|||
dalek | ast: f7f2b55 | jnthn++ | S (4 files): Untodo tests reliably passing after is_run fix. Hopefully, these hold up on other platforms also. |
21:37 | |
jnthn | 36 tests over 27 files now. Not bad. | 21:39 | |
21:43
[Sno] left,
[Sno] joined,
lowpro30 left
|
|||
masak | jnthn++ | 21:44 | |
21:52
zakharyas joined
21:55
kivutar left
21:56
pmurias left
21:58
mtk left
|
|||
donaldh | Hopefully got a little bit of speedup and a bit of memory saving on JVM | 21:58 | |
21:59
bruges_ joined,
mtk joined
|
|||
timotimo | from what? | 22:00 | |
22:01
bruges left
|
|||
jnthn | donaldh: yay :) | 22:02 | |
donaldh: Am feeling optimistic we'll land the Rakudo Star on JVM for October :) | |||
donaldh | Eliminated the string join in JAST dump. Pass list of lines straight through to JASTToJVMBytecode | 22:03 | |
Which also eliminates the BufferedReader.readline() in JASTToJVMBytecode | 22:04 | ||
diakopter | donaldh: what's what I did for the MAST dump in moarvm (list of lines) :) | ||
donaldh | and the HUGE string | ||
diakopter | *that's | ||
jnthn | In the end, we probably should walk the JAST tree and make bytecode from that... But this is a good step :) | ||
donaldh | agreed. Direct invocation of ASM via a native JVM binding would be nice to achieve :-) | 22:05 | |
Or, I guess pass JAST into Java code. | |||
jnthn | The latter is what I had in mind | 22:06 | |
It's what we do with MAST | |||
diakopter | O_O Java code in MoarVM *faints* | 22:07 | |
jnthn | lol | ||
I meant we give the data strcuture straight to the bytecode emitter. :) | |||
donaldh | makes sense :) | 22:08 | |
jnthn | No intermediate string. | ||
Or text | |||
I want to at some point look into why QAST -> JAST is as time consuming as it is also. | |||
donaldh | Crude timings but overall rakudo build time is down to 7:17 from 7:48 | 22:09 | |
which is a 6% gain or so | |||
diakopter wonders if moarvm will take less than 1 min to build rakudo | |||
22:10
mtk left
|
|||
diakopter | (and nqp) | 22:10 | |
jnthn | diakopter: In the begining? Or once we've got JIT and other opts in? :) | 22:11 | |
donaldh | jnthn: my performance profiling results are _very_ variable. Random GC impact is the main culprit I think. | ||
22:11
zakharyas left
|
|||
donaldh | so it's taking patience and repeated measurements to home in on possible optimizations. | 22:13 | |
22:13
lichtkind left
22:14
mtk joined
|
|||
masak | jnthn: JIT will improve build time? | 22:16 | |
donaldh needs to rebase to get all of jnthn++s nqp commits | 22:17 | ||
jnthn | masak: I'd expect so given most of the build is done by programs written in NQP code :) | ||
donaldh only has 21% battery left. | |||
jnthn | masak: Imagine it hones in on common code in Cursor, common grammar rules, etc. | 22:18 | |
masak | hmmm, yes. | ||
TimToady wonders how much better we could do by taking the info a JIT would use and sending it all the way back to the actual compiler... | 22:19 | ||
diakopter | well, opportunities can be much better identified at runtime sometimes | 22:20 | |
jnthn | That feels...weird. :) | ||
diakopter | so you need the information then | ||
especially when ... specializing | |||
TimToady | specialization is for insects... | 22:21 | |
--RAH | |||
22:21
pmurias joined
|
|||
masak | TimToady: actually, the quote is more like "...specialization is for insects." :) | 22:21 | |
perigrin | special insects. | 22:22 | |
TimToady | it just seems like an obvious thing to factor out when you're doing the same dumb optimization 1000 times for process intensive code | ||
probably 90% of the hotcode paths are going to be consistent from one run to the next | 22:23 | ||
22:24
jnap joined
|
|||
TimToady | give or take 50% | 22:24 | |
diakopter | I fully intend to make sure a very smart inter-run compilation cache is created | ||
timotimo | that's like the gcc feature where it can profile branches at run time once and then use that on a second compile to optimize the code | ||
22:24
BenGoldberg joined
|
|||
diakopter | (it does a diff of the current source against a cache of the source from the last N times compiled, and is smart about cross-source-file dependencies and someday inter-routine dependencies | 22:26 | |
) | |||
TimToady | JVM's slow start is not something we want to emulate in MoarVM :) | ||
diakopter | yeah but JIT is in a side thread | 22:27 | |
TimToady | unless forced to... | ||
pmurias | diakopter: is there a JIT prototype for MoarVM? | ||
jnthn | MoarVM gets off to a fairly fast start interpreting, at least compared to anything else NQP runs on :) | ||
diakopter | .oO( The JIT: "oh my, I keep getting killed before I can JIT anything" ) |
22:28 | |
TimToady wants Perl 6 programs to spook those neurons that say: "That *seemed* like it finished running even before I hit the return key." :) | |||
jnthn | pmurias: Not yet | ||
diakopter | pmurias: so far it's mostly in the minds and shared conversation histories (in person and online) of gerd, jnthn, me... and also gerd has some extremely experimental branches of things.. | 22:29 | |
pmurias: but those branches are extremely unsanctioned, as it were | 22:30 | ||
timotimo | TimToady: that would be pleasant | ||
TimToady | ah, "sanction", one of those lovely words that means opposite things | ||
jnthn | Here it probably means, "jnthn doesn't know about them yet" :) | 22:31 | |
diakopter | yeah, that | ||
pmurias | why keep stuff in secret? | 22:32 | |
22:32
pmurias left,
pmurias joined
|
|||
TimToady | so jnthn++ doesn't get a thundering apoplexy | 22:32 | |
pmurias | heh | ||
diakopter | TimToady: well, here I used it to mean blessed/sanctified as opposed to encumbering with hardships | 22:33 | |
(great, now you'll tell me encumber is also backwards) ;) | |||
pmurias: but yes, that's exactly the reason - so jnthn doesn't have to worry about it while we work through all the hundreds of lessons jnthn already worked out in his head... | 22:35 | ||
"we must try really hard to imagine how jnthn would critique this.." | 22:36 | ||
pmurias | TimToady: re bringing back info from compile time to runtime, the dart2js people were considering that (at least claiming to in some how dart is compiled to javascript talk) | 22:37 | |
TimToady: dart2js emits code with checks like "if this argument is not a native javascript array go to slow version" | 22:38 | ||
masak | 'night, #perl6 | 22:39 | |
TimToady | well, hopefully that's hidden behind reprs for p6 | ||
\o | 22:40 | ||
BenGoldberg | rn: my @a = 1; for ( 2 ) { @a[^Inf] ==> map { .say; last }; } | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«(timeout)» | 22:41 | |
..rakudo 6ff75a: OUTPUT«1» | |||
jnthn | Does that work without the last? | ||
BenGoldberg | rn: my @a = 1; for ( 2 ) { @a[^Inf] ==> map { .say; }; } | ||
jnthn | r: my @a = 1; say @a[^Inf] | ||
I'm guessing it truncates the range... | |||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«(timeout)» | ||
..rakudo 6ff75a: OUTPUT«1» | |||
rakudo 6ff75a: OUTPUT«1» | |||
jnthn | yay | ||
22:42
raiph joined
|
|||
TimToady | r: my @a = 1; say @a[^1_000_000_000] | 22:42 | |
camelia | rakudo 6ff75a: OUTPUT«(timeout)» | ||
TimToady | not-so-yay | ||
BenGoldberg | r: say ((^1_000_000_000).infinite) | 22:43 | |
camelia | rakudo 6ff75a: OUTPUT«False» | ||
BenGoldberg | r: say ((^Inf).infinite) | ||
camelia | rakudo 6ff75a: OUTPUT«True» | ||
22:44
colomon left
22:45
colomon joined
|
|||
TimToady | you'll note that S09:218 does not mention .infinite | 22:45 | |
synopsebot | Link: perlcabal.org/syn/S09.html#line_218 | ||
BenGoldberg | My guess is when we say @a[stuff], rakudo tests if stuff is .infinite, and if it's False, reifies all of stuff | ||
Instead of reifiting the first @a.elems elments of stuff | 22:46 | ||
dalek | p: 7b02322 | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/JASTToJVMBytecode.java: Let JASTToJVMBytecode work with a list of lines instead of a huge string. |
||
p: 130c815 | (Donald Hunter)++ | src/vm/jvm/ (2 files): Add variants of compilejast and compilejasttofile that accept array of strings. |
|||
p: f674b87 | (Donald Hunter)++ | src/vm/jvm/stage0/ (10 files): Update bootstrap with compilejast list ops. |
|||
perigrin | WWJNTHNS | ||
p: 6758068 | (Donald Hunter)++ | src/vm/jvm/ (2 files): Use the new compilejast list ops. |
|||
p: c8351fe | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Use pre-sized ArrayList instead of LinkedList in compilejastlist |
|||
p: 14028a1 | (Donald Hunter)++ | src/vm/jvm/ (3 files): Remove old string compilejast opcodes. |
|||
p: 02570f3 | (Donald Hunter)++ | src/vm/jvm/stage0/ (10 files): New bootstrap for JAST to JVM optimization. |
|||
BenGoldberg | Err, s/reifiting/reifying/ | 22:47 | |
jnthn | Time for some rest... 'night, #perl6 | 22:50 | |
BenGoldberg | r: my @a = ^1_000_000_000; print @a | ||
camelia | rakudo 6ff75a: OUTPUT«(timeout)» | ||
BenGoldberg | r: my @a = ^Inf; say @a | ||
camelia | rakudo 6ff75a: OUTPUT«(timeout)» | 22:51 | |
22:52
donaldh left
|
|||
BenGoldberg | r: my @a := ^Inf; say @a | 22:52 | |
camelia | rakudo 6ff75a: OUTPUT«0..^Inf» | ||
22:53
zwut00 joined
|
|||
BenGoldberg | TimToady: testing whether something is .infinite and behaving differently depending on the answer is an "optimization" rakudo does in a couple of places. IMHO, *every* array should be treated as being infinite, until we reach the end. | 22:55 | |
r: my @a = ^Inf; say @a.gist | 22:57 | ||
camelia | rakudo 6ff75a: OUTPUT«(timeout)» | ||
BenGoldberg | r: my @a = 1..10; say @a.gist | 22:58 | |
camelia | rakudo 6ff75a: OUTPUT«1 2 3 4 5 6 7 8 9 10» | ||
BenGoldberg | r: say 1..10; | ||
camelia | rakudo 6ff75a: OUTPUT«1..10» | ||
BenGoldberg | r: my @a = 1..10; shift @a; say @a | 22:59 | |
camelia | rakudo 6ff75a: OUTPUT«2 3 4 5 6 7 8 9 10» | ||
BenGoldberg | r: my @a := 1..10; my @b = @a; shift @b; say @a; say @b; | ||
camelia | rakudo 6ff75a: OUTPUT«1..102 3 4 5 6 7 8 9 10» | ||
23:04
xinming left
|
|||
diakopter | perigrin: yes :) | 23:04 | |
23:06
xinming joined
23:07
iSlug left
23:12
leontopod joined
23:13
[Sno]_ joined
23:14
[Sno] left,
[Sno]_ is now known as [Sno]
23:19
pmurias left
23:20
bluescreen10 left
23:29
jnap left
23:30
jnap joined
23:56
stevan_ joined,
stevan_ left
23:57
stevan_ joined
|