»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31 Set by jnthn on 28 February 2015. |
|||
00:07
xprime left
00:30
gfldex left
00:48
rurban left
01:03
anaeem1 joined
01:04
Rounin left,
anaeem1 left,
anaeem1 joined
01:06
geever left
01:09
anaeem1 left
01:24
gcole joined,
telex left
01:26
telex joined
02:06
eli-se left
02:18
aindilis joined
02:33
jack_rabbit joined
02:48
jack_rabbit left
02:53
anaeem1 joined
02:58
anaeem1 left
03:11
noganex joined
03:14
noganex_ left
03:45
adu left
03:47
prime joined
03:48
raiph left
03:51
aborazmeh joined,
aborazmeh left,
aborazmeh joined
04:03
FROGGS__ joined
04:05
FROGGS[tab] left,
Sqirrel left
04:06
FROGGS_ left
04:09
adu joined
04:19
adu left
04:20
adu joined
04:26
adu left
04:30
adu_ joined
04:33
ash_gti joined
05:07
tinyblak joined,
tinyblak_ joined
05:11
tinyblak left
05:16
zakharyas joined
05:26
Milkmand1n joined,
dustinm`_ joined
05:27
Milkmandan left,
dustinm` left
|
|||
dalek | q: 3579bc7 | moritz++ | answers.md: Fix typo/thinko/whatever-o |
05:32 | |
05:33
Sqirrel joined
05:34
jack_rabbit joined
05:42
aborazmeh left
05:45
skids left
05:49
anaeem1_ joined
05:51
zakharyas left
05:52
FROGGS[tab] joined
05:55
jack_rabbit left
05:56
esaym153 left
05:57
esaym153 joined
05:58
nige joined
06:02
adu_ left
06:07
aborazmeh joined,
aborazmeh left,
aborazmeh joined
06:10
ash_gti left
|
|||
dalek | c: 88dd3a4 | paultcochrane++ | lib/Type/IO.pod: Fix minor typo, formatting and wording issues |
06:14 | |
06:16
C0rruptor joined
06:27
BenGoldberg left
|
|||
[Tux] | Ulti, it didn't really gain speed since 9 Mar | 06:29 | |
if you look at README, csv.pl and test.pl both reflect the speed of the core: nothing changed during the span of README | 06:30 | ||
*I* am only working in test-t.pl | |||
-rw-rw-r-- 1 merijn users 40940 Mar 20 15:01 test-t.pl | 06:31 | ||
-rw-rw-r-- 1 merijn users 6711 Jan 14 18:18 test.pl | |||
to show the amount of changes since test.pl :) | 06:32 | ||
06:41
isBEKaml joined
|
|||
isBEKaml | p6: my @arr = <a b c d>; @arr.>> .say; #whitespace sensitive? | 06:42 | |
camelia | rakudo-moar 0e5632: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileConfusedat /tmp/tmpfile:1------> 3my @arr = <a b c d>; @arr.>>7⏏5 .say; #whitespace sensitive?» | ||
isBEKaml | p6: my @arr = <a b c d>; @arr.>>.say; #works | ||
camelia | rakudo-moar 0e5632: OUTPUT«dbca» | ||
06:43
rurban joined
06:44
rindolf joined
|
|||
DrForr | Good morning. | 06:48 | |
p6: grammar G { rule program { <term> } } | 06:49 | ||
camelia | ( no output ) | ||
DrForr | I take it a grammar with an unspecified subrule is still valid at compile time? | 06:50 | |
TimToady | same as any method | 06:51 | |
DrForr | Fair enough. | ||
06:52
xfix joined
06:54
aborazmeh left
07:00
rurban left
07:03
xprime joined
07:04
prime left
|
|||
[Tux] | tips on how to fix travis-ci.org/Tux/CSV/builds/55348795 would be appreciated <= panda not found in travis | 07:05 | |
07:08
C0rruptor left
07:15
isBEKaml left
07:16
anaeem1_ left,
anaeem1_ joined
07:22
anaeem1_ left
07:29
marisa__ joined
07:42
nige left
07:43
gfldex joined
07:49
molaf joined
08:00
rurban joined
08:02
rindolf left
|
|||
moritz | m: proto a(Int, Int) is cached {*}; multi a(Int \n, 0) { n + 1 }; multi (0, Int \m) { a m-1, 1 }; multi (\n, \m) { a m - 1, a m, n - 1 }; say a 3, 1 | 08:02 | |
camelia | rakudo-moar 0e5632: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ReGswbEqUu scoped variables not yet implemented. Sorry. at /tmp/ReGswbEqUu:1------> 3(Int \n, 0) { n + 1 }; multi (0, Int \m)7⏏5 { a m-1, 1 }; multi (\n, \m) { a m - 1,» | ||
moritz | that error message is LTA | 08:03 | |
m: proto a(Int, Int) is cached {*}; multi a(Int \n, 0) { n + 1 }; multi a(0, Int \m) { a m-1, 1 }; multi (\n, \m) { a m - 1, a m, n - 1 }; say a 3, 1 | |||
camelia | rakudo-moar 0e5632: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QVtv49TRAs scoped variables not yet implemented. Sorry. at /tmp/QVtv49TRAs:1------> 3(0, Int \m) { a m-1, 1 }; multi (\n, \m)7⏏5 { a m - 1, a m, n - 1 }; say a 3, 1» | ||
moritz | m: proto a(Int, Int) is cached {*}; multi a(Int \n, 0) { n + 1 }; multi a(0, Int \m) { a m-1, 1 }; multi a(\n, \m) { a m - 1, a m, n - 1 }; say a 3, 1 | ||
camelia | rakudo-moar 0e5632: OUTPUT«(timeout)» | 08:04 | |
08:05
jack_rabbit joined,
labster left
|
|||
moritz | the "is cached" doesn't seem to work here | 08:06 | |
and I messed up the definition, of course | 08:11 | ||
08:13
darutoko joined
|
|||
moritz | and I'm able to compute ack(4, 1) in <2min on rakudo-moar | 08:15 | |
08:15
jack_rabbit left
|
|||
moritz | prof-m: proto a(Int, Int) is cached {*}; multi a(0, Int \n) { n + 1 }; multi a(Int \m, 0) { a m -1 , 1 }; multi a(Int \m, Int \n) { a m - 1, a m, n - 1 }; say a 3, 4 | 08:16 | |
camelia | prof-m 0e5632: OUTPUT«125» | ||
.. Prof: p.p6c.org/69fa6b | |||
08:19
[Sno] left
08:20
[Sno] joined
|
|||
moritz | j: say 'still here?' | 08:24 | |
camelia | rakudo-jvm 0e5632: OUTPUT«still here?» | ||
moritz | \o/ | ||
both prof-m and j still work | |||
that's better than I dared to hope for :-) | |||
masak | good morning, #perl6 | 08:25 | |
moritz | \o masak | 08:26 | |
08:48
rurban left,
rurban_ joined
08:49
rurban joined
08:53
sergot joined
09:03
anaeem1_ joined
09:07
anaeem1_ left
09:13
nige joined
09:15
Rounin joined
09:30
grondilu joined
09:32
gfldex left
|
|||
DrForr | Sorry for my rambling on #124141 but it looks like a gaping hole in docs to me :) | 09:47 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124141 | ||
09:48
nige left
|
|||
masak | DrForr++ # bug report | 10:00 | |
also, I completely agree that the error message shouldn't be that. | 10:01 | ||
and that it should probably hint "(did you forget to import Bug::Role?)" | |||
m: class A does R {} | 10:02 | ||
camelia | rakudo-moar 0e5632: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uq0_hApDkcInvalid typenameat /tmp/uq0_hApDkc:1------> 3class A does7⏏5 R {}» | ||
DrForr | Cool. Yeah, I figured it was easy to replicate on command line :) | ||
I figured that the official error message could be left intact, and if the RHS were a package name then the error message could be annotated. | 10:05 | ||
It's also odd that 'use' doesn't appear to be documented yet. I know about it, and most perl6 hackers are old perl5 hands that do this as a matter of course, but eventually we're going to get *complete* perl newbies and the documentation needs to be patched. | 10:06 | ||
I'm kind of busy with other stuff but I might make a pull request once I find the right place to patch the docs. | 10:07 | ||
10:11
FROGGS__ is now known as FROGGS
|
|||
FROGGS | morning | 10:11 | |
masak | marnin', FROGGS | 10:12 | |
10:15
anaeem1 joined
10:25
virtualsue joined
|
|||
DrForr | m: role X { has $!y; }; role Z does X { method z { $!y++; } } | 10:30 | |
camelia | rakudo-moar 0e5632: OUTPUT«===SORRY!===Error while compiling, type X::Attribute::Undeclared symbol: $!y package-kind: role package-name: Z what: attribute at line 2, near "++; } }"Error while constructing error object:Could not locate compile-time value for …» | ||
masak | yeah. no. | ||
use an accessor to get at the attribute from another class/role. | |||
DrForr | So they don't compose that way. Cool, good to know. | 10:32 | |
10:33
nige joined
10:36
eli-se joined
|
|||
masak | m: role R { has $!foo = "OH HAI" }; class C does R { method bar { say $!foo } }; C.new.bar | 10:38 | |
camelia | rakudo-moar 0e5632: OUTPUT«OH HAI» | ||
masak | DrForr: ^ this works, though | ||
DrForr | Yeah, just changed my code a little it. | ||
masak | between a role and a class | ||
I'm not quite sure why. | |||
10:38
rurban left
10:39
rurban joined
|
|||
masak | I think the idea is something like, a role flattens into a class, so it's already privvy to private details. or sump'n. | 10:39 | |
(also, don't name your roles "X" in production. X:: is the exceptions namespace.) | |||
DrForr | Right, and roles don't flatten into other roles so yada yada. | ||
masak | right. | ||
DrForr | I know, I was using it as a short example. | 10:40 | |
masak | *nod* | ||
suspected as much. still bears pointing out. :) | |||
DrForr | I also don't really think that this particular role should really exist as it only provides data rather than methods, but as it's still legal syntax I thought I'd roll with it for the time being. | 10:41 | |
Also, a philosophy question on grammars - Is it okay to use the grammar actions to essentially ignore building the parse tree, or will I run into problems later on if I have to backtrack and I can't unwind the action stack | 10:46 | ||
s/$/? | |||
10:47
Foxcool left,
Foxcool joined
10:48
anaeem1 left
|
|||
eli-se | hi | 10:48 | |
10:49
anaeem1 joined
|
|||
DrForr | Or come to think of it, will an action even fire on a non-{token,rule} in a grammar... | 10:49 | |
FROGGS | it can only fire on tokens/rules | 10:52 | |
hi eli-se | |||
10:53
anaeem1 left,
spider-mario joined
|
|||
masak | hi eli-se | 10:53 | |
DrForr | Okay. The grammar I'm playing with is recursive-descent at the moment, but further iterations might not be. Probably puts it out of range of a perl6 grammar then anyway, and I'd have to just rely on tokenization anyway. | ||
Good gravy, a perl6 backend to ANTLR. ISA...miniscule...N. | 10:55 | ||
10:59
geever joined
11:04
kjs_ joined,
nige left
11:07
kjs_ left
11:14
kjs_ joined
|
|||
dalek | p: 818a382 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java: Capture the Java process STDOUT/-ERR. This correctly redirects output to STDOUT/-ERR made via JavaInterop to the eval-client, instead of printing on the terminal where the eval-server is executed. |
11:17 | |
11:17
coffee` joined
|
|||
psch | \o | 11:18 | |
11:18
kjs_ left
|
|||
jnthn | afternoon, #perl6 | 11:18 | |
dalek | kudo/nom: 20ffd3c | lizmat++ | src/core/natives.pm: Goodbye nibble, we hardly ever knew ya |
11:21 | |
jnthn | Reminds me of en.wikipedia.org/wiki/Nibbles_%28video_game%29 :) | 11:23 | |
eli-se | Writing VMs is fun. | 11:24 | |
FROGGS | jnthn: that was the very first thing I hacked on :o) | ||
jnthn | FROGGS: Wasn't the first, but I remember studying the QBasic nibbles source pretty early on :) | ||
FROGGS | (created more levels on my old i286 PC) | ||
DrForr | Heh, reminds me of the magazine of the same name. ('Nibble' that is, Apple ][ enthusiast mag) | ||
jnthn | iirc, it used loops for timing too :) | 11:25 | |
So faster computer = harder game :) | |||
psch | en.wikipedia.org/wiki/Gorillas_(video_game) was my preference, for playing and hacking | 11:26 | |
lizmat | a glimpse of the future? toons.gotblah.com/archive/9chickwee...2-0701.jpg :-) | ||
11:27
kjs_ joined
|
|||
jnthn | psch: Yes, I probably played that one more :) | 11:27 | |
11:29
FROGGS[tab] left
|
|||
jnthn | DrForr: On your actions question earlier: the idea is that you use "make" to attach the AST node you made for a certain grammar rule to Match object, and the action methods higher up retrieve it with .made. That way, if a path turns out to be a dead end and a Match is thrown away, the AST node just goes away with it, nicely handling the backtracking case. | 11:36 | |
lizmat | playing with CurtisOvidPoe's blogpost: blogs.perl.org/users/ovid/2015/03/t...erl-6.html | ||
m: 42.say.for(^6) # shouldn't this just work ? | |||
camelia | rakudo-moar 0e5632: OUTPUT«42Unhandled exception: Method 'count' not found for invocant of class 'Range' at <unknown>:1 (/home/camelia/rakudo-inst-2/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::4294967295) from src/gen/m-CORE.setting:9545 (/home/camelia/rakudo-inst-2/share/per…» | ||
11:37
rindolf joined
|
|||
FROGGS | DrForr: so instead of running code that has side effects in a branch that gets thrown away, you could return a piece of code to run it later | 11:37 | |
jnthn | lizmat: I don't especially see how...you pass an invokable to .for | 11:38 | |
masak | when I hear "running code that has side effects in a branch that gets thrown away", I think about `temp` and (especially) `let`. | ||
to be honest, I haven't seen a convincing use case of `let`, or much of a use case at all. | |||
jnthn | lizmat: (^6).for({42.say}) would be a working example | 11:39 | |
lizmat: Though I'd probably always write "say 42 for ^6" :) | |||
masak | it seems a wonderfully useful construct for anything hypothetical/simulation-y. it's not clear to me why we're not promoting/using it more in code. | ||
lizmat | jnthn: ok, guess I wasn't awake yet | 11:40 | |
jnthn: although the error is LTA, can we agree on that ? | |||
DrForr | Indeed. I was more thinking along the lines of a more traditional yacc-based parser. I'm going to separate it out into two levels, but I thought I'd experiment with just the one for the time being. The grammar itself practically generates the TAC I'm looking at. | ||
jnthn | lizmat: Probably .map should expect a Callable. | ||
I don't *think* it works on anything else. | |||
And putting the & into the method sig would mean it does there, rather than at the point it tries to call .count | 11:41 | ||
uh, it *dies* there | |||
11:42
FROGGS[tab] joined
|
|||
DrForr | Also, what I'm working on has several different small grammars in it, and I thought it'd be nice to teach multiple approaches to the parsing problem. I was thinking like the traditional "calc" example you do in yacc, then later refinements add on a second layer. | 11:42 | |
lizmat | afk again | ||
DrForr | It might also be instructive to have the grammar's make() method return closures that the backtracking process won't directly invoke, then at the top layer the made() method is left with a stack of closures to invoke. Just another alternative parsing strategy. | 11:44 | |
11:45
kjs_ left
|
|||
DrForr | But as right now my top-level 'method TOP{}' isn't getting invoked, I'll have to explore *that* first. | 11:46 | |
psch | the action method TOP needs a positional for the Match object | 11:47 | |
DrForr | Right, it's got one, I just didn't specify $/ on-channel because I'm a lazy bastard :) | 11:48 | |
method TOP($/) { warn "Invoked" } # like so. | |||
psch | fwiw, naming it $/ is a convention with potentially surprising side effects | 11:49 | |
(that doesn't directly help your debugging efforts though :) ) | |||
jnthn | It's generally a fine convention in so far as if you hit the surprise you're re-parsing, which is probably already a smell :) | ||
m: grammar G { token TOP { <?> } }; class A { method TOP($/) { say here' } }; G.parse('', actions => A) | 11:50 | ||
camelia | rakudo-moar 0e5632: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nbbMlpJoCqTwo terms in a rowat /tmp/nbbMlpJoCq:1------> 3} }; class A { method TOP($/) { say here7⏏5' } }; G.parse('', actions => A) expecting any of: infix stopper infi…» | ||
jnthn | m: grammar G { token TOP { <?> } }; class A { method TOP($/) { say 'here' } }; G.parse('', actions => A) | 11:51 | |
camelia | rakudo-moar 0e5632: OUTPUT«here» | ||
jnthn | DrForr: You're likely missing one of the ingredients in ^^ if your TOP ain't being called. | ||
11:51
kjs_ joined
|
|||
DrForr | I was using :$actions as per the documentation. That seems to work for me, I'll debug further once I get back. | 11:52 | |
psch | yeah, the convention is sensible. i suppose nagging about regexen inside an action method could be a linter thing | ||
DrForr | The doco in grammars.pod doesn't mention surprising behavior for using $/ as an argument name, maybe there's something to be added. | 11:53 | |
psch | DrForr: well, it's a general "this is how signatures and lexicals behave"-thing | 11:54 | |
m: sub f($a) { $a = 1 }; f 0 | |||
camelia | rakudo-moar 20ffd3: OUTPUT«Cannot assign to an immutable value in block <unit> at /tmp/jBYUkURMNc:1» | ||
DrForr | It just says that it makes $<foo> nicer than $/<foo> is all. | ||
psch | m: sub f($/) { "a" ~~ /a/ }; f 1 | ||
camelia | rakudo-moar 20ffd3: OUTPUT«Cannot assign to a readonly variable or a value in method ACCEPTS at src/gen/m-CORE.setting:16292 in sub f at /tmp/yZFqlWRoAU:1 in block <unit> at /tmp/yZFqlWRoAU:1» | ||
psch | DrForr: $/ as bare parameter isn't rw or copy, and ~~ tries to assign to it | 11:55 | |
DrForr | Ah, because Match is an immutable object. Which of course is why there's a parallel '.make' method. | ||
That error should be clear enough, I suppose. | 11:56 | ||
Okay, food then back to hacking a VM onto a VM :) | |||
11:59
FROGGS[tab] left
|
|||
eli-se | .tell vendethiel hello world works! | 12:02 | |
yoleaux | eli-se: I'll pass your message to vendethiel. | ||
DrForr | eli-se: What VM are you experimenting with, incidentally? (if you don't mind, of course) | 12:05 | |
eli-se | custom | ||
DrForr | Righto, just curious. THe grammar I'm working on is a frontend to a VM as well, so similar paths &c. | 12:06 | |
Okay, food. | |||
Ulti | .tell japhb let me know if there is anything I can do to make this worthy of perl-bench github.com/japhb/perl6-bench/pull/23 | 12:07 | |
yoleaux | Ulti: I'll pass your message to japhb. | ||
12:12
mr-foobar left
|
|||
dalek | Heuristic branch merge: pushed 90 commits to rakudo/union by FROGGS | 12:12 | |
moritz | m: sub f(int, int) is cached { 42 }; say f(1, 2) | ||
camelia | rakudo-moar 20ffd3: OUTPUT«42» | ||
moritz | m: sub f(int $ where 0) { 42 }; say f 0 | 12:14 | |
camelia | rakudo-moar 20ffd3: OUTPUT«42» | ||
FROGGS | jnthn: I really need inlineable CStructs... I am binding a C++ lib right now and have to duplicate attributes which sucks... | 12:15 | |
12:15
Perl6_newbee joined
|
|||
eli-se | My compiler is written in Perl 5, but GitHub thinks it's Perl 6. | 12:15 | |
That must be really good Perl 5 code! | |||
FROGGS | eli-se: do you use Moose or something? | 12:16 | |
eli-se | not at all | ||
FROGGS | hmmm | ||
I'd guessed it spots some P6ish keywords | |||
12:19
sqirrel_ joined,
tinyblak_ left
|
|||
marisa__ | Github always think I am writing C code although I only wrote C++ code with lambda, auto, move and decltype... Try modifying .gitattribute | 12:20 | |
12:22
mr-foobar joined
|
|||
eli-se | Name your files .cpp and .hpp instead of .c and .h | 12:22 | |
and stop using malloc and free :p | |||
psch | m: say 1i | 12:27 | |
camelia | rakudo-moar 20ffd3: OUTPUT«0+1i» | ||
psch | j: say 1i | ||
camelia | rakudo-jvm 20ffd3: OUTPUT«P6opaque representation can not unbox to a native num in submethod BUILD at gen/jvm/CORE.setting:12902 in method new at gen/jvm/CORE.setting:12897 in block <unit> at /tmp/XxiXLiBaVo:1» | ||
marisa__ | I never use malloc and free. I don't even use new and delete :p I'd only used std::make_shared and std::make_unique my whole life. The truth is github language detection suck. | 12:28 | |
eli-se | I use automatic storage duration. | ||
12:29
virtualsue left
|
|||
marisa__ | Yeah, me too. | 12:29 | |
12:29
molaf_ joined
|
|||
eli-se | I use new in a few places that have to do with my GC, since the values managed by the GC have to be trivially copyable since the GC will be compacting ASAP | 12:29 | |
but that's fine since the GC will call the finalizers | 12:30 | ||
12:32
molaf left
|
|||
nine_ | jnthn: a bit of a shame. In Perl 6 the most annoying syntax difference between map BLOCK and map EXPR finally goes away, but still we can only use map BLOCK (even though we can hide the fact, that we're passing a block). A use case for simpler string map is e.g. creating DBI queries: $dbh.do("insert into foo values ( { @values.map('?').join(', ') } )", Any, |@values); | 12:35 | |
timotimo | o/ | 12:39 | |
12:39
telex left
|
|||
geekosaur | nine_, as an ex-database type, I shudder at expanding placeholders inline like that | 12:40 | |
12:40
telex joined
|
|||
nine_ | geekosaur: why exactly? | 12:40 | |
geekosaur | are you absolutely certain that the values you're putting in are safe to stringify? | 12:41 | |
nine_ | geekosaur: do they have to be? | ||
geekosaur | frankly, if you have placeholders, use them, don't stringify yourself. not only do you have "little bobby tables" but you are stringifying non-strings so that SQL can parse them again, why? | ||
timotimo | nine_: may i suggest ('?' xx @values).join(', ') instead of mapping? | 12:42 | |
geekosaur | also fun things like if one of them is a date and/or time, stringifying likes to introduce chances for something to switch timezones or date formats on you etc. | 12:43 | |
nine_ | geekosaur: no, I'm not. I'm only dynamically creating the values (?, ?, ?, ?, ?) part of the query string. I'm passing the actual values to $dbh.do, so it can properly pass them to the database driver | ||
timotimo: that's indeed much prettier | |||
geekosaur | oh, I misundersgood what you were trying to say witht hat map | ||
timotimo | not being able to '?, ' xx @values is annoying | 12:44 | |
we already have % in regexes ... | |||
geekosaur | (and as a haskeller I think map('?') meaning map(\_ -> '?') is bad too :p ) | ||
12:45
larion joined
|
|||
timotimo | i don't get it, geekosaur | 12:46 | |
vendethiel | o/ eli-se | ||
yoleaux | 12:02Z <eli-se> vendethiel: hello world works! | ||
vendethiel | nice | ||
geekosaur | hm? they used map(literal) meaning ignore the passed-in value. in haskell I'd be saying "const" there to indicate I'm consuming something (the passed-in value). not sure how you'd express that in perl6 but you're screwing type handling by quietly having the map expression be either a value or a function from one value to another | 12:48 | |
vendethiel | m: sub const($val) { -> |c { $val } }; say map(const('hey'), <a b c d>); | 12:50 | |
camelia | rakudo-moar 20ffd3: OUTPUT«hey hey hey hey» | ||
eli-se | what is |c? | 12:51 | |
moritz | caputre all the arguments | 12:52 | |
12:53
tinyblak joined
|
|||
psch | j: sub f(Num() $a) { say $a.WHAT }; sub g(Num() \a) { say a.WHAT }; f 1; g 1 | 12:55 | |
camelia | rakudo-jvm 20ffd3: OUTPUT«(Num)(Int)» | ||
psch | ^^^ that's behind a few dozend spectest failures on jvm | 12:56 | |
m: sub f(Num() $a) { say $a.WHAT }; sub g(Num() \a) { say a.WHAT }; f 1; g 1 | |||
camelia | rakudo-moar 20ffd3: OUTPUT«(Num)(Num)» | ||
DrForr | m: grammar G { token TOP { <?> } }; class A { metod TOP($/) { say 'here' } }; my $v-foo = A.new; G.parse('',:$v-foo) | 13:00 | |
camelia | rakudo-moar 20ffd3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cDHlmiA6wAUnexpected block in infix position (two terms in a row, or previous statement missing semicolon?)at /tmp/cDHlmiA6wA:1------> 3n TOP { <?> } }; class A { metod TOP($/)7⏏5 { say 'here' } }…» | ||
DrForr | m: grammar G { token TOP { <?> } }; class A { method TOP($/) { say 'here' } }; my $v-foo = A.new; G.parse('',:$v-foo) | ||
camelia | ( no output ) | ||
psch | DrForr: :$actions is shorthand for actions => $actions | ||
13:01
koo6 left
13:02
eli-se left
|
|||
DrForr | I understand that from reading the docs. But the shorthand notation there should still accept hyphenated variable names? | 13:02 | |
m: grammar G { token TOP { <?> } }; class A { method TOP($/) { say 'here' } }; my $v-foo = A.new; G.parse('',actions => $v-foo) | |||
camelia | rakudo-moar 20ffd3: OUTPUT«here» | ||
psch | DrForr: yeah, it does. but you're passing a named parameter v-foo, which .parse doesn't do anything with | 13:03 | |
DrForr | m: grammar G { token TOP { <?> } }; class A { method TOP($/) { say 'here' } }; my $foo = A.new; G.parse('',:$foo) | ||
camelia | ( no output ) | ||
psch | m: sub f(*%_) { %_.perl.say }; my $a = "a"; say f :$a | ||
camelia | rakudo-moar 20ffd3: OUTPUT«("a" => "a").hashTrue» | ||
psch | m: sub f(*%_) { %_.perl.say }; my $b = "a"; say f :$b | ||
camelia | rakudo-moar 20ffd3: OUTPUT«("b" => "a").hashTrue» | ||
psch | DrForr: methods have an implicit slurpy hash for named arguments, to provide interface consistency design.perl6.org/S12.html#Interface_Consistency | 13:04 | |
DrForr | grammars.pod uses the ':$actions' notation that I was following. | 13:05 | |
psch | m: my $actions = "foo"; my $v-foo = "bar"; say :$actions.perl; say :$v-foo.perl | ||
camelia | rakudo-moar 20ffd3: OUTPUT«"actions" => "foo""v-foo" => "bar"» | ||
psch | DrForr: doc.perl6.org/type/Pair | ||
DrForr | It's also not failing on the version the channel 'bot is on. Hrming. | 13:06 | |
psch | m: class A { method foo(:$actions, *%_) { say $actions; say "but: " ~ %_ }; my $actions = "action!"; A.new.foo(:$actions); my $v-foo = "uh, what?"; A.new.foo(:$v-foo) | 13:07 | |
camelia | rakudo-moar 20ffd3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Gl6ZAbNVB6Unable to parse expression in block; couldn't find final '}' at /tmp/Gl6ZAbNVB6:1------> 3$v-foo = "uh, what?"; A.new.foo(:$v-foo)7⏏5<EOL> expecting any of: statement en…» | ||
psch | m: class A { method foo(:$actions, *%_) { say $actions; say "but: " ~ %_ } }; my $actions = "action!"; A.new.foo(:$actions); my $v-foo = "uh, what?"; A.new.foo(:$v-foo) | ||
camelia | rakudo-moar 20ffd3: OUTPUT«action!but: (Any)but: v-foo uh, what?» | ||
psch isn't sure if that's actually helping | 13:08 | ||
DrForr | It is, but I think that's rather more fundamental than what I was looking at. | ||
psch | well, that's what it comes down to. colonpair-for-named-args works, when your argument variables are called the same as the named parameter you want to bind them to | 13:09 | |
that is, the shortest colonpair notation — :actions($v-foo) still works of course | 13:10 | ||
13:11
sqirrel_ left
|
|||
DrForr | Oh, good grief, I see what you're geting at. It's *not* a coincidence that 'actions' in ':$actions' matches the named parameter, I was thinking it was a positional argument. | 13:11 | |
Right. Back to work then. | 13:12 | ||
I'm just used to reading a leading colon as a keyword in Lisp. | 13:14 | ||
jnthn | nine_: Would @values.map('?') just map every element to a '?'? If so, ('?' xx @values) will do just as well | ||
13:15
kjs_ left
|
|||
timotimo | jnthn: i told him the same thing :D | 13:15 | |
jnthn | Oh | ||
I'm still catching up :) | |||
timotimo is just proud of himself for catching that | |||
13:18
anaeem1 joined
13:19
anaeem1 left,
anaeem1 joined
13:21
diana_olhovik_ joined
13:23
anaeem1 left
13:27
skids joined
13:28
eli-se joined
13:35
zakharyas joined
13:40
espadrine joined
13:45
xfix left
13:52
xfix joined,
Rounin left
13:53
rurban_ left
|
|||
jnthn | airport, flight, etc. & | 13:54 | |
timotimo | bon voyage | ||
13:54
C0rruptor joined
13:58
larion left
13:59
atroxaper joined
|
|||
masak | hello, #perl6... | 14:01 | |
...FROM A TRAIN \o/ | |||
atroxaper | hello, #perl6 ! | 14:02 | |
masak: o/ | |||
masak | atroxaper: \o | ||
atroxaper | how can I make regex for sequens of any characters but not some of them? Or pare of them? For example any characters but not '*/' | 14:04 | |
vendethiel | o/ | ||
timotimo | that'd be <-[*/]> | ||
you're looking for a "negated character class" | |||
14:05
larion joined,
sirdancealot joined
|
|||
atroxaper | '/*' <-[*/]>* '*/' is not work for /* * */ | 14:05 | |
14:06
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
xfix left
|
|||
atroxaper | timotimo: i want to negated sequens of two characters. | 14:07 | |
timotimo | oh | ||
skids | atroxaper: you can use <!before> but there may be a better way. | ||
timotimo | so more like a negative lookahead? | ||
yeah, <!before ...> would do it | |||
14:08
BenGoldberg joined
|
|||
atroxaper | Hm. Let's try... | 14:08 | |
14:10
rurban left
14:11
aborazmeh left
|
|||
atroxaper | Does before get only one previous pointer or all which precede him? | 14:18 | |
Oh.... Forget it)) | |||
skids | m: '/*aaa*/' ~~ m/ '/*' ~ '*/' (a*) /; $/.gist.say | ||
camelia | rakudo-moar 20ffd3: OUTPUT«「/*aaa*/」 0 => 「aaa」» | ||
14:19
FROGGS[tab] joined
|
|||
psch | m: say '/* * */' ~~ m/ '/*' ~ '*/' ./; | 14:19 | |
camelia | rakudo-moar 20ffd3: OUTPUT«Unable to parse expression in ; couldn't find final '*/'  in method match at src/gen/m-CORE.setting:7499 in block <unit> at /tmp/dEDHvQNbYo:1» | ||
psch | i really dislike that about regex ~ | ||
atroxaper | skids: What is '~' ? | 14:20 | |
skids | It should be sugar for nested parens. | ||
But -- it seems to have a coupld issues right now. | 14:21 | ||
masak | agreed. | ||
psch: so, it backtracked, and then the whole match threw an exception? | |||
that's maybe the best reason I've heard so far for ~ not to throw an exception. it should fail the match, *like everything else* in the regex language. | 14:22 | ||
psch | masak: my example is flawed, i think. needs a quantifier behind . | 14:24 | |
m: say '/* * */' ~~ m/ '/*' ~ '*/' .+/; | |||
camelia | rakudo-moar 20ffd3: OUTPUT«Unable to parse expression in ; couldn't find final '*/'  in method match at src/gen/m-CORE.setting:7499 in block <unit> at /tmp/RliZfg4wqI:1» | ||
masak | it fails regardless, so I don't see why you'd need to add the '+' | ||
psch | but that probably should work, but doesn't. i'd guess that it doesn't backtrack when it should? | ||
masak | the problem is that the '.' causes the '~' to backtrack. | ||
skids | m: '/* * */' ~~ m/:dba('foo') '/*' ~ '*/' .+/; | ||
masak | and then the '~' fails, not by failing the match, but by throwing. | ||
camelia | ( no output ) | ||
psch | yeah, throwing happens in FAILGOAL iirc | 14:25 | |
atroxaper | I still don't know how parse C style comment like /**/ /* */ /* bb */ /* bb b */ /***/ | 14:27 | |
Can you help me? | |||
flussence | m: say '/* * */' ~~ m/ '/*' ~ '*/' [.+]/; | 14:28 | |
camelia | rakudo-moar 20ffd3: OUTPUT«Unable to parse expression in ; couldn't find final '*/'  in method match at src/gen/m-CORE.setting:7499 in block <unit> at /tmp/_qYBssWryd:1» | ||
psch | m: say '/* * */' ~~ m/ '/*' <!before '*/'> . '*/' / | 14:29 | |
camelia | rakudo-moar 20ffd3: OUTPUT«False» | ||
masak | m: $_ ~~ /'/*' ([<!before '*/> .]*) '*/' / and say ~$0 for '/**/', '/* */', '/* bb */', '/* bb b */', '/***/' | ||
camelia | rakudo-moar 20ffd3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xfjH0Q7VmFUnable to parse expression in metachar:sym<assert>; couldn't find final '>' at /tmp/xfjH0Q7VmF:1------> 3$_ ~~ /'/*' ([<!before '*/> .]*) '*7⏏5/' / and say ~$0 for '/**/', '/* */', '/…» | ||
psch | m: say '/* * */' ~~ m/ '/*' <!before '*/'> .+ '*/' / | ||
camelia | rakudo-moar 20ffd3: OUTPUT«「/* * */」» | ||
masak | m: $_ ~~ /'/*' ([<!before '*/'> .]*) '*/' / and say ~$0 for '/**/', '/* */', '/* bb */', '/* bb b */', '/***/' | ||
camelia | rakudo-moar 20ffd3: OUTPUT«  bb  bb b *» | ||
masak | atroxaper: ^^ | ||
atroxaper | masak: WOW! I have to parse your regex :) | 14:30 | |
Thank you all! | |||
masak | it uses negative lookahead. | ||
which means "make sure we're not at a '*/'" | |||
m: /'/*' ([<!before '*/'> .]*) '*/' / and say ~$0 for '/**/', '/* */', '/* bb */', '/* bb b */', '/***/' | 14:31 | ||
camelia | rakudo-moar 20ffd3: OUTPUT«  bb  bb b *» | ||
masak | shorter :) | ||
flussence | (how hard would it be to programmatically get an AST of of a regex?) | ||
14:31
virtualsue joined
|
|||
masak | flussence: check out jnthn's Grammar::Generative | 14:32 | |
flussence | ooh, will do | ||
grondilu | ~ should work though, why doesn't it? | ||
('/*' ~ '*/' .*) I mean | |||
skids wonders why :dba keeps the exception from happening above | |||
flussence | ISTR something a few weeks ago where declarative regexes were misbehaving but making them procedural made them work fine... | 14:33 | |
atroxaper | masak: Why we need . it the regex? | 14:34 | |
psch | m: say '/* */' ~~ m/ '/*' ~ '*/' ./ | ||
camelia | rakudo-moar 20ffd3: OUTPUT«「/* */」» | ||
masak | atroxaper: because <!before ...> is a zero-width match and you need to progress the match somehow. | ||
atroxaper: the '.' means "grab one more character" | |||
psch | masak: i think that means that my unquantified example failed because it didn't find '*/' after one char but the quantified one fails because it doesn't backtrack | ||
masak | ok | 14:35 | |
skids | Oh the :dba must just be making it fail always. | ||
masak | psch: I must be tired or something, because I've read what you just said twice now, and I'm not sure I get it. | ||
psch | m: say '/* */' ~~ m/ '/*' ~ '*/' ...?/ | ||
camelia | rakudo-moar 20ffd3: OUTPUT«Unable to parse expression in ; couldn't find final '*/'  in method match at src/gen/m-CORE.setting:7499 in block <unit> at /tmp/TWRLh0Va7H:1» | ||
masak | psch: but, submit rakudobugs at will, I guess ;) | 14:36 | |
atroxaper | masak: oh. I see :) | ||
flussence | also, I have a hunch that fixing that would fix github.com/jnthn/grammar-debugger/issues/13 | ||
psch | masak: RT #68854 looks quite comprehensive, at a glance | 14:37 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=68854 | ||
psch | oh, but it's resolved | ||
hm | |||
m: say '/* */' ~~ rule { '/*' ~ '*/' ...? } | 14:38 | ||
camelia | rakudo-moar 20ffd3: OUTPUT«Unable to parse expression in ; couldn't find final '*/'  in regex at /tmp/bjRF3jjCoe:1 in method ACCEPTS at src/gen/m-CORE.setting:16292 in block <unit> at /tmp/bjRF3jjCoe:1» | ||
psch shrugs | |||
i have jvm binder to fix :s | |||
*a | |||
14:40
xfix joined
|
|||
masak | yeah, that seems related. | 14:44 | |
timotimo | ~ expects you to parse the stuff between the begin and end precisely | 14:46 | |
psch | that was understanding, anyway. that ~ doesn't allow backtracking into the expression afterwards | ||
which makes it a bit less useful than i personally would like it to be | 14:47 | ||
timotimo | m: say '/* */' ~~ rule { '/*' ~ '*/' .+? } | ||
camelia | rakudo-moar 20ffd3: OUTPUT«Unable to parse expression in ; couldn't find final '*/'  in regex at /tmp/dm2BkjDH1s:1 in method ACCEPTS at src/gen/m-CORE.setting:16292 in block <unit> at /tmp/dm2BkjDH1s:1» | ||
timotimo | also, i believe you need to put parens around "...?" | ||
m: say '/* */' ~~ rule { '/*' ~ '*/' [...?] } | |||
camelia | rakudo-moar 20ffd3: OUTPUT«Unable to parse expression in ; couldn't find final '*/'  in regex at /tmp/6sXcqdhuFW:1 in method ACCEPTS at src/gen/m-CORE.setting:16292 in block <unit> at /tmp/6sXcqdhuFW:1» | ||
timotimo | m: say '/* */' ~~ rule { '/*' ~ '*/' [..] } | ||
camelia | rakudo-moar 20ffd3: OUTPUT«Unable to parse expression in ; couldn't find final '*/'  in regex at /tmp/X7WDFspEbk:1 in method ACCEPTS at src/gen/m-CORE.setting:16292 in block <unit> at /tmp/X7WDFspEbk:1» | ||
timotimo | oh? | ||
psch | huh? | ||
timotimo | m: say '/* */' ~~ regex { '/*' ~ '*/' [..] } | ||
camelia | rakudo-moar 20ffd3: OUTPUT«「/* */」» | ||
timotimo | sigspace | 14:48 | |
psch | ah right | ||
14:48
rurban joined
|
|||
psch | m: say '/* */' ~~ regex { '/*' ~ '*/' [..?] } | 14:48 | |
camelia | rakudo-moar 20ffd3: OUTPUT«Unable to parse expression in ; couldn't find final '*/'  in regex at /tmp/mEmK_mdiY3:1 in method ACCEPTS at src/gen/m-CORE.setting:16292 in block <unit> at /tmp/mEmK_mdiY3:1» | ||
masak | timotimo: I think that's a good point. '~' is really a tool for token/rule that have backtracking turned off. because it really doesn't work well with backtracking. | ||
psch | yeah, but the .? doesn't get unmatched | ||
timotimo | aye | ||
15:05
bbkr joined
|
|||
bbkr | moar: use Test; sub foo { my @a; return @a;}; is foo, Nil | 15:06 | |
r: use Test; sub foo { my @a; return @a;}; is foo, Nil | |||
camelia | rakudo-moar 20ffd3: OUTPUT«not ok 1 - # Failed test at /tmp/tmpfile line 1# expected: (Nil)# got: ''» | ||
dalek | kudo-star-daily: 5a9f7da | coke++ | log/ (9 files): today (automated commit) |
||
rl6-roast-data: bf55012 | coke++ | / (9 files): today (automated commit) |
|||
timotimo | bbkr: "is" uses string comparison | 15:08 | |
bbkr | i see that it changed between 2015.02 and 2015.03, on 2015.02 this test passes | 15:09 | |
15:10
[Coke] joined
|
|||
timotimo | oh | 15:11 | |
15:12
zakharyas left
|
|||
jnthn | Note that a ~ b c is *not* defined as syntax sugar for a c b | 15:12 | |
If that's all it did, it'd not really be worth it. | |||
bbkr | looks like empty array is not implicitly "flattened" to Nil now. however I don't see any changelog entry about it. explicit flattening works: | 15:13 | |
r: use Test; sub foo { my @a; return |@a;}; is foo, Nil | |||
camelia | rakudo-moar 20ffd3: OUTPUT«ok 1 - » | ||
jnthn | bbkr: I think "is" got stricter around type object-y things | 15:14 | |
bbkr: It used to just stringify them to empty | |||
So an empty array would probably have matched any type object, not just Nil, before | |||
timotimo | aye | 15:15 | |
jnthn: are you just on the airport or have wifi on the plane? | |||
jnthn | Airport | ||
No plane wifi, usually...if there is it's extortionately priced and slow and given the flight is sub-hour usually and you can't use it for the first and last 10 minutes, it's really not worth it. | 15:16 | ||
timotimo | ah, OK | ||
jnthn | for those who *really* want a ~ b c to backtrack, it should be possible to define a token FAILGOAL(|) { <!> } | 15:18 | |
timotimo | m: say "used to be 2359603, now is 2395358, that's a reduction to { 2359603 / 2395358 }% for nqp" | ||
camelia | rakudo-moar 20ffd3: OUTPUT«used to be 2359603, now is 2395358, that's a reduction to 0.98507321% for nqp» | ||
jnthn | I guess the other option would be to define FAILGOAL like that in Cursor, define it to throw in Grammar, and then use in /.../ would backtrack and in grammars would throw. | ||
But maybe that's just differently unhelpful :) | 15:19 | ||
timotimo | m: say "used to be 47547366, now is 46871722, that's a reduction to { 46871722 / 47547366 }% for rakudo" | ||
camelia | rakudo-moar 20ffd3: OUTPUT«used to be 47547366, now is 46871722, that's a reduction to 0.985790086% for rakudo» | ||
15:19
rmgk is now known as Guest61564,
rmgk_ joined,
Guest61564 left,
rmgk_ is now known as rmgk
|
|||
jnthn | timotimo: What's the measurement for? :) | 15:19 | |
timotimo | not such a gigantic win | ||
turning "mov TMP6, TC; mov ARG1, TMP6" into just "mov ARG1, TC" | 15:20 | ||
if the first argument to a c function with TC as first arg into just that | |||
jnthn | It's > 1% in both cases | ||
timotimo | yeah | ||
jnthn | That is quite big for saving instructions :) | ||
timotimo | that's bytes | 15:21 | |
[Coke] | anyone know what happened to hack this time? | ||
jnthn | timotimo: oh, not time... | ||
timotimo | nope | ||
very much not so :) | |||
jnthn | Still, worth saving the memory and it will have to make things a little faster | 15:22 | |
callgrind gives exact instruction counts. | |||
timotimo | fair enough | ||
jnthn | Suspect it's another thing that the exprcomp thingy brrt++ will hopefully work on this summer will make easier. | 15:24 | |
dalek | kudo/nom: 1f7f691 | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java: Correct an error in the Binder. Previously «sub f(Num() \a) { a.WHAT.say }; f 5» would print «(Int)», because the R-J Binder didn't pass the coerced value but the original value to the CallFrame. With this patch we correctly print «(Num)». |
15:27 | |
jnthn | psch++ | ||
timotimo | yes, the exprcomp will pretty much make this special case optimization superfluous | 15:28 | |
psch | Mouq++ # for the opt that brought the Binder bug to the surface | ||
timotimo | with my limited ability to come up with super cool optimizations, i'm turning to smaller and smaller straws :P | 15:29 | |
15:31
eli-se left
15:33
marisa__ is now known as lolisa,
atroxaper left
15:34
rurban left
|
|||
jnthn | bawdin thyme... & | 15:37 | |
15:38
spider-mario left,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
15:39
eli-se joined
|
|||
timotimo | Stage parse : 903.469 | 15:40 | |
wowza | |||
15:43
aborazmeh left,
espadrine left
|
|||
psch | heh | 15:45 | |
m: say uniname -1 | |||
camelia | rakudo-moar 20ffd3: OUTPUT«should eventually be unreachable in sub uniname at src/gen/m-CORE.setting:8670 in block <unit> at /tmp/B_LbZ96Xk_:1» | ||
psch | eventually... :) | 15:46 | |
timotimo | hehe. | ||
jdv79 | do the JSON::Jansson tests fail for anyone else on current | 15:48 | |
timotimo | 137,308,341,032 instructions for stage parse | 15:51 | |
masak | psch: that's an LTA error message. please submit rakudobug | 15:55 | |
psch | masak: i'm not sure it's not a moar issue | 15:57 | |
MVM_unicode_get_name doesn't expect an adhoc throw, but MVM_codepoint_to_row_index throws one | |||
the nqp or rakudo layers don't really seem involved, from my POV | 15:58 | ||
but i don't know how to fix it offhand, and it probably shouldn't get lost... | 15:59 | ||
16:00
gfldex joined
|
|||
itz | is libm math like "pow" done in nqp or MoarVM? or both? | 16:00 | |
timotimo | in MoarVM for nqp-moar or in parrot for nqp-parrot | ||
not exactly sure if we use java's built-in multi-prec math? | 16:01 | ||
masak | psch: I'd say it's a rakudobug even if it turns out to be a moar issue. | 16:03 | |
psch | #124144 | 16:05 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124144 | ||
masak | psch++ | ||
flussence | m: my bit $a = 2; | 16:12 | |
camelia | rakudo-moar 1f7f69: OUTPUT«===SORRY!===Invalid int size for local/lexical» | ||
flussence | m: my bit $a = 1; | ||
camelia | rakudo-moar 1f7f69: OUTPUT«===SORRY!===Invalid int size for local/lexical» | ||
flussence | oh, lemme guess... | ||
16:12
eli-se left
|
|||
flussence | m: my bit @a = [0,1].pick xx 8; | 16:12 | |
camelia | rakudo-moar 1f7f69: OUTPUT«===SORRY!===MVMArray: Unsupported uint size» | ||
psch | m: my bit $x | 16:13 | |
camelia | rakudo-moar 1f7f69: OUTPUT«===SORRY!===Invalid int size for local/lexical» | ||
flussence shrugs | |||
psch | m: my int1 $x | ||
camelia | rakudo-moar 1f7f69: OUTPUT«===SORRY!===Invalid int size for local/lexical» | ||
16:13
C0rruptor left
|
|||
timotimo | m: say "the instruction count went down to { 137308341032 / 137495380335 }%" | 16:19 | |
camelia | rakudo-moar 1f7f69: OUTPUT«the instruction count went down to 0.9986396684562%» | ||
timotimo | er, not % of course | 16:20 | |
m: say 0.9986396684562 * 100 | |||
camelia | rakudo-moar 1f7f69: OUTPUT«99.86396684562» | ||
timotimo | m: say 100 - 0.9986396684562 * 100 | ||
camelia | rakudo-moar 1f7f69: OUTPUT«0.13603315438» | ||
timotimo | less than 1% instruction count change | ||
flussence | small things like that can compound on each other though :) | 16:21 | |
timotimo | well ... only if i do more improvement like that | ||
16:23
sirdancealot is now known as sirsleepalot
16:25
azawawi joined
|
|||
azawawi | hi | 16:25 | |
timotimo | heyo azawawi! | 16:26 | |
long time no sea :) | |||
16:27
eli-se joined
|
|||
azawawi | im back :) | 16:28 | |
masak | azawawi! \o/ | ||
azawawi is now testing farabi6 on win32 and linux :) | 16:29 | ||
masak .oO( 好久不海了 ) :P | |||
16:30
mr-foobar left
|
|||
azawawi | is there something like __FILE__ in Perl 6? | 16:31 | |
flussence | $?FILE ? | ||
azawawi takes a look | |||
16:31
mr-foobar joined
|
|||
flussence | same pattern goes for $?LINE, $?CLASS and &?ROUTINE | 16:32 | |
m: say $?FILE, $?LINE, $?CLASS, &?ROUTINE | |||
camelia | rakudo-moar 1f7f69: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DJdv6iMtAJVariable '$?CLASS' is not declaredat /tmp/DJdv6iMtAJ:1------> 3say $?FILE, $?LINE, $?CLASS7⏏5, &?ROUTINE expecting any of: postfix» | ||
flussence | m: say $?FILE, $?LINE, &?ROUTINE | ||
camelia | rakudo-moar 1f7f69: OUTPUT«5===SORRY!5=== Error while compiling /tmp/STXMoOcQMDUndeclared routine: &?ROUTINE used at line 1» | ||
flussence | m: say $?FILE, $?LINE | ||
camelia | rakudo-moar 1f7f69: OUTPUT«/tmp/aoAJJIWMJr1» | ||
flussence | m: sub r { say &?ROUTINE }; r | 16:33 | |
camelia | rakudo-moar 1f7f69: OUTPUT«sub r () { #`(Sub|52752312) ... }» | ||
azawawi | flussence: thx :) | 16:35 | |
flussence++ | |||
nice bug under win32... $*SPEC.catdir($*SPEC.splitdir("C:\\rakudo")) -> C:rakudo # lol | 16:36 | ||
m: $*SPEC.catdir($*SPEC.splitdir("C:\\rakudo")) | 16:37 | ||
camelia | ( no output ) | ||
azawawi | m: say $*SPEC.catdir($*SPEC.splitdir("C:\\rakudo")) | ||
camelia | rakudo-moar 1f7f69: OUTPUT«C:\rakudo» | ||
16:39
xfix left
16:42
eli-se left
|
|||
timotimo | azawawi: the thing is, $*SPEC is IO::Spec::UNIX on the bot :) | 16:49 | |
or not? | |||
i'm not sure | |||
psch | m: say $*SPEC.WHAT | ||
camelia | rakudo-moar 1f7f69: OUTPUT«(IO::Spec::Unix)» | ||
psch | doesn't $*SPEC go away eventually? | 16:50 | |
16:51
C0rruptor joined
|
|||
azawawi | timotimo: i noticed | 16:51 | |
FROGGS | psch: lizmat said that, aye | ||
err, lizmat++ | |||
16:58
raiph joined
17:01
diana_olhovik_ left
|
|||
raiph | j: say grammar g { rule t { '(' ~ ')' <TOP> }; rule TOP { [<t> | [<!before ')'> .]]* }}.parse('(foo(bar1))') | 17:03 | |
camelia | rakudo-jvm 1f7f69: OUTPUT«Unable to parse expression in t; couldn't find final ')'  in regex t at /tmp/gq7DgWcUJC:1 in regex TOP at /tmp/gq7DgWcUJC:1 in method parse at gen/jvm/CORE.setting:15713 in block <unit> at /tmp/gq7DgWcUJC:1» | ||
17:05
nige joined
17:06
bbkr left
|
|||
psch | m: say uniprop("⅚", "Width") | 17:09 | |
camelia | rakudo-moar 1f7f69: OUTPUT«0» | ||
psch | m: say uniprop("⅚", "Script") | 17:10 | |
camelia | rakudo-moar 1f7f69: OUTPUT«Common» | ||
psch | m: say uniprop("⅚", "Block") | 17:11 | |
camelia | rakudo-moar 1f7f69: OUTPUT«Number Forms» | ||
17:12
eli-se joined
|
|||
psch | well, porting uniname to r-j was easy, but uniprop looks like a few giant switch/case statements | 17:12 | |
oh, but it's giant switch/case statements in moar too, so that's apparently a good way to implement it | 17:13 | ||
17:13
anaeem1_ joined
17:17
sqirrel_ joined
|
|||
[Coke] | May 02, there's a hackathon in NYC. I'm close enough to head down if there's interest in a Perl 6 track. | 17:18 | |
www.meetup.com/The-New-York-Perl-Me...221319780/ | |||
dalek | kudo/union: bf6b7e8 | FROGGS++ | lib/NativeCall.pm: allow to pass CUnions as arguments |
17:20 | |
kudo/union: bc3cd64 | FROGGS++ | t/04-nativecall/13-union. (2 files): make CUnion tests endian-unaware |
|||
timotimo | psch: at least make sure you generate the switch/case statements :3 | 17:23 | |
psch | m: say uniprop("A", "Block") | 17:27 | |
camelia | rakudo-moar 1f7f69: OUTPUT«Basic Latin» | ||
psch | that bit is gonna be fun | ||
apparently a Java UnicodeBlock doesn't know its name, they're just stored as constants named after an approximation of the official block name | |||
which means that'll be another huge switch/case statements :/ | 17:28 | ||
ugh | |||
but it can't be a switch/case cause they don't work on object identity iirc | |||
so it's «UnicodeBlock blk = UnicodeBlock.of(codePoint); if( blk == UncodeBlock.BASIC_LATIN ) { return "Basic Latin" } ...» or somesuch | 17:29 | ||
17:31
grondilu left
|
|||
psch | timotimo: i think i first need to understand this whole unicode business a bit better | 17:38 | |
timotimo: but yeah, writing a few hundred lines of switch/case is probably not the best use of my time :) | 17:39 | ||
timotimo | :) | ||
17:41
rurban joined,
nige left
17:43
Perl6_newbee left
17:46
nige joined
|
|||
azawawi | how can an installed Perl 6 module know whether it is installed under site/lib or lib? | 17:47 | |
avar | Isn't there a __FILE__ (IIRC it's $*FILE) that gives you the full path like in perl 5? | 17:52 | |
raiph | azawawi: does design.perl6.org/S22.html#%25%3FRESOURCE look like the right design doc? | 17:54 | |
azawawi | raiph: hmmm looks good | ||
raiph | m: say %?RESOURCE | ||
camelia | rakudo-moar 1f7f69: OUTPUT«5===SORRY!5=== Error while compiling /tmp/n991bd2IX8Variable '%?RESOURCE' is not declaredat /tmp/n991bd2IX8:1------> 3say %?RESOURCE7⏏5<EOL> expecting any of: postfix» | ||
itz | m: say $?FILE | 17:55 | |
camelia | rakudo-moar 1f7f69: OUTPUT«/tmp/FEv31Oazbc» | ||
itz | m: say $?CLASS | ||
camelia | rakudo-moar 1f7f69: OUTPUT«5===SORRY!5=== Error while compiling /tmp/86lhXnaCb9Variable '$?CLASS' is not declaredat /tmp/86lhXnaCb9:1------> 3say $?CLASS7⏏5<EOL> expecting any of: postfix» | ||
17:55
sqirrel_ left
|
|||
itz | m: say $?PACKAGE | 17:55 | |
camelia | rakudo-moar 1f7f69: OUTPUT«(GLOBAL)» | ||
azawawi | raiph: i could loop on @*INC to find my modules assets but then again what about dual-life modules... | 17:58 | |
psch | $?FILE is a compiletime constant, so it should be correct inside of the file, no? | ||
azawawi | psch: nope | ||
raiph | azawawi: see also irclog.perlgeek.de/perl6/2015-03-03#i_10213360 | 17:59 | |
azawawi | psch: returns lib/MyModule.pm when run from the command line | ||
raiph: thx for sharing that discussion | 18:00 | ||
psch | eww | 18:03 | |
precomp behavior of $?FILE seems rather weird | |||
gist.github.com/peschwa/19dd88befeeeca0300a0 | 18:04 | ||
i.e. precomped $?FILE has the relative path from where the precomp process was invoked | |||
but without precomp it's an absolute path | 18:05 | ||
(at least that's assuming my data is sufficient, which it might not be) | |||
dalek | href="https://perl6.org:">perl6.org: d893300 | moritz++ | source/compilers/index.html: Remove Parrot fossil |
||
psch | (for one, i'm running on -j) | 18:06 | |
18:08
xfix joined
|
|||
azawawi | timotimo: ping | 18:12 | |
timotimo | pong | ||
azawawi | timotimo: please check whether the last patch fixes the bug or not on your OSX (aka github.com/azawawi/farabi6/issues/49) | 18:13 | |
timotimo | under callgrind, the setting compilation valgrind gets segfaulted :( | ||
azawawi | no perl6 under OSX? | 18:14 | |
timotimo | i don't have osx at all | ||
azawawi | lol | 18:15 | |
but you have it installed under ~/perl6 right? | |||
pecastro | azawawi: I think I can confirm exactly the same thing. Panda started installing things under share/ and now ... | 18:16 | |
[pecastro@brutalix rakudo3]$ farabi6 | |||
timotimo | yes, ~/perl6/install | ||
pecastro | Switching to panda-installed farabi6 | ||
farabi.js is not found in /home/pecastro/perl6/rakudo3/install/languages/perl6/site/lib/Farabi6/files/assets | |||
Friday farabi install via panda worked fine ... | 18:17 | ||
azawawi | pecastro: i see | ||
dalek | p: a7acff6 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Remove tabs, fix indentation. |
||
p: e45d8de | peschwa++ | src/vm/jvm/ (2 files): Implement nqp::getuniname for the JVM backend. |
|||
azawawi | pecastro: where is farabi.js in your machine btw ? | ||
dalek | kudo/nom: 49f1dd0 | peschwa++ | tools/build/NQP_REVISION: Bump NQP_REVISION |
||
kudo/nom: 5e6ba8d | peschwa++ | src/core/Str.pm: Use nqp::getuniname on JVM |
|||
kudo/nom: 5778e86 | peschwa++ | t/spectest.data: Enable S15-unicode-information/uniname.t for JVM. |
|||
timotimo | azawawi: currently shoveling around in the guts of moar, won't have a working rakudo for a few more minutes as i'm measuring stuff with callgrind right now | 18:18 | |
dalek | ast: 71a4a94 | peschwa++ | S06-signature/errors.t: Fudge a test for R-J that relies on &unival. |
||
ast: 4ecfcdd | peschwa++ | S02-types/native.t: Unfudge now passing tests. |
|||
ast: 5106aa1 | peschwa++ | S15-unicode-information/uniname.t: Fudge for rakudo in general, not just rakudo.moar. |
|||
azawawi | timotimo: take your time :) | ||
timotimo | i'll take my timo :P | ||
pecastro | azawawi: /home/pecastro/perl6/rakudo3/install/share/perl6/site/lib/Farabi6/files/assets/farabi.js | 18:19 | |
azawawi | pecastro: true the same here on my lubuntu vm | ||
pecastro | I'm on linux. | ||
18:20
lolisa left
|
|||
azawawi | pecastro: did you 'panda install Farabi6' now? | 18:20 | |
pecastro: since i just fixed it | |||
timotimo | i guess i'll run setting compilation under valgrind's memory checker | ||
to see what i'm doing stupid | |||
azawawi | pecastro: s/since/because/ | 18:21 | |
timotimo | d'oh | 18:23 | |
Stage parse : --26561-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting | |||
azawawi | pecastro: ? | 18:25 | |
psch | # expected: 'alpha:a|ident:a' | 18:27 | |
# got: 'ident:a|alpha:a' | |||
grrml | |||
18:29
nige left
18:30
larion left,
larion joined
|
|||
psch | m: say ("a" ~~ m/<alpha> && <ident>/).caps | 18:35 | |
camelia | rakudo-moar 1f7f69: OUTPUT«alpha => 「a」 ident => 「a」» | ||
psch | j: say ("a" ~~ m/<alpha> && <ident>/).caps | ||
camelia | rakudo-jvm 1f7f69: OUTPUT«ident => 「a」 alpha => 「a」» | ||
psch | j: say ("a" ~~ m/<alpha> && <ident>/)>>.from | ||
camelia | rakudo-jvm 1f7f69: OUTPUT«0» | ||
psch | m: say ("a" ~~ m/<alpha> && <ident>/){*}>>.from | 18:36 | |
camelia | rakudo-moar 1f7f69: OUTPUT«0 0» | ||
arnsholt | psch: That definitely sounds like a bug in the testing module, rather than the tested code | ||
psch | arnsholt: no, .caps is underspecified | 18:38 | |
raydiak | j: say $*VM.config<dll> | ||
psch | design.perl6.org/S05.html#line_3143 | ||
camelia | rakudo-jvm 1f7f69: OUTPUT«(Any)» | ||
raydiak | j: say $*VM.config | ||
camelia | rakudo-jvm 1f7f69: OUTPUT«nativecall.cc => cc, nativecall.ccdlflags => -fPIC -Wl,-E, nativecall.ccflags => -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64, nativecall.ld => cc, nativecall.lddlflags => -shared -O2 -…» | ||
psch | it sorts by .from, but doesn't specify what else if .from is equal | ||
arnsholt: that's not to say that the test could catch it, but it shouldn't have to, because .caps returns Positional | |||
*not say the test could*n't* | 18:39 | ||
raydiak | j: say $*VM.keys | ||
camelia | rakudo-jvm 1f7f69: OUTPUT«0» | ||
psch | (also s/underspecified/underspeculated/) | ||
dalek | ast: 8ae0b90 | usev6++ | S03-operators/arith.t: Refer to RT #85750 for failing test on NetBSD also fudge test as 'todo' and add some references |
18:42 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=85750 | ||
raydiak | j: say $*VM.config.keys | ||
camelia | rakudo-jvm 1f7f69: OUTPUT«runtime.jars nativecall.lddlflags nativecall.libs nativecall.ccdlflags nativecall.o runtime.classpath nativecall.ccflags nativecall.so runtime.bootclasspath prefix nativecall.ldflags nativecall.perllibs nativecall.ldout nativecall.ld nativecall.cc» | ||
azawawi | any idea how to get the canonical path of any filesystem path in Perl 6? | 18:43 | |
timotimo | meh. asan doesn't spot anything :( | 18:44 | |
what is "&&"? i only know & (inside regex) | 18:45 | ||
18:45
kjs_ joined
|
|||
psch | timotimo: i think && is to & as || is to | | 18:46 | |
timotimo | i didn't know & did any sort of STM-like thing ?! | ||
psch | arnsholt: i mean, i agree that the test is operating on bad assumptions, but it shows an issue that actually matters | 18:47 | |
arnsholt: .caps builds an array from all named and positional captures, and sorts them only by .from, which with named ones can have different results on any execution | 18:48 | ||
arnsholt: because the order before sorting can be different, because named captures are stored in a hash by key | |||
timotimo: design.perl6.org/S05.html#line_828 | 18:50 | ||
azawawi | m: IO::Path.new($*SPEC.catdir('C:\\rakudo\\languages', '..', '..')).absolute | ||
camelia | rakudo-moar 1f7f69: OUTPUT«IO::Path is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in method new at src/RESTRICTED.setting:32 in block <unit> at /tmp/ZpqEQtELl6:1» | ||
azawawi | $*SPEC.catdir('C:\\rakudo\\languages', '..', '..').path | 18:51 | |
m: $*SPEC.catdir('C:\\rakudo\\languages', '..', '..').path | |||
camelia | rakudo-moar 1f7f69: OUTPUT«Saw 1 call to deprecated code during execution.================================================================================Method path (from Str) called at: /tmp/ZwCk4IXKGL, line 1Deprecated since v2014.11, will be removed with release v20…» | ||
azawawi | m: $*SPEC.catdir('C:\\rakudo\\languages', '..', '..').path.absolute | ||
camelia | rakudo-moar 5778e8: OUTPUT«Saw 1 call to deprecated code during execution.================================================================================Method path (from Str) called at: /tmp/gyGQpTvonV, line 1Deprecated since v2014.11, will be removed with release v20…» | ||
azawawi | m: say $*SPEC.catdir('C:\\rakudo\\languages', '..', '..').path.absolute | ||
camelia | rakudo-moar 5778e8: OUTPUT«/home/camelia/C:\rakudo\languages/../..Saw 1 call to deprecated code during execution.================================================================================Method path (from Str) called at: /tmp/lOIOOkPqdq, line 1Deprecated since …» | ||
FROGGS | azawawi: can you do that in privmsg to camelia? | 18:52 | |
azawawi | FROGGS: sorry about the noise | ||
FROGGS | np | ||
timotimo | ah, interesting. thank you ,ps | ||
, psch | |||
FROGGS | I also did not know that && is a thing | 18:53 | |
dalek | kudo/union: 6ce6405 | FROGGS++ | t/04-nativecall/13-union.t: test the sizeof of CUnions |
18:54 | |
18:58
kjs_ left
|
|||
psch .oO( and now to show that maybe it's even moar that's wrong! ) | 18:59 | ||
m: say ("a" ~~ m/<alpha> && <ident>/).caps; say ("a" ~~ m/<ident> && <alpha>/).caps | |||
camelia | rakudo-moar 5778e8: OUTPUT«alpha => 「a」 ident => 「a」ident => 「a」 alpha => 「a」» | ||
psch | j: say ("a" ~~ m/<alpha> && <ident>/).caps; say ("a" ~~ m/<ident> && <alpha>/).caps | ||
camelia | rakudo-jvm 5778e8: OUTPUT«ident => 「a」 alpha => 「a」ident => 「a」 alpha => 「a」» | ||
19:00
azawawi left
|
|||
dalek | ast: 6b4f3e3 | (Steve Mynott)++ | S03-operators/arith.t: update RT# |
19:04 | |
19:05
Mouq joined
19:22
colomon joined
|
|||
itz | hmmm RT really is a bit rubbish compared with github comments | 19:27 | |
jnthn | evening o/ | 19:29 | |
FROGGS | hi jnthn | 19:30 | |
jnthn: what are your feelings about passing and returning structs and unions would always mean struct* and union*? | 19:33 | ||
jnthn: so that that only attributes would be different, and would default to inline | |||
19:34
lichtkind joined
|
|||
jnthn | FROGGS: I'm not even sure if "default to inline" is correct | 19:36 | |
FROGGS | jnthn: then we'd need a trait to say so | 19:37 | |
jnthn | Indeed. | ||
FROGGS | though, defaulting to inlining is easier to implement | ||
jnthn | That or we find a way to make scope decls extensible so NativeCall can export another one :P | 19:38 | |
FROGGS | hmmm | ||
jnthn | Yes, easier to implement at the cost of having to put Pointer[...] all over the place in code :) | ||
FROGGS | I'm not sure about that scope idea :o) | ||
true | |||
jnthn | Me either; has already puns on things :) | ||
19:39
darutoko left
|
|||
jnthn | Thing is, S09 alludes to compactness (e.g. being able to make a compact array of something) being a property of a type rather than its usage. | 19:39 | |
as I remember it, anyways | 19:40 | ||
FROGGS | I... don't get the connection | ||
ahh, maybe I do | |||
but that would mean that I have to create my union/struct twice, one for inlining and the other as argument/param and return type | 19:41 | ||
19:42
kjs_ joined
|
|||
moritz | I need to pause the www.p6c.org for a while (so perl6.org will be unavailable for a short while) | 19:42 | |
FROGGS | what also bugs me is that 'is rw' in signatures to produce an int* cannot be just be the same in attribute declarations | ||
k | |||
psch | m: say ("a" ~~ /(.) | ./); say ("a" ~~ /(.) & ./) | 19:43 | |
camelia | rakudo-moar 5778e8: OUTPUT«「a」 0 => 「a」「a」 => 「a」» | ||
psch | the mysterious case of the disappearing 0 | ||
FROGGS | O.o | ||
Mouq | m: say ("a" ~~ /. & (.)/) | 19:44 | |
yoleaux | 21 Mar 2015 09:53Z <lizmat> Mouq: t/spec/S32-num/real-bridge.t hangs for me on ok $zero == $zero.Complex, "0 == 0.Complex" | ||
21 Mar 2015 10:04Z <lizmat> Mouq: these are the hanging tests: github.com/perl6/roast/commit/50d2fcb659 | |||
camelia | rakudo-moar 5778e8: OUTPUT«「a」 => 「a」» | ||
psch | nothing up my sleeve! | ||
FROGGS | m: say ("a" ~~ /(.) | ./); $/ := Nil; say ("a" ~~ /(.) & ./) | ||
camelia | rakudo-moar 5778e8: OUTPUT«「a」 0 => 「a」Cannot assign to an immutable value in method ACCEPTS at src/gen/m-CORE.setting:16293 in block <unit> at /tmp/8whqFAKjvR:1» | ||
Mouq | lizmat++, Mouq-- | ||
FROGGS | m: say ("a" ~~ /(.) | ./); $/ = Nil; say ("a" ~~ /(.) & ./) | ||
camelia | rakudo-moar 5778e8: OUTPUT«「a」 0 => 「a」「a」 => 「a」» | ||
dalek | kudo/nom: f5efb7d | TimToady++ | src/ (3 files): improve errors on anon multi/proto |
||
psch | that kind of threw a wrench in my attempt to make .caps more reliable | 19:45 | |
m: say (" a" ~~ /(.) | ./); say (" a" ~~ /(.) & ./) | |||
camelia | rakudo-moar 5778e8: OUTPUT«「 」 0 => 「 」「 」 => 「 」» | ||
jnthn | psch: At a guess, the code generated for the & stuff could be mis-managing the cstack | ||
I forget how on earth & is compiled, but it does involve some trickery with the marks. | |||
psch | (i wanted \w there...) | ||
m: say (" a" ~~ /(\w) | \w/); say (" a" ~~ /(\w) & \w/) | |||
moritz | www running again | ||
camelia | rakudo-moar 5778e8: OUTPUT«「a」 0 => 「a」「a」 => 「a」» | 19:46 | |
pecastro | azawawi Works fine again! ;) | ||
psch | jnthn: okay. the regex match code isn't for me, though. i'll RT it | ||
FROGGS | moritz++ | ||
psch | m: say ("a" ~~ /(.) && ./) | 19:47 | |
camelia | rakudo-moar 5778e8: OUTPUT«「a」 => 「a」» | ||
psch | oh hmm | 19:48 | |
i forgot to tag the uniname bug with [BUG] | |||
jnthn | There's a uniname bug? | 19:51 | |
psch | m: say uniname -1 | ||
camelia | rakudo-moar 5778e8: OUTPUT«should eventually be unreachable in sub uniname at src/gen/m-CORE.setting:8671 in block <unit> at /tmp/xP7o6yewuo:1» | ||
19:51
Rounin joined
|
|||
jnthn | Ah | 19:51 | |
That's probably alluding to "should implement NFG eventually" :) | 19:52 | ||
psch | jnthn: MVM_codepoint_to_row_index throws on codepoint < 0 | ||
jnthn: other functions return -1, which is what MVM_unicode_get_name expects | 19:53 | ||
jnthn | Ah | ||
masak | moritz: your submitting a rakudobug with the Ackermann function made me read up on the Ackermann function. I feel I finally understand it, and it doesn't look weird anymore. moritz++ | ||
(also, I read about a nice connection between the Ackermann function and category theory) | 19:54 | ||
jnthn | Sounds odd, though feeding negatives in to MVM_codepoint_to_row_index is almost certainly a no-no. | ||
Anyway, will look at it while working on NFG. | |||
19:55
anaeem1_ left
19:56
anaeem1_ joined
19:57
kaare_ left
|
|||
psch | oh | 19:58 | |
.caps isn't actually spec'd to work with overlapping captures | |||
19:59
anaeem1_ left
|
|||
psch | hm, not sure i understand this properly | 19:59 | |
19:59
anaeem1 joined,
rindolf left
|
|||
moritz | PSA: I'm now setting up a new host, irc.p6c.org | 20:01 | |
for IRC usage only | 20:02 | ||
so that people don't lose their precious IRC sessions when hack goes down | |||
(and this is meant to be a temporary hack, until the stability issues have been addressed | |||
) | |||
psch | j: say uniname -1 | 20:03 | |
camelia | rakudo-jvm 5778e8: OUTPUT«<illegal>» | ||
psch | j: say uniname 0x30000 | 20:04 | |
camelia | rakudo-jvm 5778e8: OUTPUT«<unassigned>» | ||
psch | m: say uniname 0x30000 | ||
camelia | rakudo-moar 5778e8: OUTPUT«<unassigned>» | ||
moritz | m: say uniname 0x999999999999 | ||
camelia | rakudo-moar 5778e8: OUTPUT«should eventually be unreachable in block <unit> at /tmp/6L2som3tZ3:1» | ||
moritz | m: say uniname 0x9999999999 | ||
camelia | rakudo-moar 5778e8: OUTPUT«should eventually be unreachable in block <unit> at /tmp/sSO86h5aoH:1» | ||
moritz | m: say uniname 0x99999999 | ||
camelia | rakudo-moar 5778e8: OUTPUT«should eventually be unreachable in block <unit> at /tmp/M1WrByZCtm:1» | ||
moritz | m: say uniname 0x999999 | ||
camelia | rakudo-moar 5778e8: OUTPUT«<illegal>» | ||
psch | j: say uniname 0x999999999999 | 20:05 | |
camelia | rakudo-jvm 5778e8: OUTPUT«<illegal>» | ||
20:05
kjs_ left
|
|||
FROGGS | would be nice to return Str instead of '<illegal>' me thinks | 20:06 | |
or Nil | |||
Nil for <illegal> and Str for <unassigned> | 20:07 | ||
:o) | |||
psch | FROGGS: the nqp ops return str currently | 20:09 | |
masak | agree about Nil | 20:10 | |
not so sure about Str | |||
20:10
kjs_ joined
|
|||
psch | although i don't think that uniname is hot enough to care about the boxing/create() | 20:10 | |
20:11
yqt joined
20:18
telex left
|
|||
masak wonders what #perl6 will make of #124148 | 20:19 | ||
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124148 | |||
masak | synopsebot: wow, you're fast! | ||
20:20
telex joined
|
|||
moritz | ok, irc.p6c.org is now up and running | 20:21 | |
if you want an account, just tell me | |||
it's meant for IRC sessions only, no Perl 6 hacking there | |||
FROGGS | yeah, that makes sense | 20:22 | |
moritz | and only until the hack freezes stop | ||
jnthn | masak: If .perl is to consistenty order them then it should do a .sort on the keys | 20:23 | |
masak: Backends are free to do whatever they please on this issue. | 20:24 | ||
(e.g. iteration order cannot be relied upon) | |||
I'm fine with .perl doing a sort, in that it's intended as a debugging aid. | |||
masak | me too. | 20:25 | |
moritz | +1 | 20:27 | |
20:30
kjs_ left
|
|||
FROGGS | then .gist should sort also | 20:30 | |
20:35
nige joined
|
|||
dalek | kudo/nom: 31d6106 | Mouq++ | src/core/Complex.pm: Let's get Real about this (fix Bridging to Complex). lizmat++ alternatively: "Not Cool, Mouq" |
20:38 | |
kudo/nom: c60565d | Mouq++ | src/ (3 files): Merge branch 'nom' of github.com/rakudo/rakudo into nom |
|||
ast: 59876b1 | Mouq++ | S32-num/real-bridge.t: Revert "Fudge hanging tests" This reverts commit 50d2fcb6595d0540efae2737c52b4a6bd1db8c54. |
|||
masak | m: my @board = ['.' xx 15] xx 15; | 20:39 | |
camelia | ( no output ) | ||
20:39
virtualsue left
|
|||
masak | used to be that one did the wrong thing. but then infix:<xx> got awesome \o/ | 20:40 | |
one reason I love Perl 6 :> | |||
20:41
diana_olhovik joined
|
|||
FROGGS | jnthn: I guess 'is inlined' might be ambiguous? or would that be okay? | 20:48 | |
20:50
[Sno] left,
[Sno] joined
|
|||
FROGGS | I am trying that now in the union branch, we can rename later if necessary | 20:50 | |
jnthn | FROGGS: Well, can try it that way first... | 20:51 | |
20:51
anaeem1 left
|
|||
jnthn | FROGGS: I think we'll need to look a little more carefully at this in the context of S09 also. | 20:51 | |
20:52
anaeem1_ joined
|
|||
FROGGS | jnthn: I've read parts of S09 right now... but I did not spot anything that might be connected to inlined | 20:53 | |
inlining* | |||
20:55
kjs_ joined
|
|||
psch & | 20:56 | ||
FROGGS | o/ psch | ||
timotimo | o/ | ||
masak | o/ | 20:57 | |
FROGGS | hmmm, I'm not sure this is doable with a trait :o( | 21:04 | |
21:05
gfldex left
21:06
jack_rabbit joined
|
|||
FROGGS | the representation containing the (not)inlined thing needs to know | 21:06 | |
hmmm | 21:07 | ||
21:10
kjs_ left
21:13
diana_olhovik left
|
|||
jnthn | FROGGS: Yes, that's the "tied to the type" thing I was mentioning earlier... | 21:15 | |
21:15
Ven joined
|
|||
FROGGS | and now Pointer[thing] looks nice again :P | 21:16 | |
FROGGS .oO( Inlined[thing] ) | 21:17 | ||
21:25
molaf_ left
|
|||
timotimo | i wouldn't mind having to write that | 21:28 | |
what will sized CArrays look like inside a CStruct? | |||
(or union) | |||
21:28
Rounin left
|
|||
FROGGS | has array $.thing[32] | 21:29 | |
timotimo | mhh | ||
k | |||
21:30
raiph left
21:31
virtualsue joined
21:32
xfix left
|
|||
TimToady | m: proto a(Int, Int) is cached {*}; multi a(Int \n, 0) { n + 1 }; multi (0, Int \m) { a m-1, 1 }; multi (\n, \m) { a m - 1, a m, n - 1 }; say a 3, 1 | 21:35 | |
camelia | rakudo-moar c60565: OUTPUT«5===SORRY!5=== Error while compiling /tmp/o2S9mo6vYcAn anonymous routine may not take a multi declaratorat /tmp/o2S9mo6vYc:1------> 3{*}; multi a(Int \n, 0) { n + 1 }; multi7⏏5 (0, Int \m) { a m-1, 1 }; multi (\n, \m» | ||
FROGGS | m: proto a(Int, Int) is cached {*}; multi a(Int \n, 0) { n + 1 }; multi a(0, Int \m) { a m-1, 1 }; multi a(\n, \m) { a m - 1, a m, n - 1 }; say a 3, 1 | 21:39 | |
timotimo | Farabi6 is serving files from lib/Farabi6/files at :3030 | ||
camelia | rakudo-moar c60565: OUTPUT«(timeout)» | 21:40 | |
timotimo | oh lord | ||
farabi6's static file serving is SUPER slow now | |||
eli-se | Use Nginx or a CDN. | 21:42 | |
FROGGS | Inlined[thing] is very wrong me thinks | ||
timotimo | eli-se: hosting stuff from localhost ... i don't think a CDN would do any better :D | 21:43 | |
21:44
FROGGS left
21:45
bjz left
|
|||
hoelzro | jnthn, FROGGS[mobile]: ok, I reduced it down to a Moar/NQP/Rakudo commit triple: | 21:45 | |
Rakudo: a593932 NQP: 6d19df1 MoarVM: c6e8df8 | 21:46 | ||
although those Rakudo and NQP commits should probably be one *before* each of them, because each of them bump the {NQP,MOAR}_REVISION files | 21:47 | ||
I'm a bit sad that it's not an NQP change, but maybe it will lead to a fix for the JVM | |||
dalek | kudo/nom: 561abb2 | raydiak++ | src/Perl6/ (2 files): Support angle-quoted Rat literals e.g. <1/2> |
21:48 | |
kudo/nom: 9ed9dcc | raydiak++ | src/core/PairMap.pm: Merge branch 'nom' into rat |
|||
kudo/nom: 854d4b4 | raydiak++ | / (8 files): Merge branch 'nom' into rat |
|||
kudo/nom: af68137 | raydiak++ | src/Perl6/Actions.nqp: Rat literal ast optimization Mouq++ |
|||
kudo/nom: af6bd02 | Mouq++ | src/Perl6/ (2 files): Merge pull request #392 from raydiak/rat Angle-quoted Rat literals |
|||
hoelzro | btw, I updated my R* docker image for the 2015.03 release: registry.hub.docker.com/u/hoelzro/rakudo-star/ | 21:49 | |
masak | m: sub foo(@x) { @x.=grep(* %% 2) }; my @a = 1..10; foo(@a); say @a | 21:50 | |
camelia | rakudo-moar c60565: OUTPUT«2 4 6 8 10» | ||
21:50
larion left
21:51
FROGGS[tab] left
|
|||
jnthn | hoelzro: Thing is, I did (afaik) port those changes to JVM too | 21:52 | |
hoelzro: Feel free to compare the two for anything I missed | |||
hoelzro | ah ha | ||
21:52
diana_olhovik joined
|
|||
hoelzro | I can give it a shot, but I updated the ticket with the information I just posted here in case someone else feels like taking a crack at it | 21:53 | |
jnthn | hoelzro: cbef59357 is the nqp-j commit in question | ||
21:54
nsharrok joined
21:56
nsharrok left,
nsharrok joined
21:57
nsharrok left
21:58
larion joined,
pecastro left
22:00
anaeem1_ left,
anaeem1 joined
22:01
Ven left
22:03
nsharrok joined
22:05
anaeem1 left
|
|||
nsharrok | Does anyone know how to install Perl6 on windows IIS 8.5? | 22:06 | |
22:08
nige left
22:09
raiph joined
22:10
kjs_ joined
22:13
rurban left
22:15
davercc joined
|
|||
masak | nsharrok: have you tried the ordinary Windows installation instructions? | 22:24 | |
22:24
geever left
|
|||
masak knows nothing about IIS | 22:24 | ||
22:27
pecastro joined,
diana_olhovik left
22:28
rurban joined
|
|||
timotimo | we do have a .msi file for last month's rakudo star already built and uploaded to rakudo.org | 22:28 | |
22:29
diana_olhovik_ joined
22:33
yqt left
|
|||
virtualsue | groups.perlists.pm/sympa/arc/londo...00013.html # that itz guy again | 22:34 | |
22:38
lnr joined
22:40
rurban left,
kjs_ left
|
|||
Mouq should probably at least sign up for the ABE.pm mailing list | 22:42 | ||
22:45
kaare_ joined
22:48
coffee` left
22:52
larion left,
StrykerKKD joined
23:02
diana_olhovik_ left
|
|||
masak | 'night, #perl6 | 23:03 | |
Mouq | 'night masak :) | 23:05 | |
23:06
rurban joined
23:09
larion joined
23:14
larion left
23:16
kurahaupo joined
23:17
kurahaupo left,
kurahaupo joined
|
|||
timotimo | virtualsue: "getting to see a part of the solar eclipse" is the whole reason you'd even bother, isn't it? :) | 23:22 | |
nsharrok | Does anyone know how to get a handler mapping for rukudo star in IIS 8.5 working? | 23:23 | |
eli-se | FROGGS[mobile]: I'm also playing with some C++ ABI fun now: coliru.stacked-crooked.com/a/e6ea838549029857 :p | 23:30 | |
23:44
StrykerKKD left
23:46
aindilis left
23:47
anaeem1 joined
23:48
gcole left,
larion joined
23:52
rurban left,
larion left,
anaeem1 left
|