Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-07-23

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:08 xinming joined #perl6
00:36 grondilu joined #perl6
00:43 btyler joined #perl6
00:55 tokuhirom joined #perl6
01:04 _jaldhar joined #perl6
01:08 _jaldhar joined #perl6
01:22 raiph joined #perl6
01:58 btyler joined #perl6
02:04 cibs_ joined #perl6
02:09 cibs joined #perl6
02:29 hypolin joined #perl6
02:31 hypolin joined #perl6
02:31 colomon joined #perl6
02:47 OuLouFu joined #perl6
03:01 xinming joined #perl6
03:14 dayangkun joined #perl6
03:15 raiph joined #perl6
03:29 prammer_ joined #perl6
03:34 preflex_ joined #perl6
03:54 lizmat joined #perl6
03:59 odoacre joined #perl6
04:10 lizmat joined #perl6
04:18 lizmat good *, #perl6!
04:20 lizmat .oO( sees images of Adrian Cronauer )
04:32 woolfy joined #perl6
04:35 lizmat joined #perl6
04:39 dalek rakudo/nom: af0a16f | (Elizabeth Mattijsen)++ | src/core/Any.pm:
04:39 dalek rakudo/nom: Missed one .infinite -> Nil
04:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/af0a16fd33
04:47 raiph joined #perl6
04:49 birdwindupbird joined #perl6
04:54 arlinius joined #perl6
04:56 crab2313 joined #perl6
04:58 zby_home_ joined #perl6
05:14 dalek rakudo/nom: 4101df5 | (Elizabeth Mattijsen)++ | t/spectest.data:
05:14 dalek rakudo/nom: Move up IO-Socket-INET tests, so that it has more wallclock in parallel tests
05:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4101df5611
05:14 Woodi morning all reading lines ppls :)
05:14 lizmat morning Woodi!
05:18 Woodi Ulti: you give me excuse to bash TimToady ;) "Where are NEW books ?! Blogs, articles, comments on topic and beyond ?!"
05:18 dalek rakudo/nom: 8a1cd05 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
05:18 dalek rakudo/nom: Reorganized/slightly commented code for easier perusing
05:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8a1cd05459
05:18 Woodi and by "TimToady" I mena all old guards :)
05:18 * Woodi hide
05:19 * TimToady wonders what he's guarding...
05:19 * TimToady does not wonder whether he's old...
05:20 * lizmat neither  :-)
05:22 lizmat .oO( whether I'm old )
05:23 PacoAir joined #perl6
05:26 Woodi but maybe we are at end|start of new era in languages ? even that big Java book have no new version lastly...
05:27 diakopter ..
05:27 JimmyZ gOOd afternOOn
05:27 silug joined #perl6
05:28 moritz \O
05:29 Woodi hallo
05:36 kaleem joined #perl6
05:36 lizmat moritz!
05:37 moritz lizmat!
05:38 moritz lizmat: I don't know if you've read it in the backlog, but I'll be coming to YAPC::EU
05:38 lizmat that's way cool!
05:38 * lizmat still has fond memories of picking up moritz at the train station in Perl
05:39 bonsaikitten what were you doing at the luxemburgian border? ;)
05:39 moritz and I'm pretty excited, because I've never been that far east before
05:39 lizmat .oO( at which a certain piece of signage was liberated )
05:39 moritz lizmat: :-)
05:39 moritz bonsaikitten: having a Perl workshop/conference, of course :-)
05:40 moritz the Perl Reunification Summit
05:40 bonsaikitten moritz: hmm, obviously ...
05:40 domidumont joined #perl6
05:40 iSlug joined #perl6
05:41 lizmat moritz: wrt to going East: me neither, well in Europe then
05:42 lizmat .o( Mumbai doesn't really count :-)
05:51 domidumont joined #perl6
05:53 * jnthn yawns
05:53 jnthn Short overnight backlog... :)
05:54 lizmat indeed
05:55 lizmat our connection was down for 1.5 hours last night, and I didn't miss anything  :-)
05:55 lizmat oddly enough, t/spec/S32-io/IO-Socket-INET.t started failing on me  :-(
05:56 lizmat when run under load, I must say
05:57 lizmat I moved it up earlier in spectest.data, so that it would be run earlier
05:58 lizmat so that in parallel tests, it wouldn't be the last one to finish, taking up ~1 minute of wallclock every time
05:58 lizmat guess that was a bad idea  :-(
05:59 jnthn ~1 minute?!
06:01 lizmat measuring precisely now
06:03 lizmat time make t/spec/S32-io/IO-Socket-INET.t
06:03 lizmat real2m22.852s
06:04 jnthn um.
06:04 jnthn That really can't be right.
06:05 lizmat been that way since I've been doing spectests
06:05 jnthn Is it any particular tests that are really slow?
06:05 lizmat and the failure is definitely load dependent
06:05 lizmat discard server and client, test #2
06:06 lizmat hmmm… let me wrangle the test a bit
06:11 PacoAir joined #perl6
06:15 jnthn commute &
06:19 sqirrel joined #perl6
06:24 lizmat timing info: https://gist.github.com/lizmat/6060233
06:25 lizmat since the test that take a long time are *all* 20 seconds, I would think they only return *after* some internal 20sec timeout has occurred
06:26 dalek roast: 5c99b82 | (Elizabeth Mattijsen)++ | S32-io/IO-Socket-INET.t:
06:26 dalek roast: Add elapsed time information for debugging
06:26 dalek roast: review: https://github.com/perl6/roast/commit/5c99b8239f
06:28 wtw joined #perl6
06:41 dalek roast: ef215fd | (Elizabeth Mattijsen)++ | S32-io/IO-Socket-INET.t:
06:41 dalek roast: Added tests for possible timeout related problems
06:41 dalek roast: review: https://github.com/perl6/roast/commit/ef215fdd24
06:42 lizmat wonder whether anybody can run that test now on jakudo
06:42 lizmat it now fails 7 tests on parakudo on OSX
06:50 domidumont joined #perl6
06:52 arlinius joined #perl6
06:53 FROGGS joined #perl6
06:57 jnthn lizmat: jakudo has no sockets yet
06:58 lizmat so what do you think about the 20 seconds delay 7 times in the test ?
06:58 hoelzro morning #perl6
06:58 lizmat should I fudge those tests for now?
06:59 jnthn lizmat: I'm curious if we've always had that...
06:59 jnthn Like, before the Buf changes
06:59 lizmat yes, I'm quite sure about that
06:59 jnthn Did things get worse, for example?
06:59 jnthn Well, but why has it just started to show up as an issue now..
06:59 lizmat IO-Socket-INET has always been the last test to finsih in my parallel test
07:00 lizmat and was responsible for 1 minute of wallclock always
07:00 jnthn ok, that sounds like it's hitting a tiemout thing then
07:00 FROGGS same on my box fwiw
07:00 lizmat it now shows up, because I mentioned it, and jnthn said that can't be right  ;)
07:00 jnthn ok
07:00 jnthn Then I delegate this to somebody who is good at socket stuff ;)
07:01 jnthn teaching &
07:01 FROGGS have fun
07:01 FROGGS <-- coffee
07:01 hoelzro Perl 6 doesn't specify what kind of memory management an implementation uses for objects, does it?
07:02 lizmat don't think so
07:02 lizmat except maybe  for Buf / Blob and the like ?
07:05 hoelzro can one specify a destructor/finalizer for a Perl 6 object? is there any guarantee of it running when the last references goes out of scope (like in Perl 5?)
07:05 hoelzro I'm trying to write a class that would take advantage of such behavior
07:05 iSlug joined #perl6
07:06 JimmyZ END { } ?
07:06 tadzik nah, that's not it
07:07 tadzik hoelzro: there is a way in the spec, not implemented anywhere
07:07 tadzik DESTROY, methinks
07:07 tadzik I think colomon wrote a nice module that makes END behave in such a way to you can workaround the lack of that
07:07 hoelzro hmm
07:07 lizmat until then, a LEAVE in the block in question, that destroys your object,  might be helpful until then
07:08 hoelzro ok, that's acceptable for the time being
07:08 tadzik https://github.com/colomon/Phaser-ATEXIT/
07:11 lizmat afk for a few hours&
07:15 arnsholt hoelzro: Not sure if anything is implemented, but as tadzik says it's specced somewhere. But there's an important wrinkle, which I'm not sure how we'll handle: Many GC methods can't guarantee order
07:15 arnsholt Which means that any attributes are likely to be unavailable in the finalizer
07:16 _jaldhar joined #perl6
07:38 fhelmberger joined #perl6
07:44 hoelzro I see
07:50 sqirrel joined #perl6
07:56 wk joined #perl6
08:08 jnthn In Perl 6, you can't rely on when an object will be GC'd.
08:09 hoelzro =(
08:09 jnthn DESTROY, even when implemented, could happen at any amount of time into the future after the last reference is gone.
08:09 hoelzro I figured
08:09 jnthn However, you should be able to do stuff like
08:09 jnthn my $fh will leave { .close } = open "foo";
08:09 jnthn Which can now doubt be further sugared
08:10 jnthn *no
08:10 hoelzro I see
08:10 hoelzro so how would Perl5 interop work?
08:11 hoelzro every Perl 5 block would have an implicit LEAVE that cleans things up?
08:17 gdey joined #perl6
08:17 salv0 joined #perl6
08:17 jnthn Perl 5 things would still be managed by Perl 5
08:18 jnthn Provided you're doing the embedding approach, whcih Moar is.
08:18 domidumont joined #perl6
08:23 donaldh joined #perl6
08:25 wtw joined #perl6
08:28 hoelzro ah
08:28 jnthn o/ donaldh
08:28 jnthn donaldh: I looked over your make-install branch. It seems sane.
08:35 donaldh jnthn: thx.
08:36 donaldh I started out thinking that it's important to separate the Java classpath from the module search path.
08:37 donaldh But maybe that's not so good when Java interop comes along and modules want to load 3rd party jars.
08:37 jnthn Yeah, I'm not quite culturally aware enough in Java things to know what's the best answer there.
08:38 donaldh On balance, I think it probably is a good idea to separate the classpath and module search path.
08:39 donaldh jars required by modules can probably be loaded using a private classloader.
08:39 donaldh I've got experience of doing that and it works very well.
08:42 jnthn OK, sounds workable to me.
08:42 hoelzro jnthn: where is 'will leave' spec'd?
08:43 dakkar joined #perl6
08:44 hoelzro also, can I constrain the possible indexes on an Array? ex. Array[3] of Int?
08:48 jnthn Not sure where it's spec'd; s06 maybe...
08:48 jnthn Yes, somebody sent me a patch to implement that even :)
08:48 jnthn (the array thing)
08:49 hoelzro is the syntax correct?
08:49 jnthn No
08:49 jnthn my Int @a[3]
08:49 hoelzro ah
08:49 hoelzro how would I specify that in a returns clause?
08:49 jnthn um
08:50 jnthn Hm :)
08:50 jnthn Array sizes aren't really part of the type...
08:50 jnthn I guess you could do it with a subset type
08:50 hoelzro I see
08:51 jnthn subset Array3 of Array[Int] where { .shape == 3 }
08:51 hoelzro I've been playing with Rust, and I was thinking in terms of fn parse-time(str time) -> (Int, Int, Int)
08:51 hoelzro so I'm thinking about how that would look in Perl 6
08:52 arlinius joined #perl6
08:55 jnthn It may be possible that something like sub parse-time(Str $time --> (Int, Int, Int)) { } can actually work...
08:55 jnthn Probably not in Rakudo though, as I think we didnt' catch up with latest STD changes
08:58 hoelzro ah ha
09:05 daxim joined #perl6
09:13 dalek Perlito: bd13f1a | (Flavio S. Glock)++ | / (5 files):
09:13 dalek Perlito: Perlito5 - indirect syntax tweak
09:13 dalek Perlito: review: https://github.com/fglock/Perlito/commit/bd13f1a1e3
09:18 hoelzro could anyone help me understand what's going wrong here: https://gist.github.com/hoelzro/6061095
09:24 FROGGS hoelzro: I think it just expects a grammar + action-class in methods like INTERPOLATE
09:26 hoelzro I see...
09:26 * hoelzro doesn't really understand
09:27 hoelzro so the way regexes work changes in sub vs method?
09:27 FROGGS hmmm
09:31 FROGGS let me test something
09:33 FROGGS ahhh
09:35 FROGGS this is to blame: https://github.com/rakudo/rakudo/blob/nom/src/core/Cursor.pm#L60
09:35 hoelzro anything interesting to report?
09:35 hoelzro so...is that a bug?
09:35 FROGGS timespec is Callable, and it calls it by passing self, which is the Cursor class
09:35 FROGGS I'm trying a fix right now
09:35 dalek Perlito: 39a5fa6 | (Flavio S. Glock)++ | / (4 files):
09:35 dalek Perlito: Perlito5 - indirect syntax tests tweak
09:35 dalek Perlito: review: https://github.com/fglock/Perlito/commit/39a5fa61ef
09:35 FROGGS (passing $?CLASS instead of self)
09:36 hoelzro why does that only happen in method and not sub
09:36 hoelzro ?
09:36 FROGGS because a sub doesnt belong to a class?
09:36 FROGGS errr
09:37 FROGGS hmmm
09:37 FROGGS I'm not sure
09:37 hoelzro so how do I fix this? =)
09:37 hoelzro I mean, I could just have the parsing routine outside of my class
09:37 FROGGS just wait a sec, and we'll see if I can provide a patch
09:38 hoelzro ok =)
09:38 FROGGS hmmm, fail :o(
09:42 FROGGS maybe the regex declarator has to be tweaked
09:54 kaleem joined #perl6
09:55 jnthn Workaround may be my regex foo(Cursor:) { ... }
09:56 FROGGS nope, that explodes too
09:56 FROGGS r: class C { method m($s) { my regex r(Cursor:) { \d+ }; $s ~~ /^<r>$/ } }; say C.m(123)
09:56 camelia rakudo 8a1cd0: OUTPUT«「123」␤ r => 「123」␤␤»
09:56 FROGGS ?
09:56 domidumont joined #perl6
09:56 FROGGS okay, explodes locally
09:56 FROGGS -.-
09:57 FROGGS I should update my rakudo installation moar often
09:57 FROGGS hoelzro: ^^
09:57 jnthn I'm guessing it just says, "am I in a package", and then takes the type of that as the invocant type
09:58 jnthn I guess instead it should look at $*SCOPE
10:01 hoelzro so is what I'm doing wrong? or is this a bug?
10:04 FROGGS It is a bug, but you can workaround it by using (Cursor:) as the signature of your regex declarations
10:04 jnthn I'd say it's a bug
10:04 hoelzro alright
10:07 hoelzro hmm, this is odd
10:07 hoelzro sub MAIN(Str $time) { ... }
10:07 hoelzro when I call './countdown 10', it complains
10:07 hoelzro 'Usage: ./countdown <time>'
10:08 tadzik try "as Str", maybe?
10:09 hoelzro tadzik: where would I put that?
10:10 tadzik hoelzro: sub MAIN($time as Str)
10:10 hoelzro ah
10:52 colomon joined #perl6
10:59 scottp joined #perl6
10:59 smash joined #perl6
10:59 daxim joined #perl6
11:00 autumn joined #perl6
11:00 djanatyn joined #perl6
11:01 Celelibi joined #perl6
11:03 rindolf joined #perl6
11:18 daxim building nqp-jvm-2013.07  -  http://paste.scsys.co.uk/263423
11:19 daxim is this a known failure?  should I disable tests to build a package, or apply a patch to the source after unpacking?
11:21 hoelzro FROGGS, jnthn: neither of you have submitted a rakudobug for that regex bug I found earlier, have you?
11:21 hoelzro if not, I'll submit
11:22 hoelzro also, has anyone considered my pull request? I thought it was a nice little feature
11:24 FROGGS hoelzro: no, havnt submitted it...
11:24 hoelzro k, I'll do it
11:24 FROGGS had no time yet to test your PR
11:24 FROGGS thanks
11:24 FROGGS hoelzro++
11:29 hoelzro there's no perl6bug program, is there?
11:30 hoelzro this is terribly stupid of me, but I can't seem to figure out how to submit a ticket =/
11:30 FROGGS just send an email to rakudobug@perl.org
11:31 hoelzro ah ha
11:31 hoelzro what about source code samples? are attachments ok?
11:31 daxim it's RT.  yes and yes
11:31 hoelzro ok, cool
11:33 * hoelzro just realized he's using Rakudo * 2013.02
11:38 diakopter [Coke]: ping
11:48 fridim__ joined #perl6
11:50 benabik joined #perl6
11:53 logie joined #perl6
11:53 hoelzro I think I found another bug: https://gist.github.com/hoelzro/6061791
11:53 hoelzro that doesn't seem right to me...
11:54 hoelzro (this is now with a Rakudo built from Git)
11:54 lizmat Indeed, that error is LTA
11:54 lizmat but it is correct, as a regex is just a special sub/method
11:55 tokuhirom joined #perl6
11:55 SamuraiJack__ joined #perl6
11:55 hoelzro but it's a lexical regex; why would that create a method?
11:56 hoelzro also, LTA?
11:56 timotimo "Less Than Awesome"
11:57 hoelzro ah =)
12:03 jnthn Any regex needs a cursor to operate on
12:03 jnthn lexical regex really means "install in lexical scope"
12:03 jnthn colomon, FROGGS: Either of you know the state of the NQP sprintf.t failures? Are they machine specific?
12:04 colomon jnthn: they're not
12:04 colomon jnthn: they're just stuff that needs to be fixed.
12:04 colomon I'll try to get to it today or tomorrow
12:04 hoelzro jnthn: so that means it's a method, but it also has an entry in the lexicals table?
12:05 jnthn hoelzro: Well, it doesn't get installed in a method table, but yeah, all regexes (even /.../) are generated as methods
12:06 hoelzro so should a duplicate lexical regex (in different scopes) be considered an error?
12:06 jnthn hoelzro: To the degree that they all need to be invoked on a cursor
12:06 jnthn No
12:06 hoelzro ok, that's what I was wondering =)
12:06 hoelzro so that's another bug, rigth?
12:06 hoelzro *right
12:06 jnthn Just as lexical $a in an inner scope doesn't cause issues with a lexical $a in an otuer scope
12:06 jnthn What's another bug?
12:06 colomon jnthn: they're basically things we'd fudge in roast.  Dunno if that is possible (or desirable) in NQP tests.
12:07 hoelzro jnthn: https://gist.github.com/hoelzro/6061791
12:09 jnthn oh, hm, I should check spec...
12:09 timotimo i was wondering ... is it a regression to go from wrong to wrong? i'm not sure if the second wrong is sufficiently less wrong though
12:10 timotimo (my code goes from rendering =output blocks like regular text paragraphs to rendering them as preformatted text, but bunched up into a single line ...)
12:10 jnthn I'm not sure if the "my" is meant to do an additional install of a method in the lexical scope as well as the method table, or if it's instead
12:11 jnthn Rakudo is taking it to be both
12:11 hoelzro indeed
12:11 hoelzro something to think about =)
12:11 jnthn I'm not sure if the spec calsl it either way
12:11 hoelzro hmm
12:11 hoelzro to me, it seems odd
12:11 jnthn It appears to be deliberately done the current way ratehr than being an accident though...
12:11 hoelzro ah ha
12:11 jnthn Yeah, I can argue it both ways :)
12:12 jnthn I can't recall a spec quote on it
12:12 jnthn Well, TimToady++ backlogs ;)
12:12 moritz usually 'my' means 'lexically only'
12:12 hoelzro that's how I look at it
12:12 jnthn yeah, I'd be happy enough going that way
12:12 hoelzro I have one more "bug" to report: https://gist.github.com/hoelzro/6061896
12:13 lizmat spectesting double 'regex' error message with more awesomness
12:16 * benabik wonders if hoelzro's example would work if Rakudo had IntStr.
12:16 lizmat hoelzro: is that parameter supposed to be a number or a string?  or can it be both?
12:20 lizmat r: class A { { my method a { } }; { my method a { } }  # this is not just for "my regex", but also for "my method"
12:20 camelia rakudo 8a1cd0: OUTPUT«[31m===[0mSORRY![31m===[0m�Package 'A' already has a method 'a' (did you mean to declare a multi-method?)�at /tmp/wRgBu4_H7h:1�------> �»
12:21 lizmat maybe it should complain about "my method" ?
12:21 jnthn lizmat: Well, we're speculating that "my method" should not make a method table entry
12:21 lizmat but how can you call that method then?
12:22 jnthn You couldn't call it as a method in that case
12:22 lizmat I mean, methods are generally called on objects outside of the namespace they're declared
12:22 jnthn Only lexically
12:22 lizmat so this would only make sense when called objects of class "A" inside the "A" namespace?
12:23 lizmat inside that scope even?
12:23 jnthn yeah...it's a weird thing to do for normal methods
12:23 jnthn Less weird for regexes though
12:24 dalek rakudo/nom: 1822009 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/MethodContainer.nqp:
12:24 dalek rakudo/nom: Make double method error more awesome
12:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1822009f50
12:25 * lizmat wonders where we should put tests for that
12:27 diakopter there's a bunch of error tests centralized somewhere I thought
12:30 jnthn If you make it a typed exception, then it can go into S32-exceptions/misc.t
12:31 hoelzro lizmat: it's a Str, but isn't '10' a Str?
12:31 lizmat looks_like_a_number  :-)
12:31 hoelzro heh
12:31 moritz hoelzro: sub MAIN_HELPER does some magic to turn command line arguments into the "appropriate" types
12:31 hoelzro well, shouldn't MAIN accept '10' as parameter, though?
12:31 jnthn val(...) semantics maybe
12:32 hoelzro it just seems odd
12:32 jnthn But we dont' have IntStr and friends yet.
12:32 jnthn MI :/
12:32 lizmat perl6 a.p6 '"10"' # would work
12:32 hoelzro sub MAIN(Cool $value) works
12:33 hoelzro but then I have to manually coerce it
12:33 benabik Would Str(Any) work?  Or is that Any(Str)?
12:33 lizmat NYI
12:33 benabik :-(
12:34 jnthn You writre that as "as Str" for now
12:34 lizmat hoelzro: specifying Cool is essentially the same as Any, and that's the defauylt
12:34 hoelzro I see
12:36 jlaire joined #perl6
12:37 benabik jnthn: Multiple inheritance is NYI?
12:38 jnthn benabik: Yes, it's implemented, I'm just unhappy we end up using it in core...
12:38 ribasushi joined #perl6
12:38 benabik I suppose I can understand that attitude.
12:40 lizmat in the core, it is always the problem to strike a balance between performance and being an example of Perl 6 code
12:41 lizmat sometimes some features are not available yet at some point in the core (such as phasers), and sometimes features are currently too unoptimized (such as multi-method dispatch)
12:46 diakopter hopefully someday a good JIT solves that tradeoff
12:47 lizmat s/hopefully//
12:47 JimmyZ JVM :)
12:48 FROGGS we want moar!
12:48 * JimmyZ too :P
12:49 diakopter JimmyZ: a Perl6/bytecode-focused JIT, as opposed to JVM/bytecode..
12:50 JimmyZ A Perl6 JIT by using luajit's dynasm \o/
12:52 timotimo is there a good mechanism to send data "back in time" while backtracking?
12:54 [Coke] ... returns from a time warp where he said he'd run something again in a few hours, but it's already tomorrow.
12:55 lizmat .oO( Rocky! )
12:56 jose__ joined #perl6
12:56 timotimo the use case would be the diagram of WHY and WHEREFORE, where when a shorter indent that is not short enough to terminate the raw block is encountered, it should send the new short indent "back in time" to the place where it decided on how much indent to use
12:57 timotimo anyway, maybe that's for much later. first i want to finish up the proper dedenting fix along with fixes to Pod::To::HTML and Pod::To::Text as well as the perl6doc repository and the S26 spec ... oh yay.
12:58 [Coke] diakopter: Pong.
12:59 diakopter [Coke]: do you have some time to help with setting up rakudo-jvm?
12:59 kaare_ joined #perl6
12:59 diakopter [Coke]: I'm working on moving camelia to a far faster server with 4x ram
13:00 [Coke] I am at $dayjob, so not a lot of time, but I can spend a few minutes here and there. (and tonight is the first Albany.pm meeting in about 5 years. woot)
13:00 logie joined #perl6
13:01 konundra joined #perl6
13:03 lizmat [Coke]++
13:04 dalek rakudo-js: a7c4605 | (Pawel Murias)++ | / (8 files):
13:04 dalek rakudo-js: Start rewriting the premetamodel grammars attempt to a grammar implementation using QRegex.
13:04 dalek rakudo-js:
13:04 dalek rakudo-js: Pass tests 31 and 29.
13:04 dalek rakudo-js: Add list_i,push_i, stub minor things.
13:04 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/a7c4605994
13:05 pmurias joined #perl6
13:05 pmurias pmichaud_: ping
13:08 [Coke] lizmat: don't get too excited. It's me and one guy who's in town for a wedding from africa.
13:09 lizmat it's a start (again)  :-)
13:12 telex joined #perl6
13:13 dalek rakudo/nom: 3f8b609 | (Elizabeth Mattijsen)++ | src/core/operators.pm:
13:13 dalek rakudo/nom: Fix comment spello
13:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3f8b609cad
13:15 PacoAir joined #perl6
13:16 _jaldhar joined #perl6
13:25 xilo joined #perl6
13:27 bluescreen10 joined #perl6
13:31 lizmat afk for a few hours again&
13:45 [Coke] did rebuf get merged?
13:46 moritz looks like it, yes
13:47 [Coke] danke.
14:01 bluescreen10 joined #perl6
14:05 timotimo uri is failing two utf8-based escape tests
14:06 timotimo its "got" result contains lots of %FF
14:06 timotimo that confuses me a bit
14:06 Celelibi joined #perl6
14:07 timotimo apparently the implementation for the escaping is '%' ~ .Str.encode.unpack('H*').uc.comb(/../).join('%')
14:07 timotimo r: "ö".Str.encode.unpack('H*')
14:07 camelia rakudo 182200:  ( no output )
14:07 timotimo r: "ö".Str.encode.unpack('H*').perl.say
14:07 camelia rakudo 182200: OUTPUT«"fffffffc3fffffffb6"␤»
14:07 timotimo r: "a".Str.encode.unpack('H*').perl.say
14:07 camelia rakudo 182200: OUTPUT«"61"␤»
14:08 timotimo that's not utf8, is it?
14:08 timotimo r: "ö".Str.encode.unpack('h*').perl.say
14:08 camelia rakudo 182200: OUTPUT«Unrecognized directive 'h'␤  in block  at src/gen/CORE.setting:4485␤  in method reify at src/gen/CORE.setting:6513␤  in method reify at src/gen/CORE.setting:6408␤  in method gimme at src/gen/CORE.setting:6836␤  in method eager at src/gen/CORE.setting:6815␤  in meth…
14:08 timotimo "ö".encode('utf-8').perl.say
14:08 timotimo r: "ö".encode('utf-8').perl.say
14:08 camelia rakudo 182200: OUTPUT«utf8.new(-61, -74)␤»
14:09 timotimo ... is that so?
14:09 timotimo jnthn: does that seem right to you? ^
14:10 [Coke] r: say utf8.new(-61, -74);
14:10 camelia rakudo 182200: OUTPUT«Buf:0x<ffffffc3 ffffffb6>␤»
14:10 [Coke] r: say ~utf8.new(-61, -74);
14:10 camelia rakudo 182200: OUTPUT«ö␤»
14:10 timotimo i mean c3 and b6 are correct, but all the f's in front i don't think are right
14:10 [Coke] it round trips, anyway.
14:10 rindolf joined #perl6
14:10 timotimo maybe internally utf8 uses signed where it should be using unsigned or something?
14:10 [Coke] r: say ~utf8.new(-66, -74);
14:10 camelia rakudo 182200: OUTPUT«Malformed UTF-8 string␤␤  in method decode at src/gen/CORE.setting:4507␤  in method Str at src/gen/CORE.setting:4512␤  in method Str at src/gen/CORE.setting:905␤  in method Stringy at src/gen/CORE.setting:914␤  in sub prefix:<~> at src/gen/CORE.setting:1304␤  in su…
14:11 timotimo r: say 'ö'.unpack('H*')
14:11 camelia rakudo 182200: OUTPUT«No such method 'unpack' for invocant of type 'Str'␤  in block  at /tmp/aOauEAI4su:1␤␤»
14:11 timotimo mhm.
14:12 timotimo r: say ('ö'.encode >>*>> -1)
14:12 camelia rakudo 182200: OUTPUT«-2␤»
14:12 timotimo er, no.
14:13 benabik I think it's converting from a signed byte to signed integer.
14:13 benabik And when it's building the utf8 from the ints, it's truncating the higher bits.
14:13 timotimo ah, of course. an integer in a utf8 type is clearly not what's wanted
14:13 benabik Yes.
14:14 timotimo class utf8 does Blob[int8], so at least that part seems right
14:14 benabik 0xc3 has the high bit set, so it's (obviously?) negative, so extending it to a 64b int requires adding 0xffffff, not 0x000000
14:15 timotimo that makes sense indeed
14:15 timotimo a temporary crutch would be to +& it with 0xff, just to make it all pass again (that is, in the uri_escape function)
14:16 timotimo er, what am i saying. utf8 does Blob[int8] should be does Blob[uint8], no?
14:17 timotimo (and of course uint8 and friends are not defined)
14:19 benabik Yeah.  Should be, if it exists.  :-/
14:19 benabik This may simply be an output bug, where it's outputting more bits than it's storing.
14:22 ajr joined #perl6
14:28 jnthn I wondered if the signedness thing would bite at some point.
14:28 jnthn :/
14:28 jnthn Neither Parrot nor JV
14:28 jnthn M offer signed integers
14:28 jnthn So it'll need a hack.
14:32 jnthn unpack and pack passed their tests on the new impl, so I'm guessing they are undertested :(
14:32 pmurias jnthn: you mean neighter Parrot nor JVM offers unsigned integers?
14:32 jnthn pmurias: yes
14:32 pmurias * neither
14:33 timotimo easy: store utf8 in 16-bit integers ... >_>
14:33 jnthn I suspect I can find a way to cheat us a uint8, uint16 and uint32
14:33 jnthn In arrays at least
14:33 jnthn timotimo: That's horribly wasteful.
14:34 timotimo yes, hence the emoticon
14:34 pmurias can't we store unsigned integers as signed ones and just do the operations differently?
14:34 colomon stupid perl6 question: how does one go from, say, a binary number string to an Int?
14:35 jnthn r: say :2('10101')
14:35 timotimo colomon: .chrs is one option?
14:35 camelia rakudo 3f8b60: OUTPUT«21␤»
14:35 timotimo oh, that's what you mean
14:35 jnthn pmurias: Yeah, that's what I have in mind ;)
14:35 colomon r: my $a = "1010101"; say :2($a)
14:35 camelia rakudo 3f8b60: OUTPUT«85␤»
14:35 colomon jnthn++
14:35 jnthn pmurias: Whenever we pull anything out of an array we have to widen it anyway.
14:35 jnthn pmurias: JVM treats all ints as 64-bit for calculation purposes.
14:36 jnthn On Parrot...well, depends if you build 32-bit or 64-bit :)
14:36 robinsmidsrod joined #perl6
14:36 timotimo hm, how do i generate a buf from another buf with .abs run over all the numbers in it?
14:37 pmurias jnthn: have you seen https://blogs.oracle.com/darcy/entry/unsigned_api? they even link to a patch we could steal code from for backporting
14:37 jnthn Buf.new($otherbuf.map(*.abs))
14:37 timotimo neato
14:37 timotimo r: "ö".encode.map(*.abs).perl.say
14:37 camelia rakudo 3f8b60: OUTPUT«No such method 'abs' for invocant of type 'utf8'␤  in block  at /tmp/ID4IxP_Sd8:1␤␤»
14:37 timotimo r: "ö".encode.map(*.&abs).perl.say
14:37 camelia rakudo 3f8b60: OUTPUT«(2,).list␤»
14:37 timotimo but that's wrong :(
14:37 jnthn uh, guess you need .list.map
14:38 timotimo r: "ö".encode.list.map(*.&abs).perl.say
14:38 camelia rakudo 3f8b60: OUTPUT«(61, 74).list␤»
14:38 timotimo that seems better
14:38 jnthn I'm pretty sure it ain't :)
14:38 timotimo hehe.
14:38 timotimo it's all temporary
14:38 jnthn The problem is not that you need to absolute it
14:38 jnthn It's that it's coming out signed when it should be unsigned
14:39 jnthn You want to add 128 if it's negative...
14:39 timotimo right
14:39 jnthn but if you shove it right back into a buf8 you'll lose it again
14:39 jnthn so you'd have to put it in a buf16 or so
14:40 timotimo i won't shove it into a buf. this is just to fix the test failure in URI::Escape so that i can install Pod::To::HTML to see if the output looks right
14:40 timotimo at the moment i don't care about correctness in this part. i could equally well install it with --notests actually.
14:40 jnthn are you patching Rakudo or URI::Escape?
14:40 colomon rn: my @a := 1, 1, * R+ * … *; say @a[3]
14:40 camelia niecza v24-88-g1f87209: OUTPUT«[31m===[0mSORRY![31m===[0m��Confused at /tmp/vHFqxuNUZM line 1:�------> [32mmy @a := 1, 1, * R+ * [33m�[31m… *; say @a[3][0m��Parse failed��»
14:40 camelia ..rakudo 3f8b60: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/5u8UmUDL0A:1â�¤------> [32mmy @a := 1, 1, * R+ * [33mâ��[31m… *; say @a[3][0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤        statement endâ�¤        statement m…
14:40 timotimo the latter
14:40 jnthn We should really fix it in Rakudo, and add a spectest
14:40 colomon rn: my @a := 1, 1, * + * … *; say @a[3]
14:40 camelia niecza v24-88-g1f87209: OUTPUT«[31m===[0mSORRY![31m===[0m��Confused at /tmp/Cz3fU4ShAZ line 1:�------> [32mmy @a := 1, 1, * + * [33m�[31m… *; say @a[3][0m��Parse failed��»
14:40 camelia ..rakudo 3f8b60: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/T0SdYA7nTu:1â�¤------> [32mmy @a := 1, 1, * + * [33mâ��[31m… *; say @a[3][0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤        statement endâ�¤        statement mo…
14:40 timotimo i can surely add a spectest. the fixing i'll leave up to someone else, though.
14:41 jnthn *nod*
14:42 Psyche^ joined #perl6
14:42 timotimo there's only S03-operators/buf.t with "buf" in its name. where should i look?
14:42 timotimo ah
14:42 timotimo S32-str/encode.t seems right?
14:43 jnthn yeah
14:43 colomon rn: my @a := 1, 2, 3 ... *; say @a[3]
14:43 camelia rakudo 3f8b60, niecza v24-88-g1f87209: OUTPUT«4␤»
14:43 colomon rn: my @a := 1, 2, * + * ... *; say @a[3]
14:43 camelia rakudo 3f8b60, niecza v24-88-g1f87209: OUTPUT«5␤»
14:43 colomon rn: my @a := 1, 2, * R+ * ... *; say @a[3]
14:44 camelia niecza v24-88-g1f87209: OUTPUT«5␤»
14:44 camelia ..rakudo 3f8b60: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤  in method Numeric at src/gen/CORE.setting:894␤  in sub infix:<+> at src/gen/CORE.setting:3299␤  in sub infix:<+> at src/gen/CORE.setting:3297␤  in block  at src/gen/CORE.setting:14527␤  in …
14:44 colomon rakudobug?
14:44 jnthn I guess Rakudo doesn't like whatever-currying meta-ops. Should that work?
14:44 colomon as far as I know.
14:47 dalek roast: 2b3c0d4 | (Timo Paulssen)++ | S32-str/encode.t:
14:47 dalek roast: add a test to ensure utf8 codepoints come out right
14:47 dalek roast:
14:47 dalek roast: not, for example, negative or off-by-one.
14:47 dalek roast: review: https://github.com/perl6/roast/commit/2b3c0d429e
14:47 timotimo pretty minimal, but it does explode as intended.
14:49 gdey joined #perl6
14:55 [Coke] pn: ('ä'.encode('UTF-8') eqv Buf.new(:16<c3>, :16<a4>))
14:55 [Coke] rpn: say ('ä'.encode('UTF-8') eqv Buf.new(:16<c3>, :16<a4>))
14:55 camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Cannot call new; none of these signatures match:␤    Mu, *%_␤  at /tmp/JW8QI0bJOR line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @…
14:55 camelia ..pugs: OUTPUT«*** No such method in class Str: "&encode"␤    at /tmp/lu6ojf5Tr2 line 1, column 5 - line 2, column 1␤»
14:55 camelia ..rakudo 3f8b60: OUTPUT«False␤»
14:56 [Coke] can you fudge that for niecza and pugs?
14:56 [Coke] i'll let jnthn decide if he wants to fudge it for rakudo
14:57 timotimo oh wow
14:58 timotimo i have apparently introduced a regression that affects exactly *one* out of multiple code blocks in the classtut
15:03 telex joined #perl6
15:04 dayangkun joined #perl6
15:08 jnthn decommute &
15:09 iSlug joined #perl6
15:10 fhelmberger joined #perl6
15:25 dmol joined #perl6
15:30 skids joined #perl6
15:31 kaare__ joined #perl6
15:34 xinming joined #perl6
15:41 zby_home_ joined #perl6
15:42 timotimo i'm still puzzled by the growing memory usage of htmlify
15:42 timotimo i suppose it kind of makes sense that rakudo would want to keep a bit of the stuff hanging around ...
15:43 FOAD joined #perl6
15:55 timotimo it's probably the registry keeping all the $pod objects around until the very end
15:56 timotimo maybe a bit of processing can be moved to the front, so that it'll only have to keep a string around instead of the whole thing.
15:56 raiph joined #perl6
15:58 [Coke] pmurias++
15:58 timotimo apparently it does have to keep around lots of the data
16:05 moritz it basically keeps around every Pod:: object it ever parses
16:06 moritz but it used to be about 1GB
16:06 timotimo either i have broken it, or it has been broken since you last looked
16:06 FROGGS maybe both :P
16:06 timotimo Generated on 2013-04-01T01:53:43-0200  -  that's a long time ago i feel.
16:11 timotimo i'm not really confident in the way pod_string_character works. can that really be efficient? taking one character at a time?
16:13 timotimo but of course that doesn't impact memory usage. or at least it shouldn't do that
16:16 FROGGS[mobile] joined #perl6
16:17 fhelmberger joined #perl6
16:18 syed_ joined #perl6
16:19 syed_ left #perl6
16:19 konundra joined #perl6
16:21 ajr joined #perl6
16:22 Guest1337 joined #perl6
16:27 domidumont joined #perl6
16:35 FROGGS joined #perl6
16:36 btyler joined #perl6
16:48 spider-mario joined #perl6
16:56 logie joined #perl6
16:59 xinming joined #perl6
17:07 pmurias [Coke]: what was the karma for?
17:13 [Coke] gsoc project
17:17 ajr joined #perl6
17:17 colomon woah, lot of new module test failures overnight
17:18 dalek rakudo-star-daily: df67d1d | coke++ | log/ (5 files):
17:18 dalek rakudo-star-daily: today (automated commit)
17:18 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/df67d1d6ff
17:18 dalek rakudo-star-daily: ebd4c1b | coke++ | log/ (5 files):
17:18 dalek rakudo-star-daily: today (automated commit)
17:18 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/ebd4c1b2db
17:18 dalek rakudo-star-daily: f34ac5a | coke++ | log/ (5 files):
17:18 dalek rakudo-star-daily: today (automated commit)
17:18 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/f34ac5a4a7
17:18 dalek rakudo-star-daily: 11c0c3c | coke++ | log/ (5 files):
17:18 dalek rakudo-star-daily: today (automated commit)
17:18 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/11c0c3c581
17:24 fridim__ joined #perl6
17:37 xinming joined #perl6
17:42 * timotimo just reverted an old merge commit ... git is magical
17:43 [Coke] when the failing(!) test was added to S32-str/encode.t, looks like the plan might need updating also.
17:43 [Coke] *might have needed
17:44 timotimo oooh, yes
17:45 timotimo sorry about that
17:45 dalek roast: d9ba3ef | (Timo Paulssen)++ | S32-str/encode.t:
17:45 dalek roast: bump the plan for the last commit
17:45 dalek roast: review: https://github.com/perl6/roast/commit/d9ba3efd4c
17:45 timotimo oh, hold on, the "failing(!)" indicated i should have TODO'd it?
17:46 [Coke] yes.
17:46 [Coke] unless the plan is for it to be fixed asap, sure.
17:46 dalek roast: 2dfe8c6 | (Timo Paulssen)++ | S32-str/encode.t:
17:46 dalek roast: ... and also mark the failing test as todo.
17:46 dalek roast: review: https://github.com/perl6/roast/commit/2dfe8c6bf0
17:46 timotimo must be the heat messing with my brain functions
17:47 timotimo i blame external factors for my incompetence!
17:47 moritz [Coke]++, timotimo++ # fixing tests
17:47 [Coke] [resend] can you fudge that for niecza and pugs?
17:47 kaleem joined #perl6
17:48 timotimo ... surely can. should i squash all those commits quickly before anybody else sees them?
17:48 [Coke] they've been seen. :)
17:48 timotimo noooooooooooo~
17:49 [Coke] (no worries)
17:49 timotimo pn: 'ä'.encode('UTF-8').perl.say
17:49 [Coke] seriously, no worries. Thanks for adding tests!
17:49 moritz timotimo: more commits, more karma :-)
17:49 timotimo perl6: 'ä'.encode('UTF-8').perl.say
17:49 camelia rakudo 3f8b60: OUTPUT«utf8.new(-61, -92)␤»
17:49 camelia ..niecza v24-88-g1f87209: OUTPUT«Buf.new(...)␤»
17:50 timotimo pugs isn't being run any more?
17:50 timotimo n: 'ä'.encode('UTF-8').list.perl.say
17:50 camelia niecza v24-88-g1f87209: OUTPUT«(Buf.new(...), ).list␤»
17:50 timotimo aaw come on :(
17:50 timotimo n: 'ä'.encode('UTF-8')[0].perl.say
17:50 camelia niecza v24-88-g1f87209: OUTPUT«Buf.new(...)␤»
17:50 timotimo how do i even ...
17:51 timotimo n: say 'ä'.encode('UTF-8') eqv Buf.new(:16<c3>, :16<a4>)
17:51 camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Cannot call new; none of these signatures match:␤    Mu, *%_␤  at /tmp/9RhEt929Bq line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @…
17:51 timotimo n: say 'ä'.encode('UTF-8') eqv Buf.new([:16<c3>, :16<a4>])
17:51 camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Cannot call new; none of these signatures match:␤    Mu, *%_␤  at /tmp/ZwdzLbyKzG line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @…
17:51 [Coke] timotimo: if you want to run all 3 you need "npr: "
17:51 timotimo i wanted only pugs and niecza. i know the output of rakudo already
17:52 timotimo are these S32-str/encode.t tests being run on niecza at all? it would seem like there'd be multiple actual failures
17:52 * timotimo looks at the always useful roast-data logs
17:52 colomon Niecza doesn't have Buf, as far as I know
17:53 timotimo they are not being run at all, so at least i don't have to fudge them for niecza
17:53 timotimo same for pugs.
17:53 [Coke] timotimo: (not running them) whoops, didn't even think to double check that.
17:53 [Coke] timotimo++ timotimo++
17:53 timotimo i'm glad the heat has left some shred of thinking capability in my head :)
17:54 colomon fifteen new module failures overnight, don't have time to look into them right now.
17:55 colomon Bailador, CSS::Grammar, LWP::Simple, Pod::To::HTML, p6doc, etc
17:56 timotimo Pod::To::HTML fails (i think) because URI doesn't finish its tests (due to the encoding issue i added that non-perfect test for earlier today)
17:56 timotimo and i think p6doc fails due to the Pod::To::HTML failure
17:56 * [Coke] really needs to update the daily star runs to do latest-of-everything. blargh
17:57 timotimo i wonder if jnthn plans to give us uint native types today
17:59 ilbot_nextgen joined #perl6
18:00 moritz_ joined #perl6
18:00 moritz_ left #perl6
18:06 btyler joined #perl6
18:09 timotimo it's so strange. just when the script finishes with "reading lib/..." it's at almost 2gb of resident memory
18:09 timotimo just before that it's at 600 mb
18:10 araujo joined #perl6
18:10 timotimo then it just jumps up 1.5gb? it should just have a dict with a couple of key/value pairs in it :|
18:11 timotimo IO::Path objects shouldn't be big, should they?
18:24 spider-mario hm, how about changing this in ConfigureJVM.pl?
18:24 spider-mario -        if (open my $CLEAN, '-|', "$make clean") {
18:24 spider-mario +        if (open my $CLEAN, '-|', $make, clean) {
18:25 geekosaur bareword clean
18:25 spider-mario oops, indeed
18:25 spider-mario my bad
18:25 spider-mario if (open my $CLEAN, '-|', $make, 'clean') {
18:25 spider-mario then.
18:27 timotimo seriously, how in the world is a list composed of 153 pairs that have a string and a path in them making rakudo take up 1.8 gigs of ram?
18:27 tadzik you could say that...
18:27 tadzik (•_•)
18:27 tadzik ( •_•)>⌐■-■
18:27 tadzik (⌐■_■) it scales
18:28 FROGGS *g*
18:28 timotimo :|
18:30 jnthn .oO( web scale! )
18:30 jnthn That does sound rather wtf...
18:30 timotimo r: say "That's {(1.2 * 1024 * 1024) / 152} kilobytes per entry, captain."
18:30 camelia rakudo 3f8b60: OUTPUT«That's 8278.231579 kilobytes per entry, captain.␤»
18:31 TimToady .oO(What The Fish Scales?)
18:35 jnthn timotimo: Can you reproduce it in a small test case?
18:36 timotimo yeah, it's small-ish. i'll gist it for you
18:37 raiph joined #perl6
18:38 timotimo https://gist.github.com/timo/a493f5fbb80e0f298f92  -  should be executed in perl6/docs or what's the repo name.
18:40 lizmat good *, #perl6!
18:41 lizmat is there a way to have parakudo produce a stack trace when being in an infiniloop somewhere in its bowels ?
18:42 lizmat some signal I can send to the process?
18:42 timotimo i would love to know that as well
18:44 lizmat seems there are signal handlers defined, as sending a kill -30 will actually state "User defined signal 1: 30"
18:46 dalek perl6-roast-data: 54454cf | coke++ | / (5 files):
18:46 dalek perl6-roast-data: today (automated commit)
18:46 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/54454cfddc
18:47 lizmat jnthn: doesn nqp install those signal handlers, or does parrot?
18:47 lizmat 99.34%
18:47 jnthn lizmat: Pretty sure it ain't NQP
18:48 jnthn lizmat: As in, almost certain...if it is, it's  bit of NQP I've never seen :)
18:48 lizmat hehe
18:48 lizmat so I guess it becomes a question of parrot calling a nqp::code in a signal handler
18:48 [Coke] jnthn++ # few more tenths of a percent!
18:49 jnthn lizmat: That sounds...scary :)
18:50 lizmat well, we want it to die, just with a stack trace, not a segfault  :-)
18:56 dmol joined #perl6
19:01 * lizmat gives up on getting into Parrot
19:01 vk_ joined #perl6
19:02 jnthn ...that was fast :P
19:02 lizmat I wonder whether we couldn't install a signal handler in NQP, that would set a flag and just call nqp::die on the next opcode
19:02 dmol joined #perl6
19:04 jnthn lizmat: Not quite sure how to do that.
19:04 lizmat jnthn: I'm still trying to grok perl6 / rakudo / nqp, and with the limited brain capacity that I have, it just becomes Too Mucb (™)
19:04 lizmat meanwhile, I found where my code infiniloops
19:05 lizmat src/core/Stringy: multi infix:<eq>(\a, \b)       { a.Stringy eq b.Stringy }
19:05 pmurias jnthn: when I'm reading in the stable for a flattened attribute the 0 sc is the current one 1 is the first one in the dependencies table etc.
19:06 lizmat jnthn: I guess .Stringy is a type coercion, right ?
19:06 jnthn pmurias: Yes, sounds right
19:06 jnthn lizmat: Yeah
19:07 jnthn lizmat: Typically calls .Str
19:08 dmol joined #perl6
19:08 stevan__ joined #perl6
19:08 [Coke] lizmat: so you're at the "too many layers of abstraction" layer?
19:09 lizmat that's one way to abstract it  :-)
19:10 lizmat jnthn: in src/core/Any, method join is doing .Str coercion for the elements, and .Stringy for the separator.  Is there a reason for that discrepancy?
19:11 jnthn No, probably wants to be Str for both
19:13 lizmat running spectest
19:13 jnthn Grr...sleeping badly due to heat + early mornings for teaching = lack of energy :/
19:15 [Coke] jnthn++
19:16 lizmat I've moved to tropic schedule:  getting up around 5 am, cycling around 9, lunch, siesta, and then the evening hack  :-)
19:17 FROGGS sounds nice... except the getting up part
19:18 jnthn lizmat: Oh, I'd been getting up at 11am and sleeping around 3am-4am before the teaching happened.
19:19 lizmat FROGGS: yes, that's the hard part
19:19 dalek rakudo/nom: fefe2e4 | jnthn++ | src/ (3 files):
19:19 dalek rakudo/nom: Stub in unsigned integer types.
19:19 dalek rakudo/nom:
19:19 dalek rakudo/nom: They presently have no effect whatsoever and behave signed; future
19:19 dalek rakudo/nom: commits will gradually try to address that.
19:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fefe2e4213
19:21 lizmat it's a start
19:21 lizmat .oO( why do I have a sense of deja vu? )
19:24 TimToady jnthn: yes, a my method should ignore any class around it; it's just a lexical function from that standpoint
19:24 jnthn TimToady: k
19:25 dalek rakudo/nom: 60ea730 | (Elizabeth Mattijsen)++ | src/core/Any.pm:
19:25 dalek rakudo/nom: Unify stringification in .join
19:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/60ea730c4b
19:25 Util_ #ps in 5 minutes
19:33 lizmat jnthn: what's the significance of all infix ops in Stringy doing .Stringy rather than .Str, while Mu.Stringy is just self.Str ?
19:33 jnthn lizmat: There are things that are Stringy that are not Str
19:34 jnthn r: say Buf ~~ Stringy # for example
19:34 camelia rakudo 3f8b60: OUTPUT«True␤»
19:34 * jnthn compiles a patch to make "my method" not end up in le method table
19:34 lizmat but but, the only method Stringy exists in Mu ?
19:35 jnthn Well. That's unfortunate :)
19:35 jnthn Maybe we should add one to Blob :)
19:35 jnthn Does Str not have one?
19:35 lizmat Blob has .Str
19:36 jnthn Yeah, .Stringy should return self.
19:36 abnorman joined #perl6
19:36 [Coke] seen gerd
19:36 [Coke] .seen gerd
19:36 yoleaux I haven't seen gerd around.
19:37 lizmat Str does not have a Stringy
19:37 jnthn Well, doesn't that suck.
19:37 colomon LHF
19:37 colomon VLHF, even
19:37 jnthn very :)
19:38 lizmat that line is easily added, but I still don't really understand the reason why we have Stringy at all
19:39 lizmat I mean, the file is just a storage of infixes in GLOBAL::
19:39 colomon lizmat: think of Cat, when we finally get it
19:39 lizmat ah, now that makes sense (in a way)
19:40 colomon if you just convert it to a Str right away every time you do something, it's completely pointless as a class
19:40 lizmat that's why it is empty now, as a class, right?
19:41 jnthn colomon: Well, it's the case for Buf too
19:41 jnthn colomon: Which we already have
19:42 colomon jnthn: true, but I don't understand why Buf is considered Stringy.  ;)
19:42 colomon whereas with Cat it is really obvious, and clear why you don't want to just convert it to a Str all the time
19:42 lizmat "Cannot auto-generate a proto method for 'Stringy' in the setting"   interesting  :-)
19:44 jnthn lizmat: You must write explicit proto in the setting if you write a multi
19:44 jnthn (of course, inheriting a proto is ok)
19:45 lizmat I'll try to do without for now
19:47 dalek rakudo-js: 539748a | (Pawel Murias)++ | / (3 files):
19:47 dalek rakudo-js: Deserialize flattened attributes, for now we unflatten the attributes as the tradeoffs for doing this seem to be different on JavaScript.
19:47 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/539748af61
19:48 jnthn .oO( how unflattening)
19:49 [Coke] https://gist.github.com/coke/5879701 - updated with latest jvm failure info
19:50 jnthn roast/S32-io/slurp.t
19:50 jnthn 57:#?rakudo.jvm skip "BuF NYI"
19:50 jnthn oh yes it is :P
19:57 pmurias jnthn: how often is pmichaud on the channel nowdays?
19:57 jnthn pmurias: Rarely, it seems
19:58 FROGGS once a month maybe
19:58 jnthn pmurias: You can try email, or maybe somebody else will know the answer
19:58 jnthn (if it's a question you have)
20:00 pmurias jnthn: does he backlog?
20:00 pmurias jnthn: I want to dicuss the midterm evaluation with him (for my GSoC project)
20:00 jnthn ah...
20:00 jnthn Then I'd try email
20:02 wk joined #perl6
20:08 * lizmat is getting really frustrated  :-)
20:08 lizmat 1. one test hangs in S03-sequence/basic.t
20:08 lizmat 2. if I take out that test into a seperate test file, it passes
20:09 lizmat 3. if I skip all of the tests until the hanging test in the original file, it still hangs
20:09 lizmat ideas?
20:11 jnthn TimToady: What about 'our' methods?
20:11 jnthn TimToady: Just in package/lexpad? Or in method table too?
20:11 * jnthn 's patch made them just package/lexpad, which has broken some tests...
20:12 jnthn lizmat: I suggest drinking.
20:12 jnthn lizmat: What if you comment out tests after teh one that fails?
20:13 lizmat ah now, that's an idea
20:13 jnthn .oO( which one :P )
20:14 lizmat the latter, I've been drinking all day
20:14 jnthn :D
20:14 mst ride that ballmer peak!
20:17 lizmat I'd rather have a Bulmers peak
20:18 iSlug joined #perl6
20:18 stevan_ joined #perl6
20:19 colomon Bulmers!
20:20 * FROGGS guesses that mst has an highlight for the word 'drinking'
20:21 lizmat or "drinking all day' :-)
20:22 FROGGS *g*
20:22 FROGGS yeah
20:22 FROGGS must be it
20:22 colomon we're going to try to take our four-year-old to the pub tonight.
20:23 lizmat isn't he much too young for that ?  :-)
20:23 colomon for the music
20:23 colomon it's an experiement.
20:23 colomon he went a bunch of times when he was like 20-24 months old
20:23 timotimo he'll perform? :)
20:23 [Coke] my dad used to take me to the bar and let me play asteroids.
20:23 colomon then he got too squirrelly
20:24 [Coke] yah, my dad did get pretty squirrelly for a while.
20:24 colomon timotimo: no, if all goes well his mom and dad will perform.
20:24 lizmat colomon++
20:24 colomon he's been showing a lot of interest in music again, so we thought we'd try this and see how it went
20:25 lizmat jnthn++   skipping all the tests *after* the hanging test, makes the test pass!
20:25 colomon If I can get Jerry to sing some of his Battle of Lake Erie songs I'm guessing our little guy will be captivated.
20:26 bruges_ joined #perl6
20:30 lizmat jnthn: now found the real hanging test
20:30 lizmat I guess we have some kind of buffering issue in TAP output
20:34 mst did nobody implement $| yet?
20:34 * mst hides
20:34 domidumont joined #perl6
20:34 * colomon has the perfect use for his (not in ecosystem) STEP module, except …. wait, it's only a 13M file!  I thought it was 135M.  My big Linux box might be able to handle parsing 13M…
20:37 [Coke] colomon: is rakudo.jvm any better/faster/different running your module
20:37 [Coke] ?
20:37 colomon [Coke]: dunno, I haven't tried it yet.
20:37 colomon on any of my modules
20:42 lizmat r: say (32,16,8 ...^ Rat) # seems I broke this
20:42 camelia rakudo 60ea73: OUTPUT«32 16 8␤»
20:45 colomon lizmat: what were you doing?
20:45 lizmat trying to implement my latest spec change  :-)
20:53 lizmat r: sub e { "foo" }; say e  # something else I found today, rakudobug ?
20:53 camelia rakudo 60ea73: OUTPUT«2.71828182845905␤»
20:56 arlinius joined #perl6
20:59 colomon n: sub e { "foo" }; say e  # something else I found today, rakudobug ?
20:59 camelia niecza v24-88-g1f87209: OUTPUT«2.7182818284590451␤»
20:59 colomon rn: sub e { "foo" }; say e()  # something else I found today, rakudobug ?
20:59 camelia niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Num␤  at /tmp/UEEkladvqd line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576…
20:59 camelia ..rakudo 60ea73: OUTPUT«foo␤»
21:01 lizmat that's an intriguing error message in niecza
21:01 jnthn Not Rakudo bug; e() is always unambiguously a function all, e is only a listop if there's no term that matches, iirc
21:03 lizmat r: sub e { "foo" }; constant e=42; say e; say e()  # I guess so
21:03 camelia rakudo 60ea73: OUTPUT«42␤foo␤»
21:05 xinming joined #perl6
21:08 TimToady jnthn: 'our method' also does not install in the class; note that 'our $.foo' autogenerates a 'has' method, not an 'our' method
21:11 jnthn TimToady: OK, thanks, will fix the tests that expect it to do so
21:17 dayangkun joined #perl6
21:18 lizmat jnthn: now that I have determined that stringification was not the cause of my hanging test
21:18 lizmat would there be a performance reason for adding a Stringy method to Str or not ?
21:19 lizmat if not, I'd rather leave things the way they are  :-)
21:23 donaldh joined #perl6
21:28 jnthn lizmat: Potentially, yes. Blob should get a method Stringy for correctness reasons also.
21:28 woolfy1 joined #perl6
21:28 lizmat ok, will add one to Str and spectest
21:28 dalek rakudo/nom: e52c59c | jnthn++ | src/Perl6/Actions.nqp:
21:28 dalek rakudo/nom: my/our methods shouldn't go into the method table.
21:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e52c59c6e9
21:28 jnthn lizmat: Can you add one to Blob too? :)
21:29 lizmat sure, for now it would just be self.Str, right ?
21:30 dalek rakudo/nom: b2599cb | (Elizabeth Mattijsen)++ | src/core/operators.pm:
21:30 dalek rakudo/nom: Make sure we don't flatten type objects as endpoints of sequences
21:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b2599cbb2b
21:32 dalek roast: d99ef7f | jnthn++ | S12-class/interface-consistency.t:
21:32 dalek roast: Correct test with regard to 'our method' usage.
21:32 dalek roast: review: https://github.com/perl6/roast/commit/d99ef7fa82
21:32 dalek roast: 9b66fdf | jnthn++ | S12-methods/class-and-instance.t:
21:32 dalek roast: Tests for my/our methods.
21:32 dalek roast: review: https://github.com/perl6/roast/commit/9b66fdfbdb
21:32 jnthn lizmat: no, just self
21:32 lizmat okidoki
21:32 jnthn lizmat: Because Blob ~~ Stringy
21:32 jnthn r: say Blob ~~ Stringy
21:32 camelia rakudo 60ea73: OUTPUT«True␤»
21:32 jnthn OK, that should be the my/our method thing cleaned up :)
21:33 jnthn r: say 'ö'.ord
21:33 camelia rakudo 60ea73: OUTPUT«246␤»
21:36 lizmat r: say Blob.Stringy
21:36 camelia rakudo 60ea73: OUTPUT«use of uninitialized value of type Blob in string context  in any  at src/gen/Metamodel.nqp:1461␤␤␤»
21:37 ajr joined #perl6
21:37 jnthn r: say Blob
21:37 camelia rakudo 60ea73: OUTPUT«(Blob)␤»
21:38 dayangkun_ joined #perl6
21:43 jnthn r: say Buf.new(129)
21:43 camelia rakudo 60ea73: OUTPUT«Buf:0x<ffffff81>␤»
21:43 jnthn r: say Buf.new(129).perl
21:43 camelia rakudo 60ea73: OUTPUT«Buf.new(-127)␤»
21:44 lue joined #perl6
21:47 lizmat r: say Buf.new(-127).gist
21:47 camelia rakudo 60ea73: OUTPUT«Buf:0x<ffffff81>␤»
21:47 jnthn whee
21:47 lizmat looks like it is roundtripping
21:47 jnthn yeah, but 129 should come out as 129 :)
21:47 donaldh Does nqp have the equivalent of -Mmodule, or do I just need to do -e 'use module; ...'
21:47 * jnthn is working on it, but may not get it done tonight
21:47 jnthn donaldh: No, there's no -M
21:48 * donaldh is trying to think of a sane interface to ask for nqp compile / runtime params.
21:52 donaldh maybe  runtime::classpath.nqp  INIT { nqp::say('.../nqp-runtime.jar:.../asm-4.1.jar:.../jline-1.0.jar') }
21:52 donaldh then ./nqp -e 'use runtime::class path'
21:53 dalek roast: 364710c | (Elizabeth Mattijsen)++ | S12-methods/private.t:
21:53 dalek roast: And another todo bites the dust
21:53 dalek roast: review: https://github.com/perl6/roast/commit/364710c9fb
21:54 dalek rakudo/nom: 4550293 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
21:54 dalek rakudo/nom: Add .Stringy to Str and Blob
21:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4550293f03
21:54 jnthn > say chr(246).encode.perl
21:54 jnthn utf8.new(195, 182)
21:54 jnthn yayz
21:55 lizmat jnthn++
21:56 * jnthn does a proper rebuild and spectests
21:58 donaldh jnthn: I've just spotted the generated nqp-config.nqp and nqp --show-config
21:58 jnthn donaldh: oh!
21:58 donaldh jnthn: should I just expand that to include class path, etc.
21:58 jnthn oh wow...
21:58 jnthn donaldh: yes
21:59 jnthn on JVM it's rather minimal :)
21:59 jnthn But yeah, use that \o/
21:59 donaldh I guess the parrot version is more complete.
21:59 jnthn wow, I shoulda known about that :)
21:59 jnthn right
22:03 donaldh okay, there's nothing extra in the parrot --show-config, but we could add config values for each backend as we need them.
22:03 jnthn oh, my --show-config on Parrot shows loads of extras
22:03 donaldh that's parrot's tho.
22:04 jnthn All under parrot::
22:04 jnthn um, I mean nqp --show-config
22:04 jnthn Running on Parrot
22:04 jnthn oh wait, I think I misunderstood what you meant :)
22:04 donaldh Hmmm.
22:04 jnthn On NQP JVM I get just two entries.
22:05 jnthn Anyway, yes, we can add extras
22:05 jnthn :)
22:05 jnthn The parrot ones come out like
22:05 jnthn parrot::win32=1
22:05 jnthn parrot::yacc=echo
22:05 donaldh Yep. and the gen-config script is shared between the jvm and parrot backends.
22:05 jnthn So we can do JVM ones as jvm::prop=foo
22:05 donaldh jvm::nqp-classpath ?
22:06 jnthn wfm
22:06 donaldh ?
22:07 jnthn "works for me" :)
22:07 donaldh jnthn++
22:11 abnorman joined #perl6
22:14 dalek nqp: 06c4835 | jnthn++ | src/vm/parrot/6model/ (6 files):
22:14 dalek nqp: Basic unsigned support for native arrays.
22:14 dalek nqp:
22:14 dalek nqp: Only provided for on the Parrot backend so far; JVM needs similar (and
22:14 dalek nqp: probably more boring/annoying) patches.
22:14 dalek nqp: review: https://github.com/perl6/nqp/commit/06c4835f16
22:14 konundra joined #perl6
22:15 dalek rakudo/nom: d03e621 | jnthn++ | tools/build/NQP_REVISION:
22:16 dalek rakudo/nom: Bump to NQP with unsigned native array support.
22:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d03e621318
22:16 dalek rakudo/nom: 07a1de5 | jnthn++ | src/core/Buf.pm:
22:16 dalek rakudo/nom: Blob, Buf, etc. should use unsinged integers.
22:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/07a1de5287
22:16 lizmat jnthn: something like "(@l >>~~>> [Parameter])", where would I find the code doing this?
22:17 lizmat jnthn: also, should I spectest these changes ?
22:18 lizmat jnthn: actually "(@l >>~~>> Parameter)"
22:18 jnthn lizmat: context?
22:18 benabik joined #perl6
22:19 lizmat another hanging test
22:19 lizmat working on flattening type objects in non-scalar contexts
22:19 jnthn well, it's a hyperop, so HYPER in metaops.pm I guess
22:20 lizmat cool, thanks, will look there
22:20 lizmat (also running spectest of your changes now)
22:20 jnthn yeah, my run looked ok
22:20 dalek roast: bc37edc | jnthn++ | S32-str/encode.t:
22:20 dalek roast: Correct and add to Buf unsignedness tests.
22:20 dalek roast: review: https://github.com/perl6/roast/commit/bc37edcdbe
22:20 jnthn More tests welcome
22:22 lizmat restarting with changed tests
22:22 jnthn :)
22:23 jnthn The uint work I've done is limited to native arrays so far, but hopefully it deals with the ecosystem regressions.
22:25 vk_ joined #perl6
22:26 lizmat hmmm…. segfault on making restricted setting
22:26 jnthn lizmat: You did build a new NQP, yes?
22:26 lizmat I guess I did not
22:26 jnthn ah...
22:27 jnthn I bumped NQP_REVISION...it shoulda whined...
22:27 jnthn Anyway, it needs the NQP updates too
22:27 * jnthn needs some sleep
22:27 jnthn 'night
22:27 lizmat gnight jnthn, thanks for all the help!
22:27 jnthn np, thanks for all the patches! :D
22:27 jnthn o/
22:28 lizmat o/
22:30 benabik joined #perl6
22:30 athomason_ joined #perl6
22:36 abnorman joined #perl6
22:57 lizmat .tell jnthn: after nuking nqp/parrot and install dir and rebuilding from that, I still get a segfault when building RESTRICTED.setting
22:57 yoleaux lizmat: What kind of a name is "jnthn:"?!
22:57 lizmat .tell jnthn after nuking nqp/parrot and install dir and rebuilding from that, I still get a segfault when building RESTRICTED.setting
22:57 yoleaux lizmat: I'll pass your message to jnthn.
22:58 lizmat $ ./perl6 -e 1
22:58 lizmat Segmentation fault: 11
22:59 timotimo that's quite the golf!
23:00 lizmat $ ./perl6
23:00 lizmat > 1
23:00 lizmat Segmentation fault: 11
23:00 lizmat shorter on command line, but needs more lines :-)
23:02 lizmat .tell jnthn seems to be changes in nqp that cause this, rolling back last 2 commits in nom doesn't fix the problem
23:03 yoleaux lizmat: I'll pass your message to jnthn.
23:03 grondilu joined #perl6
23:03 timotimo at least on my linux here i'm running nqp/master + rakudo/nom on parrot 5.5.0 successfully
23:03 xilo joined #perl6
23:03 grondilu rn: my @fib-word := 1, 0, * R~ * ... *; say @fib-word[^3];
23:03 lizmat fwiw, this is OSX
23:04 camelia rakudo 455029: OUTPUT«1 0 Whatever<690350503>0␤»
23:04 camelia ..niecza v24-88-g1f87209: OUTPUT«1 0 01␤»
23:04 lizmat grondilu: is that a recent regression ?
23:06 lizmat ok, building NQP one commit back doesn't work either
23:06 lizmat time to go to bed…  gnight #perl6!
23:07 grondilu lizmat: don't know if it's recent.  I suspect it's not.  R is know to break a few things
23:07 raiph joined #perl6
23:08 * grondilu remember an other example of R breaking stuff but has forgot.  Sorry.
23:08 grondilu rn: say 3 Rxx rand
23:08 camelia niecza v24-88-g1f87209: OUTPUT«0.80465186331637761 0.80465186331637761 0.80465186331637761␤»
23:08 camelia ..rakudo 455029: OUTPUT«0.872750481215434 0.872750481215434 0.872750481215434␤»
23:09 grondilu ^ well there is this but I don't know it is not how it's supposed to behave.
23:13 stevan_ joined #perl6
23:24 timotimo it *would* be a way to prevent the right hand side of xx from thunking ...
23:26 grondilu timotimo: but shoult it prevent it?
23:27 grondilu *shoulD
23:27 * grondilu makes a lot of spelling mistakes.  He should get some sleep :/
23:44 araujo joined #perl6
23:50 yoleaux joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo