»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
pmurias general VM functionality 00:03
efficiency seems to imply avoiding Parrot's design ;) 00:04
00:04 Chillance left 00:06 cognominal left 00:11 pmurias left 00:12 donaldh left 00:29 jeffreykegler left
diakopter oh, donaldh just left 00:36
NQP doesn't use Java's regex syntax for split :) 00:38
00:40 hypolin joined
swarley Okay, so I need to figure out first of all what a vtable's purpose is 00:47
swarley opens vtables.pod
Oh. So it's basically just a map of the functions? 00:51
diakopter phenny: tell donaldh I commented on your pull request's commit 00:53
phenny diakopter: I'll pass that on when donaldh is around.
00:58 xilo_ left 01:23 anuby joined 01:24 monktopher joined
raiph__ swarley: irclog.perlgeek.de/perl6/2013-02-03#i_6407438 01:25
swarley oh, so i don't have to bother with it? 01:27
oh seeing a parrot free implementation would be very helpful 01:34
diakopter nqp-jvm...? 01:35
swarley That's a little more confusing though, because it looks so simple comparatively 01:36
I'm so confused by lexotic in the source tree 01:37
Its just a sixmodelobject, with an extra long 01:38
diakopter look at line 1030 of JASTCompiler.nqp 01:40
QAST::OperationsJAST.add_core_op('lexotic', -> $qastcomp, $op { 01:41
swarley ah
01:43 bluescreen10 joined 01:45 monktopher left 01:48 Targen joined 02:04 dayangkun left 02:18 FROGGS left 02:22 dayangkun joined
ggoebel A bit old, but interesting on the performance considerations for languages implement on jvm... blog.headius.com/2011/10/why-clojur...namic.html 02:27
02:30 MikeFair__ left 02:31 MikeFair joined 02:32 FROGGS joined 02:40 dayangkun left 03:14 benabik joined 03:19 silug left 03:31 silug joined 03:38 dayangkun joined 04:17 Pleiades` left 04:19 fgomez left 04:20 fgomez joined 04:21 Pleiades` joined 04:30 MikeFair__ joined 04:31 MikeFair__ left 05:01 preflex left 05:02 preflex_ joined, preflex_ is now known as preflex 05:04 SamuraiJack joined 05:18 xinming_ joined 05:22 xinming left 05:45 crazedpsyc left 05:46 araujo left 05:47 crazedpsyc joined 05:50 araujo joined 05:53 rindolf joined
rindolf Hi all. 05:53
TimToady: hi! So why are you (= your wife and you) not coming to Israel, eventually?
05:56 FROGGS left, ChanServ sets mode: +o diakopter
sorear diakopter? 06:03
phenny sorear: 06 Feb 22:21Z <FROGGS> tell sorear that I updated the patch: gist.github.com/FROGGS/0a6f8e2d4053fb0ba5d0
sorear: 06 Feb 22:22Z <FROGGS> tell sorear ... but rerunning the spectest always gives different failing tests, is that normal? nothing related to my patch though
diakopter hunh. I wonder what would cause nondeterministic behavior on mono 06:06
06:18 pupoque joined 06:27 jaldhar joined 06:28 FROGGS[mobile] joined
TimToady rindolf: we definitely plan to come to Israel eventually; just didn't work out this time, for various reasons that are OT here 06:34
06:35 kaleem joined
_sri the perl5/perl6 renaming discussion is heating up www.xray.mpe.mpg.de/mailing-lists/p...00267.html 06:36
bonsaikitten I don't see the problem ... ? 06:38
japhb _sri, if/when Rakudo is running on JVM, would you be willing at that point to do the Mojo porting in earnest?
If not, what would you still be waiting on?
_sri if all the primitives i need are there, sure 06:39
sorear diakopter: I was just wondering what you noticed that prompted the +o
japhb IIRC you need async Socket and file IO, proper signal handling, and half-decent speed ... anything else?
06:41 FROGGS joined
FROGGS morning 06:41
sorear morning FROGGS 06:42
FROGGS hi sorear
sorear FROGGS: tbh I have no idea which tests are supposed to be passing or failing. I'd like someone else to worry about patches 06:43
FROGGS japhb: would it make sense to create an blockers.md where module authors like sri could add the things that they're missing?
sorear: but I would suspect that if I make realclean, compile and run the spectest, that always the same tests pass/fail, no? 06:44
or is niecza known to not support TEST_JOBS greater 1?
_sri japhb: unicode, poll() in addition to non-blocking sockets, md5/sha1, base64, hires time, (possibly zlib, openssl) 06:45
FROGGS takes notes
moritz we have unicode, sha1 (though I don't know how well exposed), and sub-second time already 06:47
japhb also taking notes
FROGGS I've read something about base64 too 06:48
_sri threads will be rather important too i suppose 06:49
no clue how small things like automatic restart could work on the jvm 06:50
sorear FROGGS: it might be dicey
use your own judgement
FROGGS sorear: k 06:51
japhb _sri, I would think automatic restart is a second-tier feature (really nice to have, but not critical for first phase implementation) 06:53
sorear what do we mean by automatic restart? 07:06
SA_RESTART?
rindolf TimToady: got you - regarding Israel.
07:10 MikeFair left, rindolf left 07:11 rindolf joined, Pleiades` left
_sri japhb: those second tier features matter though, i'm not interested in experiments, if i port mojolicious it's going to be the real deal :) 07:13
07:16 Pleiades` joined
japhb _sri, Sure, I understand that. I wasn't talking about an experiment. I was just saying, once the other prereqs are in place, you can start the porting work while we figure out how to support stuff like automatic restart. I'm basically trying to figure out what the critical path is -- the stuff you need before you can even start, so that then we can work in parallel with you. 07:18
07:21 rindolf left 07:29 pupoque left 07:40 quester joined
dalek ecza: 5f89e5f | (Tobias Leich)++ | lib/CORE.setting:
"borrow" rakudos method Match.gist
07:45
sorear FROGGS++ 07:51
FROGGS thanks
my problems might be about the mono framework, I get System.TypeLoadException's on random test files, but it works well when rerunning these tests manually 07:52
08:00 hulu joined 08:03 nebuchadnezzar left
hulu r: sub A (Int $k, Int $g) { $k+$g;}; say A(3,1); 08:03
p6eval rakudo cc7e3d: OUTPUT«4␤»
hulu r: sub A (Int $k, Int $g) { $k+$g;}; say A(3,1);say .chars, " digits starting with ", .substr(0,50), "..." given A(2,1);
p6eval rakudo cc7e3d: OUTPUT«4␤1 digits starting with 3...␤»
hulu what does 'given A(2,1)' mean? 08:04
08:04 quester left 08:05 FROGGS[mobile] left
tadzik sourceware.org/ml/glibc-cvs/2013-q1...00115.html reminds me of a test in roast I once fixed :P 08:06
FROGGS nr: say "abc123def" ~~ /\w $( 11*11+2 ) \D/
p6eval rakudo cc7e3d, niecza v24-19-g5f89e5f: OUTPUT«「c123d」␤␤»
FROGGS nr: say "abc123def" ~~ /\w ( $( 11*11+2 ) ) \D/
p6eval rakudo cc7e3d, niecza v24-19-g5f89e5f: OUTPUT«「c123d」␤ 0 => 「123」␤␤»
FROGGS nr: say "abc123def" ~~ /\h/
p6eval rakudo cc7e3d, niecza v24-19-g5f89e5f: OUTPUT«#<failed match>␤»
FROGGS k
08:10 brrt joined
brrt hi #perl6 08:19
FROGGS hi brrt 08:20
brrt hi FROGGS
08:24 domidumont joined, domidumont left 08:25 nebuchadnezzar joined, domidumont joined 08:31 domidumont left 08:32 domidumont joined 08:42 sqirrel joined
GlitchMr- r: gist.github.com/GlitchMr/4729567 08:43
p6eval rakudo cc7e3d: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/2t8QLfKUjo:1␤------> https⏏://gist.github.com/GlitchMr/4729567␤ expecting any of:␤ argument list␤ postfix␤ infix or meta-infix␤ infix stopper␤ stateme…
GlitchMr- r: gist.github.com/4729567
p6eval rakudo cc7e3d: gist not found
GlitchMr- Makes... uhmmm... sense
my $page = `curl -s $program`; 08:46
This is so flawed
I'm going to fix this 08:47
Would adding WWW::GitHub::Gist to evalbot be allowed? 08:48
08:51 daxim joined 08:54 odoacre joined
moritz GlitchMr-: if there's a debian package for it, or you build one (not hard with dh-make-perl), yes 08:55
GlitchMr- I guess not then 08:56
I have WWW::GitHub::Gist package on my system (Arch), but I couldn't find one for Debian. 08:57
It should be libwww-github-gist-perl, right? 08:58
moritz right
GlitchMr- aur.archlinux.org/packages/perl-ww...thub-gist/ 08:59
moritz dh-make-perl automatically makes the right package name for you
GlitchMr- Oh wait, I forgot I made that package for Arch.
Last time I've tried to make package using dh-make-perl, I have failed. 09:01
But perhaps it's just because I couldn't use it properly.
moritz well, on Debian lenny it was buggy as hell
on wheezy (testing) it worked fine for me every time 09:02
09:02 hoelzro|away is now known as hoelzro
GlitchMr- Well, I will try to make Debian package 09:04
First, I will try to install dh-make-perl on Arch.
... it has so many dependencies... could be fun 09:05
09:06 fhelmberger joined
moritz just run it on feather 09:13
GlitchMr- Makes sense
moritz I wouldn't try to create arch packages on Debian either :-) 09:14
GlitchMr- Some people do 09:16
Except Arch packages are like 20 times less complex
arnsholt o/ 09:17
GlitchMr- wow fun
libperl-perl_5.17.3-1_i386.deb
It made wrong package
glitchmr@feather ~/libww> cpan2deb Some::Module 09:18
I can blame myself, lol
bonsaikitten I think this is the point where I look down on anyone and make rude noises? ;) 09:20
GlitchMr- Can't locate Moo.pm
Except libmoo-perl appears to exist. I guess it's simply not installed.
moritz installs it
... except that I have to apt-get update first, because the package files are so out of date that the URLs are 404s now 09:21
GlitchMr- Dependencies are so fun
(actually, I could install it myself, but whatever)
thanks 09:22
moritz ...except that I first had to fix the sudo secure_path thingy
... installed
GlitchMr- libwww-github-gist-perl_0.17-1_all.deb 09:23
Sounds good
Except the package appears to install in /home/glitchmr
...
moritz heh, do you have local::lib in effect? 09:24
GlitchMr- Yeah
wiki.archlinux.org/index.php/Perl_...ed_Example
That could be of help
To be exact export part
export PERL_LOCAL_LIB_ROOT="/home/glitchmr/perl5"; 09:25
export PERL_MB_OPT="--install_base /home/glitchmr/perl5";
export PERL_MM_OPT="INSTALL_BASE=/home/glitchmr/perl5";
Sounds like local::lib
moritz ~moritz/libwww-github-gist-perl_0.17-1_all.deb installs to /usr/share/perl5/
GlitchMr- Well, ok, then 09:26
So the package already exists now
moritz yes 09:27
GlitchMr- Anyway, I will go away now
09:27 hulu left
GlitchMr- I will update evalbot later 09:28
09:28 b1rkh0ff left
moritz upgrades some packages on feather 09:30
09:41 dayangkun left 09:45 Psyche^ joined 09:49 Patterner left, Psyche^ is now known as Patterner
jnthn morning o/ 09:50
brrt hi jnthn 09:51
09:54 dakkar joined
jnthn ggoebel: Thanks for the link; I'm aware of that blog, it's full of interesting stuff :) 09:57
FROGGS hi jnthn 09:59
jnthn FROGGS: Plesae undo 1fb778f. Most HLLs don't have sigils/twigils. 10:01
Or at least many
And it should be handled differently in NQP and Perl 6 anyway I suspect
In Perl 6 they're probably meant to be a grammatical category really.
10:02 mathw joined 10:04 Pleiades` left
FROGGS jnthn: will do 10:07
10:08 Pleiades` joined
jnthn Thanks 10:09
FROGGS++ # fixing the $(...) handling otherwise :)
FROGGS I thought HLL is just there for Perl6, totally my fault ó.ò
jnthn FROGGS: No, it's meant to be more generic :) 10:11
So...where did I get to before I went to Stockholm for $dayjob task... :)
FROGGS getting old ehh? :P 10:12
moritz jnthn: you wanted to think about my idea for a callback when QAST::Compiler encounters a non-Want node in void context
(among other things)
jnthn Ah, yes.
I was also playing with multiple dispatch in NQP.
And then blocked on a design issue, which my notebook seems to have an answer to, figured out on some train journey. 10:13
arnsholt And I failed at bootstrapping
jnthn moritz: My worry is that QAST::Compiler feels quite late.
But maybe that's not entirely a problem... 10:14
moritz jnthn: you mean, because we might invest time in optimizing the statements, and later we discard them anyway?
jnthn moritz: More that we're pushing those warnings a long way down the compilation pipeline. At the moment, the optimizer is the last thing that is meant to complain; if you manage to make QAST::Compiler complain in some way then you fed it bad QAST. 10:15
moritz: Also I'm wondering if the optimizer should be tracking void context 'cus it'd be useful in general and because it probably can do so quite reliably. 10:16
I mean, the entire statement list handling of void context in QAST::Compiler is fairly well encapsulated in compile_all_the_stmts. 10:17
It's not so hard to steal that into visit_stmts or so.
arnsholt: I should probably figure that out before I work more on NQP... 10:20
moritz jnthn: reimplementing void context tracking is what I wanted to avoid. But you're right, it makes sense to do it in the optimizer already 10:21
10:22 spider-mario joined, hulu joined
jnthn merges the arnsholt branch to see how it explodes 10:23
arnsholt jnthn: In hindsight, I should've done the REPR compose stuff directly on master and merged back, yeah
jnthn ah, yeah...
arnsholt jnthn: In the end I did manage to get it merged and update the bootstrap, but when I tried to compile Rakudo, it failed at compiling the setting... 10:24
10:24 anuby left
jnthn ok 10:24
10:25 kivutar joined 10:29 hulu left
jnthn arnsholt: OK, got an NQP build with your branch merged in that passes tests. Going to try out Rakudo now. 10:33
arnsholt Cool
jnthn Is there a Rakudo branch I need to merge also? 10:35
arnsholt Oh, right. Yes, there is. Same name as the NQP branch 10:36
(Updates to storage_spec.h and sixmodelobject.h)
jnthn And to the repr compose stuff :) 10:37
arnsholt Oh, durr. That's it, isn't it
Weird that it didn't crop up when I was working on my branch though 10:38
jnthn watches it do the setting and waits for it to fail 10:39
nwc10 wonders why there is no mention of people working on PHP atop PyPy, depsite the project being very active: bitbucket.org/fijal/hippyvm
jnthn Gets quite a way in...
nwc10 optimist
10:40 salv0 joined
jnthn arnsholt: So, uh. 10:40
arnsholt: The build succeeded here.
arnsholt Weird...
jnthn runs spectest
timotimo "wait. you're saying what i did works?! 10:41
arnsholt Push away, I guess. How did you go about it?
jnthn All I said was it didn't break the build ;-)
arnsholt Less broken than my attempts, which is a definite improvement =) 10:42
jnthn arnsholt: Commented out the repr_compose call in NQP, re-bootstrapped, merged your branch, re-enabled repr_compose, make test in NQP (pass), make install. Then get latest Rakudo, merge your branch there and build :)
arnsholt Huh. More or less what I ended up doing as well 10:43
jnthn Oddness
arnsholt Or at least what I intended to do. We'll see when I look at the commits
Oh, you should probably bump NQP_REVISION since you've merged the Rakudo branch 10:44
(If you haven't already)
jnthn Yes, I shall before I push :) 10:45
arnsholt Good, good 10:46
jnthn spectest looks good
arnsholt Good, good. Odds are I did something weird, then =) 10:47
dalek Heuristic branch merge: pushed 42 commits to nqp by jnthn
kudo/nom: f7a5a2f | (Arne Skjærholt)++ | src/ (4 files):
Start integrating with native size support in NQP.
kudo/nom: c7fe112 | (Arne Skjærholt)++ | src/Perl6/Metamodel/NativeHOW.pm:
Fix braino. NativeHOW sent bad data to the REPR compose.
kudo/nom: e079812 | (Arne Skjærholt)++ | / (12 files):
Merge branch 'nom' into dyncall-sized-num
kudo/nom: 3b135f5 | (Arne Skjærholt)++ | src/Perl6/Metamodel/NativeHOW.pm:
Make NativeHOW set float as well as integer bitsize.

