Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-05-12

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:06 fgomez joined #perl6
00:13 dalek roast: 39bcd72 | jnthn++ | S05-metasyntax/angle-brackets.t:
00:13 dalek roast: Correct a precedence fail in a test. Rakudo unfudge.
00:13 dalek roast: review: https://github.com/perl6/roast/commit/39bcd72837
00:13 dalek rakudo/nom: 04b1809 | jnthn++ | src/ (3 files):
00:13 dalek rakudo/nom: Implement <( and )>.
00:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/04b180961a
00:17 dalek rakudo/nom: 8523061 | jnthn++ | docs/ChangeLog:
00:17 dalek rakudo/nom: Couple more ChangeLog entries.
00:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8523061b45
00:17 dalek rakudo/nom: 5f9d1ad | jnthn++ | docs/ROADMAP:
00:17 dalek rakudo/nom: Remove a completed item, update some items and add the mark_commit thing.
00:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5f9d1adcb5
00:21 xinming joined #perl6
00:24 colomon_ joined #perl6
00:27 jnthn 'night, #perl6
00:28 diakopter o/
00:34 wooden joined #perl6
00:34 wooden joined #perl6
00:37 derrazo joined #perl6
00:38 derrazo left #perl6
00:40 diakopter anyone around who knows git?
00:41 dalek nqp/add-goto: c98f22b | (Matthew Wilson)++ | src/ (3 files):
00:41 dalek nqp/add-goto: initial attempt at labels/goto. limitations: can't goto into/from a block if the block declares lexicals; can't forward goto (will aim at fixing this soon)
00:41 dalek nqp/add-goto: review: https://github.com/perl6/nqp/commit/c98f22b43f
00:41 dalek nqp/add-goto: f0bf33d | diakopter++ | / (2 files):
00:41 dalek nqp/add-goto: Merge github.com:perl6/nqp into add-goto
00:41 dalek nqp/add-goto: review: https://github.com/perl6/nqp/commit/f0bf33d325
00:42 diakopter hunh. why do my commits have different usernames
00:48 colomon joined #perl6
01:00 mikec_ joined #perl6
01:02 thou joined #perl6
01:25 felher Hey folks. Why was ./lib/ removed from nom's @*INC?
01:28 Loki7 joined #perl6
01:43 derrazo joined #perl6
01:50 wolfman2000 joined #perl6
01:54 derrazo_ joined #perl6
01:56 tokuhirom joined #perl6
01:56 JimmyZ joined #perl6
01:57 JimmyZ felher: see http://6guts.wordpress.com/20​12/05/08/since-the-hackathon/
01:57 Guest15969 joined #perl6
01:58 spaceships joined #perl6
01:58 felher JimmyZ++, thanks a lot :)
01:59 felher and jnthn++ for the blogpost, that i totally missed :)
01:59 felher *which
02:01 Loki7 left #perl6
02:05 Guest15969 left #perl6
02:07 Guest15969 joined #perl6
02:08 Guest15969 left #perl6
02:09 Guest15969 joined #perl6
02:09 Guest15969 left #perl6
02:11 PacoAir joined #perl6
02:32 orafu joined #perl6
02:38 carlin_ joined #perl6
02:42 leprevost joined #perl6
02:49 thou joined #perl6
02:50 sorear diakopter: I know some git
03:09 jaldhar joined #perl6
03:29 bruges joined #perl6
03:35 d4l3k_ joined #perl6
03:37 dalek joined #perl6
03:37 masak joined #perl6
03:37 Juerd joined #perl6
03:38 [Coke] joined #perl6
03:38 pmichaud joined #perl6
03:38 Util joined #perl6
03:38 tadzik joined #perl6
03:41 dalek joined #perl6
03:44 dalek joined #perl6
03:44 Util joined #perl6
03:44 Juerd joined #perl6
03:44 hugme joined #perl6
03:47 dalek joined #perl6
03:48 lestrrat joined #perl6
03:50 d4l3k_ joined #perl6
03:52 dalek joined #perl6
03:53 derrazo_ joined #perl6
03:53 masak joined #perl6
03:53 pmichaud joined #perl6
03:56 dalek joined #perl6
03:58 d4l3k_ joined #perl6
03:58 pmichaud joined #perl6
04:01 Juerd joined #perl6
04:02 dalek joined #perl6
04:04 d4l3k_ joined #perl6
04:04 pmichaud joined #perl6
04:08 Juerd joined #perl6
04:08 d4l3k_ joined #perl6
04:08 benabik joined #perl6
04:09 plutoid joined #perl6
04:10 dalek joined #perl6
04:14 araujo joined #perl6
04:14 araujo joined #perl6
04:14 dalek joined #perl6
04:16 d4l3k_ joined #perl6
04:20 dalek joined #perl6
04:23 masak joined #perl6
04:23 dalek joined #perl6
04:25 Util joined #perl6
04:26 dalek joined #perl6
04:29 dalek joined #perl6
04:31 masak joined #perl6
04:32 d4l3k_ joined #perl6
04:34 kaare_ joined #perl6
04:34 Util joined #perl6
04:35 dalek joined #perl6
04:40 tadzik joined #perl6
04:40 dalek joined #perl6
04:40 PerlJam joined #perl6
04:41 masak joined #perl6
04:41 Util joined #perl6
04:43 birdwindupbird joined #perl6
04:43 p6eval joined #perl6
04:45 hugme joined #perl6
05:10 mikec_ joined #perl6
05:14 moritz \o
05:14 sisar o/
05:15 sorear o|
05:19 sisar moritz: on rakudo.org, now that Rakudo development has fully switched to nom, "How to get Rakudo Perl 6" and "How to get Rakudo nom" don't make any sense, right?
05:19 moritz sisar: right
05:19 sisar where is the source code for the page, i would like to fix that
05:19 sisar *the site
05:20 moritz sisar: it's a wordpress installation, nothing in git :(
05:20 moritz sisar: create an account, and I'll ask pmichaud++ to give you suffificent permissions
05:20 sisar moritz: oh, ok
05:21 moritz sisar: and tell me the account name once you have done it :-)
05:21 sisar moritz: you mean a wordpress.com account ?
05:22 moritz sisar: no, a rakudo.org account
05:22 sisar ah
05:22 moritz hm, not sure if account creation is public
05:22 moritz I'll investigate
05:26 moritz sisar: see /msg
05:27 sisar moritz: a few days back you were considering renaming 'nom' back to 'master'. What happened to it ?
05:27 moritz sisar: I want to clear it with pmichaud first
05:30 sisar moritz++
05:30 sisar i need to get a bit familiar with wordpress first :)
05:30 sisar looks kinda easy
05:32 moritz sisar: when you are logged in, you can click on 'Pages' on the left
05:32 moritz sisar: I'm not sure, but I guess that's where you'll find a way to change the front page
05:33 moritz hm, maybe not
05:33 moritz I'll leave it to you :-)
05:44 mdupont joined #perl6
05:45 dalek rakudo/version: f85e438 | moritz++ | / (4 files):
05:45 dalek rakudo/version: first shot at Version literals and objects
05:45 dalek rakudo/version:
05:45 dalek rakudo/version: LTM-fail means that  v6-split() is parsed as a version number, not as a sub call :(
05:45 dalek rakudo/version: review: https://github.com/rakudo/rakudo/commit/f85e438fc2
05:45 dalek rakudo/version: 6c2a8b5 | moritz++ | src/ (3 files):
05:45 dalek rakudo/version: fix version literal parsing. Add Version.perl
05:45 dalek rakudo/version: review: https://github.com/rakudo/rakudo/commit/6c2a8b5e5c
05:50 jaldhar joined #perl6
06:25 dalek rakudo/nom: 85f636b | moritz++ | / (4 files):
06:25 dalek rakudo/nom: first hacky shot at Version and version literals
06:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/85f636b2b0
06:25 moritz that's a squashed merge of the version branch
06:32 HarryS joined #perl6
06:40 icwiener joined #perl6
06:42 icwiener moritz: Hi. If you say Now fixed in 2012.04.1-93-g128e996", what does that refer to? Is that in Parrot or in Rakudo? I updated today and it does not work, that's why I ask.
06:42 benabik 2012.04 is a rakudo version number, not a Parrot.
06:43 icwiener Hmm, ok. What branch is recommended to use then? It seems that commit is neither in master nor in nom?
06:44 benabik It's in nom.
06:44 benabik https://github.com/rakudo/rakudo/commit/​128e996df225d487afead52630bba3163e8ca3c0
06:44 icwiener Hmm, let me look locally again.
06:45 moritz icwiener: that's a rakudo revision
06:47 icwiener Oh, my./ the 'g' is not part of the commit hash? Learning that cost me almost an hour. :D
06:47 benabik The g is to mark it as a commit hash.
06:47 icwiener Thank you both for your help. :)
06:47 benabik Commits are hexadecimal, and g's one too far.
06:47 icwiener Yep, makes sense somehow. But one has to know. :)
06:48 icwiener Oh, right. Now I feel stupid. :(
06:48 benabik icwiener: Happens to the best of us.
06:48 benabik Well, at least it happens to me, and occasionally I have ego.
06:48 fgomez joined #perl6
06:48 icwiener :)
06:49 icwiener When I focus on other things, I miss quite obvious things quite often.
06:59 icwiener Now it works. :)
07:02 moritz icwiener: nearly all git tools accept the full string '2012.04.1-93-g128e996' in place of a SHA1
07:02 moritz ie you can do 'git show 2012.04.1-93-g128e996', and it works
07:03 icwiener Ah, nice.
07:13 Entonian joined #perl6
07:14 thelazydeveloper joined #perl6
07:16 dalek zavolaj: 8619523 | (Arne Skjærholt)++ | lib/NativeCall.pm6:
07:16 dalek zavolaj: Add vim modeline to NativeCall.pm6.
07:16 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/8619523b9a
07:16 dalek zavolaj: e94f45c | (Arne Skjærholt)++ | / (3 files):
07:16 dalek zavolaj: Tests and support functions for explicitly managing strings.
07:16 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/e94f45ca4d
07:16 dalek zavolaj: 216d11c | (Arne Skjærholt)++ | lib/NativeCall.pm6:
07:16 dalek zavolaj: Pass encoding parameter to CStr representation.
07:16 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/216d11cb48
07:16 dalek zavolaj: a4f37b4 | (Arne Skjærholt)++ | lib/NativeCall.pm6:
07:16 dalek zavolaj: Make Str parameter of explicitly-manage rw. moritz++
07:16 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/a4f37b4516
07:16 dalek zavolaj: b356310 | moritz++ | / (3 files):
07:16 dalek zavolaj: Merge branch 'cstr'
07:16 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/b356310737
07:16 dalek zavolaj: 2a2c373 | moritz++ | t/0 (7 files):
07:16 dalek zavolaj: include path fixes
07:16 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/2a2c37336a
07:16 dalek zavolaj: d419ffa | moritz++ | lib/NativeCall.pm6:
07:16 dalek zavolaj: adapt to updated trait calling conventions
07:16 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/d419ffa4ce
07:22 alim joined #perl6
07:24 masak good morning, Tuscon!
07:25 moritz good shark, masak!
07:26 dalek zavolaj: a78f01d | moritz++ | lib/NativeCall.pm6:
07:26 dalek zavolaj: update calling convention of other traits too
07:26 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/a78f01dfa5
07:26 moritz U MAKED ME A NATIFCALL BUT I FIXED IT 4 U!
07:32 sorear masak: Tuscon?
07:33 sorear you just took a trip from Sweden to ... Arizona?
07:34 sorear I am thinking you have made a terrible blunder! :D
07:34 * sorear imagines masak standing in a small sea of sweat
07:34 moritz I don't think masak is in Alberta anymore :-)
07:34 sorear why Alberta?
07:35 moritz sorear: it's a "Wizard of Oz" reference
07:35 sorear doesn't masak live in Malmö ?
07:35 sorear moritz: iirc the original line used Kansas
07:35 moritz oh
07:36 * moritz should update his memes
07:42 Entonian joined #perl6
07:45 dalek DBIish: b3973e7 | moritz++ | t/ (2 files):
07:45 dalek DBIish: [t] skp all tests if the first connect throws an error
07:45 dalek DBIish: review: https://github.com/perl6/DBIish/commit/b3973e7aa2
07:45 masak yes, the original line used is Kansas.
07:46 masak "good morning Tuscon" is a song by Jonathan Coulton.
07:46 masak http://www.jonathancoulton.com/​wiki/Good_Morning_Tucson/Lyrics
07:51 sorear masak: oh, you aren't actually in the process of sacrificing yourself to the Sun? *phew*
07:52 masak ;)
07:53 NamelessTee joined #perl6
07:56 zhutingting joined #perl6
07:58 tadzik good mornings
08:02 noam joined #perl6
08:05 moritz nah, Sun has been bought by Oracle :(
08:07 sorear Oracle does not own the giant thermonuclear furnace in the sky.
08:07 sorear Yet.
08:11 masak sorear: http://www.qwantz.com/index.php?comic=2200
08:15 tadzik heh, every image is the same, only the text changes. I can't help but think what a waste of storage and bandwidth this is :)
08:17 masak I can't believe the guy has written 2200 of those.
08:17 tadzik ...without anyone telling him!
08:17 mdupont joined #perl6
08:18 tadzik or maybe the server just keeps the background image and generates jpgs automagically, on demand
08:18 tadzik I should probably be reading dinosaur comics instead of thinking about this
08:19 masak probably.
08:23 sorear but it uses pngs.
08:34 masak as it should.
08:34 masak jpg is lossy.
08:35 masak and reading pixellated text in it would make the eyes water :/
08:46 masak good git commit messages: http://news.ycombinator.com/item?id=3961358
08:49 fhelmberger joined #perl6
08:53 lestrrat joined #perl6
08:55 mucker joined #perl6
08:57 tadzik I think the last line wants to be two lines
09:10 JimmyZ joined #perl6
09:10 moritz probably hn markup fail
09:11 moritz tadzik: how do I run modules mass test?
09:13 tadzik moritz: https://github.com/tadzik/emmentaler#README has instructions
09:13 moritz tadzik: thanks
09:13 tadzik DBIish should pass everywhere now, aye?
09:14 moritz it should, yes
09:15 tadzik I ponder a thought of stating a policy of
09:15 tadzik "please keep master working and stable, and do development in devel-ish branches" for modules
09:15 tadzik then versioning is easier too; one just bumps version in META.info on branch merges
09:17 tadzik oh, and since we have a Template::Mojo I could probably write formatter in Perl 6 too :)
09:19 moritz tadzik: I have a small patch that silences a warning in emmentaler. Want to give me a commit bit?
09:19 tadzik moritz: sure
09:19 moritz erm, sorry, that should have been "CAN HAZ ..." :-)
09:20 tadzik add'd :)
09:20 moritz push'd
09:20 dalek emmentaler: 5228d87 | moritz++ | smoker:
09:20 dalek emmentaler: silence a warning
09:20 dalek emmentaler: review: https://github.com/tadzik/e​mmentaler/commit/5228d876f5
09:21 tadzik hmm, that seems to be a common idiom, panda got that too recently
09:25 moritz flussence: Text-Tabs-Wrap needs a few   use lib '.'  in some test files
09:25 tadzik that's odd
09:25 moritz flussence: CAN HAZ commit bit PULESE?
09:26 tadzik ah, I see a reason
09:26 moritz flussence: I can send you a patch too if you prefer that
10:00 localhost joined #perl6
10:00 spider-mario joined #perl6
10:23 whiteknight joined #perl6
10:52 moritz http://www.groklaw.net/articl​e.php?story=20120511165908331 on the one hand, I'm fascinated how detailed they go into the dex/dalvik code
10:52 moritz OTOH I don't think a non-technical jury will understand much of it
10:55 alim joined #perl6
11:07 mucker joined #perl6
11:10 colomon joined #perl6
11:19 jnthn Afternoon, #perl6
11:20 moritz \o jnthn
11:24 mdupont joined #perl6
11:25 goraki joined #perl6
11:25 tadzik oh shark jnthn
11:25 jnthn moritz++ # version literals, zavolaj merging, etc :)
11:26 jnthn r: say 'foo123bar' ~~ / foo <( 123 bar /
11:26 p6eval rakudo 85f636: OUTPUT«=> <123bar>␤␤»
11:26 moritz jnthn: sadly I'm a bit stuck with the enum-nonint branch
11:26 jnthn r: say 'foo123bar' ~~ / foo <( 123 )> bar /
11:26 p6eval rakudo 85f636: OUTPUT«=> <123>␤␤»
11:26 jnthn \o/
11:26 jnthn moritz: OK, I'll be able to take a look at it later today. What's it stuck on?
11:27 moritz jnthn: it dies with "Can only use nqp_get_sc_for_object with a SixModelObject", in World.get_ref, called (indirectly) from nqp;Perl6;Actions;term:sym<name>
11:27 moritz while compiling the setting
11:27 jnthn Wow :)
11:27 moritz I assume that it's while accessing an element of the Order enum
11:27 moritz hm, maybe one of the values is not a properl 6model object
11:28 moritz jnthn: is there any easy-ish way to test from PIR if something contains a 6model object?
11:28 jnthn That can happen if, for example, you were pass a PAST node instead of an object or something...
11:28 jnthn moritz: typeof should
11:28 jnthn Oh...maybe...
11:28 jnthn r: nqp::say(pir::typeof__SP(42))
11:28 p6eval rakudo 85f636: OUTPUT«Int␤»
11:29 moritz I thought typeof was transparent to 6model vs. non-6model
11:29 jnthn Yeah, it hadn't used to be. :)
11:29 moritz r: nqp::say(pir::typeof__SP(pir::set__PI(42)))
11:29 p6eval rakudo 85f636: OUTPUT«Null PMC access in set_integer_native()␤  in block <anon> at /tmp/WJtyUaVlo7:1␤␤»
11:29 jnthn moritz: Anything like .WHAT will fail on non-6model immediately though
11:29 moritz jnthn: ah, good idea
11:30 moritz jnthn: then I at least know a way to attack the problem
11:30 jnthn But anywya, if you suspect what a certain thing, typeof is good. Because if it comes up with, say, Undef or Integer, you know "oh, a Parrot type snuck in"
11:30 jnthn wtf, that sentence made no sense at all
11:30 jnthn if you suspect a certain variable is to blame
11:30 jnthn :)
11:31 moritz wait, repr_change_type is in-place, right?
11:31 jnthn Yes.
11:31 moritz ok, that simplifies the World code a bit more
11:32 jnthn Thus my "clone the value and then change the type of the clone"
11:32 jnthn Since you still need the original one around.
11:32 moritz oh, I forgot to clone
11:32 moritz hm
11:32 moritz that's not good
11:32 moritz with nqp::clone?
11:32 jnthn No, don't use that on 6model objects
11:32 jnthn I was gonna say .clone
11:33 jnthn BUT we have enums in the setting so that's probably a bad idea
11:33 jnthn pir::repr_clone_PP(...) # forget if we have an nqp:: for that yet
11:35 moritz no, the nqp::clone is just clone__PP
11:42 jnthn bbiab
11:50 tadzik r: my @a = qw<<< a b c d >>>; say @a.perl
11:50 p6eval rakudo 85f636: OUTPUT«Array.new("a", "b", "c", "d")␤»
11:50 tadzik how (where) does rakudo implement quoting with arbitrary number of delimiters?
11:51 moritz all the values passed to $*W.create_enum_value are proper sixmodel values
11:51 moritz tadzik: look for quote:sym<qw> in Grammar.pm
11:51 moritz tadzik: it probably calls into some obscure quoting method from NQP or HLL::Compiler or so
11:51 tadzik true
11:53 tadzik it just uses quote_EXPR
11:54 moritz is that still some wad of impenetrable PIR code?
11:54 tadzik not anymore, it seems :_)
11:55 tadzik but the heart of it is quote_delimited, which may be what I need
11:55 dalek tablets: 0936234 | (Hayden Stainsby)++ | docs/tablet-2-basic-syntax.txt:
11:55 dalek tablets: Grammatical corrections and a couple of extra defs
11:55 dalek tablets: review: https://github.com/perl6/tablets/commit/0936234a75
11:58 JimmyZ joined #perl6
11:59 NamelessTee joined #perl6
12:11 PacoAir joined #perl6
12:11 isBEKaml joined #perl6
12:16 JimmyZ_ joined #perl6
12:19 jnthn tadzik: See my patch for < foo bar baz > in regexes last night, which also involved quote_delimited.
12:20 tadzik seems that quote_delimited doesn't help me much. I'm trying to implement arbitrary number of <<'s in formatting codes, and they content can be Pod too, so quote_delimited is not enough
12:20 moritz jnthn: I'm stuck again on origin/enum-nonint. All enum values seem to be fine 6model objects (Int in the case of Order, then promoted to Order), so I don't know where that error message might come from :/
12:20 tadzik so I'm trying to use <starter> and <stopper> by hand
12:23 jnthn moritz: OK, will build it here while I make some noms :)
12:26 tadzik weird. self.pos() in Grammar.pm gives me Method 'pos' not found for invocant of class 'String'. It seems to work in other methods
12:28 jnthn moritz: Looking more closely at the stack trace where it crashes...
12:28 jnthn moritz: I'm suspsecting it is failing when it tries to do a lookup of the enum, or maybe an enum value.
12:28 jnthn moritz: It's happening in term:sym<name>, and looks like whatever was installed under that name is the wrong thing.
12:30 plobsing joined #perl6
12:32 jnthn moritz: Am I missing it, or has the code to install the enum type itself vanished?
12:32 jnthn moritz: oh...I see it
12:32 jnthn $*W.install_package($/, $longname.type_name_parts('enum name', :decl(1)), ($*SCOPE || 'our'), 'enum', $*PACKAGE, $*W.cur_lexpad(), $type_obj);
12:32 jnthn That comes too early
12:33 jnthn It needs to come almost at the end, after the other call to make_type_obj
12:40 Chillance joined #perl6
12:50 colomon_ joined #perl6
12:51 skids joined #perl6
12:57 moritz ok
13:03 moritz right, if I change the order, I can get through the setting
13:04 rurban joined #perl6
13:05 dalek rakudo/enum-nonint: f48c49d | moritz++ | src/Perl6/ (2 files):
13:05 dalek rakudo/enum-nonint: install enum after it has been created.
13:05 dalek rakudo/enum-nonint:
13:05 dalek rakudo/enum-nonint: also clone the enum value before downcasting it
13:05 dalek rakudo/enum-nonint: review: https://github.com/rakudo/rakudo/commit/f48c49d321
13:05 moritz jnthn++
13:08 moritz http://alan.dipert.org/post/15​3430634/the-march-of-progress
13:08 moritz and in p6, you can drop the parens :-)
13:08 dalek tablets: 36571be | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
13:08 dalek tablets: added glossary term symbol
13:08 dalek tablets: review: https://github.com/perl6/tablets/commit/36571be37e
13:08 dalek tablets: 6b69705 | (Herbert Breunung)++ | docs/tablet-2-basic-syntax.txt:
13:08 dalek tablets: Merge branch 'master' of github.com:perl6/tablets
13:08 dalek tablets: review: https://github.com/perl6/tablets/commit/6b69705bf5
13:12 jnthn moritz: yay
13:13 jnthn moritz: Do the enum tests still pass after these changes, ooc?
13:14 jnthn *lol* at the Java in 1996 one from that blog post :)
13:14 tadzik Enterprise Printing Since 1996 ;)
13:15 cognominal joined #perl6
13:16 isBEKaml moritz: java was the slump in '96? :)
13:17 isBEKaml I can almost see it like a bell curve in terms of number of lines.
13:39 moritz jnthn: seems ssome spectests hang. I'm trying to find out which ones
13:41 moritz oh wtf
13:41 moritz t/spec/S02-lexical-conventions/comments.rakudo is the first test that loops
13:41 moritz wtih
13:41 moritz use of uninitialized value of type Any in string context repeated quite some times
13:43 JimmyZ moritz: I'm just curious with this line: "make_type_obj unless $has_base_type", but the make_type_obj definition has a arg
13:43 moritz JimmyZ: good catch, thanks
13:44 moritz JimmyZ: though that line only triggers for empty enums
13:45 * JimmyZ is just curious how it can be compiled ...
13:45 JimmyZ r: sub f($foo) { say $foo }; f if 0;
13:45 p6eval rakudo 85f636: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'f' will never work with no arguments (line 1)␤    Expected: :($foo)␤»
13:45 moritz JimmyZ: nqp only checks arguments at run time
13:45 moritz JimmyZ: it's nqp code
13:45 JimmyZ oh
13:45 jnthn Additionally, in nqp f is not a call
13:45 jnthn It's always a term.
13:45 jnthn f() is a call
13:46 moritz oh right
13:46 JimmyZ that explains it...
13:46 moritz anyway, I still don't see why S02-lexical-conventions/comments.rakudo could possibly hang
13:47 moritz there's no enum declaration in the whole file
13:47 moritz and I don't see any enum used either
13:48 jnthn moritz: Does it use e.g. the cmp or <=> operator?
13:48 jnthn moritz: Or generally, anything that uses the Order enum...
13:48 moritz the test that fails is
13:49 moritz oh wait, now it fails much earlier
13:49 moritz oh, ranges loops
13:49 jnthn They certainly use things taht rely on the Order enum
13:49 jnthn Does 1 <=> 2 loop in the repl?
13:49 moritz ./perl6 -e 'say +Increase'
13:49 moritz use of uninitialized variable $!value of type Any in numeric contextuse of uninitialized value of type Any in string contextuse of uninitialized value of
13:50 jnthn aha
13:50 moritz and then loops
13:50 jnthn ouch
13:50 jnthn I'm thinking that $!value ain't being set properly then
13:50 jnthn It should be set to the original thingy that you later clone and rebless.
13:50 moritz ah
13:50 moritz I don't do that, I think
13:50 jnthn ah :)
13:51 moritz I thought I didn't need to, because I reblessed the thing, so the orignal was still there, in some sense
13:51 jnthn moritz: I'm sure it's "still there", but if it's not being installed in $!value...
13:51 moritz right
13:51 jnthn Anyway, I expect a lot of things will be quite upset if they're missing that.
13:51 zhutingting joined #perl6
13:51 moritz yes, I noticed :-)
13:52 moritz easy enough to fix too
13:52 moritz (at least I hope :-)
13:58 sisar joined #perl6
13:58 not_gerd joined #perl6
13:58 not_gerd moritz: https://github.com/libtom/libtommath/issues/3
13:58 not_gerd the current code can lose precision unnecessarily
13:59 moritz not_gerd: actually I had an updated version in the nqp repo already
13:59 moritz not_gerd: which I had not posted on that issue tracker, iirc
13:59 not_gerd as far as I can tell, the noop-loop is unneessary
14:00 not_gerd I only read the code, not tried it, though ;)
14:00 moritz it had other problems, iirc
14:00 moritz src/ops/nqp_bigint.ops in nqp has the code we currently use
14:01 not_gerd moritz: reading...
14:02 not_gerd moritz: still the same problem - it only inspects 2 digits, but it might need to inspect 3 to get the full 53 bits of double precision
14:02 alim joined #perl6
14:03 not_gerd my code is missing a call to mp_clamp(), though
14:08 fgomez joined #perl6
14:14 not_gerd to be fully generic, we'd actually need to pach parrot's configuration system as well
14:14 flussence oh hai
14:14 not_gerd currently, we do not know the precision of FLOATVAL
14:14 flussence moritz: I'll give you a commit bit on that
14:14 not_gerd s/pach/patch/
14:15 JimmyZ joined #perl6
14:17 moritz not_gerd: but usually it's just a double
14:21 tokuhirom joined #perl6
14:22 moritz flussence: patch pushed
14:23 not_gerd moritz: perhaps Configure.pl should warn if floatval isn't a double?
14:23 moritz maybe
14:24 not_gerd take a look at parrot for what not to do: it has configurable intval and opcode_t, but if intval != opcode_t, stuff breaks...
14:24 flussence moritz++
15:00 not_gerd left #perl6
15:08 alim_ joined #perl6
15:11 orphu left #perl6
15:20 [Coke] phenny: ask not_gerd if there's a ticket for the intval/opcode_t bug in parrot
15:20 phenny [Coke]: I'll pass that on when not_gerd is around.
15:21 dalek rakudo/enum-nonint: f72c306 | moritz++ | src/Perl6/ (2 files):
15:21 dalek rakudo/enum-nonint: two enum fixups, jnthn++ JimmyZ++
15:21 dalek rakudo/enum-nonint: review: https://github.com/rakudo/rakudo/commit/f72c3066c8
15:22 moritz ok, now enums work if you explicitly provide the values
15:28 tadzik what do you mean?
15:29 plobsing joined #perl6
15:29 tadzik oh, no .succ?
15:30 moritz it does call .succ
15:30 moritz but it complains that it can't call repr_change_type on a non-6model value
15:33 tadzik Oh, .succ may change type, aye?
15:34 tadzik like, Int -> BigInt
15:35 moritz thereis no BigInt type
15:35 moritz Int stays Int
15:35 moritz Str.succ also returns a Str
15:35 moritz r: say Int.succ
15:35 p6eval rakudo 85f636: OUTPUT«Parameter '' requires an instance, but a type object was passed␤  in method succ at src/gen/CORE.setting:2666␤  in block <anon> at /tmp/aLauviio9x:1␤␤»
15:36 tadzik hmm, so why would it repr_change_type upon .succ?
15:36 moritz if we do an enum A <b c>;, then $cur_value for 'b' is 0, but we want it to be of type A
15:37 moritz ie we fudge up type A to inherit from Int
15:37 plutoid joined #perl6
15:37 moritz and then downcast the Int 0 to the A 0
15:37 moritz aund it dies with "Can only use repr_change_type on SixModelObjects"
15:38 Enlik joined #perl6
15:38 moritz even though it pir::typeof__SP($value) says it's an Int
15:38 moritz which looks pretty SigModelObject-ish to me
15:38 tadzik aye
15:39 moritz on the upside, Str enums work
15:39 moritz $ ./perl6 -e 'enum A (b => "foo", c => "bar"); say b.Str;'
15:39 moritz foo
15:40 tadzik odd
15:40 moritz and it even works with
15:40 moritz ./perl6 -e 'enum A (b => 0, "c"); say c.Int;'
15:40 moritz 1
15:40 moritz so it's the default value that is off somehow
15:41 moritz my $cur_value := nqp::box_i(-1, $*W.find_symbol(['Int']));
15:41 moritz r: my $cur_value := nqp::box_i(-1, $*W.find_symbol(['Int'])); say $cur_value
15:41 p6eval rakudo 85f636: OUTPUT«Dynamic variable $*W not found␤  in method <anon> at src/gen/CORE.setting:8776␤  in <anon> at src/gen/Metamodel.pm:2260␤  in any find_method_fallback at src/gen/Metamodel.pm:2258␤  in any find_method at src/gen/Metamodel.pm:828␤  in block <anon> at /tmp/FLigbASday:…
15:42 moritz r: my $cur_value := BEGIN nqp::box_i(-1, $*W.find_symbol(['Int'])); say $cur_value
15:42 p6eval rakudo 85f636: OUTPUT«(signal SEGV)»
15:42 moritz ooh look, a SEGV
15:42 moritz r: BEGIN { my $cur_value := nqp::box_i(-1, $*W.find_symbol(['Int'])); say $cur_value }
15:42 p6eval rakudo 85f636: OUTPUT«(signal SEGV)»
15:44 moritz r: BEGIN { my $cur_value := nqp::box_i(-1, Int); say $cur_value }
15:44 p6eval rakudo 85f636: OUTPUT«-1␤»
15:45 moritz r: BEGIN { my $cur_value := nqp::box_i(-1, Int); say $cur_value.succ }
15:45 p6eval rakudo 85f636: OUTPUT«0␤»
15:46 * moritz has no clue what's wrong
15:54 moritz jnthn: I fear you have to look at that again
15:59 ranguard joined #perl6
16:09 jnthn moritz: You're passing NQP code a Perl 6 Array.
16:09 masak salut, #perl6
16:09 jnthn In the BEGIN above
16:09 jnthn Not surprised it fails.
16:09 jnthn But why the .succ call would fail from Actions...that's odd.
16:15 jnthn moritz: If you say($cur_value) after the .succ call, what does it give?
16:18 snearch joined #perl6
16:18 snearch joined #perl6
16:19 moritz why should it fail in the BEGIN?
16:20 moritz I've tried to diagnose the non-6model type in repr_change_type
16:20 moritz ... and I got a segfault
16:20 jnthn $*W.find_symbol(['Int'])
16:20 jnthn You're writing Perl 6 code. [...] is a Perl 6 Array.
16:20 moritz oh
16:21 jnthn find_symbol is used to getting an RPA
16:21 skyheights joined #perl6
16:21 jnthn But anyway, the call you have in CORE.setting should work out fine
16:21 jnthn Though, using the integer constant thing would probably be easier.
16:21 jnthn We already have a 0 in the SC somewhere probably :)
16:22 moritz we need -1
16:22 jnthn oh
16:22 moritz because I only call .succ if no value is supplied
16:22 jnthn Right
16:22 jnthn In this code path, when does make_type_obj get called?
16:23 jnthn I think it's complaining about the $type_obj not being a 6model object, not what comes back from .succ
16:23 jnthn Yeah, if the first thing ain't a pair, I think we never call make_type_obj
16:24 jnthn But we pass $type_obj to create_enum_value
16:24 jnthn That seems to be why it fails.
16:24 jnthn The succ call itself is probably fine.
16:29 moritz oh
16:33 fgomez joined #perl6
16:34 tokuhirom joined #perl6
16:37 * moritz currently has a cold, and uses that as an excuse for his sloppy coding
16:37 jnthn awww
16:37 jnthn get well soon
16:38 moritz thanks
16:38 moritz qwq
16:38 moritz q
16:39 moritz no, not Ronja's fault :-)
16:41 tokuhirom joined #perl6
16:41 masak she's trying to quit irssi :)
16:41 moritz no, vim :-)
16:44 ranguard joined #perl6
16:51 masak well, it requires tricky motor skills to do a colon on most keyboard layouts.
16:51 masak just 'q' in vim will record a macro into some register.
16:54 moritz actually I was just joking around; it was just me typing into a laggy ssh connection, and the wrong screen window too
16:56 moritz most tests pass again
16:56 moritz I suspect the two failures are due to my branch being out of date
16:57 masak moritz: oh, you said '*not* Ronja's fault'. I misread that :)
16:57 dalek rakudo/enum-nonint: d2012e2 | moritz++ | src/Perl6/Actions.pm:
16:57 dalek rakudo/enum-nonint: fix enums without explicit values
16:57 dalek rakudo/enum-nonint: review: https://github.com/rakudo/rakudo/commit/d2012e2a7e
17:00 ranguard joined #perl6
17:00 alim joined #perl6
17:10 fgomez joined #perl6
17:11 ranguard joined #perl6
17:23 spider-mario r: say Order.^methods
17:23 p6eval rakudo 85f636: OUTPUT«enums kv pair perl pick roll Int postcircumfix:<( )> Str Numeric gist <anon> <anon> Int Num Rat FatRat abs Bridge chr succ pred sqrt base floor round ceiling sign conj rand sin asin cos acos tan atan atan2 sec asec cosec acosec cotan acotan sinh asinh cosh acosh ta…
17:24 spider-mario where does it get e.g. cos from?
17:24 spider-mario n: say Order.^methods
17:24 p6eval niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: Unable to resolve method methods in class ClassHOW␤  at /tmp/T4MJRS1wu7 line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3842 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3843 (module-CORE @ 65) ␤  at …
17:24 moritz r: say Order.^mro(:all)
17:24 p6eval rakudo 85f636: OUTPUT«too many named arguments: 1 passed, 0 used␤  in any mro at src/gen/Metamodel.pm:669␤  in block <anon> at /tmp/IagCum6Bg0:1␤␤»
17:24 moritz r: say Order.^mro()
17:24 p6eval rakudo 85f636: OUTPUT«Order() Int() Cool() Any() Mu()␤»
17:24 moritz spider-mario: from Int
17:24 spider-mario oh, ok
17:24 moritz spider-mario: or more specificaly from Real, which Int composes
17:25 spider-mario oh, I see that orders can be treated as integers.
17:25 spider-mario my bad.
17:25 spider-mario thanks :)
17:25 jnthn .^mro always includes everything.
17:25 jnthn It's .^parents that stops at Cool
17:25 moritz ah right
17:25 spider-mario r: say +Increase
17:25 p6eval rakudo 85f636: OUTPUT«-1␤»
17:26 jnthn Potentially, .^parents(:all) and .^mro may not give the same thing too
17:27 * PerlJam did not know about ^mro
17:29 jnthn It's used heavily inside the various meta-objects.
17:29 masak PerlJam: it seems a very central concept in Perl 6's (or at least Rakudo's) MOP.
17:30 PerlJam yeah, I always thought it was more implicit than explicit though I think
17:30 PerlJam Like when you asked for ^parents, you'd get them all in MRO  (but obviously that's not true)
17:33 moritz jnthn: in ROADMAP, what are the "missing bits of enums"?
17:33 jnthn moritz: Whatever somebody thinks we need in order to have green for enums in Features ;)
17:34 dalek rakudo/nom: 417d760 | moritz++ | src/Perl6/Actions.pm:
17:34 dalek rakudo/nom: start to make enums less int centric
17:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/417d76010e
17:34 dalek rakudo/nom: 24a3016 | moritz++ | src/ (3 files):
17:34 dalek rakudo/nom: [enum] defer creation of type object until we know the base type
17:34 dalek rakudo/nom:
17:34 dalek rakudo/nom: now setting compilation blows up in term:sym<name> with Can only use nqp_get_sc_for_object with a SixModelObject
17:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/24a30163ab
17:34 dalek rakudo/nom: f48c49d | moritz++ | src/Perl6/ (2 files):
17:34 dalek rakudo/nom: install enum after it has been created.
17:34 dalek rakudo/nom:
17:34 dalek rakudo/nom: also clone the enum value before downcasting it
17:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f48c49d321
17:34 dalek rakudo/nom: f72c306 | moritz++ | src/Perl6/ (2 files):
17:34 dalek rakudo/nom: two enum fixups, jnthn++ JimmyZ++
17:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f72c3066c8
17:34 dalek rakudo/nom: d2012e2 | moritz++ | src/Perl6/Actions.pm:
17:34 dalek rakudo/nom: fix enums without explicit values
17:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d2012e2a7e
17:34 dalek rakudo/nom: 777259d | moritz++ | src/ (3 files):
17:34 dalek rakudo/nom: Merge remote branch 'origin/enum-nonint' into nom
17:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/777259d29b
17:34 dalek rakudo/nom: e9e7a27 | moritz++ | docs/ (2 files):
17:34 dalek rakudo/nom: update ChangeLog and ROADMAP
17:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e9e7a271a9
17:34 ranguard joined #perl6
17:34 moritz hey, that was a proper merge
17:35 masak well, maybe 'heuristic' means "there has to be this many commits for me to successfully guess it was a merge"?
17:35 masak anyway. moritz++
17:36 spider-mario yes
17:36 spider-mario moritz++
17:36 jnthn moritz++
17:36 mdupont joined #perl6
17:36 jnthn This next release keeps getting better and better :)
17:37 spider-mario “6 commits at the same time and ‘merge’ in a commit message ain’t a merge”
17:37 TimToady r: say (1/10000000000).base(3)
17:37 p6eval rakudo 85f636: OUTPUT«0.0000000000000000␤»
17:38 TimToady that's kinda wrongish still
17:38 masak is there an open RTzi for it?
17:38 TimToady yur the xpurt
17:39 masak no, I do fire and forget :P
17:39 colomon is base specified on Rats?
17:39 TimToady I didn't say you was perfect
17:39 * colomon is at his parents, may have missed a lot...
17:39 spider-mario how is # supposed to be interpreted?
17:39 TimToady r: say (1/10000000000).Str(:base(3))
17:39 p6eval rakudo 85f636: OUTPUT«0.0000000001␤»
17:39 TimToady well, at least that works
17:39 masak perfection is overrated anyway.
17:39 spider-mario I wrote it somehow accidentally in a rakudo repl and got “Nil”
17:40 PerlJam r: say (1/7).base(3)
17:40 p6eval rakudo 85f636: OUTPUT«0.0102120102120102␤»
17:40 spider-mario r: say #anything
17:40 p6eval rakudo 85f636: OUTPUT«␤»
17:40 * masak submits rakudobug
17:40 PerlJam nice
17:40 spider-mario r: say (#anything).perl
17:40 p6eval rakudo 85f636: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2␤»
17:40 moritz spider-mario: # starts a comment
17:40 spider-mario oh, obviously a comment.
17:40 TimToady r: say (1/7).Str(:base(3))
17:40 p6eval rakudo 85f636: OUTPUT«0.142857␤»
17:40 spider-mario how could I forget that. :D
17:40 moritz spider-mario: so you produced an empty statement
17:40 moritz which returned Nil
17:40 masak spider-mario: try #`[anything]
17:41 spider-mario I have really no idea how I forgot that
17:41 masak r: say (#`[nothing]).perl
17:41 p6eval rakudo 85f636: OUTPUT«()␤»
17:41 TimToady anyway, Rat.base can trivially just call Str(:base) now
17:41 dalek Heuristic branch merge: pushed 19 commits to nqp/toqast by jnthn
17:41 colomon PerlJam++
17:41 colomon TimToady: no it can't.
17:41 dalek nqp/toqast: 105ff32 | jonathan++ | / (2 files):
17:41 dalek nqp/toqast: Implement immediate blocktype handling; test it.
17:41 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/105ff32070
17:41 colomon TimToady: r: say (1/7).Str(:base(3))
17:41 colomon [1:40pm] p6eval: rakudo 85f636: OUTPUT«0.142857␤»
17:42 colomon Str(:base) just ignores :Base
17:42 TimToady that's already a bit of false precision
17:42 TimToady hmm, yer write
17:42 * colomon was pretty sure 7 was not a digit in base 3.  ;)
17:43 TimToady the conversion process has some inaccuracies :)
17:43 ranguard joined #perl6
17:44 dalek roast: 1ec0b65 | moritz++ | S12-enums/non-int.t:
17:44 dalek roast: first basic tests for non-integer enums and enums of mixed types
17:44 dalek roast: review: https://github.com/perl6/roast/commit/1ec0b6585c
17:44 colomon so, is Num.base($n) supposed to be Num.Str but in base $n?
17:44 colomon errr, I mean Numeric.base($n)
17:44 TimToady or the other way around maybe
17:44 TimToady maybe Str defaults to .base(10)
17:45 spaceships joined #perl6
17:45 TimToady though as I mentioned the other day, probably want to special case common bases in separate routines for efficiency
17:45 dalek rakudo/nom: 6b8c360 | moritz++ | t/spectest.data:
17:45 dalek rakudo/nom: run non-int.t enum tests
17:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b8c360620
17:45 TimToady so Str could be base 10, and just leave the base code in .base
17:46 moritz +1
17:46 TimToady er, put the :base code I prototyped in as .base I mean
17:46 colomon TimToady: either way, I don't think we've gotten the base 10 routines straightened out yet.  :)
17:46 spider-mario speaking of that, I’m a little surprised that numbers in lojban are implicitly in base 10
17:46 TimToady lojban is mainly only logical on the surface issues :)
17:47 spider-mario :)
17:48 spider-mario “forty-two” in lojban is “vo re”
17:48 TimToady colomon: not sure what you're referring to there...
17:49 spider-mario which translates to “four two”
17:49 spider-mario I meant “vore”
17:49 colomon TimToady: in terms of implementations.  unless there's been great progress in Rakudo while I was looking elsewhere....
17:49 spider-mario (there is no space)
17:50 moritz in Space there is no space
17:50 colomon r: say 3248902489023489028590809252.02
17:50 p6eval rakudo 85f636: OUTPUT«3248902489023489028590809252.02␤»
17:50 colomon ooo, nice
17:50 TimToady r: say (3248902489023489028590809252 + 1/1728347837928739473)
17:50 p6eval rakudo 85f636: OUTPUT«3248902489023489028590​809252.00000000000000000058␤»
17:51 TimToady r: say (3248902489023489028590809252 + 1/2500000000000)
17:51 p6eval rakudo 85f636: OUTPUT«3248902489023489028​590809252.0000000000004␤»
17:51 dalek nqp/toqast: 5d24bc1 | masak++ | / (2 files):
17:51 dalek nqp/toqast: implement compilation of Q operands
17:51 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/5d24bc1d40
17:51 masak \o/
17:51 TimToady I'd just like to see that niceness extend to .base, and it hasn't quite yet
17:52 TimToady r: say (3248902489023489028590809252 + 1/2500000000000).base(10)
17:52 p6eval rakudo 85f636: OUTPUT«3248902489023489028590809252.00000000␤»
17:52 TimToady to wit
17:52 colomon r: say 23940294092304925259023943.2.perl
17:52 p6eval rakudo 85f636: OUTPUT«119701470461524626295119716/5␤»
17:52 colomon that's still wrong, in two different ways...
17:52 TimToady we don't have that yet either
17:52 TimToady uh, yeah
17:52 TimToady or maybe 3 is now divisible by 5
17:53 TimToady you never know in these days of uncertainty
17:54 dalek nqp/toqast: 2cd5cd6 | jonathan++ | / (2 files):
17:54 dalek nqp/toqast: Add handling of blocktype declaration, and add a basic test for it.
17:54 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/2cd5cd6e5e
17:54 colomon n: say 23940294092304925259023943.2.perl
17:54 p6eval niecza v17-4-ge5b869e: OUTPUT«<119701470461524626295119716/5>␤»
17:55 colomon slightly less wrong...
17:56 TimToady actually I misspoke; 3 is divisble by 1/5  :)
17:57 TimToady it seems no amount of coffee can make up for senility...
17:58 TimToady doesn't stop me from trying though...
17:59 TimToady colomon: if you care to take a whack at a better .base, the proto code is in https://gist.github.com/2648301
18:00 PerlJam r: (1/25000000).base(10)
18:00 p6eval rakudo 85f636:  ( no output )
18:00 PerlJam r: say (1/25000000).base(10)
18:00 p6eval rakudo 85f636: OUTPUT«0.00000004␤»
18:00 PerlJam r: say (1/250000000).base(10)
18:00 p6eval rakudo 85f636: OUTPUT«0.00000000␤»
18:00 birdwindupbird joined #perl6
18:01 colomon n: say 10.base(3)
18:01 p6eval niecza v17-4-ge5b869e: OUTPUT«101␤»
18:01 TimToady r: https://gist.github.com/2648301
18:01 p6eval rakudo 85f636: OUTPUT«0.00000000DC␤0.000000LA␤-101010.111111​111111111111111111111111111111111111111101␤»
18:02 TimToady just needs to be turned into a method, is all
18:03 TimToady oh, and use log instead of string length, moritz++ suggested
18:05 colomon .... does it handle the exact representation part correctly?  I'm not seeing anything in the code for it.  Or does the denominator base thing handle it automatically?
18:05 colomon $r.denominator.base($base).chars + 1, I mean.
18:05 TimToady yes, but let me put the log version there first
18:05 colomon okay
18:07 TimToady okay, it's there now
18:07 TimToady and seems to produce the same result
18:08 TimToady yes, if the selected number of digits overshoots, the loop exits when the remainder is 0
18:09 * araujo greets around
18:09 TimToady so 1/2.base(10) selects 2 digits, but it stops after generating .5
18:09 TimToady araujo: o/
18:09 araujo hello TimToady :)
18:09 colomon araujo: \o
18:09 araujo hello colomon o/
18:10 * araujo thinking to get perl6 into (semi)-production code
18:10 TimToady colomon: the last 4 lines could also be turned into tests, I suppose
18:16 TimToady it's a nano-optimization, but 'if $r >= 0.5' could maybe fasterly be written '$r.de * 2 > $r.nu'
18:16 TimToady er, >=
18:17 TimToady er, < actually
18:17 * TimToady hopes to think clearly once or twice today...
18:21 shinobicl joined #perl6
18:36 moritz TimToady: actually I did it as   $r * 2 >= 1  in rakudo, because I can't use Rat literals inside the Rational role :-)
18:36 TimToady I guess that is likely to avoid cross multiplying as well
18:37 TimToady well, unless it converts 1 to 1/1 and cross multiplies
18:38 TimToady which it might, since the comparison has to happen in the Rat domain, not the Int domain
18:38 TimToady so mine might still be nanofaster
18:38 TimToady it's not like that test is in the main loop
18:38 moritz well, we can actually do infix:«>=>(Rat, Int) if we want
18:39 TimToady there is that
18:39 moritz but currently we don't
18:39 mucker joined #perl6
18:40 TimToady more effective optimizations will probably be in shifting instead of multiplying (if that's supported more efficiently in libtommath), or possibly conversion to a native rat type that is big enough and then do nothing with Rat overhead
18:40 TimToady but I figure "correct first" here
18:43 moritz I guess there's lots of potential for micro optimizations in Rat
18:43 TimToady the inability to use a Rat literal in a Rational role makes me think we have not yet solved the problem of allomorphic literals with sufficient generality
18:44 TimToady or is there some non-reducable self-reference there?
18:44 moritz well
18:45 moritz we have basically two choices
18:45 moritz we can compile 0.5 directly to a Rat
18:45 TimToady I guess we have to attach the type to the notation somehow
18:45 moritz or we can compile it to something that generates a Rat
18:45 moritz we've moved from the second to the first option during nom+bs transition
18:45 moritz and it was generally a good idea so far
18:46 TimToady $?CLASS('0.5') could conceivably learn how to convert at instantiation time
18:46 moritz except that in Rational, Rat isn't even declared yet
18:46 TimToady but it's knowing that 0.5 is supposed to do that which is the issue
18:46 moritz well, we could always do
18:46 moritz my class Rat { ... }
18:46 TimToady who said you need to know Rat?
18:46 moritz role Rational { # in here, use  Rat.new(1, 2)  }
18:47 * moritz
18:47 TimToady $?CLASS('0.5') doesn't commit
18:48 moritz self.new(1, 2) would also do
18:48 TimToady $?CLASS is awfully clunky, and isn't quite a compiler constant
18:48 moritz isn't it ::?CLASS anyway?
18:48 * moritz always confuses those
18:49 * TimToady tends to think they both exist
18:50 TimToady I worry that self.new is a bit too OOy for natives, but maybe not
18:50 masak $?LINE isn't quite a compiler constant either.
18:51 ranguard joined #perl6
18:51 TimToady maybe it should be $=LINE
18:51 TimToady since it's file-based
18:51 moritz we should think of ?-twigil variables as "not assignable and provided by the compiler"
18:51 moritz but it's not doc-based
18:51 TimToady sure, it's just the line in the doc :)
18:52 moritz gnaa
18:54 TimToady anyway, efficient native generics are challenging to use insofar as we're used to the object carrying the type rather than the object's container, and expressions like self.new also have to carry that type info out-of-band to the native value
18:54 TimToady more generally, all native expressions have to know their type statically
18:54 moritz TimToady: the fact that I understood that sentence scares me
18:55 TimToady well, it's partly that I was trying to write clearly for once... :)
18:55 TimToady not really succeeding, but at least trying...
18:58 moritz TimToady: is  v1.0 ~~ v0.1+   True?
18:59 moritz ie, does the '+' scope to the whole version literal, or just to the last chunk?
18:59 moritz I guess the whole thing
19:02 ranguard joined #perl6
19:03 masak aye.
19:05 thou joined #perl6
19:05 derrazo joined #perl6
19:05 TimToady the other thing is spelled ~~ v0.*
19:05 masak r: my $a = v6; say $a
19:05 p6eval rakudo 6b8c36: OUTPUT«v6␤»
19:05 masak r: my $a = v6; say $a.^name
19:05 p6eval rakudo 6b8c36: OUTPUT«Version␤»
19:06 derrazo_ joined #perl6
19:06 masak r: my $spinal-tap = v11; say "This one goes up to $spinal-tap!"
19:06 p6eval rakudo 6b8c36: OUTPUT«This one goes up to v11!␤»
19:06 masak \o/
19:07 * TimToady is beginning to think P6 should just reserve all the indentifiers that start with a letter.  :)
19:07 sorear good * #perl6
19:08 shinobicl left #perl6
19:08 TimToady o/
19:08 moritz TimToady: which gist was the one containing your .base code?
19:08 moritz or r2s with base
19:09 TimToady r: https://gist.github.com/2648301
19:09 p6eval rakudo 6b8c36: OUTPUT«0.00000000DC␤0.000000LA␤-10101​0.11111111111111111111111111111111111​1111111111101␤ABIGRADIXEN.DSWITHZ␤»
19:09 moritz TimToady: tusen takk
19:09 TimToady colomon++ might or might not be working on that
19:09 ranguard joined #perl6
19:10 moritz probably in n4a
19:11 moritz r: say 255.base(16)
19:11 p6eval rakudo 6b8c36: OUTPUT«FF␤»
19:17 * TimToady deduces that moritz's c or z key is broken
19:18 moritz or maybe the e key :-)
19:18 TimToady no, he typed .base
19:19 moritz masak: is https://github.com/perl6/nqp/commit/5d24bc1d40 basically the backend stuff for quasi splicing?
19:29 sergot joined #perl6
19:29 sergot hi o/
19:31 jnthn o/ sergot
19:33 whiteknight joined #perl6
19:33 moritz r: say Whatever.new.perl
19:33 p6eval rakudo 6b8c36: OUTPUT«*␤»
19:35 moritz ok, trick question
19:35 moritz does v1.0 stringify to 'v1.0' or to 'v1'?
19:35 moritz and is  v1.0 eqv v1  true?
19:37 TimToady I wouldn't think so
19:37 dalek rakudo/nom: f685cb6 | moritz++ | src/core/Rat.pm:
19:37 dalek rakudo/nom: Rat.base by TimToady++
19:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f685cb6cf0
19:37 moritz ok, they just compare the same with ~~ and with  cmp, right?
19:37 TimToady they're more like ranges; there can be inequalities involved
19:38 TimToady v1.1 ~~ v1 for instance
19:39 TimToady and v1.0beta comes before v1.0 comes before v1.0.1, but they're all v1
19:40 moritz waitwaitwait
19:41 moritz v1.0foo comes before v1.0 too?
19:42 sorear how do gamma and delta compare?
19:43 moritz ASCIIbetical, I hope
19:49 moritz what does   v1.0 cmp v0.5+   return?
19:50 moritz any(Same, Decrease, Increase)  ?
19:50 moritz :-)
19:51 dalek roast: 8cca77c | moritz++ | S02-literals/version.t:
19:51 dalek roast: basic tests for version literals and Version objects
19:51 dalek roast: review: https://github.com/perl6/roast/commit/8cca77c5e1
19:51 moritz sanity checking of those would be very welcome
19:52 * masak haz a look
19:55 masak moritz: I love the "(-)" convention. I might steal that for a TDD course or other.
19:55 moritz :-)
19:55 masak it's like "and then we test the opposite scenario (for some value of 'opposite')"
19:56 ranguard joined #perl6
19:56 moritz well, I think of it specifically as testing for "negative" outcome, not "opposite"
19:56 moritz ie "this match failed"
19:57 masak moritz:
19:57 masak ok  v1.2   ~~  v1.3+,  'smart-matching and plus (-)';
19:57 masak this looks wrong.
19:57 derrazo_ left #perl6
19:57 moritz right, that shoulbe  nok
19:57 masak right.
19:58 masak also, you're not testing something like v5 ~~ v1.2+
19:58 masak 'sides that, those tests look verra good.
19:59 masak moritz: might also be interesting to do &infix:<cmp> on some * and + variants.
19:59 dalek roast: 8ee4713 | moritz++ | S02-literals/version.t:
19:59 dalek roast: [version.t] fix a test, masak++
19:59 dalek roast:
19:59 dalek roast: also add v5 ~~ v1.2+, masak++ here too
19:59 dalek roast: review: https://github.com/perl6/roast/commit/8ee471338e
19:59 masak to the extent that makes sense...
19:59 moritz masak: except that I have no idea what they should return
19:59 masak :)
20:00 masak enum Order ( Same => 0, Increase => -1, Decrease => 1, You'reInsane => 1i );
20:00 moritz but I should add some ~~ tests with *
20:02 dalek roast: 29b5ad1 | moritz++ | S02-literals/version.t:
20:02 dalek roast: [version.t] wildcards and smart-matching
20:02 dalek roast: review: https://github.com/perl6/roast/commit/29b5ad1140
20:02 masak I think v5 cmp v1+ should give Same.
20:02 masak hm, wait. :)
20:02 masak no, I think we need to step back and define what we mean by such a comparison.
20:02 moritz think of cmp as the argument to List.sort
20:02 masak nodnod.
20:03 masak I think maybe you shouldn't cmp things with wildcards in them.
20:03 moritz I'd ignore the final + while cmp'ing two Versions
20:03 masak they're like intervals, and intervals don't sort naturally.
20:03 moritz or maybe make one with a + an epsilon larger
20:04 moritz is that (v1, v5+, v5).sort  gives you  (v1, v5, v5+)
20:04 moritz ETOOMUCHMAGIC
20:05 dalek nqp/toqast: 47ee5af | jonathan++ | src/QAST/Operations.nqp:
20:05 dalek nqp/toqast: Compile method calls, including name indirection and pay attention to :returns for register return type (probably quite hard to take advantage of in Perl 6, mind).
20:05 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/47ee5af0b6
20:05 dalek nqp/toqast: 2a41c7d | jonathan++ | t/qast/qast.t:
20:05 dalek nqp/toqast: Tests for callmethod.
20:05 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/2a41c7dc31
20:06 diakopter I wish there was a way to control explicitly when a contextual "pops" (as opposed to always at the end of the routine it's declared in)
20:06 masak diakopter: then maybe you should use an explicit array ;)
20:06 moritz diakopter: use case?
20:06 TimToady comparing versions is like trying to compare regexes
20:07 diakopter masak: yeah
20:07 masak diakopter: jnthn is sitting oppose
20:07 masak opposite me.
20:07 masak he says "we're doing this in a few places in Rakudo"
20:07 masak keeping an explicit array, that is.
20:07 jnthn @*BLOCK
20:08 jnthn er, wait, we killed that :)
20:08 jnthn It's a normal array though, just $*W has methods that hide it away :)
20:08 masak TimToady: comparing regexes feels like it might be booby-trapped with Entscheidungsproblem *somewhere*. even before you add in actual closures.
20:09 masak StuntmanMike: JUMP!
20:11 moritz well, we do have @*PACKAGES
20:11 moritz which the exporter uses
20:12 StuntmanMike masak: I think I fail to make a connection :)
20:12 masak that sounds like a good example.
20:12 masak StuntmanMike: between stuntmen and jumping?
20:12 masak StuntmanMike: dude, if you don't make the connection, you probably need to look for a different job, and quickly!
20:12 moritz :-)
20:12 StuntmanMike oh :) It's kind of more remote reference
20:13 * masak .oO( he's more of a remote stuntman )
20:14 ranguard joined #perl6
20:15 colomon TimToady: working in spirit, driving back home in practice (and playing a dance when I get there)
20:15 TimToady .oO("What!?! You hired me to jump *off* of this building?!?")
20:24 dalek nqp/toqast: efa345e | jonathan++ | src/QAST/ (2 files):
20:24 dalek nqp/toqast: Make BVal consistent with the various other Val nodes. Also fix compilation of it.
20:24 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/efa345e44f
20:24 dalek nqp/toqast: 0147855 | jonathan++ | t/qast/qast.t:
20:24 dalek nqp/toqast: Test QAST::BVal node.
20:24 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/0147855568
20:27 to1776 joined #perl6
20:29 sorear masak: Comparing regexes without closures is decidable.
20:29 sorear masak: In fact, it's PSPACE-complete.
20:30 spaceships joined #perl6
20:30 masak sorear: oh, ok.
20:32 masak then my intuition was too pessimistic ;)
20:33 masak is graph isomorphism PSPACE-complete?
20:33 spaceships joined #perl6
20:34 sorear masak: Graph isomorphism is suspected to be easy (in P)
20:34 sorear it's probably not even NP-complete
20:35 * flussence has an itch to go write a module to Do Stuff With various v-string formats...
20:35 masak sorear: how far down in the Chomsky hierarchy do you have to go before comparing two expressions becomes undecidable?
20:35 sorear it may be intermediate (in NP, but neither NP-complete or P; such problems must exist if P != NP, another current candidate is factoring)
20:35 sorear masak: comparing context-free languages is undecidable, iirc
20:35 masak oh, ok.
20:35 masak so one step is enough.
20:36 jnthn I'm guessing the decidability is tied to the restrictions of regular language
20:36 masak aye.
20:36 masak and that's part of why regular languages are desirable, I guess.
20:36 sorear there is a rather obvious (but exponential-time) algorithm for comparing regexes
20:36 masak they're "small enough".
20:36 sorear convert both to DFAs, compute the tensor project, and then check if any node with differing acceptance is reachable using DFS
20:37 masak s/project/product/ ?
20:37 sorear yes
20:37 masak inneresting.
20:38 sorear personally, I find the existance of natural PSPACE-complete problems to be much more suprising than the existance of natural NP-complete problems
20:39 ranguard joined #perl6
20:39 masak why?
20:40 TimToady QM is optmized for harder problems :)
20:41 sorear masak: PSPACE seems like it has less useful structure
20:41 masak the things I've learned about QM, even it is not a silver bullet.
20:41 masak we'll probably end up with GPUs in our computers, and that'll be it.
20:41 masak er, QPUs.
20:41 sorear QM gives you factoring and better physics simulators, and that seems to be about it
20:42 masak yeah.
20:42 masak will probably be a hit in gaming :P
20:42 sorear the lattice QCD people will *love* scalable quantum computing
20:43 masak :D
20:43 masak seems a good fit, yes.
20:44 * masak .oO( Finally! With Quantum Computing, we can at last do sensible Quantum Mechanics simulations! )
20:44 sorear model checking, etc
20:45 sorear QCD gives the right cross sections for collisions in the LHC but nobody knows if it gives the right ground state energy for the proton
20:45 sorear which is a kind of embarrassing state of affairs
20:45 masak sorear: have you seen http://www.scottaaronson.com/democritus/ ?
20:45 masak heady stuff.
20:45 sorear yes
20:45 * masak suspected that
20:46 sorear I have read basically everything under that domain
20:46 sorear including the ~entire blog archive
20:46 masak yeah. me too.
20:46 masak I never quite got through that course, but I intend to at some point. it's good.
20:46 sorear ok, so I don't need to worry about whether you have a firm grasp on PSPACE :)
20:47 masak I need the occasional reminder. these terms still don't come easy to me.
20:47 masak but yeah. I'm aiming for a firm grip on complexity theory. it seems important.
20:48 sorear PSPACE = functions which can be computed in polynomial space, possibly exponential time
20:48 sorear the most important fact about PSPACE is Savitch's theorem
20:49 * masak looks that up
20:49 eternaleye joined #perl6
20:49 masak ah.
20:49 masak I love how ddg+Wikipedia brings going from ignorance about something to knowing it to about 10 seconds ;)
20:50 masak or O(typing speed * term length + reading speed * introduction length)
20:51 masak sorear: Savitch's theorem reminds me of some "quadratic speedup" results I hear about sometimes in QC.
20:51 sorear quadraticness is not, IMO, the most salient feature there.
20:52 sorear if you have a turing-like machine with 'there exists' quantifiers, you get NP in polynomially many steps
20:52 sorear what Savitch's theorem tells us is that if you are allowed to alternate 'there exists' and 'for all', you get (N)PSPACE
20:53 masak ok.
20:53 sorear this is where the entire theory of PSPACE competeness comes from
20:53 masak "Although it seems that nondeterminism may produce exponential gains in time, this theorem shows that it has a markedly more limited effect on space requirements." -- this seems to summarize it well.
20:54 sorear this is why many games are PSPACE-complete to play optimally - you are solving problems of the form 'do I have a move such that for all opposing moves I have a move such that ...'
20:54 sorear while 1-player games are usually at most NP-complete
20:56 masak hm, yes.
20:57 masak 2-player games seems to naturally result in an EAEAEAEAEA... quantifier structure.
20:57 masak that's the same as saying we're trying to find the optimal move in a game tree.
20:58 TimToady .oO(speccer vs implementor)
20:58 sorear (oh, and the other reason nobody uses context-sensitive grammars: the 'does string X match grammar G' problem is in P for CFGs but PSPACE-complete for CSGs)
21:00 masak TimToady: that sounds like a game I'd like to try! oh wait.
21:00 masak sorear: yeah, that sounds... bad.
21:01 masak OTOH, Perl regexes aren't regular any more, so we're outside of P anyways.
21:02 TimToady that probably explains why Perl 5 was such a failure :)
21:02 masak :P
21:02 sorear Perl regexes cheat by having operational semantics.
21:02 sorear They aren't so much grammars as a DSL for writing parsers.
21:02 * masak looks forward to the day when we have optimized the heck out of Perl 6 grammars
21:02 sorear Now, I have an $obligation to attend to, be back in a few hours
21:03 masak o/
21:03 jnthn o/
21:03 ranguard joined #perl6
21:13 dalek nqp/add-goto: bda247f | diakopter++ | src/NQP/ (2 files):
21:13 dalek nqp/add-goto: enable forward gotos. can't have unused labels. can't jump into blocks, and can't jump out of blocks that declare their own lexicals.
21:13 dalek nqp/add-goto: review: https://github.com/perl6/nqp/commit/bda247f4b4
21:15 ponbiki joined #perl6
21:16 masak diakopter++
21:20 diakopter thanks. it took only 46 questions to jnthn++ to accomplish....
21:20 dalek nqp/toqast: 68f99e6 | jonathan++ | src/QAST/Compiler.nqp:
21:20 dalek nqp/toqast: First crack at lexical lookup; needs a little more work on native handling, but hard to test until NQP's LexPad is updated to handle those.
21:20 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/68f99e649f
21:20 dalek nqp/toqast: b505a99 | jonathan++ | t/qast/qast.t:
21:20 dalek nqp/toqast: A couple of tests for lexical lookup/binding in an inner block.
21:20 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/b505a996f4
21:20 jnthn You counted them?!
21:21 diakopter well, no
21:21 TimToady another 4600 and nqp will turn in to Perl 6, completing the bootstrap
21:21 diakopter just a guess
21:21 TimToady *into
21:21 jnthn TimToady: Uh. :)
21:21 jnthn TimToady: We have divergent expectations on NQP ;)
21:21 jnthn It is, however, getting native types soon :)
21:21 jnthn Well
21:21 jnthn I hope QAST lands soon :)
21:22 masak r: v6
21:22 p6eval rakudo f685cb:  ( no output )
21:22 masak r: v6; say "alive"
21:22 p6eval rakudo f685cb: OUTPUT«alive␤»
21:30 masak clearly, NQP is approaching Perl 6 asymptotically...
21:33 thou joined #perl6
21:42 silug joined #perl6
21:48 ranguard joined #perl6
21:55 dalek nqp/toqast: 8fc6415 | masak++ | t/qast/qast.t:
21:55 dalek nqp/toqast: added more tests for keyed operations
21:55 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/8fc641598e
21:56 diakopter jnthn: will qast use POST?
21:56 diakopter or anyone
21:56 masak think so.
21:56 jnthn yeah
21:57 masak well, it already does in the toqast branch, if I'm reading things correctly.
21:57 jnthn Pm noted that POST is easy to re-write into NQP since it's tiny.
21:58 jnthn But it's also Parrot specific, so there's not so much incentive to port it from PIR.
21:58 mikemol joined #perl6
22:02 ponbiki joined #perl6
22:06 dalek nqp/toqast: b0705d6 | masak++ | t/qast/qast.t:
22:06 dalek nqp/toqast: added tests for pos operations
22:06 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/b0705d6b92
22:17 ranguard joined #perl6
22:26 masak I think I'm getting the hang of this QAST thing.
22:28 smf joined #perl6
22:28 smf when is perl 6 stable coming?
22:29 masak smf: when people say "perl 6 stable" they mean different things. what do you mean when you say that?
22:30 smf when perl 6 has its 1.0 release, its gold release, its final release, its official release, not its perl 6 v0.99 release., but v1.0, like not 5.9.9 but 6.0.0
22:30 dalek nqp/toqast: 4924891 | jonathan++ | src/QAST/Compiler.nqp:
22:30 dalek nqp/toqast: Basic implementation of attribute lookup; doesn't use the indexed lookup hints yet.
22:30 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/4924891b13
22:30 dalek nqp/toqast: ef0edcb | jonathan++ | t/qast/qast.t:
22:30 dalek nqp/toqast: Test attribute binding.
22:30 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/ef0edcb140
22:30 smf when perl 6 isnt 6-dev anymore
22:31 smf when perl 6 is official, and 5 is considered -legacy
22:31 masak smf: Perl 6.0.0 will be a release of the Perl 6 specification, not of any particular implementation. it will not make Perl 5 legacy :)
22:31 smf oh
22:31 smf but wont there be any official implementation?
22:31 masak smf: whether Perl 6 is dev or production still depends on who you are and what requirements you have.
22:31 masak there will be several official implementations.
22:32 masak hopefully.
22:32 smf why several? perl5 just had one, and that was enough
22:32 masak yeah, but Perl 5 didn't have a spec.
22:32 smf ein volk, ein reich, ein implementation!
22:32 smf oh
22:32 masak as soon as you have a spec, anything which fulfills the spec is an official implementation.
22:32 jnthn git st
22:32 smf okie
22:32 masak so it's sort of an open world.
22:32 jnthn oops
22:32 masak like interfaces and classes :)
22:32 smf will anyone want to use perl 6, now that there is Python and Ruby?
22:32 masak yes.
22:33 masak know why?
22:33 smf yes
22:33 smf why?
22:33 masak because Perl 6 is really, really, nice.
22:33 smf oh
22:33 masak it's a good language.
22:33 masak you should try it.
22:33 smf how come you say Perl 6 is so nice, when everybody says Perl 5 is so ugly
22:33 masak there have been some changes.
22:33 masak improvements.
22:33 smf do you think Perl 5 is ugly?
22:33 masak not really,
22:33 masak more like it contains ugly legacy things.
22:34 masak which you can choose to use or not use.
22:34 smf people say Perl is a read-only language, you can write code but not read
22:34 crab2313 joined #perl6
22:34 masak people who don't really understand the freedom of choice will always claim that Perl is ugly.
22:34 smf i mean a write-only
22:34 masak because they see all the bad things that you *can* do, given the choice.
22:34 masak but that's kinda the point.
22:34 smf huh?
22:34 masak Perl gives you enough rope to shoot yourself in the foot.
22:34 masak but don't do that. do something awesome instead ;)
22:35 masak the theory being that if you don't have enough rope, you can't really do the awesome things either.
22:35 * jnthn afk for a bit
22:35 masak c.f. various bondage-and-discipline languages out there.
22:35 smf oh
22:36 geekosaur perl5 does have a lot of odd syntax in it, though; perl6 is more rational.  where perl5 has idiosyncratic syntax, perl6 found a more general, cleaner way to do the same thing.
22:36 smf will Perl 6 run on JVM and CIL/.NET ?
22:36 masak smf: most likely.
22:36 smf cool
22:36 masak smf: it already runs on .NET
22:36 geekosaur niecza already runs on CIL
22:36 smf oh sweet
22:36 geekosaur / NET
22:36 masak n: say "hello from .NET!"
22:36 p6eval niecza v17-4-ge5b869e: OUTPUT«hello from .NET!␤»
22:36 smf and Python, Ruby , etc can run on Parrot?
22:37 masak ideally.
22:37 masak there's already Python and Ruby implementations on there.
22:37 diakopter sort of.
22:37 masak I can't speak to their completeness.
22:37 masak or bit-rottedness.
22:37 masak and there doesn't seem to be a big community around them.
22:37 masak but they exist.
22:38 masak the language interop dream in Parrot seems... oddly absent. I'd like to hear more from Parrot people about that.
22:38 smf why did Parrot was written, when there is already JVM and CIL ?
22:38 masak hubris :)
22:38 masak and the opinion that there was still a niche to fill.
22:38 smf oh
22:38 diakopter some didn't like the source code license of mono and .NET and the JVMs
22:39 masak given the goals of Parrot, I would say there is still a niche to fill. but JVM and CLR keep nibbling on that niche, I guess.
22:39 masak as long as Parrot doesn't bloom out and claim it.
22:40 smf whats so good about Parrot?
22:40 diakopter it's debatable
22:41 geekosaur Parrot predates the CLR, doesn't it?
22:41 diakopter no
22:42 masak 'night, #perl6
22:42 Tene Parrot predates an open-source CLR with any kind of support for dynamic languages.
22:43 Tene I believe.
22:43 Tene masak: I believe you're familiar with my experiences with PArrot language interop?
22:43 diakopter imho, parrot's big failings are its lack of a JIT and lack of threads.  last I heard.
22:45 spider-mario parrot had a JIT compiler once
22:45 spider-mario if I understand correctly, it was of so low quality that it was dropped
22:46 diakopter that's my understanding too.
22:46 Tene The primary issue with the jit compiler was that it could only work on very small pieces at a time, due to frequent calls to/from C
22:46 Tene as I understand it.
22:47 spider-mario I believe it was x86-only, too
22:50 diakopter when I ran some of the benchmarks included with parrot against other VMs, parrot was tens to hundreds of times slower.  I don't think it's improved much since then.
22:50 diakopter I was surprised the examples were distributed with parrot as examples of speed
22:53 sergot 'night o/
22:55 diakopter Tene: the fact parrot "predated" mono's support for dynamic languages doesn't make parrot good now.
22:55 Tene diakopter: I was responding to "< smf> why did Parrot was written, when there is already JVM and CIL ?"
22:55 diakopter it might have made parrot better at the time for those sharing parrot's dream/goals.
22:55 diakopter oh
22:55 diakopter sry
22:56 Tene np
22:56 diakopter In that case, I guess no one answered "what's so good about parrot"
22:57 diakopter smf: I'm curious to know the answer to that question too.  If you find someone who would like to make arguments for parrot, I'm interested to hear them.
22:57 smf :)
22:58 diakopter other than "not not invented here"
22:59 geekosaur I am under the impression that, at the time, Parrot promised something that neither the JVM nor the CLR delivered; and while it isn't necessarily doing any better than either of them now, at this point it would be difficult to retarget Rakudo to something else.
23:00 diakopter efforts to make rakudo/nqp more platform-independent have been proceeding for a long time now, it's difficult work, sure, but people are doing it.
23:01 geekosaur I don't know if the JVM is a suitable target now any more than it was back then, though; it seems to me like it has a strong bias toward the way Sun^WOracle Java works, whereas the CLR is a bit more general
23:01 diakopter notably, the toqast branch of nqp
23:02 diakopter (re: retargetting rakudo)
23:16 diakopter hmm, maybe I'm wrong on toqast being that...
23:19 sorear good * #eprl6
23:19 sorear masak: still here?
23:20 thou joined #perl6
23:22 TimToady haven't seen a signoff
23:22 TimToady oh wait
23:23 TimToady yes we did
23:39 sorear ah
23:51 cogno joined #perl6
23:52 dalek nqp/toqast: 2d2de4e | jnthn++ | t/qast/qast.t:
23:52 dalek nqp/toqast: Test compilation of attribute lookup also.
23:52 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/2d2de4ec0f
23:53 lestrrat joined #perl6
23:56 jnthn OK, sleep time o/
23:58 mdupont joined #perl6

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

Perl 6 | Reference Documentation | Rakudo