Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-11-10

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:12 Psyche^ joined #perl6
00:47 xenoterracide joined #perl6
00:51 colomon woolfy: that's "our" Reini Urban?
00:53 xenoterracide joined #perl6
00:57 * colomon is having trouble of thinking of anyone he knows who has been played by someone else in an IMDB credit.
01:11 djanatyn joined #perl6
01:30 ssutch joined #perl6
01:34 sizz joined #perl6
01:36 BenGoldberg joined #perl6
01:41 [Sno] joined #perl6
01:42 [Sno] joined #perl6
01:43 emma left #perl6
01:45 SevenWolf joined #perl6
01:55 BenGoldberg r: constant a = a; say a
01:55 camelia rakudo-jvm 882e33: OUTPUT«===SORRY!===␤java.lang.NullPointerException␤»
01:55 camelia ..rakudo-parrot f48531: OUTPUT«===SORRY!===␤Could not find sub &a␤»
01:55 benabik left #perl6
01:56 benabik joined #perl6
01:58 BenGoldberg r: my $foo ($bar); say $foo, $bar; $bar = 1;
01:58 camelia rakudo-parrot f48531: OUTPUT«(signal SEGV)(Any)(Mu)␤»
01:58 camelia ..rakudo-jvm 882e33: OUTPUT«(Any)(Mu)␤java.lang.NullPointerException␤  in block  at /tmp/fP90LeZ_hb:1␤  in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤  in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤  in any command_eval at gen/jvm/stage2/NQPHLL.nqp:1196␤  in any comma…»
01:59 BenGoldberg n: constant a = a; say a
01:59 camelia niecza v24-98-g473bd20: OUTPUT«(Any)␤»
01:59 BenGoldberg n: constant a = b; constant b = a; say a
01:59 camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in…»
02:04 panchiniak_ left #perl6
02:24 SimonFelix joined #perl6
02:44 kurahaupo left #perl6
03:07 araujo joined #perl6
03:18 colomon joined #perl6
03:30 xenoterracide joined #perl6
03:50 ssutch joined #perl6
03:54 ingy^ joined #perl6
04:22 preflex_ joined #perl6
05:46 aindilis joined #perl6
05:49 berekuk joined #perl6
05:49 kaare_ joined #perl6
06:20 logie joined #perl6
06:38 darutoko joined #perl6
06:39 berekuk joined #perl6
06:56 tobyink joined #perl6
07:15 berekuk joined #perl6
07:15 REPLeffect joined #perl6
07:26 pernatiy joined #perl6
07:29 berekuk joined #perl6
07:39 araujo joined #perl6
07:39 araujo joined #perl6
07:40 moritz good morning
07:41 * moritz wonders if the perl 6 test files for Plan 9 started with  use Test; plan 9;
07:42 berekuk joined #perl6
07:43 FROGGS joined #perl6
07:44 dalek rakudo/sized-arrays: 8ef25d7 | Arcterus++ | src/core/Array.pm:
07:44 dalek rakudo/sized-arrays: Fixed lazy list regression
07:44 dalek rakudo/sized-arrays: review: https://github.com/rakudo/rakudo/commit/8ef25d7068
07:44 dalek rakudo/sized-arrays: bd8c9f7 | (Tobias Leich)++ | src/core/Array.pm:
07:44 dalek rakudo/sized-arrays: Merge pull request #227 from Arcterus/regressions
07:44 dalek rakudo/sized-arrays:
07:44 dalek rakudo/sized-arrays: Fixed lazy list regression
07:44 dalek rakudo/sized-arrays: review: https://github.com/rakudo/rakudo/commit/bd8c9f7216
07:47 dalek Heuristic branch merge: pushed 23 commits to rakudo/sized-arrays by FROGGS
07:59 SHODAN joined #perl6
08:08 berekuk joined #perl6
08:13 timotimo o/
08:13 timotimo moritz: the tests i wrote already have one failure and i'm not exactly sure how to make it better. maybe my "new" method is wrong?
08:13 timotimo could it be that we need to have a 0 in there always?
08:14 timotimo or maybe low has to start out 0?
08:14 timotimo er, -1 i mean
08:14 FROGGS morning
08:14 timotimo morning froggs
08:17 moritz timotimo: the test just assumed wrong things about _find_pos
08:17 timotimo moritz: because if the list only has the range 10-20 in it, the list is [10, 20] and if i have a 10 in there, the result would be 0 (because 10 is the first element >= 10), but if $low starts out 0, it will return 0 for lower values like 5
08:17 timotimo that's good to know
08:17 timotimo i have a local implementation of "contains" that does the same. what should it look like instead?
08:17 dansamo joined #perl6
08:18 timotimo ah, you committed!
08:18 timotimo very well :)
08:18 moritz timotimo: I've pushed an implementation of contains
08:19 timotimo nqp: say(1 +& 1)
08:19 camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«1␤»
08:19 timotimo didn't know nqp had this! cool
08:19 moritz huh, still seems wrong
08:20 johnny5_ joined #perl6
08:20 moritz "make add_range accept inclusive ranges"
08:20 moritz I think that commit was wrong
08:21 berekuk joined #perl6
08:21 moritz I've just tried Set::IntSpan::Fast::PP with ->add_range(10, 20), and it puts 10, 21 into the list
08:22 moritz oh dammit, _iterate_ranges adds +1 to the second argument
08:22 timotimo %)
08:26 moritz nqp: my $x := 42; say(--$x);
08:26 camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«41␤»
08:27 moritz nqp: my $x := 42; say($x++); say($x)
08:27 camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«42␤43␤»
08:28 moritz ok, add_range fixed
08:28 timotimo it has to add +2 now? :)
08:28 moritz aye
08:29 timotimo all right
08:29 moritz one becase the upper range is excluse
08:29 moritz *exclusive
08:29 moritz and one because _find_pos searches for >=, not >
08:29 timotimo aye
08:30 timotimo so, will this datastructure likely get nqp ops or do we have to emit a huge amount of code in the regex compiler to use it?
08:31 denis_boyun joined #perl6
08:31 FROGGS wait what... since when can we do $x++ in nqp?
08:32 FROGGS rp: my int $x = 42; $x++; say $x
08:32 camelia rakudo-parrot f48531: OUTPUT«Cannot modify an immutable value␤  in sub postfix:<++> at gen/parrot/CORE.setting:4276␤  in sub postfix:<++> at gen/parrot/CORE.setting:1739␤  in block  at /tmp/c_d6m5L1Zn:1␤  in any  at /tmp/c_d6m5L1Zn:1␤  in any  at gen/parrot/stage2/NQPHLL.n…»
08:32 FROGGS ahh
08:32 FROGGS nvm
08:32 dansamo left #perl6
08:42 dalek rakudo/nom: 2353ef3 | (Tobias Leich)++ | / (2 files):
08:42 dalek rakudo/nom: update gitignore files for moarvm
08:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2353ef30c4
08:45 dalek rakudo/moar-support: f485315 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ (5 files):
08:45 dalek rakudo/moar-support: Migrate cue_with_catch to cue(:&catch)
08:45 dalek rakudo/moar-support:
08:45 dalek rakudo/moar-support: Also some left-behind schedule_* fixes.  Unfortunately, specifying a :catch()
08:45 dalek rakudo/moar-support: currently blows up:
08:45 dalek rakudo/moar-support:
08:45 dalek rakudo/moar-support: Unhandled exception: Method 'postcircumfix:<( )>' not found for invocant of class 'Scalar'
08:45 dalek rakudo/moar-support:   in  (gen/jvm/BOOTSTRAP.nqp:1675)
08:45 dalek rakudo/moar-support:
08:45 dalek rakudo/moar-support: Will look at this tomorrow, unless someone else beats me to this
08:45 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/f4853151eb
08:45 dalek rakudo/moar-support: 2353ef3 | (Tobias Leich)++ | / (2 files):
08:45 dalek rakudo/moar-support: update gitignore files for moarvm
08:45 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/2353ef30c4
08:45 dalek rakudo/moar-support: 30f255a | (Tobias Leich)++ | / (7 files):
08:45 dalek rakudo/moar-support: merged nom into moar-support
08:45 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/30f255a8f3
08:46 timotimo huh, wrong branch?
08:48 FROGGS sort of, yeah :/
08:49 FROGGS well, maybe not
08:49 FROGGS this way we don't add *.moarvm files to nom, and moar-support should be up-to-date with nom anyway
08:53 cognominal joined #perl6
08:53 timotimo i meant the cue :&catch thing
08:55 FROGGS that is what I mean by moar-support should be up-to-date with nom
08:56 isBEKaml joined #perl6
09:00 lizmat good *, #perl6!
09:00 lizmat thought a lot about .cue last night
09:00 dalek rakudo/nom: 52807db | (Tobias Leich)++ | src/core/Temporal.pm:
09:00 dalek rakudo/nom: small **0..1->? optimization, saves an array
09:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/52807db481
09:00 moritz \o lizmat, *
09:00 FROGGS morning lizmat
09:01 lizmat and I've come to the conclusion that the method should be named "task"
09:01 lizmat 1. because it is both a noun *and* a verb
09:01 lizmat 2. it describes that something else should be doing it
09:01 * FROGGS .oO( a norb? )
09:02 lizmat 3. no more audio confusion between .cure and queue
09:02 lizmat 4. it's longer
09:02 FROGGS .cue is a noun and a verb too
09:02 aindilis joined #perl6
09:03 tobyink joined #perl6
09:04 FROGGS and if my translator works, 2) is invalid, .cue says too that somebody else should do it
09:05 lizmat .cue describes less *what* should be done
09:05 lizmat e.g. a cue could be a doorbell ringing
09:06 lizmat an actor could react to this by hiding him/herself, hiding some goods, or just open the door
09:06 FROGGS hehe
09:06 lizmat the cue itself (the doorbell ringing) doesn't necessarily describe the action that follows
09:06 itz I think I've managed to fix the submodules in star sha1 issue using "git submodule sync"
09:07 FROGGS that would be a nice API where an object hides because a bell rang
09:07 FROGGS as I understand .cue talks more about when something needs to be done
09:08 lizmat anyway, task only appears twice in the spec so far, as a general term
09:08 FROGGS itz++
09:18 berekuk joined #perl6
09:34 berekuk joined #perl6
09:37 johnny5_ joined #perl6
09:38 dalek rakudo/nom: 00a781f | (Tobias Leich)++ | src/Perl6/ (2 files):
09:38 dalek rakudo/nom: **0..1 => ? for <deflongname>
09:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/00a781f374
09:39 masak the noun: "A signal, such as a word or action, used to prompt another event in a performance, such as an actor's speech or entrance, a change in lighting, or a sound effect."
09:39 masak the verb: "To give a cue to; signal or prompt."
09:39 dalek rakudo/nom: d63e0e2 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ThreadPoolScheduler.pm:
09:39 dalek rakudo/nom: Fix for all but one of the concurrency tests
09:39 dalek rakudo/nom:
09:39 dalek rakudo/nom: But it shouldn't have made a difference (I don't think)  :-(
09:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d63e0e239d
09:39 masak that is, you can "give a cue to [do some thing]"
09:40 masak or, shorter, "cue [the doing of something]"
09:40 lizmat again, but the cue doesn't necessarily describe what needs to be done
09:40 masak my point is that it does.
09:40 lizmat ah?
09:40 lizmat doorbell rings
09:40 masak you're right insofar as the *cue* itself (the noun) is another thing.
09:40 lizmat that's a cue
09:40 masak yes. right.
09:41 lizmat what needs to be done?
09:41 masak .cue(&the-thing-that-needs-to-be-done)
09:41 FROGGS using it as a verb implies that all know what needs to be done
09:41 masak this is a perfectly valid use of the *verb* "cue".
09:42 masak lizmat is, however, correct in pointing out that the *noun* "cue" is a different thing, unrelated to what needs to be done.
09:42 masak the method name, however, is a verb, not a noun.
09:43 masak having said all that, I'm not very happy about .cue, and wouldn't mind it being replaced by something... more standardized.
09:43 masak .schedule was perfectly cromulent in my eyes.
09:44 lizmat so what's wrong with "task" ?
09:45 masak nothing much wrong with "task".
09:46 masak but I think what speaks strongly for .schedule is (a) it's already used for exactly that purpose in other languages and libraries, and (b) it makes sense that a Scheduler schedules things. it's more of a stretch to explain why it tasks things.
09:47 moritz +1 to schedule
09:47 masak (b) also applies to .cue, by the way.
09:47 masak dammit Jim, it's a Scheduler, not a Cuer!
09:48 lizmat method/scheduleAtFixedRate/(Ljava/util/TimerTask
09:48 masak I do like the different schedule_* methods being unified into one with nameds. we can keep that :)
09:48 masak lizmat: right. you .schedule a $task
09:48 lizmat the code in the JVM executed  :-)
09:48 masak you do not .task a $task
09:48 lizmat actually, you do
09:48 lizmat I can task you to take care of something
09:49 masak right. of course. it works, linguistically.
09:49 masak but see (b)
09:49 moritz also I'm a bit concerned about all the "cute" method names that are very different from what is usually used
09:49 * masak .oO( you think it's "cue" today )
09:49 masak moritz: yes, me too.
09:50 masak moritz: it's the Mu objection all over again. there's a design cost to being different just for the sake of it.
09:51 moritz and one of the objections against 'Object' was that it's very long as a replacement for 'undef'
09:51 moritz but these days we mostly use Any anyway
09:51 masak we should focus on making awesome APIs, not defending excellent choices of words against the grain of the rest of programmer-dom.
09:51 lizmat breakfast with pancakes!  &
09:51 * moritz had breakfast with cake already :-)
09:52 timotimo birthday cake?
09:52 * masak .oO( .cue the @pancakes! no wait, .schedule the @panca... .task the @p... )
09:52 masak moritz: whose birthday? :D
09:52 masak or was it just a "yay it's Sunday!" cake...? :)
09:52 moritz masak: no birthday :-). We had visitors yesterday, and I made some cake
09:53 masak moritz++ # cake
09:55 * moritz loves to cake
09:57 timotimo cake a bake
09:58 * masak .oO( the cake is a lion )
10:04 dalek specs/rename-cue-back-to-schedule: 2d4192d | masak++ | S17-concurrency.pod:
10:04 dalek specs/rename-cue-back-to-schedule: rename 'cue' back to 'schedule'
10:04 dalek specs/rename-cue-back-to-schedule: review: https://github.com/perl6/specs/commit/2d4192d8f2
10:04 masak I just pushed a new branch to the 'specs' repo. see above.
10:05 masak in making that commit, I think I uncovered why TimToady made this particular choice: he wanted to talk about "scheduled things" in the paragraph that begins "This returns, in order..."
10:06 masak and found "scheduled things" to be clunky/anemic, and started hunting for something that's both verb-y and noun-y.
10:06 masak I still stand by my opinion that .schedule is better in many ways.
10:07 masak I recommend merging the above branch into master, but I'd love to get a second opinion on that, too.
10:08 moritz you already have a second opinion -)
10:12 tobyink joined #perl6
10:12 dalek rakudo/nom: 5cfc4a4 | (Tobias Leich)++ | src/Perl6/ (2 files):
10:12 dalek rakudo/nom: **0..1 => ? for <twigil>
10:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5cfc4a4bcf
10:16 moritz FROGGS++
10:17 FROGGS :o)
10:27 johnny5_ joined #perl6
10:29 dmol joined #perl6
10:29 johnny5_ joined #perl6
10:36 dalek rakudo/nom: 57fefc9 | (Tobias Leich)++ | src/Perl6/ (2 files):
10:36 dalek rakudo/nom: **0..1 => ? in <morename>
10:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/57fefc9ba5
10:57 jnthn I'd like ot hear TimToady's take, but +1 to going back to "schedule" from me. It's not something where we really need to huffmanize a name, and a $*SCHEDULER does, well, schedule things, most obviously :)
10:57 dalek rakudo/nom: 7f68890 | (Tobias Leich)++ | src/Perl6/ (2 files):
10:57 dalek rakudo/nom: **0..1 => ? for <statement_mod_[cond|loop]>
10:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7f6889024c
10:58 lizmat fwiw, I'm slightly more for task, but could live with schedule
10:59 lizmat most of the changes in that area where merging the _in, _every, _with catch variants anyway
11:00 dalek rakudo/nom: 56cde80 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ThreadPoolScheduler.pm:
11:00 dalek rakudo/nom: Slightly different approach to fixing :catch
11:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/56cde80422
11:01 lizmat jnthn: could you please have a look at src/vm/jvm/core/ThreadPoolScheduler.pm, line 60 and following
11:02 lizmat it still doesn't do the catch  :-(
11:02 lizmat and I have run out of ideas as to why
11:02 Rotwang joined #perl6
11:04 jnthn # just cue the code
11:04 jnthn else {
11:04 jnthn This branch doesn't do anything with the catch
11:05 jnthn It doesn't use the $hash
11:05 jnthn oh, wait, the branhc above is meant to do t
11:05 lizmat that's why there is a or &catch in the elseif before
11:05 jnthn but...that's weird
11:06 lizmat you mean, calling it with a delay of 0
11:06 jnthn yeah
11:06 jnthn That doesn't run it on one of the normal pool threads
11:06 lizmat ok, I'll try to make that different then
11:07 jnthn The way I'd do it is take &code is copy
11:07 lizmat gotcha
11:07 jnthn And then if &catch { &code = { CATCH { default { catch($_) } }; code(); }
11:08 jnthn Or similar
11:08 lizmat would that  not recurse ?
11:08 lizmat it would use the old value of &code ?
11:08 jnthn oops, yes
11:08 lizmat ok, so no is copy then  :-)
11:08 jnthn Right, just make a $what_to_call or something :)
11:10 lizmat gotcha
11:11 spider-mario joined #perl6
11:19 tobyink joined #perl6
11:19 woolfy task...  cue...   hint!  duty!!  job!!!   chore!!!!
11:20 woolfy According to Barron's Business Guide Dictionary of Computer and Internet Terms, "task" is "A process, one of several computer programs that are executing concurrently"
11:21 woolfy A "cue" is "(in animation and presentation programs) an embedded code that specifies when an action is to occur"
11:23 woolfy (a job is mentioned in correlation to batch processing, hinting refers to stuff with fonts, and chore is mentioned nowhere in Barron's)
11:24 woolfy Hmmm?
11:26 dalek rakudo/nom: bd13550 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ThreadPoolScheduler.pm:
11:26 dalek rakudo/nom: Fix :catch, thanks jnthn++ for another set of eyes
11:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bd1355033e
11:26 lizmat jnthn++   that fixed the last remaining test, but I guess that does not bode well for :in/:at/:every in combination with :catch
11:26 lizmat writing tests for that now
11:29 dalek roast: eb2a45c | (Elizabeth Mattijsen)++ | S17-concurrency/scheduler.t:
11:29 dalek roast: Transfmogrify cue_with_catch and add :in/:at tests
11:29 dalek roast: review: https://github.com/perl6/roast/commit/eb2a45c626
11:31 dmol joined #perl6
11:36 lizmat actually, another reason to use ".task" is that it could return a Task object
11:37 lizmat doesn't feel right to have .cue return a Cued object, or .schedule return a .Scheduled object
11:37 lizmat linguistically, of course :-)
11:39 denis_boyun joined #perl6
11:40 jnthn Well, what you're really getting back I suspect is a Canceller or some such
11:40 timotimo Ripcord
11:41 jnthn Harpsicord?
11:41 lizmat an object that you can use to see if it's still running or not as well?
11:41 lizmat maybe we need to wrap it in wood and call it a piano ?
11:41 timotimo moritz: there are still many off-by-ones left to handle :P
11:42 timotimo er, actually, no
11:42 * timotimo patches the copy method to actually make a copy
11:43 jnthn lizmat: Maybe, but then people will probably write stuff like if $thing.not_run_yet { $thing.cancel }, when we want them to just $thing.try_cancel.
11:43 jnthn 'cus asking if you can before doing is a big no-no in concurrent programming.
11:43 lizmat I was more thinking as a debugging tool, actually
11:43 lizmat but yes, got your point
11:43 jnthn Ah, for debugging I was thinking more scheduler introspection
11:44 jnthn Kinda like a "loads" that gives a snapshot of everything
11:45 lizmat ah, ok
11:46 timotimo moritz: i pushed new tests and a small amount of fixes
11:47 berekuk joined #perl6
11:54 dalek roast: a36fd9f | (Elizabeth Mattijsen)++ | S17-concurrency/scheduler.t:
11:54 dalek roast: Add some more :catch related tests
11:54 dalek roast: review: https://github.com/perl6/roast/commit/a36fd9f4a5
11:54 rindolf joined #perl6
11:57 dalek rakudo/nom: 0c4aa93 | (Tobias Leich)++ | src/Perl6/ (2 files):
11:57 dalek rakudo/nom: **0..1 => ? for <longname>
11:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0c4aa932d4
12:09 xenoterracide joined #perl6
12:12 dalek rakudo/nom: 5ee24e6 | (Tobias Leich)++ | src/Perl6/ (2 files):
12:12 dalek rakudo/nom: **0..1 => ? for statement_control:sym<if> and <loop>
12:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5ee24e6bda
12:13 atroxaper joined #perl6
12:14 atroxaper Hello #perl6
12:14 woolfy Hello atroxaper
12:15 atroxaper Guys, do you know how can i parse some code writen on perl6 by Perl6::Grammar of Rakudo?
12:15 atroxaper Hello woolfy
12:16 timotimo you can use nqp::getcomp to get the Perl6::Compiler object and use its .parse method
12:16 timotimo it will give you back the qast, not a match object, though
12:16 FROGGS atroxaper: search the irc logs a bit, we had this just some days ago
12:17 atroxaper Wow. I'm going to try in. Thank you, timotimo!
12:17 FROGGS search for Perl6::Grammar.parse or so
12:17 atroxaper Ok, FROGGS, thank you.
12:18 rindolf joined #perl6
12:24 dalek rakudo/nom: 99c10e2 | (Tobias Leich)++ | src/Perl6/ (2 files):
12:24 dalek rakudo/nom: **0..1 => ? for <multisig>
12:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/99c10e2100
12:28 dalek rakudo/nom: afd2c56 | (Elizabeth Mattijsen)++ | src/Perl6/Actions.nqp:
12:28 dalek rakudo/nom: Fix for #120501: my &a; say &a # Callable not Any
12:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/afd2c5672d
12:28 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=120501
12:29 dalek roast: dfd5d4a | (Elizabeth Mattijsen)++ | S04-declarations/my.t:
12:29 dalek roast: Fix test for fix of #120501: (my &).say # Callable
12:29 dalek roast: review: https://github.com/perl6/roast/commit/dfd5d4ad46
12:29 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=120501
12:29 timotimo FROGGS: a clue how these changes change parsing performance?
12:29 FROGGS timotimo: no visible changes
12:30 timotimo that's what i feared :(
12:30 lizmat away for a bit&
12:30 FROGGS maybe one with less RAM will see a difference, or with other code...
12:33 rindolf joined #perl6
12:37 dalek rakudo/nom: ba14c95 | (Tobias Leich)++ | src/Perl6/ (2 files):
12:37 dalek rakudo/nom: **0..1 => ? for <signature>
12:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ba14c9507f
12:37 * masak .oO( Canceller Palpatine )
12:39 FROGGS damn, wrong commit msg -.-
12:40 dalek star: c84c728 | moritz++ | modules/ (8 files):
12:40 dalek star: update submodule revisions
12:40 dalek star: review: https://github.com/rakudo/star/commit/c84c728ee5
12:43 tobyink joined #perl6
12:44 * moritz idly wonders if he should fake up a rakudo and nqp release locally to be able to properly test start
12:51 rindolf joined #perl6
12:58 dalek rakudo/nom: 2d77717 | (Tobias Leich)++ | src/Perl6/ (2 files):
12:58 dalek rakudo/nom: **0..1 => ? for <signature>
12:58 dalek rakudo/nom:
12:58 dalek rakudo/nom: (The commit before this one was for <initializer>.)
12:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2d777177e3
12:59 colomon joined #perl6
13:04 timotimo hm, what exciting things are going into the new rakudo release?
13:04 timotimo there's concurrency changes & implementation in store for the jvm part, that much i know
13:04 timotimo mokudo isn't quite there yet :(
13:05 timotimo oh, cool, the sigspace change is for this month's release
13:05 timotimo and the currying changes, too
13:06 rindolf joined #perl6
13:12 FROGGS timotimo: sort of funny to read that :P https://github.com/rakudo/rakudo/blob/nom/docs/announce/2009-02
13:21 dalek rakudo/nom: 8380951 | (Tobias Leich)++ | src/Perl6/ (2 files):
13:21 dalek rakudo/nom: **0..1 => ? in statement_control:sym<require>
13:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8380951e49
13:33 timotimo hah
13:40 isBEKaml joined #perl6
13:46 masak interesting py2-to-py3 retrospective: https://www.dropbox.com/s/83ppa5iykqmr14z/Py2v3Hackers2013.pptx
13:47 masak (by guido)
13:47 masak is it just me, or does it feel like Python had less reason than Perl 5 to do a backwards-incompatible new major version?
13:48 masak (I don't know how to say that in a way that isn't guaranteed to upset some Perl 5 people, sorry)
13:50 FROGGS masak: my feeling is that the way they did is seems unreasonable to me... either you make (almost) no breaking changes, or you go the Perl6 way
13:50 FROGGS standing somewhere in the middle-left is just weird
13:51 masak agreed.
13:51 masak but it *does* take less time. :P
13:51 masak (and yet Guido writes "Expect another 5 years")
13:51 FROGGS I mean, I understand that somebody does not want to take this 10-years-and-ongoing trip
13:52 pdurbin Python people are probably more bothered by warts than Perl people
13:52 FROGGS masak: that is why our 2009-02 announcement is that funny... it is soo awesome where we are now (already?!)
13:52 FROGGS pdurbin: depends on the hacker's age perhaps?
13:54 jnthn The "performance" slide is interesting too :)
13:54 nwc10 masak: I don't think it's just you, but it might just be 2 of us (and I'm an outsider, not a Python user) but from the outside, Python 2 (at least, 2.6 and 2.7) seem to be cleaner and saner languages than Perl 5
13:55 isBEKaml yeah, performance - say we start bad and then even out later. :-)
13:55 masak nwc10: agreed.
13:55 nwc10 jnthn: yes -  I had thought that 3.1 fixed most of the 3.0 suckage such that it was "good enough" but Guido seems to be saying that it wasn't really good enough
13:55 masak he's honest about the things that didn't turn out great.
13:56 nwc10 I don't want to wait (another) 5 years to find out if that "halfway" is accurate
13:57 masak no-one wants to wait for anything.
13:57 pdurbin masak: yeah and stuff like multi-line lambdas that still aren't fixed
13:57 moritz somehow libreoffice butchers his slides
13:57 moritz inserting ligatures in code examples
13:57 masak as does Chrome.
13:58 moritz so maybe the slides are to blame, not libreoffice :-)
13:58 isBEKaml yeah, I thought I was the only one. Too much misalignment.
13:59 isBEKaml It's ironically the unicode slide that's worst on my screen. :-)
13:59 moritz same here
13:59 * moritz has a totally unrelated and 90% off-topic question
13:59 pdurbin heh
13:59 moritz do you know any template systems that are optimized for code reuse?
14:00 nwc10 moritz: fails on my machine too. The font picked is too large
14:00 moritz many web applications largely consists of some sorts of objects
14:00 masak moritz: template system as in HTML template system?
14:00 moritz masak: yes
14:00 moritz like blog posts, comments, profile pages etc.
14:01 masak could you be more specific about "code reuse"? I always liked inclusion mechanisms, for example.
14:01 moritz so I usually want some form of detailed view, and a short view that is a link to detailed view (for example just title + author of a blog post)
14:01 moritz so, I could write an include thingy for turning a blog post object into a link
14:01 moritz and one for an author object
14:01 moritz and so on
14:02 moritz and if I'm ever at the point where something could be any object, I have to do a huge switch statement to determine which include to use
14:02 nwc10 I can quite understand why the Python core devs wanted once and for all to clean up the warts that had accumulated
14:02 nwc10 it seems that everyone underestimated how hard it is to migrate an ecosystem
14:03 moritz and it galls be, because we have a perfectly fine solution for that problem outside of templates: objects, polymorphism, method cals
14:03 moritz *calls
14:03 masak moritz: I don't know anything like what you describe, but it sounds like something that would be interesting to prototype.
14:03 moritz but so far I haven't come across a template system that actually encourages me to write something like "frontend objects", which know how to turn a blog post into a short representation + link
14:04 masak moritz: in some sense, it sounds like something that heads partway down the road of a Rails/Django-like object system.
14:04 masak "frontend objects", also known as "[REST] resources".
14:05 moritz and a very easy solution would be to stick those methods into the actual backend objects
14:05 moritz but that's just plain bad design etc.
14:05 moritz masak: sounds about right
14:06 moritz masak: do you happen to have any good resources on them for me?
14:07 rjbs joined #perl6
14:08 moritz googling for 'frontend objects' is pretty disappointing
14:08 nwc10 Is there any way to measure "Community is excited" or is that just a value-free phrase?
14:09 masak moritz: something like https://en.wikipedia.org/wiki/Representational_state_transfer#Guiding_principles_of_the_interface seems like a good start.
14:09 rjbs joined #perl6
14:09 FROGGS in Perl6::Grammar I have something like: [ <?[[]> '[' ~ ']' <arglist> ]?
14:10 masak nwc10: some things are measurable, such as different kinds of contribution.
14:10 pdurbin nwc10: I do like the sound of "we're halfway through" ... sounds like great progress
14:10 FROGGS and $<arglist> seems to be an RPMCA... ould that be?
14:10 masak nwc10: but yeah, it also sounds like wishful thinking.
14:11 FROGGS jnthn: ?
14:11 moritz masak: takk
14:12 masak moritz: but maybe taking a look at https://docs.djangoproject.com/en/1.6/intro/tutorial01/ would be more informative.
14:12 masak moritz: suggest skimming, keeping on the lookout for ideas that sound like what you wanted.
14:12 nwc10 pdurbin: "halfway through" definately sounds great, but I find it very hard to actually find metrics to *measure* this
14:13 pdurbin nwc10: "won't be nothin' you can't measure anymore" -- leonard cohen ;)
14:15 nwc10 and that other talk it references is
14:15 nwc10 https://speakerdeck.com/pyconslides/python-3-dot-3-trust-me-its-better-than-python-2-dot-7-by-dr-brett-cannon -- In this talk I will try to convince you that Python 3.3 is superior to Python 2.7 by going over the differences between Python 2.7 and Python 3.3 along with benchmark information to show where Python 3.3 shines in comparison to Python 2.7 (and vice-versa). If I accomplish my goal, you will walk out of this talk convinced that Python 2.7 is n
14:15 jnthn FROGGS: I'm prettty sure the ? should no longer cause that
14:15 nwc10 So why isn't Python 3.3 self-evidently better? Why do people need convincing?
14:15 FROGGS nqp-p: grammar G { rule TOP { [ '(' ~ ')' <ident> ]? } }; class A { method TOP($/) { say($<ident>.hurz) } }; G.parse( "(abc)", :actions(A.new) )
14:15 camelia nqp-parrot: OUTPUT«Method 'hurz' not found for invocant of class 'NQPMatch'␤current instr.: 'TOP' pc 872 ((file unknown):311) (/tmp/SaALwwLDZB:1)␤»
14:16 FROGGS jnthn: I know... but still it bails out on my box... (with a modified rakudo)
14:16 nwc10 (to be fair, I think that that's more "need convincing to *migrate*", not "need convincing that it's better"
14:16 nwc10 )
14:16 nwc10 but, also, I have no way to prove that hunch.
14:16 FROGGS jnthn: I am unable to spot the error :/
14:17 nwc10 anyway, dogs don't walk themselves (or, more strictly, they still believe that this is how the world works)...
14:17 masak nwc10: it can be better without being *significantly* better so as to make it worth migrating.
14:19 moritz nwc10: there is no such thing as "self-evidently better" for things as complex as programming languages
14:21 masak +1
14:22 FROGGS HAHAHA
14:22 jnthn .oO( Is LOLCODE better than bf? )
14:22 * masak .oO( there is no such thing as "self-evidently butter" for things as complex as long-chained lipids )
14:22 diakopter "need convincing" can just mean they're skeptical for indirect reasons, not that they believe differently already
14:23 FROGGS nqp-p: grammar G { rule TOP { <ident>? <ident>? } }; class A { method TOP($/) { say($<ident>.hurz) } }; G.parse( "[abc]", :actions(A.new) )
14:23 camelia nqp-parrot: OUTPUT«Method 'hurz' not found for invocant of class 'ResizablePMCArray'␤current instr.: 'TOP' pc 678 ((file unknown):263) (/tmp/FwyRa9Fbvy:1)␤»
14:23 FROGGS jnthn: I tripped over that one ...............^
14:23 jnthn FROGGS: oh :)
14:24 isBEKaml jnthn: what jvm settings do you use for compiling nqp and rakudo on your machine?
14:25 isBEKaml jnthn: setting  min and max heap to be 1 and 2G with a sufficiently high stack space of 128m all failed with PermGen error in building. :-)
14:25 jnthn isBEKaml: Just default ones here..
14:25 jnthn isBEKaml: What version of JVM have you?
14:25 isBEKaml jnthn: jdk 7 latest.
14:25 jnthn Weird...
14:26 FROGGS jnthn: it wasn't that obvious in token typename as my example
14:27 timotimo the kerning in that pdf slides file is super b0rked :(
14:27 timotimo what is a .pptx
14:27 timotimo lol
14:28 isBEKaml jnthn: can you do one thing, please?
14:28 isBEKaml jnthn: pass in -XshowSettings:vm in your java invocation in Makefile?
14:28 cibs joined #perl6
14:28 isBEKaml jnthn: that would give us what settings is actually passed into your jvm.
14:30 sqirrel joined #perl6
14:33 cibs joined #perl6
14:34 isBEKaml jnthn: No hurry, please post this information when you find the time  - this is what I mean: https://gist.github.com/anonymous/7398976 # note the extra -X flag, that's where my build fails.
14:36 pdurbin it's news to me that there will never be a Python 2.8 release. very different than Perl, where both 5 and 6 are advancing
14:36 pdurbin "core developers all on board" :)
14:37 masak pdurbin: think of that as Python 2/3 never having "fractured" into two subcommunities like Perl 5/6 did.
14:38 pdurbin masak: somehow I imagined that maybe the same devs would work on both Python 2.x and Python 3.x (new features, I mean)
14:38 broquaint joined #perl6
14:38 cibs_ joined #perl6
14:39 masak pdurbin: well, Guido is benovelently dictating both 2.x and 3.x
14:39 masak pdurbin: Larry less so with 5.1x these days.
14:40 pdurbin yeah, that sounds right
14:40 masak pdurbin: but even in the Python world, I get the feeling that it takes a fair bit of "convincing" of the "we're not going to make any more 2.x" kind to haul people over the major version gap.
14:40 moritz masak: actually perl 5.2x is being prepared these days :-)
14:41 dalek rakudo/nom: 783666c | (Tobias Leich)++ | src/Perl6/ (3 files):
14:41 dalek rakudo/nom: **0..1 => ? about <typename>
14:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/783666cdbf
14:41 masak moritz: last I heard, Larry is not dictating that one either much :)
14:41 masak instead, it's pumpkings all the way down.
14:42 moritz pdurbin: I pasted my output as a comment on     Max. Heap Size (Estimated): 855.12M
14:42 moritz Ergonomics Machine Class: server
14:42 moritz Using VM: OpenJDK 64-Bit Server VM
14:42 moritz args, copy&pasta fail :-)
14:43 moritz https://gist.github.com/anonymous/7398976 is what I meant :-)
14:43 dalek specs: 8a85b31 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
14:43 dalek specs: Some punctuation
14:43 dalek specs: review: https://github.com/perl6/specs/commit/8a85b3141a
14:44 pdurbin moritz: cool. yeah, I'm hoping to try Perl 6 on the JVM some day
14:47 ajr joined #perl6
14:47 timotimo moritz: did you see the fail my test brought to light?
14:48 moritz timotimo: not yet
14:49 * moritz pulls
14:54 pdurbin a few weeks ago at JavaOne, four new languages on the JVM (http://ceylon-lang.org http://www.mirah.org http://kotlin.jetbrains.org http://en.wikipedia.org/wiki/Frege_%28programming_language%29 ) were presented (The Emerging Languages Bowl: The Quest to Be in the Big Leagues [CON4892] https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=4892 ). It would have been cool to hear about a
14:54 pdurbin fifth... Perl 6! :)
14:57 raiph joined #perl6
14:57 ajr_ joined #perl6
15:00 denis_boyun joined #perl6
15:03 moritz timotimo: yes, seems to be an offby1 error somewhere
15:03 ajr_ joined #perl6
15:15 tgt joined #perl6
15:24 timotimo that's what i figured :)
15:25 * timotimo writes some more tests
15:36 BenGoldberg joined #perl6
15:36 nwc10 it's quite old "news" that there will never be a Python 2.8: http://www.python.org/dev/peps/pep-0404/
15:37 moritz .oO( requests for python 2.8 will always return a 404 )
15:38 nwc10 also, that "5 years" might be quite optimistic, as IIRC the new RHEL appears at now-ish (give or take a few months), and on that /usr/bin/python will be 2.7, so there will be a fairly large installed base of Python 2.7 for the next decade
15:39 nwc10 with "special biologist word" standard libraries (due to how Python doesn't do dual life)
15:39 nnunley joined #perl6
15:39 nwc10 standard libraries which some are already less than enamoured with: http://programming.oreilly.com/2013/10/dead-batteries-included.html
15:40 nwc10 (but you can't please everyone all of the time)
15:40 timotimo yeah, the python standard library is where code goes to die
15:40 timotimo it's pretty sad
15:41 moritz .oO( Text::Soundex )
15:43 dalek rakudo-star-daily: 69955cc | coke++ | log/ (4 files):
15:43 dalek rakudo-star-daily: today (automated commit)
15:43 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/69955ccf9c
15:43 dalek rakudo-star-daily: eee063d | coke++ | log/ (5 files):
15:43 dalek rakudo-star-daily: today (automated commit)
15:43 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/eee063dcaa
15:43 dalek perl6-roast-data: 606538e | coke++ | / (5 files):
15:43 dalek perl6-roast-data: today (automated commit)
15:43 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/606538e2bb
15:43 nwc10 moritz: http://perl5.git.perl.org/perl.git/commit/d1fe84e5946ba9c3daff97519872aa3097c75efe
15:43 nwc10 oh, nothing is announcing that commit - Removed cpan/Text-Soundex
15:50 raiph joined #perl6
15:51 timotimo moritz: union seems buggy, look:  # original        5, 11, 15, 21
15:51 timotimo # forwards union  5, 11, 15, 22
15:51 timotimo # backwards union 5, 12, 15, 21
15:51 timotimo that's the result of a) add_range 5,10  add_range 15,20 on the same IL, after that using two lists with only range 5,10 or 15,20 with the .union method
15:52 tobyink joined #perl6
15:52 moritz timotimo: again offby1 errors
15:52 moritz nwc10: so how long did it take for Text::Soundex to die?
15:53 timotimo this off-by-one confuses me
15:53 timotimo if i add 1 to the first argument of add_range inside the merge, it's wrong, and if i add 1 to the second argument, it's wrong, too
15:54 timotimo ah, i need to subtract 1 from the second one and it makes tests pass
15:55 timotimo this fixed it apparently
15:56 moritz timotimo: please try to do it the same way as Set::IntSpan::Fast::PP
15:58 timotimo butbutbutbut TDD!
15:58 moritz nothing wrong with TDD
15:58 * [Coke] wakes up
15:58 timotimo ah, it was the thing where iterate_ranges subtracts 1 from the $to
15:58 moritz just when you fix stuff, ask yourself how the original author did it right and we did it wrong :-)
15:58 timotimo we don't have iterate_ranges so we have to do it ourselves everywhere ;)
15:59 moritz it adds 1 to $to
15:59 moritz it doesn't substract
15:59 timotimo my @r = ( $self->[$pos], $self->[ $pos + 1 ] - 1 );
15:59 timotimo that's the code
16:00 moritz oh, iterate_runs
16:00 moritz ok
16:00 moritz iterate_ranges adds one :-)
16:00 sqirrel joined #perl6
16:00 timotimo i typo'd it, i didn't know iterate_ranges exists
16:01 timotimo actually _iterate_ranges
16:01 timotimo interesting
16:01 timotimo do we have code to remove duplicated entries?
16:01 moritz I haven't added anything :-)
16:02 timotimo like when you add_range(10, 15); add_range(15, 20); it should just be 10,21, right?
16:02 moritz timotimo: yes, add_ranges is smart enough to do that
16:02 timotimo great. should i add tests for that?
16:02 moritz +1
16:03 pdurbin moritz: no confirmation on if 404 was picked on purpose: https://plus.google.com/115212051037621986145/posts/Pyj7PBEgwQ7 :)
16:03 raiph joined #perl6
16:06 pdurbin nwc10: maybe "5 years" is for major Python projects to move over to 3.x... sounds like Django is making progress. But yeah, those projects won't be running on Python 3.x on stock RHEL unless Software Collections works out
16:06 dalek rakudo/nom: b195c81 | (Tobias Leich)++ | src/Perl6/ (2 files):
16:06 dalek rakudo/nom: **0..1 => ? for <capture>
16:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b195c8151a
16:06 japhb___ moritz: I haven't been in that biz for a while, but back in the day Mason (born HTML::Mason) was very nice in that every snippet, every template, every file was an object, and also code.  Templates and files could have methods, inherit from each other, and so on.
16:07 timotimo looks good to me now
16:08 moritz timotimo++
16:08 timotimo moritz: i like the way nagare does it. you have Components and a Component can have any amount of "models" and you can render a sub-component in your component and it'll render itself based on its own model
16:10 denisboyun joined #perl6
16:30 nwc10 moritz: quite a long time. But partly to get to a mechanism to evict things from the core, and partly to get to a consensus that a bunch of stuff doesn't really belong there
16:30 nwc10 and "What stays vs what goes" doesn't seem to be a question that anyone (else) really wants to answer. Because there are a bunch of trade offs
16:33 * nwc10 continues to fight printers
16:34 * masak .oO( wtf does PC LOAD LETTER mean!? )
16:35 jferrero joined #perl6
16:35 rindolf joined #perl6
16:36 beastd joined #perl6
16:39 dalek rakudo/nom: bb0ad62 | (Tobias Leich)++ | src/Perl6/ (2 files):
16:39 dalek rakudo/nom: **0..1 => ? for <param_var>
16:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bb0ad627a6
16:44 pecastro joined #perl6
16:46 jferrero joined #perl6
16:48 dalek rakudo/nom: ef9ceb5 | (Tobias Leich)++ | src/Perl6/ (2 files):
16:49 dalek rakudo/nom: **0..1 => ? for pir::op and nqp::op
16:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ef9ceb5965
16:49 d^_^b joined #perl6
16:49 d^_^b joined #perl6
16:55 Ben_Goldberg joined #perl6
16:58 dalek specs: 71fd6d3 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
16:58 dalek specs: Introduce $a (+=) 1 as sugar for cas $a, {$_ + 1}
16:58 dalek specs: review: https://github.com/perl6/specs/commit/71fd6d3abb
16:59 timotimo oh, with parens?
16:59 lizmat It's just an idea
17:00 masak feels a bit too close to the Texas set ops, IMHO.
17:00 lizmat well, that was an inspiration, yes
17:00 rindolf joined #perl6
17:00 masak they're too different to look so much alike.
17:01 jnthn .oO( Bra idea, men syntax e CAS... )
17:01 masak am I correct in assuming that the commit message should have said { $_ += 1 }
17:01 masak ?
17:02 timotimo no, cas does the assignment
17:02 masak ah.
17:02 lizmat timotimo: indeed
17:02 masak yes, I see it now.
17:02 lizmat that's the whole idea
17:02 masak my mistake.
17:02 masak anyway, I still think it's a bad idea to dedicate *any* operator to cas-specific things (in core).
17:02 masak doubly bad to make (+) be a set op and (+=) be a CAS op.
17:03 pippo joined #perl6
17:03 lizmat well, I think we need sugar to make this easy to use
17:03 pippo o/ #perl6
17:03 timotimo 6lrep# \o
17:04 * masak reads the commit
17:04 masak lizmat: oh! you didn't just introduce (+=), you introduced a whole new *metaop*!
17:04 atroxaper o/ pippo
17:04 masak that's... corageous. :)
17:04 atroxaper bb #perl6 o/
17:05 pippo lizmat: I have tried this: https://github.com/rakudo/rakudo/commit/84d2cb8eb6
17:05 masak lizmat: fwiw, it's S03 that introduces new operators, not S17.
17:06 pippo lizmat: but on my machine I still have the same problem. (^20_000).join(',').split(',') exhausts memory.
17:06 lizmat if it may live in S17, I'll add it to S03 also  :-)
17:07 pippo lizmat: does it work on yours?
17:07 * moritz proposes ∦ as the new meta op, it's "not parallel to" anyway
17:08 lizmat $ time perl6 -e "(^20_000).join(',').split(',')"
17:08 lizmat real0m12.274s
17:08 lizmat user0m21.327s
17:08 lizmat sys0m0.573s
17:08 lizmat it grows until about 460MB of memory
17:08 timotimo ah, the jvm join/split problem is solved?
17:08 pippo lizmat: is it jvm based perl 6?
17:08 lizmat no, split doesn't use gather/take anymore
17:09 lizmat $ perl6 --version
17:09 lizmat This is perl6 version 2013.10-179-gb195c81 built on JVM
17:09 lizmat so it circumvents the problem on JVM
17:09 pippo lizmat: I do not undestand why on mine it does not...
17:09 lizmat what OS ?
17:09 pippo linux
17:10 ajr joined #perl6
17:10 lizmat $ javac -version
17:10 lizmat javac 1.7.0_45
17:10 lizmat I run on OS X Mavericks
17:10 pippo javac -version
17:10 pippo javac 1.7.0_45
17:10 lizmat and again, it is not fixed, split just doesn't use gather/take anymore
17:11 moritz workarounded
17:11 timotimo moritz: what's the next step for our inversion list project?
17:11 lizmat indeed, although I still fail to see why split() would need to use gather/take in the core
17:11 lizmat other than for dogfooding reasons
17:12 pippo lizmat: i'll try recompiling perl6...
17:12 jnthn lizmat: Laziness
17:12 moritz lizmat: no good reason; it was just simpler that way when I initially wrote it
17:12 jnthn Depends if it's useful for split to be lazy in the general case :)
17:12 lizmat it uses a map now, that should also be lazy  :-)
17:12 jnthn oh, ok :)
17:12 * jnthn didn't read, 'cus he's writing yet more slides...
17:13 timotimo that probably means it's faster on parrot now, too?
17:13 lizmat although Str.match isn'r, afak
17:13 lizmat afaik
17:13 pippo lizmat: I have another problem with perl6 it will exhaust all memory with this: my %h; for ^10_000 {%h.push($_ => $_)}; say %h<8>;
17:13 moritz timotimo: good question. There are two possible routes (more)
17:13 nwc10 OK, summary seems to be "Aaaaargh, dear CUPS, why are you defaulting the LJ 2200 driver to 1200dpi and colour, and giving me no easy way to tune both down to what the priner really can output?"
17:14 moritz timotimo: the first is to make it more sophisticated in our out-of-nqp repo
17:14 nwc10 (solution seems to be to stop using the "recommended" postscript driver, and use the PCL driver instead."
17:14 nwc10 Ubuntu fail. OS X win.
17:14 moritz timotimo: and the second is to try to incorporate it into nqp first, and then try to make it more sophisticated
17:15 lizmat pippo: grows to about 4G in memory, then hangs while garbage collecting, I would assume
17:15 lizmat ah, an error after all: Unhandled exception: java.lang.OutOfMemoryError: Java heap space
17:15 jnthn How on earth does pushing 10,000 things onto a hash use 4G of memory?!
17:15 lizmat in print_exception (gen/jvm/CORE.setting:10706)
17:16 rindolf joined #perl6
17:16 dalek star: 765bd6c | moritz++ | tools/star/Makefile:
17:16 dalek star: bump versions to 2013.11
17:16 dalek star:
17:16 dalek star: they do not exists yet, but I sure hope they will :-)
17:16 dalek star: review: https://github.com/rakudo/star/commit/765bd6ca15
17:16 lizmat well, jnthn, I wouldn't know, but I fear jakudo atm is really not well
17:16 pippo lizmat: yes also for me. Does this has code in common with gather/take ?
17:17 timotimo i wonder where the code lives that does things like <alpha+[0..9]>
17:17 timotimo does it generate an altseq for cclass alpha and enumcharlist 0..9?
17:17 timotimo or does it generate an enumcharlist with a..zA..Z and 0..9?
17:17 lizmat pippo: I would have to look
17:18 timotimo probably in the Actions
17:18 lizmat in parrot, it grows to about 700M, then shrinks to 350, and up and down again, until it's done after ~23 seconds
17:20 pippo n: my %h; for ^10_000 {%h.push($_ => $_)}; say %h<8>; now - BEGIN now;
17:20 camelia niecza v24-98-g473bd20: OUTPUT«8␤»
17:20 pippo n: my %h; for ^10_000 {%h.push($_ => $_)}; say %h<8>; say now - BEGIN now;
17:20 camelia niecza v24-98-g473bd20: OUTPUT«8␤0.1979072093963623␤»
17:21 jnthn p: my %h; for ^10_000 {%h.push($_ => $_)}; say %h<8>; say now - BEGIN now;
17:21 camelia rakudo-parrot b195c8: OUTPUT«(timeout)»
17:21 jnthn j: my %h; for ^10_000 {%h.push($_ => $_)}; say %h<8>; say now - BEGIN now;
17:21 camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
17:22 jnthn I mean, I'd once have thought the issue wsa that .push returns the whole hash post-pushing
17:22 jnthn And then the loop builds a huge result list flattening the hash into pairs each time
17:22 jnthn But that's clearly in sink context...
17:23 jnthn p: my %h; for ^10_000 {%h.push($_ => $_); 1; }; say %h<8>; say now - BEGIN now;
17:23 camelia rakudo-parrot b195c8: OUTPUT«(signal KILL)»
17:23 jnthn um.
17:23 jnthn j: my %h; for ^10_000 {%h.push($_ => $_); 1; }; say %h<8>; say now - BEGIN now;
17:23 camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
17:23 pippo j: say "Hello";
17:24 camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
17:24 pippo j has crashed!
17:24 jnthn ah
17:24 jnthn p: say "Hello"
17:24 camelia rakudo-parrot b195c8: OUTPUT«Hello␤»
17:25 pippo it exhausts all memory and craches...
17:25 jnthn Soemthing is wrong in general given how long it takes on Parrot too, though.
17:26 pippo Seems likely.
17:30 rindolf joined #perl6
17:30 johnny5_ joined #perl6
17:30 raiph lizmat++ # (bracketing to indicate atomicity)++; more specifically, (bracketing metaop)++; (more specifically, parens)++; (does it make sense to say that set ops must be atomic?)
17:32 lizmat ah, interesting observation  :-)
17:32 lizmat I guess they must be  :-)
17:32 pippo jhntn: fyi I hve run your code on my machine: my %h; for ^10_000 {%h.push($_ => $_); 1; }; say %h<8>; say now - BEGIN now;
17:32 pippo jhntn: same result: crash
17:32 jnthn OK, that makes no sense. :/
17:33 lizmat jnthn: that eats 4G+ RAM on my machine
17:33 jnthn OK, then we need to work out why.
17:33 lizmat and a : Unhandled exception: java.lang.OutOfMemoryError: Java heap space at the end
17:33 johnny5_ joined #perl6
17:34 pippo same for me :-(
17:39 rindolf joined #perl6
17:41 dalek rakudo/nom: 3be0a1a | (Elizabeth Mattijsen)++ | docs/deprecations:
17:41 dalek rakudo/nom: Mention Increase/Decrease to be deprecated in 2013.11
17:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3be0a1a703
17:45 FROGGS lizmat++
17:47 FROGGS timotimo: I'd think it is in nqp/src/QRegex/P6Regex/Actions.nqp:567:    method cclass_elem($/) {
17:47 dalek rakudo/nom: 397a24b | (Elizabeth Mattijsen)++ | docs/ChangeLog:
17:47 dalek rakudo/nom: Mention Increase/Decrease are deprecated
17:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/397a24bca3
17:49 FROGGS timotimo: and nqp/src/QRegex/P6Regex/Actions.nqp:527:    method assertion:sym<[>($/) {
17:55 colomon joined #perl6
17:55 timotimo thank you :3
17:56 timotimo yeah, the things are done with an altseq
17:57 timotimo so i could even implement something like a charrange node if there's only one range and then do a range check in matching
17:57 timotimo oh well, the stuff that moritz is going to make (with a bit of my help) will probably make that obsolete quickly
17:57 timotimo hm. but perhaps not for this month's release
17:59 dalek rakudo/nom: 4d841f3 | (Tobias Leich)++ | src/Perl6/ (2 files):
17:59 dalek rakudo/nom: **0..1 => ? in type_declarator:sym<subset>
17:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4d841f3cd7
18:01 dalek rakudo/nom: 69a5b64 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/asyncops.pm:
18:01 dalek rakudo/nom: Remove unneeded code from debugging, most likely
18:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/69a5b649bf
18:02 zakharyas joined #perl6
18:05 ssutch joined #perl6
18:07 rindolf joined #perl6
18:16 dalek specs: 98c34a7 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
18:16 dalek specs: Introduce .cue(:times(42)) and .cue(:stop($var))
18:16 dalek specs: review: https://github.com/perl6/specs/commit/98c34a7727
18:18 lizmat so we don't need a return value of .cue exposed
18:19 pippo j: say "Hello"
18:19 diakopter lizmat++ # cas syntax, whatever it ends up as
18:19 camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
18:20 grondilu joined #perl6
18:20 diakopter lizmat: it needs a way to indicate previous value on failure
18:20 grondilu rn:  perl6 -e 'subset Even of Int where * %% 2; say grep Even, ^10;'
18:20 camelia rakudo-parrot ef9ceb: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/p_xOqGUGU5â�¤Two terms in a rowâ�¤at /tmp/p_xOqGUGU5:1â�¤------> [32mperl6 -e [33mâ��[31m'subset Even of Int where * %% 2; say gr[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix s…»
18:20 camelia ..rakudo-jvm 882e33: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/jeHuo_iEhFâ�¤Two terms in a rowâ�¤at /tmp/jeHuo_iEhF:1â�¤------> [32mperl6 -e [33mâ��[31m'subset Even of Int where * %% 2; say gr[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stop…»
18:20 camelia ..niecza v24-98-g473bd20: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Two terms in a row (listop with args requires whitespace or parens) at /tmp/MqJcYxucqK line 1:â�¤------> [32mperl6 -e [33mâ��[31m'subset Even of Int where * %% 2; say gr[0mâ�¤â�¤Undeclared routine:â�¤       'perl6' use…»
18:20 lizmat diakopter: the way I read the spec, it will repeat until successful
18:20 lizmat so no return value needed
18:21 grondilu rn: subset Even of Int where * %% 2; say grep Even, ^10;
18:21 camelia rakudo-parrot ef9ceb, rakudo-jvm 882e33, niecza v24-98-g473bd20: OUTPUT«0 2 4 6 8␤»
18:21 grondilu rn: subset Even of Int where * %% 2; say grep !Even, ^10;
18:21 diakopter lizmat: it needs a way to subvert that
18:21 camelia rakudo-parrot ef9ceb, rakudo-jvm 882e33, niecza v24-98-g473bd20: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
18:21 diakopter often you want to try a change only once
18:21 * grondilu was expecting 1 3 5 7 9
18:22 jnthn diakopter: If you want that then use the normal form of it
18:22 grondilu rn: subset Even of Int where * %% 2; say grep * !~~ Even, ^10;
18:22 camelia rakudo-parrot ef9ceb, rakudo-jvm 882e33: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
18:22 camelia ..niecza v24-98-g473bd20: OUTPUT«1 3 5 7 9␤»
18:22 diakopter the normal form of what
18:22 jnthn Arguably the overload the takes a var and a coderef should not be called cas, 'cus it adds too much.
18:22 jnthn diakopter: The normal form of cas, as spec'd
18:22 timotimo how do i access the IVal children nodes of something when i'm in a method of the QAST Compiler for parrot? (in the charrange method i just came up with)
18:22 grondilu rn: subset Even of Int where * %% 2; say grep { $_ !~~ Even }, ^10;
18:22 jnthn diakopter: The "try in a loop" is just a convenience.
18:23 camelia rakudo-parrot ef9ceb, rakudo-jvm 882e33, niecza v24-98-g473bd20: OUTPUT«1 3 5 7 9␤»
18:23 diakopter jnthn: but how does it return the original value on failure
18:23 timotimo i bet it'll generate a set $some-register, $my-number for me, but how do i get at $some-register?
18:23 timotimo do i put $ops.as_post($node[0]) in there or something?
18:23 jnthn diakopter: That form doesn't, given it loops until it is successful
18:23 diakopter I mean the normal one
18:23 jnthn diakopter: The other form that takes the usual arguments, not a code ref, just returns the original value
18:24 jnthn diakopter: The normal one has about the same signature as MVM_cas iirc
18:24 diakopter oh
18:25 jnthn Anyway, the confusion makes me think the auto-looping form wants another name :)
18:25 diakopter is there a shortcut to use anything but pointer/raw equality comparison?
18:25 jnthn I just can't think of one
18:26 jnthn Nothing on that yet
18:26 jnthn Not sure how useful it is in reality
18:26 diakopter you can pretty much assume it when constants are involved
18:29 jnthn dinner, bbil
18:32 FROGGS what was L again? 50?
18:33 lizmat in roman?  yes
18:33 cognominal joined #perl6
18:33 FROGGS k :o)
18:35 itz moritz: I'm still seeing an error with submodule versions for star - Unable to checkout '240f8d025a72dfd9695290dde45981f238287d79' in submodule path 'modules/uri'
18:35 moritz itz: oops
18:35 diakopter jnthn: what confusion did you mean
18:37 pippo lizmat: is Camelia's r-j patched with https://github.com/rakudo/rakudo/commit/84d2cb8eb6?
18:37 moritz itz: I'm about to push a fix
18:37 lizmat actually, I have no idea
18:37 timotimo how do i handle an IVal in the qast compiler for parrot? :(
18:37 moritz itz: my local star repo had a wrong submodule url
18:37 moritz itz++
18:38 lizmat I vaguely remember someone sayin that r-j is fixed at some pre-Thread code merge
18:38 moritz timotimo: handle? in what context?
18:38 timotimo it seemed like i'd have to $name := self.coerce($ops.as_post($node[0]), 'I')
18:38 timotimo but that tells me i can't as_post PIRT::Ops
18:38 moritz seems I can't push to github, it hangs :(
18:39 itz I can't pull either :\ seems broken
18:39 pippo lizmat: cause I have nuked my rakudo jvm directory. Cloned again, compliled and tested (^20_000).join(',').split(',') and had ...
18:39 lizmat https://status.github.com shows mean web response time *WAY* up
18:39 pippo java.lang.OutOfMemoryError: Java heap space
18:40 lizmat pippo: sorry to hear, but I'm a jvm noob
18:40 lizmat jnthn / sorear are the architects on the jvm, afaik
18:42 diakopter was anyone confuaed?
18:43 lizmat I am now
18:44 pippo j: say (^20_000).join(',').split(',')[*-1];
18:44 camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
18:44 pippo j: say "Hello"
18:44 camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
18:45 moritz lizmat: fwiw rakudo-jvm seems to be up-to-date, just the revision number is reported wrongly
18:45 pippo lizmat: Also on Camelia not the same result as on your machine...
18:46 diakopter lizmat: what's confusing?
18:46 lizmat confuaed
18:46 moritz live, universe and everything
18:48 pippo lizmat: unless... r-j was already dead when I run "say (^20_000).join(',').split(',')[*-1];"
18:48 pippo lizmat: unless... Camelia's r-j was already dead when I run "say (^20_000).join(',').split(',')[*-1];"
18:48 diakopter wut.
18:49 pippo r-j: say "Hello"
18:49 camelia rakudo-jvm 882e33: OUTPUT«Hello␤»
18:51 pippo is Camelia's r-j auto-restarting when crashing?
18:51 diakopter lizmat: I meant about cas
18:51 lizmat ah, that cas has two, rather dfferent modes of operation/signatures
18:52 diakopter because that's what jnthn was talking about when he said "given the confusion"
18:52 lizmat yup
18:52 lizmat github status: 18:44 UTCRepository access is currently unavailable for a small percentage of users.
18:53 diakopter all I was talking about was the syntax
18:54 lizmat well, that's what we were discussing also, I think :-)
18:54 diakopter I didn't see anything about any other forms
18:55 pippo bye #perl6
18:55 lizmat S17:L745
18:55 pippo left #perl6
18:55 lizmat S17:745
18:55 synopsebot Link: http://perlcabal.org/syn/S17.html#line_745
18:55 lizmat actually, that page is not uptodate, a few lines earlier
18:55 lizmat sub cas($ref is rw, $expected, $new) {
18:56 timotimo apparently i can just put in values just like that
18:56 lue hello world o/
18:57 timotimo hellue
18:57 moritz ERROR: Storage server temporarily offline. See http://status.github.com for GitHub system status.
18:57 diakopter lizmat: that's the cas impl that makes no sense
18:58 xenoterracide joined #perl6
18:58 lizmat diakopter: that is pseudo-code
18:58 lizmat dinner&
18:59 dalek evalbot: 29360df | moritz++ | / (2 files):
18:59 dalek evalbot: [rj] fix revision file path
18:59 dalek evalbot: review: https://github.com/perl6/evalbot/commit/29360df971
18:59 moritz who leaves uncommitted changes in camelia's ~/evalbot dir?
18:59 * moritz *grumbles*
19:00 diakopter me..
19:00 dalek evalbot: f189fd8 | moritz++ | evalbot.pl:
19:00 dalek evalbot: use correct nqp-m path
19:00 dalek evalbot: review: https://github.com/perl6/evalbot/commit/f189fd8233
19:00 timotimo hm, where is the NFA code i have to touch to implement the charrange node type?
19:00 moritz weird, I can push to evalbot, but not to star :(
19:00 diakopter NFA.nqp
19:00 moritz evalbot control restart
19:01 timotimo thanks
19:01 camelia joined #perl6
19:04 moritz j: say 42
19:04 camelia rakudo-jvm 69a5b6: OUTPUT«42␤»
19:08 * timotimo has a first prototype of charrange that may even not completely b0rk!
19:13 timotimo ope.
19:16 Rotwang hi
19:18 timotimo damn, i think i botched it :(
19:19 timotimo but how?
19:20 diakopter with a botcher knife?
19:21 timotimo i think so
19:25 Rotwang could someone tell me what am I doing wrong: http://paste.lisp.org/display/139858
19:25 Rotwang it looks like exception isn't caught, but I don't get why
19:27 moritz Rotwang: iirc CATCH at top level is broken
19:27 moritz Rotwang: try putting it all into a block
19:28 Rotwang it worked, thanks moritz
19:32 timotimo Unrecognized regex modifier :my at line 834, near " $*POD_ALL"  -  i pretty much broke the thing... all the things probably
19:36 FROGGS timotimo: ooc, can I see a the diff?
19:36 timotimo i'm reaching the point where i can tell what's wrong i think!
19:36 FROGGS cool
19:36 timotimo r: '?@ABCDEFGHIJKLMNOPQRSTUVWXYZ'.ords.say
19:37 camelia rakudo-parrot 69a5b6, rakudo-jvm 69a5b6: OUTPUT«63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90␤»
19:37 timotimo huh
19:41 timotimo nqp: say(ordat("foo", 2))
19:41 camelia nqp-moarvm: OUTPUT«No lexical found with name '&ordat'␤frame_name_0␤»
19:41 camelia ..nqp-parrot: OUTPUT«Could not find sub &ordat␤current instr.: '' pc 47 ((file unknown):76459031) (/tmp/yNd8f5S99S:1)␤»
19:41 camelia ..nqp-jvm: OUTPUT«java.lang.NullPointerException␤  in  (/tmp/PNTfN0iTnL:1)␤  in  (gen/jvm/stage2/NQPHLL.nqp:1100)␤  in eval (gen/jvm/stage2/NQPHLL.nqp:1086)␤  in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1292)␤  in command_eval (gen/jvm/stage2/NQPHLL.nqp:1196)␤  in command_line…»
19:41 timotimo nqp: say(nqp::ordat(2, "foo"))
19:41 camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«50␤»
19:41 timotimo nqp: say(nqp::ordat("foo", 2))
19:41 camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«111␤»
19:41 timotimo er ...
19:41 timotimo but which one ...
19:41 timotimo r: say(ord("a"))
19:42 camelia rakudo-parrot 69a5b6, rakudo-jvm 69a5b6: OUTPUT«97␤»
19:42 timotimo nqp: say(nqp::ordat("abc", 0))
19:42 camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«97␤»
19:42 timotimo but that's already how i use it :|
19:43 moritz nqp: say(nqp::ordat("abc", 1))
19:43 camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«98␤»
19:44 timotimo why would there be char ranges from ? to Z?!
19:46 timotimo wat, there really are char ranges from ? to Z
19:47 masak timotimo: maybe someone confused 63 and 65?
19:47 timotimo ah, token charspec.
19:59 timotimo haha, i'm an idiot :(
20:00 timotimo i was getting *very* thin ranges out of this %)
20:00 timotimo i didn't see the $ord1-- while $ord1 >= $ord0 or whatever
20:00 timotimo and after that i tried to use $ord0 and $ord1
20:02 raiph joined #perl6
20:03 timotimo the charrange rxtype is not being used often at all :(
20:03 timotimo once in p6/Actions, once in p6/Grammar, 3 times in NQPHLL
20:05 timotimo it made parsing exactly 0 faster!
20:05 timotimo \o/
20:05 FROGGS :/
20:08 berekuk joined #perl6
20:13 FROGGS timotimo: what if you --profile and then look at things that are called often?
20:14 FROGGS (things that are optimizable)
20:14 timotimo haha, as if :)
20:14 timotimo a whole lot of character classes i miss are not even ranges
20:14 timotimo at least not sensible ranges
20:15 pernatiy joined #perl6
20:16 lizmat .oO( pretty deranged, these classes )
20:17 timotimo my debug output suggests i can't really do much better.
20:17 timotimo i'll see if my implementation outperforms enumcharlist next.
20:17 timotimo (it really ought to, but what do i know?)
20:20 ssutch joined #perl6
20:29 segomos joined #perl6
20:35 sqirrel joined #perl6
20:42 dalek star: d194397 | moritz++ | tools/build/Makefile.in:
20:42 dalek star: default to perl6-p for now
20:42 dalek star:
20:42 dalek star: ... untill we have a more thorough refactoring
20:42 dalek star: review: https://github.com/rakudo/star/commit/d1943976c8
20:43 lue jnthn: somehow I'm getting "Method 'new_type' not found for invocant of class 'NQPMu'" trying to set up the timing thing for Exercise 8.1 .
20:43 moritz lue: sho your code?
20:43 moritz *show
20:44 lue *sigh* I'm a moron.
20:45 moritz exercise = demoronize :-)
20:45 lue (the exercise sheet say PHPClass, meanwhile my class is named PHPishClass , just like RubyishClass in the slides. That's what I get for blind repeating :D)
20:47 Rotwang playing around with Buf I've noticed that ther might be many(?) kinds of Buf (e.g. Buf[uint8]), is it documented somewhere?
20:47 timotimo matching 100_000 times a takes 5.9s with my optimization and 11.8s without it
20:47 timotimo matching 100_000 times z takes 5.9s with my optimization and 17.05s without it
20:47 timotimo (matching against <[a..z]>
20:47 timotimo that is)
20:47 lizmat feels good!
20:48 timotimo yeah, but there's 0 change to rakudo stage parse time :(
20:48 moritz timotimo: and doing 100k non-matching matches?
20:48 moritz like '!' ~~ /<[a..z]>/ ?
20:48 moritz anyway, great numbers so far, timotimo++
20:49 lue Rotwang: here's some stuff on the matter: http://perlcabal.org/syn/S02.html#The_Buf_Type
20:50 kurahaupo joined #perl6
20:50 Rotwang thanks
20:51 timotimo bbl
20:52 lue that doesn't list everything though. There's stuff like Blob (immutable Buf) and utf8 (blob8 with Unicode-related restraints).
21:00 dalek star: ae2b5cd | moritz++ | tools/build/Makefile.in:
21:00 dalek star: slim down Makefile (remove unused variables)
21:00 dalek star: review: https://github.com/rakudo/star/commit/ae2b5cd28e
21:02 stevan_ joined #perl6
21:06 denis_boyun joined #perl6
21:13 virtualsue joined #perl6
21:22 tgt joined #perl6
21:22 moritz my current confidence of making a full-blown JVM star release isn't very high, maybe 30% or so
21:23 moritz quite some Configure work left, plus stability issues with rakudo-jvm, plus nativecall not yet up to speed
21:24 FROGGS would be still nice if we had a parrot-star release that Just Works(TM)
21:28 timotimo 1_000 times trying to match <[a..z]>+ against 100_000 ! used to take 32s, now takes 20s
21:28 moritz \o/
21:29 FROGGS timotimo++
21:30 lizmat timotimo++ indeed!
21:30 timotimo only helps in artificial benchmarks, though
21:31 timotimo it would probably be nice to turn a scan followed by a charrange into a negated charrange and a reverse step at the end ... or something
21:32 timotimo here's something for you to play with
21:32 dalek nqp: 1855f52 | (Timo Paulssen)++ | src/vm/parrot/pmc/qrpa.pmc:
21:32 dalek nqp: give QRPA methods for pop, shift, ...
21:32 dalek nqp: review: https://github.com/perl6/nqp/commit/1855f5272a
21:32 dalek nqp: 47a6ba5 | (Timo Paulssen)++ | src/vm/parrot/QAST/Operations.nqp:
21:32 dalek nqp: use QRPA instead of ResizablePMCArray on parrot
21:32 dalek nqp: review: https://github.com/perl6/nqp/commit/47a6ba5a08
21:32 dalek nqp: fe517a2 | (Timo Paulssen)++ | src/vm/parrot/pmc/qrpa.pmc:
21:32 dalek nqp: steal the quicksort implementation from parrot
21:32 dalek nqp: review: https://github.com/perl6/nqp/commit/fe517a2d50
21:32 dalek nqp: e753bbd | (Timo Paulssen)++ | src/ (3 files):
21:32 dalek nqp: "charrange" rxtype for simple range cclasses
21:32 dalek nqp: review: https://github.com/perl6/nqp/commit/e753bbdca2
21:32 timotimo oh
21:32 timotimo wait, no
21:32 timotimo that's not what i wanted to do?
21:33 moritz the last commit looks like what you wanted to push, maybe?
21:33 timotimo yes, i didn't look properly >_>
21:33 timotimo the other commits are probably not terrible, but may not be perfect.
21:33 timotimo i have some spectest failures in rakudo.
21:34 stevan_ joined #perl6
21:34 lizmat timotimo: which ones?
21:35 dalek Heuristic branch merge: pushed 24 commits to rakudo/moar-support by FROGGS
21:35 timotimo let me run a full spectest.
21:41 dalek rakudo/nom: acd03fa | (Elizabeth Mattijsen)++ | src/vm/jvm/core/CurrentThreadScheduler.pm:
21:41 dalek rakudo/nom: Removed functionality that will *never* work
21:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/acd03fabbd
21:41 dalek rakudo/nom: b0231c4 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ThreadPoolScheduler.pm:
21:41 dalek rakudo/nom: Comment nits
21:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b0231c4e22
21:42 dalek roast: e3f1bb7 | (Elizabeth Mattijsen)++ | S17-concurrency/scheduler.t:
21:42 dalek roast: Add tests for CurrentThreadScheduler
21:42 dalek roast: review: https://github.com/perl6/roast/commit/e3f1bb744c
21:43 dalek star: 0a16efd | moritz++ | Configure.pl:
21:43 dalek star: fix installation
21:43 dalek star: review: https://github.com/rakudo/star/commit/0a16efddb2
21:44 FROGGS Stage ast        :   0.000
21:44 FROGGS Stage optimize   :  17.560
21:44 FROGGS Error while compiling op qlist: No registered operation handler for 'qlist'
21:45 timotimo yes, i have a rakudo commit that fixes the mention of qlist
21:45 timotimo (just replace it with list)
21:46 timotimo it makes no practical difference in the unpatched nqp master
21:46 timotimo er, master@{1} i guess?
21:47 moritz huh, my rakudo just compiled fine on nqp/master
21:47 timotimo ... huh?
21:47 timotimo but how?
21:48 FROGGS nqp-p --version
21:48 FROGGS This is nqp version 2013.10-214-ge753bbd built on parrot 5.9.0 revision RELEASE_5_9_0
21:48 FROGGS moritz: maybe the jvm one?
21:48 timotimo anyway, my spectest run just started
21:48 moritz no, my NQP was older than I thought :(
21:48 FROGGS ahh, hehe
21:48 FROGGS gnight boys+girls
21:48 timotimo gnite, froggs
21:49 lizmat gnight FROGGS
21:49 moritz good night FROGGS++
21:50 colomon o/
21:51 timotimo t/spec/S05-mass/charsets.rakudo.parrot .......................... Failed 1/16 subtests
21:51 moritz Method 'charrange' not found for invocant of class 'QAST::CompilerJAST'
21:51 timotimo huh? but i only generate that on parrot?
21:51 timotimo ... except if i botched the conditional compilation comments
21:52 timotimo t/spec/S05-substitution/subst.rakudo.parrot ..................... Failed 1/141 subtests
21:54 timotimo t/spec/S17-concurrency/scheduler.rakudo.parrot .................. Dubious, test returned 1 (wstat 256, 0x100)
21:55 lizmat timotimo: the first one may be fallout of my split -> no gather/take refactoring
21:55 moritz should r-p even run that file?
21:55 jnthn no
21:55 lizmat well, how can you run some in jvm and not in rakudo?
21:55 timotimo lizmat added a bunch of #todo fudges for rakudo.parrot i believe?
21:56 lizmat they share the same spectest.data no?
21:56 lizmat skip actually
21:56 colomon skip++
21:56 lizmat the problem is that somehow the fudge doesn't count the number of tests correctly in rakudo
21:56 * lizmat runs a spectest to double check
21:56 moritz I guess we should add # jvm markers to spectest.data, and teach the harness not to run those on other backends
21:56 jnthn I think there's a #jvm that can go in spectest.data?
21:57 lizmat there can be?
21:57 jnthn If there arlready ain't :)
21:57 jnthn oh, --jvm is something else I guess
21:57 moritz seems NYI, but desirable
21:57 lizmat the string jvm does not occur on spectest.data
21:57 lizmat there is #icu
21:57 lizmat is that what you mean ?
21:58 moritz same mechanism
21:58 moritz easy to extend
21:58 moritz lemme try
21:58 timotimo https://gist.github.com/timo/2979d2ce068f55772c81 - all my fails
21:58 timotimo how can i prevent some code to be compiled into nqp if it's on the jvm?
21:58 lizmat the other two are older/known ones
21:59 timotimo so i b0rked nothing with my changes to nqp, except all of rakudo.jvm?
21:59 lizmat que?  all of jakudo ?  why ?
22:00 timotimo because it compiles a rxtype that is only implemented on parrot
22:00 FROGGS timotimo: these fails are not your fault, I had them too
22:00 lizmat ah,
22:00 timotimo lizmat, can you push a commit to change the mentions of qlist to list in rakudo?
22:01 lizmat in src/core?
22:01 timotimo i believe so
22:01 dalek rakudo/nom: 789da2e | moritz++ | t/ (2 files):
22:01 dalek rakudo/nom: #jvm markers in t/spectest.data
22:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/789da2ecd8
22:01 moritz src/core/MapIter.pm
22:01 moritz has two of them
22:01 [particle] joined #perl6
22:02 colomon moritz++
22:02 dalek rakudo/nom: 2c40f65 | (Elizabeth Mattijsen)++ | src/core/MapIter.pm:
22:02 dalek rakudo/nom: nqp::qlist -> nqp::list as per timotimo's request
22:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2c40f65c76
22:02 timotimo lovely, thank you :)
22:03 moritz fwiw I haven't really checked my commit, just made sure it doesn't make things worse :-)
22:03 timotimo i can implement charrange on the jvm, too
22:03 timotimo well, stub it, really
22:03 timotimo its node is compatible with enumcharrange
22:03 timotimo er, enumcharlist
22:04 * timotimo tests his commit
22:07 timotimo yeah, that works
22:07 moritz \o/
22:07 dalek nqp: 444052f | (Timo Paulssen)++ | src/vm/jvm/QAST/Compiler.nqp:
22:07 dalek nqp: stub charrange support for nqp-jvm
22:07 dalek nqp: review: https://github.com/perl6/nqp/commit/444052f143
22:07 Ben_Goldberg rn: constant a = b; constant b = a; say a
22:08 camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in…»
22:08 camelia ..rakudo-parrot 69a5b6: OUTPUT«===SORRY!===␤Could not find sub &b␤»
22:08 camelia ..rakudo-jvm 69a5b6: OUTPUT«===SORRY!===␤java.lang.NullPointerException␤»
22:08 Ben_Goldberg std: constant a = b; constant b = a; say a
22:08 camelia std 8adbc60: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Illegally post-declared type:â�¤       'b' used at line 1â�¤Check failedâ�¤FAILED 00:01 122mâ�¤Â»
22:13 xinming joined #perl6
22:25 * timotimo has a prototype for charrange on jvm
22:26 arnsholt I keep mis-segmenting that as ch-arrange
22:26 timotimo :3
22:26 timotimo what do you propose that should do?
22:27 timotimo ooooh crap where did my bandwidth go? =o
22:33 timotimo java.lang.RuntimeException: java.lang.NegativeArraySizeException  -  when trying to call nqp::compilejastlines ... but how did i do that?
22:34 arnsholt new Foo[variable] where variable is negative, I assume
22:35 timotimo yeah, but ... how?
22:35 arnsholt All depends on your code, I assume ==)
22:36 timotimo probably
22:36 timotimo huh. there's a path through my code that would leave a value on the stack, is that bad?
22:36 timotimo like, i have dup'd a value that i want to compare to two other values. if the first comparison triggers the jump, the second copy of the value will still be on the stack
22:36 arnsholt Probably not a good thing, I think
22:37 timotimo how do i properly make such a thing work in the jvm? :(
22:37 timotimo that means i have to have like 10 more labels
22:38 timotimo oh well.
22:38 timotimo oh, i know!
22:40 arnsholt Restructure the flow somehow, I guess? =)
22:42 timotimo yes, i did
22:43 arnsholt Yeah, sounded like that should be possible
22:43 kurahaupo joined #perl6
22:43 timotimo i still get the weird array exception
22:45 arnsholt But you're generating code, it sounds like, not writing Java?
22:46 timotimo yes
22:46 timotimo the exception is thrown somewhere in the bowels of compilejastlines
22:46 arnsholt Ow, that sounds bad
22:47 timotimo kind of does
22:49 timotimo er ... now it works?
22:49 timotimo *weird*
22:53 lizmat enough commits from me today
22:53 lizmat gnight #perl6!
22:53 timotimo gnite liz :)
22:57 colomon joined #perl6
23:01 timotimo maybe it's the bytecode verifier that finds a stack that gets too small?
23:01 stevan__ joined #perl6
23:03 johnny5_ joined #perl6
23:03 timotimo https://gist.github.com/timo/d83252c60f479d3eb30a - want to have a look?
23:05 timotimo arnsholt: do you know your way around the jvm stuff?
23:07 arnsholt Not overly familiar with that side of things, sadly
23:07 timotimo i wasn't before either :3
23:08 timotimo (if i manage to understand that, i may even be able to port the scan-for-literal optimisation moritz++ recently created to the jvm)
23:10 timotimo i'm toying with the idea of turning scan + charrange into something that eats up as many characters that don't match the charrange and then it has to skip back one at the end if it fails i think
23:10 arnsholt I'm going to have a look (if the hotel WiFi decides to cooperate), but I don't think I can help much
23:11 timotimo it may already help a lot if you ask the right "stupid questions" :)
23:12 arnsholt Looks like hotel Wifi has decided that DNS is optional, though >.<
23:13 timotimo want me to resolve the ip for you? :)
23:13 timotimo 192.30.252.141 gist.github.com
23:13 timotimo try this
23:14 geekosaur dns 8.8.8.8 / 8.8.4.4 ...
23:14 arnsholt Yeah, just need to find the thing to twiddle to set the DNS stuff
23:14 timotimo in linux it's /etc/resolv.conf
23:15 geekosaur OS X: System Preferences > Network > select connection > Advanced > DNS
23:15 arnsholt There we go
23:15 arnsholt resolv.conf
23:16 arnsholt It's been a long time since I last had to deal with this kind of crap (thankfully)
23:16 timotimo :)
23:17 geekosaur you might want to figure out what sets up DHCP and stop it from overriding DNS
23:17 geekosaur (if it does)
23:18 arnsholt I'll probably not reboot 'till I get home, so no worries
23:18 * timotimo tries dumping the created bytecode and asking an expert
23:19 jnthn sleep &
23:19 timotimo gnite jnthn!
23:22 langdon_ joined #perl6
23:38 FROGGS joined #perl6
23:50 dayangkun joined #perl6
23:56 timotimo sleep &

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

Perl 6 | Reference Documentation | Rakudo