Since NativeHOW is used for all native types (int, num, str) we don't know a priori whether we're setting the bitwidth of an int of a float. So we set both.
kudo/nom: 80dc914 | (Arne Skjærholt)++ | src/binder/sixmodelobject.h:
Update sixmodelobject.h.
kudo/nom: e59ba28 | jnthn++ | src/ (4 files):
Merge remote-tracking branch 'origin/dyncall-sized-num' into nom
kudo/nom: fc3f0d8 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for natives improvements.
timotimo happy spam! :)
arnsholt Yaaaay! 10:49
jnthn arnsholt++
arnsholt jnthn++ # Fixing my problems =)
timotimo maybe i won't have to worry about process interop with a python shim for zmq any more :P 10:50
arnsholt Well, we'll still have to wrap ZMQ
But that should be feasible now, as opposed to before
timotimo indeed
jnthn arnsholt: So out of this, we get properly working sized int/num attributes in P6opaque, and sized types in C structs and C arrays for NativeCall? :) 10:51
arnsholt Barring any stupid bugs in my code, that's the general idea, yeah 10:52
jnthn \o/
moritz \o/ indeed 10:53
timotimo \o/
dalek p: a0bba92 | (Tobias Leich)++ | src/ (3 files):
move sigil/twigil back into place

Because HLL is meant for general purpose, Perl 6 specifica should stay in Perl 6 world.
10:59
nwc10 yes, that merge got rid of the uninialized warnings for thingy .bits 11:01
jnthn FROGGS++ # thanks 11:02
FROGGS of course 11:03
arnsholt nwc10: Excellent! Any of those remaining would indeed be bugs 11:04
masak good afternoon, #perl6 11:10
FROGGS hi masak 11:11
jnthn o/ masak
sorear o/ masak 11:13
arnsholt Git is nice, but I think GitHub is an important part of the killer app part of software success there 11:17
spider-mario I think I prefer bitbucket
11:18 SmokeMachine joined
arnsholt I haven't really used BitBucket much, to bo honest 11:19
Probably should
masak arnsholt: totally agree about git+github. it's like they feed each other's success. either is better with the other. 11:20
arnsholt Yeah. The UX of GitHub is very good, which complements (and alleviates, in some cases) the arcaneness of plain git
11:23 Pleiades` left
masak git, arcane? never! :P 11:25
moritz just low-level, and, hysterical raisins
tadzik bitbucket is nice, as it has free private repos
moritz I find myself needing them very rarely 11:26
for p6cc I used one (but hosted on my own server)
spider-mario I use them quite much 11:27
for example for school projects
11:27 Pleiades` joined
arnsholt Yeah, for work and school private stuff I just put them on my work area with SSH access 11:29
masak I just got my 100th repository. 11:30
on github.
moritz masak++
masak I basically use it as a distributed hard drive.
dalek kudo/nom: 4fb07b1 | (Tobias Leich)++ | src/Perl6/Actions.pm:
remove circumfix:sym<sigil>

This was already moved to method variable.
11:35
11:36 kivutar left, brrt left 11:42 jerome left 11:43 jerome joined
masak quote from Tom Dale of Ember (a JavaScript client-side framework): "We do a lot of magic, but it’s good magic, which means it decomposes into sane primitives." 11:43
that's how I feel about Perl 6.
11:44 hypolin left 11:52 kivutar joined 11:59 xdbr joined 12:02 kivutar left 12:15 brrt joined
grondilu rn: say <1/3>.WHAT 12:21
p6eval niecza v24-19-g5f89e5f: OUTPUT«Rat()␤»
..rakudo 4fb07b: OUTPUT«Str()␤»
dalek p: 3089165 | jnthn++ | src/QAST/Operations.nqp:
Add some ops for capture manipulation.

This will enable porting of most of the multi-dispatch code to NQP.
12:22
p: 38070ee | jnthn++ | src/stage0/ (9 files):
Update bootstrap for new ops.
p: 7a83b54 | jnthn++ | src/ (2 files):
Port multi-dispatch logic to NQP.

