»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:12
Psyche^ joined
00:16
Psyche^_ left
00:27
dmol left
00:45
xenoterracide left
00:47
xenoterracide joined
|
|||
colomon | woolfy: that's "our" Reini Urban? | 00:51 | |
00:53
xenoterracide left,
xenoterracide joined
|
|||
colomon is having trouble of thinking of anyone he knows who has been played by someone else in an IMDB credit. | 00:57 | ||
01:06
Rotwang left
01:10
xenoterracide left
01:11
djanatyn joined
01:30
ssutch joined
01:31
sizz_ left
01:34
sizz joined
01:36
BenGoldberg joined
01:40
[Sno] left
01:41
[Sno] joined,
[Sno] left
01:42
[Sno] joined
01:43
emma left
01:45
SHODAN left,
SevenWolf joined
|
|||
BenGoldberg | r: constant a = a; say a | 01:55 | |
camelia | rakudo-jvm 882e33: OUTPUT«===SORRY!===java.lang.NullPointerException» | ||
..rakudo-parrot f48531: OUTPUT«===SORRY!===Could not find sub &a» | |||
01:55
benabik left
01:56
benabik joined
01:58
raiph left
|
|||
BenGoldberg | r: my $foo ($bar); say $foo, $bar; $bar = 1; | 01:58 | |
camelia | rakudo-parrot f48531: OUTPUT«(signal SEGV)(Any)(Mu)» | ||
..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…» | |||
BenGoldberg | n: constant a = a; say a | 01:59 | |
camelia | niecza v24-98-g473bd20: OUTPUT«(Any)» | ||
BenGoldberg | n: constant a = b; constant b = a; say a | ||
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
02:24
SimonFelix joined,
SimonFelix left
02:25
SevenWolf left
02:43
kurahaupo left
03:01
ingy^ left
03:06
araujo left
03:07
araujo joined
03:10
colomon left
03:18
colomon joined
03:30
xenoterracide joined
03:41
xenoterracide left
03:48
ssutch left
03:50
ssutch joined
03:54
ingy^ joined
04:00
davecc left
04:22
preflex_ joined,
ChanServ sets mode: +v preflex_
04:23
preflex left,
preflex_ is now known as preflex
04:39
araujo left
05:14
logie_ left
05:46
aindilis joined
05:49
berekuk joined,
kaare_ joined
05:52
nnunley left
06:00
berekuk left
06:07
ingy^ left
06:14
FROGGS left
06:20
logie joined
06:25
logie left
06:38
darutoko joined
06:39
berekuk joined
06:53
REPLeffect left
06:56
tobyink joined
07:00
BenGoldberg left
07:07
berekuk left
07:15
berekuk joined,
REPLeffect joined
07:25
berekuk left
07:26
pernatiy joined
07:29
berekuk joined
07:32
tobyink left
07:39
berekuk left,
araujo joined,
araujo left,
araujo joined
|
|||
moritz | good morning | 07:40 | |
moritz wonders if the perl 6 test files for Plan 9 started with use Test; plan 9; | 07:41 | ||
07:42
berekuk joined
07:43
FROGGS joined
|
|||
dalek | kudo/sized-arrays: 8ef25d7 | Arcterus++ | src/core/Array.pm: Fixed lazy list regression |
07:44 | |
kudo/sized-arrays: bd8c9f7 | (Tobias Leich)++ | src/core/Array.pm: Merge pull request #227 from Arcterus/regressions Fixed lazy list regression |
|||
Heuristic branch merge: pushed 23 commits to rakudo/sized-arrays by FROGGS | 07:47 | ||
07:59
SHODAN joined
08:07
berekuk left
08:08
berekuk joined
|
|||
timotimo | o/ | 08:13 | |
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? | |||
could it be that we need to have a 0 in there always? | |||
or maybe low has to start out 0? | 08:14 | ||
er, -1 i mean | |||
FROGGS | morning | ||
timotimo | morning froggs | ||
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 | ||
that's good to know | |||
i have a local implementation of "contains" that does the same. what should it look like instead? | |||
08:17
dansamo joined
|
|||
timotimo | ah, you committed! | 08:18 | |
very well :) | |||
moritz | timotimo: I've pushed an implementation of contains | ||
08:18
johnny5_ left
|
|||
timotimo | nqp: say(1 +& 1) | 08:19 | |
08:19
berekuk left
|
|||
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«1» | 08:19 | |
timotimo | didn't know nqp had this! cool | ||
moritz | huh, still seems wrong | ||
08:20
johnny5_ joined
|
|||
moritz | "make add_range accept inclusive ranges" | 08:20 | |
I think that commit was wrong | |||
08:21
berekuk joined
|
|||
moritz | I've just tried Set::IntSpan::Fast::PP with ->add_range(10, 20), and it puts 10, 21 into the list | 08:21 | |
oh dammit, _iterate_ranges adds +1 to the second argument | 08:22 | ||
timotimo | %) | ||
moritz | nqp: my $x := 42; say(--$x); | 08:26 | |
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«41» | ||
moritz | nqp: my $x := 42; say($x++); say($x) | 08:27 | |
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«4243» | ||
moritz | ok, add_range fixed | 08:28 | |
timotimo | it has to add +2 now? :) | ||
moritz | aye | ||
timotimo | all right | 08:29 | |
moritz | one becase the upper range is excluse | ||
*exclusive | |||
and one because _find_pos searches for >=, not > | |||
timotimo | aye | ||
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:30 | ||
08:31
denis_boyun joined,
berekuk left
|
|||
FROGGS | wait what... since when can we do $x++ in nqp? | 08:31 | |
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…» | ||
FROGGS | ahh | ||
nvm | |||
08:32
dansamo left
08:39
denis_boyun left
|
|||
dalek | kudo/nom: 2353ef3 | (Tobias Leich)++ | / (2 files): update gitignore files for moarvm |
08:42 | |
kudo/moar-support: f485315 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ (5 files): Migrate cue_with_catch to cue(:&catch) Also some left-behind schedule_* fixes. Unfortunately, specifying a :catch() currently blows up: Unhandled exception: Method 'postcircumfix:<( )>' not found for invocant of class 'Scalar' in (gen/jvm/BOOTSTRAP.nqp:1675) Will look at this tomorrow, unless someone else beats me to this |
08:45 | ||
kudo/moar-support: 2353ef3 | (Tobias Leich)++ | / (2 files): update gitignore files for moarvm |
|||
kudo/moar-support: 30f255a | (Tobias Leich)++ | / (7 files): merged nom into moar-support |
|||
timotimo | huh, wrong branch? | 08:46 | |
FROGGS | sort of, yeah :/ | 08:48 | |
well, maybe not | 08:49 | ||
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
|
|||
timotimo | i meant the cue :&catch thing | 08:53 | |
FROGGS | that is what I mean by moar-support should be up-to-date with nom | 08:55 | |
08:56
isBEKaml joined
|
|||
lizmat | good *, #perl6! | 09:00 | |
thought a lot about .cue last night | |||
dalek | kudo/nom: 52807db | (Tobias Leich)++ | src/core/Temporal.pm: small **0..1->? optimization, saves an array |
||
moritz | \o lizmat, * | ||
FROGGS | morning lizmat | ||
lizmat | and I've come to the conclusion that the method should be named "task" | 09:01 | |
1. because it is both a noun *and* a verb | |||
2. it describes that something else should be doing it | |||
FROGGS .oO( a norb? ) | |||
lizmat | 3. no more audio confusion between .cure and queue | 09:02 | |
09:02
aindilis left
|
|||
lizmat | 4. it's longer | 09:02 | |
FROGGS | .cue is a noun and a verb too | ||
09:02
aindilis joined
09:03
tobyink joined,
isBEKaml left
|
|||
FROGGS | and if my translator works, 2) is invalid, .cue says too that somebody else should do it | 09:04 | |
lizmat | .cue describes less *what* should be done | 09:05 | |
e.g. a cue could be a doorbell ringing | |||
an actor could react to this by hiding him/herself, hiding some goods, or just open the door | 09:06 | ||
FROGGS | hehe | ||
lizmat | the cue itself (the doorbell ringing) doesn't necessarily describe the action that follows | ||
itz | I think I've managed to fix the submodules in star sha1 issue using "git submodule sync" | ||
FROGGS | that would be a nice API where an object hides because a bell rang | 09:07 | |
as I understand .cue talks more about when something needs to be done | |||
lizmat | anyway, task only appears twice in the spec so far, as a general term | 09:08 | |
FROGGS | itz++ | ||
09:18
berekuk joined
09:28
berekuk left
09:34
berekuk joined
09:36
johnny5_ left
09:37
johnny5_ joined
|
|||
dalek | kudo/nom: 00a781f | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? for <deflongname> |
09:38 | |
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 | |
the verb: "To give a cue to; signal or prompt." | |||
dalek | kudo/nom: d63e0e2 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ThreadPoolScheduler.pm: Fix for all but one of the concurrency tests But it shouldn't have made a difference (I don't think) :-( |
||
masak | that is, you can "give a cue to [do some thing]" | ||
or, shorter, "cue [the doing of something]" | 09:40 | ||
lizmat | again, but the cue doesn't necessarily describe what needs to be done | ||
masak | my point is that it does. | ||
lizmat | ah? | ||
doorbell rings | |||
masak | you're right insofar as the *cue* itself (the noun) is another thing. | ||
lizmat | that's a cue | ||
masak | yes. right. | ||
lizmat | what needs to be done? | 09:41 | |
masak | .cue(&the-thing-that-needs-to-be-done) | ||
FROGGS | using it as a verb implies that all know what needs to be done | ||
masak | this is a perfectly valid use of the *verb* "cue". | ||
lizmat is, however, correct in pointing out that the *noun* "cue" is a different thing, unrelated to what needs to be done. | 09:42 | ||
the method name, however, is a verb, not a noun. | |||
having said all that, I'm not very happy about .cue, and wouldn't mind it being replaced by something... more standardized. | 09:43 | ||
.schedule was perfectly cromulent in my eyes. | |||
lizmat | so what's wrong with "task" ? | 09:44 | |
masak | nothing much wrong with "task". | 09:45 | |
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:46 | ||
moritz | +1 to schedule | 09:47 | |
masak | (b) also applies to .cue, by the way. | ||
dammit Jim, it's a Scheduler, not a Cuer! | |||
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 :) | ||
lizmat: right. you .schedule a $task | |||
lizmat | the code in the JVM executed :-) | ||
masak | you do not .task a $task | ||
lizmat | actually, you do | ||
I can task you to take care of something | |||
masak | right. of course. it works, linguistically. | 09:49 | |
but see (b) | |||
moritz | also I'm a bit concerned about all the "cute" method names that are very different from what is usually used | ||
masak .oO( you think it's "cue" today ) | |||
moritz: yes, me too. | |||
moritz: it's the Mu objection all over again. there's a design cost to being different just for the sake of it. | 09:50 | ||
moritz | and one of the objections against 'Object' was that it's very long as a replacement for 'undef' | 09:51 | |
but these days we mostly use Any anyway | |||
masak | we should focus on making awesome APIs, not defending excellent choices of words against the grain of the rest of programmer-dom. | ||
lizmat | breakfast with pancakes! & | ||
moritz had breakfast with cake already :-) | |||
timotimo | birthday cake? | 09:52 | |
masak .oO( .cue the @pancakes! no wait, .schedule the @panca... .task the @p... ) | |||
moritz: whose birthday? :D | |||
or was it just a "yay it's Sunday!" cake...? :) | |||
moritz | masak: no birthday :-). We had visitors yesterday, and I made some cake | ||
09:52
berekuk left
|
|||
masak | moritz++ # cake | 09:53 | |
moritz loves to cake | 09:55 | ||
timotimo | cake a bake | 09:57 | |
masak .oO( the cake is a lion ) | 09:58 | ||
10:02
tobyink left
|
|||
dalek | ecs/rename-cue-back-to-schedule: 2d4192d | masak++ | S17-concurrency.pod: rename 'cue' back to 'schedule' |
10:04 | |
masak | I just pushed a new branch to the 'specs' repo. see above. | ||
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:05 | ||
and found "scheduled things" to be clunky/anemic, and started hunting for something that's both verb-y and noun-y. | 10:06 | ||
I still stand by my opinion that .schedule is better in many ways. | |||
I recommend merging the above branch into master, but I'd love to get a second opinion on that, too. | 10:07 | ||
moritz | you already have a second opinion -) | 10:08 | |
10:12
tobyink joined
|
|||
dalek | kudo/nom: 5cfc4a4 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? for <twigil> |
10:12 | |
moritz | FROGGS++ | 10:16 | |
FROGGS | :o) | 10:17 | |
10:25
johnny5_ left
10:27
johnny5_ joined,
johnny5_ left
10:29
dmol joined,
johnny5_ joined
10:30
ssutch left
10:34
dmol left
|
|||
dalek | kudo/nom: 57fefc9 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? in <morename> |
10:36 | |
10:37
cognominal left
10:38
tobyink left
|
|||
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 | kudo/nom: 7f68890 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? for <statement_mod_[cond|loop]> |
||
lizmat | fwiw, I'm slightly more for task, but could live with schedule | 10:58 | |
most of the changes in that area where merging the _in, _every, _with catch variants anyway | 10:59 | ||
dalek | kudo/nom: 56cde80 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ThreadPoolScheduler.pm: Slightly different approach to fixing :catch |
11:00 | |
lizmat | jnthn: could you please have a look at src/vm/jvm/core/ThreadPoolScheduler.pm, line 60 and following | 11:01 | |
it still doesn't do the catch :-( | 11:02 | ||
and I have run out of ideas as to why | |||
11:02
Rotwang joined
|
|||
jnthn | # just cue the code | 11:04 | |
else { | |||
This branch doesn't do anything with the catch | |||
It doesn't use the $hash | 11:05 | ||
oh, wait, the branhc above is meant to do t | |||
lizmat | that's why there is a or &catch in the elseif before | ||
jnthn | but...that's weird | ||
lizmat | you mean, calling it with a delay of 0 | 11:06 | |
jnthn | yeah | ||
That doesn't run it on one of the normal pool threads | |||
lizmat | ok, I'll try to make that different then | ||
jnthn | The way I'd do it is take &code is copy | 11:07 | |
lizmat | gotcha | ||
jnthn | And then if &catch { &code = { CATCH { default { catch($_) } }; code(); } | ||
Or similar | 11:08 | ||
lizmat | would that not recurse ? | ||
it would use the old value of &code ? | |||
jnthn | oops, yes | ||
lizmat | ok, so no is copy then :-) | ||
jnthn | Right, just make a $what_to_call or something :) | ||
lizmat | gotcha | 11:10 | |
11:11
spider-mario joined
11:19
tobyink joined
|
|||
woolfy | task... cue... hint! duty!! job!!! chore!!!! | 11:19 | |
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:20 | ||
A "cue" is "(in animation and presentation programs) an embedded code that specifies when an action is to occur" | 11:21 | ||
(a job is mentioned in correlation to batch processing, hinting refers to stuff with fonts, and chore is mentioned nowhere in Barron's) | 11:23 | ||
Hmmm? | 11:24 | ||
dalek | kudo/nom: bd13550 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ThreadPoolScheduler.pm: Fix :catch, thanks jnthn++ for another set of eyes |
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 | ||
writing tests for that now | |||
dalek | ast: eb2a45c | (Elizabeth Mattijsen)++ | S17-concurrency/scheduler.t: Transfmogrify cue_with_catch and add :in/:at tests |
11:29 | |
11:31
dmol joined
|
|||
lizmat | actually, another reason to use ".task" is that it could return a Task object | 11:36 | |
doesn't feel right to have .cue return a Cued object, or .schedule return a .Scheduled object | 11:37 | ||
linguistically, of course :-) | |||
11:39
denis_boyun joined
|
|||
jnthn | Well, what you're really getting back I suspect is a Canceller or some such | 11:40 | |
timotimo | Ripcord | ||
jnthn | Harpsicord? | 11:41 | |
lizmat | an object that you can use to see if it's still running or not as well? | ||
maybe we need to wrap it in wood and call it a piano ? | |||
timotimo | moritz: there are still many off-by-ones left to handle :P | ||
er, actually, no | 11:42 | ||
timotimo patches the copy method to actually make a copy | |||
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 | |
'cus asking if you can before doing is a big no-no in concurrent programming. | |||
lizmat | I was more thinking as a debugging tool, actually | ||
but yes, got your point | |||
jnthn | Ah, for debugging I was thinking more scheduler introspection | ||
Kinda like a "loads" that gives a snapshot of everything | 11:44 | ||
lizmat | ah, ok | 11:45 | |
timotimo | moritz: i pushed new tests and a small amount of fixes | 11:46 | |
11:47
berekuk joined
|
|||
dalek | ast: a36fd9f | (Elizabeth Mattijsen)++ | S17-concurrency/scheduler.t: Add some more :catch related tests |
11:54 | |
11:54
rindolf joined
|
|||
dalek | kudo/nom: 0c4aa93 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? for <longname> |
11:57 | |
12:09
xenoterracide joined
|
|||
dalek | kudo/nom: 5ee24e6 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? for statement_control:sym<if> and <loop> |
12:12 | |
12:13
atroxaper joined
|
|||
atroxaper | Hello #perl6 | 12:14 | |
woolfy | Hello atroxaper | ||
atroxaper | Guys, do you know how can i parse some code writen on perl6 by Perl6::Grammar of Rakudo? | 12:15 | |
Hello woolfy | |||
timotimo | you can use nqp::getcomp to get the Perl6::Compiler object and use its .parse method | 12:16 | |
it will give you back the qast, not a match object, though | |||
FROGGS | atroxaper: search the irc logs a bit, we had this just some days ago | ||
atroxaper | Wow. I'm going to try in. Thank you, timotimo! | 12:17 | |
FROGGS | search for Perl6::Grammar.parse or so | ||
atroxaper | Ok, FROGGS, thank you. | ||
12:18
rindolf left,
rindolf joined
|
|||
dalek | kudo/nom: 99c10e2 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? for <multisig> |
12:24 | |
kudo/nom: afd2c56 | (Elizabeth Mattijsen)++ | src/Perl6/Actions.nqp: Fix for #120501: my &a; say &a # Callable not Any |
12:28 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120501 | ||
dalek | ast: dfd5d4a | (Elizabeth Mattijsen)++ | S04-declarations/my.t: Fix test for fix of #120501: (my &).say # Callable |
12:29 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120501 | ||
timotimo | FROGGS: a clue how these changes change parsing performance? | ||
FROGGS | timotimo: no visible changes | ||
timotimo | that's what i feared :( | 12:30 | |
lizmat | away for a bit& | ||
FROGGS | maybe one with less RAM will see a difference, or with other code... | ||
12:32
rindolf left
12:33
rindolf joined
12:35
sahadev left
|
|||
dalek | kudo/nom: ba14c95 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? for <signature> |
12:37 | |
masak .oO( Canceller Palpatine ) | |||
FROGGS | damn, wrong commit msg -.- | 12:39 | |
dalek | ar: c84c728 | moritz++ | modules/ (8 files): update submodule revisions |
12:40 | |
12:42
tobyink left
12:43
tobyink joined
|
|||
moritz idly wonders if he should fake up a rakudo and nqp release locally to be able to properly test start | 12:44 | ||
12:50
rindolf left
12:51
rindolf joined
12:56
colomon left
|
|||
dalek | kudo/nom: 2d77717 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? for <signature> (The commit before this one was for <initializer>.) |
12:58 | |
12:59
colomon joined
13:01
tobyink left
13:02
denis_boyun left
|
|||
timotimo | hm, what exciting things are going into the new rakudo release? | 13:04 | |
there's concurrency changes & implementation in store for the jvm part, that much i know | |||
mokudo isn't quite there yet :( | |||
oh, cool, the sigspace change is for this month's release | 13:05 | ||
and the currying changes, too | |||
13:06
rindolf left,
rindolf joined
|
|||
FROGGS | timotimo: sort of funny to read that :P github.com/rakudo/rakudo/blob/nom/...ce/2009-02 | 13:12 | |
13:17
rindolf left,
rjbs left
13:20
pernatiy left
|
|||
dalek | kudo/nom: 8380951 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? in statement_control:sym<require> |
13:21 | |
13:23
benabik left
|
|||
timotimo | hah | 13:33 | |
13:40
isBEKaml joined
|
|||
masak | interesting py2-to-py3 retrospective: www.dropbox.com/s/83ppa5iykqmr14z/...s2013.pptx | 13:46 | |
(by guido) | 13:47 | ||
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 | ||
(I don't know how to say that in a way that isn't guaranteed to upset some Perl 5 people, sorry) | |||
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 | |
standing somewhere in the middle-left is just weird | |||
masak | agreed. | 13:51 | |
but it *does* take less time. :P | |||
(and yet Guido writes "Expect another 5 years") | |||
FROGGS | I mean, I understand that somebody does not want to take this 10-years-and-ongoing trip | ||
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?!) | ||
pdurbin: depends on the hacker's age perhaps? | |||
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 | ||
isBEKaml | yeah, performance - say we start bad and then even out later. :-) | 13:55 | |
masak | nwc10: agreed. | ||
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 | ||
masak | he's honest about the things that didn't turn out great. | ||
nwc10 | I don't want to wait (another) 5 years to find out if that "halfway" is accurate | 13:56 | |
masak | no-one wants to wait for anything. | 13:57 | |
pdurbin | masak: yeah and stuff like multi-line lambdas that still aren't fixed | ||
moritz | somehow libreoffice butchers his slides | ||
inserting ligatures in code examples | |||
masak | as does Chrome. | ||
moritz | so maybe the slides are to blame, not libreoffice :-) | 13:58 | |
isBEKaml | yeah, I thought I was the only one. Too much misalignment. | ||
It's ironically the unicode slide that's worst on my screen. :-) | 13:59 | ||
moritz | same here | ||
moritz has a totally unrelated and 90% off-topic question | |||
pdurbin | heh | ||
moritz | do you know any template systems that are optimized for code reuse? | ||
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 | ||
masak | moritz: template system as in HTML template system? | ||
moritz | masak: yes | ||
like blog posts, comments, profile pages etc. | |||
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) | ||
so, I could write an include thingy for turning a blog post object into a link | |||
and one for an author object | |||
and so on | |||
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 | ||
it seems that everyone underestimated how hard it is to migrate an ecosystem | |||
moritz | and it galls be, because we have a perfectly fine solution for that problem outside of templates: objects, polymorphism, method cals | 14:03 | |
*calls | |||
masak | moritz: I don't know anything like what you describe, but it sounds like something that would be interesting to prototype. | ||
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 | ||
masak | moritz: in some sense, it sounds like something that heads partway down the road of a Rails/Django-like object system. | 14:04 | |
"frontend objects", also known as "[REST] resources". | |||
moritz | and a very easy solution would be to stick those methods into the actual backend objects | 14:05 | |
but that's just plain bad design etc. | |||
masak: sounds about right | |||
masak: do you happen to have any good resources on them for me? | 14:06 | ||
14:07
rjbs joined
|
|||
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
rjbs left
|
|||
masak | moritz: something like en.wikipedia.org/wiki/Representati..._interface seems like a good start. | 14:09 | |
14:09
rjbs joined
|
|||
FROGGS | in Perl6::Grammar I have something like: [ <?[[]> '[' ~ ']' <arglist> ]? | 14:09 | |
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 | ||
FROGGS | and $<arglist> seems to be an RPMCA... ould that be? | ||
masak | nwc10: but yeah, it also sounds like wishful thinking. | ||
FROGGS | jnthn: ? | 14:11 | |
moritz | masak: takk | ||
masak | moritz: but maybe taking a look at docs.djangoproject.com/en/1.6/intro/tutorial01/ would be more informative. | 14:12 | |
moritz: suggest skimming, keeping on the lookout for ideas that sound like what you wanted. | |||
nwc10 | pdurbin: "halfway through" definately sounds great, but I find it very hard to actually find metrics to *measure* this | ||
pdurbin | nwc10: "won't be nothin' you can't measure anymore" -- leonard cohen ;) | 14:13 | |
nwc10 | and that other talk it references is | 14:15 | |
speakerdeck.com/pyconslides/python...ett-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 no | |||
jnthn | FROGGS: I'm prettty sure the ? should no longer cause that | ||
nwc10 | So why isn't Python 3.3 self-evidently better? Why do people need convincing? | ||
FROGGS | nqp-p: grammar G { rule TOP { [ '(' ~ ')' <ident> ]? } }; class A { method TOP($/) { say($<ident>.hurz) } }; G.parse( "(abc)", :actions(A.new) ) | ||
camelia | nqp-parrot: OUTPUT«Method 'hurz' not found for invocant of class 'NQPMatch'current instr.: 'TOP' pc 872 ((file unknown):311) (/tmp/SaALwwLDZB:1)» | ||
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" | ||
) | |||
but, also, I have no way to prove that hunch. | |||
FROGGS | jnthn: I am unable to spot the error :/ | ||
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. | ||
moritz | nwc10: there is no such thing as "self-evidently better" for things as complex as programming languages | 14:19 | |
masak | +1 | 14:21 | |
FROGGS | HAHAHA | 14:22 | |
jnthn | .oO( Is LOLCODE better than bf? ) |
||
masak .oO( there is no such thing as "self-evidently butter" for things as complex as long-chained lipids ) | |||
diakopter | "need convincing" can just mean they're skeptical for indirect reasons, not that they believe differently already | ||
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)» | ||
FROGGS | jnthn: I tripped over that one ...............^ | ||
jnthn | FROGGS: oh :) | ||
isBEKaml | jnthn: what jvm settings do you use for compiling nqp and rakudo on your machine? | 14:24 | |
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.. | ||
isBEKaml: What version of JVM have you? | |||
isBEKaml | jnthn: jdk 7 latest. | ||
jnthn | Weird... | 14:26 | |
FROGGS | jnthn: it wasn't that obvious in token typename as my example | ||
timotimo | the kerning in that pdf slides file is super b0rked :( | 14:27 | |
what is a .pptx | |||
lol | |||
isBEKaml | jnthn: can you do one thing, please? | 14:28 | |
jnthn: pass in -XshowSettings:vm in your java invocation in Makefile? | |||
14:28
cibs joined
|
|||
isBEKaml | jnthn: that would give us what settings is actually passed into your jvm. | 14:29 | |
14:30
sqirrel joined
14:31
cibs left
14:33
cibs joined
|
|||
isBEKaml | jnthn: No hurry, please post this information when you find the time - this is what I mean: gist.github.com/anonymous/7398976 # note the extra -X flag, that's where my build fails. | 14:34 | |
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 | |
"core developers all on board" :) | |||
masak | pdurbin: think of that as Python 2/3 never having "fractured" into two subcommunities like Perl 5/6 did. | 14:37 | |
14:37
broquaint left
|
|||
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 | |
14:38
broquaint joined,
cibs_ joined
14:39
cibs left
|
|||
masak | pdurbin: well, Guido is benovelently dictating both 2.x and 3.x | 14:39 | |
pdurbin: Larry less so with 5.1x these days. | |||
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. | ||
moritz | masak: actually perl 5.2x is being prepared these days :-) | ||
dalek | kudo/nom: 783666c | (Tobias Leich)++ | src/Perl6/ (3 files): **0..1 => ? about <typename> |
14:41 | |
masak | moritz: last I heard, Larry is not dictating that one either much :) | ||
instead, it's pumpkings all the way down. | |||
14:41
isBEKaml left
|
|||
moritz | pdurbin: I pasted my output as a comment on Max. Heap Size (Estimated): 855.12M | 14:42 | |
Ergonomics Machine Class: server | |||
Using VM: OpenJDK 64-Bit Server VM | |||
args, copy&pasta fail :-) | |||
gist.github.com/anonymous/7398976 is what I meant :-) | 14:43 | ||
dalek | ecs: 8a85b31 | (Elizabeth Mattijsen)++ | S17-concurrency.pod: Some punctuation |
||
pdurbin | moritz: cool. yeah, I'm hoping to try Perl 6 on the JVM some day | 14:44 | |
14:47
ajr joined,
ajr is now known as Guest10997
|
|||
timotimo | moritz: did you see the fail my test brought to light? | 14:47 | |
14:47
Guest10997 is now known as ajr_
|
|||
moritz | timotimo: not yet | 14:48 | |
moritz pulls | 14:49 | ||
pdurbin | a few weeks ago at JavaOne, four new languages on the JVM (ceylon-lang.org www.mirah.org kotlin.jetbrains.org en.wikipedia.org/wiki/Frege_%28prog...anguage%29 ) were presented (The Emerging Languages Bowl: The Quest to Be in the Big Leagues [CON4892] oracleus.activeevents.com/2013/con...ON_ID=4892 ). It would have been cool to hear about a | 14:54 | |
fifth... Perl 6! :) | |||
14:55
ajr_ left
14:57
raiph joined,
ajr_ joined
15:00
denis_boyun joined
15:01
ajr_ left
|
|||
moritz | timotimo: yes, seems to be an offby1 error somewhere | 15:03 | |
15:03
ajr_ joined
15:12
sqirrel left
15:15
tgt joined
|
|||
timotimo | that's what i figured :) | 15:24 | |
timotimo writes some more tests | 15:25 | ||
15:36
raiph left,
BenGoldberg joined
|
|||
nwc10 | it's quite old "news" that there will never be a Python 2.8: www.python.org/dev/peps/pep-0404/ | 15:36 | |
moritz | .oO( requests for python 2.8 will always return a 404 ) |
15:37 | |
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:38 | |
with "special biologist word" standard libraries (due to how Python doesn't do dual life) | 15:39 | ||
15:39
nnunley joined
|
|||
nwc10 | standard libraries which some are already less than enamoured with: programming.oreilly.com/2013/10/dea...luded.html | 15:39 | |
(but you can't please everyone all of the time) | 15:40 | ||
timotimo | yeah, the python standard library is where code goes to die | ||
it's pretty sad | |||
moritz | .oO( Text::Soundex ) |
15:41 | |
dalek | kudo-star-daily: 69955cc | coke++ | log/ (4 files): today (automated commit) |
15:43 | |
kudo-star-daily: eee063d | coke++ | log/ (5 files): today (automated commit) |
|||
rl6-roast-data: 606538e | coke++ | / (5 files): today (automated commit) |
|||
nwc10 | moritz: perl5.git.perl.org/perl.git/commit/...3097c75efe | ||
oh, nothing is announcing that commit - Removed cpan/Text-Soundex | |||
15:50
raiph joined
|
|||
timotimo | moritz: union seems buggy, look: # original 5, 11, 15, 21 | 15:51 | |
# forwards union 5, 11, 15, 22 | |||
# backwards union 5, 12, 15, 21 | |||
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
|
|||
moritz | timotimo: again offby1 errors | 15:52 | |
nwc10: so how long did it take for Text::Soundex to die? | |||
timotimo | this off-by-one confuses me | 15:53 | |
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 | |||
ah, i need to subtract 1 from the second one and it makes tests pass | 15:54 | ||
this fixed it apparently | 15:55 | ||
moritz | timotimo: please try to do it the same way as Set::IntSpan::Fast::PP | 15:56 | |
timotimo | butbutbutbut TDD! | 15:58 | |
moritz | nothing wrong with TDD | ||
[Coke] wakes up | |||
timotimo | ah, it was the thing where iterate_ranges subtracts 1 from the $to | ||
moritz | just when you fix stuff, ask yourself how the original author did it right and we did it wrong :-) | ||
timotimo | we don't have iterate_ranges so we have to do it ourselves everywhere ;) | ||
moritz | it adds 1 to $to | 15:59 | |
it doesn't substract | |||
timotimo | my @r = ( $self->[$pos], $self->[ $pos + 1 ] - 1 ); | ||
that's the code | |||
moritz | oh, iterate_runs | 16:00 | |
ok | |||
iterate_ranges adds one :-) | |||
16:00
sqirrel joined
|
|||
timotimo | i typo'd it, i didn't know iterate_ranges exists | 16:00 | |
actually _iterate_ranges | 16:01 | ||
interesting | |||
do we have code to remove duplicated entries? | |||
moritz | I haven't added anything :-) | ||
timotimo | like when you add_range(10, 15); add_range(15, 20); it should just be 10,21, right? | 16:02 | |
16:02
denis_boyun left
|
|||
moritz | timotimo: yes, add_ranges is smart enough to do that | 16:02 | |
timotimo | great. should i add tests for that? | ||
moritz | +1 | ||
pdurbin | moritz: no confirmation on if 404 was picked on purpose: plus.google.com/115212051037621986...yj7PBEgwQ7 :) | 16:03 | |
16:03
raiph left,
raiph joined
|
|||
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 | kudo/nom: b195c81 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? for <capture> |
||
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. | ||
timotimo | looks good to me now | 16:07 | |
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
|
|||
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 | |
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 | |||
nwc10 continues to fight printers | 16:33 | ||
masak .oO( wtf does PC LOAD LETTER mean!? ) | 16:34 | ||
16:35
jferrero joined,
rindolf joined
16:36
jferrero is now known as JoaquinFerrero,
beastd joined
16:37
pecastro left
|
|||
dalek | kudo/nom: bb0ad62 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? for <param_var> |
16:39 | |
16:44
pecastro joined
16:45
denisboyun left
16:46
JoaquinFerrero left,
jferrero joined
16:48
d^_^b left
|
|||
dalek | kudo/nom: ef9ceb5 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? for pir::op and nqp::op |
16:49 | |
16:49
d^_^b joined,
d^_^b left,
d^_^b joined
16:54
berekuk left
16:55
Ben_Goldberg joined
16:56
BenGoldberg left
|
|||
dalek | ecs: 71fd6d3 | (Elizabeth Mattijsen)++ | S17-concurrency.pod: Introduce $a (+=) 1 as sugar for cas $a, {$_ + 1} |
16:58 | |
timotimo | oh, with parens? | 16:59 | |
lizmat | It's just an idea | ||
17:00
rindolf left
|
|||
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
|
|||
masak | they're too different to look so much alike. | 17:00 | |
jnthn | .oO( Bra idea, men syntax e CAS... ) |
17:01 | |
masak | am I correct in assuming that the commit message should have said { $_ += 1 } | ||
? | |||
timotimo | no, cas does the assignment | 17:02 | |
masak | ah. | ||
lizmat | timotimo: indeed | ||
masak | yes, I see it now. | ||
lizmat | that's the whole idea | ||
masak | my mistake. | ||
anyway, I still think it's a bad idea to dedicate *any* operator to cas-specific things (in core). | |||
doubly bad to make (+) be a set op and (+=) be a CAS op. | 17:03 | ||
17:03
pippo joined,
tgt left
|
|||
lizmat | well, I think we need sugar to make this easy to use | 17:03 | |
pippo | o/ #perl6 | ||
timotimo | 6lrep# \o | ||
masak reads the commit | 17:04 | ||
lizmat: oh! you didn't just introduce (+=), you introduced a whole new *metaop*! | |||
atroxaper | o/ pippo | ||
masak | that's... corageous. :) | ||
atroxaper | bb #perl6 o/ | ||
17:04
atroxaper left
|
|||
pippo | lizmat: I have tried this: github.com/rakudo/rakudo/commit/84d2cb8eb6 | 17:05 | |
masak | lizmat: fwiw, it's S03 that introduces new operators, not S17. | ||
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:06
ajr_ left
|
|||
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(',')" | ||
real0m12.274s | |||
user0m21.327s | |||
sys0m0.573s | |||
it grows until about 460MB of memory | |||
timotimo | ah, the jvm join/split problem is solved? | ||
pippo | lizmat: is it jvm based perl 6? | ||
lizmat | no, split doesn't use gather/take anymore | ||
$ perl6 --version | 17:09 | ||
This is perl6 version 2013.10-179-gb195c81 built on JVM | |||
so it circumvents the problem on JVM | |||
pippo | lizmat: I do not undestand why on mine it does not... | ||
lizmat | what OS ? | ||
pippo | linux | 17:10 | |
17:10
ajr joined
|
|||
lizmat | $ javac -version | 17:10 | |
javac 1.7.0_45 | |||
I run on OS X Mavericks | |||
17:10
ajr is now known as Guest22491
|
|||
pippo | javac -version | 17:10 | |
17:10
Guest22491 is now known as ajr_
|
|||
pippo | javac 1.7.0_45 | 17:10 | |
lizmat | and again, it is not fixed, split just doesn't use gather/take anymore | ||
moritz | workarounded | 17:11 | |
timotimo | moritz: what's the next step for our inversion list project? | ||
lizmat | indeed, although I still fail to see why split() would need to use gather/take in the core | ||
other than for dogfooding reasons | |||
pippo | lizmat: i'll try recompiling perl6... | 17:12 | |
jnthn | lizmat: Laziness | ||
moritz | lizmat: no good reason; it was just simpler that way when I initially wrote it | ||
jnthn | Depends if it's useful for split to be lazy in the general case :) | ||
lizmat | it uses a map now, that should also be lazy :-) | ||
jnthn | oh, ok :) | ||
jnthn didn't read, 'cus he's writing yet more slides... | |||
timotimo | that probably means it's faster on parrot now, too? | 17:13 | |
lizmat | although Str.match isn'r, afak | ||
afaik | |||
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>; | ||
moritz | timotimo: good question. There are two possible routes (more) | ||
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?" | ||
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." | ||
Ubuntu fail. OS X win. | |||
moritz | timotimo: and the second is to try to incorporate it into nqp first, and then try to make it more sophisticated | ||
lizmat | pippo: grows to about 4G in memory, then hangs while garbage collecting, I would assume | 17:15 | |
ah, an error after all: Unhandled exception: java.lang.OutOfMemoryError: Java heap space | |||
jnthn | How on earth does pushing 10,000 things onto a hash use 4G of memory?! | ||
lizmat | in print_exception (gen/jvm/CORE.setting:10706) | ||
17:15
rindolf left
17:16
rindolf joined
|
|||
dalek | ar: 765bd6c | moritz++ | tools/star/Makefile: bump versions to 2013.11 they do not exists yet, but I sure hope they will :-) |
17:16 | |
lizmat | well, jnthn, I wouldn't know, but I fear jakudo atm is really not well | ||
pippo | lizmat: yes also for me. Does this has code in common with gather/take ? | ||
timotimo | i wonder where the code lives that does things like <alpha+[0..9]> | 17:17 | |
does it generate an altseq for cclass alpha and enumcharlist 0..9? | |||
or does it generate an enumcharlist with a..zA..Z and 0..9? | |||
lizmat | pippo: I would have to look | ||
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 | ||
pippo | n: my %h; for ^10_000 {%h.push($_ => $_)}; say %h<8>; now - BEGIN now; | 17:20 | |
camelia | niecza v24-98-g473bd20: OUTPUT«8» | ||
pippo | n: my %h; for ^10_000 {%h.push($_ => $_)}; say %h<8>; say now - BEGIN now; | ||
camelia | niecza v24-98-g473bd20: OUTPUT«80.1979072093963623» | ||
jnthn | p: my %h; for ^10_000 {%h.push($_ => $_)}; say %h<8>; say now - BEGIN now; | 17:21 | |
camelia | rakudo-parrot b195c8: OUTPUT«(timeout)» | ||
jnthn | j: my %h; for ^10_000 {%h.push($_ => $_)}; say %h<8>; say now - BEGIN now; | ||
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 | ||
And then the loop builds a huge result list flattening the hash into pairs each time | |||
But that's clearly in sink context... | |||
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)» | ||
jnthn | um. | ||
j: my %h; for ^10_000 {%h.push($_ => $_); 1; }; say %h<8>; say now - BEGIN now; | |||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
pippo | j: say "Hello"; | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | 17:24 | |
pippo | j has crashed! | ||
jnthn | ah | ||
p: say "Hello" | |||
camelia | rakudo-parrot b195c8: OUTPUT«Hello» | ||
pippo | it exhausts all memory and craches... | 17:25 | |
jnthn | Soemthing is wrong in general given how long it takes on Parrot too, though. | ||
pippo | Seems likely. | 17:26 | |
17:26
sqirrel left
17:29
johnny5_ left,
rindolf left
17:30
rindolf joined,
johnny5_ joined
|
|||
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:30 | |
lizmat | ah, interesting observation :-) | 17:32 | |
I guess they must be :-) | |||
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
johnny5_ left
|
|||
pippo | jhntn: same result: crash | 17:32 | |
jnthn | OK, that makes no sense. :/ | ||
lizmat | jnthn: that eats 4G+ RAM on my machine | 17:33 | |
jnthn | OK, then we need to work out why. | ||
lizmat | and a : Unhandled exception: java.lang.OutOfMemoryError: Java heap space at the end | ||
17:33
johnny5_ joined
|
|||
pippo | same for me :-( | 17:34 | |
17:39
rindolf left,
rindolf joined
17:40
beastd left,
darutoko left
|
|||
dalek | kudo/nom: 3be0a1a | (Elizabeth Mattijsen)++ | docs/deprecations: Mention Increase/Decrease to be deprecated in 2013.11 |
17:41 | |
FROGGS | lizmat++ | 17:45 | |
timotimo: I'd think it is in nqp/src/QRegex/P6Regex/Actions.nqp:567: method cclass_elem($/) { | 17:47 | ||
dalek | kudo/nom: 397a24b | (Elizabeth Mattijsen)++ | docs/ChangeLog: Mention Increase/Decrease are deprecated |
||
FROGGS | timotimo: and nqp/src/QRegex/P6Regex/Actions.nqp:527: method assertion:sym<[>($/) { | 17:49 | |
17:53
colomon left
17:55
colomon joined
|
|||
timotimo | thank you :3 | 17:55 | |
yeah, the things are done with an altseq | 17:56 | ||
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 | ||
oh well, the stuff that moritz is going to make (with a bit of my help) will probably make that obsolete quickly | |||
hm. but perhaps not for this month's release | |||
dalek | kudo/nom: 4d841f3 | (Tobias Leich)++ | src/Perl6/ (2 files): **0..1 => ? in type_declarator:sym<subset> |
17:59 | |
kudo/nom: 69a5b64 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/asyncops.pm: Remove unneeded code from debugging, most likely |
18:01 | ||
18:02
zakharyas joined
18:05
ssutch joined
18:06
rindolf left
18:07
rindolf joined
|
|||
dalek | ecs: 98c34a7 | (Elizabeth Mattijsen)++ | S17-concurrency.pod: Introduce .cue(:times(42)) and .cue(:stop($var)) |
18:16 | |
lizmat | so we don't need a return value of .cue exposed | 18:18 | |
pippo | j: say "Hello" | 18:19 | |
diakopter | lizmat++ # cas syntax, whatever it ends up as | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
18:20
grondilu joined
|
|||
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;' | ||
camelia | rakudo-parrot ef9ceb: OUTPUT«===SORRY!=== Error while compiling /tmp/p_xOqGUGU5Two terms in a rowat /tmp/p_xOqGUGU5:1------> perl6 -e ⏏'subset Even of Int where * %% 2; say gr expecting any of: postfix infix s…» | ||
..rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/jeHuo_iEhFTwo terms in a rowat /tmp/jeHuo_iEhF:1------> perl6 -e ⏏'subset Even of Int where * %% 2; say gr expecting any of: postfix infix stop…» | |||
..niecza v24-98-g473bd20: OUTPUT«===SORRY!===Two terms in a row (listop with args requires whitespace or parens) at /tmp/MqJcYxucqK line 1:------> perl6 -e ⏏'subset Even of Int where * %% 2; say grUndeclared routine: 'perl6' use…» | |||
lizmat | diakopter: the way I read the spec, it will repeat until successful | ||
so no return value needed | |||
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» | ||
grondilu | rn: subset Even of Int where * %% 2; say grep !Even, ^10; | ||
diakopter | lizmat: it needs a way to subvert that | ||
camelia | rakudo-parrot ef9ceb, rakudo-jvm 882e33, niecza v24-98-g473bd20: OUTPUT«0 1 2 3 4 5 6 7 8 9» | ||
diakopter | often you want to try a change only once | ||
grondilu was expecting 1 3 5 7 9 | |||
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; | ||
camelia | rakudo-parrot ef9ceb, rakudo-jvm 882e33: OUTPUT«0 1 2 3 4 5 6 7 8 9» | ||
..niecza v24-98-g473bd20: OUTPUT«1 3 5 7 9» | |||
diakopter | the normal form of what | ||
jnthn | Arguably the overload the takes a var and a coderef should not be called cas, 'cus it adds too much. | ||
diakopter: The normal form of cas, as spec'd | |||
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) | ||
grondilu | rn: subset Even of Int where * %% 2; say grep { $_ !~~ Even }, ^10; | ||
jnthn | diakopter: The "try in a loop" is just a convenience. | ||
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 | ||
timotimo | i bet it'll generate a set $some-register, $my-number for me, but how do i get at $some-register? | ||
do i put $ops.as_post($node[0]) in there or something? | |||
jnthn | diakopter: That form doesn't, given it loops until it is successful | ||
diakopter | I mean the normal one | ||
jnthn | diakopter: The other form that takes the usual arguments, not a code ref, just returns the original value | ||
diakopter: The normal one has about the same signature as MVM_cas iirc | 18:24 | ||
diakopter | oh | ||
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? | ||
jnthn | I just can't think of one | ||
Nothing on that yet | 18:26 | ||
Not sure how useful it is in reality | |||
diakopter | you can pretty much assume it when constants are involved | ||
jnthn | dinner, bbil | 18:29 | |
FROGGS | what was L again? 50? | 18:32 | |
lizmat | in roman? yes | 18:33 | |
18:33
cognominal joined
|
|||
FROGGS | k :o) | 18:33 | |
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 | ||
diakopter | jnthn: what confusion did you mean | ||
pippo | lizmat: is Camelia's r-j patched with github.com/rakudo/rakudo/commit/84d2cb8eb6? | 18:37 | |
moritz | itz: I'm about to push a fix | ||
lizmat | actually, I have no idea | ||
timotimo | how do i handle an IVal in the qast compiler for parrot? :( | ||
moritz | itz: my local star repo had a wrong submodule url | ||
itz++ | |||
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? | ||
timotimo | it seemed like i'd have to $name := self.coerce($ops.as_post($node[0]), 'I') | ||
18:38
ajr_ left
|
|||
timotimo | but that tells me i can't as_post PIRT::Ops | 18:38 | |
moritz | seems I can't push to github, it hangs :( | ||
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 ... | ||
lizmat | status.github.com shows mean web response time *WAY* up | ||
pippo | java.lang.OutOfMemoryError: Java heap space | ||
lizmat | pippo: sorry to hear, but I'm a jvm noob | 18:40 | |
jnthn / sorear are the architects on the jvm, afaik | |||
18:41
rindolf left
|
|||
diakopter | was anyone confuaed? | 18:42 | |
lizmat | I am now | 18:43 | |
pippo | j: say (^20_000).join(',').split(',')[*-1]; | 18:44 | |
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
pippo | j: say "Hello" | ||
camelia | rakudo-jvm 882e33: OUTPUT«(timeout)» | ||
18:44
xenoterracide left
|
|||
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... | ||
diakopter | lizmat: what's confusing? | 18:46 | |
lizmat | confuaed | ||
moritz | live, universe and everything | ||
pippo | lizmat: unless... r-j was already dead when I run "say (^20_000).join(',').split(',')[*-1];" | 18:48 | |
lizmat: unless... Camelia's r-j was already dead when I run "say (^20_000).join(',').split(',')[*-1];" | |||
diakopter | wut. | ||
pippo | r-j: say "Hello" | 18:49 | |
camelia | rakudo-jvm 882e33: OUTPUT«Hello» | ||
pippo | is Camelia's r-j auto-restarting when crashing? | 18:51 | |
diakopter | lizmat: I meant about cas | ||
lizmat | ah, that cas has two, rather dfferent modes of operation/signatures | ||
diakopter | because that's what jnthn was talking about when he said "given the confusion" | 18:52 | |
lizmat | yup | ||
github status: 18:44 UTCRepository access is currently unavailable for a small percentage of users. | |||
diakopter | all I was talking about was the syntax | 18:53 | |
lizmat | well, that's what we were discussing also, I think :-) | 18:54 | |
diakopter | I didn't see anything about any other forms | ||
pippo | bye #perl6 | 18:55 | |
lizmat | S17:L745 | ||
18:55
pippo left
|
|||
lizmat | S17:745 | 18:55 | |
synopsebot | Link: perlcabal.org/syn/S17.html#line_745 | ||
lizmat | actually, that page is not uptodate, a few lines earlier | ||
sub cas($ref is rw, $expected, $new) { | |||
timotimo | apparently i can just put in values just like that | 18:56 | |
lue | hello world o/ | ||
timotimo | hellue | 18:57 | |
moritz | ERROR: Storage server temporarily offline. See status.github.com for GitHub system status. | ||
diakopter | lizmat: that's the cas impl that makes no sense | ||
18:58
xenoterracide joined
|
|||
lizmat | diakopter: that is pseudo-code | 18:58 | |
dinner& | |||
dalek | albot: 29360df | moritz++ | / (2 files): [rj] fix revision file path |
18:59 | |
moritz | who leaves uncommitted changes in camelia's ~/evalbot dir? | ||
moritz *grumbles* | |||
diakopter | me.. | 19:00 | |
dalek | albot: f189fd8 | moritz++ | evalbot.pl: use correct nqp-m path |
||
timotimo | hm, where is the NFA code i have to touch to implement the charrange node type? | ||
moritz | weird, I can push to evalbot, but not to star :( | ||
diakopter | NFA.nqp | ||
moritz | evalbot control restart | ||
19:00
camelia left
|
|||
timotimo | thanks | 19:01 | |
19:01
camelia joined
19:02
ChanServ sets mode: +v camelia
|
|||
moritz | j: say 42 | 19:04 | |
camelia | rakudo-jvm 69a5b6: OUTPUT«42» | ||
timotimo has a first prototype of charrange that may even not completely b0rk! | 19:08 | ||
ope. | 19:13 | ||
Rotwang | hi | 19:16 | |
timotimo | damn, i think i botched it :( | 19:18 | |
but how? | 19:19 | ||
diakopter | with a botcher knife? | 19:20 | |
timotimo | i think so | 19:21 | |
Rotwang | could someone tell me what am I doing wrong: paste.lisp.org/display/139858 | 19:25 | |
it looks like exception isn't caught, but I don't get why | |||
moritz | Rotwang: iirc CATCH at top level is broken | 19:27 | |
Rotwang: try putting it all into a block | |||
Rotwang | it worked, thanks moritz | 19:28 | |
timotimo | Unrecognized regex modifier :my at line 834, near " $*POD_ALL" - i pretty much broke the thing... all the things probably | 19:32 | |
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! | ||
FROGGS | cool | ||
timotimo | r: '?@ABCDEFGHIJKLMNOPQRSTUVWXYZ'.ords.say | ||
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 | ||
nqp: say(ordat("foo", 2)) | 19:41 | ||
camelia | nqp-moarvm: OUTPUT«No lexical found with name '&ordat'frame_name_0» | ||
..nqp-parrot: OUTPUT«Could not find sub &ordatcurrent instr.: '' pc 47 ((file unknown):76459031) (/tmp/yNd8f5S99S:1)» | |||
..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…» | |||
timotimo | nqp: say(nqp::ordat(2, "foo")) | ||
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«50» | ||
timotimo | nqp: say(nqp::ordat("foo", 2)) | ||
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«111» | ||
timotimo | er ... | ||
but which one ... | |||
r: say(ord("a")) | |||
camelia | rakudo-parrot 69a5b6, rakudo-jvm 69a5b6: OUTPUT«97» | 19:42 | |
timotimo | nqp: say(nqp::ordat("abc", 0)) | ||
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«97» | ||
timotimo | but that's already how i use it :| | ||
moritz | nqp: say(nqp::ordat("abc", 1)) | 19:43 | |
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«98» | ||
timotimo | why would there be char ranges from ? to Z?! | 19:44 | |
19:45
raiph left
|
|||
timotimo | wat, there really are char ranges from ? to Z | 19:47 | |
masak | timotimo: maybe someone confused 63 and 65? | ||
timotimo | ah, token charspec. | ||
haha, i'm an idiot :( | 19:59 | ||
i was getting *very* thin ranges out of this %) | 20:00 | ||
i didn't see the $ord1-- while $ord1 >= $ord0 or whatever | |||
and after that i tried to use $ord0 and $ord1 | |||
20:02
raiph joined
|
|||
timotimo | the charrange rxtype is not being used often at all :( | 20:03 | |
once in p6/Actions, once in p6/Grammar, 3 times in NQPHLL | |||
it made parsing exactly 0 faster! | 20:05 | ||
\o/ | |||
FROGGS | :/ | ||
20:08
berekuk joined
20:12
ssutch left
|
|||
FROGGS | timotimo: what if you --profile and then look at things that are called often? | 20:13 | |
(things that are optimizable) | 20:14 | ||
timotimo | haha, as if :) | ||
a whole lot of character classes i miss are not even ranges | |||
at least not sensible ranges | |||
20:15
pernatiy joined
|
|||
lizmat | .oO( pretty deranged, these classes ) |
20:16 | |
timotimo | my debug output suggests i can't really do much better. | 20:17 | |
i'll see if my implementation outperforms enumcharlist next. | |||
(it really ought to, but what do i know?) | |||
20:20
ssutch joined
20:21
stevan_ left
20:29
segomos joined
20:35
sqirrel joined
20:38
cognominal left
|
|||
dalek | ar: d194397 | moritz++ | tools/build/Makefile.in: default to perl6-p for now ... untill we have a more thorough refactoring |
20:42 | |
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? | ||
*show | |||
lue | *sigh* I'm a moron. | 20:44 | |
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) | ||
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 | ||
matching 100_000 times z takes 5.9s with my optimization and 17.05s without it | |||
(matching against <[a..z]> | |||
that is) | |||
lizmat | feels good! | ||
timotimo | yeah, but there's 0 change to rakudo stage parse time :( | 20:48 | |
moritz | timotimo: and doing 100k non-matching matches? | ||
like '!' ~~ /<[a..z]>/ ? | |||
anyway, great numbers so far, timotimo++ | |||
lue | Rotwang: here's some stuff on the matter: perlcabal.org/syn/S02.html#The_Buf_Type | 20:49 | |
20:50
kurahaupo joined
|
|||
Rotwang | thanks | 20:51 | |
timotimo | bbl | ||
lue | that doesn't list everything though. There's stuff like Blob (immutable Buf) and utf8 (blob8 with Unicode-related restraints). | 20:52 | |
20:58
tobyink left
|
|||
dalek | ar: ae2b5cd | moritz++ | tools/build/Makefile.in: slim down Makefile (remove unused variables) |
21:00 | |
21:02
stevan_ joined
21:03
stevan_ left
21:06
denis_boyun joined
21:11
denis_boyun left
21:12
grondilu left
21:13
virtualsue joined
21:18
zakharyas left
21:22
tgt joined
|
|||
moritz | my current confidence of making a full-blown JVM star release isn't very high, maybe 30% or so | 21:22 | |
quite some Configure work left, plus stability issues with rakudo-jvm, plus nativecall not yet up to speed | 21:23 | ||
FROGGS | would be still nice if we had a parrot-star release that Just Works(TM) | 21:24 | |
timotimo | 1_000 times trying to match <[a..z]>+ against 100_000 ! used to take 32s, now takes 20s | 21:28 | |
moritz | \o/ | ||
FROGGS | timotimo++ | 21:29 | |
lizmat | timotimo++ indeed! | 21:30 | |
timotimo | only helps in artificial benchmarks, though | ||
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:31 | ||
here's something for you to play with | 21:32 | ||
dalek | p: 1855f52 | (Timo Paulssen)++ | src/vm/parrot/pmc/qrpa.pmc: give QRPA methods for pop, shift, ... |
||
p: 47a6ba5 | (Timo Paulssen)++ | src/vm/parrot/QAST/Operations.nqp: use QRPA instead of ResizablePMCArray on parrot |
|||
p: fe517a2 | (Timo Paulssen)++ | src/vm/parrot/pmc/qrpa.pmc: steal the quicksort implementation from parrot |
|||
p: e753bbd | (Timo Paulssen)++ | src/ (3 files): "charrange" rxtype for simple range cclasses |
|||
timotimo | oh | ||
wait, no | |||
that's not what i wanted to do? | |||
moritz | the last commit looks like what you wanted to push, maybe? | 21:33 | |
timotimo | yes, i didn't look properly >_> | ||
the other commits are probably not terrible, but may not be perfect. | |||
i have some spectest failures in rakudo. | |||
21:34
stevan_ joined
|
|||
lizmat | timotimo: which ones? | 21:34 | |
dalek | Heuristic branch merge: pushed 24 commits to rakudo/moar-support by FROGGS | 21:35 | |
timotimo | let me run a full spectest. | ||
dalek | kudo/nom: acd03fa | (Elizabeth Mattijsen)++ | src/vm/jvm/core/CurrentThreadScheduler.pm: Removed functionality that will *never* work |
21:41 | |
kudo/nom: b0231c4 | (Elizabeth Mattijsen)++ | src/vm/jvm/core/ThreadPoolScheduler.pm: Comment nits |
|||
ast: e3f1bb7 | (Elizabeth Mattijsen)++ | S17-concurrency/scheduler.t: Add tests for CurrentThreadScheduler |
21:42 | ||
ar: 0a16efd | moritz++ | Configure.pl: fix installation |
21:43 | ||
FROGGS | Stage ast : 0.000 | 21:44 | |
Stage optimize : 17.560 | |||
Error while compiling op qlist: No registered operation handler for 'qlist' | |||
timotimo | yes, i have a rakudo commit that fixes the mention of qlist | 21:45 | |
(just replace it with list) | |||
21:46
dmol left
|
|||
timotimo | it makes no practical difference in the unpatched nqp master | 21:46 | |
er, master@{1} i guess? | |||
21:46
sqirrel left
21:47
kaare_ left
|
|||
moritz | huh, my rakudo just compiled fine on nqp/master | 21:47 | |
timotimo | ... huh? | ||
but how? | |||
FROGGS | nqp-p --version | 21:48 | |
This is nqp version 2013.10-214-ge753bbd built on parrot 5.9.0 revision RELEASE_5_9_0 | |||
moritz: maybe the jvm one? | |||
timotimo | anyway, my spectest run just started | ||
moritz | no, my NQP was older than I thought :( | ||
FROGGS | ahh, hehe | ||
gnight boys+girls | |||
timotimo | gnite, froggs | ||
lizmat | gnight FROGGS | 21:49 | |
moritz | good night FROGGS++ | ||
colomon | o/ | 21:50 | |
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' | ||
timotimo | huh? but i only generate that on parrot? | ||
... except if i botched the conditional compilation comments | |||
t/spec/S05-substitution/subst.rakudo.parrot ..................... Failed 1/141 subtests | 21:52 | ||
t/spec/S17-concurrency/scheduler.rakudo.parrot .................. Dubious, test returned 1 (wstat 256, 0x100) | 21:54 | ||
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? | ||
jnthn | no | ||
lizmat | well, how can you run some in jvm and not in rakudo? | ||
timotimo | lizmat added a bunch of #todo fudges for rakudo.parrot i believe? | ||
lizmat | they share the same spectest.data no? | 21:56 | |
skip actually | |||
colomon | skip++ | ||
lizmat | the problem is that somehow the fudge doesn't count the number of tests correctly in rakudo | ||
lizmat runs a spectest to double check | |||
moritz | I guess we should add # jvm markers to spectest.data, and teach the harness not to run those on other backends | ||
jnthn | I think there's a #jvm that can go in spectest.data? | ||
lizmat | there can be? | 21:57 | |
jnthn | If there arlready ain't :) | ||
21:57
kurahaupo left
|
|||
jnthn | oh, --jvm is something else I guess | 21:57 | |
moritz | seems NYI, but desirable | ||
lizmat | the string jvm does not occur on spectest.data | ||
there is #icu | |||
is that what you mean ? | 21:58 | ||
moritz | same mechanism | ||
easy to extend | |||
lemme try | |||
timotimo | gist.github.com/timo/2979d2ce068f55772c81 - all my fails | ||
how can i prevent some code to be compiled into nqp if it's on the jvm? | |||
lizmat | the other two are older/known ones | ||
timotimo | so i b0rked nothing with my changes to nqp, except all of rakudo.jvm? | 21:59 | |
lizmat | que? all of jakudo ? why ? | ||
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 | ||
lizmat | ah, | ||
timotimo | lizmat, can you push a commit to change the mentions of qlist to list in rakudo? | ||
lizmat | in src/core? | 22:01 | |
timotimo | i believe so | ||
dalek | kudo/nom: 789da2e | moritz++ | t/ (2 files): #jvm markers in t/spectest.data |
||
moritz | src/core/MapIter.pm | ||
has two of them | |||
22:01
[particle] joined
|
|||
colomon | moritz++ | 22:02 | |
dalek | kudo/nom: 2c40f65 | (Elizabeth Mattijsen)++ | src/core/MapIter.pm: nqp::qlist -> nqp::list as per timotimo's request |
||
timotimo | lovely, thank you :) | ||
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 | ||
well, stub it, really | |||
its node is compatible with enumcharrange | |||
er, enumcharlist | |||
timotimo tests his commit | 22:04 | ||
yeah, that works | 22:07 | ||
moritz | \o/ | ||
dalek | p: 444052f | (Timo Paulssen)++ | src/vm/jvm/QAST/Compiler.nqp: stub charrange support for nqp-jvm |
||
Ben_Goldberg | rn: constant a = b; constant b = a; say a | ||
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 | |
..rakudo-parrot 69a5b6: OUTPUT«===SORRY!===Could not find sub &b» | |||
..rakudo-jvm 69a5b6: OUTPUT«===SORRY!===java.lang.NullPointerException» | |||
Ben_Goldberg | std: constant a = b; constant b = a; say a | ||
camelia | std 8adbc60: OUTPUT«===SORRY!===Illegally post-declared type: 'b' used at line 1Check failedFAILED 00:01 122m» | ||
22:13
xinming joined
22:16
xinming_ left
22:23
bbkr_ left
|
|||
timotimo has a prototype for charrange on jvm | 22:25 | ||
arnsholt | I keep mis-segmenting that as ch-arrange | 22:26 | |
timotimo | :3 | ||
what do you propose that should do? | |||
ooooh crap where did my bandwidth go? =o | 22:27 | ||
java.lang.RuntimeException: java.lang.NegativeArraySizeException - when trying to call nqp::compilejastlines ... but how did i do that? | 22:33 | ||
arnsholt | new Foo[variable] where variable is negative, I assume | 22:34 | |
timotimo | yeah, but ... how? | 22:35 | |
arnsholt | All depends on your code, I assume ==) | ||
timotimo | probably | 22:36 | |
huh. there's a path through my code that would leave a value on the stack, is that bad? | |||
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 | |||
arnsholt | Probably not a good thing, I think | ||
timotimo | how do i properly make such a thing work in the jvm? :( | 22:37 | |
that means i have to have like 10 more labels | |||
oh well. | 22:38 | ||
oh, i know! | |||
arnsholt | Restructure the flow somehow, I guess? =) | 22:40 | |
timotimo | yes, i did | 22:42 | |
arnsholt | Yeah, sounded like that should be possible | 22:43 | |
22:43
kurahaupo joined
|
|||
timotimo | i still get the weird array exception | 22:43 | |
arnsholt | But you're generating code, it sounds like, not writing Java? | 22:45 | |
timotimo | yes | 22:46 | |
the exception is thrown somewhere in the bowels of compilejastlines | |||
arnsholt | Ow, that sounds bad | ||
22:47
colomon left
|
|||
timotimo | kind of does | 22:47 | |
er ... now it works? | 22:49 | ||
*weird* | |||
lizmat | enough commits from me today | 22:53 | |
gnight #perl6! | |||
timotimo | gnite liz :) | ||
22:57
colomon joined
|
|||
timotimo | maybe it's the bytecode verifier that finds a stack that gets too small? | 23:01 | |
23:01
stevan__ joined
23:02
johnny5_ left
23:03
johnny5_ joined
|
|||
timotimo | gist.github.com/timo/d83252c60f479d3eb30a - want to have a look? | 23:03 | |
23:04
stevan_ left
|
|||
timotimo | arnsholt: do you know your way around the jvm stuff? | 23:05 | |
arnsholt | Not overly familiar with that side of things, sadly | 23:07 | |
timotimo | i wasn't before either :3 | ||
(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:08 | ||
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
spider-mario left
|
|||
timotimo | it may already help a lot if you ask the right "stupid questions" :) | 23:11 | |
arnsholt | Looks like hotel Wifi has decided that DNS is optional, though >.< | 23:12 | |
timotimo | want me to resolve the ip for you? :) | 23:13 | |
192.30.252.141 gist.github.com | |||
try this | |||
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 | ||
timotimo | in linux it's /etc/resolv.conf | ||
geekosaur | OS X: System Preferences > Network > select connection > Advanced > DNS | 23:15 | |
arnsholt | There we go | ||
resolv.conf | |||
It's been a long time since I last had to deal with this kind of crap (thankfully) | 23:16 | ||
timotimo | :) | ||
geekosaur | you might want to figure out what sets up DHCP and stop it from overriding DNS | 23:17 | |
(if it does) | |||
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 | |||
jnthn | sleep & | 23:19 | |
timotimo | gnite jnthn! | ||
23:23
langdon_ joined
23:32
tgt left
23:38
FROGGS left,
FROGGS joined
23:46
FROGGS left
23:50
dayangkun joined
|
|||
timotimo | sleep & | 23:56 |