Camelia, the Perl 6 bug

IRC log for #perl6, 2013-02-07

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:02 pmurias general VM functionality
00:03 pmurias efficiency seems to imply avoiding Parrot's design ;)
00:34 diakopter oh, donaldh just left
00:37 diakopter NQP doesn't use Java's regex syntax for split :)
00:38 hypolin joined #perl6
00:45 swarley Okay, so I need to figure out first of all what a vtable's purpose is
00:46 * swarley opens vtables.pod
00:49 swarley Oh. So it's basically just a map of the functions?
00:52 diakopter phenny: tell donaldh I commented on your pull request's commit
00:52 phenny diakopter: I'll pass that on when donaldh is around.
01:22 anuby joined #perl6
01:22 monktopher joined #perl6
01:24 raiph__ swarley: http://irclog.perlgeek.de/​perl6/2013-02-03#i_6407438
01:26 swarley oh, so i don't have to bother with it?
01:33 swarley oh seeing a parrot free implementation would be very helpful
01:34 diakopter nqp-jvm...?
01:34 swarley That's a little more confusing though, because it looks so simple comparatively
01:36 swarley I'm so confused by lexotic in the source tree
01:37 swarley Its just a sixmodelobject, with an extra long
01:39 diakopter look at line 1030 of JASTCompiler.nqp
01:39 diakopter QAST::OperationsJAST.add_core_op('lexotic', -> $qastcomp, $op {
01:40 swarley ah
01:42 bluescreen10 joined #perl6
01:47 Targen joined #perl6
02:20 dayangkun joined #perl6
02:26 ggoebel A bit old, but interesting on the performance considerations for languages implement on jvm... http://blog.headius.com/2011/10/why-c​lojure-doesnt-need-invokedynamic.html
02:30 MikeFair joined #perl6
02:30 FROGGS joined #perl6
03:13 benabik joined #perl6
03:30 silug joined #perl6
03:37 dayangkun joined #perl6
04:18 fgomez joined #perl6
04:20 Pleiades` joined #perl6
04:29 MikeFair__ joined #perl6
05:00 preflex_ joined #perl6
05:03 SamuraiJack joined #perl6
05:17 xinming_ joined #perl6
05:45 crazedpsyc joined #perl6
05:49 araujo joined #perl6
05:52 rindolf joined #perl6
05:52 rindolf Hi all.
05:52 rindolf TimToady: hi! So why are you (= your wife and you) not coming to Israel, eventually?
06:02 sorear diakopter?
06:02 phenny sorear: 06 Feb 22:21Z <FROGGS> tell sorear that I updated the patch: https://gist.github.com/FR​OGGS/0a6f8e2d4053fb0ba5d0
06:02 phenny 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
06:05 diakopter hunh. I wonder what would cause nondeterministic behavior on mono
06:17 pupoque joined #perl6
06:26 jaldhar joined #perl6
06:26 FROGGS[mobile] joined #perl6
06:33 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 kaleem joined #perl6
06:35 _sri the perl5/perl6 renaming discussion is heating up http://www.xray.mpe.mpg.de/mailing-lis​ts/perl5-porters/2013-02/msg00267.html
06:37 bonsaikitten I don't see the problem ... ?
06:37 japhb _sri, if/when Rakudo is running on JVM, would you be willing at that point to do the Mojo porting in earnest?
06:37 japhb If not, what would you still be waiting on?
06:37 _sri if all the primitives i need are there, sure
06:38 sorear diakopter: I was just wondering what you noticed that prompted the +o
06:38 japhb IIRC you need async Socket and file IO, proper signal handling, and half-decent speed ... anything else?
06:40 FROGGS joined #perl6
06:40 FROGGS morning
06:41 sorear morning FROGGS
06:41 FROGGS hi sorear
06:41 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:42 FROGGS japhb: would it make sense to create an blockers.md where module authors like sri could add the things that they're missing?
06:43 FROGGS sorear: but I would suspect that if I make realclean, compile and run the spectest, that always the same tests pass/fail, no?
06:43 FROGGS or is niecza known to not support TEST_JOBS greater 1?
06:44 _sri japhb: unicode, poll() in addition to non-blocking sockets, md5/sha1, base64, hires time, (possibly zlib, openssl)
06:44 * FROGGS takes notes
06:46 moritz we have unicode, sha1 (though I don't know how well exposed), and sub-second time already
06:46 * japhb also taking notes
06:47 FROGGS I've read something about base64 too
06:48 _sri threads will be rather important too i suppose
06:49 _sri no clue how small things like automatic restart could work on the jvm
06:49 sorear FROGGS: it might be dicey
06:49 sorear use your own judgement
06:49 FROGGS sorear: k
06:52 japhb _sri, I would think automatic restart is a second-tier feature (really nice to have, but not critical for first phase implementation)
07:05 sorear what do we mean by automatic restart?
07:05 sorear SA_RESTART?
07:05 rindolf TimToady: got you - regarding Israel.
07:10 rindolf joined #perl6
07:12 _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:15 Pleiades` joined #perl6
07:17 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:38 quester joined #perl6
07:44 dalek niecza: 5f89e5f | (Tobias Leich)++ | lib/CORE.setting:
07:44 dalek niecza: "borrow" rakudos method Match.gist
07:44 dalek niecza: review: https://github.com/sorear/niecza/commit/5f89e5f608
07:50 sorear FROGGS++
07:50 FROGGS thanks
07:51 FROGGS 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:59 hulu joined #perl6
08:02 hulu r: sub A (Int $k, Int $g) { $k+$g;}; say A(3,1);
08:02 p6eval rakudo cc7e3d: OUTPUT«4␤»
08:02 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);
08:02 p6eval rakudo cc7e3d: OUTPUT«4␤1 digits starting with 3...␤»
08:03 hulu what does 'given A(2,1)' mean?
08:03 quester left #perl6
08:04 tadzik http://sourceware.org/ml/gli​bc-cvs/2013-q1/msg00115.html reminds me of a test in roast I once fixed :P
08:05 FROGGS nr: say "abc123def" ~~ /\w $( 11*11+2 ) \D/
08:05 p6eval rakudo cc7e3d, niecza v24-19-g5f89e5f: OUTPUT«「c123d」␤␤»
08:05 FROGGS nr: say "abc123def" ~~ /\w ( $( 11*11+2 ) ) \D/
08:05 p6eval rakudo cc7e3d, niecza v24-19-g5f89e5f: OUTPUT«「c123d」␤ 0 => 「123」␤␤»
08:05 FROGGS nr: say "abc123def" ~~ /\h/
08:05 p6eval rakudo cc7e3d, niecza v24-19-g5f89e5f: OUTPUT«#<failed match>␤»
08:05 FROGGS k
08:09 brrt joined #perl6
08:18 brrt hi #perl6
08:19 FROGGS hi brrt
08:19 brrt hi FROGGS
08:22 domidumont joined #perl6
08:24 nebuchadnezzar joined #perl6
08:24 domidumont joined #perl6
08:31 domidumont joined #perl6
08:41 sqirrel joined #perl6
08:41 GlitchMr- r: https://gist.github.com/GlitchMr/4729567
08:41 p6eval rakudo cc7e3d: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/2t8QLfKUjo:1â�¤------> [32mhttps[33mâ��[31m://gist.git​hub.com/GlitchMr/4729567[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix or meta-infixâ�¤        infix stopperâ�¤        stateme…
08:41 GlitchMr- r: https://gist.github.com/4729567
08:41 p6eval rakudo cc7e3d: gist not found
08:42 GlitchMr- Makes... uhmmm... sense
08:45 GlitchMr- my $page = `curl -s $program`;
08:45 GlitchMr- This is so flawed
08:46 GlitchMr- I'm going to fix this
08:47 GlitchMr- Would adding WWW::GitHub::Gist to evalbot be allowed?
08:50 daxim joined #perl6
08:53 odoacre joined #perl6
08:54 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 GlitchMr- I have WWW::GitHub::Gist package on my system (Arch), but I couldn't find one for Debian.
08:57 GlitchMr- It should be libwww-github-gist-perl, right?
08:57 moritz right
08:57 GlitchMr- https://aur.archlinux.org/pa​ckages/perl-www-github-gist/
08:57 moritz dh-make-perl automatically makes the right package name for you
08:58 GlitchMr- Oh wait, I forgot I made that package for Arch.
09:00 GlitchMr- Last time I've tried to make package using dh-make-perl, I have failed.
09:00 GlitchMr- But perhaps it's just because I couldn't use it properly.
09:00 moritz well, on Debian lenny it was buggy as hell
09:00 moritz on wheezy (testing) it worked fine for me every time
09:03 GlitchMr- Well, I will try to make Debian package
09:03 GlitchMr- First, I will try to install dh-make-perl on Arch.
09:03 GlitchMr- ... it has so many dependencies... could be fun
09:04 fhelmberger joined #perl6
09:11 moritz just run it on feather
09:12 GlitchMr- Makes sense
09:12 moritz I wouldn't try to create arch packages on Debian either :-)
09:14 GlitchMr- Some people do
09:15 GlitchMr- Except Arch packages are like 20 times less complex
09:15 arnsholt o/
09:15 GlitchMr- wow fun
09:16 GlitchMr- libperl-perl_5.17.3-1_i386.deb
09:16 GlitchMr- It made wrong package
09:17 GlitchMr- glitchmr@feather ~/libww> cpan2deb Some::Module
09:17 GlitchMr- I can blame myself, lol
09:18 bonsaikitten I think this is the point where I look down on anyone and make rude noises? ;)
09:18 GlitchMr- Can't locate Moo.pm
09:19 GlitchMr- Except libmoo-perl appears to exist. I guess it's simply not installed.
09:19 * moritz installs it
09:19 moritz ... 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:20 GlitchMr- Dependencies are so fun
09:20 GlitchMr- (actually, I could install it myself, but whatever)
09:21 GlitchMr- thanks
09:21 moritz ...except that I first had to fix the sudo secure_path thingy
09:21 moritz ... installed
09:21 GlitchMr- libwww-github-gist-perl_0.17-1_all.deb
09:22 GlitchMr- Sounds good
09:22 GlitchMr- Except the package appears to install in /home/glitchmr
09:22 GlitchMr- ...
09:22 moritz heh, do you have local::lib in effect?
09:22 GlitchMr- Yeah
09:23 GlitchMr- https://wiki.archlinux.org/index.php/Pe​rl_Package_Guidelines#Hardened_Example
09:23 GlitchMr- That could be of help
09:23 GlitchMr- To be exact export part
09:24 GlitchMr- export PERL_LOCAL_LIB_ROOT="/home/glitchmr/perl5";
09:24 GlitchMr- export PERL_MB_OPT="--install_base /home/glitchmr/perl5";
09:24 GlitchMr- export PERL_MM_OPT="INSTALL_BASE=/home/glitchmr/perl5";
09:24 GlitchMr- Sounds like local::lib
09:24 moritz ~moritz/libwww-github-gist-perl_0.17-1_all.deb installs to /usr/share/perl5/
09:25 GlitchMr- Well, ok, then
09:25 GlitchMr- So the package already exists now
09:26 moritz yes
09:26 GlitchMr- Anyway, I will go away now
09:26 GlitchMr- I will update evalbot later
09:28 * moritz upgrades some packages on feather
09:44 Psyche^ joined #perl6
09:49 jnthn morning o/
09:50 brrt hi jnthn
09:53 dakkar joined #perl6
09:56 jnthn ggoebel: Thanks for the link; I'm aware of that blog, it's full of interesting stuff :)
09:58 FROGGS hi jnthn
10:00 jnthn FROGGS: Plesae undo 1fb778f. Most HLLs don't have sigils/twigils.
10:00 jnthn Or at least many
10:00 jnthn And it should be handled differently in NQP and Perl 6 anyway I suspect
10:00 jnthn In Perl 6 they're probably meant to be a grammatical category really.
10:00 mathw joined #perl6
10:06 FROGGS jnthn: will do
10:07 Pleiades` joined #perl6
10:08 jnthn Thanks
10:08 jnthn FROGGS++ # fixing the $(...) handling otherwise :)
10:08 FROGGS I thought HLL is just there for Perl6, totally my fault ó.ò
10:09 jnthn FROGGS: No, it's meant to be more generic :)
10:10 jnthn So...where did I get to before I went to Stockholm for $dayjob task... :)
10:10 FROGGS getting old ehh? :P
10:11 moritz jnthn: you wanted to think about my idea for a callback when QAST::Compiler encounters a non-Want node in void context
10:11 moritz (among other things)
10:11 jnthn Ah, yes.
10:11 jnthn I was also playing with multiple dispatch in NQP.
10:11 jnthn And then blocked on a design issue, which my notebook seems to have an answer to, figured out on some train journey.
10:12 arnsholt And I failed at bootstrapping
10:12 jnthn moritz: My worry is that QAST::Compiler feels quite late.
10:13 jnthn But maybe that's not entirely a problem...
10:13 moritz jnthn: you mean, because we might invest time in optimizing the statements, and later we discard them anyway?
10:14 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 jnthn 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 jnthn I mean, the entire statement list handling of void context in QAST::Compiler is fairly well encapsulated in compile_all_the_stmts.
10:16 jnthn It's not so hard to steal that into visit_stmts or so.
10:19 jnthn arnsholt: I should probably figure that out before I work more on NQP...
10:19 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 spider-mario joined #perl6
10:21 hulu joined #perl6
10:22 * jnthn merges the arnsholt branch to see how it explodes
10:22 arnsholt jnthn: In hindsight, I should've done the REPR compose stuff directly on master and merged back, yeah
10:22 jnthn ah, yeah...
10:23 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:23 jnthn ok
10:24 kivutar joined #perl6
10:32 jnthn arnsholt: OK, got an NQP build with your branch merged in that passes tests. Going to try out Rakudo now.
10:32 arnsholt Cool
10:34 jnthn Is there a Rakudo branch I need to merge also?
10:34 arnsholt Oh, right. Yes, there is. Same name as the NQP branch
10:35 arnsholt (Updates to storage_spec.h and sixmodelobject.h)
10:36 jnthn And to the repr compose stuff :)
10:36 arnsholt Oh, durr. That's it, isn't it
10:36 arnsholt Weird that it didn't crop up when I was working on my branch though
10:37 * jnthn watches it do the setting and waits for it to fail
10:37 * nwc10 wonders why there is no mention of people working on PHP atop PyPy, depsite the project being very active: https://bitbucket.org/fijal/hippyvm
10:37 jnthn Gets quite a way in...
10:37 nwc10 optimist
10:38 salv0 joined #perl6
10:39 jnthn arnsholt: So, uh.
10:39 jnthn arnsholt: The build succeeded here.
10:39 arnsholt Weird...
10:39 * jnthn runs spectest
10:39 timotimo "wait. you're saying what i did works?!
10:40 arnsholt Push away, I guess. How did you go about it?
10:40 jnthn All I said was it didn't break the build ;-)
10:40 arnsholt Less broken than my attempts, which is a definite improvement =)
10:40 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 :)
10:41 arnsholt Huh. More or less what I ended up doing as well
10:41 jnthn Oddness
10:42 arnsholt Or at least what I intended to do. We'll see when I look at the commits
10:43 arnsholt Oh, you should probably bump NQP_REVISION since you've merged the Rakudo branch
10:43 arnsholt (If you haven't already)
10:44 jnthn Yes, I shall before I push :)
10:45 arnsholt Good, good
10:45 jnthn spectest looks good
10:45 arnsholt Good, good. Odds are I did something weird, then =)
10:45 dalek Heuristic branch merge: pushed 42 commits to nqp by jnthn
10:46 dalek rakudo/nom: f7a5a2f | (Arne Skjærholt)++ | src/ (4 files):
10:46 dalek rakudo/nom: Start integrating with native size support in NQP.
10:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f7a5a2f3b7
10:46 dalek rakudo/nom: c7fe112 | (Arne Skjærholt)++ | src/Perl6/Metamodel/NativeHOW.pm:
10:46 dalek rakudo/nom: Fix braino. NativeHOW sent bad data to the REPR compose.
10:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c7fe112410
10:46 dalek rakudo/nom: e079812 | (Arne Skjærholt)++ | / (12 files):
10:46 dalek rakudo/nom: Merge branch 'nom' into dyncall-sized-num
10:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e0798124ca
10:46 dalek rakudo/nom: 3b135f5 | (Arne Skjærholt)++ | src/Perl6/Metamodel/NativeHOW.pm:
10:46 dalek rakudo/nom: Make NativeHOW set float as well as integer bitsize.
10:46 dalek rakudo/nom:
10:46 dalek rakudo/nom: Since NativeHOW is used for all native types (int, num, str) we don't know a
10:46 dalek rakudo/nom: priori whether we're setting the bitwidth of an int of a float. So we set
10:46 dalek rakudo/nom: both.
10:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3b135f58f1
10:46 dalek rakudo/nom: 80dc914 | (Arne Skjærholt)++ | src/binder/sixmodelobject.h:
10:46 dalek rakudo/nom: Update sixmodelobject.h.
10:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/80dc914c06
10:46 dalek rakudo/nom: e59ba28 | jnthn++ | src/ (4 files):
10:46 dalek rakudo/nom: Merge remote-tracking branch 'origin/dyncall-sized-num' into nom
10:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e59ba28f35
10:46 dalek rakudo/nom: fc3f0d8 | jnthn++ | tools/build/NQP_REVISION:
10:46 dalek rakudo/nom: Bump NQP_REVISION for natives improvements.
10:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fc3f0d87d4
10:47 timotimo happy spam! :)
10:48 arnsholt Yaaaay!
10:48 jnthn arnsholt++
10:48 arnsholt jnthn++ # Fixing my problems =)
10:48 timotimo maybe i won't have to worry about process interop with a python shim for zmq any more :P
10:49 arnsholt Well, we'll still have to wrap ZMQ
10:49 arnsholt But that should be feasible now, as opposed to before
10:49 timotimo indeed
10:50 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:51 jnthn \o/
10:52 moritz \o/ indeed
10:52 timotimo \o/
10:58 dalek nqp: a0bba92 | (Tobias Leich)++ | src/ (3 files):
10:58 dalek nqp: move sigil/twigil back into place
10:58 dalek nqp:
10:58 dalek nqp: Because HLL is meant for general purpose,
10:58 dalek nqp: Perl 6 specifica should stay in Perl 6 world.
10:58 dalek nqp: review: https://github.com/perl6/nqp/commit/a0bba921d1
11:00 nwc10 yes, that merge got rid of the uninialized warnings for thingy .bits
11:00 jnthn FROGGS++ # thanks
11:02 FROGGS of course
11:03 arnsholt nwc10: Excellent! Any of those remaining would indeed be bugs
11:09 masak good afternoon, #perl6
11:09 FROGGS hi masak
11:10 jnthn o/ masak
11:12 sorear o/ masak
11:16 arnsholt Git is nice, but I think GitHub is an important part of the killer app part of software success there
11:16 spider-mario I think I prefer bitbucket
11:16 SmokeMachine joined #perl6
11:18 arnsholt I haven't really used BitBucket much, to bo honest
11:18 arnsholt Probably should
11:19 masak arnsholt: totally agree about git+github. it's like they feed each other's success. either is better with the other.
11:19 arnsholt Yeah. The UX of GitHub is very good, which complements (and alleviates, in some cases) the arcaneness of plain git
11:23 masak git, arcane? never! :P
11:24 moritz just low-level, and, hysterical raisins
11:24 tadzik bitbucket is nice, as it has free private repos
11:25 moritz I find myself needing them very rarely
11:25 moritz for p6cc I used one (but hosted on my own server)
11:26 spider-mario I use them quite much
11:26 spider-mario for example for school projects
11:26 Pleiades` joined #perl6
11:28 arnsholt Yeah, for work and school private stuff I just put them on my work area with SSH access
11:28 masak I just got my 100th repository.
11:29 masak on github.
11:29 moritz masak++
11:29 masak I basically use it as a distributed hard drive.
11:34 dalek rakudo/nom: 4fb07b1 | (Tobias Leich)++ | src/Perl6/Actions.pm:
11:34 dalek rakudo/nom: remove circumfix:sym<sigil>
11:34 dalek rakudo/nom:
11:34 dalek rakudo/nom: This was already moved to method variable.
11:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4fb07b1627
11:41 jerome joined #perl6
11:42 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:42 masak that's how I feel about Perl 6.
11:51 kivutar joined #perl6
11:58 xdbr joined #perl6
12:14 brrt joined #perl6
12:20 grondilu rn: say <1/3>.WHAT
12:20 p6eval niecza v24-19-g5f89e5f: OUTPUT«Rat()␤»
12:20 p6eval ..rakudo 4fb07b: OUTPUT«Str()␤»
12:20 dalek nqp: 3089165 | jnthn++ | src/QAST/Operations.nqp:
12:20 dalek nqp: Add some ops for capture manipulation.
12:20 dalek nqp:
12:20 dalek nqp: This will enable porting of most of the multi-dispatch code to NQP.
12:20 dalek nqp: review: https://github.com/perl6/nqp/commit/3089165aa0
12:20 dalek nqp: 38070ee | jnthn++ | src/stage0/ (9 files):
12:20 dalek nqp: Update bootstrap for new ops.
12:20 dalek nqp: review: https://github.com/perl6/nqp/commit/38070ee34c
12:20 dalek nqp: 7a83b54 | jnthn++ | src/ (2 files):
12:20 dalek nqp: Port multi-dispatch logic to NQP.
12:20 dalek nqp:
12:20 dalek nqp: Not wired up for use in the dispatch yet, but a little testing seems to
12:20 dalek nqp: show it does the right kind of thing.
12:20 dalek nqp: review: https://github.com/perl6/nqp/commit/7a83b54ded
12:21 grondilu n: say <1/3 0.2>».WHAT
12:21 p6eval niecza v24-19-g5f89e5f: OUTPUT«RatStr() RatStr()␤»
12:21 grondilu n: say .nude for <1/3 0.2>
12:21 p6eval niecza v24-19-g5f89e5f: OUTPUT«1 3␤1 5␤»
12:46 kivutar joined #perl6
12:46 Pleiades` joined #perl6
12:47 spider-mario joined #perl6
12:49 SamuraiJack_ joined #perl6
12:53 spider-mario joined #perl6
12:57 SmokeMachine joined #perl6
13:00 SmokeMachine joined #perl6
13:02 brrt at the risk of total flamebait, whats up with ovid's suggestion to call perl 5.20 perl7?
13:02 tadzik I think it's stupid
13:02 tadzik 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:03 tadzik like "they didn't do anything for the last 12 years and now they pretend that the old is the new!" and such
13:04 brrt yeah, i kind of agree
13:04 tadzik as if the problem of Perl 5 was naming
13:05 nwc10 put lipstick on a pig, and it's still a pig
13:05 nwc10 and Ruby must be dead too, as it's still on version 1
13:05 nwc10 it's *not* the problem.
13:06 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
13:06 tadzik that too
13:06 brrt for me, the problem of perl 5 is teaching
13:07 brrt suppose i could teach a total newbie programming
13:07 brrt i could start with some toy language, then he or she would never get anything done
13:07 brrt 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:07 brrt or i could start with python
13:08 brrt perl 5 doesn't even enter there, because there is simply too much to know
13:08 nwc10 jnthn: you got truncated at "sadly s"
13:08 jnthn sadly seems to have run into a bunch of problems).
13:09 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:11 jnthn 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 jnthn 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:13 FROGGS cool
13:13 FROGGS jnthn++
13:14 jnthn oh, urgh
13:15 jnthn Messy interaction with serialization
13:15 jnthn Well, not hard to fix.
13:15 jnthn But, lunch first.
13:16 nwc10 cool
13:17 * nwc10 wonders what timezone jnthn is in today
13:17 FROGGS 2pm here, still lunch time
13:18 arnsholt I think he's in his current home TZ in Sweden
13:18 mls_ joined #perl6
13:19 mls_ jnthn: "captueposelems"? Is that a typo?
13:19 jnthn mls_: Yes.
13:19 jnthn mls_: Fixed locally.
13:19 jnthn Thanks ;)
13:20 jnthn uh, :) even
13:20 pmurias joined #perl6
13:22 telex joined #perl6
13:24 nyuszika7h joined #perl6
13:28 pmurias_ joined #perl6
13:29 pmurias I get a segfault while building nqp
13:29 arnsholt That's not good
13:29 arnsholt Using --gen-parrot?
13:30 pmurias yes
13:31 pmurias http://pastie.org/6087088
13:31 arnsholt Could you try regenning with --parrot-option='--ccflags=-g' and use gdb to get a backtrace?
13:31 pmurias parrot--
13:31 arnsholt Not necessarily parrot
13:32 arnsholt 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:32 arnsholt What platform are you on, BTW?
13:32 pmurias linux
13:32 pmurias 3.2.0-1-686-pae
13:34 arnsholt 64-bit?
13:34 pmurias 32bit
13:35 * [Coke] stands in the corner listening to pmurias beat up on parrot.
13:36 FROGGS hmmm, I pulled, made realclean and it did it just fine
13:36 FROGGS spectests are good too
13:37 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:38 FROGGS 64bit here too, yes
13:42 jnthn Oh my... http://www.modernperlbooks.com/m​t/2013/02/project-facepalm.html
13:42 jnthn OK, I've had enough.
13:43 jnthn *sigh*
13:44 daxim insert "walk out of the window" image macro here
13:44 nwc10 jnthn: wait, his summary is acutally excellent
13:44 jnthn "Contributing adult supervision to one or another Perl 6 implementation such that it's eventually usable by regular people". Really?
13:45 nwc10 oh, except for tat one
13:45 nwc10 there he is being, well
13:45 nwc10 this is logged, right?
13:45 jnthn "Goodness knows it's more fun to write a compiler or to port a half-finished project halfway to a new virtual machine "
13:45 jnthn NO THE POINT IS THAT THERE IS NO FUCKING WAY TO FINISH PERL 6 WITHOUT LEAVING PARROT BEHIND.
13:45 jnthn Yes, it's logged and now I said it and it's logged and that's awesome.
13:45 nwc10 which, by the way
13:46 nwc10 has anyone actually asked him why he quit working on parrot?
13:46 nwc10 is that online anywhere?
13:46 pmurias jnthn: I fully agree with that
13:46 * brrt is a sad panda about it, but agrees nonetheless
13:46 nwc10 I believe I know the answer, but it's hearsay, so I'm not going to screw up by pasting it here
13:47 brrt frustration is my guess
13:47 hoelzro jnthn: may I ask why Perl 6 can't be completed without abandoning Parrot?
13:47 hoelzro I'm not trying to provoke; I'm just curious
13:48 nwc10 because, sadly, it's too buggy
13:48 brrt hoelzro, nobody is really maintaining parrot
13:48 nwc10 it doesn't have useful threading
13:48 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
13:48 hoelzro that is sad =(
13:48 brrt it is maintained, but not with anywhere adequate manpower
13:48 nwc10 and pretty much everyone hacking on it has stopped
13:48 jnthn It's too buggy and it's badly designed (or not designed) in places Perl 6 needs to work out its spec.
13:48 jnthn For example, threads and async IO.
13:48 brrt parrot has awesome plans for fixing the poor design
13:49 brrt but no manpower /at all/
13:49 pmurias brrt: move to a different vm?
13:49 nwc10 the contributor and commit graphs on https://www.ohloh.net/p/parrot tell a story
13:49 brrt not to mention the fact that whenever big changes appear, then OMG TESTS FAIL
13:49 jnthn brrt: Yes, that's a sign of fragility.
13:50 brrt yes, unfortunately, you cannot really remove fragility one piece at a time
13:50 pmurias arnsholt: http://pastie.org/6087201
13:51 daxim okay, cool to know about what youall just said
13:51 brrt nwc10, looks at the timeline of those graphs :-)
13:51 nwc10 look at the last year
13:52 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.
13:52 nwc10 I'm pretty confident that pretty much every piece of the parrot design is, with hindsight, roughly, wrong.
13:52 nwc10 that's pretty sweeping, I know
13:53 brrt nwc10, not every piece
13:53 nwc10 there are far too many ops
13:53 nwc10 the ops are implemented in C, so are opaque to any analsysis or JIT
13:53 brrt although there are quite a few unlucky tradeoffs
13:53 brrt polymorphic ops, now that is a pain
13:53 shinobicl joined #perl6
13:54 nwc10 there's no coherent IO/signals/events/GC/concurrency story
13:54 arnsholt pmurias: Right, so a segfault in P6opaque's gc_mark. That's one of the files I've touched
13:54 brrt jnthn, i wonder how threads and a mutable view of code / classes is going to work out
13:54 brrt suppose i have two threads, one in a highly optimised runloop calling foo.bar();
13:55 [Coke] I find the irony levels at "Handwringing over what should have been or might have been doesn't do much" nearly toxic.
13:55 [Coke] jnthn++ for making rakudo move.
13:55 brrt and another thread replacing foo's bar() with some other reference because monkeypatching lolz
13:55 nwc10 his block is toxic.
13:55 nwc10 gah.
13:55 nwc10 blog
13:55 Targen joined #perl6
13:56 jnthn brrt: It's mostly a cache invalidation problem.
13:56 brrt yes, but how do you know which caches rely on which threads?
13:57 brrt if you have no threads, then you invalidate the cache next time you enter the scope
13:57 pmurias can't monkeypatching just invalidate all caches
13:57 pmurias ?
13:57 brrt only if you know where all caches are
13:57 arnsholt pmurias: Do you happen to remember roughly which NQP revision you started from that still worked?
13:58 brrt some of them might be inline (you'd like them to be, anyway)
13:58 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
13:58 nwc10 so, it's not wrong for the tight loop to run to completion before "seeing" the change
13:59 nwc10 as long as the interpreter state remains consistent enough not to crash
13:59 arnsholt pmurias: Or actually, try checking out 2c13753ac8. If that one works, git bisect and try to find which commit is bad
13:59 nwc10 wonky code is going to ack wonky
13:59 brrt right, but that means that locking also means 'check all caches'
13:59 brrt for code that is unlikely to happen anyway
13:59 nwc10 it might be as simple as "check a flag that says that 'something happened'"
14:00 nwc10 and at that point, call out to the slow code
14:00 brrt hmm
14:00 brrt a thread cache flag
14:00 brrt fair enough actually
14:00 nwc10 which *does* the real work of figuring out the significance of what needs changing
14:00 nwc10 it's roughly how Perl 5 safe signals work
14:00 nwc10 there's a "whoaaah" flag
14:00 jnthn It all depends on how soon the other thread needs to reflect the change also.
14:00 nwc10 which is all that gets checked
14:01 brrt in theory, after a synchronisation point
14:01 brrt which also means that if i have two threads, and one of 'm monkey-patches, the other might /never/ see the monkey-patch
14:01 brrt which is fine by me, but you're going to receive bug reports about that
14:02 jnthn Code that you're currenlty in the middle of executing being invalidated will always be a tricky problem.
14:03 zos joined #perl6
14:03 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:03 zos left #perl6
14:04 pmurias would it be possible to setup automatic building and testing of nqp revisions?
14:04 jnthn otoh, there's plenty (or at least some) literature out there on on stack replacement and so forth
14:04 pmurias s/revisions/commits/
14:04 brrt v8 can do it :-) so can we
14:04 jnthn brrt: It's doable, just hard :)
14:04 jnthn pmurias: Yes, it just needs somebody with tuits to do it...
14:04 nwc10 pmurias: "yes". But was that you volunteering to try?
14:05 brrt the enviroment of the jvm could (should) theorethically make it somewhat easier
14:05 brrt whats tuits
14:05 brrt found it
14:05 decasm upscale bbq? that sounds ... backwards.
14:06 jnthn brrt: A terrible but great pun :)
14:06 pmurias nwc10: I could to try to help with that, I'm not sure what's needed
14:06 arnsholt Yeah, some kind of CI system for NQP and Rakudo would be neat
14:06 brrt i like it
14:06 arnsholt Or even a distributed manual one like cpantesters
14:06 pmurias arnsholt: that commit worked
14:07 arnsholt Awesome. Have you used git bisect before?
14:07 pmurias no
14:07 * pmurias looks at the manual
14:08 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:09 arnsholt True, true. I'm getting more used to it now
14:13 BooK_ tadzik: there's a better way to do a multilingual act website for plpw
14:13 arnsholt git bisect is ridiculously magicsauce, anyways
14:13 tadzik BooK_: 2 templates, eh?
14:14 tadzik maybe someone will pick it up, I githubbed our act files recently
14:14 BooK_ <t><en>stuff in Engligh</en><pl>stuff in polish</pl></t>
14:14 tadzik oh
14:14 tadzik kewl
14:14 BooK_ although that assumes there's a po/pl.po file
14:14 tadzik I'll wait for pl.po to show up though
14:14 tadzik right
14:15 pmurias tadzik: is there a website for the polish perl workshop?
14:15 tadzik pmurias: aye
14:15 tadzik http://act.yapc.eu/plpw2013/
14:16 PacoAir joined #perl6
14:16 BooK_ updating the yapceurope.org web site ATM
14:18 jnthn Aww, dang, I wanted to be first person to register for plpw but registration isn't turned on yet ;)
14:21 pmurias jnthn: are you attending?
14:22 jnthn pmurias: Yeah, I will do :)
14:22 [Coke] jnthn++ # awesome beard of perl+1.
14:23 dalek perl6-roast-data: b584f99 | coke++ | / (4 files):
14:23 dalek perl6-roast-data: today (automated commit)
14:23 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/b584f99e04
14:23 dalek perl6-roast-data: 5d349e4 | coke++ | / (4 files):
14:23 dalek perl6-roast-data: today (automated commit)
14:23 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/5d349e400b
14:23 Targen joined #perl6
14:25 tadzik jnthn: it'll open as soon as we have the financial backend settled up, which would probably be friday or caturday :)
14:25 tadzik I'll notify everyone, fear not ;)
14:25 * FROGGS .oO( purr purr - its caturday! (finally) )
14:28 cognominal joined #perl6
14:28 [Coke] hey, no grant submittals this past time period. Be nice if we had some perl6 submittals to consider.
14:28 [Coke] (for the regular process, not the hague process)
14:31 domidumont joined #perl6
14:33 pmurias arnsholt: I didn't do a make clean every time and bisect found nothing
14:35 arnsholt Weeeird.
14:36 pmurias there seem to be a lot of warnings while building
14:36 arnsholt Yeah. Most of them are stuff like returning aggregates, which isn't actually problems
14:37 pmurias shouldn't we turn them off then?
14:37 pmurias if we ignore some of them all are useless
14:37 arnsholt Most of our cflags come from Parrot
14:39 arlinius joined #perl6
14:44 [Coke] ... which in turn come from p5.
14:46 arnsholt pmurias: But that's odd. Does checking out HEAD^ and doing a clean make work?
14:46 pmurias hmm HEAD and make clean, make doesn't work
14:47 decasm @blame royt
14:48 decasm left #perl6
14:49 pmurias arnsholt: I'm repeating the bisect wit make clean;make
14:49 arnsholt Ah, even better. Thanks!
14:49 pmurias waiting for all those revisions is really boring tho
14:49 arnsholt Yeah
14:50 pmurias what would we need to have them built automatically?
14:51 arnsholt A CI server of some kind, probably
14:52 arnsholt Hmm. Maybe we could be able to do something with Travis CI?
14:53 xdbr joined #perl6
14:56 stopbit joined #perl6
14:58 SmokeMachine joined #perl6
14:58 rurban pmurias: debugging parrot?
14:59 rurban 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:00 stevan_ joined #perl6
15:01 rurban I tested it before (with asan)
15:01 arnsholt It == Travis?
15:01 domidumont joined #perl6
15:02 rurban nqp and parrot
15:02 arnsholt Oh. I suspect the bug may be related to wordsizes or something like that
15:02 rurban I'll have it soonish
15:02 arnsholt I've implemented support for sized native variables in NQP, and it's probably only been tested on 64-bit machines
15:03 arnsholt So I wouldn't be surprised if there's something that doesn't work right on 32-bit, which is what pmurias has
15:03 rurban Oh, thats' on 32bit?
15:03 SunilJoshi joined #perl6
15:03 xdbr joined #perl6
15:06 arnsholt Yeah, my suspicion is 32-bit/64-bit shenanigans. But it'd be wonderful if you gave it a whack
15:06 arnsholt If it breaks, it disproves my theory, for one =)
15:07 shinobicl left #perl6
15:08 pmurias arnsholt: 38070ee34cba4257017a9bb280c592d3a1c59002
15:10 pmurias maybe I should starting using a 64-bit laptop
15:10 sizz_ joined #perl6
15:10 arnsholt Hmm. So it looks like it's a later commit
15:11 arnsholt jnthn: Any ideas what it might be?
15:13 jnthn arnsholt: Not immediately, but maybe some bad assumption about INTVAL's size?
15:13 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
15:14 arnsholt jnthn: Yeah, that's what I thought. But for some reason pmurias's bisect turns up https://github.com/perl6/nqp/commit/38​070ee34cba4257017a9bb280c592d3a1c59002 which is your bootstrap update to add the new capture ops...
15:14 pmurias rurban: it's not slow?
15:15 rurban Calling functions is slow, yes. But threads are working fine.
15:15 jnthn lol
15:15 rurban Show me a better threads implementation. The best I know
15:15 jnthn arnsholt: That's really odd.
15:15 rurban 64bit nqp passed with asan
15:16 pmurias asan?
15:16 arnsholt It's definitely weird. Makes me wish I had a 32-bit machine to try
15:16 rurban address-sanitizer, a 10x faster valgrind
15:17 * 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:18 jnthn arnsholt: I may be able to get a 32-bit environment to try this on
15:18 jnthn Suspect I may have to go afk for a little bit soon though
15:19 arnsholt Oh, oh!
15:19 arnsholt I may see it
15:19 arnsholt pmurias: Open src/6model/reprs/P6opaque.c and go to line 291
15:20 arnsholt 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:21 pmurias arnsholt: in which revision?
15:22 skids joined #perl6
15:23 FROGGS[mobile] joined #perl6
15:23 arnsholt Just do it in HEAD
15:25 pmurias doesn't help
15:26 pmurias arnsholt: you want me to switch the 2 if statements?
15:27 arnsholt Yeah, that's all
15:28 arnsholt The first if clause uses cur_size, which is updated in the second if
15:28 arnsholt The update should happen before the use
15:30 pmurias I think I'll just start using my 64bit laptop
15:30 arnsholt But then you wouldn't find my bugs! ;)
15:32 pmurias that's what I hope
15:35 bluescreen10 joined #perl6
15:35 rurban Found now a fast 32bit machine with all tools
15:38 murek1 joined #perl6
15:39 domidumont joined #perl6
15:39 arnsholt rurban: Oh, that's awesome!
15:44 stevan_ joined #perl6
15:46 benabik joined #perl6
15:49 dalek nqp: 51d9d8d | jnthn++ | src/QAST/Operations.nqp:
15:49 dalek nqp: Argh, got typo into the bootstrap. :(
15:49 dalek nqp: review: https://github.com/perl6/nqp/commit/51d9d8d24d
15:49 dalek nqp: 4b213cc | jnthn++ | src/ (2 files):
15:49 dalek nqp: Implement nqp::invokewithcapture.
15:50 jnthn fail
15:50 dalek joined #perl6
15:51 FROGGS[mobile] epic fail?
15:51 arnsholt Yeah, I think dalek handles long-ish commit messages poorly, or something like that
15:51 kaleem joined #perl6
15:52 jnthn Anyway, multi dispatch in NQP is now largely written in NQP
15:52 jnthn Being called away now, will clean up in a bit
15:52 nwc10 yay!
15:53 kaare_ joined #perl6
15:54 FROGGS[mobile] jnthn: can we hope to gain a bit more performance?
15:56 FROGGS joined #perl6
15:57 dayangkun joined #perl6
16:07 FROGGS nr: $_ = "foo bar"; say m/ $( $_ ) /
16:07 p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«「foo bar」␤␤»
16:08 nyuszika7h joined #perl6
16:13 FROGGS nr: try { say $_ } for <1 2>
16:13 p6eval rakudo 4fb07b: OUTPUT«Any()␤Any()␤»
16:13 p6eval ..niecza v24-19-g5f89e5f: OUTPUT«1␤2␤»
16:13 FROGGS nr: try say $_ for <1 2>
16:13 p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«1␤2␤»
16:13 sizz joined #perl6
16:13 FROGGS nr: try { say $_ } given 2
16:13 p6eval niecza v24-19-g5f89e5f: OUTPUT«2␤»
16:13 p6eval ..rakudo 4fb07b: OUTPUT«Any()␤»
16:14 benabik r: given 2 { try { say $_ } }
16:14 p6eval rakudo 4fb07b: OUTPUT«2␤»
16:14 FROGGS https://rt.perl.org/rt3/Tic​ket/Display.html?id=111704
16:15 FROGGS nr: say 'aa' ~~ /(.)$1/
16:15 p6eval rakudo 4fb07b: OUTPUT«#<failed match>␤»
16:15 p6eval ..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:16 cognominal joined #perl6
16:16 colomon jnthn: is there a rakudo-friendly way to do token tuplet { '('(<digit>+) {} [<t_elem>* <stem>] ** { +$0 } <slur_end>? } yet?
16:19 stevan_ joined #perl6
16:19 pmurias rurban: any luck reproducing the problem?
16:20 rurban Still compiling parrot...
16:22 murek1 left #perl6
16:23 murek1 joined #perl6
16:23 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:25 [Coke] r: use Test; is(2, 1*2)
16:25 p6eval rakudo 4fb07b: OUTPUT«ok 1 - ␤»
16:25 rjbs Heh.
16:25 nwc10 clearly not Abigail. Abigail would have used a regular expression.
16:25 masak no... :)
16:26 masak I could see a regex solution actually working out as a proof.
16:26 masak also, sets.
16:26 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 benabik_ joined #perl6
16:28 FROGGS nr: say 'aa' ~~ /(.)$0/
16:28 p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«「aa」␤ 0 => 「a」␤␤»
16:33 kaleem_ joined #perl6
16:34 masak was more thinking of something like this:
16:34 masak r: sub set_of_size($n) { set Any.new xx $n }; say elems set_of_size(1) (|) set_of_size(1)
16:34 p6eval rakudo 4fb07b: OUTPUT«2␤»
16:36 thou joined #perl6
16:36 masak "combine two (disjoint) sets of size 1. count the elements of the resulting set."
16:38 pmurias how and when did the serialization format change?
16:40 SmokeMachine joined #perl6
16:41 timotimo oooh that's cool, masak
16:43 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:43 p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«SS0␤»
16:44 masak S0+S0 reduces to SS0
16:44 masak more entries welcomed :)
16:48 skids r: say (1+1).is-prime; say (1+1) %% 2;
16:48 p6eval rakudo 4fb07b: OUTPUT«True␤True␤»
16:51 rurban pmurias: now at nqp...
16:52 masak skids: interesting.
16:52 masak skids: seems a little overkill, though :)
16:52 masak (in that it involves the notion of divisibility)
16:53 jeffreykegler joined #perl6
16:57 colomon I liike skids' approach
16:58 amurias pmurias: are you there?
16:59 * FROGGS .oO( "YOU_ARE_HERE" )
16:59 kaleem_ joined #perl6
16:59 timotimo you know how we can raise awareness for perl6 and how neat the new regexes are
16:59 timotimo did you see the MIT mistery hunt regex "crossword" puzzle?
17:00 masak colomon: it's innovative. but one could argue that it implicitly uses addition, because divisibility rests on addition.
17:00 colomon I suppose it implicitly uses == as well, by that logic.
17:01 masak that's fine.
17:01 masak we much have equality in order to compare things.
17:02 colomon in that case, the problem is that it directly uses addition, no?
17:02 masak oh! yes. that, too.
17:02 colomon I kind of think the problem is actually ill-formed
17:02 masak it's tantamount to printing the result of 1+1 and saying "it looks like a 2" :)
17:02 masak colomon: oh?
17:03 masak the task is meant to encourage the discussion "what is addition?", by the way.
17:04 colomon well, on the one hand 2 is defined as the successor of 1, that is to say, 1 + 1.
17:04 masak I'm also forever fascinated by the fact that it took R&W 379 pages to prove this... https://en.wikipedia.org/wiki/P​rincipia_mathematica#Quotations
17:04 masak colomon: usually the successor function isn't defined in terms of addition.
17:05 benabik_ joined #perl6
17:05 rurban yes, repro
17:07 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:09 masak but why are you confusing that with addition?
17:09 masak addition is a separate concept from the successor function.
17:09 colomon masak: it isn't defined in terms of full addition.  It is defined in terms of adding 1
17:10 masak if the fact that "successor" and "+1" feel kinda similar, feel free to prove that 2+2==4 ;)
17:10 FROGGS somebody like to comment on https://rt.perl.org/rt3/Ti​cket/Display.html?id=77616 ?
17:10 masak colomon: usually the successor function is axiomatically defined, without any mention of addition.
17:10 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
17:10 rurban nqp 380b20 still fails on 32bit
17:11 masak I am surprised by this mixing-up of "adding one" and "successor". in my mind they are completely separate.
17:11 masak you can count using Church numerals, for example.
17:11 masak ooh, there's another way to prove it... :)
17:12 masak 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 http://en.wikipedia.org/wiki/Successor_function ....
17:13 timotimo hm, can one create a regex object from a string in perl6?
17:13 timotimo well, i guess eval. but that's not "secure"
17:13 jnthn timotimo: rx/<$string>/ or so
17:13 timotimo oh, good point
17:13 jnthn timotimo: Creating a regex object from a string is not exactly secure ;)
17:14 SmokeMachine joined #perl6
17:14 timotimo hm, right :)
17:14 timotimo i'll write a regex that only lets secure regex through
17:14 timotimo like forbid $ signs and < >
17:15 masak colomon: huh. that *is* unfortunate.
17:15 dalek nqp: adbccba | jnthn++ | src/core/NQPRoutine.pm:
17:15 dalek nqp: Use correctly spelled ops.
17:15 dalek nqp: review: https://github.com/perl6/nqp/commit/adbccba819
17:15 dalek nqp: a60560e | jnthn++ | src/stage0/ (9 files):
17:15 dalek nqp: Update bootstrap.
17:15 dalek nqp:
17:15 dalek nqp: Means that the first stages won't be slower due to not using the
17:15 dalek nqp: cache.
17:15 dalek nqp: review: https://github.com/perl6/nqp/commit/a60560e40a
17:15 masak colomon: well, consider as a counterargument https://en.wikipedia.org/w​iki/Peano_axioms#Addition
17:15 colomon masak: on the other hand, http://en.wikipedia.org/wiki/Peano_axioms#Addition
17:15 dalek nqp: 323db25 | jnthn++ | src/ (5 files):
17:15 dalek nqp: Toss a mass of now-unused C code and dead ops.
17:15 dalek nqp: review: https://github.com/perl6/nqp/commit/323db25a1a
17:15 masak colomon: heh :)
17:15 masak colomon: clearly, in order to solve the task at all, one must choose a set of definitions that are not circular.
17:15 masak so it is not the task that is ill-grounded, but Wikipedia.
17:16 jnthn Circular definition: see circular definition
17:16 colomon masak: but then in those terms it's not really a perl 6 task
17:17 FROGGS timotimo: if you just want to match the content of a var, do it like:
17:17 FROGGS r: my $var = "abc"; say "abcdef" ~~ / $( $var ) /
17:17 p6eval rakudo 4fb07b: OUTPUT«「abc」␤␤»
17:17 domidumont joined #perl6
17:17 [Coke] jnthn++ deleting code, esp. C.
17:17 moritz well, or just / $var /
17:17 FROGGS r: my $var = "abc"; say "abcdef" ~~ / <{ $var }> / # too
17:17 p6eval rakudo 4fb07b: OUTPUT«「abc」␤␤»
17:18 timotimo FROGGS: no, i want to handle regexes as strings, like my $charclass = "[abc]";
17:18 FROGGS ahh
17:18 masak colomon: no, but it's pleasant to use Perl 6 to express thoughts, even mathematical ones.
17:18 PerlJam timotimo: except that's not a character class in Perl 6  ;)
17:18 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....
17:18 jnthn PerlJam: It is if you use :P5 ;)
17:19 timotimo PerlJam: excuse me, i'm context switching too much to notice ;)
17:20 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:20 p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«SS0␤»
17:20 arnsholt rurban: That's extremely weird. Have you tried to apply the change I outlined to pmurias?
17:20 FROGGS timotimo: think of function calls and what not
17:21 masak colomon: no, I am asking to prove S0 + S0 == SS0
17:21 masak colomon: ...but I don't claim S as my root definition.
17:21 masak colomon: I'm fine with any definition which doesn't rest on addition.
17:21 jnthn r: multi infix:<+>('S0', 'S0') { 'SS0' }; say 'S0' + 'S0'
17:21 p6eval rakudo 4fb07b: OUTPUT«SS0␤»
17:22 masak :P
17:22 masak jnthn: that... is the most *meaningless*...
17:23 jnthn .oO( I guess I didn't win today's mini-challenge... )
17:23 rurban arnsholt: not yet
17:24 colomon masak: then it's just S0 + S0 = S(S0 + 0) = S(S0) = SS0.  But that's really awkward to express in p6
17:24 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
17:24 masak colomon: I've done it three times now in the backlog ;)
17:24 PerlJam masak: By careful selection of axioms, you can prove anything.  jnthn was just being efficient.  :)
17:25 masak colomon: using sets, regexes, and functions.
17:25 masak PerlJam: certainly more efficient that Russell and Whitehead ;)
17:26 * arnsholt remembers being shown how to do addition with Church numerals in Prolog
17:27 arnsholt Remarkably clever and a bit stupid at the same time =D
17:28 masak arnsholt: the big "aha!" moment for me with Church numerals and Church booleans came recently when I re-read TaPL.
17:28 PerlJam masak: have you read Douglas Hofstadter's "Fluid Concepts and Creative Analogies"?
17:28 spider-mario joined #perl6
17:28 arnsholt TaPL?
17:29 masak arnsholt: they're both really small "machines" that programmatically express the intent of a number or a boolean.
17:29 masak arnsholt: http://www.cis.upenn.edu/~bcpierce/tapl/
17:29 masak PerlJam: yes, I believe I have. though it was a while ago.
17:30 arnsholt Hmm. That looks like an interesting book
17:30 masak maybe I should re-read it.
17:31 kst` joined #perl6
17:37 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:37 thou_ joined #perl6
17:37 jnthn (in the serialization thing)
17:41 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:41 jnthn Unfortunately, I don't have much idea of a good fix.
17:42 rurban parrot master: --output=src/stage1/gen/nqp-mo.pir push_pmc() not implemented in class 'ByteBuffer'
17:43 FROGGS jnthn: I'd like to know what the user would expect
17:43 jnthn FROGGS: Captures to happen in the order they textually appear in the source.
17:43 FROGGS brb, lunch
17:43 jnthn FROGGS: Well, not happen. But be numbered in the resulting Match
17:44 domidumont joined #perl6
17:45 zby_home joined #perl6
17:50 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:50 arnsholt I'm offended by most of the references to Perl 6 in that post, to be frank
17:50 masak well, jnthn's all-caps in the backlog pretty much sums it up.
17:51 masak and I actually prefer chromatic when he's bitter about the Parrot thing, as opposed to just ironically lashing out at nothing.
17:51 colomon masak: pointer?
17:51 masak colomon: http://www.modernperlbooks.com/m​t/2013/02/project-facepalm.html
17:51 masak follow that link at your own blood pressure.
17:51 colomon saw that, I meant to jnthn's response # masak++
17:51 colomon already read it, alas
17:51 masak colomon: http://irclog.perlgeek.de/​perl6/2013-02-07#i_6423589
17:52 masak anyway. it's 2013, and we're actually growing alternatives to Parrot. this is good.
17:53 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:53 masak oh, I was just going to write something like that.
17:53 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:53 ggoebel_ joined #perl6
17:53 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:54 masak japhb: +1
17:55 masak I also fully agree with http://irclog.perlgeek.de/​perl6/2013-02-07#i_6423648
17:55 masak it's not even so much that Parrot wasn't any help at all -- it was quite useful for a number of years.
17:56 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.
17:56 masak but Rakudo is outgrowing Parrot.
17:56 ggoebel_ phenny: tell jnthn are you also aware of http://wiki.jvmlangsummit.com/Main_Page ? -Links to presentations and slides from previous years are linked to from http://openjdk.java.net/pr​ojects/mlvm/jvmlangsummit/
17:56 phenny ggoebel_: I'll pass that on when jnthn is around.
17:56 masak skids: sounds like a distribution to me. like ActiveState Perl or Strawberry Perl.
17:58 dalek nqp: 6b5778e | jnthn++ | src/core/NQPRoutine.pm:
17:58 dalek nqp: Toss a bit of ported C that turned out unused.
17:58 dalek nqp: review: https://github.com/perl6/nqp/commit/6b5778e216
17:58 Pleiades` joined #perl6
18:00 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:00 PerlJam colomon++
18:02 skids masak: like that, but without actually needing to "use" everything in the bundle.
18:02 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
18:02 p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2␤»
18:02 masak four solutions. I think there's a nice blog post in here.
18:02 arnsholt Ooooh, JavaZone call for speakers is finally open =D
18:03 arnsholt And the deadline is April 15
18:03 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 :)
18:03 arnsholt I'm definitely going to have to submit a talk
18:03 masak bbkr__: definitely a bug.
18:04 masak bbkr__: the parentheses are numbered by their location in the regex.
18:04 masak bbkr__: not by match order.
18:04 PerlJam bbkr__: and this has *always* been the case, even before Perl 6  :)
18:05 jnthn Difference in Perl 6 being that they're more tree-ish than flat and some end up as an array
18:05 phenny jnthn: 17:56Z <ggoebel_> tell jnthn are you also aware of http://wiki.jvmlangsummit.com/Main_Page ? -Links to presentations and slides from previous years are linked to from http://openjdk.java.net/pr​ojects/mlvm/jvmlangsummit/
18:06 jnthn ggoebel_: Thanks for that link...I'm sure I read some of those before having found them separately
18:06 jnthn ggoebel_: But it's nice to have the collection of links and more to read :)
18:08 arnsholt jnthn: Are there any tricks I can use to reliably trigger a Parrot GC run?
18:12 nebuchadnezzar joined #perl6
18:21 SmokeMachine joined #perl6
18:26 TimToady usually the best way to do distributed cache invalidation (under shared memory, anyway) is with an incrementing generation counter
18:27 TimToady that's how Perl 5 does cache invalidation
18:28 TimToady 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:29 fgomez joined #perl6
18:29 jnthn arnsholt: There's a pir op that will do it...sweep, iirc
18:30 dalek nqp-jvm-prep: 23756ca | jnthn++ | / (4 files):
18:30 dalek nqp-jvm-prep: Chase REPR protocol and serialization changes.
18:30 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp​-jvm-prep/commit/23756ca7ee
18:30 masak rn: say chars "一" ~ "一" # arguably, this is a solution, too.
18:30 p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2␤»
18:32 jnthn .u 一
18:32 phenny U+4E00 CJK UNIFIED IDEOGRAPH-4E00 (一)
18:32 jnthn oh, it's...one.
18:33 stevan_ joined #perl6
18:33 masak ;)
18:34 masak it works with other characters, too.
18:34 masak rn: say chars "①" ~ "①"
18:34 p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2␤»
18:35 jnthn rn: say chars "" ~ ""
18:35 p6eval rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2␤»
18:36 japhb_ joined #perl6
18:39 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:40 p6eval niecza v24-19-g5f89e5f: OUTPUT«4␤»
18:40 p6eval ..rakudo 4fb07b: OUTPUT«2␤»
18:40 TimToady that should be 8, since each of those is 4 dragons
18:40 masak *lol*
18:41 masak I presume that is a Nieczabug grounded in the fact that .NET can't Unicode?
18:41 TimToady UTF-16 damage I think
18:41 Chillance joined #perl6
18:41 masak right.
18:41 masak Java has the same issue.
18:42 jnthn Yeah, we're gonna have that on the JVM until we get NFG done.
18:44 * TimToady wonders how much support there is in JVM for ropes of integers of various sizes
18:44 * masak .oO( No Frivolous Garbage )
18:44 TimToady s/in JVM/available with JVM/
18:48 dalek nqp-jvm-prep: 1d63164 | jnthn++ | / (2 files):
18:48 dalek nqp-jvm-prep: First pass at nqp::istype.
18:48 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp​-jvm-prep/commit/1d63164bbb
18:48 dalek nqp-jvm-prep: bd77eed | jnthn++ | nqp-src/NQPCORE.setting:
18:48 dalek nqp-jvm-prep: Start pulling in some of the multi-dispatch code.
18:48 dalek nqp-jvm-prep:
18:48 dalek nqp-jvm-prep: This isn't the dispatcher itself, just the candidate sorting code. Need
18:48 dalek nqp-jvm-prep: to implement some of the extra ops before multi-dispatch will actually
18:48 dalek nqp-jvm-prep: work.
18:48 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp​-jvm-prep/commit/bd77eeda00
18:49 * jnthn thinks he needs some dinner before he works any more... :)
18:49 [Coke] Order in, bill it to the channel. :)
18:50 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:56 MayDaniel joined #perl6
19:08 imarcusthis jnthn: your work is giving me actual hope of having perl6 in production.
19:09 imarcusthis 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:16 GlitchMr joined #perl6
19:20 rurban slow startup, fast run-time
19:21 rurban i.e. not suitable for scripts, but good for running server or long-running apps
19:23 imarcusthis rurban: not suitable for mobile apps either then.
19:23 rurban well, I guess on android the jvm will startup much faster
19:23 rurban because it is hot
19:24 jnthn My first guess was that the question was actually about memory footprint...
19:24 jnthn In which case, anything I could give would be a wild guess at this point.
19:24 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:25 imarcusthis jnthn: that's understandable.
19:25 rurban My guess is even bigger than jruby
19:25 jnthn rurban seems happy to guess wildly though :)
19:25 rurban yes :)
19:25 imarcusthis yepp :)
19:39 * TimToady wonders how much you can bring in lazily on the first eval
19:39 TimToady (assuming precompilation)
19:40 TimToady we've intentionally designed p6 with very few required globals
19:40 sftp joined #perl6
19:43 * 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:45 TimToady 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:45 shinobicl joined #perl6
19:45 tadzik oh, jnthn, I left you some pull requests btw
19:45 tadzik at least one of them is necessary :)
19:46 * TimToady postulates that most failure modes would come down to failure of identity somehow
19:46 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 :(
19:46 shinobicl i remember a nice graphic of the advance in the perl6 test suite
19:46 shinobicl where i can find the current one?
19:47 shinobicl i want to use it as an example in my presentation
19:48 SmokeMachine joined #perl6
19:49 TimToady you might be reduced to searching the irclogs
19:49 diakopter also, those graphics have several interpretations
19:49 shinobicl oh well... i'm gonna use one i found from 2009
19:49 shinobicl http://perlgeek.de/blog-en/perl-​6/musings-on-spectest-chart.html
19:49 PerlJam shinobicl: TDD isn't appropriate for every problem either :)
19:50 shinobicl on, in this case it applies. There are some ancient APIs and we have to keep compatibility with them
19:51 shinobicl s/on/oh/;
19:51 diakopter note how the "spec" portion of that graph doesn't change much except at two discontinuities
19:52 diakopter shinobicl: without more granularity, we can interpret that as more passing tests were added, not more of the spec was completed
19:52 diakopter we still don't know how much of the original failing spec tests are now passing
19:53 diakopter (or are no longer valid)
19:55 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:55 shinobicl well, the old graphic will do... thanks :)
19:57 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 diakopter I mean, I suppose someone could run current rakudo against the spectest from 2008-05
20:01 atrodo_ joined #perl6
20:09 Chillance joined #perl6
20:12 * colomon is quite upset that chromatic is spreading p6 FUD on twitter.
20:12 * tadzik is quite upset with #perldrama
20:14 SmokeMachine joined #perl6
20:15 tadzik I agree on https://twitter.com/chromatic​_x/status/299566125258256384 though
20:15 atrodo_ joined #perl6
20:15 uvtc joined #perl6
20:15 atrodo_ left #perl6
20:15 PerlJam colomon: what fud this time?
20:16 cognominal joined #perl6
20:16 dalek niecza: 93138cc | (Tobias Leich)++ | src/NieczaActions.pm6:
20:16 dalek niecza: fixed typo in warning "conext" -> "context"
20:16 dalek niecza: review: https://github.com/sorear/niecza/commit/93138ccca0
20:16 tadzik and he even mentions panda. I'm flattered
20:17 colomon PerlJam: I'm particularly thinking of https://twitter.com/chromatic​_x/status/299580714180018176
20:17 tadzik Well there *was* Lorito, but that was after Parrot was already doomed by Rakudo and developers were leaving. LOL
20:17 tadzik doomed by rakudo, eh
20:17 tadzik waste of time reading this, and yet I continue
20:18 uvtc Do both Rakudo and Rakudo Star now use "YYYY.MM" for their release version strings?
20:18 tadzik I think so
20:19 uvtc I remember at some point regular ints were being used. As in, "release #42".
20:20 PerlJam Rakudo still does "release #42" AFAIK.
20:20 PerlJam (at least it did at the last release *I* did :)
20:20 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".
20:21 _sri the jvm might start slow, but you can use hacks like drip to make it look faster https://github.com/flatland/drip
20:22 jeffreykegler joined #perl6
20:22 uvtc Ok. Here. So, https://github.com/rakudo/rakudo​/blob/nom/docs/announce/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:22 masak tadzik: yes, Parrot was clearly doomed by Rakudo. it scared away all the other HLLs that it had already... um.
20:23 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:23 PerlJam tadzik: something like that.
20:23 atrodo tadzik: Wasn't that the stated goal of parrot?
20:23 masak note: we're not migrating *away* from Parrot. we're just targeting a good VM in addition.
20:23 PerlJam It's the curse of trying to design for an imaginary future.
20:24 atrodo (to be a vm for everyone)
20:24 tadzik atrodo: yes, and it failed at that goal
20:24 tadzik it's what Tene++ said more than once and more than twice: no one cared about maintaing language interop
20:24 tadzik so the first big goal died
20:24 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"   :)
20:25 masak "Parrot is a foundering project on top of a wonderful vision" http://irclog.perlgeek.de/​perl6/2011-08-23#i_4316480
20:25 Tene I did say that more than once.  That's accurate.
20:25 masak Tene++ # pioneering language interop
20:25 Tene http://blogs.gurulabs.com/stephen/2009/​05/cross-language-library-loading.html
20:25 tadzik yeah
20:26 tadzik that was thrilling
20:26 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:28 uvtc Dart has a little article on their site about the value of using a general-purpose VM vs. building their own custom one: http://www.dartlang.org/articles/why-not-bytecode/ . Not sure how much of that is relevant to the parrot discussion.
20:28 atrodo From where I stand, it looked like Parrot gave up on language interop to focus on rakudo, then it floundered
20:29 masak atrodo: that was after it decided to target "everyone" instead of Perl 6 for several years, though.
20:29 Tene atrodo: There was only one person who ever worked on language interop in Parrot.
20:29 masak atrodo: part of the story is that Parrot has had several leaders/architects over the years. with different goals.
20:29 tadzik atrodo: precisely. And then it said "we actually want to target everyone, not rakudo"
20:29 uvtc I had the same impression of Parrot as what tadzik describes above ("being a VM for everyone").
20:29 tadzik and so rakudo's goals and parrot's goals diverged
20:30 atrodo Tene: Which is disappointing, because that's why I got interested in parrot
20:30 Tene atrodo: Me too.
20:30 [Coke] atrodo: it was floundering before that.
20:30 tadzik parrot didn'd do everything to keep rakudo, so rakudo started to figure out its own solutions
20:30 tadzik (as I see it)
20:30 FROGGS nqp: my @a := ("a", "b", "c"); say("abc" ~~ /@a+/)
20:30 p6eval nqp: OUTPUT«abc␤»
20:30 [Coke] because in trying to please everyone, it was not really good anything.
20:30 masak tadzik: yes.
20:30 [Coke] good *at*
20:30 FROGGS r: my @a = ("a", "b", "c"); say("abc" ~~ /@a+/)
20:30 p6eval rakudo 4fb07b: OUTPUT«#<failed match>␤»
20:31 FROGGS nqp: my @a := ("a", "c", "b"); say("abc" ~~ /@a+/)
20:31 p6eval nqp: OUTPUT«abc␤»
20:31 FROGGS cool
20:31 masak tadzik: but even given that, chromatic was and is overreacting, framing "adding another VM" as "actively migrating away".
20:32 atrodo So does that mean anything that has the same goal of parrot is doomed from the beginning?
20:32 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"
20:33 PerlJam atrodo: not necessarily, though I'd say the probability is high.
20:33 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:33 PerlJam atrodo: but, again, it depends on how they go about accomplishing the goal.
20:33 diakopter masak: let's not sugar-coat it. parrot will be left behind rather quickly.
20:34 [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.
20:34 atrodo masak: Honestly, I think he's just as frustrated at parrot
20:34 PerlJam diakopter: maybe it will spur some good development in parrot-land?
20:34 colomon diakopter: but if it is left behind, it will be because it couldn't compete with JVM.
20:35 atrodo PerlJam: Without a major undertaking with tuit's, even by one person, parrot's probably done
20:35 atrodo Well, that's the way I feel anyways
20:37 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:37 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.
20:37 * diakopter stops breathing for a minute
20:37 diakopter (re colomon)
20:38 masak colomon: I...
20:38 masak colomon: that comes off as "very optimistic" at this point.
20:38 uvtc Are there plans for creating a separate/different Rakudo distribution for Rakudo + JVM?
20:38 diakopter a VM with 50,000 man hours is going to outperform one with a million?
20:39 masak I mean, not only is Parrot crap at backward-compat, I/O, GC, threads, and API documentation, it's slooooooooouuw.
20:39 atrodo diakopter: So you're saying v8 can't be faster than JVM?
20:39 skids well that depends what percent of those man-hours were focused on performance :-)
20:39 diakopter <sigh>
20:39 PerlJam uvtc: probably the default VM will just switch to be JVM with Parrot as an option.
20:39 diakopter atrodo: no, it can't. at what the JVM provides.
20:39 diakopter at implementing javascript, yes.
20:40 uvtc PerlJam: Ah, thanks.
20:41 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:41 masak exactly.
20:41 masak I remember the parrotsketch when chromatic first panicked about this.
20:42 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.
20:42 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.
20:42 masak as if the knowledge itself would be harmful.
20:42 masak "let's not go there! it won't lead to anything good!"
20:43 masak the JVM (or any other mature VM) representing some kind of dangerous knowledge that Man should never go near.
20:43 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.
20:44 masak s/even if (.*)//
20:44 masak colomon: Parrot can't outperform the JVM.
20:45 masak colomon: a cheetah cannot outperform the speed of sound.
20:45 diakopter at _anything_ that can be measured.
20:45 uvtc masak: <Gandalf>There are few who can.</gandalf>
20:45 tadzik I'm amused how chromatic is picking out IRC lines and responding to them on twitter
20:45 diakopter chromatic: your mom is a your mom joke. ;)
20:47 masak tadzik: chromatic has "quit" IRC :P
20:47 * masak waves to chromatic
20:47 diakopter we need a chromatic_x twitter relay bot
20:47 masak oh god no
20:47 jnthn I...I'm not sure we do. :)
20:48 tadzik ahaha
20:48 masak "we missed him so much, we rebuild him as software"
20:48 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.
20:48 diakopter I...can't believe either of you thought I was serious.
20:48 masak rebuilt*
20:48 masak colomon: understood. it's just that your framing doesn't pass the basic test of credibility ;)
20:50 masak diakopter: any sufficiently advanced irony is indistinguishable from sincerity.
20:50 PerlJam heh
20:51 diakopter s/was/was or even could possibly be/
20:51 masak diakopter: I've never met you in meatspace.
20:52 masak diakopter: I don't hear tone of voice when I read your IRC utterances.
20:52 diakopter ok. I should have ended it with a ! or ;)
20:53 diakopter also, s/your mom joke/<insert your mom joke here>/ to be clear
20:53 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"?
20:53 tadzik "On the internet nobody knows you're a dog"?
20:53 Tene masak: Poe's Law
20:53 masak right!
20:54 masak "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:54 masak like how people can't tell troll edits on ConservaPedia from honest edits ;)
20:56 PerlJam masak: so ... is chromatic a kook or playing one really well?   ;>
20:56 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?
20:56 * PerlJam wonders if "kook" counts for chromatic's derailing bingo card.
20:57 cognominal__ joined #perl6
21:00 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 swarley I was thinking about Go as a target language
21:02 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.
21:02 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:03 cognominal__ joined #perl6
21:03 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:04 diakopter masak: that's just not accurate. I can see how "trying to be helpful" is an internally-rational justification/motivation
21:04 uvtc Also, is the "--gen-nqp" required for building R*? (The readme doesn't mention it, but the rakudo.org/how-to page does.)
21:04 diakopter telling the world about dissatisfaction isn't the goal
21:05 jnthn uvtc: It's not needed; you'll get an NQP built for you with just --gen-parrot
21:05 jnthn uvtc: I think the --prefix just matters if you care where it ends up building it. Note it's not relocatable.
21:05 diakopter (also, I'm not claiming the trying to be helpful is failing)
21:05 uvtc jnthn: thanks. Not sure why I previously used --prefix.
21:05 ggoebel_ phenny: hug everyone
21:05 jnthn uvtc: Well, maybe you knew where you wanted it to install ;-)
21:06 skids .oO(maybe time rakudo/INSTALL.txt got a quick brushing)
21:07 uvtc jnthn: I'm guessing I just wanted it installed in the simplest/easiest way possible.
21:07 masak diakopter: I'm sorry. I'm just not very good at explaining chromatic's motivations.
21:07 cognominal joined #perl6
21:08 tadzik hugme: hug everyone
21:08 * hugme hugs everyone
21:08 uvtc Me so happy.
21:08 uvtc Me want to cry.
21:08 diakopter it must feel nice to be discussed at length as a third person :)
21:08 * uvtc has watched too much Seinfeld.
21:08 tadzik I'm so happy I
21:08 tadzik damn you, return key
21:08 tadzik I'm so happy I'm renaming myself to tadzik 7
21:09 masak http://pbfcomics.com/115/
21:09 tadzik :D
21:09 skids hugme: hug hugme
21:09 * hugme hugs hugme
21:09 skids Aw LTA
21:09 tadzik hugme: are awesome
21:10 tadzik hugme: hug are awesome
21:10 * hugme hugs are
21:10 tadzik pfft!
21:10 masak you need to use non-breaking spaces.
21:10 uvtc skids: No, I think the install doc (READM) for R* looks good. I was just confused.
21:10 uvtc README*
21:11 tadzik doy++
21:11 uvtc http://rakudo.org/how-to-get-rakudo/ mentions --gen-nqp, but maybe that's for building Rakudo, not R*.
21:12 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:13 uvtc readme contains install instructions.
21:13 masak hugme: hug are awesome
21:13 skids Because rakudo is a subdir in the * ditsro.
21:13 * hugme hugs are awesome
21:13 diakopter hugme: foo&nbsp;bar
21:13 diakopter hugme: hug foo&nbsp;bar
21:13 * hugme hugs foo&nbsp;bar
21:13 diakopter \o/
21:13 masak diakopter: " " <-- non-breaking space
21:14 masak diakopter: am I misreading irony again? :P
21:14 diakopter I need a macro for "I can't believe you thought I was serious"
21:14 masak hey, I was quicker this time in discovering it!
21:14 uvtc &nbsp;'s bend like a reed in the wind.
21:15 skids Emoticon early, emoticon often.
21:16 felher fun with regexes: http://www.coinheist.com/rubik​/a_regular_crossword/grid.pdf
21:17 skids something tells me the next p6cc will involve solving one of those.
21:18 jnthn felher: Oh wow...
21:18 felher jnthn: I can only recommend it. Was quite funny to solve :)
21:23 PerlJam jnthn: It's from http://www.mit.edu/~puzzle/
21:24 pupoque joined #perl6
21:24 felher PerlJam++ #thnx, didn't know that.  :)
21:27 Pleiades` joined #perl6
21:28 uvtc Currently, when building R*, the "Configure" step builds both Parrot and NQP, correct?
21:29 skids Yes.
21:29 jnthn uvtc: Yes
21:29 cognominal joined #perl6
21:29 uvtc jnthn: grazie.
21:30 uvtc Just finished the R* `make` step. Would be nice if it gave me a success message at the end.
21:31 uvtc I got:
21:31 uvtc /home/john/opt/rakudo-star-​2013.01/install/bin/parrot  -o RESTRICTED.setting.pbc src/gen/RESTRICTED.setting.pir
21:31 uvtc ./perl6 --target=pir --output=lib/lib.pir lib/lib.pm6
21:31 uvtc ./perl6 --target=pir --output=lib/Test.pir lib/Test.pm
21:31 uvtc ./perl6 --target=pir --output=lib/Pod/To/Text.pir lib/Pod/To/Text.pm
21:31 uvtc make[1]: Leaving directory `/home/john/opt/rakudo-star-2013.01/rakudo'
21:31 FROGGS well, make: Leaving... is success :o)
21:32 skids I thought it used to.
21:32 uvtc The "make[1]" makes me think it's returning with status 1 (rather than 0 == success).
21:32 FROGGS but some instructions would be nice
21:32 skids (used to say something like "you may now .... make install")
21:32 uvtc (regardless, the `make test` reports "Result: PASS" at the end. Which is nice.)
21:33 skids Note the install involves a lot of compiling of P6 code to pir.
21:35 geekosaur no, "make[1]" means that the make directly under the top level one finished
21:36 geekosaur 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:36 geekosaur nesting depth
21:36 uvtc geekosaur: Ah, thanks.
21:37 uvtc Still would be nice to see a little, "There. That wasn't so bad. Building has completed." message. :)
21:38 uvtc geekosaur: Yeah, the `make rakudo-test` ends the same way (after reporting PASS).
21:42 uvtc left #perl6
21:42 * skids notices decrease in IRC traffic after posting of rx crossword puzzle.
21:49 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:51 geekosaur ah.
22:00 cognominal joined #perl6
22:01 timotimo god, the twiter website is godawful for following conversations
22:13 cognominal joined #perl6
22:29 dalek nqp-jvm-prep: 07feece | jnthn++ | / (8 files):
22:29 dalek nqp-jvm-prep: Implement capture manipulation ops.
22:29 dalek nqp-jvm-prep:
22:29 dalek nqp-jvm-prep: These will be used by multiple dispatch.
22:29 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp​-jvm-prep/commit/07feeceb0b
22:29 dalek nqp-jvm-prep: c8228f6 | jnthn++ | / (2 files):
22:29 dalek nqp-jvm-prep: nqp::invokewithcapture; stub multi cache ops.
22:29 dalek nqp-jvm-prep:
22:29 dalek nqp-jvm-prep: The multi-dispatch cache can come later; may be a good LHF task since
22:29 dalek nqp-jvm-prep: it's porting something that already exists, mostly.
22:29 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp​-jvm-prep/commit/c8228f627e
22:29 dalek nqp-jvm-prep: ac11f0c | jnthn++ | nqp-src/NQPCORE.setting:
22:29 dalek nqp-jvm-prep: Pull in rest of multi-dispatch code.
22:30 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp​-jvm-prep/commit/ac11f0c246
22:30 dalek nqp-jvm-prep: 4914292 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java:
22:30 dalek nqp-jvm-prep: Fix a handful of thinkos.
22:30 dalek nqp-jvm-prep:
22:30 dalek nqp-jvm-prep: With this, multi-dispatch just about works.
22:30 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp​-jvm-prep/commit/4914292ec5
22:30 masak jnthn++ # doing stuff
22:30 timotimo sweet
22:31 timotimo maybe perl6 isn't going to die after all!
22:31 FROGGS hehe
22:31 moritz nr: die "OH BUT I'M DYING RIGHT NOW!!!"
22:31 p6eval rakudo 4fb07b: OUTPUT«OH BUT I'M DYING RIGHT NOW!!!␤  in block  at /tmp/Spkdibx8V0:1␤␤»
22:31 p6eval ..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.…
22:32 * 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:33 cognominal joined #perl6
22:33 timotimo :)
22:35 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:39 timotimo computers have very strange interpretations of what "complicated" and "easy" mean :D
22:40 jnthn oh...
22:40 jnthn I think I may see it.
22:51 dalek nqp-jvm-prep: 2974b29 | jnthn++ | nqp-src/NQPCORE.setting:
22:51 dalek nqp-jvm-prep: Missing null check.
22:51 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp​-jvm-prep/commit/2974b29d21
22:51 dalek nqp-jvm-prep: 88dc081 | jnthn++ | t/nqp/51-multi.t:
22:51 dalek nqp-jvm-prep: We now pass 51-multi.t.
22:51 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp​-jvm-prep/commit/88dc081dfe
22:53 timotimo ql
22:53 masak \o/
22:53 colomon \o/
22:56 jnthn To whoever had the segfault earlier: I think I just found a GC marking bug introduced into P6opaque.
22:57 donaldh joined #perl6
23:03 cognominal joined #perl6
23:14 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:14 cognominal joined #perl6
23:14 masak colomon: which part of it doesn't work?
23:14 jnthn ** with a closure is NYI
23:14 masak oh!
23:15 colomon yeah, that part
23:15 jnthn I think you may be able to make it with a * and an assertion or something like that.
23:15 jnthn *fake
23:15 masak does it work with a variable?
23:15 jnthn No, that's Equally Hard
23:15 masak oh, ok.
23:15 masak figures :)
23:15 jnthn As in, if we implement one the other is easy ;)
23:16 masak right.
23:16 masak I guess both of those offset some DFA-ness of the rule.
23:16 jnthn It kinda needs some kinda quantdyn subtype of QAST::Regex.
23:16 colomon it's easy enough to make it work for given N, but the general case is prettier.
23:16 jnthn Which, yes, is not declarative. :)
23:18 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:21 * masak .oO( bait deployed. will it work? ) :)
23:21 jnthn r: say '2 456' ~~ /(\d+) \s (\d)*? <?{ $1 == $0 }>/
23:21 p6eval rakudo 4fb07b: OUTPUT«「2 45」␤ 0 => 「2」␤ 1 => 「4」␤ 1 => 「5」␤␤»
23:21 jnthn r: say '1 456' ~~ /(\d+) \s (\d)*? <?{ $1 == $0 }>/
23:21 p6eval rakudo 4fb07b: OUTPUT«「1 4」␤ 0 => 「1」␤ 1 => 「4」␤␤»
23:21 jnthn r: say '3 456' ~~ /(\d+) \s (\d)*? <?{ $1 == $0 }>/
23:21 p6eval rakudo 4fb07b: OUTPUT«「3 456」␤ 0 => 「3」␤ 1 => 「4」␤ 1 => 「5」␤ 1 => 「6」␤␤»
23:21 * colomon is mostly hoping for a clever workaround for now
23:21 jnthn Can you do something with that?
23:22 colomon maybe.
23:23 colomon (making nom for family)
23:27 colomon this is relying on (\d)* returning a parcel, right?
23:28 dalek nqp: 263332d | jnthn++ | src/6model/reprs/P6opaque.c:
23:28 dalek nqp: Try and fix some offset calculations.
23:28 dalek nqp:
23:28 dalek nqp: May deal with the 32-bit issue, but something still seems amiss.
23:28 dalek nqp: review: https://github.com/perl6/nqp/commit/263332d381
23:28 jnthn colomon: Yes, it''d be more clearly written $1.elems == $0
23:31 skids joined #perl6
23:32 jnthn phenny: tell arnsholt I think some of the offset compuation wasn't quite right after all... Gave it a tweak in 263332d.
23:32 phenny jnthn: I'll pass that on when arnsholt is around.
23:36 sftp joined #perl6
23:38 cognominal joined #perl6
23:40 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:42 japhb_ (Yes, I am aware that it is rare not to have that be true.)
23:44 sftp joined #perl6
23:52 pmurias jnthn: we do you only use forceouterctx on nqp-java?
23:52 pmurias jnthn: what about nqp-js?
23:53 * pmurias is unbitrotting it
23:53 jnthn pmurias: No, it's the standard op for doing it.
23:53 jnthn pmurias: Maybe I didn't get the Parrot-targetting code to use it yet, but there's no reson I can't.
23:54 jnthn Actually nothing under :jvm(...) is very JVM specific.
23:56 pmurias ModuleLoader.class is
23:57 jnthn pmurias: I menat QAST::VM.new( :jvm(...) )
23:59 pmurias QAST::VM.new(:jvm(QAST::SVal.new( :value('ModuleLoader.class')) ;)

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs