»ö« 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! Set by moritz on 25 December 2014. |
|||
00:04
raiph left
00:11
BigBear left
00:12
BigBear joined
00:15
adu left
00:20
Ven left
00:23
adu joined
|
|||
adu | what's the best way to loop over an integer range? | 00:28 | |
TimToady | depends on what you're gonna do with it | 00:32 | |
00:34
BigBear left
00:36
adu left
01:11
Ven joined
01:17
psch left
|
|||
japhb | .oO( What's the best way to skin^Wpet a cat? ) |
01:21 | |
01:51
adu joined
01:55
abraxxa joined
02:00
colomon left
02:03
colomon joined
|
|||
raydiak | .oO( either way, any<food catnip tranquilizers> would cut it ) |
02:15 | |
.oO( s/\</ </ ) |
02:21 | ||
02:23
rmgk_ joined,
rmgk is now known as Guest62170,
Guest62170 left,
rmgk_ is now known as rmgk
02:32
adu left
02:45
labster joined
|
|||
dalek | p: 9675236 | (Geoffrey Broadwell)++ | t/concurrency/01-thread.t: First concurrency test file, including basic thread tests. Note: hangs on nqp-m (works fine on nqp-j), so not adding to standard test list yet. |
02:55 | |
02:59
adu joined
|
|||
adu | TimToady: iterate over two lists of the same size | 03:01 | |
03:06
sirdancealot joined
03:07
atta_ is now known as atta
|
|||
raydiak | the ^$n syntax is nice for 0..$n-1, but you don't really need that to iterate over 2 lists of the same size | 03:08 | |
m: my @a = <a b c>; my @b = <x y z>; for @a Z @b -> $a, $b {say "$a,$b"} | 03:09 | ||
camelia | rakudo-moar 80b912: OUTPUT«a,xb,yc,z» | ||
03:16
khisanth_ joined
|
|||
japhb | .tell jnthn There's a hang on nqp-m (but not nqp-j) on the threading test I just added to NQP. See github.com/perl6/nqp/commit/96752368eb . | 03:19 | |
yoleaux | japhb: I'll pass your message to jnthn. | ||
03:29
xinming joined
03:40
noganex joined
03:42
noganex_ left
|
|||
dalek | p: ad5d59e | (Geoffrey Broadwell)++ | t/concurrency/02-lock.t: Second concurrency test file, including basic lock and condvar tests. Works fine on nqp-m and nqp-j, though the lock effectiveness test is a bit slow on nqp-j, and may be too fast on nqp-m. |
04:08 | |
04:13
Ven left
04:15
raiph joined
|
|||
japhb | Is there a convention for indicating testing todo's in the NQP repo? If I $*RL intervenes before I finish all the NQP concurrency tests, I'd like the next person to know what's left to cover .... | 04:18 | |
s/ I / /; | |||
04:22
telex left
04:24
telex joined
|
|||
TimToady | rosettacode.org/wiki/Penney%27s_game#Perl_6 | 04:54 | |
(Friday Night Fun!) | 04:56 | ||
05:04
raiph left,
Mso150 joined
|
|||
adu | raydiak: just Z? | 05:07 | |
where is that defined and/or documented? | 05:08 | ||
ugexe | doc.perl6.org/language/operators#infix_Z | ||
adu | ugexe: sweet, thanks | 05:12 | |
dalek | p: 8dfb270 | (Geoffrey Broadwell)++ | README.pod: Update copyright date to 2015, since we've got 2015 commits |
05:14 | |
05:25
Mso150 left,
abraxxa left
|
|||
dalek | p: 92e4dcc | (Geoffrey Broadwell)++ | t/concurrency/TODO: Add a TODO for t/concurrency to track untested bits |
05:27 | |
TimToady | r: say «Foo Bar Baz "Some Stuff"»[0] | ||
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«Foo Bar Baz» | ||
TimToady | this looks like a bug | ||
jnthn: ^^^ your quotewords code? | 05:39 | ||
adu | r: [1] + [2, 3, 4] | 05:51 | |
camelia | ( no output ) | ||
adu | r: [1] ~ [2, 3, 4] | 05:52 | |
camelia | ( no output ) | ||
adu | r: say [1] ~ [2, 3, 4] | ||
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«12 3 4» | ||
adu | r: say [1] + [2, 3, 4] | ||
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«4» | ||
adu | r: say [1].push([2, 3, 4]) | 05:54 | |
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«1 2 3 4» | ||
adu | r: say ([1].push([2, 3, 4])).perl | ||
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«Array.new(1, [2, 3, 4])» | ||
adu | say {my $x = [2, 3, 4]; $x.push(1); $x} | 05:55 | |
r: say {my $x = [2, 3, 4]; $x.push(1); $x} | |||
camelia | rakudo-parrot 80b912: OUTPUT«-> ($_? is parcel) { #`(Block|-443205019655573644) ... }» | ||
..rakudo-moar 80b912: OUTPUT«-> ($_? is parcel) { #`(Block|56118656) ... }» | |||
adu | r: my $x = [2, 3, 4]; $x.push(1); say $x.perl | 05:57 | |
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«[2, 3, 4, 1]» | ||
adu | r: my $x = [2, 3, 4]; $x.unshift(1); say $x.perl | 05:58 | |
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«[1, 2, 3, 4]» | ||
adu | finally | ||
why is the prepend method called unshift? | 05:59 | ||
06:06
jack13 joined
|
|||
ugexe | i think unshift has been so common for so long it would be strange to call it anything else | 06:09 | |
same meaning across many languages, just like shift push pop | 06:10 | ||
otherwise it might make sense to call it something else | |||
06:35
jack13 left
06:43
jack13 joined,
mr-foobar joined
07:06
jack13 left
|
|||
raydiak | adu: the idea is basically that you shift an element off the top of an array...and all the elements under it shift up to remove the gap.... | 07:08 | |
so unshift is the opposite | |||
adu | raydiak: I just figured out something for debugging | ||
raydiak | yeah? | ||
adu | so the statement "say $x.perl" is recursive | 07:09 | |
and I changed "<operands=inclusive-or-expression>" to "<operands=.inclusive-or-expression>" and the print output finished in 10% of the the first time | |||
because it was printing log(n) fewer lines | 07:10 | ||
pjablons | adu: One warning about say $x.perl: If you've got circular references, it'll infinite loop. | ||
adu | I'll try to do as little debugging as possible then | 07:11 | |
raydiak | yeah I actually had something started to fix that, but it's still wildly experimental and so only exists on my own hard drive | ||
adu | raydiak: it's not so much a bug as an O(n) problem | 07:12 | |
there are like 20 precedence levels in C, and if each level was assigning 4 members on the match object, then that's 4^20 times as many things to print | 07:13 | ||
well, I might have overexaggerated | 07:14 | ||
raydiak | ah yeah I could see that becoming problematic | ||
adu | so now I'm just assigning 2: $operator, and @operands | ||
so now it's 2^20 | 07:15 | ||
well, 20 | |||
anyways | |||
forget the math | |||
raydiak | exponentially less, yes | ||
adu | I guess the general rule is not to alias | 07:16 | |
raydiak | for printing it all out, I guess...maybe just better to be more selective about what you print for debugging? | 07:17 | |
adu | When I have the AST working, I can see that being a possibility, like only structs or only functions | 07:18 | |
also, I'm wondering if there's a way to have multiple parser actions | 07:19 | ||
raydiak | like to accomplish what? | 07:20 | |
adu | like can you have parser actions that get run after the grammar is parsed and after the AST actions have completed? | ||
like lots of AST libraries use the visitor pattern | 07:21 | ||
like visit_Expression, visit_IfStatement, etc. | |||
and you implement those if you are interested to get that info | |||
JimmyZ | didn't we have method sym:<if> { ... } ? | 07:22 | |
method EXPR() { } | 07:23 | ||
raydiak is reading en.wikipedia.org/wiki/Visitor_pattern and hoping to catch up :) | |||
adu | JimmyZ: yes, but I'm currently using that for building the AST, but what about AST consumers? | ||
JimmyZ: C11Lexer is a grammar, C11Parser is a grammar that inherits C11Lexer ("is" in Perl6 speak), CAST is a bunch of classes for representing C source, and CASTActions is a class which can be passed to the parse() grammar method, but there doesn't seem to be a place for AST consumers to go in the Perl6 grammar model | 07:25 | ||
TimToady | rosettacode.org/wiki/Heronian_triangles | ||
TimToady thinks the Perl 6 solution is rather more readable than the Python solution, but it is possible he is slightly prejudiced in the matter... | 07:27 | ||
07:32
Woodi joined
|
|||
raydiak | adu: perhaps something you could implement as a separate module? you are right that I don't think we have a "grep the tree you made with actions" construct, per se | 07:37 | |
if I follow correctly | |||
adu | yeah, certainly possible to hack something up | ||
07:37
xfix joined
07:38
kaare__ joined
|
|||
adu | I think the way Python does it is getattr(self, 'visit_' + typename) | 07:38 | |
raydiak | oh we certainly support dynamicisim of that kind, if that's all it requires | 07:39 | |
xfix | Why this Perl 6 solution uses "sort *.fmt('%05d')"? | 07:40 | |
For me it looks like some sort of hack. | |||
raydiak | xfix: not sure what you mean...what is wrong with it? | 07:42 | |
xfix | Why is a number changed into a string in order to sort it? | 07:43 | |
raydiak | to change how it sorts | ||
oh you mean because it should work without it? | 07:44 | ||
xfix | (well, ok, it's list, but still) | ||
TimToady | yes, that's a hack, because it's not (yet) smart enough to figure out when sorting arrays that the individual columns are numeric | 07:45 | |
I thought it used to do that, but perhaps I'm confabulating | 07:46 | ||
xfix | So, it's not implemented. | ||
In Python, i can write sorted([(1, 10), (1, 9)]), and get [(1, 9), (1, 10)]. | 07:47 | ||
TimToady | supposed to work that way here too | ||
maybe I'm remembering it working in niecza | |||
raydiak sees time, goes to make some meaningless commit for the github streak...why? not sure... | 07:48 | ||
TimToady | p6: say ([1,10], [1,9]).sort | 07:50 | |
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«1 10 1 9» | ||
TimToady | n: say ([1,10], [1,9]).sort | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«(signal ABRT)Stacktrace: at <unknown> <0xffffffff> at (wrapper managed-to-native) object.__icall_wrapper_mono_gc_alloc_string (intptr,intptr,int) <0xffffffff> at (wrapper alloc) object.AllocString (intptr,int) <0xffffffff> at string…» | ||
TimToady | oh, yeah, it's busticated | ||
raydiak | now 1 year and 1 day since last niecza commit...about to be 2 days | 07:51 | |
TimToady | m: say [1,10] cmp [1,9] | 07:57 | |
camelia | rakudo-moar 80b912: OUTPUT«Less» | ||
raydiak tries the heronian triangles example...after a couple minutes of waiting, wonders what kind of a machine TimToady was running this on | |||
TimToady | that's the basic problem | ||
no list version of cmp | |||
odd omission | 07:58 | ||
raydiak | oh there it came back...nicely formatted, TimToady++ | ||
heh now I see why you were comparing it to python...those are the only two solutions so far | 08:00 | ||
m: say [1,2] cmp [1,1] | 08:04 | ||
camelia | rakudo-moar 80b912: OUTPUT«More» | ||
raydiak | m: say [1,1] cmp [1,2] | ||
camelia | rakudo-moar 80b912: OUTPUT«Less» | ||
raydiak | m: say [1,1] cmp [1,1] | ||
camelia | rakudo-moar 80b912: OUTPUT«Same» | ||
raydiak | hrm seems right | 08:05 | |
xfix | raydiak, that's because it stringifies them to "1 1" and "1 2". | ||
raydiak | oh | ||
Timbus | its comparing the elements string-wise i think | ||
ah. beaten | |||
raydiak | m: my $a = 0 but '9'; [1,$a] cmp [1,1]; | 08:07 | |
camelia | ( no output ) | ||
raydiak | m: my $a = 0 but '9'; say [1,$a] cmp [1,1]; | ||
camelia | rakudo-moar 80b912: OUTPUT«More» | ||
raydiak | yeah I don't even know what that *should* do :) | ||
TimToady | > say [1,10] cmp [1,9] | 08:09 | |
More | |||
spectesting... | 08:11 | ||
Timbus | he did it :o | ||
08:14
darutoko joined
|
|||
TimToady | m: multi sub infix:<cmp>(@a, @b) { (@a Zcmp @b).first(&prefix:<?>) || @a <=> @b }; say [1,10] cmp [1,9] | 08:17 | |
camelia | rakudo-moar 80b912: OUTPUT«More» | ||
dalek | ast: 53ec502 | TimToady++ | S03-operators/cmp.t: some tests for cmp of numeric lists |
08:32 | |
kudo/nom: e4e9cf8 | TimToady++ | src/core/List.pm: cmp on lists should distribute to columns |
|||
kudo/nom: 167f5f4 | TimToady++ | src/core/List.pm: oops, <=> can already return Same |
|||
Timbus | hmm. would it be more correct to compare by length first? | 08:36 | |
08:37
ribasushi joined
|
|||
Timbus | no | 08:37 | |
TimToady | I don't think so | ||
m: say "ac" leg "abd" | |||
camelia | rakudo-moar 80b912: OUTPUT«More» | ||
Timbus | pity, because that would be a lot faster :p | ||
TimToady | not if one of the lists is huge :) | ||
raydiak | or infinite | 08:38 | |
TimToady | that's a kind of huge :) | ||
where it gets a little weird is here: | 08:39 | ||
m: say [1,10] cmp [1,10,-12345] | |||
camelia | rakudo-moar 80b912: OUTPUT«Less» | ||
Timbus | well, that was my initial thought, but its much the same thing in your abc example | 08:40 | |
TimToady | but I think that's put-uppable-with | ||
raydiak | I agree with it as is, though can't say why | 08:41 | |
Timbus | well its not the same but. ugh. i mean the wierdness | ||
TimToady | well, currently it's getting the right answer for the wrong reason | 08:42 | |
but it'll get the same right answer after recompile | |||
what you want is some way of adding 0 xx * to the shorter one sometimes | |||
but only if you know you're doing numeric comparisons | 08:43 | ||
anyway, I've updated the RC entry to remove the hack now :) | 08:44 | ||
xfix++ for prodding me to fix it | |||
raydiak considers that his instinctual reaction may be due to thinking of this list elements like digits of numbers, which is a flawed comparison since there are no numerals < 0 | 08:45 | ||
Timbus | .floor == .ceiling ?? .floor !! 0 | 08:46 | |
what | |||
oh its an int check | |||
.. what | |||
.floor == .ceiling ?? $_ !! 0 | 08:47 | ||
xfix | I probably would write it as $_ %% 1, but that's just me. | ||
Timbus | $_.Int == $_ ?? $_ !! 0 | ||
xfix | (there is more than one way to do it) | ||
$_ %% 1 ?? $_ !! 0 | 08:48 | ||
Timbus | i just dont like the method calls | ||
xfix | Well, .Int is method call. | 08:49 | |
raydiak is almost surprised we don't have methods for super-common things like integer value checks | |||
JimmyZ | m: say (Int) '3x' | ||
camelia | rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/5ahtVTiw26Two terms in a rowat /tmp/5ahtVTiw26:1------> say (Int) ⏏'3x' expecting any of: infix stopper infix or meta-infix postfix…» | ||
xfix | This is not C language. | 08:50 | |
JimmyZ | m: say (Int)'3x' | ||
camelia | rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/7KCT6Wnw4YTwo terms in a rowat /tmp/7KCT6Wnw4Y:1------> say (Int)⏏'3x' expecting any of: infix stopper infix or meta-infix postfix…» | ||
Timbus | I think you want Int() | ||
moritz | m: say '3x'.Int | 08:52 | |
camelia | rakudo-moar 80b912: OUTPUT«Cannot convert string to number: trailing characters after number in '3⏏x' (indicated by ⏏) in method Int at src/gen/m-CORE.setting:13863 in method Int at src/gen/m-CORE.setting:6193 in block <unit> at /tmp/vDtBKntvlS:1» | ||
08:53
isBEKaml joined
|
|||
xfix | m: 0.; | 08:53 | |
camelia | rakudo-moar 80b912: OUTPUT«===SORRY!===Decimal point must be followed by digitat /tmp/nMWMrwxDri:1------> 0.⏏;Missing semicolon.at /tmp/nMWMrwxDri:1------> 0.⏏;» | ||
TimToady is actually a bit surprised that sqrt seems to return an exact integer result under floating point | |||
xfix | Why it tells "Missing semicolon" when it's right here? | ||
TimToady | std: 0.; | ||
camelia | std f9b7f55: OUTPUT«===SORRY!===Decimal point must be followed by digit at /tmp/hWLlqCYscn line 1:------> 0.⏏;Confused at /tmp/hWLlqCYscn line 1:------> 0.⏏; expecting any of: dotty method or postfix…» | ||
TimToady | STD is better at getting confused :) | 08:54 | |
08:54
rindolf joined
|
|||
TimToady | it's also a lot better at saying what it was expecting | 08:55 | |
xfix | TimToady, IEEE 754 standard requires correct rounding when the result of sqrt is integer as long the square root value isn't huge enough to overflow. | 08:56 | |
08:56
isBEKaml left
|
|||
TimToady is probably remember some pre-IEEE implementations :) | 08:56 | ||
*ing | |||
I don't think a Cray-1 guaranteed that, for instance | 08:57 | ||
not that I ever programmed one... | 08:58 | ||
xfix | IEEE actually requires that addition, subtraction, multiplication, division, and square root must work identically on every implementation (it even gives algorithm for these). | ||
TimToady | and Perl 6's hypers are really in there for Cray vector processing, in my mind :) | 09:00 | |
and a Cray might even have enough memory to run Perl 6... | 09:01 | ||
and when I say Cray, I mean Cray-1, or possibly a Cray-2 :) | 09:02 | ||
Timbus | or a Cray-Z | ||
timotimo | it's amazing that anything has enough memory to run perl 6 nowadays :P | ||
xfix | How much memory is needed? | 09:03 | |
JimmyZ | Crazy | ||
TimToady | all of it! | ||
xfix | I've ancient phone with 120MB of RAM (not used by the operating system). Is it enough? | 09:04 | |
TimToady | actually, Cray-1 only had like 8 megawords | ||
timotimo | xfix: that's enough for a hello world | 09:05 | |
Timbus | someone in here tried to compile perl6 on his phone. a nexus 4 | ||
that was a no-go | |||
xfix | (my phone is more ancient than that) | ||
timotimo | we have moarvm itself run on a jolla phone, but compiling rakudo takes a whole lot more ram | ||
Timbus | yeah, 160mb is like HTC magic or palm pre | ||
xfix | Obviously I wouldn't want to compile Rakudo right on my phone, way too slow for that. | 09:06 | |
timotimo | hmm. a hello world takes 0.2 seconds nowadays? wasn't that number lower at some point? | ||
TimToady | when we had the setting set a little too lazy, I think | ||
xfix | That panda didn't work. | 09:07 | |
But I wonder why it didn't... | |||
JimmyZ | and too lazy serialization ... | ||
xfix | The ideal would be Perl 6 running in 0 seconds, but that may be impossible. | 09:08 | |
(after rounding to hundrenth of seconds, of course) | |||
Perl 5 on my computers starts in 0.004 seconds (after caching Perl 5 into RAM). | 09:09 | ||
my computer* | |||
JimmyZ | m: say floor(0.3), 'seconds' | ||
camelia | rakudo-moar 80b912: OUTPUT«0seconds» | ||
JimmyZ | m: say Int(0.3) | 09:11 | |
camelia | rakudo-moar 80b912: OUTPUT«0» | ||
09:18
perl007 left
|
|||
TimToady | zzz & | 09:19 | |
JimmyZ | good night | 09:20 | |
09:29
adu left
09:38
rurban joined
09:52
Sqirrel left
|
|||
rindolf | TimToady: night. | 09:53 | |
pjablons | I'm sure this is a stupid question, but can anyone give me a quick overview of actually using blobs? I can't figure out how to modify them or really do much of anything with them. Of course, I could be being an idiot and using the wrong class to begin with | 10:06 | |
10:07
[TuxCM] joined
|
|||
FROGGS_ | m: my $b = buf8.new; $b[0] = 42; say $b; say $b ~~ Blob | 10:09 | |
camelia | rakudo-moar 80b912: OUTPUT«Buf[uint8]:0x<2a>True» | ||
FROGGS_ | pjablons: Blobs are immutable, but you can use a buf* | ||
masak / moritz / whoever is here: I am reading this perl6maven.com/tutorial/running-ext...from-perl6 | 10:10 | ||
pjablons | Huh. Now I'm curious as to the purpose, other than that it's just nice to have an immutable object sometimes | 10:11 | |
FROGGS_ | masak / moritz / whoever is here: and the first thing that comes to my mind is, why don't we throw exceptions when shell/run/pipe fails? | ||
pjablons: Blob is just a role that is just used by buf types | 10:12 | ||
pjablons | that actually makes perfect sense | ||
FROGGS_ | pjablons: it just implements functionality, and one should not use it directly I guess | ||
10:14
Ven joined
10:20
LLamaRider joined
|
|||
masak | good antenoon, #perl6 | 10:21 | |
FROGGS_: yes, maybe we should. | 10:22 | ||
FROGGS_: makes sense -- it would be propagating an outright error from a sub-something. | |||
10:24
virtualsue joined,
sirdancealot left
|
|||
masak | FROGGS_: and it seems to me to be a "logical extension" of making `EVAL` transparent to exceptions. | 10:25 | |
(I haven't read the post) | |||
FROGGS_ | k | 10:27 | |
I'll think about a possible shell/run/pipe api | 10:28 | ||
10:28
sqirrel_ joined
|
|||
moritz | FROGGS_: we should throw an exception | 10:29 | |
pjablons: doc.perl6.org/type/Blob | 10:30 | ||
FROGGS_ | that also saves the .status != 0 check the user would have to add every time | ||
moritz | hm | 10:31 | |
we should throw an exception when the pipe can't launch the command | |||
not sure if we should if status != 0 | 10:32 | ||
FROGGS_ | we could have X::Exec::Spawn and X::Exec::Run or so | ||
well, we have to make sure that we actually know what failed... | |||
but I think we have that under control at the vm level | |||
Ven | o/, #perl6 | 10:36 | |
masak | what moritz++ said. | 10:37 | |
status != 0 is not an exceptional condition -- that's a process completing normally, but indicating that it wasn't too pleased with something. | 10:38 | ||
10:39
molaf joined
|
|||
JimmyZ | z same as z # doc.perl6.org/type/Blob#method_unpack | 10:40 | |
typo? | |||
masak | haha | ||
masak hopes so | |||
I mean, it's not *wrong*, but... :P | |||
10:40
rurban left
|
|||
JimmyZ | :) | 10:40 | |
masak .oO( xkcd.com/703/ ) | 10:41 | ||
JimmyZ | xkcd.com/1386/ | 10:43 | |
10:49
virtualsue left,
jack_rabbit left
|
|||
dalek | c: a5f256e | moritz++ | lib/Type/Blob.pod: [Blob] fix typo/think, JimmyZ++ |
10:51 | |
masak | having said that, there should probably be an easy/idiomatic way to promote a nonzero status to an exception... | ||
moritz | :assert(*.status == 0) | 10:52 | |
10:52
Ven left
|
|||
moritz | though that probably would give crappy exceptions | 10:52 | |
maybe :expected-status(0) | 10:58 | ||
and if the exit status deviates from the expectation (if set), an exception is raised | |||
on a completely unrelated note, I've recently been thinking about "enterprise" applications | 11:00 | ||
and IME, the main difference between "enterprise" and "normal" applications is that the former often need to integrate with far more other systems | 11:01 | ||
11:01
anaeem1 joined
|
|||
moritz | and thus need lots of features like pluggable authentication, integration with CRMs, billing apps etc. | 11:01 | |
11:01
sqirrel_ left
|
|||
moritz | and often multitenancy, role-based authorization, audit trails etc | 11:02 | |
it would be very nice to have some kind of framework/library that would make it very easy to add such features to an application | |||
though I have no idea how such a thing would look like, arechitecture-wise | 11:03 | ||
is there any prior art for that? | |||
(I know there are modules for talking to LDAP, and for logging etc., but I'm aiming for a higher level) | 11:04 | ||
11:12
anaeem1 left
11:20
pecastro joined
|
|||
masak | moritz: I have no answers right away. but it's a very interesting question. | 11:25 | |
11:25
pecastro left
|
|||
masak | it made me think of (the near miss, I guess) www.amazon.com/Perl-Medic-Transform...B00EPFBSXE | 11:25 | |
but yeah, "enterprise" is in the same tag cloud as "legacy" (because there's existing code, not always of good quality), "integrate" (because you have to talk to data sources, not always your own), and "anti-corruption layer" (because you may have integrity demands the rest of the world doesn't). | 11:28 | ||
xiaomiao | hrm, doesn't enterprise just mean "horribly bad code that costs tons of money" ? | 11:30 | |
xiaomiao remembers one vendors' documentation suggesting to unconditionally open port 22 on the firewall (nope) and using password authentication (nope nope nope) | |||
masak | xiaomiao: I think there's a lot of scorn out there on the Intertubes about enterprise. | 11:34 | |
xiaomiao | masak: mostly because it's rare that one sees 'enterprise' stuff that works | ||
masak | but the fact remains that it's a real thing with real problems and needs, and not something we *can* dismiss as a culture. | ||
xiaomiao | I mean, we had a ~300kEur SAN that needed EVERY disk reflashed because of a vendor error | ||
so one admin spent most of a weekend in the datacenter manually flipping disks | |||
masak | I'm not disputing that a lot of enterprise stuff is mind-numbingly stupid. | ||
xiaomiao | or the HA router that couldn't handle the packet load ... wtf? | 11:35 | |
masak | but it's not a point I find especially thrilling either. | ||
xiaomiao | well, why would I spend lots of money if it fails harder than the 'cheap' alternatives? | ||
masak | there's so much in terms of possible improvements we could focus on. | ||
FROGGS_ | we've got SAP at work :D | ||
masak | and I bet the Venn diagram of that and enterprise doesn't have an empty interspection. | ||
xiaomiao | yes, and closed-source blackboxen are not the way forward | 11:36 | |
FROGGS_ | and also stuff from other vendors that "work nicely" with SAP | ||
xiaomiao | FROGGS_: augh | ||
masak | the only way open source can win is to provide decent, workable alternatives to closed-source blackboxen. | ||
xiaomiao | FROGGS_: I am 'downstream' of two SAP deployments, which means that I had to adapt our mail filtering because they generate bad emails | ||
masak | I wish I could say the open-source world has been stellar in this regard so far. | 11:37 | |
xiaomiao | FROGGS_: and it's not fixable, so EVERY downstream customer gets to fix their setup to fix the shitcrap that SAP barfs around | ||
masak is currently making his way through queue.acm.org/detail.cfm?id=2349257 | |||
xiaomiao | masak: that means we also need proper investment | ||
11:37
LLamaRider left
|
|||
xiaomiao | I mean, everyone who uses opensource should donate a tiny bit every year ... | 11:37 | |
xiaomiao donates tons of time | |||
11:40
rurban joined
11:43
pmqs_ left
11:46
perl007 joined
|
|||
perl007 | p6: say test; | 11:46 | |
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUndeclared routine: test used at line 1» | ||
perl007 | p6: say 'test'; | ||
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«test» | ||
perl007 | p6: say 'adfdfadf' ~~ /adf/; | 11:47 | |
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«「adf」» | ||
perl007 | p6: say 'adfdfadf' ~~ m:g/adf/; | ||
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«「adf」 「adf」» | ||
perl007 | rakudo: say 'adfdfadf' ~~ m:g/adf/; | 11:48 | |
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«「adf」 「adf」» | ||
11:50
perl007 left
|
|||
moritz | xiaomiao: there's lots of shitty code everywhere, not jst in enterprise | 11:51 | |
xiaomiao | moritz: indeed, but open stuff I can fix | 11:52 | |
or I can hire someone to fix it | |||
all a matter of control, I don't like depending on moody people ;) | |||
moritz | xiaomiao: well, often enough, enterprise software is developed in-house, so "you" (as the company using it) can stil fix it | 11:53 | |
xfix | But... Windows 95 server running our COBOL server software still works for us... There is risk in updating the software, why do so, when the current one works. | ||
moritz | also, open source enterprise software also exists | 11:54 | |
maybe we have different ideas what "enterprise" means | |||
xiaomiao | moritz: hahahaha | ||
moritz: that was funny | 11:55 | ||
if I could fix our inhouse software ... I guess I'd be busy for years, but that would make life so much less aargh | |||
11:55
jluis joined
|
|||
moritz | xiaomiao: well, I'm employed to develop/maintain/enhance inhouse software (some of it based off open source products, others built with open source tools) | 11:56 | |
FROGGS_ | I did that just recently... I made an app that replaces an SAP addition from another vendor that is 'about to be done' since about four years | 11:57 | |
xiaomiao | I'd be happy if the hardware we had were kinda ... sane | 11:58 | |
FROGGS_ | and we pay consultants and that vendor these four years of course, and also some of our ppl spend a lot of their time | ||
xiaomiao | but once bought it's hard to just replace it because "it's ugly" | ||
FROGGS_: project management fail? I mean - payment tied either to deliverables, deadlines, or some other progress | |||
11:58
sqirrel_ joined
|
|||
FROGGS_ | xiaomiao: one or two bad decisions five or six years ago... | 11:59 | |
I dunno what the payment is tied to actually | |||
xiaomiao | FROGGS_: plus no proper project management since then ;) | ||
FROGGS_ | exactly | ||
xiaomiao is usually janitor - clean up other people's mistakes | |||
FROGGS_ | there is no person that is responsible for the entire system | 12:00 | |
xiaomiao | can make one a leeeeeeettle bit cynical and grumpy | ||
... why not? | |||
moritz | xiaomiao: me too, but I also leave mistakes behind for others to clean up, I guess | ||
FROGGS_ | xiaomiao: probably nobody of the higher ppl wanted to do the job... | ||
there are only partial responsibilities... like managing that an interface from SAP to another system is implemented | 12:01 | ||
moritz | FROGGS_: apply for the job of responsibility for the total system; demand more pay :-) | ||
FROGGS_ | and like three or four similar positions, but since there is no coordination in between these ppl, there is not much happening | ||
moritz: err no, I like my job too much :o) | 12:02 | ||
moritz | FROGGS_: ah, I know that :-) | ||
FROGGS_ | and I don't like that system to get in place, because what it can potentially do is crap | ||
moritz | FROGGS_: at $work, nobody feels responsible for the collection of usage/traffic data, and I'd likely be one of the most qualified people to take responsibility, but then it would eat too much of my programming time, so I don't | 12:03 | |
FROGGS_ | it just could do 10% of what our self made system can... | ||
12:06
pyrimidi_ joined
12:07
denis_boyun_ joined
12:08
jack13 joined
|
|||
xiaomiao | usually I am root | 12:10 | |
so I have an indirect responsibility for making things work | 12:11 | ||
"I'll be the stone in your shoe ... " :D | |||
12:16
jack13 left
|
|||
Woodi | hallo today :) | 12:25 | |
FROGGS_ | hi Woodi | 12:26 | |
masak .oO( usually I am Groot ) | |||
FROGGS_ | masak++ | ||
rindolf | Woodi: hi. | ||
Woodi: what's new? | |||
FROGGS_ | rindolf: the year :D | 12:27 | |
rindolf | FROGGS_: true that. | ||
What's new with you. | |||
FROGGS_ | I've no idea | 12:28 | |
Woodi | moritz: I think Open-Source-world didn'd discovered Kerberos... unfortunatly Microsoft did, they married it to the LDAP server and got "domain" stuff... I realy wish something like that done from scratch (not connected to MS architecture) | ||
masak | hi rindolf -- haven't seen one of your awkward IRC greetings since last year ;) | 12:29 | |
Woodi | rindolf: latest news is that I (nearly) finished 2014 raports :) | ||
rindolf | Woodi: what are raports? | ||
masak | typo of "reports". | ||
maybe means bookkeeping. | |||
Woodi | rindolf: online translator call it "stacktaking". you know, bakery ingradients from 2014 :) | 12:31 | |
rindolf | Woodi: stacktaking? | ||
Woodi: and I don't know what you mean. | |||
masak is confused, too | 12:32 | ||
Woodi | yes :) mandatory thing :) | ||
masak | "taking stock"? | ||
as in, going through your inventory and counting things? | |||
Woodi | yes :) boring thing | 12:33 | |
I wonder do camera with edge detection can automate it :) | |||
12:33
denis_boyun_ left
|
|||
masak .oO( "taking stack" must be a LIFO process, as opposed to "taking queue"... ) | 12:33 | ||
Woodi | also: is Kerberos safe thing in XXI century ? | 12:34 | |
moritz | Woodi: I heard nothing negative about it (security wise), which is a rather good sign :-) | ||
Woodi | same. and this in some % worry me. | 12:35 | |
masak | it sometimes amuses me how close Polish culture is to Roman culture. ("XXI century"). I guess it's because the Catholic church is a big things in .pl | 12:36 | |
Woodi | masak: I was sure XXI have science-fiction origin, not Roman, even European... | 12:37 | |
masak | Woodi: well, then you are wrong ;) | 12:38 | |
Woodi: en.wikipedia.org/wiki/Roman_numerals | |||
Woodi | masak: and I would be happy to Catholic church be a bigger thing everywhere :) becouse it menans "good" for me :) | ||
masak | there's no accounting for taste. | 12:39 | |
Woodi | ah, notation | ||
masak | it's pre-positional numerals. | 12:42 | |
very low-tech. | |||
Woodi | do we want something like GIO in Gnome or KIO in KDE ? en.wikipedia.org/wiki/GIO_%28software%29 | 12:45 | |
with channels and async stuff | |||
xiaomiao | Woodi: if ldap were less horrible I might even almost agree with you | 12:47 | |
Woodi | xiaomiao: why horrible ? :) I like it | 12:48 | |
xiaomiao | Woodi: the idea is kinda neat, but the implementations ... teh zomg wtf ur has wriet codez?!??! | ||
openldap for example is just like, I have no idea what to do, let's throw paper airplanes | 12:49 | ||
nine | Woodi: I liked LDAP until I tried storing our employee's date of birth in our LDAP server. | ||
xiaomiao | errors? eh? uhm ... you mean warning? maybe? | ||
Woodi | xiaomiao: which LDAP ? OpenLDAP, Fedora, ActiveDirectory, ... ? | ||
xiaomiao | Woodi: AD is off limits ;) and openldap is just really bad badness | 12:50 | |
Woodi: no idea what you mean with "Fedora", but e.g. "389 directory server" or what it was called had dependencies that made me nope away very fast | |||
Woodi | xiaomiao: LDAP is just pre-XML, object-like database for READs :) | 12:51 | |
12:51
pmurias joined
|
|||
xiaomiao | Woodi: wrong, it's hierarchic DB | 12:51 | |
pmurias | hi | 12:52 | |
Woodi | 389 was Netscape then Sun probably :) but performance wise it is good | ||
pmurias | what is redpanda? | ||
xiaomiao | which is awesome, but no one made a sane implementation yet (well duh, ASN.1 etc?) | ||
Woodi | xiaomiao: yes, and hierarchical :) ldif format is object like | ||
xiaomiao: also it is OSI DAP adopted to TCP, it cannot be simple :) exactly like certificates we use | 12:53 | ||
xiaomiao | some days I wonder how expensive it would be to hire a dozen smart people and rebuild such infrastructure components | 12:54 | |
Woodi | xiaomiao: as opensource project with voluntiers ? could be cheap initially :) | 13:00 | |
pmurias | how can I switch which backend is used for perl6? | 13:01 | |
Woodi | I sometimes wonder: can security live without ASN.1 ? | ||
xiaomiao | Woodi: well, you'd need to hire at least one fulltime project manager, and one or two developers to keep things going | 13:02 | |
FROGGS_ | pmurias: do 'make m-runner-default-install' for moarvm for example in the rakudo build dir | ||
pmurias | nine: how should I obtain a suitable python for use with Inline-Python? | 13:07 | |
FROGGS_: any idea what redpanda is? | 13:08 | ||
FROGGS_ | pmurias: it was intended to be like cpanminus | 13:10 | |
nine | pmurias: on openSUSE I just install the python and python-devel packages. | 13:12 | |
pmurias | nine: the debian one doesn't work... | 13:14 | |
nine | pmurias: need more info | ||
pmurias | it's lacking the -fpic flag | 13:15 | |
-fPIC flag | |||
I'm setting up pyenv but I'm not sure if it will build one with the -fPIC? | |||
nine | pmurias: I'm sure there's an easier way. Perl 5's Inline::Python has the same requirement and I have cpantesters reports from Debian boxes where it works: www.cpantesters.org/cpan/report/b42...ea56d63282 | 13:19 | |
13:20
denis_boyun_ joined
|
|||
nine | pmurias: you do have the python-dev package installed? | 13:20 | |
pmurias | nine: yes | 13:21 | |
the package claims to contain header files and static library | |||
nine | pmurias: which package does your libpython2.7.so come from? | 13:23 | |
Seems like there is a libpython2.7 package on debian. | 13:26 | ||
pmurias | I have that package installed | 13:29 | |
nine: there is one from libpython-2.7 and libpython-2.7-dev | 13:33 | ||
13:33
pyrimidi_ left
13:34
pyrimidine joined
|
|||
nine | pmurias: what Debian version do you use? | 13:35 | |
pmurias | jessie | ||
nine | pmurias: I'm sorry, I'm a bit at a loss. I've never used Debian myself. | 13:41 | |
13:41
sqirrel_ left
|
|||
nine | pmurias: maybe people in #python can help you? | 13:42 | |
moritz | masak: my random musings on enterprise software: gist.github.com/moritz/d086a8372adf69cd8b65 | 13:47 | |
13:48
raiph joined
|
|||
nine | Did the push URL for dalek change? | 13:48 | |
Ah found it in the IRC log | 13:50 | ||
pmurias | pyenv solved the problem | 13:55 | |
shouldn't rakudo avoid using color when piped into a file? | 13:56 | ||
FROGGS_ | yes, it should | 13:57 | |
Woodi | pmurias: what pyenv is ? | 13:58 | |
pmurias | something like perlbrew for python | ||
nine: pastie.org/981096 | 13:59 | ||
nine: the tests fail with this error message | |||
nine | Sorry, there is no pastie #981096 or it has been removed. | 14:01 | |
dalek | Heuristic branch merge: pushed 43 commits to rakudo/newio by lizmat | 14:02 | |
pmurias | nine: pastie.org/9810925 | ||
nine | pmurias: I guess you're on a current rakudo? I'm still on 2014.11-27-ga3cf223, so something may have changed in the mean time and I need to update Inline::Python. | 14:04 | |
pmurias | I'm on a newer one | 14:05 | |
would it be possible to have panda use some service on p6c.org instead of parsing a json file? | 14:08 | ||
FROGGS_ | what's the difference? | ||
14:10
Ven joined
14:11
Mso150 joined,
Ven left
14:12
Ven joined
|
|||
Woodi | moritz: lets create something what UBL was meant to be :) en.wikipedia.org/wiki/Universal_Bus...s_Language UE was trying to do this some years ago. now they are trying more from-the-top approach :) www.peppol.eu/news/ec-directive-on-...rocurement | 14:12 | |
pmurias | FROGGS_: parsing a big json file everytime is slow | 14:13 | |
FROGGS_: panda help takes over 3 seconds | |||
FROGGS_ | but making hundreds of queries to reduce the json file(s) will be slower | ||
well, ideally we don't need to parse that json file at all for displaying the help msg | 14:14 | ||
14:15
Ven left
|
|||
nine | Is hack.p6c.org/dalek?t=freenode,perl6 the current github webhook url? | 14:15 | |
Woodi | FROGGS_, pmurias: maybe debian approach: download files with updates, parse and put into database | 14:17 | |
dalek | ast: 9b2d779 | lizmat++ | S10-packages/precompilation.t: Should work with just @*INC |
||
pmurias | Woodi: the cpanm approach of just quering a service seems better | 14:18 | |
FROGGS_ | pmurias: feel free to fork panda, and open PRs one you have something that works (better) | 14:19 | |
dalek | Heuristic branch merge: pushed 29 commits to roast/newio by lizmat | ||
14:20
kjs_ joined
14:22
ggoebel111111117 left
|
|||
dalek | line-Python: c1cf331 | (Stefan Seifert)++ | lib/Inline/Python.pm6: Stop Python preventing Ctrl+C from killing the process |
14:22 | |
lizmat | nine: are you aware that Inline::Perl5 currently doesn't build on rakudo ? | 14:23 | |
nine | lizmat: no. But I suspect it will be the same problem pmurias just told me about in Inline::Python | 14:24 | |
lizmat hopes so | 14:25 | ||
dalek | line-Python: 82cab41 | (Stefan Seifert)++ | / (3 files): Make Perl subclasses more transparent to Python Python's Qt bindings use some kind of low level introspection to find out what methods a Python subclass of a Qt class overrides. So in order to have it call the methods of a Perl 6 subclass of a Qt class, we'd have to hook into this mechanism. Unfortunately there doesn't seem to be a way to do that. So instead, I now create a Python class for every Perl 6 class inheriting from Python classes. This generated class uses the standard Python inheritance mechanism and has proxy methods for all methods the Perl 6 subclass provides. This way even PyQt's low level mingling finds all the information it needs and we can write programs using PyQt in Perl 6 :) |
14:30 | |
line-Python: b484a91 | (Stefan Seifert)++ | pyhelper.c: Avoid causing another failure if we cannot find the class name for generating exception messages. |
14:31 | ||
pmurias | nine: I managed to fix the error, should I fork on github and make a pull request? | 14:39 | |
nine | pmurias: oh that would be nice! | 14:40 | |
nine is currently upgrading his rakudo | |||
dalek | kudo/newio: e4e9cf8 | TimToady++ | src/core/List.pm: cmp on lists should distribute to columns |
14:41 | |
kudo/newio: 167f5f4 | TimToady++ | src/core/List.pm: oops, <=> can already return Same |
|||
kudo/newio: f3f6641 | lizmat++ | src/core/CompUnit.pm: Fix brokennes due to merge failure |
|||
kudo/newio: 44cb1d7 | lizmat++ | src/core/CompUnitRepo.pm: Directories in newio always have a trailing / |
|||
kudo/newio: 0ae5d10 | lizmat++ | src/core/List.pm: Merge branch 'nom' into newio |
|||
14:45
Mso150 left
|
|||
pmurias | nine: made a pull request | 14:45 | |
dalek | line-Python: 1e5a4cb | (Pawel Murias)++ | lib/Inline/Python.pm6: Fix to work on current rakudo. |
14:49 | |
line-Perl5: 5a1b1ea | (Stefan Seifert)++ | lib/Inline/Perl5.pm6: Fix "Shape declaration with () is reserved" on current Rakudo |
14:50 | ||
nine | I still get "Missing serialize REPR function for REPR ReentrantMutex" in precomp.t in both Inline::Perl5 and Inline::Python | ||
dalek | kudo/newio: f52e0fc | lizmat++ | src/core/Deprecations.pm: Fix another merge gone wrong |
14:51 | |
nine | But I cannot see where I'm at fault here. Neither Inline::Perl5 nor Inline::Python do much when just being use'd and precomp.t does just that. | 14:57 | |
14:59
H2O1 joined
15:03
Rounin joined
|
|||
FROGGS_ | nine: I have the same problem in v5 | 15:03 | |
nine: problem is (I think) that CompUnit.load_module uses a Lock, and when you load a module at BEGIN/EXPORT time, then you run into trouble | 15:04 | ||
15:05
H2O1 left
15:06
Mso150 joined
|
|||
FROGGS_ | this one I think: github.com/rakudo/rakudo/blob/nom/...epo.pm#L34 | 15:06 | |
hmmm, is it possible that both Inline::Python and v5 are affected since June? See github.com/rakudo/rakudo/commit/9c...ce973991cc | 15:07 | ||
nine | FROGGS_: Inline::Python has not existed yet in June. And on Rakduo 2014.11-27-ga3cf223 it worked for me. | 15:08 | |
FROGGS_ | hmmmm | ||
then we should bisect the problem I fear | |||
lizmat | FROGGS_: I don't think "load_module" is actually used ? | 15:13 | |
but if it is, don't we want to be sure only one thread is loading a specific module at a time ? | |||
FROGGS_ | lizmat: I think it is used because we replace the current module loader at setting's end, and yes, we only want to load one module at a time | 15:14 | |
but... something wants to serialize that Lock, and that's just weird and needs to be tracked down | |||
lizmat | welcome to my world for the past N months :-) | 15:15 | |
FROGGS_ | and it is good to know that 2014.11-27 worked | ||
:o) | |||
lizmat | FROGGS_ nine most likely 003b35850d8873d0d5076d71b329c9e4c3107e15 is to blame | 15:16 | |
please note the commit message :-) | |||
FROGGS_ | no, I had problems more than 22 hours ago I think | 15:17 | |
lizmat | ah, ok | ||
FROGGS_ | my rakudo is two days old | 15:18 | |
This is perl6 version 2014.12-74-g8f173a0 built on MoarVM version 2014.12-3-g8cfefcb | |||
15:19
sirdancealot joined
|
|||
dalek | kudo/newio: 2854ea5 | lizmat++ | src/core/I (2 files): Eradicate IO::Path.new-from-absolute-path |
15:25 | |
15:38
rurban left
|
|||
masak | moritz: re gist.github.com/moritz/d086a8372adf69cd8b65 -- interesting reading. | 15:40 | |
moritz: "That's a tough one." -- indicates to me we should find someone who is (a) really in the middle of all this enterprise stuff, and (b) open to discussing what works and what doesn't in his environment, with an eye to improving stuff. | 15:41 | ||
basically, a domain expert where the domain is an enterprise environment. | |||
arnsholt | Indeed | ||
masak | anyway, moritz++ for thinking about this. | ||
everybody else: we are now looking for such a domain expert. any ideas? | 15:42 | ||
arnsholt | A uniform Auth/Authz module sounds intriguing in general too, especially something able to cope with the trickier stuff like roles | ||
mst | I think that would be a terrible idea | 15:46 | |
some sort of API ala Authen::Passphrase is a good thing | |||
but do NOT mix authen and authz in the same thing | |||
because what happens then is that if you need wildly different authen, you can't use the authz | |||
and basically authz is mostly local policy, and any attempt to generalise it tends to be a footgun | 15:47 | ||
arnsholt | Point | ||
mst | so you end up either making your authen code useless | ||
or people just drag the authz around as baggage they have to ignore | |||
also, IME, authz tends to be best baked into the domain | 15:48 | ||
DBIx::Class::Schema::RestrictWithObject was one experiment I did in that respect | |||
but I really like being in a situation where e.g. rather than testing 'does this user have permission to view this post' | 15:49 | ||
15:49
zakharyas joined
|
|||
mst | you do 'my $post = $user->visible_posts->by_id($id);' | 15:49 | |
and I've found that attempts at authz libraries tend to promote the opposite pattern | 15:50 | ||
which is often kinda icky | |||
pmurias | nine: t/precomp.t works for me | ||
mst | arnsholt: hopefully that makes some sort of sense | ||
arnsholt | mst: A lot of sense, TBH | ||
Being an academic, this isn't a space I've much practical knowledge about | |||
Mostly limited to the horror stories (temporal logics with dicontinuous intervals... ugh) my consultant friend tells me | 15:51 | ||
mst | I've spent the past ten years or so running a consultancy technical team | ||
arnsholt | Indeed. Which makes me prone to believe you know a thing or three about this =) | 15:52 | |
lizmat | pmurias: on Moar ? | ||
fwiw, it doesn't for me | |||
mst | I'm not sure I know a good general way of doing authz right, but I certainly know a thing or three about ways of doing it wrong :) | ||
arnsholt | That's half the battle though, isn't it. Knowing what doesn't work? =) | 15:53 | |
pmurias | lizmat: yes | 15:54 | |
dalek | kudo/nom: 6e35d1d | lizmat++ | src/core/CompUnitRepo.pm: Don't bind the lock This does not fix the precomp problem for me, but it was the *only* occurrence of binding the lock in the settings, so I thought it'd be best to be at least consistent. |
||
lizmat | pmurias: weird | 15:55 | |
pmurias | perl6 -o precomped.moarvm ...filename.p6... should precompile? | 16:00 | |
dalek | ast: da2561a | usev6++ | S03-metaops/reverse.t: Add test for RT #118793 |
||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118793 | ||
lizmat | pmurias: the problem occurs when there is a -use- statement in the code being compiled | 16:01 | |
such as in t/spec/packages/Example/A.pm | 16:02 | ||
pmurias | how do I precompile stuff? | ||
16:03
jluis left
|
|||
moritz | perl6-m --target=mbc -o Module.pm6.moarvm Module.pm6 | 16:03 | |
nine | git bisect bad 167f5f423024fc7d64520d301482b2f990c63099 | ||
pmurias | I get a "Cannot dump this object; no dump method" | 16:06 | |
lizmat | pmurias: alternately, without having to know backends and extensions: | ||
16:06
Alina-malina left
|
|||
lizmat | CompUnit.new('Module.pm6').precomp | 16:06 | |
16:07
Alina-malina joined
|
|||
pmurias | moritz: -o doesn't work, --output does | 16:07 | |
is 'moar foo.moar' supposed to work? | 16:08 | ||
is there a rakudo manual? | 16:12 | ||
moritz | pmurias: precompiling scripts doesn't work, just modules | 16:13 | |
pmurias: and you just have to look into rakudo's makefile how it precompiles Test.pm and lib.pm, and do it the same | |||
pmurias | that's not exactly user friendly | 16:16 | |
lizmat | pmurias moritz : that's why I implemented a CompUnit object with a "precomp" method | 16:18 | |
it takes all of the nitty gritty out of that | |||
moritz | pmurias: docs/running.pod also has a man page for the compiler itself, but I don't know how much it goes into detail on precompilation | ||
pmurias | it seems to be a parrot relict | 16:19 | |
fork and make a pull request is the recommended way for rakudo fixes? | 16:21 | ||
moritz | pmurias: yes; though I'm working on updating the man page | ||
FROGGS_ | pmurias: perl6-m -Mfoo -e1 would work, instead of 'moar foo.moar' | 16:25 | |
dalek | kudo/nom: 8587c4e | moritz++ | docs/running.pod: Update manpage, pmurias++ |
16:27 | |
16:30
ka05 joined,
raiph left,
rurban joined
16:35
KCL_ joined
|
|||
dalek | kudo/newio: c3394cb | lizmat++ | src/core/Str.pm: We no longer need to predeclare IO::Path |
16:35 | |
kudo/newio: 74b4be7 | lizmat++ | src/core/Process.pm: Eradicate IO::Path some more |
|||
16:37
telex left
16:38
telex joined
|
|||
pmurias | moritz: docs.perl6.org should point to the new running page in some manner | 16:39 | |
masak | mst: it might be a complete mis-association, but what you said about 'my $post = $user->visible_posts->by_id($id);' sounds structurally like FP's dictum "operate on lists when you can -- abstract away the mechanics of looping and just compose functions" | 16:42 | |
16:42
ka05 left,
ka05 joined
|
|||
masak | mst: or, put differently, maybe the mistake authz libraries tend to make is to push the library user into a trap of not being able to compose functions like that. | 16:43 | |
has to suck the information through a very thin straw. | |||
16:43
denis_boyun_ left
|
|||
masak .oO( the von Authzmann bottleneck ) | 16:43 | ||
16:43
Ven joined
|
|||
Ven | Isn't IO::Path#e documented? | 16:44 | |
mst | masak: the real problem, I think, is that authz is a cross cutting concern | ||
you almost want AOP | 16:45 | ||
except AOP tends to be heinously confusing | |||
TimToady | call it DI instead, that'll fix All The Things | 16:47 | |
lizmat | Ven: not sure it;s worth the trouble at the moment | 16:48 | |
TimToady | mix a little IOC in there too, and you can have DIAIOCOP or so | 16:50 | |
Ven | method IO doesn't appear in Str or w/e, it's surprising | 16:51 | |
(I found it in Cool) | |||
lizmat | Ven: it's in Cool so that you can also do "3.IO" | 16:52 | |
if you have a file that's just called "3" | |||
rindolf | TimToady: hi, sup? | ||
TimToady | to early for that, haven't even had breakfast :) | ||
*too | 16:53 | ||
lizmat | *soup ? | ||
TimToady | two early too speel to | ||
*urly | |||
Ven | lizmat: yeah, but it's not listed in Str's doc | ||
16:55
kjs_ left
16:59
jack13 joined
|
|||
lizmat | afk& | 17:00 | |
masak lizmat was gonna send an email too, but I want to share the news ASAP: at noon on Monday, we became parents of a beautiful little boy. so he's 5 days old currently. | 17:01 | ||
heh. privmsg fail ;) | |||
lizmat | :-) | ||
masak looks around for stray wits, which must be lying around somewhere | |||
lizmat | sleep deprivation will do that to you | ||
masak | moritz: if there is some irclog magic you can do to scrub things, feel free :) | ||
lizmat | looking for wits where there aren't any | 17:02 | |
masak: congrats! | |||
masak | anyway, guess it's official now. | ||
thanks. | |||
17:02
dj_goku joined,
dj_goku left,
dj_goku joined
|
|||
moritz | masak: uhm, what needs to be scrubbed? | 17:02 | |
masak | moritz: the '/me' above should've been a '/msg' | ||
that's all; the fallout can be left intact for people who like detective work. | 17:03 | ||
nine | lizmat: 003b35850d8873d0d5076d71b329c9e4c3107e15 is the first bad commit "Allow specification of @*INC in CompUnit.precomp" | ||
lizmat | nine: so that breaks Inline::Perl5 at the moment? | 17:04 | |
nine | lizmat: and Inline::Python, yes | ||
lizmat | .oO( here goes another piece of work down the drain ) |
||
17:04
zakharyas left
|
|||
moritz | masak: line deleted from DB, should be gone in the next(ish) refresh | 17:05 | |
masak | moritz: thank you. | ||
moritz: yeah, 'tis gone. | |||
moritz | masak: you're welcome | ||
masak | what's left is almost like cm.bell-labs.com/who/ken/trust.html ;) | 17:06 | |
dalek | kudo/nom: 43b724e | lizmat++ | src/core/CompUnit.pm: Revert "Allow specification of @*INC in CompUnit.precomp" Alas, this breaks Inline::Perl5, so reverted until further notice. |
||
FROGGS_ tries | |||
it is possible that I was on that commit, and just did no reconfigure | 17:07 | ||
lizmat | nine: confirmed | 17:08 | |
*sigh* | |||
nine | lizmat: yes, both Inline::Perl5 and Inline::Python pass their tests now. | 17:09 | |
lizmat | really afk now& | 17:12 | |
17:12
sirdancealot left
|
|||
nine | .tell lizmat maybe having a look at Inline::Perl5's t/precomp.t would be a good idea. It's very simple, but maybe it's just doing something wrong. Or maybe it can at least give you a hint why your commit doesn't work. | 17:14 | |
yoleaux | nine: I'll pass your message to lizmat. | ||
FROGGS_ | sadly it does not help v5: | 17:16 | |
Compiling (7) if to mbc | |||
===SORRY!=== | |||
Missing serialize REPR function for REPR ReentrantMutex | |||
nine | .tell lizmat precomp.t assigns to %*ENV<PERL6LIB> _after_ loading Inline::Perl5. Maybe that's messing up precomp? | 17:18 | |
yoleaux | nine: I'll pass your message to lizmat. | ||
FROGGS_ | I'm doing similar things in v5 | 17:19 | |
(it has its own ModuleLoader) | |||
17:20
virtualsue joined
|
|||
nine | Moving the assignment to the top of the file does not help. | 17:21 | |
ugexe | if you're getting the ReentrantMutex error then you are getting the same error any code on MoarVM would get | 17:24 | |
lizmat mentioned it builds correctly on parrot (i think) and gives a better exception error on jvm | 17:25 | ||
something about moarvm not unserializing a lock | |||
TimToady | Timbus, xfix: that integer check is now: $_ when Int given hero($a, $b, $c).narrow; | 17:29 | |
xfix | TimToady, oh, neat, didn't know about .narrow method. | 17:31 | |
In that case, I probably would have written .narrow ~~ Int. | |||
TimToady | but I don't want to return a floater | ||
so topicalizing the integer allows me to return it easily | |||
xfix | Yes, this looks better than what I would write. | 17:32 | |
TimToady | without reconverting | ||
m: say <1+0i>.narrow | 17:33 | ||
camelia | rakudo-moar 80b912: OUTPUT«No such method 'narrow' for invocant of type 'Str' in block <unit> at /tmp/eAC9s1XCPT:1» | ||
TimToady | right, gotta fix those val things | ||
japhb | Dear heavens yes, replace hack-val(), PLEASE. | 17:34 | |
xfix | <3> should be Int. | ||
But it still isn't in Rakudo. | |||
japhb | IntStr, no? | 17:35 | |
xfix | I guess, I haven't been here for a long time. | ||
TimToady | if there's only one, and no spaces, it should leave out the Str | ||
but only in angles | |||
xfix | IntStr is a thing? | ||
TimToady | supposed to be | ||
but the <> notation is more for Rat and Complex | 17:36 | ||
xfix | Last time I was here, <> wasn't returning IntStr. | ||
TimToady | still isn't | ||
xfix | <1/2> was Rat, not some random RatStr. | ||
TimToady | m: say <1/2>.WHAT | 17:37 | |
camelia | rakudo-moar 80b912: OUTPUT«(Str)» | ||
TimToady | maybe you're thinking of niecza++ (RIP) | ||
xfix | Yes, in Niecza. | ||
n: say <1/2>.WHAT | |||
camelia | niecza v24-109-g48a8de3: OUTPUT«(signal ABRT)Stacktrace: at <unknown> <0xffffffff> at (wrapper managed-to-native) object.__icall_wrapper_mono_gc_alloc_string (intptr,intptr,int) <0xffffffff> at (wrapper alloc) object.AllocString (intptr,int) <0xffffffff> at string…» | ||
xfix | ... right. | ||
So not only it wasn't updated for a year, but it's also broken in camelia. | |||
TimToady | just needs some tender lovin' and carin' | 17:38 | |
xfix | Niecza was neat. It was once a neat Perl 6 compiler supporting features that Rakudo didn't (like custom operators, and more STD.pm6-like parser). | 17:39 | |
But well, now it's behind. | |||
TimToady | except on val :) | ||
xfix | So, currently Rakudo is the only still updated Perl 6 implementation? | 17:40 | |
TimToady | well, except that it's 3 implementations :) | 17:41 | |
xfix | (I don't consider STD.pm6 to be Perl 6 implementation) | ||
Yes, but they run mostly the same NQP code. | |||
masak | Niecza's falling-behind is (a) an example of bus number in action -- though not literally, thankfully -- and (b) a kind of vindication of the nom/6model refactor (which made Rakudo overtake Niecza and leave it in the dust, spectest-wise). | 17:42 | |
TimToady | well, viv could be considered an implementation of a subset of Perl 6, that works by translating to Perl 5 | ||
xfix | I guess. | ||
Perlito still gets improvements, but they are practically Perl 5 improvements. | |||
TimToady | in fact, it was precisely the refactoring problem that was cited by sorear++ as a major reason for abandonment | 17:43 | |
(well, and the fact that some of those refactors were in support of features sorear++ wasn't sure he agreed with :) | 17:44 | ||
so the way forward is probably just to write a .NET backend for rakudo now | 17:45 | ||
17:45
psch joined
|
|||
TimToady | that, and fix val :) | 17:46 | |
xfix | I once have used Niecza, because Rakudo refused to work for me on Windows. But from what I see, Rakudo now works better on Windows (but not that I even care by now, because I use Linux now). | ||
psch | hi #perl6 \o | ||
17:46
ajr joined
|
|||
xfix | Hi, psch. | 17:46 | |
TimToady | o/ | 17:47 | |
17:47
ajr is now known as Guest66755
|
|||
japhb | ++(.NET backend for rakudo) | 17:47 | |
xfix | I wonder about removing Niecza from main page of perl6.org. It's not really relevant by now, and it's more of a historical compiler (like Pugs). | ||
But at the same time, section header is "Compilers". | 17:48 | ||
TimToady | we still want to think of it as plural, even if there's really only one currently | ||
it only takes one fork to make two :) | |||
and, in fact, the newio branch seems to be a rather persistent fork :P | 17:51 | ||
moritz | persistent forks are fine, as long as we don't advertise them as The Next Big Thing | 17:53 | |
nwc10 | commit 4e459090fd1f1da89e41568787a70e38cb4560fc | 17:55 | |
Author: Elizabeth Mattijsen [email@hidden.address] | |||
Date: Tue Nov 11 15:43:17 2014 +0100 | |||
I think that that's where it starts | |||
xfix | I find it interesting that in COBOL you can write `IF result = this OR that`. Feels like Perl 6 junctions, even. | 17:58 | |
(I wonder why syntax like that doesn't exist in many programming languages) | |||
geekosaur | mostly because nesting is difficult | 18:00 | |
icon has an interesting solution to it | |||
ugexe | then you have to solve if result = this OR result2 = that | ||
geekosaur | actually icon's is for x < y < z type things. the COBOL example has the problem of whether it means IF x = y OR x = Z, or is the start of writing that out longhand | 18:01 | |
plus little niggles like whether you have a boolean type that would make that expression ambiguous | |||
xfix | I guess. COBOL didn't have booleans until 2002 (and they work around this shortened syntax by doing type checking in grammar). | 18:03 | |
(but a different operator could be used for junctions than usual "or" operator) | 18:04 | ||
In Perl 6, || and | are different. | |||
TimToady thinks icon's approach is kind of a hack that destroys the symmetry of the semantics | |||
xfix | Alternatively, there is possibility of using function call for junctions. In SQL, you can write code like SELECT name FROM users WHERE userid = ANY(3, 5). | 18:05 | |
18:05
dyas joined
|
|||
xfix | Although, in that specific case, userid IN (3, 5) is usually more common. | 18:05 | |
TimToady | gee, maybe we should put that into Perl 6 too | ||
ugexe | lol | 18:06 | |
18:09
jack13 left
18:11
KCL_ left
|
|||
TimToady | m: say "Yeah!" if (1,2,3).&$_ == (^10).pick given any(&any, &all, &one, &none) | 18:11 | |
camelia | rakudo-moar 80b912: OUTPUT«Type check failed in binding &call; expected 'Callable' but got 'Method+{<anon>}' in method AUTOTHREAD at src/gen/m-CORE.setting:3799 in block <unit> at /tmp/4nzDD3sT9T:1» | ||
18:11
rurban left
|
|||
nwc10 | r: say "Yeah!" if (1,2,3).&$_ == (^10).pick given any(&any, &all, &one, &none) | 18:12 | |
camelia | rakudo-moar 80b912: OUTPUT«Type check failed in binding &call; expected 'Callable' but got 'Method+{<anon>}' in method AUTOTHREAD at src/gen/m-CORE.setting:3799 in block <unit> at /tmp/tmpfile:1» | ||
..rakudo-parrot 80b912: OUTPUT«Type check failed in binding &call; expected 'Callable' but got 'Method+{<anon>}' in method AUTOTHREAD at gen/parrot/CORE.setting:3803 in sub AUTOTHREAD at gen/parrot/CORE.setting:3881 in block <unit> at /tmp/tmpfile:1» | |||
nwc10 | consistent, which is good | ||
(dear JVM, please try to keep up) | |||
j: say "Hi" | |||
camelia | rakudo-jvm 80b912: OUTPUT«Can't open perl script "/home/camelia/jvm-rakudo/eval-client.pl": No such file or directory» | ||
18:12
FROGGS__ joined
|
|||
nwc10 | I assume that that's a "bug" but I have no idea how to fix it, or even who to ask about it | 18:13 | |
TimToady | must be a Perl 5 bug :) | ||
nwc10 | quite probably. IIRC there are at least as many open Perl 5 bugs as Rakudo :-) | 18:14 | |
18:15
b2gills left
18:16
FROGGS_ left,
Alina-malina left
18:18
Alina-malina joined
|
|||
TimToady | there's only one Rakudo, unless there's three... | 18:18 | |
18:20
ggoebel111111117 joined,
abraxxa joined
|
|||
dalek | p: e0c77b9 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java: Add support for loading .class files from $CLASSPATH. |
18:21 | |
p: b2f2f4f | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java: Increase visibility of some inner classes. |
|||
p: d33918a | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SixModelObject.java: Correct an error message - bind_pos_boxed_native does not even make sense. |
|||
p: e6b1788 | moritz++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files): Merge pull request #215 from peschwa/jvm-easier-debugging Add support for loading bare .class files and increase visibility for a few BootJavaInterop fields and inner class constructors. |
|||
TimToady | Eggnog flavored coffee isn't...terrible... | ||
18:22
Alina-malina left
18:23
Alina-malina joined
|
|||
Ven | amazing PR from peschwa++ | 18:24 | |
18:24
vike joined
|
|||
psch | Ven: github.com/rakudo/rakudo/pull/344 has the real features ;) | 18:25 | |
Ven | psch: that's the one I'm talking about | ||
psch | Ven: oh, alright. i was thinking you're referencing the one published by dalek :) | ||
Ven: still, thanks :) | 18:26 | ||
Ven | psch: you have no idea how many people I know have been waiting for that to jump in ;-) | 18:27 | |
psch | i'm wondering if i should amend the advent post | ||
japhb | psch: Yes. | ||
psch | Ven: there's still a few things missing, though. most obvious is fields accessors | 18:28 | |
Ven | please do amend :) | ||
psch | not before it's merged though i guess? | ||
japhb | psch: Nothing says you can't amend again after implementing that. :-) | ||
psch: Right, after the merge. | |||
18:28
b2gills joined
|
|||
Ven | psch: are you going to work on field accessors as well? | 18:29 | |
psch | Ven: i don't really have an idea how to implement them at the moment | ||
Ven | alright, noted | 18:30 | |
I'll blindly guess there's no typechecking involved ("calling java methods from perl6 with invalid arguments fails at compile-time") | |||
(which would imply inspecting bytecode I guess) | |||
psch | Ven: the only thing close to a workable idea i have is creating a getter and setter in the adaptor class and fiddling with the JavaHOW to wrap those in a Proxy. the problem is that the HOW doesn't really know about the methods currently... | 18:31 | |
Ven: well, dispatch works by inspecting the arguments at the callsite at runtime... | |||
Ven | psch: I don't see a clean way to do it, tbh :p | 18:32 | |
psch | Ven: for typechecking? i don't really think we can do that at compile time, considering we could have something happening to the Perl 6 arguments at runtime that allows or prohibits dispatch to some handle... | 18:34 | |
but then i'm not really knowledgeable about type theory in general, fwiw :) | 18:35 | ||
18:37
b2gills left
|
|||
Ven | hm, where were the benchmarks uploaded? | 18:40 | |
18:42
Mso150_w joined,
Mso150 left
|
|||
moritz | psch: I've given you commit access to perl6/nqp | 18:51 | |
psch | moritz: thanks | 18:52 | |
18:56
zakharyas joined
|
|||
japhb | Ven: Which benchmarks | 18:58 | |
? | |||
Ven | japhb: rakudo benchmarks, i.e. against perl5 or against last year's | 18:59 | |
japhb | timotimo++ sometimes uploads his runs, but you can do your own using github.com/rakudo/rakudo/pull/344 | 19:08 | |
Gah, wrong paste | |||
github.com/japhb/perl6-bench | |||
(I really hate that Macs select without saving into the paste buffer.) | 19:09 | ||
19:15
zakharyas left,
dj_goku left
|
|||
bartolin | r: my %h = %("a" => "1"); say %h.{"a"} | 19:16 | |
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«1» | ||
bartolin | r: my %h = %("a" => "1"); say %h.postcircumfix:<{ }>.("a") | ||
camelia | rakudo-{parrot,moar} 80b912: OUTPUT«No such method 'postcircumfix:<{ }>' for invocant of type 'Hash' in block <unit> at /tmp/tmpfile:1» | ||
19:16
pmqs joined
|
|||
bartolin | shouldn't the second command work as well? | 19:16 | |
masak | japhb: I have this thing (on Linux Mint) where I can Ctrl+C in Chrome, and then Alt-Tab to another application, if I Alt-Tab too quickly, the copy doesn't "take". hilarity can ensue from that. :/ | 19:17 | |
bartolin: I think they are subs these days. | 19:18 | ||
bartolin: a quick scan through the setting seems to bear this out. | |||
bartolin | masak: oh. that would explain the error message. thanks! | 19:19 | |
japhb | masak: Ewww. | 19:23 | |
Ven | they're definitely subs | 19:24 | |
because it's easier to decide which candidate we want at compile-time | |||
timotimo: ping, maybe? | |||
bartolin | Ven: I see, thanks. I stumbled upon the above command in an old ticket (RT #117935). back then they were still methods, obviously. | 19:27 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117935 | ||
japhb | Is there a rule for whether .perl should escape strings? (This thought brought on by e12b86b107042f38105b4ae3341876bff5ba3816) | ||
19:28
denis_boyun_ joined
19:35
dj_goku joined
19:37
rindolf left
|
|||
timotimo | Ven: what's wrong? | 19:38 | |
moritz | japhb: always when necessary; otherwise only if it makes things more robust | ||
(like newlines in strings) | |||
Ven | timotimo: o/. nothing wrong. wondering if you still have benchs up somewhere? | ||
moritz | people could run benchmarks on hack.p6c.org (just sayin') | 19:40 | |
raydiak | I bet Pray would be several times faster on hack than I've ever ran it before...would that be a gratuitous waste? | 19:44 | |
japhb | moritz: I thought someone was planning to do regular benchmarking there, just like [Coke]++'s spectesting. Or was that just me wishing really hard? | 19:46 | |
19:49
LAsse__ joined
|
|||
timotimo | Ven: i do, but the last bench is quite old by now | 19:51 | |
19:51
abraxxa left
|
|||
TimToady | rosettacode.org/wiki/Solve_the_no_c...zle#Perl_6 | 19:51 | |
timotimo | my desktop computer isn't up at the moment, so i can't make "compatible" benchmarks right now | ||
FROGGS__ | weird... the first thing that I mess up when I switch between P5 and P6 in either way is the ternary... | 19:59 | |
20:00
anaeem1_ joined
|
|||
raydiak | do we put apps in the ecosystem too? Pray is very limited as a module, but it's fairly usable as a command-line app | 20:01 | |
20:01
mr-foobar left
|
|||
timotimo | there's an App:: namespace | 20:02 | |
and panda is in there, too | |||
FROGGS__ | sure | ||
timotimo | as is farabi | ||
raydiak | cool, ought to put it in there today, then | 20:03 | |
timotimo | neat | 20:04 | |
raydiak | haven't worked on it in a long time, it's been usable-ish for like a year, I just never added it to the ecosystem | 20:05 | |
moritz | japhb: iirc jnthn mentioned he might look into it | ||
raydiak | oh nice, I can get 100+ pixels/second on hack in the first example scene...that's like double anything I've ever seen iirc | 20:09 | |
moritz | \o/ | 20:11 | |
is that with moarvm? or jvm? | |||
raydiak | moar I think | ||
haven't actually tried jvm in a long time to be honest, would be good to compare | 20:12 | ||
moritz | a year ago, moar didn't have a JIT compiler :-) | ||
raydiak | oh yeah | ||
rakudobrewing jvm, we'll see what it does | 20:13 | ||
am looking forward to the concurrency branch of Pray becoming stable eventually | 20:15 | ||
also looking forward to being able to auto-generate big chunks of it at panda build time using Math::Symbolic | 20:16 | ||
20:18
mr-foobar joined
20:21
virtualsue left
|
|||
raydiak is now thinking about writing a blog post at some point about how much faster rakudo has gotten since I started, with pray as a benchmark against a few historical versions and latest jitted moar | 20:22 | ||
xfix | Hm, so we have lots of solutions on Rosetta Code and codegolf.se. | ||
Nice. | |||
20:23
Celelibi joined
|
|||
TimToady | though, actually, Perl 6 is a bit anti-golf in its design | 20:24 | |
raydiak guesses the ultimate golfing language kinda *has* to look like human-unfriendly line noise | 20:26 | ||
20:30
dyas left
|
|||
raydiak | ew can't bootstrap panda on jvm...trying to compile json::tiny gives "java.lang.IllegalThreadStateException: process hasn't exited" | 20:31 | |
raydiak is trying 1 more time before reporting | 20:33 | ||
impressive...this time I got the same error but on File::Find | 20:34 | ||
is anyone really using jvm any more? we still smoke it, right? | 20:35 | ||
TimToady | for a while there it was a lifeline for the OSx fokes | ||
bartolin | raydiak: yes, there are daily spectest runs for jvm (at least by [Coke]++ and me) | 20:37 | |
El_Che | is this the latest info to setup a p6 smoke test setup? perl6advent.wordpress.com/2014/12/...e-testing/ | ||
lizmat is back from dinner which accidentally had too much sauce of 357K on the Scoville scale | |||
yoleaux | 17:14Z <nine> lizmat: maybe having a look at Inline::Perl5's t/precomp.t would be a good idea. It's very simple, but maybe it's just doing something wrong. Or maybe it can at least give you a hint why your commit doesn't work. | ||
17:18Z <nine> lizmat: precomp.t assigns to %*ENV<PERL6LIB> _after_ loading Inline::Perl5. Maybe that's messing up precomp? | |||
El_Che | I would like to try to set something up on solaris | ||
bartolin | El_Che: I just started a daily panda smoke the day before yesterday. basically I do 'PANDA_SUBMIT_TESTREPORTS=1 panda smoke' (as described in the advent post) | 20:39 | |
El_Che | bartolin: I'll start with that. Solaris is not that exotic, but it may be interesting running stuff there next to the Linux | 20:40 | |
(I am living in future! It used to be the other way around :) ) | |||
20:41
Mso150_w left
|
|||
bartolin | El_Che: cool. my tests run on freebsd, btw | 20:41 | |
20:41
Mso150_w joined
|
|||
El_Che | bartolin++ | 20:42 | |
bartolin | ++El_Che :D | ||
TimToady | lizmat: about ⅓ of my sauces are hotter than that, but yeah, one doesn't use quite as much in that case | 20:43 | |
El_Che | although I no longer use Solaris on my new job, I still have access to Solaris hardware through OpenCSW community project (we pkg FOSS for Solaris) | ||
lizmat | TimToady: it was too hot for us, and as a precaution I drank 1l of milk after that | ||
lizmat is feeling a bit better now | 20:44 | ||
it was overdosed by a factor of 10 or so | |||
bartolin | El_Che: in case you're interested: here are the scripts I use for my daily runs: github.com/usev6/perl6-roast-data/...master/bin | 20:45 | |
dalek | kudo/newio: 6e35d1d | lizmat++ | src/core/CompUnitRepo.pm: Don't bind the lock This does not fix the precomp problem for me, but it was the *only* occurrence of binding the lock in the settings, so I thought it'd be best to be at least consistent. |
20:46 | |
kudo/newio: 8587c4e | moritz++ | docs/running.pod: Update manpage, pmurias++ |
|||
kudo/newio: 43b724e | lizmat++ | src/core/CompUnit.pm: Revert "Allow specification of @*INC in CompUnit.precomp" Alas, this breaks Inline::Perl5, so reverted until further notice. |
|||
bartolin | El_Che: they're based on [Coke]++'s stuff. if you only want to smoke panda you could leave the spectests out. | ||
kudo/newio: 89a90bf | lizmat++ | / (3 files): Merge branch 'nom' into newio |
|||
kudo/newio: bbbcc36 | lizmat++ | src/core/CompUnit.pm: Implement allowing of setting :INC again |
|||
El_Che | bartolin: I "watched" the repo. Thx | 20:50 | |
bartolin | El_Che: you're welcome. (though in that repo is mostly noise through the daily spectest commits.) | 20:52 | |
20:53
darutoko left
|
|||
El_Che | I saw on twitter that RubySpec has thrown the towel. | 20:55 | |
raydiak | result, after hackign around not being able to build panda: r-m runs the most basic Pray example scene about 50% faster than r-j | 20:57 | |
FROGGS__ | El_Che: that explains it: rubini.us/2014/12/31/matz-s-ruby-de...-rubyspec/ | 20:59 | |
El_Che | FROGGS__: "Ruby Is What Ruby Does" ;) | 21:00 | |
moritz | after merging psch++'s rakudo-jvm-interop branch, I got test failures in t/spec/S10-packages/precompilation.rakudo.jvm | 21:03 | |
does that fail before too? | |||
lizmat | moritz: I think that fails everywhere at the moment | ||
moritz | lizmat: ok, thanks | ||
lizmat | let me double check | ||
21:03
adu joined
|
|||
moritz | (tests 3-6 and 15-16 fail here) | 21:03 | |
lizmat | yeah, that looks familiar (and on moar, I assume) | 21:04 | |
bartolin | moritz: it didn't fail in my daily spectest last night. | ||
lizmat | if you try running the .rakudo.moar test file directly, you probably see something about ReentrantMutex | ||
moritz | bartolin: yes, but lizmat++ reverted some precomp-related test today | ||
bartolin | moritz: ok, just wanted to give another data point ;-) | 21:05 | |
moritz | on the JVM, I get Could not find Example::C in any of: /home/moritz/p6/rakudo, /home/moritz/p6/rakudo/blib, /home/moritz/p6/rakudo/install/languages/nqp/lib | 21:06 | |
(for example) | |||
lizmat | ah, I think why that is | 21:07 | |
masak | RubySpec has thrown in the towel? that's sad. | ||
I mean, that's saddening. | |||
21:07
rurban joined
|
|||
dalek | ast: 700e0a5 | lizmat++ | S10-packages/precompilation.t: Revert "Should work with just @*INC" This reverts commit 9b2d779d6ed66d0ef5974ba5e41a88bde19f4906. |
21:08 | |
lizmat | moritz: could you try again? | ||
masak | TimToady or someone: s/appr<(ao)>ch/oa/ at rosettacode.org/wiki/Solve_a_Hidato...zle#Perl_6 | 21:09 | |
21:09
Mso150_w_j joined
21:10
b2gills joined
|
|||
moritz | lizmat: trying... | 21:10 | |
21:10
Mso150_w left
21:12
Sqirrel joined
|
|||
moritz | looks better (but it's sloooow ...) | 21:12 | |
lizmat | well, shelling out is extra slow on the JVM, I guess | 21:16 | |
FROGGS__ | ...and when that involves spawning a perl6-j it takes about 5gig RAM on my box, and will fail in case my firefox is running... | 21:17 | |
(I only have 8gig of RAM) | |||
moritz | FROGGS__: which is why I ran the tests on hack.p6c.org :-) | 21:18 | |
FROGGS__ | :o) | 21:19 | |
TimToady | masak: thanks | ||
dalek | p/parrot-rpa: 0ff1898 | lizmat++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION to release 2014.12 |
||
p/parrot-rpa: 10198a0 | lizmat++ | VERSION: bump VERSION to 2014.12 |
|||
p/parrot-rpa: cd8f6b2 | lizmat++ | README.pod: Add my fix to building on OS X In the hope it will be helpful. I don't see another fix yet. And I'm apparently the only person suffering from this (so far) |
|||
p/parrot-rpa: b4752c8 | moritz++ | docs/release_guide.pod: release guide: update the list of known uploaders |
|||
p/parrot-rpa: 7b881b2 | moritz++ | docs/release_guide.pod: Oops, no need to list FROGGS twice |
|||
p/parrot-rpa: c9147fd | rurban++ | src/vm/parrot/ops/nqp_dyncall.ops: nqp_dyncall.ops: fix one more compiler warning warning: passing argument 2 of ‘dcbNewCallback’ from incompatible pointer type Note: this uses a register for the userdata, which is needed to work on the stack var anyway, the same code is generated. |
|||
lizmat | ah, branches :-) | ||
FROGGS__ | sheesh, that's not translated within five minutes: cpansearch.perl.org/src/MIYAGAWA/ID...unycode.pm | ||
FROGGS__ .oO( ahh, branes! ) | 21:20 | ||
moritz | FROGGS__: I've looked at punycode before, thought "should I implement that for Perl 6?" and then decided to let somebody else do it :-) | 21:21 | |
FROGGS__ | moritz: well, I've waited about ten months now... but nobody did it :o) | ||
dalek | p/parrot-rpa: 24a3c2a | rurban++ | / (7 files): Replace unneeded QRPA with ResizablePMCArray |
21:22 | |
nqp/parrot-rpa: 0b15ee9 | rurban++ | tools/build/Makefile-Parrot.in: | |||
nqp/parrot-rpa: Makefile-Parrot: simplify ops2c rule, no chdir needed | |||
FROGGS__ | ohh, now I understand this: | ||
while ($h < @input) { | |||
my $m = min(grep { $_ >= $n } map ord, @input); | |||
21:22
dalek joined,
ChanServ sets mode: +v dalek
|
|||
FROGGS__ | should translate to: | 21:24 | |
while $h < @input.elems { | |||
my $m = @input.ords.grep(* >= $n).min; | |||
moritz | not quite | 21:25 | |
@input>>.ord | |||
21:25
pmqs left
|
|||
moritz | @input.ords would stringify @input, and then do .ords on that string | 21:25 | |
and thus insert lots of unwanted spaces | 21:26 | ||
FROGGS__ | ohh | ||
thanls | |||
thanks | |||
well, I can use $input, the string... I don't need to create an array of its chars anyway... | 21:27 | ||
bartolin | m: my %h; %h<a>=1; %h<a>:delete(0); say %h | 21:28 | |
camelia | rakudo-moar 80b912: OUTPUT«"a" => 1» | ||
bartolin | m: my %h; %h<a>=1; say %h<a>:p(0) | ||
camelia | rakudo-moar 80b912: OUTPUT«"a" => 1» | ||
bartolin | lizmat: I saw that you worked on hash stuff last year. I looked at RT #117935 and saw that using :delete(0) works now. but :p(0) doesn't work, yet. | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117935 | ||
bartolin | lizmat: I tried to modify src/core/Any.pm to make the basic example above work. Could you have a look at the following gist and comment whether those changes make sense to you: gist.github.com/usev6/3c5d27e558160c152358 | 21:29 | |
lizmat: (though with my changes I get two spectest failures in S32-array/delete-adverb.t and S32-array/delete-adverb-native.t, but those tests look kinde of questionable to me:) | |||
m: my @a is default(42); say @a[0]:!p ## why not ""? | |||
camelia | rakudo-moar 80b912: OUTPUT«0 => 42» | ||
lizmat | bartolin: looks sane at first sight | 21:31 | |
bartolin | lizmat: thanks for looking! than I'll dig a bit deeper and try to make it work not only for this basic case. | 21:32 | |
lizmat | hmmm.... | ||
bartolin: I just commented on your gist | 21:42 | ||
I think the other cases need closer scrutiny as well | |||
bartolin++ for picking this up | 21:43 | ||
bartolin | lizmat: okay, now I've an idea how to proceed. lizmat++ # various reasons :) | 21:44 | |
21:45
denis_boyun_ left
|
|||
bartolin | lizmat: one last question regarding the last example above: the output "0 => 42" seems wrong, doesn't it? | 21:46 | |
lizmat | bartolin: I think the tests are indeed bogus | ||
bartolin | lizmat: okay, maybe I'll start there ;-) | 21:47 | |
g'night, #perl6 | 21:48 | ||
lizmat | gnight bartolin++ | 21:49 | |
21:51
xfix left,
Guest66755 left
|
|||
FROGGS__ | moritz: encode_punycode already works | 21:53 | |
psch | seems to me jvm rakudo doesn't wait on IO::Handle.close, in contrast to moar, which explains raydiak++'s panda bug | 21:57 | |
reproduceable with 'my $h = pipe("sleep 10", :r); $h.close.status.say' | 21:58 | ||
takes ~10 seconds on moar, dies on jvm | |||
moritz | psch++ # JVM work | 22:08 | |
ugexe | yeah the jvm handle close on jvm has been around for months | 22:09 | |
./on jvm/on pipe/ | 22:10 | ||
psch | well if blocking is fine i have a patch | 22:11 | |
22:21
anaeem___ joined
22:24
anaeem1_ left,
denis_boyun_ joined,
mr-foobar left
|
|||
masak feels a little bad when writing @array[$from..*] instead of @array[$from..*-1], but doesn't really know why | 22:25 | ||
what's the idiomatic way to die without a stacktrace, again? I forget. | 22:27 | ||
lizmat | exit ? | ||
masak | define your own subroutine that does a `warn` and then `exit`? | ||
masak names is "conk" :) | 22:28 | ||
it* | |||
lizmat | at $work, I had something similar (for tests) called "urgh" | ||
masak | :) | 22:29 | |
"urgh" is fine for its connotations, but not verb-y enough for me. | |||
bleh, even `warn` prints line-and-file these days. | |||
fine, $*ERR.say it is. | 22:30 | ||
psch | $*ERR.say is note | 22:32 | |
masak | oh, right. | ||
that's what I wanted. | |||
psch++ | |||
lizmat | m: note | ||
camelia | rakudo-moar 80b912: OUTPUT«Noted» | ||
lizmat | :-) | ||
masak | m: note xx 13 | 22:33 | |
camelia | rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/L4f3gp_9ZtUndeclared routine: xx used at line 1» | ||
masak | m: note() xx 13 | ||
camelia | rakudo-moar 80b912: OUTPUT«NotedNotedNotedNotedNotedNotedNotedNotedNotedNotedNotedNotedNoted» | ||
22:35
denis_boyun_ left
22:37
kaare__ left
22:41
LAsse__ left
22:48
adu left
|
|||
dalek | ecs/newio: 715ca5c | lizmat++ | S16-io.pod: Initial batch of reworked S16 for newio branch |
22:52 | |
lizmat | ^^^^ didn't make it to a advent blog post, so I thought about forking the spec for this | 22:53 | |
22:53
andreoss joined
|
|||
andreoss | is if statement inside given block intended to make it falling through? | 22:54 | |
if it's so. 'if * > 0' doesn't work, while 'when * > 0' does | 22:55 | ||
Ven | lizmat: sorry for advent post robbery :P | 23:00 | |
lizmat | Ven: no robbery took place, I wasn't ready :-) | ||
psch | andreoss: <given "something"> sets $_ = "something" for the following block. <when> is special and takes * to mean $_, if doesn't | 23:01 | |
m: given 6 { if $_ > 4 { say "$_ is greater than 4" }; when 6 { say "it's 6!" } } | 23:02 | ||
camelia | rakudo-moar 80b912: OUTPUT«6 is greater than 4it's 6!» | ||
lizmat gets some shuteye | |||
andreoss | psch: as i thought, * is special for when, but not for if. | 23:03 | |
psch | andreoss: arguably * is less special for when than for everything else :) | ||
andreoss | what's the proper name of *? | 23:04 | |
psch | m: *.WHAT.say | ||
camelia | rakudo-moar 80b912: OUTPUT«(Whatever)» | ||
andreoss | m: $_.WHAT.say | 23:05 | |
camelia | rakudo-moar 80b912: OUTPUT«Nil» | ||
23:08
raiph joined
23:09
kjs_ joined
|
|||
raiph | andreoss: i think the fall thru effect is because you used when; the * is irrelevant | 23:09 | |
psch | m: given 6 { when * > 4 { say "$_ is greater than 4" }; when 6 { say "it's 6!" } } | 23:10 | |
camelia | rakudo-moar 80b912: OUTPUT«6 is greater than 4» | ||
andreoss | raiph: i meant * isn't working with if statement within given block. | 23:12 | |
it'd be good for refactoring purposes, if replacing all 'when's with 'if's in my code will be enough in that case | 23:15 | ||
psch | but if and when don't mean the same thing in a given | ||
consider 'if 6 { }' vs 'when 6 { }' | 23:16 | ||
the former is always true, while the latter is true only for 'given 6 { ... }' (and statements that evaluate to 6) | |||
raiph | also, when is spec'd to break out of the when block; if isn't | 23:17 | |
psch | or actually and $_ = 6 | ||
s/and/any/ | |||
m: for 1..10 { when 6 { say "when 6" }; if 6 { say "if 6" } } | |||
camelia | rakudo-moar 80b912: OUTPUT«if 6if 6if 6if 6if 6when 6if 6if 6if 6if 6» | ||
psch | what raiph++ said is another good point | 23:19 | |
raiph | m: given 6 { when 6 { say "when" }; if 6 { say "if" } } # when breaks out of the when block | ||
camelia | rakudo-moar 80b912: OUTPUT«when» | ||
raiph | m: given 6 { if 6 { say "if" }; when 6 { say "when" }; } # if doesn't | ||
camelia | rakudo-moar 80b912: OUTPUT«ifwhen» | ||
andreoss | psch: what should i use for correct falling-through in a given block? | 23:20 | |
23:21
anaeem___ left
|
|||
andreoss | perl5 had a special option for Switch for this | 23:21 | |
psch | you can use if for that, but note that you have to explicitly compare to $_, instead of getting smartmatch against $_ for free as with given | ||
raiph | m: given 6 { when 6 { say "when"; continue }; if 6 { say "if" } } # when breaks out of the when block ... unless told not to? | ||
camelia | rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/30O8OrZNEMUndeclared routine: continue used at line 1» | ||
psch | m: given 5 { if $_ > 2 { say "greater 2" }; if $_ > 4 { say "greater 4" } } # this is possible, but more explicit than given | 23:22 | |
camelia | rakudo-moar 80b912: OUTPUT«greater 2greater 4» | ||
psch | or maybe even verbose | ||
andreoss | psch: that's nothing new, but whole point of given block is missing | 23:23 | |
i want 'given ... is fall-though { ... }' | 23:24 | ||
raiph | m: given 6 { when 6 { say "when"; proceed }; if 6 { say "if" } } # when breaks out of the when block ... unless told to proceed | ||
camelia | rakudo-moar 80b912: OUTPUT«whenif» | ||
psch | oh | ||
yeah | |||
i just found that in specs as well :) | 23:25 | ||
raiph++ | |||
23:25
VABTXR8 joined
|
|||
psch | S04:1000 | 23:26 | |
synopsebot | Link: perlcabal.org/syn/S04.html#line_1000 | ||
psch | andreoss: it's documented around there ^^^ | ||
timotimo | we don't do very clever stuff with given/when yet in the optimizer ... | ||
23:28
sirdancealot joined
|
|||
andreoss | psch: thanks. | 23:28 | |
23:39
virtualsue joined
23:40
Util_ is now known as Util
23:42
Rounin left
23:53
virtualsue left
|