Not wired up for use in the dispatch yet, but a little testing seems to show it does the right kind of thing.
grondilu n: say <1/3 0.2>».WHAT
p6eval niecza v24-19-g5f89e5f: OUTPUT«RatStr() RatStr()␤»
grondilu n: say .nude for <1/3 0.2> 12:23
p6eval niecza v24-19-g5f89e5f: OUTPUT«1 3␤1 5␤»
12:43 Pleiades` left 12:47 kivutar joined 12:48 Pleiades` joined, spider-mario left, spider-mario joined 12:51 SamuraiJack_ joined 12:53 Targen left, spider-mario left 12:54 SamuraiJack left, spider-mario joined 12:56 SmokeMachine left 12:58 SmokeMachine joined 13:01 SmokeMachine left, SmokeMachine joined
brrt at the risk of total flamebait, whats up with ovid's suggestion to call perl 5.20 perl7? 13:03
tadzik I think it's stupid
Perl 5 pretending that it's Perl 6, or the successor of it, will just make everyone disappointed as hell, and bring a lot of bad marketing 13:04
like "they didn't do anything for the last 12 years and now they pretend that the old is the new!" and such
brrt yeah, i kind of agree 13:05
tadzik as if the problem of Perl 5 was naming 13:06
nwc10 put lipstick on a pig, and it's still a pig
and Ruby must be dead too, as it's still on version 1 13:07
it's *not* the problem.
jnthn And the "didn't do anything" perception is part of the problem. A bunch of the folks who think this is a good idea are very good at noticing that getting Perl 6 done is taking a long time (though maybe not following enough to even be able to answer "what progress was made in the last couple of years" and assuming it's nothing), yet oddly blind to the fact that evolving Perl 5 core seems to be a slow and painful process too (the MOP would have been great, but sadly s
tadzik that too
brrt for me, the problem of perl 5 is teaching 13:08
suppose i could teach a total newbie programming
i could start with some toy language, then he or she would never get anything done
i could start with scheme, and that person would have a splendid understanding of the first 30 years of computer science, and still not get anything done 13:09
or i could start with python
perl 5 doesn't even enter there, because there is simply too much to know
nwc10 jnthn: you got truncated at "sadly s"
jnthn sadly seems to have run into a bunch of problems).
13:10 domidumont left
jnthn (I'm not implying I don't think the MOP will happen. I'd love it to. I'm just pointing out that if that happens it'll hardly have been a case of "wow, that got done quick"). 13:10
Woo, I seem to have ported the multi-dispatcher to NQP. Now I just need to put back the cache fast-path so things ain't omg slow. 13:12
The reason for all of this, fwiw, is so that porting multiple dispatch is a case of porting a small bunch of primitives rather than having to port the entire dispatch algorithm. 13:13
moritz \o/ 13:14
13:14 bluescreen10 left
FROGGS cool 13:14
jnthn++
jnthn oh, urgh 13:15
13:16 nyuszika7h left
jnthn Messy interaction with serialization 13:16
Well, not hard to fix.
But, lunch first.
nwc10 cool 13:18
nwc10 wonders what timezone jnthn is in today
FROGGS 2pm here, still lunch time 13:19
arnsholt I think he's in his current home TZ in Sweden
13:19 mls_ joined
mls_ jnthn: "captueposelems"? Is that a typo? 13:20
jnthn mls_: Yes.
mls_: Fixed locally.
Thanks ;)
uh, :) even 13:21
13:21 pmurias joined, telex left 13:23 mls_ is now known as mls, telex joined 13:25 nyuszika7h joined 13:29 pmurias_ joined, pmurias_ left
pmurias I get a segfault while building nqp 13:30
arnsholt That's not good
Using --gen-parrot?
pmurias yes 13:31
pastie.org/6087088 13:32
arnsholt Could you try regenning with --parrot-option='--ccflags=-g' and use gdb to get a backtrace?
pmurias parrot--
arnsholt Not necessarily parrot
There's a lot of C code in NQP (some of which was updated earlier to day when my branch was merged) which could very well be the culprit 13:33
What platform are you on, BTW?
pmurias linux
3.2.0-1-686-pae 13:34
arnsholt 64-bit? 13:35
pmurias 32bit 13:36
[Coke] stands in the corner listening to pmurias beat up on parrot.
13:37 stevan_ left
FROGGS hmmm, I pulled, made realclean and it did it just fine 13:37
spectests are good too
arnsholt pmurias: Right. Could be a 32-bit limitation of my branch, in that case. AFAIK it's only been tried on 64-bit 13:39
FROGGS 64bit here too, yes
13:40 kivutar left
jnthn Oh my... www.modernperlbooks.com/mt/2013/02/...epalm.html 13:43
OK, I've had enough.
*sigh* 13:44
daxim insert "walk out of the window" image macro here 13:45
nwc10 jnthn: wait, his summary is acutally excellent
jnthn "Contributing adult supervision to one or another Perl 6 implementation such that it's eventually usable by regular people". Really? 13:46
nwc10 oh, except for tat one
there he is being, well
this is logged, right?
jnthn "Goodness knows it's more fun to write a compiler or to port a half-finished project halfway to a new virtual machine "
NO THE POINT IS THAT THERE IS NO FUCKING WAY TO FINISH PERL 6 WITHOUT LEAVING PARROT BEHIND.
Yes, it's logged and now I said it and it's logged and that's awesome.
nwc10 which, by the way 13:47
has anyone actually asked him why he quit working on parrot?
is that online anywhere?
pmurias jnthn: I fully agree with that
brrt is a sad panda about it, but agrees nonetheless
nwc10 I believe I know the answer, but it's hearsay, so I'm not going to screw up by pasting it here
brrt frustration is my guess 13:48
hoelzro jnthn: may I ask why Perl 6 can't be completed without abandoning Parrot?
I'm not trying to provoke; I'm just curious 13:49
nwc10 because, sadly, it's too buggy
brrt hoelzro, nobody is really maintaining parrot
nwc10 it doesn't have useful threading
FROGGS hoelzro: most ppl dont port their modules to Perl 6 because rakudo is too slow, and now it seems that JVM is much much faster, thats why I guess
hoelzro that is sad =(
brrt it is maintained, but not with anywhere adequate manpower
nwc10 and pretty much everyone hacking on it has stopped
jnthn It's too buggy and it's badly designed (or not designed) in places Perl 6 needs to work out its spec.
For example, threads and async IO. 13:50
brrt parrot has awesome plans for fixing the poor design
13:50 kaleem left
brrt but no manpower /at all/ 13:50
pmurias brrt: move to a different vm?
nwc10 the contributor and commit graphs on www.ohloh.net/p/parrot tell a story
brrt not to mention the fact that whenever big changes appear, then OMG TESTS FAIL
jnthn brrt: Yes, that's a sign of fragility.
13:51 benabik left
brrt yes, unfortunately, you cannot really remove fragility one piece at a time 13:51
pmurias arnsholt: pastie.org/6087201
daxim okay, cool to know about what youall just said 13:52
brrt nwc10, looks at the timeline of those graphs :-)
nwc10 look at the last year 13:53
jnthn We *really* need to get our async IO and threading story sorted out. There's no way I can even try to work on those things on Parrot. A port to the JVM is quicker than trying to get Parrot to do enough of the things - assuming it was even feasible.
nwc10 I'm pretty confident that pretty much every piece of the parrot design is, with hindsight, roughly, wrong.
that's pretty sweeping, I know 13:54
brrt nwc10, not every piece
nwc10 there are far too many ops
the ops are implemented in C, so are opaque to any analsysis or JIT
brrt although there are quite a few unlucky tradeoffs
polymorphic ops, now that is a pain
13:54 shinobicl joined
nwc10 there's no coherent IO/signals/events/GC/concurrency story 13:55
arnsholt pmurias: Right, so a segfault in P6opaque's gc_mark. That's one of the files I've touched
brrt jnthn, i wonder how threads and a mutable view of code / classes is going to work out
suppose i have two threads, one in a highly optimised runloop calling foo.bar(); 13:56
[Coke] I find the irony levels at "Handwringing over what should have been or might have been doesn't do much" nearly toxic.
jnthn++ for making rakudo move.
brrt and another thread replacing foo's bar() with some other reference because monkeypatching lolz
nwc10 his block is toxic.
gah.
blog
13:57 Targen joined
jnthn brrt: It's mostly a cache invalidation problem. 13:57
13:57 skids left
brrt yes, but how do you know which caches rely on which threads? 13:58
if you have no threads, then you invalidate the cache next time you enter the scope
pmurias can't monkeypatching just invalidate all caches
?
brrt only if you know where all caches are
arnsholt pmurias: Do you happen to remember roughly which NQP revision you started from that still worked? 13:59
brrt some of them might be inline (you'd like them to be, anyway)
nwc10 if there are no Perl 6 level locks between the code in the tight loop, and the code in the other thread doing the monkeying, then the order in which they run is indeterminate
so, it's not wrong for the tight loop to run to completion before "seeing" the change
as long as the interpreter state remains consistent enough not to crash 14:00
arnsholt pmurias: Or actually, try checking out 2c13753ac8. If that one works, git bisect and try to find which commit is bad
nwc10 wonky code is going to ack wonky
brrt right, but that means that locking also means 'check all caches'
for code that is unlikely to happen anyway
nwc10 it might be as simple as "check a flag that says that 'something happened'" 14:01
and at that point, call out to the slow code
brrt hmm
a thread cache flag
fair enough actually
nwc10 which *does* the real work of figuring out the significance of what needs changing
it's roughly how Perl 5 safe signals work
there's a "whoaaah" flag
jnthn It all depends on how soon the other thread needs to reflect the change also.
nwc10 which is all that gets checked 14:02
brrt in theory, after a synchronisation point
which also means that if i have two threads, and one of 'm monkey-patches, the other might /never/ see the monkey-patch
which is fine by me, but you're going to receive bug reports about that 14:03
jnthn Code that you're currenlty in the middle of executing being invalidated will always be a tricky problem.
14:04 zos joined
jnthn Of note, trying to decide where you were in the optimized version so you can work out the correct PC in the unoptimized version when you fall back out to it could be all kinds of fun. 14:04
14:04 zos left
pmurias would it be possible to setup automatic building and testing of nqp revisions? 14:05
jnthn otoh, there's plenty (or at least some) literature out there on on stack replacement and so forth
pmurias s/revisions/commits/
brrt v8 can do it :-) so can we
jnthn brrt: It's doable, just hard :)
pmurias: Yes, it just needs somebody with tuits to do it... 14:06
nwc10 pmurias: "yes". But was that you volunteering to try?
brrt the enviroment of the jvm could (should) theorethically make it somewhat easier
whats tuits
found it
decasm upscale bbq? that sounds ... backwards. 14:07
jnthn brrt: A terrible but great pun :)
pmurias nwc10: I could to try to help with that, I'm not sure what's needed
arnsholt Yeah, some kind of CI system for NQP and Rakudo would be neat
brrt i like it
14:07 SmokeMachine left
arnsholt Or even a distributed manual one like cpantesters 14:07
pmurias arnsholt: that commit worked 14:08
arnsholt Awesome. Have you used git bisect before?
pmurias no
pmurias looks at the manual
arnsholt It's pretty straightforward, and the manual is useful (as opposed to other parts of git) 14:09
pmurias I generally find the git manual usefull provided I roughly now what I want to do 14:10
arnsholt True, true. I'm getting more used to it now
BooK_ tadzik: there's a better way to do a multilingual act website for plpw 14:14
arnsholt git bisect is ridiculously magicsauce, anyways
tadzik BooK_: 2 templates, eh?
maybe someone will pick it up, I githubbed our act files recently 14:15
BooK_ <t><en>stuff in Engligh</en><pl>stuff in polish</pl></t>
14:15 Targen left
tadzik oh 14:15
kewl
BooK_ although that assumes there's a po/pl.po file
tadzik I'll wait for pl.po to show up though
right
pmurias tadzik: is there a website for the polish perl workshop? 14:16
tadzik pmurias: aye
act.yapc.eu/plpw2013/
14:17 PacoAir joined
BooK_ updating the yapceurope.org web site ATM 14:17
jnthn Aww, dang, I wanted to be first person to register for plpw but registration isn't turned on yet ;) 14:19
pmurias jnthn: are you attending? 14:23
jnthn pmurias: Yeah, I will do :)
[Coke] jnthn++ # awesome beard of perl+1.
dalek rl6-roast-data: b584f99 | coke++ | / (4 files):
today (automated commit)
14:24
rl6-roast-data: 5d349e4 | coke++ | / (4 files):
today (automated commit)
14:25 Targen joined
tadzik jnthn: it'll open as soon as we have the financial backend settled up, which would probably be friday or caturday :) 14:26
I'll notify everyone, fear not ;)
FROGGS .oO( purr purr - its caturday! (finally) ) 14:27
14:29 cognominal joined
[Coke] hey, no grant submittals this past time period. Be nice if we had some perl6 submittals to consider. 14:29
(for the regular process, not the hague process)
14:33 domidumont joined
pmurias arnsholt: I didn't do a make clean every time and bisect found nothing 14:34
arnsholt Weeeird. 14:36
pmurias there seem to be a lot of warnings while building 14:37
arnsholt Yeah. Most of them are stuff like returning aggregates, which isn't actually problems
pmurias shouldn't we turn them off then? 14:38
if we ignore some of them all are useless
arnsholt Most of our cflags come from Parrot
14:40 arlinius joined
[Coke] ... which in turn come from p5. 14:45
arnsholt pmurias: But that's odd. Does checking out HEAD^ and doing a clean make work? 14:47
pmurias hmm HEAD and make clean, make doesn't work
decasm @blame royt 14:48
14:49 decasm left
pmurias arnsholt: I'm repeating the bisect wit make clean;make 14:50
arnsholt Ah, even better. Thanks!
pmurias waiting for all those revisions is really boring tho
arnsholt Yeah
pmurias what would we need to have them built automatically? 14:51
arnsholt A CI server of some kind, probably 14:52
Hmm. Maybe we could be able to do something with Travis CI? 14:53
14:53 xdbr left 14:54 xdbr joined 14:58 stopbit joined 14:59 SmokeMachine joined
rurban pmurias: debugging parrot? 14:59
Is DEBUGGING defined? 15:00
arnsholt The segfault is while compiling NQP, and since we've recently merged a branch that involves a fair amount of changes to our C code (and C-side memory diddling) I suspect the bug is in my NQP changes 15:02
15:02 stevan_ joined, domidumont left
rurban I tested it before (with asan) 15:02
arnsholt It == Travis? 15:03
15:03 domidumont joined
rurban nqp and parrot 15:03
15:03 xdbr left
arnsholt Oh. I suspect the bug may be related to wordsizes or something like that 15:03
rurban I'll have it soonish
arnsholt I've implemented support for sized native variables in NQP, and it's probably only been tested on 64-bit machines 15:04
So I wouldn't be surprised if there's something that doesn't work right on 32-bit, which is what pmurias has
rurban Oh, thats' on 32bit?
15:04 SunilJoshi joined, xdbr joined
arnsholt Yeah, my suspicion is 32-bit/64-bit shenanigans. But it'd be wonderful if you gave it a whack 15:07
If it breaks, it disproves my theory, for one =)
15:08 shinobicl left
pmurias arnsholt: 38070ee34cba4257017a9bb280c592d3a1c59002 15:09
maybe I should starting using a 64-bit laptop 15:11
15:11 sizz_ joined
arnsholt Hmm. So it looks like it's a later commit 15:11
jnthn: Any ideas what it might be? 15:12
15:12 sizz left, FROGGS left
jnthn arnsholt: Not immediately, but maybe some bad assumption about INTVAL's size? 15:14
rurban And it would be nice if you are bullshitting parrot you'll get the facts right. There are problems but not the problems you talked about
arnsholt jnthn: Yeah, that's what I thought. But for some reason pmurias's bisect turns up github.com/perl6/nqp/commit/38070e...d3a1c59002 which is your bootstrap update to add the new capture ops... 15:16
pmurias rurban: it's not slow?
rurban Calling functions is slow, yes. But threads are working fine.
jnthn lol
rurban Show me a better threads implementation. The best I know
jnthn arnsholt: That's really odd.
rurban 64bit nqp passed with asan 15:17
pmurias asan?
arnsholt It's definitely weird. Makes me wish I had a 32-bit machine to try
rurban address-sanitizer, a 10x faster valgrind
arnsholt goes digging in P6opaque.c 15:18
jnthn arnsholt: I'd first look for anywhere that maybe assumes INTVAL == Parrot_int8 or so. 15:19
arnsholt: I may be able to get a 32-bit environment to try this on
Suspect I may have to go afk for a little bit soon though 15:20
arnsholt Oh, oh!
I may see it
pmurias: Open src/6model/reprs/P6opaque.c and go to line 291 15:21
Cut that whole paragraph of code out (if(unboxed_type == STORAGE_SPEC_BP_NONE) { ... }) and paste it after the paragraph that handles alignment (if(cur_size % align) { ... }) 15:22
pmurias arnsholt: in which revision?
15:23 skids joined 15:24 FROGGS[mobile] joined
arnsholt Just do it in HEAD 15:24
pmurias doesn't help 15:27
arnsholt: you want me to switch the 2 if statements?
arnsholt Yeah, that's all 15:28
The first if clause uses cur_size, which is updated in the second if 15:29
The update should happen before the use
pmurias I think I'll just start using my 64bit laptop 15:31
arnsholt But then you wouldn't find my bugs! ;)
pmurias that's what I hope 15:33
15:36 bluescreen10 joined
rurban Found now a fast 32bit machine with all tools 15:36
15:39 murek1 joined 15:40 domidumont left, domidumont joined
arnsholt rurban: Oh, that's awesome! 15:40
15:41 stevan_ left 15:46 stevan_ joined 15:47 am0c left 15:48 benabik joined 15:50 SunilJoshi left
dalek p: 51d9d8d | jnthn++ | src/QAST/Operations.nqp:
Argh, got typo into the bootstrap. :(
15:51
p: 4b213cc | jnthn++ | src/ (2 files):
Implement nqp::invokewithcapture.

Use correctly spelled ops.
15:51 dalek left
jnthn fail 15:51
15:51 dalek joined, ChanServ sets mode: +v dalek
FROGGS[mobile] epic fail? 15:52
arnsholt Yeah, I think dalek handles long-ish commit messages poorly, or something like that
15:53 kaleem joined
jnthn Anyway, multi dispatch in NQP is now largely written in NQP 15:53
Being called away now, will clean up in a bit
nwc10 yay! 15:54
15:54 kaare_ joined
FROGGS[mobile] jnthn: can we hope to gain a bit more performance? 15:56
15:57 FROGGS[mobile] left, FROGGS joined 15:58 dayangkun joined 16:05 nyuszika7h left
FROGGS nr: $_ = "foo bar"; say m/ $( $_ ) / 16:08
p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«「foo bar」␤␤»
16:09 nyuszika7h joined
FROGGS nr: try { say $_ } for <1 2> 16:14
p6eval rakudo 4fb07b: OUTPUT«Any()␤Any()␤»
..niecza v24-19-g5f89e5f: OUTPUT«1␤2␤»
FROGGS nr: try say $_ for <1 2>
p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«1␤2␤»
16:14 sizz joined
FROGGS nr: try { say $_ } given 2 16:14
p6eval niecza v24-19-g5f89e5f: OUTPUT«2␤»
..rakudo 4fb07b: OUTPUT«Any()␤»
16:15 sizz_ left, cognominal left
benabik r: given 2 { try { say $_ } } 16:15
p6eval rakudo 4fb07b: OUTPUT«2␤»
FROGGS rt.perl.org/rt3/Ticket/Display.html?id=111704
nr: say 'aa' ~~ /(.)$1/ 16:16
p6eval rakudo 4fb07b: OUTPUT«#<failed match>␤»
..niecza v24-19-g5f89e5f: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 1287 (warn @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 266 (Mu.Str @ 15) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/H4s4rLV8gX line 1 (ANON @ 7) ␤…
16:17 cognominal joined
colomon jnthn: is there a rakudo-friendly way to do token tuplet { '('(<digit>+) {} [<t_elem>* <stem>] ** { +$0 } <slur_end>? } yet? 16:17
16:18 stevan_ left 16:20 stevan_ joined
pmurias rurban: any luck reproducing the problem? 16:21
rurban Still compiling parrot...
16:22 cognominal left 16:23 murek1 left 16:24 murek1 joined
masak today's mini-challenge: construct a proof that 1 + 1 == 2 (in Perl 6). using any kind of addition is considered begging the question. 16:24
[Coke] r: use Test; is(2, 1*2) 16:26
p6eval rakudo 4fb07b: OUTPUT«ok 1 - ␤»
rjbs Heh.
nwc10 clearly not Abigail. Abigail would have used a regular expression. 16:27
masak no... :)
I could see a regex solution actually working out as a proof.
also, sets.
16:27 brrt left
masak I was thinking of this on the way home. struck by how similar the *process* of addition actually seems to the >>= operator for Haskell monads. 16:27
16:28 benabik_ joined, benabik left, benabik_ is now known as benabik 16:30 domidumont left
FROGGS nr: say 'aa' ~~ /(.)$0/ 16:30
p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«「aa」␤ 0 => 「a」␤␤»
16:31 hoelzro is now known as hoelzro|away 16:33 murek1 is now known as murek 16:34 murek is now known as amurias, kaleem_ joined 16:35 kaleem left
masak was more thinking of something like this: 16:36
r: sub set_of_size($n) { set Any.new xx $n }; say elems set_of_size(1) (|) set_of_size(1)
p6eval rakudo 4fb07b: OUTPUT«2␤»
16:37 thou joined
masak "combine two (disjoint) sets of size 1. count the elements of the resulting set." 16:38
16:39 SmokeMachine left
pmurias how and when did the serialization format change? 16:40
16:42 SmokeMachine joined
timotimo oooh that's cool, masak 16:42
masak rn: sub churn_addition($_) { return ~$0 if /^(S*0) \+ 0$/; return "S$0+$1" if /^(S*0) \+ S(S*0)$/ }; say ("S0+S0", &churn_addition ... /^S*0$/)[*-1] # using peano arithmetic 16:45
p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«SS0␤»
masak S0+S0 reduces to SS0
more entries welcomed :)
16:48 SmokeMachine left
skids r: say (1+1).is-prime; say (1+1) %% 2; 16:49
p6eval rakudo 4fb07b: OUTPUT«True␤True␤»
16:49 Targen left 16:50 kaleem_ left
rurban pmurias: now at nqp... 16:53
masak skids: interesting.
skids: seems a little overkill, though :)
(in that it involves the notion of divisibility)
16:55 jeffreykegler joined
colomon I liike skids' approach 16:58
amurias pmurias: are you there? 17:00
FROGGS .oO( "YOU_ARE_HERE" )
17:00 kaleem_ joined
timotimo you know how we can raise awareness for perl6 and how neat the new regexes are 17:00
did you see the MIT mistery hunt regex "crossword" puzzle? 17:01
masak colomon: it's innovative. but one could argue that it implicitly uses addition, because divisibility rests on addition.
colomon I suppose it implicitly uses == as well, by that logic. 17:02
masak that's fine.
we much have equality in order to compare things.
colomon in that case, the problem is that it directly uses addition, no? 17:03
masak oh! yes. that, too.
17:03 daxim left
colomon I kind of think the problem is actually ill-formed 17:03
masak it's tantamount to printing the result of 1+1 and saying "it looks like a 2" :) 17:04
colomon: oh?
the task is meant to encourage the discussion "what is addition?", by the way.
colomon well, on the one hand 2 is defined as the successor of 1, that is to say, 1 + 1. 17:05
masak I'm also forever fascinated by the fact that it took R&W 379 pages to prove this... en.wikipedia.org/wiki/Principia_ma...Quotations
colomon: usually the successor function isn't defined in terms of addition. 17:06
17:06 benabik left, benabik_ joined
rurban yes, repro 17:06
moritz masak: me too, because I thought that the very definition of 2 is that it's the integer successor of 1 17:09
masak yes, it is. 17:10
but why are you confusing that with addition?
addition is a separate concept from the successor function.
colomon masak: it isn't defined in terms of full addition. It is defined in terms of adding 1 17:11
masak if the fact that "successor" and "+1" feel kinda similar, feel free to prove that 2+2==4 ;)
FROGGS somebody like to comment on rt.perl.org/rt3/Ticket/Display.html?id=77616 ?
masak colomon: usually the successor function is axiomatically defined, without any mention of addition.
moritz well, I learned that N (the set of integers) is defined as the smallest set which contains 0, and for all n element N, it also contains n + 1
rurban nqp 380b20 still fails on 32bit
masak I am surprised by this mixing-up of "adding one" and "successor". in my mind they are completely separate. 17:12
you can count using Church numerals, for example.
ooh, there's another way to prove it... :)
if there is something I can do to make the task less ill-defined, let me know. to me, it's already clearly defined. 17:13
colomon masak: consider en.wikipedia.org/wiki/Successor_function .... 17:14
timotimo hm, can one create a regex object from a string in perl6?
well, i guess eval. but that's not "secure"
jnthn timotimo: rx/<$string>/ or so
timotimo oh, good point 17:15
jnthn timotimo: Creating a regex object from a string is not exactly secure ;)
17:15 SmokeMachine joined
timotimo hm, right :) 17:15
i'll write a regex that only lets secure regex through
like forbid $ signs and < >
masak colomon: huh. that *is* unfortunate. 17:16
p: a60560e | jnthn++ | src/stage0/ (9 files):
Update bootstrap.

