»ö« 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:09 rindolf left 00:10 hoverboard left 00:19 ajr_ left 00:20 kurahaupo joined 00:28 araujo left, kurahaupo left 00:29 hoverboard joined 00:30 grondilu left 00:31 denis_boyun left 00:36 dayangkun left, dayangkun joined
Mouq wants to do perly stuff but doesn't really have tuits :/ 00:50
00:53 hoverboard left 01:04 arnsholt left 01:07 arnsholt joined 01:09 kurahaupo joined 01:15 btyler joined 01:31 hoverboard joined 01:33 woosley joined 01:36 beastd joined 01:43 colomon left 01:45 colomon joined 01:46 Mouq left, kurahaupo left
skids tries to figure out what could possibly be special about the number 38016083 01:47
One of my modules, only when used from a compiled PIR, converts a list element from 38016083 to 380160830 01:48
01:54 raiph left 02:03 kbaker joined 02:12 btyler left 02:24 xragnar is now known as Guest86093, xragnar_ joined, Guest86093 left, xragnar_ is now known as xragnar 02:30 araujo joined
timotimo o_O 02:39
02:46 klapperl_ joined 02:49 klapperl left 02:55 jnap left 02:56 FROGGS left
skids I suspect it has something to do with floats. 02:57
timotimo but that should really not x10 it
skids Also I have some bugs that only occur when a pir is included by a file that is compiled to pir and then included. 02:58
(This all started when trying to work around RT119267) 02:59
...which gets more lethal the smarter rakudo gets about folding. 03:00
Also happens to 76029189 03:04
Is packages/Test/Util.pm in roast the authoritative Test::Util? Was thinking maybe of teaching is_run a "compile then use" adverb 03:08
03:09 FROGGS joined
JimmyZ skids: try rakudo-m? 03:10
skids Still waiting on star for that :-)
03:14 woosley left 03:17 woosley joined 03:20 SamuraiJack_ joined 03:26 jnap joined
skids gist.github.com/anonymous/9678937 # oops wasn't logged in. 03:27
03:28 beastd left
segomos did the |%args for named arguments change? 03:31
03:31 jnap left
skids hmm. 03:33
r: sub f(|@args) { @args.perl.say }; f(:a :b)
camelia rakudo-moar 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param @args␤===SORRY!=== Error while compiling /tmp/tmpfile␤Capture parameter must have a type accepting a Capture␤at /tmp/tmpfile:1␤------> sub f(|@args) { @args.perl.say }⏏; …»
..rakudo-parrot 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param @args␤Nominal type check failed for parameter '@args'; expected Positional but got Capture instead␤ in sub f at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param @args␤Nominal type check failed for parameter '@args'␤ in sub f at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
skids r: sub f(|%args) { %args.perl.say }; f(:a :b) 03:34
camelia rakudo-jvm 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param %args␤Nominal type check failed for parameter '%args'␤ in sub f at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param %args␤===SORRY!=== Error while compiling /tmp/tmpfile␤Capture parameter must have a type accepting a Capture␤at /tmp/tmpfile:1␤------> sub f(|%args) { %args.perl.say }⏏; …»
..rakudo-parrot 1c1a08: OUTPUT«Obsolete use of | or \ with sigil on param %args␤Nominal type check failed for parameter '%args'; expected Associative but got Capture instead␤ in sub f at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
skids oh that error has been made adequately awesome since star.
JimmyZ r: sub f(%args) { %args.perl.say }; f(|(:a :b)) 03:38
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤ in sub f at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
skids r: sub f(|args) { %(args).perl.say; %(args)<a>.say }; f(1, :!a :b) # think that's how to do it now.
camelia rakudo-parrot 1c1a08: OUTPUT«EnumMap.new("a", Bool::False, "b", Bool::True, )␤False␤»
..rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«EnumMap.new("a", Bool::False, )␤False␤»
segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; } go: |%options; 03:43
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> '; sub go (:$a,:$b) { $a.say; $b.say; } ⏏go: |%options;␤ expecting any o…»
03:43 kbaker left
segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; }; go: |%options; 03:43
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '&prefix:<|>' is not declared␤at /tmp/tmpfile:1␤------> b go (:$a,:$b) { $a.say; $b.say; }; go: ⏏|%options;␤»
segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; }; go(|%options); 03:45
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«b␤c␤»
segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; }; go(|%options, :a('w3rd'));
camelia rakudo-parrot 1c1a08: OUTPUT«duplicate named argument in call␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 1c1a08: OUTPUT«Unexpected named parameter 'a' passed␤ in sub go at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 1c1a08: OUTPUT«w3rd␤c␤»
segomos interesting 03:46
skids: we were abusing bareword args enough a couple of days ago :-) 03:49
r: my \bareword = (my $a); bareword = 'cool bareword, bro'; bareword.say;
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«cool bareword, bro␤»
03:51 SamuraiJack_ left
skids segomos: rt.perl.org/Public/Bug/Display.html?id=113546 03:53
segomos it's interesting it worked with go(|%options) and not go: |%options 03:54
skids I think that might be on a parsing level. 03:55
std: my %options; go: |%options;
camelia std 09dda5b: OUTPUT«ok 00:01 122m␤»
skids std: my %options; go(|%options);
camelia std 09dda5b: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'go' used at line 1␤Check failed␤FAILED 00:01 123m␤»
skids std: sub go { }; my %options; go(|%options); 03:56
camelia std 09dda5b: OUTPUT«ok 00:01 125m␤»
skids std: sub go { }; my %options; go: |%options;
camelia std 09dda5b: OUTPUT«ok 00:01 124m␤»
03:57 woosley left
segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; }; go: |%options; 03:57
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '&prefix:<|>' is not declared␤at /tmp/tmpfile:1␤------> b go (:$a,:$b) { $a.say; $b.say; }; go: ⏏|%options;␤»
segomos r: my %options = a => 'b', b => 'c'; sub go (:$a,:$b) { $a.say; $b.say; }; go: %options; 03:58
camelia ( no output )
lue isn't go: for methods? 04:00
04:01 woosley joined
segomos it does work for methods 04:01
r:my %options = a => "b", b => "c"; class a { method go2 (:$a,:$b) { $a.say; $b.say; }; }; my $g = a.new; a.go2: |%options; 04:02
04:02 woosley left
segomos r: my %options = a => "b", b => "c"; class a { method go2 (:$a,:$b) { $a.say; $b.say; }; }; my $g = a.new; a.go2: |%options; 04:03
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«b␤c␤»
segomos seems like it would work with subs too 04:04
maybe not, i haven't read the S docs in 6 or 7 months
lue r: sub foo($a) { say $a }; foo: 42; 04:07
camelia ( no output )
04:10 woosley joined
lue that's perhaps the one of the worse outcomes for what I tried there :) . 04:10
std: sub foo($a) { say $a }; foo: 42;
camelia std 09dda5b: OUTPUT«ok 00:01 127m␤»
skids r: sub go ($inv: |args) { $inv.perl.say; args.perl.say }; go: 1 04:11
camelia ( no output )
04:11 woosley left 04:12 woosley joined
skids Yeah it isn't ven running the sub, and possibly shouldn't without an invocant. 04:13
04:17 kanishka joined
skids parses as a label maybe? 04:23
lue skids: that's possible, esp. if (as I suspect), the foo: form is method-only. 04:24
04:26 kanishka left 04:27 jnap joined 04:31 jnap left 04:42 woosley left 04:46 darutoko joined 04:59 thou left 05:01 kaare_ joined 05:26 [Sno] left 05:28 jnap joined 05:32 jnap left 05:48 kaare_ left 05:57 BenGoldberg left, arnsholt left 06:01 hoverboard left 06:23 kaare_ joined 06:26 [Sno] joined 06:29 jnap joined, kaleem joined 06:32 Vlavv left 06:33 jnap left 06:36 woosley joined 06:44 Vlavv joined 06:49 JimmyZ_ joined, JimmyZ_ left 06:59 aindilis joined 07:03 FROGGS left 07:17 woosley left 07:18 woosley joined 07:29 jnap joined 07:33 jnap left
JimmyZ ll 07:37
07:37 d^_^b joined 07:42 amit joined, amit is now known as Guest87297 07:43 FROGGS joined
Guest87297 hi all 07:43
07:43 Guest87297 left, woosley left 07:44 amits2878 joined
amits2878 hi all 07:44
FROGGS hi amits2878 07:45
07:45 daniel-s joined
amits2878 any leads on using mod_perl with perl 6? i am new to perl 6, however have extensive 9 yrs exp on perl 5 07:46
07:46 woosley joined
amits2878 some how perl 6 text doesnt makes sense, relative to perl 5 07:46
07:47 dmol joined
amits2878 i mean if at all it can be used. 07:47
FROGGS mod_perl is very very Perl 5 specific and can't be used for Perl 6 07:48
and there is no mod_perl6 or some such :/ 07:49
amits2878 oh ... so for now cgi programming isnt possible in perl 6 ... is it? 07:50
FROGGS not in that way... but you could install Bailador, start it on another port than 80 when apache is running... 07:52
07:54 xenoterracide left 07:55 zakharyas joined 08:01 amits2878 left 08:05 grondilu joined
grondilu r: say my uint64 $ = 2**40 08:05
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«1099511627776␤»
grondilu I get 0 locally
I suppose it's because I'm on 32bits arch 08:06
JimmyZ not sure, got here 0 too, on win x64 08:14
but on linux x64 is 1099511627776
moritz o/ 08:16
grondilu This is perl6 version 2014.03.01 built on MoarVM version 2014.02-124-gff01095 08:17
Linux redkey 3.13-6.towo-siduction-686 #1 SMP PREEMPT Fri Mar 7 11:35:46 UTC 2014 i686 GNU/Linux 08:18
r: say 1 +> 32
camelia rakudo-moar 1c1a08: OUTPUT«1␤»
..rakudo-parrot 1c1a08, rakudo-jvm 1c1a08: OUTPUT«0␤»
grondilu r: say 1 +> 30 08:20
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«0␤»
JimmyZ maybe needs rt? 08:24
08:28 bjz_ left, bjz joined 08:30 jnap joined
grondilu it's not an other case of missing parenthesis in C macros, right? 08:31
because I read:
#define GET_REG(pc, idx) *((MVMuint16 *)(pc + idx))
and later:
GET_REG(cur_op, 0).i64
I mean, that expands in: 08:32
*((MVMuint16 *)(pc + idx)).i64
is that ok? 08:33
08:34 jnap left 08:35 denis_boyun joined
JimmyZ I found another bug ... input "qx/ls -l" and enter in repl 08:35
08:36 SamuraiJack_ joined 08:38 pdcawley joined 08:54 denis_boyun left
grondilu ok, that was not the correct definition of GET_REG I was looking at. I'll try to see what happens if I change i64 to ui64. 08:56
moritz jnthn: we just had a gsoc application "A JIT compiler for MoarVM"; it would be nice if you could sign up on www.google-melange.com/gsoc/homepag...e/gsoc2014 (if you haven't already), and join #gsoc-help on irc.perl.org 08:58
09:02 virtualsue joined 09:31 jnap joined 09:35 jnap left
moritz masak: you like hexagonal games, no? rudradevbasak.github.io/16384_hex/ 09:36
masak moritz: yeah, I saw it yesterday :)
antenoon, #perl6 09:37
09:37 Rotwang joined
masak sergot: about 'go' versus 'go:' for subs: the colon can't work for subs, because that would collide with labels. 09:40
09:41 daniel-s left
masak sergot: also, subs already are listops, whereas methods have to be made into listops. 09:41
moritz I find it easier to play than the square grid, actually 09:44
09:44 daniel-s joined
masak well, there are two more directions :) 09:45
moritz right 09:46
and usually I do not use one of the directions
so it's 3 vs 5, not 4 vs 6
09:47 markov joined, markov left 09:48 woosley left
masak which makes the relative difference bigger :) 09:52
m: say "{3/5} vs {4/6}"
camelia rakudo-moar 1c1a08: OUTPUT«0.6 vs 0.666667␤»
masak ...or not :) 09:53
JimmyZ masak: I had a bug, you will be interested
:)
masak is listening
JimmyZ open rakudo repl and enter "qx/ls"
masak oh!
JimmyZ or qs/ls
masak m: say "{2/5} vs {2/6}" # should be this
camelia rakudo-moar 1c1a08: OUTPUT«0.4 vs 0.333333␤»
masak JimmyZ: will do. 09:54
whoa.
JimmyZ :)
masak submits rakudobug
m: qx/ls
camelia rakudo-moar 1c1a08: OUTPUT«===SORRY!=== Error while compiling /tmp/ai0aNyxKQI␤Couldn't find terminator /␤at /tmp/ai0aNyxKQI:1␤------> qx/ls⏏<EOL>␤ expecting any of:␤ statement list␤ prefix or term␤ prefix o…»
masak gets that in the REPL, but infinitely
JimmyZ++
JimmyZ perl6 -e "qx/ls" is right 09:55
masak I think something significant is happening with all the 2048 stuff on HN, but I have trouble verbalizing it. 09:57
something to do with the great ease with which you can publish something interactive like this, and have people use it and comment on it. 09:58
HN calls it "the first code-meme".
10:01 pecastro joined
moritz in some sense, it's a rush of the "derivative work" option that open source offers 10:01
not in the sense that I can fork a library and slap ipv6 support on it, but in actually presenting the user a different UI 10:02
Lox i feel like, open source or not, the parodys come out in droves. the open source factor just increases the number and rate of release 10:03
it only took about a week for a fall out boy version of flappy bird to get released on both ios and android 10:04
i'm still not sure who decided that was something the world desperately needed, but whatever
masak well, that's the "meme" part of it.
it's not so much "the world needs it", it's "hey, I took this morsel and digested it myself, have a look everyone!" 10:05
masak .oO( you're in a regress of infinitely many parse errors, all alike ) 10:08
10:25 denisboyun joined 10:32 jnap joined 10:36 jnap left
jnthn moritz: I signed up. :) 10:37
moritz: Do I need to do anything else in the next couple of days with regard to GSoC?
moritz jnthn: you need to "request a role" at TPF (in the melange frontend) to become a mentor, ie see all the proposals 10:42
jnthn: also, commenting on the proposal would be great
jnthn: but the selection process takes several weeks iirc, so nothing more required in the next days after that
jnthn moritz: I already did request a role, I thought? 10:43
moritz jnthn: dunno, I can't see that 10:44
jnthn: if you did, that's fine :-)
jnthn There was a "request a role" dropdown and I selected "yes" :)
masak .oO( it's called "melange" because the interface is so straightforward and intuitive ) :P 10:47
jnthn :P 10:52
Lox can i make a suggestion on the book? 10:54
masak sure. 10:55
Lox for the exercises, i think it would be better if the answers didn't immediately follow the question, but were separated somehow, either with a page break or by just getting tossed into an appendix at the end
masak agreed.
Lox: maybe add that here? github.com/perl6/book/issues 10:56
sergot masak: I'm not sure I know what you are talking about. :) 11:01
11:03 Lox is now known as ren1us
ren1us Figure I might as well match my github username 11:03
dalek p: a6ff29c | jonathan++ | src/HLL/Compiler.nqp:
Fix infinite errors in REPL on Moar.

Maybe on JVM too.
11:04
jnthn Hopefully that deals with the qx/ls issue.
Flight &
11:06 daniel-s left
masak sergot: oh, sorry, mis-tab. 11:07
meant segomos.
&
11:14 virtualsue left 11:32 jnap joined 11:34 colors joined, colors is now known as vincent21 11:37 jnap left
timotimo o/ 11:59
12:04 darutoko left
timotimo does someone with perl5 knowledge want to look closer into modules.perl6.org displaying "YAML Ainât Markup Language"? 12:07
Ulti ? 12:09
looks ok to me if you just mean the webpage 12:10
12:10 darutoko joined
Ulti unless it's meant to be Aint 12:10
timotimo "ain`t" or something like that
Ulti it's ’ causing the problem 12:11
timotimo yes
Ulti from the info
timotimo but we should be supporting utf8 in the meta.info properly.
Ulti where's the code at I can take a quick look (its my day off) 12:12
moritz git clone [email@hidden.address]
Ulti thanks 12:13
moritz web/build-project-list.pl
timotimo i already looked into it, but it was Mojo and perl5 and i couldn't tell if it shouldn't already be working 12:14
Ulti: also, moritz suggested (last time i brought this up) that maybe an update to Mojo would automagically fix this
Ulti oh nice its mojolicious too
timotimo: yeah that is a good plan 12:15
timotimo moritz: do you need to manually update modules.perl6.org's code? because mouq and me did some changes to the text at the top and they haven't shown up yet
moritz timotimo: and sri (who wrote Mojo) disagreed
timotimo moritz: i didn't read that
moritz timotimo: nope, should be cron-jobbed
timotimo something must be wrong with the cron-job then :)
Ulti use Encode is there :/
hmm
might be JSON does something lame 12:16
timotimo i've tried to verify that the encodings are specified along every step of the way, but i wasn't sure
i tried to verify it with curl -v to get the headers and it did say utf8 in the places i loked
Ulti I checked the website is serving utf8 too
so its not browserness 12:17
yeah so JSON has a load of functions to enable utf8 I haven't seen those being used 12:18
so might be it
timotimo sounds like a good thing to try
12:19 brrt joined 12:33 jnap joined
Ulti can anyone tell me what github-token should have in it? 12:36
12:36 kurahaupo joined
Ulti is this a github app token? 12:36
12:37 jnap left 12:39 jnap joined
moritz yes 12:42
12:45 rindolf joined 13:04 guru joined 13:05 guru is now known as Guest60741, Guest60741 is now known as ajr_ 13:13 telex left, kaare_ left 13:14 telex joined 13:16 kaleem left
Ulti *sigh* constantly failing to get anything back from github :/ 13:18
I hate OAuth
more because its constantly hacked too which makes it extra pointless
brrt oauth hacked?
oauth or oauth2?
btw, never try to built 'versioning' in a sql database 13:22
it just doesn't work
everything fights against it
13:23 pmurias joined
pmurias is it possible to read the gsoc "JIT for MoarVM" proposal somewhere? 13:23
brrt yes :-)
moritz there's a gist link in today's backlog, iirc 13:24
brrt www.google-melange.com/gsoc/proposa...1485874176 - ought to be public
also
pmurias brrt: the link doesn't work
brrt gist.github.com/bdw/9682548 if the former doesn't work
… weird
pmurias I get "You are not logged as the user in the url" erro 13:25
r
brrt i see
i get the same error from another url
ehm browser 13:26
the gist contains (almost) the same content
13:29 sqirrel joined
masak brrt: re SQL database versioning, I've been quite impressed by Theory++'s sqitch.org/ so far. haven't used it for anything production-y, but the idea seems very sound to me. 13:29
moritz masak: I though brrt meant versioned data inside an sql database, not external versioning for the schema 13:30
pmurias brrt: you should mention which architecture you are writting the jit for 13:31
masak moritz: oh!
moritz: well, event databases are the ultimate versioned data, if you ask me. :) but of course there are variants, and different external concerns. 13:32
timotimo pmurias: well, dynasm is cross-architecture, no?
moritz masak: event databases usually aren't SQL though, are they?
brrt masak, i'll check it out 13:34
pmurias timotimo: dynasm is, jits created using it arent
masak moritz: they can be.
brrt: please do, but moritz' caveat above may apply.
brrt oh, what moritz said is true 13:35
i'm targetting x86 and perhaps x86_64
masak moritz: in the sense that you can do events in an SQL table. that's not the best use of SQL/tables, to be sure... but it works.
brrt because - i have x86_64 computers
pmurias targeting one seems best
masak +1
we can always broaden later. 13:36
brrt targetting x86 is more broadly usable
x86_64 is what i personally have
masak JIT for one platform will be challenging enough :)
brrt that is true
masak don't be afraid to narrow your scope -- there will be enough surprises and minor setbacks along the way regardless ;)
pmurias and jits tend to be rewritten multiples times ;) (looking at the javascript ones)
masak I say this as a former GSoC student.
FROGGS brrt: do x86_64, because I have that too :o) 13:37
masak do one, that's the important bit :)
brrt x86 will run on both :-)
and x86_64 is supposed to be 'nonhuman'
pmurias nonhuman?
brrt as in
not written for humans to write
not designed, that is 13:38
pmurias isn't the instruction set mostly a superset?
Ulti brrt: homakov.blogspot.co.uk/2014/02/how-...again.html
pmurias brrt: one thing that would be nice to have in the proposal is to determin which ops you want to jit 13:41
brrt i don't know about x86_64, just what i read on the interwebs 13:43
i see but I don't reallly want to commit to that yet
timotimo i have a raspberry pi, but i fear trying to develop a jit for it would be ridiculously time-consuming, as the cpu is so power-starved 13:44
but in the future, maybe one of us will own the OpenPandora successor (pyrex or something?), which is going to have a much better cpu
and also has a display and keyboard 13:45
brrt basically in the MVM runloop — iirc - there is a small subset of 'core' ops, if, unless, goto, getlex, set, return, const, add, mul, sub, etc
JimmyZ I saw luajit that x86_64 is mostly same as x86
brrt (which isn't all that small, by the way)
hmmm
pmurias brrt: if you don't mention which ops the grading process will be mostly subjective 13:46
brrt true 13:47
fair point, but i'll have to think about it / run it by jnthn a bit
13:53 jnap left
pmurias "Nobody else wasn't crazy enough" seems to imply doing the project is crazy ;) 13:59
moritz that's ok, most projects are
brrt did i write wasn't?
note-to-self: need more sleep 14:00
14:00 btyler joined
brrt the project isn't crazy, but writing a JIT compiler by yourself in 3 months … seems a bit ambitious 14:00
but as i explained, JIT-compilation isn't magic today
pmurias sorry was
brrt nm :-) 14:01
i was rather sleepdeprived at the time of writing so i'm sure there are lots of grammatical errors
masak I also especially noticed the "crazy enough" sentence.
I thought it was fine, because it was backed up by more serious things afterwards.
but YMMV.
moritz too, but not in a negative way
14:02 jnap joined
pmurias brrt: and I'm not sure you want to be doing deoptimalisation in the two last weeks 14:03
brrt i can change it
ehm
i agree that it is actually pretty short
pmurias it seems to be the hardest part and is not necessary for a basic jit 14:04
brrt but to be honest i had imagined that halfway through we'll have JIT compilation and then I can focus on more complex things
well, which is why i'd place it at the end
writing a jit without taking into account type specialisation is not really a 2014 kind of move 14:05
:-)
but i agree that it is complex
although not undoable - i need to have a callframe representation for the purposes of GC walking anyway
and if you have that the next step is 'simply' to copy the callframe values over to an interpreted callframe 14:06
you basically always know where you are when starting deoptimisation
because it typically follows a type assertion - whose position you also know
the concept is simple enough, is what i'm trying to say 14:07
14:07 thou joined
JimmyZ optimisation? 14:07
14:07 kbaker_ joined
brrt JimmyZ - i'm not sure I understand your question? 14:09
14:10 aindilis left
brrt (me wonders in amazement about the github bug) 14:10
geekosaur none too swift over there :/ 14:12
JimmyZ saw deoptimalisation...
brrt yes, well, long story short, it has been proven to be quite beneficial to assume (on the basis of type feedback) that certain data elements will always be of a certain type, and compile specialised code for that type 14:13
but you need to guard against being suddenly passed a new type 14:14
when a certain routine has been optimised for (say) integers, and suddenly somebody passes it floats, you'll need to 'deoptimise' - restore state from the optimised routine to the original (generic) routine 14:15
so that execution can continue from there
moritz typically that means falling back to the interpreter 14:16
brrt precisely :-)
14:16 kaare_ joined 14:17 [Sno] left
moritz the second typical optimization is a tracing JIT 14:18
timotimo you spell it "optimosation" :P
moritz ie compile across routine boundaries
14:18 rindolf left
masak brrt: in short, "JITs cheat, but have a plan for when they get caught". 14:18
pmurias v8 has a second honest JIT to fall back too ;) 14:20
masak ooh, that's pretty cool.
timotimo two-stage jitting?
14:20 kivutar joined
masak wants to learn more about v8 14:20
timotimo but v8, there's more!
pmurias masak: it has a one which generates decent code quickly (it doesn't use an interpreter at all) and using data from the first one uses the second one to generate better code when it's worth it 14:22
masak .oO( "vacht"!? ) :P
timotimo :)
v8 auf! es ist JITzeit!
masak pmurias: oh, I think I've heard of that. 14:23
pmurias: as I recall, it also parses functions and leaves them as AST intermediate form until they are actually called, saving some compilation time at the start. all but the mainline code is in AST form until it's needed.
pmurias if I recall correctly the don't store the ast as reparsing is quicker 14:24
moritz timotimo: Johavah's JIT Witnesses hand out pamphlets called "der v8turm" :-)
brrt yes, v8 is awesome
timotimo :D
brrt wingolog.org/tags/v8 see here 14:25
14:26 kivutar left
masak moritz: Jehovah's JITnesses! :P 14:28
moritz masak: :-)
14:28 kivutar joined
masak I'm sorry, but that turns into a tweet. 14:28
JimmyZ had a v8 photo 14:29
14:29 SamuraiJack_ left
moritz wasn't v8 also a video format? 14:29
JimmyZ jnthn may saw it
Timbus hah masak. 'we're here to talk about jehovah' 'well, make it quick' 14:30
masak moritz: yes: en.wikipedia.org/wiki/Video8#Video8
moritz Timbus++
masak Timbus: :D
Timbus: 'this runtime will save you... a lot of time'
JimmyZ V8: www.flickr.com/photos/22122778@N04/ 14:33
Timbus ah also, moritz that was vp8 14:34
and it was basically h264
moritz Timbus: I meant the old, analog Video8 that masak++ linked to
Timbus oh wow
see 'video format' -> assume you mean 'codec'. Gee im so Not Old 14:35
14:36 rindolf joined
hoelzro morning #perl6 14:37
tadzik hey hey
14:37 jnap left 14:40 jnap joined
masak hoelzro! \o/ 14:41
14:42 ClarusCogitatio joined
timotimo heyo hoelzro :) 14:42
14:44 ClarusCogitatio left, sqirrel left 14:45 ClarusCogitatio joined 14:51 Rotwang left 14:53 ClarusCogitatio left, ClarusCogitatio joined 15:00 kbaker_ left 15:01 kbaker_ joined
tadzik aaargh 15:02
can someone please make moduleloader have suggestions too?
like "Nativecall? Didn't you mean NativeCall?"
moritz once we have something like a module repo, that's actually quite possible 15:03
tadzik well, we know (or: can tell) that NativeCall.pm is installed 15:04
hoelzro module relies on some special objects in @*INC, right? 15:05
15:05 ajr_ left
hoelzro so only certain implementations may be able to discover which modules are available 15:05
timotimo yes, froggs mentioned we can have repos installed that do things like look for the provides sections in the ecosystem and then it would be easy to add something for suggesting already-installed modules
hoelzro ex. if I'm retrieving modules via HTTP and there's no index pages
15:05 guru joined, guru is now known as ajr_
moritz hoelzro: no, that's perl 5 that puts code objects into @*INC 15:06
n: say @*INC
camelia niecza v24-109-g48a8de3: OUTPUT«␤»
moritz in fact, @*INC is a mixed rakudoism/perl5ism
15:06 Rotwang joined
masak moritz: really? it's mentioned by all(<S11 S17 S19 S22 S28>), with no hint of it being discouraged. 15:09
timotimo that's disgraceful!
15:10 rurban1 joined
moritz masak: I know 15:10
FROGGS lizmat++ specced that @*INC specifies the ordering in which the CompUnitRepos are queried... (you'd want to push a CompUnitRepo::Suggestion to that list)
moritz masak: I still remember that there's something wrong with @*INC, even though it's in the specs 15:11
FROGGS @*INC will be *the* list of CompUnitRepos in future
masak moritz: I think it's the idea that there will be a module repo/db... but I see no signs of that happening. 15:12
FROGGS masak: then you just miss the signs :o) 15:13
15:13 kivutar left
FROGGS masak: there is an advent calender entry about it, there is an active branch for rakudo and panda, and exactly this topic was the reason for liz and me being in Lyon last week 15:14
masak yes, then I missed it.
moritz FROGGS++
lizmat++
masak good to know it's underway. lizmat++ FROGGS++
PerlJam moritz: perhaps you're thinking of irclog.perlgeek.de/perl6/2012-12-05#i_6215819 ?
FROGGS and once I have working patches for the CPAN Indexer for Perl 6 dists, we will have CPAN under our control :o) 15:15
PAUSE already takes care of Perl 6 dist uploads, just the indexer thinks it is a Perl 5 dist
moritz PerlJam: and things like irclog.perlgeek.de/perl6/2013-06-25#i_7248841
FROGGS btw, I spotted a thinko yesterday when glancing at #perl-qa... 15:16
we can install dev dists side by side to production dists in such a repo, right? 15:17
and when we say: use Foo, we normally get the non-dev Foo with the highest version
and when we do: use Foo:ver(v1..*) we should still get a non-dev version 15:18
but how can you say that you like to take dev releases into account, when not specifying a specific dev release version literally? 15:19
moritz IMHO it can't be something inside the 'use' statement 15:20
because you don't want to change all the 'use' statements in your distribution while developing, and then switch back 15:21
it must be more like setting up @*INC to first look in lib/
FROGGS moritz: that is fine, you can unshift a CompUnitRepo::Local::File to @*INC pointing to your dev code while developing
that is what I said, yes 15:22
but you can also install dev versions of other people
moritz why does that sound like Java? :-)
FROGGS I am currently thinking of smoke boxes, that might want to pick up installed dev versions as deps also
moritz FROGGS: so unshift a CompUnitSelector::Dev to @*COMPUUNIT_SELECTORS? :-) 15:23
timotimo compu unit?
FROGGS hmmmm
JimmyZ what? I hate sbt and maven, it takes x hours to download jars and pom
:)
moritz JimmyZ: try building all those factories yourself instead :-)
hoelzro moritz: but @*INC *can* contain these Respository objects, right? 15:26
I thought I read that somewhere
15:26 kivutar joined
hoelzro in S11 or something 15:26
*Repository 15:27
moritz hoelzro: dunno, I'm not really on top of things right now
FROGGS hoelzro: @*INC will contain repositories, yes 15:29
which stringify to their patch fwiw
path*
PerlJam What's a "repository" exactly? 15:30
moritz a bunch of modules, I think 15:31
ok, that wasn't "exactly"
more like, "a snapshot of a set of modules and their meta data"
PerlJam That sounds quite like local::lib 15:32
15:33 jnap1 joined 15:35 jnap left 15:36 xenoterracide joined
tadzik Internal error: Unwound entire stack and missed handler 15:38
ww
15:40 [Sno] joined 15:47 kaleem joined 15:48 dayangkun left 15:49 virtualsue joined
FROGGS PerlJam: a repository could be the module collection maintained by your platform provider (debian for example) 15:55
or a directory structure like we have now for the modules your are developing
or a database you install dists to, whether this database is on your disk or in a cloud does not matter much 15:56
such a repository could also easily be an installer hook
15:58 xinming_ left 15:59 xinming_ joined 16:10 FROGGS left 16:13 Alina-malina joined
sjn Just to give you guys a heads-up.. sonen.ifi.uio.no/events/Damian-Conway 16:16
Friday next week at the University in Oslo
no idea how many will come, though
some may end up here :) 16:17
16:18 raiph joined
ren1us all the cool stuff is in europe :( 16:19
16:19 bluescreen10 joined 16:20 pmurias left 16:22 PZt joined
sjn ren1us: nah, you an organize stuff yourself, then all the cool stuff will happen in your hometown :) 16:23
16:24 kivutar left 16:26 brrt left
ren1us sjn: the problem is, my college is sortof in the middle of nowhere. most big things in new england happen at yale or MIT, rather than some small liberal arts college nobody's heard of 16:29
16:29 virtualsue left
segomos ren1us: burning man is in the middle of nowhere 16:29
ren1us charming
segomos just saying, the place doesn't need to be in the middle of something to be big 16:30
PerlJam "I live in the technological desert; how do I organize an event where tons of interesting people would want to attend?"
s/tons of// even
16:31 FROGGS joined
ren1us eh, it's a delicate system 16:32
it's very hard to get the 35 compsci majors really excited without making the 1900 liberal arts majors generally uncomfortable
16:33 molaf_ joined
PerlJam ren1us: sounds awesome! You should find ways to get those 35 CS majors excited more often :) 16:34
ren1us PerlJam: Well played.
sjn ren1us: you make a mediocre or a decent college into a better one by organizing interesting stuff that attracts interesting people 16:36
16:37 molaf left
sjn ren1us: there's definitely an aspect of bootstrapping to this, especially if everyone else is of the "this place sucks, I'm leaving" sort 16:37
16:37 ajr_ left
sjn but one thing is always true; Nothing's gonna happen if noone cares enough to make something happen 16:37
and as for Perl 6 activities, this means *we* are the ones who have to make something happen 16:38
ren1us true enough 16:39
on a perl 6 note, who came up with the idea to make standard operators out of unicode characters that don't exist on any keyboard? 16:40
i started working through the book earlier and it strikes me as an odd choice 16:41
16:41 denisboyun left
FROGGS ren1us: what operator do you have in mind? 16:41
16:42 zakharyas left
FROGGS there are usually "Texas" version, aka versions that are assembled using ascii chars 16:42
ren1us FROGGS: »
FROGGS AtlGr+y
ren1us there are, but still, it seems an odd choice
FROGGS AltGr+y actually :o)
16:44 kaleem left
FROGGS TimToady: I just added rosettacode.org/wiki/XML/Input#Perl_6 16:45
16:45 vincent21 left
PerlJam ren1us: Perl6 is Unicode for better or for worse 16:46
dalek kudo-star-daily: f7bfdb9 | coke++ | log/ (5 files):
today (automated commit)
16:55
[Coke] ren1us: welcome to the 21st century? 16:56
the current spec for perl6 has many fewer unicode operators/vars than when we started, and nearly all of them have ascii equivalents. 16:57
16:58 iolympian joined, virtualsue joined 16:59 nagu joined
timotimo we used to have the yen symbol in place of Z 17:00
FROGGS: single quoted string instead of heredoc? for shame! 17:01
you should have used heredocs to show off how awesome it is that we can unindent automatically
17:03 hoverboard joined
timotimo oh! i have a task that i could totally do! 17:04
implement the :chomp adverb for heredoc and other quotes
17:04 hoverboard is now known as astroboard 17:11 nagu left
FROGGS timotimo: I was thinking about heredocs, but this is a bit simpler, you know? :o) 17:13
timotimo it is?
hm, it would be kind of cool if we could have user-defined escape sequences in strings 17:14
like for xml or html documents, we could have \e& be &amp; or \e© be &copy; 17:15
(e for "entity", just a suggestion)
17:17 pecastro left 17:20 virtualsue left
FROGGS m: sub escape:sym<e&>{ '&amp;' } ? 17:21
camelia rakudo-moar 1c1a08: OUTPUT«===SORRY!=== Error while compiling /tmp/MojH_m8HqW␤Cannot add tokens of category 'escape'␤at /tmp/MojH_m8HqW:1␤------> sub escape:sym<e&>⏏{ '&amp;' } ?␤ expecting any of:␤ pair value␤ quot…»
FROGGS sad :o)
17:23 iolympian left 17:24 iolympian1 joined
raiph FROGGS, lizmat: do you have comments about perlmonks.org/?node_id=1078911? maybe add a comment there (or here)? there'll surely be mean trolling, but I think you'll probably also get great feedback/ideas from one or two more reasonable monks. 17:24
FROGGS raiph: thanks, I will reply in a bit 17:26
raiph ++FROGGS 17:29
17:32 guru joined, Khisanth joined, guru is now known as Guest50531, Guest50531 is now known as ajr_ 17:34 vendethiel joined 17:38 iolympian joined 17:39 rurban1 left 17:40 iolympian1 left 17:44 astroboard left
timotimo ohai 17:50
17:56 denisboyun joined, iolympian left 17:57 SamuraiJack_ joined
colomon o/ 18:02
timotimo how does quote_mod work with multiple quote modifier? 18:03
i don't see a repetition anywhere inside
moritz timotimo: maybe quibble recurses? 18:08
timotimo let me look 18:09
ah!
babble parses extra quotepairs 18:10
it could very well be that the quote_mod tokens are not what i'm looking for if i want to implement :chomp
18:13 denisboyun left 18:14 SamuraiJack_ left 18:15 denis_boyun_ joined 18:19 rurban1 joined
FROGGS raiph: I have no idea what I could write 18:22
18:22 molaf_ left 18:23 rurban1 left
ashleydev f 18:31
timotimo masak: what is that cute animal in your twitter avatar, btw?
raiph FROGGS: thanks for looking; i'll ask you a few questions here to see where that goes 18:34
FROGGS k
18:37 SamuraiJack_ joined
masak timotimo: I don't know if it has a name, but it's from "My Neighbor Totoro" 18:39
timotimo ah 18:41
oh!
i remember that from one of jackie kircher's doodles i believe
jackiekircher.tumblr.com/image/78478465939
raiph FROGGS: are you familiar with / agree with the issues McA raised in his bullet points? 18:44
timotimo it seems like there can only ever be one postprocessor_ method attached to the quoter
so maybe that's not the right approach 18:45
FROGGS raiph: yes, I can agree with these points
raiph: and yes, I am familiar with the issues itself :o) 18:46
18:46 SamuraiJack_ left
FROGGS my hope is that we cope better with these problems, but we have to see if our plan works out or not 18:46
one problem will always remain: the os vendor ships perl version X, but you want a never version for reason Y 18:49
nwc10 eg "X is 10 years old"
(Because your OS Vendor supports their OS for 10 years, and X was current when the OS was new) 18:50
FROGGS or one year in Perl 6 land, which changes enough
ohh, yes
TimToady FROGGS++ for XML
FROGGS TimToady: we solved this task but I think we need to port a mature XML test suite some day 18:52
nwc10: perhaps we should propose that a perl6-vendor gets installed which then would not be under control of the user? 18:53
raiph FROGGS: McA asks: "what do you all out there use as your path out of this problem? How should a newcomer cope with this issue?" I think it would be great if you could write a brief high level summary of how P6 is approaching these issues, where P6 follows the path that's evolved in the P5 world, where it does not, and what's still worth discussing. 18:54
Or is there already such a post or doc?
FROGGS raiph: there is no such post, and I have problems describing how we cope with these issues, because that would be highly theoretically and might not reflect the truth once it will be implemented 18:56
raiph: I mean, we are in a good position to solve the issue of only have one module version because we can install all version side by side 18:58
raiph: but I really can't tell how the interaction between the vendor perl and your needs turn out to be 18:59
19:07 crazedpsyc joined 19:08 kaare__ joined 19:10 kaare_ left
[Coke] java 8 released. 19:11
( a few days ago, apparently.)
timotimo hooray
vendethiel invokedynamic ! 19:12
timotimo no, that's already been there (though not even good at all) 19:13
19:14 darutoko left
vendethiel timotimo: yeah, invokedynamic came with java 7, but it was really bad 19:14
timotimo i heard as much 19:15
vendethiel and IIRC, jruby's guy (headius) got it move forwards a lot, so that's cool
everybody wins !
timotimo \o/
yeah, we do and they do, too
FROGGS that is what I think when reading that we say thank you to the rakudo/parrot/moarvm devs, but not to the jvm devs 19:16
19:17 simula67 joined
vendethiel FROGGS: though the JVM devs already have the Java and others (scala, groovy) devs to thank them :-) 19:17
(which doesn't mean being nice to them isn't good)
19:18 rurban1 joined
raiph FROGGS++ # reading / considering McA's perlmonks post 19:19
vendethiel (who's McA / which post, if I may ask ?) 19:20
19:21 virtualsue joined
moritz vendethiel: there was a perlmonks link in the backlog 19:24
vendethiel: and McA is its author
vendethiel moritz: got it -- thanks
.oO(Angry people posting anonymously -- how strange !)
19:26
timotimo anomalously? 19:27
vendethiel timotimo: that actually looks like it's a -- sadly -- usual behavior
raiph .oO ( "anomalies are the new norm" -- anon ) 19:30
timotimo anom? 19:38
[Coke] r: say "a" ~ "nom" x 10; 19:39
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«anomnomnomnomnomnomnomnomnomnom␤»
skids It's all fun and games until soeone invents an anomolizer 19:49
19:53 rindolf left 19:55 dmol left 19:58 dmol joined 20:13 Sqirrel joined 20:14 virtualsue left
skids Just to give FROGGS++ and lizmat++ something to play with, Sum:: now provides an "emulates" for DIgest::MD5. (At least, I think I got it indexed correctly in META.info) 20:23
FROGGS yeah, the emulates is something interesting indeed 20:25
perhaps not even hard to implement
skids Should I wait on renaming META.info to META.json, or does modules.perl6.org already know about it? 20:29
FROGGS skids: no, only PAUSE knows about it 20:31
lizmat it should be META6.json, right FROGGS?
FROGGS yes, META6.json
skids: you could add a META6.json now, but this one has a slightly different structure 20:32
skids Sure, just follow S22? 20:33
FROGGS I guess we could even let panda support the META.info for a while for stuff that resides on github
skids: yes, the new S22
and please put a proper version string in it, not * as so many do 20:34
skids Already took care of that. Though I nibble at the source in spare time and commit to the repo, and modules.perl6.org always takes HEAD, so it's kind of tedious to actually update version numbers every time. 20:35
FROGGS yeah, github is not the best place to make a proper release :o) 20:36
skids Well, if modules.perl6.org could be trained to take a given tag it wouldn't be horrible. 20:37
FROGGS I guess when we have CPAN we will add tags to the repo on github when we upload a tarball of that version to CPAN
skids: I will not spend too much time for that site in the near future 20:38
at least not for a site that is only connected to github
(even when I love github very much)
skids Maybe if META6.json could be checked out of HEAD, and had a field for e.g. "stable-release-tag" that could say what tag to check out from. 20:39
FROGGS interesting idea 20:40
20:44 pdcawley left, brrt joined
skids I imagine the enforcement of the "production" field will be lenient at first. 20:46
FROGGS skids: that is always just the opinion of the dist author 20:48
skids Was asking WRT "If a distribution is not ready for production, then it will never be recommended." 20:49
tadzik . o O ( When will Perl::6 be "production"? ) 20:51
segomos now
FROGGS tadzik: GO AWAY!!
:P
tadzik :D 20:52
itz__ tadzik: when there are paid jobs
FROGGS skids: the rule is to only get the last stable release... but perhaps you get an alpha version if there was no stable yet? 20:53
tadzik itz__: heh, does gsoc count? :P I used to say I made more money with Perl 6 than with Perl 5 20:54
no longer true tho
FROGGS today was again such a day where I said to myself (aloud): Damn! I want to solve that in Perl 6! 20:55
tadzik I tried making a game in typescript, and it was so slow that I said "meh, I'll be better off with rakudo" 20:56
[Coke] FROGGS: I do that every day, but I get paid to write CF all the time. :)
tadzik no regrets, even though I have to write the engine myself :)
FROGGS [Coke]: I just get paid to solve problems :o) 20:58
moritz can't stop thinking about how he would redesign the crappy accounting/billing code at $work (currently mostly a single subroutine with 5k lines of p5 code) 21:01
21:03 btyler left
grondilu r: say 1 +> 32 21:05
camelia rakudo-moar 1c1a08: OUTPUT«1␤»
..rakudo-parrot 1c1a08, rakudo-jvm 1c1a08: OUTPUT«0␤»
FROGGS moritz: the thing I would like to replace is a one year old middleware soap/json-rpc server... it is very OO, but it would be way cleaner in Perl 6
[Coke] moritz: you get to deal with crappy perl 5 code? Luxury! 21:06
FROGGS moritz: I'd need a replacement for POE and SOAP::Lite though, the rest should be no big deal
moritz [Coke]: you haven't seen the code. 21:07
FROGGS [Coke]: just because it is Perl is does not mean anything
moritz [Coke]: 5k lines with 80+ variables that are in scope everywhere in that file
segomos sounds like heaven 21:08
[Coke] I'm sure it's bad. it's still perl.
(also, it was a shout out to the four yorkshiremen skit.)
segomos could be java 21:09
flussence 5k... ouch. I tried hard to cut down a ~200 line loop at my old $dayjob.
[Coke] (www.youtube.com/watch?v=13JK5kChbRw)
FROGGS hehe 21:13
[Coke]++
itz__ I'm writing a catalyst/DBIC REST server at work which is OK but most of the stuff is legacy 10 yr old P5 21:16
DBIC is OK but I prefer mojo to catalyst
moritz itz__: 10 year old DBIC?
I didn't even know that project was that old :-)
itz__ thats the other stuff
moritz oh 21:17
our codebase goes back nearly 20 years
itz__ which features "embperl" (how to make perl look like PHP) :|
moritz wow
itz__ I need to sneak perl6 into work :> 21:25
masak 'night, #perl6 21:32
21:33 kaare__ left 21:34 raiph left
ren1us after almost two days straight 21:49
goodnight to all of you
21:49 ren1us left 21:54 dmol left 22:00 BenGoldberg joined, kbaker_ left 22:05 rurban1 left 22:22 BitPuffin joined 22:43 PZt left 22:44 PZt joined
segomos mojo is nice to work with 22:46
brrt dear perl6 hackers... i have a problem of sorts 23:01
i've an algorithm to compact arrays
it works brilliantly
i can't explain why
care to take a look?
gist.github.com/bdw/9698303 23:03
23:05 bluescreen10 left
brrt (and yes, its python, so sue me, we're all adults here) 23:05
23:06 Psyche^_ joined 23:09 denis_boyun_ left
TimToady I dunno, there're some teens here too... 23:09
23:09 cognominal joined
TimToady though I must say by and large that the teens we've had on this channel have been more mature than some of the adults :) 23:10
brrt :-) maybe
TimToady rosettacode.org/wiki/Idiomatically_...ols#Perl_6 is kinda fun
it just looks like a swap sort with a very simple criterion 23:12
(the array compacter)
brrt it is simple
but i'm struggling to explain why empty always ends up at the exact end of the array 23:13
does it? yes, it does, for any of the (20 10) permutations i tried before the core got too hot 23:14
TimToady whenever it finds an empty before a non-empty, it swaps them, and since it looks at everything in one pass, all the empties end up at the end 23:17
any given empty migrates to the end as many times as it gets "swapped" 23:18
in C terms, it's really just two pointers pointing into the array, and you just copy down the real elements, and ignore the non-real ones
brrt i'm kind of seeing it, but not really clearly 23:19
TimToady you probably want to step through it with a small example with a couple entries of each type
brrt hmm i see 23:20
every time an empty is swapped with a nonempty it creates a new empty spot
TimToady in essence, it's just moving that entry down and making a hole, yes
so really, you just get a larger "bubble" of holes in the middle as you proceed 23:21
eventually the other side of the bubble gets too thin, and pops, and then you're done :) 23:22
brrt i see :-) 23:23
23:27 virtualsue joined
brrt thanks 23:27
23:38 sisar joined
sisar o/ A few week back, nqp wasn 23:38
yoleaux 18 Mar 2014 12:27Z <timotimo> sisar: i think the problem is that the classpath on windows expects ; instead of : and thus it doesn't find the jar files?
23:38 brrt left
sisar oops.. 23:38
timotimo: sorry to get back to you so late, but any idea how do I fix that ? 23:42
another question: a few weeks back I was unable to build nqp on parrot. Now suddenly nqp builds on parrot. I wast to find out which commit fixed it. How do I use git bisect to do that ? 23:43
*want 23:44
grondilu r: class A { has $!x; method gist { "{$!x} !!" } }; say A.new: :x(7); 23:48
camelia rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«use of uninitialized value of type Any in string context␤ !!␤»
..rakudo-parrot 1c1a08: OUTPUT«use of uninitialized value of type Any in string context in method gist at /tmp/tmpfile:1␤␤ !!␤»
timotimo sisar: change all : to ; in the makefile?
grondilu n: class A { has $!x; method gist { "{$!x} !!" } }; say A.new: :x(7);
camelia niecza v24-109-g48a8de3: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 1389 (warn @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 269 (Mu.Str @ 15) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/6MmgENUuU6 line 1…»
grondilu ahh
sisar timotimo: ok, i'll try that
grondilu n: class A { has $.x; method gist { "{$!x} !!" } }; say A.new: :x(7);
camelia niecza v24-109-g48a8de3: OUTPUT«7 !!␤»
timotimo or the other way around?
dunno
grondilu r: class A { has $.x; method gist { "{$!x} !!" } }; say A.new: :x(7);
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«7 !!␤»
grondilu r: class A { has $.l; method gist { 7.fmt("%{$!l}d") } }; say A.new: :x(1); 23:51
camelia rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«use of uninitialized value of type Any in string context␤7␤»
..rakudo-parrot 1c1a08: OUTPUT«use of uninitialized value of type Any in string context in method gist at /tmp/tmpfile:1␤␤7␤»
grondilu oh I see
grondilu often forgets that % interpolates in Perl 6 23:53
r: class A { has $.l; method gist { 7.fmt('%' ~ $!l ~ 'd') } }; say A.new: :x(1);
camelia rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«use of uninitialized value of type Any in string context␤7␤»
..rakudo-parrot 1c1a08: OUTPUT«use of uninitialized value of type Any in string context in method gist at /tmp/tmpfile:1␤␤7␤»
grondilu hum 23:54
TimToady % doesn't interpolate unless you have a subscript
grondilu r: class A { has $.l; method gist { 7.fmt('%0' ~ $!l ~ 'd') } }; say A.new: :l(1); 23:55
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«7␤»
grondilu r: class A { has $.l; method gist { 7.fmt('%0' ~ $!l ~ 'd') } }; say A.new: :l(10);
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«0000000007␤»
grondilu damn that was hard, but I eventually got through 23:56
TimToady r: class A { has $.l; method gist { 7.fmt("\%0{$!l}d") } }; say A.new: :l(10); 23:58
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«0000000007␤»
TimToady r: class A { has $.l; method gist { 7.fmt("%0$!l\d") } }; say A.new: :l(10);
camelia rakudo-parrot 1c1a08, rakudo-jvm 1c1a08, rakudo-moar 1c1a08: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unrecognized backslash sequence: '\d'␤at /tmp/tmpfile:1␤------> A { has $.l; method gist { 7.fmt("%0$!l\⏏d") } }; say A.new: :…»
23:58 xenoterracide left
TimToady std: class A { has $.l; method gist { 7.fmt("%0$!l\d") } }; say A.new: :l(10); 23:59
camelia std 09dda5b: OUTPUT«===SORRY!===␤Unrecognized backslash sequence: '\d' at /tmp/gDiVflMGus line 1:␤------> { has $.l; method gist { 7.fmt("%0$!l\d⏏") } }; say A.new: :l(10);␤Check failed␤FAILED 00:01 129m␤»
TimToady I guess