Means that the first stages won't be slower due to not using the cache.
masak colomon: well, consider as a counterargument en.wikipedia.org/wiki/Peano_axioms#Addition
colomon masak: on the other hand, en.wikipedia.org/wiki/Peano_axioms#Addition
dalek p: 323db25 | jnthn++ | src/ (5 files):
Toss a mass of now-unused C code and dead ops.
masak colomon: heh :)
colomon: clearly, in order to solve the task at all, one must choose a set of definitions that are not circular.
so it is not the task that is ill-grounded, but Wikipedia. 17:17
jnthn Circular definition: see circular definition
colomon masak: but then in those terms it's not really a perl 6 task
FROGGS timotimo: if you just want to match the content of a var, do it like: 17:18
r: my $var = "abc"; say "abcdef" ~~ / $( $var ) /
p6eval rakudo 4fb07b: OUTPUT«「abc」␤␤»
17:18 domidumont joined
[Coke] jnthn++ deleting code, esp. C. 17:19
moritz well, or just / $var /
FROGGS r: my $var = "abc"; say "abcdef" ~~ / <{ $var }> / # too
p6eval rakudo 4fb07b: OUTPUT«「abc」␤␤»
timotimo FROGGS: no, i want to handle regexes as strings, like my $charclass = "[abc]";
FROGGS ahh
masak colomon: no, but it's pleasant to use Perl 6 to express thoughts, even mathematical ones.
PerlJam timotimo: except that's not a character class in Perl 6 ;)
colomon masak: I mean, if you claim S as your root definition and then pull in the additional definition of addition, you're asking to prove a + 1 = S(a), in perl 6. I guess you could code a peano theorem solver in p6....
jnthn PerlJam: It is if you use :P5 ;) 17:20
timotimo PerlJam: excuse me, i'm context switching too much to notice ;)
masak rn: my $one = -> $f, $x { $f($x) }; sub plus($m, $n, $f, $x) { $m($f, $n($f, $x)) }; say plus $one, $one, "S" ~ *, "0" # using church numerals 17:21
p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«SS0␤»
arnsholt rurban: That's extremely weird. Have you tried to apply the change I outlined to pmurias? 17:22
FROGGS timotimo: think of function calls and what not
masak colomon: no, I am asking to prove S0 + S0 == SS0
colomon: ...but I don't claim S as my root definition.
colomon: I'm fine with any definition which doesn't rest on addition.
jnthn r: multi infix:<+>('S0', 'S0') { 'SS0' }; say 'S0' + 'S0' 17:23
p6eval rakudo 4fb07b: OUTPUT«SS0␤»
masak :P
17:23 kaleem_ left
masak jnthn: that... is the most *meaningless*... 17:23
jnthn
.oO( I guess I didn't win today's mini-challenge... )
17:24
rurban arnsholt: not yet 17:25
colomon masak: then it's just S0 + S0 = S(S0 + 0) = S(S0) = SS0. But that's really awkward to express in p6
masak jnthn: you're the guy in the group who, given the challenge to be the first to shout out an aquatic animal, shouts out "an aquatic animal!" :P
colomon: I've done it three times now in the backlog ;) 17:26
PerlJam masak: By careful selection of axioms, you can prove anything. jnthn was just being efficient. :)
masak colomon: using sets, regexes, and functions.
PerlJam: certainly more efficient that Russell and Whitehead ;)
arnsholt remembers being shown how to do addition with Church numerals in Prolog 17:27
Remarkably clever and a bit stupid at the same time =D 17:28
17:29 spider-mario left
masak arnsholt: the big "aha!" moment for me with Church numerals and Church booleans came recently when I re-read TaPL. 17:29
PerlJam masak: have you read Douglas Hofstadter's "Fluid Concepts and Creative Analogies"?
17:30 spider-mario joined
arnsholt TaPL? 17:30
masak arnsholt: they're both really small "machines" that programmatically express the intent of a number or a boolean.
arnsholt: www.cis.upenn.edu/~bcpierce/tapl/
17:30 stevan_ left
masak PerlJam: yes, I believe I have. though it was a while ago. 17:30
arnsholt Hmm. That looks like an interesting book 17:31
masak maybe I should re-read it.
17:32 kst` joined 17:34 kst left
jnthn pmurias: If you didn't get an answer on "what changed" yet, I think it was just the REPR data that P6int and P6num write out. 17:38
17:38 thou_ joined
jnthn (in the serialization thing) 17:38
17:41 thou left
jnthn FROGGS: On 77616, I know it completely makes sense from an implementation or even a "what it does" point of view but it's probably too surprising from a user point of view. 17:42
Unfortunately, I don't have much idea of a good fix.
rurban parrot master: --output=src/stage1/gen/nqp-mo.pir push_pmc() not implemented in class 'ByteBuffer' 17:43
17:44 fgomez left
FROGGS jnthn: I'd like to know what the user would expect 17:44
jnthn FROGGS: Captures to happen in the order they textually appear in the source.
FROGGS brb, lunch 17:45
jnthn FROGGS: Well, not happen. But be numbered in the resulting Match
17:45 domidumont left, domidumont joined 17:46 zby_home joined
masak "annual programming puzzles that get broken within a few months" -- without this having really to do with me, I'm a little offended. 17:51
arnsholt I'm offended by most of the references to Perl 6 in that post, to be frank
masak well, jnthn's all-caps in the backlog pretty much sums it up. 17:52
and I actually prefer chromatic when he's bitter about the Parrot thing, as opposed to just ironically lashing out at nothing.
colomon masak: pointer?
masak colomon: www.modernperlbooks.com/mt/2013/02/...epalm.html
follow that link at your own blood pressure.
colomon saw that, I meant to jnthn's response # masak++
already read it, alas
masak colomon: irclog.perlgeek.de/perl6/2013-02-07#i_6423589 17:53
anyway. it's 2013, and we're actually growing alternatives to Parrot. this is good. 17:54
17:54 Pleiades` left
japhb At the risk of sounding like I want to be in my own bubble, could we all please start ignoring the diatribes of certain embittered folk? 17:54
masak oh, I was just going to write something like that.
colomon chr. sort of has a valid notion -- he's not going to work in p6 until someone else proves it's great. That's certainly his prerogative, but it's not in any way helpful.
17:55 ggoebel_ joined
japhb I mean, he's welcome to keep smarting from old wounds, but I'd rather just make progress and heal through solving the real problems. 17:55
masak japhb: +1
17:55 nebuchadnezzar left 17:56 dakkar left
masak I also fully agree with irclog.perlgeek.de/perl6/2013-02-07#i_6423648 17:56
it's not even so much that Parrot wasn't any help at all -- it was quite useful for a number of years. 17:57
skids As far as P5 branding they should just fo the "Ruby on Rails" route and bundle all the Modern Perl modules up into one use statement and/or commandline flag and/or default and call it something and market that.
masak but Rakudo is outgrowing Parrot.
ggoebel_ phenny: tell jnthn are you also aware of wiki.jvmlangsummit.com/Main_Page ? -Links to presentations and slides from previous years are linked to from openjdk.java.net/projects/mlvm/jvmlangsummit/
phenny ggoebel_: I'll pass that on when jnthn is around.
masak skids: sounds like a distribution to me. like ActiveState Perl or Strawberry Perl. 17:58
dalek p: 6b5778e | jnthn++ | src/core/NQPRoutine.pm:
Toss a bit of ported C that turned out unused.
17:59
17:59 Pleiades` joined
colomon I figure the best response to chromatic is just to make great software in Perl 6. That's why I started porting the ABC module back to Rakudo this morning.... 18:01
PerlJam colomon++ 18:02
skids masak: like that, but without actually needing to "use" everything in the bundle. 18:03
masak rn: multi plus(@a, []) { @a }; multi plus(@a, [$b, *@b]) { plus [@a, $b], @b }; say elems plus [i], [i] # using multis and nested sigs
p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2␤»
masak four solutions. I think there's a nice blog post in here.
arnsholt Ooooh, JavaZone call for speakers is finally open =D 18:04
And the deadline is April 15
bbkr__ FROGGS: in "abc" ~~ /a ~ (c) (b)/ match order is reversed and capture order should follow this logic so $0 should be "c". I haven't found any explicit spec phrase describing this case that but TimToady said it is a bug :)
arnsholt I'm definitely going to have to submit a talk
masak bbkr__: definitely a bug. 18:05
bbkr__: the parentheses are numbered by their location in the regex.
bbkr__: not by match order.
PerlJam bbkr__: and this has *always* been the case, even before Perl 6 :)
jnthn Difference in Perl 6 being that they're more tree-ish than flat and some end up as an array 18:06
phenny jnthn: 17:56Z <ggoebel_> tell jnthn are you also aware of wiki.jvmlangsummit.com/Main_Page ? -Links to presentations and slides from previous years are linked to from openjdk.java.net/projects/mlvm/jvmlangsummit/
jnthn ggoebel_: Thanks for that link...I'm sure I read some of those before having found them separately 18:07
ggoebel_: But it's nice to have the collection of links and more to read :)
arnsholt jnthn: Are there any tricks I can use to reliably trigger a Parrot GC run? 18:09
18:13 nebuchadnezzar joined, bbkr__ left 18:20 SmokeMachine left 18:21 fhelmberger left 18:23 SmokeMachine joined
TimToady usually the best way to do distributed cache invalidation (under shared memory, anyway) is with an incrementing generation counter 18:28
that's how Perl 5 does cache invalidation
though the most important thing to prevent monkeypatching is to allow classes to be closed at CHECK time unless someone requests they stay open 18:30
18:30 fgomez joined
jnthn arnsholt: There's a pir op that will do it...sweep, iirc 18:31
dalek p-jvm-prep: 23756ca | jnthn++ | / (4 files):
Chase REPR protocol and serialization changes.
masak rn: say chars "一" ~ "一" # arguably, this is a solution, too.
p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2␤»
jnthn .u 一 18:33
phenny U+4E00 CJK UNIFIED IDEOGRAPH-4E00 (一)
jnthn oh, it's...one.
18:34 SamuraiJack_ left, stevan_ joined
masak ;) 18:35
it works with other characters, too.
rn: say chars "①" ~ "①"
p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2␤» 18:36
jnthn rn: say chars "" ~ ""
p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2␤»
18:37 japhb_ joined
masak so one CAT FACE WITH TEARS OF JOY plus one CAT FACE WITH TEARS OF JOY also equals 2 ;) 18:40
TimToady rn: say chars '𪚥' ~ '𪚥' 18:41
p6eval niecza v24-19-g5f89e5f: OUTPUT«4␤»
..rakudo 4fb07b: OUTPUT«2␤»
TimToady that should be 8, since each of those is 4 dragons 18:42
masak *lol*
I presume that is a Nieczabug grounded in the fact that .NET can't Unicode?
TimToady UTF-16 damage I think
18:42 Chillance joined
masak right. 18:42
Java has the same issue. 18:43
jnthn Yeah, we're gonna have that on the JVM until we get NFG done.
TimToady wonders how much support there is in JVM for ropes of integers of various sizes 18:45
masak .oO( No Frivolous Garbage )
TimToady s/in JVM/available with JVM/
dalek p-jvm-prep: 1d63164 | jnthn++ | / (2 files):
First pass at nqp::istype.
18:49
p-jvm-prep: bd77eed | jnthn++ | nqp-src/NQPCORE.setting:
Start pulling in some of the multi-dispatch code.

This isn't the dispatcher itself, just the candidate sorting code. Need to implement some of the extra ops before multi-dispatch will actually work.
jnthn thinks he needs some dinner before he works any more... :) 18:50
[Coke] Order in, bill it to the channel. :)
jnthn [Coke]: Oh, I've eaten out so much in the last few days while up in Stockholm that I'm quite happy to nom something simple at home today :) 18:51
18:57 MayDaniel joined 19:02 MayDaniel left
imarcusthis jnthn: your work is giving me actual hope of having perl6 in production. 19:09
jnthn: any idea how big the footprint of the runtime of perl6 on top of jvm would be? Would it be feasible for Android development, for instance? 19:10
19:16 GlitchMr- left 19:17 GlitchMr joined
rurban slow startup, fast run-time 19:21
i.e. not suitable for scripts, but good for running server or long-running apps 19:22
imarcusthis rurban: not suitable for mobile apps either then. 19:24
rurban well, I guess on android the jvm will startup much faster
because it is hot
jnthn My first guess was that the question was actually about memory footprint... 19:25
In which case, anything I could give would be a wild guess at this point.
imarcusthis yeah, the jvm does. the question is the layer on top. For instance, jruby has a rather large one, so it gets a slow startup time if you try to build an android app on it. clojure is much smaller. 19:26
jnthn: that's understandable.
rurban My guess is even bigger than jruby
jnthn rurban seems happy to guess wildly though :)
rurban yes :)
imarcusthis yepp :)
19:32 SmokeMachine left
TimToady wonders how much you can bring in lazily on the first eval 19:40
(assuming precompilation)
19:41 sftp left, grondilu left
TimToady we've intentionally designed p6 with very few required globals 19:41
19:42 sftp joined
TimToady also wonders how much we can save by caching precompiled bits at a finer granularity than the file, where caching the whole file is just a degenerate case 19:44
there are really only three tricky bits to that: 1) establish the identity of a piece of unique code, 2) establish the identity of each unique slang we're using, and 3) establish the relationship between those identities 19:46
19:46 shinobicl joined
tadzik oh, jnthn, I left you some pull requests btw 19:47
at least one of them is necessary :)
TimToady postulates that most failure modes would come down to failure of identity somehow
shinobicl hi! i'm making a presentation in my company, to introduce TDD for a big proyect we're starting. Yes it's sad many shops don't use TDD yet :(
i remember a nice graphic of the advance in the perl6 test suite
where i can find the current one? 19:48
i want to use it as an example in my presentation
19:49 SmokeMachine joined
TimToady you might be reduced to searching the irclogs 19:50
diakopter also, those graphics have several interpretations
19:50 diakopter sets mode: -o diakopter
shinobicl oh well... i'm gonna use one i found from 2009 19:50
perlgeek.de/blog-en/perl-6/musings-...chart.html 19:51
PerlJam shinobicl: TDD isn't appropriate for every problem either :)
shinobicl on, in this case it applies. There are some ancient APIs and we have to keep compatibility with them
19:52 spider-mario left, SmokeMachine left
shinobicl s/on/oh/; 19:52
diakopter note how the "spec" portion of that graph doesn't change much except at two discontinuities
shinobicl: without more granularity, we can interpret that as more passing tests were added, not more of the spec was completed 19:53
we still don't know how much of the original failing spec tests are now passing 19:54
(or are no longer valid)
19:55 zby_home left
shinobicl then is a much better example. Our customers are specially fond of making more and more requirements. So having a more specs through time is a realistic view of what happens here. 19:56
well, the old graphic will do... thanks :)
19:57 jeffreykegler left
diakopter note: I'm not saying more of the spec wasn't completed. ;) just that we don't know about those original 3000, so you can't use that portion to show unregression 19:58
I mean, I suppose someone could run current rakudo against the spectest from 2008-05 19:59
20:02 atrodo_ joined, atrodo_ left 20:10 Chillance left, Chillance joined
colomon is quite upset that chromatic is spreading p6 FUD on twitter. 20:13
tadzik is quite upset with #perldrama
20:15 domidumont left 20:16 SmokeMachine joined
tadzik I agree on twitter.com/chromatic_x/status/299...5258256384 though 20:16
20:16 atrodo_ joined, uvtc joined, atrodo_ left
PerlJam colomon: what fud this time? 20:16
20:17 cognominal joined
dalek ecza: 93138cc | (Tobias Leich)++ | src/NieczaActions.pm6:
fixed typo in warning "conext" -> "context"
20:17
tadzik and he even mentions panda. I'm flattered
colomon PerlJam: I'm particularly thinking of twitter.com/chromatic_x/status/299...4180018176 20:18
tadzik Well there *was* Lorito, but that was after Parrot was already doomed by Rakudo and developers were leaving. LOL
doomed by rakudo, eh
waste of time reading this, and yet I continue
uvtc Do both Rakudo and Rakudo Star now use "YYYY.MM" for their release version strings? 20:20
tadzik I think so
uvtc I remember at some point regular ints were being used. As in, "release #42".
PerlJam Rakudo still does "release #42" AFAIK. 20:21
(at least it did at the last release *I* did :)
uvtc I mention it because: I was just looking at a Rosetta Code example. The example said, "works with Rakudo version #xx". Seems like those would be more useful if they said "works with Rakudo version 20xx.xx".
_sri the jvm might start slow, but you can use hacks like drip to make it look faster github.com/flatland/drip 20:22
20:23 jeffreykegler joined
uvtc Ok. Here. So, github.com/rakudo/rakudo/blob/nom/...ce/2013.01 is a file which, inside, says "release #60 ("Sonoma")". Seems like that would be much more useful if it just plainly said "release 2013.01". 20:23
20:24 jeffreykegler left
masak tadzik: yes, Parrot was clearly doomed by Rakudo. it scared away all the other HLLs that it had already... um. 20:24
20:24 SmokeMachine left
tadzik Apparently, being a VM for everyone was more important that being the best VM for Perl 6. And so the only customer went away 20:24
PerlJam tadzik: something like that.
atrodo tadzik: Wasn't that the stated goal of parrot? 20:25
masak note: we're not migrating *away* from Parrot. we're just targeting a good VM in addition.
PerlJam It's the curse of trying to design for an imaginary future.
atrodo (to be a vm for everyone)
tadzik atrodo: yes, and it failed at that goal
it's what Tene++ said more than once and more than twice: no one cared about maintaing language interop
so the first big goal died 20:26
PerlJam atrodo: sure, but the way you do that is be a really good VM for 1 lang, then another and another until you have "everyone" :)
masak "Parrot is a foundering project on top of a wonderful vision" irclog.perlgeek.de/perl6/2011-08-23#i_4316480
Tene I did say that more than once. That's accurate.
masak Tene++ # pioneering language interop 20:27
Tene blogs.gurulabs.com/stephen/2009/05/...ading.html
tadzik yeah
that was thrilling
masak Tene: I would like to see that goalpost hit again some day. it's just that it won't happen on Parrot, realistically.
20:27 sqirrel left
uvtc Dart has a little article on their site about the value of using a general-purpose VM vs. building their own custom one: www.dartlang.org/articles/why-not-bytecode/ . Not sure how much of that is relevant to the parrot discussion. 20:29
atrodo From where I stand, it looked like Parrot gave up on language interop to focus on rakudo, then it floundered 20:30
masak atrodo: that was after it decided to target "everyone" instead of Perl 6 for several years, though.
Tene atrodo: There was only one person who ever worked on language interop in Parrot.
masak atrodo: part of the story is that Parrot has had several leaders/architects over the years. with different goals. 20:31
tadzik atrodo: precisely. And then it said "we actually want to target everyone, not rakudo"
uvtc I had the same impression of Parrot as what tadzik describes above ("being a VM for everyone").
tadzik and so rakudo's goals and parrot's goals diverged
atrodo Tene: Which is disappointing, because that's why I got interested in parrot
Tene atrodo: Me too.
[Coke] atrodo: it was floundering before that.
tadzik parrot didn'd do everything to keep rakudo, so rakudo started to figure out its own solutions
(as I see it)
FROGGS nqp: my @a := ("a", "b", "c"); say("abc" ~~ /@a+/)
p6eval nqp: OUTPUT«abc␤»
[Coke] because in trying to please everyone, it was not really good anything. 20:32
20:32 hoelzro|away is now known as hoelzro
masak tadzik: yes. 20:32
[Coke] good *at*
FROGGS r: my @a = ("a", "b", "c"); say("abc" ~~ /@a+/)
p6eval rakudo 4fb07b: OUTPUT«#<failed match>␤»
FROGGS nqp: my @a := ("a", "c", "b"); say("abc" ~~ /@a+/)
p6eval nqp: OUTPUT«abc␤»
FROGGS cool
masak tadzik: but even given that, chromatic was and is overreacting, framing "adding another VM" as "actively migrating away". 20:33
atrodo So does that mean anything that has the same goal of parrot is doomed from the beginning?
masak tadzik: when he can't do that, he frames it as "write a compiler or to port a half-finished project halfway to a new virtual machine"
PerlJam atrodo: not necessarily, though I'd say the probability is high. 20:34
masak tadzik: which comes across to me as "I spent so many years on Parrot, and now you go and ruin it, you... meanies!" 20:35
PerlJam atrodo: but, again, it depends on how they go about accomplishing the goal.
diakopter masak: let's not sugar-coat it. parrot will be left behind rather quickly.
[Coke] hurm. reply to chromatic on twitter, or update the README to explain why not every implementation may not pass all the tests on any given day.
atrodo masak: Honestly, I think he's just as frustrated at parrot
PerlJam diakopter: maybe it will spur some good development in parrot-land? 20:36
colomon diakopter: but if it is left behind, it will be because it couldn't compete with JVM.
atrodo PerlJam: Without a major undertaking with tuit's, even by one person, parrot's probably done
Well, that's the way I feel anyways
colomon diakopter: note that I'm not saying it cannot compete with JVM. I'm just saying for sure Rakudo will not abandon Parrot if Parrot out-performs JVM. 20:38
masak diakopter: I agree. Parrot will be left behind. but the *act* of *adding another VM* shouldn't cause such panic if all was right with the original VM.
diakopter stops breathing for a minute
(re colomon)
masak colomon: I... 20:39
colomon: that comes off as "very optimistic" at this point.
uvtc Are there plans for creating a separate/different Rakudo distribution for Rakudo + JVM? 20:40
diakopter a VM with 50,000 man hours is going to outperform one with a million?
masak I mean, not only is Parrot crap at backward-compat, I/O, GC, threads, and API documentation, it's slooooooooouuw.
atrodo diakopter: So you're saying v8 can't be faster than JVM?
skids well that depends what percent of those man-hours were focused on performance :-)
diakopter <sigh>
PerlJam uvtc: probably the default VM will just switch to be JVM with Parrot as an option.
diakopter atrodo: no, it can't. at what the JVM provides. 20:41
at implementing javascript, yes.
uvtc PerlJam: Ah, thanks.
colomon masak: I know which way I'd bet. I'm just pointing out that if Parrot loses out here, it will be because it isn't as good for this purpose. 20:42
masak exactly.
I remember the parrotsketch when chromatic first panicked about this. 20:43
diakopter as soon as someone realizes you can build nqp+rakudo in 1/8 the time on another VM, the person will flip parrot's bit.
masak already at that point, I couldn't but think that he didn't *want* to find out whether a VM such as the JVM would be a better fit for Rakudo.
as if the knowledge itself would be harmful.
"let's not go there! it won't lead to anything good!" 20:44
the JVM (or any other mature VM) representing some kind of dangerous knowledge that Man should never go near. 20:45
colomon Let me just say, based on my Niecza experience, that having Rakudo on JVM available would be a good thing even if Parrot can somehow outperform JVM.
masak s/even if (.*)//
colomon: Parrot can't outperform the JVM.
colomon: a cheetah cannot outperform the speed of sound. 20:46
diakopter at _anything_ that can be measured.
uvtc masak: <Gandalf>There are few who can.</gandalf>
tadzik I'm amused how chromatic is picking out IRC lines and responding to them on twitter
diakopter chromatic: your mom is a your mom joke. ;) 20:47
masak tadzik: chromatic has "quit" IRC :P 20:48
masak waves to chromatic
diakopter we need a chromatic_x twitter relay bot
masak oh god no 20:49
jnthn I...I'm not sure we do. :)
tadzik ahaha
masak "we missed him so much, we rebuild him as software"
colomon masak: I'm trying not to frame this as a "Parrot sucks" discussion. If for no other reason than I find it hard to believe there are people out there who'd prefer Rakudo to stick strictly to Parrot even though they don't think it will ever offer the same performance JVM does.
diakopter I...can't believe either of you thought I was serious.
masak rebuilt*
colomon: understood. it's just that your framing doesn't pass the basic test of credibility ;) 20:50
diakopter: any sufficiently advanced irony is indistinguishable from sincerity. 20:51
PerlJam heh
diakopter s/was/was or even could possibly be/ 20:52
masak diakopter: I've never met you in meatspace. 20:53
diakopter: I don't hear tone of voice when I read your IRC utterances.
diakopter ok. I should have ended it with a ! or ;)
also, s/your mom joke/<insert your mom joke here>/ to be clear 20:54
masak what's the rule called that says "you can't tell if someone on the internet is a kook or is playing one really well"?
tadzik "On the internet nobody knows you're a dog"?
Tene masak: Poe's Law
masak right!
"Without a winking smiley or other blatant display of humor, it is impossible to create a parody of fundamentalism that someone won't mistake for the real thing." 20:55
like how people can't tell troll edits on ConservaPedia from honest edits ;)
PerlJam masak: so ... is chromatic a kook or playing one really well? ;> 20:57
skids Wasn't there an inverse as well -- eventually a fundamentalist community will turn on its main proponents because they think they are being satired?
PerlJam wonders if "kook" counts for chromatic's derailing bingo card. 20:58
20:58 cognominal__ joined 20:59 cognominal left
diakopter masak: I really don't think tone of voice would have helped. I would have said it quite sincerely/excitedly in person, for even more irony. I guess I assumed you would have to assume I'm a GDFMoron for me to actually be serious. You know, like an in-joke. 21:02
21:02 kaare_ left 21:03 cognominal__ left
swarley I was thinking about Go as a target language 21:03
masak PerlJam: I don't think chromatic is a kook. I think he's quite a good developer. he got dissatisfied with Rakudo and Parrot at some point, and he is determined to tell the world about it, even at the expense of the people in those projects.
uvtc Last time I built R*, I used `perl Configure.pl --gen-parrot --prefix=/home/<you>/opt/rakudo-star-20yy.mm`. That --prefix part is no longer required (now that R* installs into its own "install" dir), correct?
21:04 cognominal__ joined
masak diakopter: for me, deciding whether you were serious or not didn't factor into it. my initial reaction was still "oh god no" :) 21:05
diakopter masak: that's just not accurate. I can see how "trying to be helpful" is an internally-rational justification/motivation
uvtc Also, is the "--gen-nqp" required for building R*? (The readme doesn't mention it, but the rakudo.org/how-to page does.)
diakopter telling the world about dissatisfaction isn't the goal 21:06
jnthn uvtc: It's not needed; you'll get an NQP built for you with just --gen-parrot
uvtc: I think the --prefix just matters if you care where it ends up building it. Note it's not relocatable.
diakopter (also, I'm not claiming the trying to be helpful is failing)
uvtc jnthn: thanks. Not sure why I previously used --prefix.
ggoebel_ phenny: hug everyone 21:07
jnthn uvtc: Well, maybe you knew where you wanted it to install ;-)
skids
.oO(maybe time rakudo/INSTALL.txt got a quick brushing)
21:08
uvtc jnthn: I'm guessing I just wanted it installed in the simplest/easiest way possible.
masak diakopter: I'm sorry. I'm just not very good at explaining chromatic's motivations.
21:08 cognominal joined
tadzik hugme: hug everyone 21:09
hugme hugs everyone
uvtc Me so happy.
Me want to cry.
diakopter it must feel nice to be discussed at length as a third person :)
21:09 cognominal__ left
uvtc has watched too much Seinfeld. 21:09
tadzik I'm so happy I
damn you, return key
I'm so happy I'm renaming myself to tadzik 7 21:10
masak pbfcomics.com/115/
tadzik :D
skids hugme: hug hugme
hugme hugs hugme
skids Aw LTA 21:11
tadzik hugme: are awesome
hugme: hug are awesome
hugme hugs are
tadzik pfft!
masak you need to use non-breaking spaces.
uvtc skids: No, I think the install doc (READM) for R* looks good. I was just confused.
README*
tadzik doy++ 21:12
uvtc rakudo.org/how-to-get-rakudo/ mentions --gen-nqp, but maybe that's for building Rakudo, not R*.
skids It's just that rakudo/INSTALL.txt doesn't explain gen-nqp at all. 21:13
uvtc skids: btw, I only see a README in there --- no INSTALL.txt file. 21:14
readme contains install instructions.
masak hugme: hug are awesome
skids Because rakudo is a subdir in the * ditsro.
hugme hugs are awesome
diakopter hugme: foo&nbsp;bar
hugme: hug foo&nbsp;bar
21:14 stevan_ left
hugme hugs foo&nbsp;bar 21:14
diakopter \o/
masak diakopter: " " <-- non-breaking space 21:15
diakopter: am I misreading irony again? :P
diakopter I need a macro for "I can't believe you thought I was serious"
masak hey, I was quicker this time in discovering it!
uvtc &nbsp;'s bend like a reed in the wind.
skids Emoticon early, emoticon often. 21:16
felher fun with regexes: www.coinheist.com/rubik/a_regular_c...d/grid.pdf 21:17
skids something tells me the next p6cc will involve solving one of those. 21:19
jnthn felher: Oh wow...
felher jnthn: I can only recommend it. Was quite funny to solve :)
21:22 Pleiades` left 21:23 cognominal left
PerlJam jnthn: It's from www.mit.edu/~puzzle/ 21:24
21:25 pupoque joined
felher PerlJam++ #thnx, didn't know that. :) 21:25
21:28 Pleiades` joined
uvtc Currently, when building R*, the "Configure" step builds both Parrot and NQP, correct? 21:29
skids Yes. 21:30
jnthn uvtc: Yes
21:30 cognominal joined
uvtc jnthn: grazie. 21:30
Just finished the R* `make` step. Would be nice if it gave me a success message at the end. 21:31
I got: 21:32
/home/john/opt/rakudo-star-2013.01/install/bin/parrot -o RESTRICTED.setting.pbc src/gen/RESTRICTED.setting.pir
./perl6 --target=pir --output=lib/lib.pir lib/lib.pm6
./perl6 --target=pir --output=lib/Test.pir lib/Test.pm
./perl6 --target=pir --output=lib/Pod/To/Text.pir lib/Pod/To/Text.pm
make[1]: Leaving directory `/home/john/opt/rakudo-star-2013.01/rakudo'
FROGGS well, make: Leaving... is success :o)
skids I thought it used to. 21:33
uvtc The "make[1]" makes me think it's returning with status 1 (rather than 0 == success).
FROGGS but some instructions would be nice
skids (used to say something like "you may now .... make install")
uvtc (regardless, the `make test` reports "Result: PASS" at the end. Which is nice.)
skids Note the install involves a lot of compiling of P6 code to pir. 21:34
geekosaur no, "make[1]" means that the make directly under the top level one finished 21:37
that is, if one of your makefile rules does "make ..." then the sub-make will identify as "make[1]", and if that also does a "make ..." then the new one will identify as "make[2]", etc. 21:38
nesting depth
uvtc geekosaur: Ah, thanks.
Still would be nice to see a little, "There. That wasn't so bad. Building has completed." message. :)
geekosaur: Yeah, the `make rakudo-test` ends the same way (after reporting PASS). 21:39
21:43 uvtc left
skids notices decrease in IRC traffic after posting of rx crossword puzzle. 21:43
timotimo skids: i tried it a while ago and was not very effective 21:50
geekosaur not even sure what it's asking, but focus is very much elsewhere atm 21:51
timotimo it asks you to put in letters so that the regexes from the sides match in all intersections 21:52
geekosaur ah.
21:54 PacoAir left 21:58 cognominal left 22:01 cognominal joined
timotimo god, the twiter website is godawful for following conversations 22:02
22:03 benabik_ left, skids left 22:04 amurias left 22:09 cognominal left 22:10 shinobicl left 22:14 cognominal joined 22:24 cognominal left
dalek p-jvm-prep: 07feece | jnthn++ | / (8 files):
Implement capture manipulation ops.

These will be used by multiple dispatch.
22:31
p-jvm-prep: c8228f6 | jnthn++ | / (2 files):
nqp::invokewithcapture; stub multi cache ops.

The multi-dispatch cache can come later; may be a good LHF task since it's porting something that already exists, mostly.
p-jvm-prep: ac11f0c | jnthn++ | nqp-src/NQPCORE.setting:
Pull in rest of multi-dispatch code.
p-jvm-prep: 4914292 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
Fix a handful of thinkos.

With this, multi-dispatch just about works.
masak jnthn++ # doing stuff
22:31 hoelzro is now known as hoelzro|away
timotimo sweet 22:32
22:32 ggoebel_ left
timotimo maybe perl6 isn't going to die after all! 22:32
FROGGS hehe
moritz nr: die "OH BUT I'M DYING RIGHT NOW!!!"
p6eval rakudo 4fb07b: OUTPUT«OH BUT I'M DYING RIGHT NOW!!!␤ in block at /tmp/Spkdibx8V0:1␤␤»
..niecza v24-20-g93138cc: OUTPUT«Unhandled exception: OH BUT I'M DYING RIGHT NOW!!!␤ at /home/p6eval/niecza/lib/CORE.setting line 1435 (die @ 5) ␤ at /tmp/l2VdgT_9Dt line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4227 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.…
jnthn is somewhat relieved that he can copy-paste about 250 lines of code that topo-sort multi-dispatch candidates and do the dispatch from NQP on Parrot into NQP on JVM, and have it all work pretty much right off once he gets the ops ported over correctly. 22:34
22:34 cognominal joined
timotimo :) 22:34
colomon jnthn++ # making cool stuff is easily the best possible response to chromatic 22:36
jnthn Now to figure out why it gets complicated things correct and easy things wrong... 22:37
timotimo computers have very strange interpretations of what "complicated" and "easy" mean :D 22:40
jnthn oh... 22:41
I think I may see it.
22:43 pupoque left
dalek p-jvm-prep: 2974b29 | jnthn++ | nqp-src/NQPCORE.setting:
Missing null check.
22:52
p-jvm-prep: 88dc081 | jnthn++ | t/nqp/51-multi.t:
We now pass 51-multi.t.
timotimo ql 22:54
masak \o/
colomon \o/ 22:55
22:57 cognominal left
jnthn To whoever had the segfault earlier: I think I just found a GC marking bug introduced into P6opaque. 22:58
22:58 donaldh joined 23:04 cognominal joined 23:09 bluescreen10 left 23:12 stopbit left 23:14 cognominal left
colomon jnthn: sorry to bother you with this when you are doing good work, but any thoughts on how to make { '('(<digit>+) {} [<t_elem>* <stem>] ** { +$0 } <slur_end>? } work in Rakudo? It's the only thing stopping ABC from passing all its tests there now, so far as I know. 23:15
23:15 cognominal joined
masak colomon: which part of it doesn't work? 23:15
jnthn ** with a closure is NYI
masak oh! 23:16
colomon yeah, that part
jnthn I think you may be able to make it with a * and an assertion or something like that.
*fake
masak does it work with a variable?
jnthn No, that's Equally Hard
masak oh, ok.
figures :)
jnthn As in, if we implement one the other is easy ;) 23:17
masak right.
I guess both of those offset some DFA-ness of the rule.
jnthn It kinda needs some kinda quantdyn subtype of QAST::Regex.
colomon it's easy enough to make it work for given N, but the general case is prettier.
jnthn Which, yes, is not declarative. :)
colomon it's not a show stopper at all, but going back to the 3-tuplet 4-tuplet 5-tuplet version seems like a moral defeat in the context of the day. If you know what I mean. (ie I want it to work as well on Rakudo as it does on Niecza.) 23:19
masak .oO( bait deployed. will it work? ) :) 23:22
jnthn r: say '2 456' ~~ /(\d+) \s (\d)*? <?{ $1 == $0 }>/
p6eval rakudo 4fb07b: OUTPUT«「2 45」␤ 0 => 「2」␤ 1 => 「4」␤ 1 => 「5」␤␤»
jnthn r: say '1 456' ~~ /(\d+) \s (\d)*? <?{ $1 == $0 }>/
p6eval rakudo 4fb07b: OUTPUT«「1 4」␤ 0 => 「1」␤ 1 => 「4」␤␤»
jnthn r: say '3 456' ~~ /(\d+) \s (\d)*? <?{ $1 == $0 }>/
p6eval rakudo 4fb07b: OUTPUT«「3 456」␤ 0 => 「3」␤ 1 => 「4」␤ 1 => 「5」␤ 1 => 「6」␤␤»
colomon is mostly hoping for a clever workaround for now
jnthn Can you do something with that?
colomon maybe. 23:23
(making nom for family) 23:24
this is relying on (\d)* returning a parcel, right? 23:28
dalek p: 263332d | jnthn++ | src/6model/reprs/P6opaque.c:
Try and fix some offset calculations.

May deal with the 32-bit issue, but something still seems amiss.
23:29
jnthn colomon: Yes, it''d be more clearly written $1.elems == $0
23:32 cognominal left 23:33 skids joined
jnthn phenny: tell arnsholt I think some of the offset compuation wasn't quite right after all... Gave it a tweak in 263332d. 23:33
phenny jnthn: I'll pass that on when arnsholt is around.
23:36 sftp left 23:37 sftp joined 23:39 cognominal joined, sftp left
japhb_ Re: 263332d ... man, this is just begging for a macro that just increases a size to the next increment of an alignment. 23:41
sorear (x + 7) & ~7 ? 23:42
japhb_ sorear, assuming power-of-two alignment, sure. 23:43
(Yes, I am aware that it is rare not to have that be true.) 23:44
23:46 sftp joined
pmurias jnthn: we do you only use forceouterctx on nqp-java? 23:53
jnthn: what about nqp-js? 23:54
pmurias is unbitrotting it
jnthn pmurias: No, it's the standard op for doing it.
pmurias: Maybe I didn't get the Parrot-targetting code to use it yet, but there's no reson I can't. 23:55
Actually nothing under :jvm(...) is very JVM specific.
pmurias ModuleLoader.class is 23:57
jnthn pmurias: I menat QAST::VM.new( :jvm(...) ) 23:59