Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-04-28

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:00 pmichaud jnthn: pong
00:00 pmichaud (will catch jnthn++ tomorrow)
00:03 silent_h joined #perl6
00:09 leprevost left #perl6
00:13 dalek star: 6ed6e37 | pmichaud++ | skel/build/Makefile.in:
00:13 dalek star: Add code to install 'panda' and 'ufobuilder' into $(BINDIR).
00:13 dalek star: review: https://github.com/rakudo/star/commit/6ed6e37fac
00:24 lue left #perl6
00:24 lue joined #perl6
00:26 nrr left #perl6
00:27 nrr joined #perl6
00:28 justatheory left #perl6
00:35 noganex joined #perl6
00:36 noganex_ left #perl6
00:46 pmichaud draft version of new rakudo.org site at http://rakudoperl.org/ .  Comments and suggestions welcomed.
00:46 leprevost joined #perl6
00:50 mtk left #perl6
00:51 [Coke] left #perl6
00:51 cdarroch left #perl6
00:52 [Coke] joined #perl6
00:56 lue pmichaud: looks much better, and doesn't deviate too much from rakudo.org
00:59 mtk joined #perl6
00:59 justatheory joined #perl6
01:05 SatoshiHayazaki joined #perl6
01:06 Entonian joined #perl6
01:08 noganex left #perl6
01:09 noganex joined #perl6
01:14 am0c left #perl6
01:20 am0c^ joined #perl6
01:20 am0c^ left #perl6
01:27 Entonian left #perl6
01:50 woosley joined #perl6
01:52 whiteknight left #perl6
02:20 perigrin left #perl6
02:27 am0c joined #perl6
02:29 araujo joined #perl6
02:48 jdhore pmichaud, My only complaint would be that the current site looks like a Drupal site and the new one looks like a wordpress site...IMO, I think if possible, sites should avoid fitting the "default" look of the software they use if possible
02:49 leprevost left #perl6
03:13 awwaiid left #perl6
03:15 awwaiid joined #perl6
03:17 sorear phenny: tell pmurias I don't like the way Proxy overloads new.  IMHO $class.new.WHAT should always === $class
03:17 phenny sorear: I'll pass that on when pmurias is around.
03:21 awwaiid left #perl6
03:23 pmichaud jdhore: it's certainly possible for us to switch rakudoperl.org to a different template... but someone else needs to find/create the template :)
03:23 pmichaud I'm happy to switch to any wordpress template I can easily get my hands on :)
03:24 pmichaud and the current rakudoperl.org WP theme is a customization of the default twentyten theme
03:24 jdhore ah
03:24 pmichaud (a very simple customization :-)
03:25 pmichaud (mainly to avoid the silly 940x198 image that twentyten wants to default to
03:25 jdhore pmichaud, Well, don't take what I say with too much merit. I've got about the same aestetic skills as a giraffe.
03:25 jdhore *aesthetic
03:26 Su-Shee left #perl6
03:28 Su-Shee joined #perl6
03:29 ymasory joined #perl6
03:35 hudnix left #perl6
03:36 satyavvd joined #perl6
03:38 araujo left #perl6
03:42 araujo joined #perl6
03:43 satyavvd left #perl6
04:11 dalek star: 0f607e2 | pmichaud++ | skel/README:
04:11 dalek star: Update release number in README.
04:11 dalek star: review: https://github.com/rakudo/star/commit/0f607e2cb1
04:11 dalek star: 15a246c | pmichaud++ | skel/docs/announce/2011.04:
04:11 dalek star: Fix January -> April in announcement text.
04:11 dalek star: review: https://github.com/rakudo/star/commit/15a246cb29
04:21 orafu left #perl6
04:22 _jaldhar joined #perl6
04:22 plobsing_ left #perl6
04:23 orafu joined #perl6
04:23 kaare__ joined #perl6
04:28 pmichaud phenny: tell alester Feel free to point rakudo.org to the rakudoperl.org server whenever you're ready
04:28 phenny pmichaud: I'll pass that on when alester is around.
04:33 SatoshiHayazaki left #perl6
04:51 ymasory left #perl6
05:00 silent_h left #perl6
05:08 molaf joined #perl6
05:10 molaf left #perl6
05:17 sftp left #perl6
05:24 birdwindupbird joined #perl6
05:24 yegor joined #perl6
05:33 birdwindupbird left #perl6
05:36 justatheory left #perl6
05:36 birdwindupbird joined #perl6
05:36 justatheory joined #perl6
05:41 justatheory left #perl6
06:00 wtw joined #perl6
06:03 nymacro joined #perl6
06:10 Mowah joined #perl6
06:24 yegor_ joined #perl6
06:24 yegor left #perl6
06:47 rhebus joined #perl6
06:47 yegor_ left #perl6
06:50 mj41 joined #perl6
06:57 frettled pmichaud: congrats on getting 2011.04 out the door!
07:00 Tedd1 left #perl6
07:00 yegor_ joined #perl6
07:01 rhebus_ joined #perl6
07:02 rhebus left #perl6
07:02 rhebus_ is now known as rhebus
07:04 birdwindupbird left #perl6
07:13 rhebus_ joined #perl6
07:14 rhebus left #perl6
07:14 rhebus_ is now known as rhebus
07:14 moritz pmichaud++ # star release
07:14 fhelmberger joined #perl6
07:14 tadzik yay, Star :)
07:14 tadzik pmichaud++
07:17 tadzik though I'm afraid ufobuilder made it into Star rather accidentally
07:18 jdhore pmichaud++
07:20 moritz phenny: tell pmichaud that rakudoperl.org doesn't show the rakudo favicon - might be worth fixing
07:20 phenny moritz: I'll pass that on when pmichaud is around.
07:23 birdwindupbird joined #perl6
07:25 rhebus_ joined #perl6
07:25 rhebus left #perl6
07:25 rhebus_ is now known as rhebus
07:26 yegor_ left #perl6
07:30 jdhore question: Why do you guys use phenny for memos and not just MemoServ?
07:33 cali_gurl87 joined #perl6
07:33 icwiener joined #perl6
07:34 cali_gurl87 left #perl6
07:36 yegor_ joined #perl6
07:39 rhebus left #perl6
07:40 rhebus joined #perl6
07:53 moritz because phenny is cute and polite :-)
07:57 jdhore ah
08:06 krunen left #perl6
08:06 krunen joined #perl6
08:12 mathw Morning
08:12 Tedd1 joined #perl6
08:13 mathw moritz: In German, should I say "Ich bin nach <somewhere> gefahren"? I got thinking on the way to work about the ones that take sein instead of haben, and irregular past participle formation, and I realised I couldn't remember most of it :(
08:22 rhebus left #perl6
08:26 drbean left #perl6
08:27 ingy tadzik: where's the SHELTER list?
08:28 drbean joined #perl6
08:28 ingy tadzik: I can try to fix things up.
08:32 drbean left #perl6
08:32 Su-Shee mathw: "Ich bin nach Koeln gefahren" "Ich war in Koeln"
08:33 Su-Shee mathw: "I drove to...." "I was in ..."
08:34 drbean joined #perl6
08:34 am0c left #perl6
08:36 Tedd1 left #perl6
08:37 mathw Su-Shee: thanks. I thought it was like that, but I wasn't sure
08:38 mtk left #perl6
08:39 drbean left #perl6
08:39 Su-Shee mathw: there is a simple past like "drove" in german as well but it's not really used in spoken language. "Ich fuhr nach Koeln" sounds weird. (Used in literature, though.)
08:40 drbean joined #perl6
08:41 Tedd1 joined #perl6
08:42 mathw Su-Shee: yeah I remember being taught about that. I never got much practice at it, as most of our lessons were focussed on spoken, and we tended to write like that too.
08:44 drbean left #perl6
08:45 drbean joined #perl6
08:46 krunen left #perl6
08:47 mtk joined #perl6
08:49 pmurias joined #perl6
08:51 drbean left #perl6
08:52 drbean joined #perl6
08:53 Su-Shee mathw: the overly proper use of past tense usally indicates people from eastern europe; I don't know exactly why but they either learn german differently or feel comfortable with certain tenses. and they get it perfectly right, better than most germans :)
08:53 tadzik ingy: perl6/ecosystem
08:56 drbean left #perl6
08:57 drbean joined #perl6
09:00 Patterner it's like english and americans, Su-Shee
09:00 aindilis left #perl6
09:00 aindilis joined #perl6
09:02 drbean left #perl6
09:04 drbean joined #perl6
09:05 Sarten-X left #perl6
09:08 Nehru joined #perl6
09:08 drbean left #perl6
09:08 Nehru left #perl6
09:08 nrr with respect to the prÀteritum in german: there are small exceptions.  forms of "sein," "wissen," and so on are sometimes used.
09:09 nrr "ich wusste das nicht." instead "ich habe das nicht gewusst," though that varies a bit.
09:10 drbean joined #perl6
09:11 Justin__ joined #perl6
09:11 Justin__ perl6: say "ciao";
09:12 p6eval pugs, rakudo 8533c3, niecza v4-76-g7bf5ef9: OUTPUT«ciao␤»
09:12 Justin__ is it my network connection or it took 2 seconds to respond !
09:12 * moritz wusste das nicht
09:13 moritz Justin__: it executes three different, slow compilers (and doesn't parallelize)
09:13 moritz Justin__: so 2s aren't too bad
09:13 Justin__ moritz: that was just a helo world.. now am scared to try it more :\
09:14 moritz Justin__: no need to be scared, you don't get the bill for the computing time
09:14 moritz Justin__: but it's faster if you talk to just one compiler
09:14 moritz rakudo: say 'OH HAI'
09:14 Justin__ haha! :D nice one
09:14 p6eval rakudo 8533c3: OUTPUT«OH HAI␤»
09:15 drbean left #perl6
09:15 pmurias left #perl6
09:16 tzhs joined #perl6
09:16 drbean joined #perl6
09:19 Justin__ left #perl6
09:21 drbean left #perl6
09:22 drbean joined #perl6
09:28 drbean left #perl6
09:30 drbean joined #perl6
09:35 drbean left #perl6
09:36 drbean joined #perl6
09:41 drbean left #perl6
09:43 drbean joined #perl6
09:45 snearch joined #perl6
09:47 drbean left #perl6
09:48 drbean joined #perl6
09:48 icwiener_ joined #perl6
09:49 icwiener left #perl6
09:50 s1n left #perl6
09:52 drbean left #perl6
09:54 drbean joined #perl6
09:57 drbean left #perl6
09:57 s1n joined #perl6
09:59 drbean joined #perl6
10:02 wallberg joined #perl6
10:02 moritz jnthn: is nqp supposed to use the installed nqp-rx from parrot at all?
10:04 moritz jnthn: it seems it does... nqp's 'make install' misses some pbcs, and after I run 'make install' the subsequent nqp build fails, complaining about the missing PBCs
10:04 wallberg hi all! is anyone planning to go to the Nordic Perl Workshop this year? http://conferences.yapceurope.org/npw2011/
10:04 drbean left #perl6
10:04 moritz wallberg: I'm pretty sure masak and jnthn are going :-)
10:05 drbean joined #perl6
10:06 wallberg moritz: :-)
10:07 jnthn o/
10:08 wallberg btw has there been any efforts to make p6 GUI bindings for libraries like Tk, GTK, Qt, Wx... or XUL so far?
10:08 jnthn moritz: No, it shouldn't depend on nqp-rx.
10:09 jnthn moritz: However, it does depend on some things from the Parrot repo.
10:09 moritz jnthn: ah, I found it
10:09 jnthn moritz: Such as PAST.pbc
10:09 tadzik wallberg: I think the callbacks are the biggest blocker
10:09 moritz jnthn: the .ops file compilation uses the nqp-rx shipped with parrot
10:09 wallberg tadzik: ok. what is the status on those?
10:09 tadzik wallberg: none I think :)
10:09 moritz jnthn: and since 'make install' currently overrides at least NQP.pbc, that's bad
10:10 drbean left #perl6
10:10 moritz wallberg: Tene did bindings for some obscure-ish GUI framework
10:10 moritz wallberg: don't know if they still work
10:10 jnthn moritz: Oh, yes
10:10 jnthn moritz: I suspect we may need to do some renaming.
10:11 jnthn moritz++ # looking into the install issues, which will soon be very relevant :)
10:11 woosley left #perl6
10:11 jnthn moritz: Is it just NQP.pbc that overlaps?
10:11 moritz jnthn: not sure yet
10:12 drbean joined #perl6
10:12 dalek nqp/ctmo: b3299e5 | moritz++ | build/Makefile.in:
10:12 dalek nqp/ctmo: make nqp installable again
10:12 dalek nqp/ctmo:
10:12 dalek nqp/ctmo: Sadly this overwrites some files from parrots nqp-rx, which means that
10:12 dalek nqp/ctmo: it breaks recompilation, because .ops file translation uses nqp-rx internally
10:12 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/b3299e5198
10:13 * jnthn fears there will be more
10:14 tadzik also,pararell build is broken again
10:14 jnthn Oh.
10:14 moritz tadzik: yes
10:14 jnthn Wonder what regressed that...I'd tried to be careful. :/
10:15 moritz error:imcc:loadlib directive could not find library `nqp_ops' in file 'src/PAST/SixModelPASTExtensions.pir' line 16 included from 'src/PASTRegex.pir' line 1
10:15 moritz should be an easy-ish fix
10:15 jnthn ah, yeah...that hadn't used to depend on the dynexts.
10:16 awwaiid joined #perl6
10:17 * moritz tests a fix
10:17 drbean left #perl6
10:18 krunen joined #perl6
10:18 drbean joined #perl6
10:18 dalek nqp/ctmo: 86fd707 | moritz++ | build/Makefile.in:
10:18 dalek nqp/ctmo: [build] unbreak parallel build
10:18 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/86fd707c6e
10:20 moritz unfortunately that takes away a lot of benefit from the parallel build
10:21 jnthn A bootstrapping compiler is hardly ideal for a parallel build really...
10:21 jnthn Every stage needs the last one.
10:22 jnthn And stages need stuff within that stage too.
10:22 jnthn HLL.pm does use P6Regex which in turn does use Regex which in turn needs the NQPCORE.setting.
10:22 drbean left #perl6
10:22 moritz right
10:22 jnthn Which kinda forces an ordering.
10:23 jnthn We got away with far more before the compiler actually wanted to know something about the programs it was compiling. :)
10:24 drbean joined #perl6
10:24 moritz fail, nqp installs nqprx.pbc :-)
10:25 moritz both install a P6Regex.pbc
10:25 moritz a Regex.pbc
10:25 jnthn oh...we shouldn't be installing nqprx.pbc :)
10:25 jnthn eep
10:25 moritz but nqp-rx install an nqp-rx.pbc :-)
10:25 moritz note the dash
10:25 jnthn and a HLL.pbc, I fear...
10:26 jnthn oh...
10:26 jnthn Where are we installing all of these to?
10:26 moritz yes, HLL.pbc too
10:26 jnthn Is there no "language directory"?
10:26 moritz the nqprx.pbc goes to languages/nqp
10:26 moritz the regex.pbc stuff to library/
10:27 jnthn oh.
10:27 jnthn OK.
10:27 moritz and most of the other stuff to library/ too
10:27 bbkr_ i've released new version of my JSON::RPC https://github.com/bbkr/jsonrpc , what I have to do to place it in the ecosystem? and what is required for "Panda approval" ?
10:28 moritz bbkr_: add a link to your META.info in the 'META.list' file of the 'ecosystem' repo
10:28 moritz no approval steps whatsoever
10:29 dalek nqp/ctmo: f73152c | moritz++ | build/Makefile.in:
10:29 dalek nqp/ctmo: [build] stop installing nqprx.pbc
10:29 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/f73152cd7b
10:29 bbkr_ moritz: thanks
10:29 drbean left #perl6
10:29 moritz jnthn: turns out we installed the nqp.pbc twice :-)
10:29 jnthn wow :)
10:30 moritz my fault probably
10:30 jnthn moritz: I was kinda hoping that Parrot had a way to install libraires into a language's directory, e.g. that mapped to the .HLL
10:30 jnthn But looking through the library location code in library.c, it seems not.
10:30 moritz jnthn: maybe that exists, but we're not using it?
10:30 drbean joined #perl6
10:31 jnthn moritz: They do have a language directory thingy. But only for load_lang op, afaict.
10:32 moritz jnthn: things are not so bad after all, it's only three files that conflict
10:32 moritz HLL.pbc, P6Regex.pbc, Regex.pbc
10:32 moritz lunch &
10:34 drbean left #perl6
10:35 jnthn moritz: OK, that's not so bad. Thanks for looking at it.
10:36 drbean joined #perl6
10:40 tadzik bbkr_: just _please_ make sure that your file is a legal JSON
10:40 tadzik so no missing commas or whatever
10:40 drbean left #perl6
10:41 drbean joined #perl6
10:42 tzhs left #perl6
10:43 dalek ecosystem: 74793b8 | tadzik++ | META.list:
10:43 dalek ecosystem: Fix links
10:43 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/74793b86fd
10:44 bbkr_ tadzik: ofc, i've validated it with http://www.jsonlint.com/
10:45 drbean left #perl6
10:46 drbean joined #perl6
10:47 dalek ecosystem: c7157ab | tadzik++ | META.list:
10:47 dalek ecosystem: More linkfixing
10:47 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/c7157ab48f
10:49 donri joined #perl6
10:50 tadzik We need a validation tool for this
10:51 drbean left #perl6
10:52 drbean joined #perl6
10:54 Juerd Malformed JSON is illegal now?
10:54 tadzik well, it breaks the modules api living on feather, and modules.perl6.org as a result
10:54 Juerd Ouch
10:55 Juerd That's quite bad
10:55 tadzik yeah
10:55 tadzik I wonder if I can set up some obligatory commit hook which will validate the list
10:57 drbean left #perl6
10:57 tadzik OR I can add a few try {} is the list generatior :)
10:57 tadzik s/is/in/
10:58 drbean joined #perl6
11:00 tadzik hugme: add bbkr_ to ecosystem
11:00 hugme tadzik: sorry, I don't know anything about project 'ecosystem'
11:01 tadzik bbkr_: that's broken :)
11:01 bbkr_ ?
11:02 tadzik I commented on that
11:02 Juerd tadzik: Wouldn't it be better to just fix whatever breaks, rather than ensure its input is correct?
11:03 bbkr_ Sorry, didn't know about "raw" requirement. Fixing...
11:03 drbean left #perl6
11:04 tadzik bbkr_: the link needs to point to the JSON file, not the github page
11:05 drbean joined #perl6
11:05 tadzik Juerd: that's partly doable, yes
11:09 Trashlord left #perl6
11:09 drbean left #perl6
11:10 bbkr_ tadzik: fixed, link to raw/ in pull request
11:11 drbean joined #perl6
11:12 pernatiy left #perl6
11:15 drbean left #perl6
11:16 pernatiy joined #perl6
11:17 drbean joined #perl6
11:18 birdwindupbird left #perl6
11:21 tadzik ok, merging
11:22 drbean left #perl6
11:23 dalek ecosystem: c6ebebc | (Pawel bbkr Pabian)++ | META.list:
11:23 dalek ecosystem: Added JSON::RPC module
11:23 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/c6ebebc98e
11:23 dalek ecosystem: 9481db4 | (Pawel bbkr Pabian)++ | META.list:
11:23 dalek ecosystem: Fixed META.info location of JSON::RPC to raw
11:23 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/9481db4c87
11:23 dalek ecosystem: 0f87c0b | tadzik++ | META.list:
11:23 dalek ecosystem: Merge branch 'master' of https://github.com/bbkr/ecosystem into bbkr-master
11:23 dalek ecosystem:
11:23 dalek ecosystem: Conflicts:
11:23 dalek ecosystem: META.list
11:23 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/0f87c0b1f1
11:24 drbean joined #perl6
11:24 tadzik yay, modules.perl6.org got updated
11:25 yegor_ left #perl6
11:26 tadzik 34 modules have Panda badges
11:27 yegor_ joined #perl6
11:28 drbean left #perl6
11:30 drbean joined #perl6
11:30 moritz tadzik: extra points for having an absent Panda badge point to an installation error log
11:31 moritz tadzik: JSON doesn't have a badge, and I have no idea why
11:31 birdwindupbird joined #perl6
11:35 drbean left #perl6
11:35 drbean joined #perl6
11:36 [Coke] left #perl6
11:37 tadzik I'll take a look
11:37 tadzik moritz: the panda badge doesn't check the installation
11:37 bbkr_ Is anyone working on "Most wanted" Email::MIME ? I work in email marketing business on daily basis and I know RFC quite well, so I'm considering this as next goal.
11:37 [Coke] joined #perl6
11:37 moritz tadzik: what does it check?
11:38 PerlJam bbkr_: go for it.  :)
11:40 drbean left #perl6
11:40 tadzik moritz: the presence of source-url
11:41 drbean joined #perl6
11:42 PerlJam ah, the dreaded switch from repo-url to source-url  ;)
11:42 moritz and I'm to blame :/
11:42 PerlJam tadzik++
11:42 tadzik :)
11:45 PerlJam I'm sitting in an airport terminal waiting for a flight back to Texas.  There's a couple sitting across from me both with laptops open and doing stuff.  The woman is typing *really fast* with only one finger.   (faster than some people who use all of their fingers)
11:45 PerlJam I wonder what her error rate is though.
11:45 moritz just look at how often she hits backspace
11:46 * moritz installs three panda badges
11:46 PerlJam I can't quite see what keys she's hitting because of the angle between us.
11:46 drbean left #perl6
11:47 drbean joined #perl6
11:51 drbean left #perl6
11:52 dalek yapsi: 79609ac | moritz++ | META.info:
11:52 dalek yapsi: fix META.info
11:52 dalek yapsi: review: https://github.com/masak/yapsi/commit/79609acc13
11:52 * moritz finds the panda badges maximally cute
11:53 tadzik the bigger image is even cuter :)
11:54 drbean joined #perl6
11:55 Patterner left #perl6
11:57 Psyche^ joined #perl6
11:57 Psyche^ is now known as Patterner
11:58 drbean left #perl6
12:00 drbean joined #perl6
12:00 pernatiy left #perl6
12:03 Sarten-X joined #perl6
12:05 drbean left #perl6
12:06 drbean joined #perl6
12:06 wallberg left #perl6
12:07 pernatiy joined #perl6
12:09 takadonet joined #perl6
12:09 takadonet morning all
12:10 Tedd1 left #perl6
12:11 drbean left #perl6
12:11 Holy_Cow joined #perl6
12:12 drbean joined #perl6
12:15 Util Morning, takadonet
12:16 pmichaud good morning #perl6
12:16 phenny pmichaud: 07:20Z <moritz> tell pmichaud that rakudoperl.org doesn't show the rakudo favicon - might be worth fixing
12:16 pmichaud ...is there a rakudo favicon?
12:17 drbean left #perl6
12:18 moritz pmichaud: rakudo.org used a scaled down version of the logo
12:18 pmichaud I don't see one there now
12:18 moritz hm, maybe my mind is playing tricks on me :/
12:18 drbean joined #perl6
12:19 pmichaud anyway, if someone wants to create a favicon, I can certainly install it :)
12:19 MayDaniel joined #perl6
12:19 jnthn o/ pmichaud
12:20 pmichaud o/ jnthn
12:20 moritz pmichaud: try http://moritz.faui2k3.org/tmp/favicon.ico
12:20 moritz nothing fancy
12:22 pmichaud got the icon; have to take kid to school will install when I get back (in 15)
12:23 drbean left #perl6
12:23 moritz no hurry
12:25 drbean joined #perl6
12:29 drbean left #perl6
12:30 * Util updates Perl6-Math-Quaternion, trying for Panda badge.
12:31 drbean joined #perl6
12:31 moritz jnthn: I've tried to rename some .pbc files, but ran into some troubles; it tried to fetch some thing from non-existant serialization context :(
12:31 moritz jnthn: I guess I'm not proficient in the art of renaming files in a bootstrapped compiler
12:33 pmichaud favicon installed
12:33 plobsing joined #perl6
12:35 moritz ... and it shows up in my browser. Yay.
12:35 Moukeddar joined #perl6
12:35 drbean left #perl6
12:35 jevin left #perl6
12:35 ponbiki left #perl6
12:37 jevin joined #perl6
12:37 drbean joined #perl6
12:38 MayDaniel left #perl6
12:38 IllvilJa left #perl6
12:39 ponbiki joined #perl6
12:42 drbean left #perl6
12:42 Holy_Cow left #perl6
12:43 jnthn moritz: Ah, yes, one has to be careful :)
12:43 moritz straw poll: should I put the new error spec into a new S\d\d? if yes, which? if not, into which should it go?
12:43 jnthn pmichaud: Any suggestions on the installation issues? We have some PBCs to install that conflict with existing ones (HLL, Regex, P6Regex).
12:43 am0c joined #perl6
12:44 drbean joined #perl6
12:44 pmichaud jnthn: I'm still waking up here, so might have an answer a bit later :)
12:44 jnthn pmichaud: OK. I'll save my question on the regex prefix handling for a little later too then ;)
12:46 jnthn Well, I guess I could push it onto your mental stack. :) The immediate issue is that we're now constructing meta-objects as we compile, so all the gradual typing stuff is done. PAST::Compiler however emits an extra method to obtain the prefixes. Thing is, that's kinda "too late" - we'd already have composed the class by then.
12:46 jnthn s/is done/is possible/
12:48 drbean left #perl6
12:50 f00li5h left #perl6
12:50 drbean joined #perl6
12:50 hudnix joined #perl6
12:52 pmichaud is there a hook to be able to generate the extra methods when the class is composed?
12:54 bluescreen10 joined #perl6
12:54 drbean left #perl6
12:55 jnthn pmichaud: That's certainly be possible.
12:55 pmichaud seems like we'll need something like that anyway, for other automatically-generated methods
12:55 jnthn pmichaud: compose is just a method call on the meta-object. It can do whatever it likes.
12:55 jnthn Attribute accessors get added because composing the class visits each of its attributes and gives it a chance to do some composition-time work, for example.
12:55 pmichaud but it can also be done at the time of the regex
12:56 pmichaud so yes, it can be moved out of PAST::Compiler
12:56 pmichaud probably should be
12:56 jnthn Are the prefixes primarily data?
12:56 pmichaud currently yes, eventually no
12:56 jnthn Or is there logic involved that has to be delayed?
12:56 jnthn Ah, OK
12:56 cxreg2 joined #perl6
12:56 pmichaud I need to look at sorear++'s implementation of LTM
12:56 PerlPilot joined #perl6
12:56 drbean joined #perl6
12:56 jnthn Do duplicate or empty prefixes have any semantics, ooc?
12:57 pmichaud and that will determine what we need
12:57 pmichaud shouldn't be any duplicate prefixes
12:57 Util_ joined #perl6
12:57 pmichaud (there might be though)
12:57 jnthn I looked through the output for NQP's grammar and duplicate empty prefixes show up quite a few times.
12:57 pmichaud hmmm
12:57 jnthn Does an empty prefix mean anything?
12:57 patch__ joined #perl6
12:57 pmichaud yes
12:57 Moukeddar left #perl6
12:57 jnthn OK
12:58 bacek_ joined #perl6
12:58 charsbar__ joined #perl6
12:58 pmichaud it means that the rule can match an empty string, so the ltm-cheater takes that into account
12:58 Eevee_ joined #perl6
12:58 jnthn ah, I see
12:58 nnunley_ joined #perl6
12:58 jnthn OK, makes sense.
12:59 pmichaud the existence of duplicates doesn't really affect performance, iirc, because it's ultimately all hashed anyway
12:59 bacek left #perl6
12:59 PerlJam left #perl6
12:59 miso2217 left #perl6
12:59 Eevee left #perl6
12:59 Util left #perl6
12:59 cxreg left #perl6
12:59 chitragupt left #perl6
12:59 nnunley left #perl6
12:59 aloha left #perl6
12:59 charsbar_ left #perl6
12:59 patch_ left #perl6
12:59 arcus joined #perl6
12:59 jnthn Ah, OK. Then they concern me a bit less.
12:59 pmichaud anyway, there will have to be a way for a regex to be able to return its prefixes, yes.
12:59 aloha joined #perl6
13:00 chitragupt joined #perl6
13:00 jnthn And I guess in the future, non-literal prefixes.
13:00 pmichaud ideally it should probably be a method on the regex method itself, rather than a separately-named method
13:00 _twitch joined #perl6
13:00 pmichaud I didn't have that option with Parrot's default method model
13:01 pmichaud but since we should be able to have a 'Regex' base class somewhere, it becomes much more plausible
13:01 drbean left #perl6
13:02 jnthn Yes
13:02 pmichaud i.e., ultimately I'd like to be able to do   &regexxyz.prefixes()   instead of   !prefix_regexxyz()
13:02 jnthn Many things get more plausible :)
13:03 drbean joined #perl6
13:03 pmichaud but it does ultimately become dynamic because the longest-token prefixes are determined by the grammar you happen to be in at runtime
13:03 tadzik 43 panda-badged modules out of 92 existing in the database
13:04 bluescreen10 left #perl6
13:04 pmichaud i.e.,:   regex abc { 'foo' <xyz> }    can have different prefixes depending on inheritance
13:04 snearch left #perl6
13:04 flussence almost half \o/
13:04 tadzik yes :)
13:05 pmichaud moritz: I'd suggest that exceptions should become S18, and that we switch around the synopses after that
13:05 tzhs joined #perl6
13:06 pmichaud or perhaps exceptions makes more sense as S17
13:07 pmichaud OR, if you want to use S07 or S08 for exceptions, I suspect I can fit iterators/captures/parcels into a single synopsis
13:07 pmichaud it's not clear why those should be split in two
13:07 pmichaud (at least not to me)
13:07 drbean left #perl6
13:07 pmichaud so, my tentative suggestion:   S07 - Exceptions,   S08 - Lists, Iterators, Captures, Parcels
13:08 pmichaud or vice-versa
13:08 moritz currently 15, 18, 23, 25, 27 and 30 are free
13:09 pmichaud yes, but exceptions seems like one of those "lower-level" items
13:09 pmichaud on the other hand, if it's heavily object/class-based, then perhaps it belongs after 14
13:09 risou joined #perl6
13:09 drbean joined #perl6
13:09 moritz in the Camel that would be Unicode, Compiling, Secuirty, Portable, Culture and Standard Library
13:09 pmichaud the general principal is to "reduce forward references"
13:09 pmichaud *principle
13:09 moritz pmichaud: yes, it is heavily based on OO and roles
13:10 moritz S18 seems sensible
13:10 pmichaud so, if what you're writing is based heavily on knowing bits about the OO and role parts of Perl 6, then after S14 makes sense
13:10 flussence .oO( maybe the synopses should be autonumbered from a directed graph of links :)
13:10 pmichaud will IO need a good understanding of exceptions to be able to use it?
13:11 moritz ... and recalculates file names after each commit?
13:11 moritz pmichaud: don't think so
13:11 pmichaud then yes, S18 seems like a good fit
13:11 moritz it might generate forward references though
13:12 pmichaud if what you're writing reads more like a library than anything else, then it could be a subsection of S32
13:12 pmichaud there's already a S32-Exception
13:12 moritz hm, point taken
13:13 pmichaud all of synopses 28 through 32 look like they might want a re-think
13:13 pmichaud (in terms of numbering and content)
13:13 moritz much of it will look a lot like an API spec more than the narrative in S02-S06
13:13 pmichaud yeah, api spec tends to be S32-ish, I think
13:13 moritz s/more/not/
13:13 pmichaud much like the other builtin functions/methods
13:14 moritz aye
13:14 drbean left #perl6
13:15 drbean joined #perl6
13:16 _twitch left #perl6
13:17 VXZ joined #perl6
13:18 plobsing left #perl6
13:19 bluescreen10 joined #perl6
13:20 drbean left #perl6
13:21 arcus left #perl6
13:22 drbean joined #perl6
13:23 am0c left #perl6
13:24 newbee left #perl6
13:26 drbean left #perl6
13:27 IllvilJa joined #perl6
13:28 drbean joined #perl6
13:32 birdwindupbird left #perl6
13:33 drbean left #perl6
13:34 drbean joined #perl6
13:34 ella joined #perl6
13:34 birdwindupbird joined #perl6
13:34 bbkr_ rakudo: say so "" ~~ m/<[a..z]-[x]>/ # known bug? seems that exclude "-[x]" in char class fails when regexp containing such class is matched on empty string
13:34 p6eval rakudo 8533c3: OUTPUT«Cannot take substr outside string␤  in <anon> at line 22:/tmp/zpqtyrD_Aw␤  in 'Cool::match' at line 2661:CORE.setting␤  in main program body at line 22:/tmp/zpqtyrD_Aw␤»
13:35 ella rakudo: x
13:35 p6eval rakudo 8533c3: OUTPUT«Could not find sub &x␤  in main program body at line 22:/tmp/2DJLehGo29␤»
13:35 ella rakudo say x
13:35 moritz bbkr_: similar cases are known and have been fixed - I don't think this one
13:35 * bbkr_ reports just in case
13:36 arcus joined #perl6
13:36 moritz bbkr_++
13:37 wallberg joined #perl6
13:38 drbean left #perl6
13:38 undee69 joined #perl6
13:40 drbean joined #perl6
13:41 miso2217 joined #perl6
13:41 bbkr_ rakudo: say so "a" ~~ /<[\x00..\xFF]>/ # what is the proper way to give hex ranges in regexp? this doesn't seem to work
13:41 p6eval rakudo 8533c3: OUTPUT«Bool::False␤»
13:42 moritz bbkr_: rakudo doesn't understand any backslash sequences in char classes :(
13:42 arcus left #perl6
13:42 ella rakudo: say 1
13:43 p6eval rakudo 8533c3: OUTPUT«1␤»
13:43 ella rakudo: say 17
13:43 p6eval rakudo 8533c3: OUTPUT«17␤»
13:43 jnthn rakudo: say 17 + 25
13:43 p6eval rakudo 8533c3: OUTPUT«42␤»
13:43 jnthn \o/
13:44 drbean left #perl6
13:44 undee69 rakudo: say 9+1
13:44 p6eval rakudo 8533c3: OUTPUT«10␤»
13:45 moritz rakudo: say (42/14).perl
13:45 p6eval rakudo 8533c3: OUTPUT«3/1␤»
13:45 woosley joined #perl6
13:46 drbean joined #perl6
13:47 bbkr_ moritz: time for workarounds then. luckily this works perfectly: m/^<[!..~]-[:]>+$/ (RFC2822 header name regexp for incoming Email::MIME)
13:48 tadzik seen PerlPilot
13:48 aloha PerlPilot was last seen in #perl6 68 days 20 hours ago saying "masak: We are the music makers and we are the dreamer of dreams.  :)".
13:48 undee69 is now known as undeevhanner
13:49 tadzik phenny: tell PerlPilot I've sent you a pull request for Benchmark.pm
13:49 phenny tadzik: I'll pass that on when PerlPilot is around.
13:50 * moritz thought 'perlpilot' on github was PerlJam on #perl6
13:50 moritz seen PerlJam
13:50 aloha PerlJam was last seen in #perl6 2 hours 3 mins ago saying "I can't quite see what keys she's hitting because of the angle between us.".
13:50 tadzik I never know :)
13:50 drbean left #perl6
13:51 undeevhanner is now known as undee69
13:52 wallberg left #perl6
13:52 drbean joined #perl6
13:55 ella left #perl6
13:57 drbean left #perl6
13:57 _jaldhar is now known as jaldhar
13:59 drbean joined #perl6
14:03 drbean left #perl6
14:03 plobsing joined #perl6
14:04 drbean joined #perl6
14:06 meswami joined #perl6
14:09 drbean left #perl6
14:11 drbean joined #perl6
14:15 drbean left #perl6
14:17 drbean joined #perl6
14:21 drbean left #perl6
14:21 undee69 left #perl6
14:23 drbean joined #perl6
14:25 meswami hi every one.what is 'highlight' that u get with output in p6eval
14:25 meswami ?
14:27 moritz meswami: it used to give you an URL to a highlighted html file
14:27 moritz meswami: seems it's broken now
14:28 drbean left #perl6
14:30 drbean joined #perl6
14:32 slavik left #perl6
14:34 drbean left #perl6
14:35 bluescreen10 left #perl6
14:36 drbean joined #perl6
14:37 yegor_ is now known as vividsnow
14:40 drbean left #perl6
14:41 meswami left #perl6
14:42 drbean joined #perl6
14:45 drbean left #perl6
14:45 mkramer joined #perl6
14:47 bluescreen10 joined #perl6
14:47 mkramer left #perl6
14:48 drbean joined #perl6
14:52 drbean left #perl6
14:53 TimToady moritz: that doesn't make sense to me; I thought meswami was asking about error message colors
14:53 TimToady std: 1 2
14:53 p6eval std 3468e14: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/OVTxzpdR2L line 1:␤------> [32m1 [33m⏏[31m2[0m␤    expecting any of:␤ bracketed infix␤        infix or meta-infix␤    statement modifier loop␤Parse failed␤FAILED 00:01 119m␤»
14:54 moritz TimToady: p6eval also has a 'hilight' target
14:54 drbean joined #perl6
14:54 moritz hilight: my $x
14:54 TimToady ah, ok
14:54 moritz highlight: my $x
14:54 p6eval Please use /msg p6eval my $x
14:54 bbkr_ is there any smart (and implemented) way to check if characters in string are within US-ASCII range 1-127 ?
14:55 moritz TimToady: your interpretation makes some sense too... not sure what meswami meant
14:55 jnthn 1 <= @all($str.comb>>.ord) <= 127
14:56 slavik joined #perl6
14:57 jnthn or !$str.comb.first(1 <= *.ord <= 127) maybe
14:57 bbkr_ jnthn: thanks. I wanted to avoid split/comb, but since \xHH is not yet implemented in regexp classes looks like I have no choice :)
14:58 jnthn Yeah, that would be ideal way
14:59 TimToady eventually, <:ascii> should work
14:59 drbean left #perl6
15:00 drbean joined #perl6
15:02 jnthn rakudo: say "öl" ~~ /<ascii>+/
15:03 p6eval rakudo 8533c3: OUTPUT«Method 'ascii' not found for invocant of class 'Cursor'␤  in <anon> at line 22:/tmp/VRVGFJwyVi␤  in 'Cool::match' at line 2661:CORE.setting␤  in 'Regex::ACCEPTS' at line 6354:CORE.setting␤  in main program body at line 22:/tmp/VRVGFJwyVi␤»
15:03 jnthn Aw.
15:04 TimToady we're trying to move most of the Unicode-ish properties to use pair notation to cut down the possibilities of collision with user-defined grammar rules
15:04 jnthn oh.
15:04 TimToady and also because pair notation allows an argument
15:04 moritz rakudo: say "öl" ~~ /<isAscii>+/
15:04 jnthn What does that really mean?
15:04 p6eval rakudo 8533c3: OUTPUT«Method 'isAscii' not found for invocant of class 'Cursor'␤  in <anon> at line 22:/tmp/4pUb_ViZ3t␤  in 'Cool::match' at line 2661:CORE.setting␤  in 'Regex::ACCEPTS' at line 6354:CORE.setting␤  in main program body at line 22:/tmp/4pUb_ViZ3t␤»
15:04 jnthn As in, what does <:foo> mean over <foo>?
15:05 jnthn In terms of runtime semantics?
15:05 tzhs left #perl6
15:05 alester joined #perl6
15:05 drbean left #perl6
15:05 jnthn That is, is it still some kinda method call?
15:06 molaf joined #perl6
15:07 drbean joined #perl6
15:07 TimToady likely, but it's not clear whether the method name is the key of the pair
15:07 bbkr_ rakudo: any("\x01" .. "\x7F") # timeouts for me
15:07 TimToady and we may want to nail the namespace of character props down at compile time
15:07 p6eval rakudo 8533c3: OUTPUT«(timeout)»
15:08 TimToady (for efficiency)
15:08 moritz (1..127)>>.chr
15:08 jnthn Ah, that's a good point.
15:08 orevdiabl left #perl6
15:09 donri left #perl6
15:09 revdiablo joined #perl6
15:09 revdiablo left #perl6
15:09 revdiablo joined #perl6
15:10 TimToady but the namespace of properties (and associated values) from Unicode is quite extensive, and we mainly want to avoid collisions, in addition to allowing specified values
15:10 TimToady http://perldoc.perl.org/perlunicode.html#Unicode-Character-Properties lists *some* of these properties
15:10 TimToady though Perl 5's syntax is special rather than overloading pair notation
15:11 drbean left #perl6
15:12 drbean joined #perl6
15:12 woosley left #perl6
15:13 alester left #perl6
15:13 TimToady so where P5 uses \p{Bidi_Class:R} we'd use <:Bidi_Class<R>>
15:14 TimToady or <:Bidi_Class('R')> if you don't like nested angles
15:14 pmichaud I thought <ascii> was implemented.
15:15 TimToady using pair notation also gives us <:!Letter>
15:15 alester joined #perl6
15:15 moritz alpha: say "abc" ~~ /<ascii>+/
15:15 p6eval alpha : OUTPUT«(timeout) find regex 'ascii'␤in regex »
15:15 TimToady S05:1587 for the P6 spec on this
15:16 moritz pmichaud: the nqp char class implementation is... very incomplete
15:16 pmichaud ah, S05 doesn't define <ascii>
15:16 pmichaud that's why nqp/rakudo doesn't have it.  :-)
15:17 moritz pmichaud: it does spec backslash sequences in char classes though :-)
15:17 pmichaud moritz: it does?  ;-)
15:17 drbean left #perl6
15:18 pmichaud moritz: I see no backslash sequence in char class spec in S05.  :-P
15:18 rlb3 joined #perl6
15:18 pmichaud (not saying it's not valid... just that it's not specced)
15:18 moritz S32 uses it :-)
15:18 drbean joined #perl6
15:18 moritz and the test suite
15:18 pmichaud S32 was speculative at the time that was written
15:19 TimToady it's specced in the spot that says "Just like P5 if we don't mention it" :P
15:19 moritz but yes, it's underspecced
15:19 TimToady agreed
15:19 pmichaud and at the time I wrote NQP, even STD.pm didn't have a good way to parse that
15:19 pmichaud much less implement it
15:20 moritz but my ack agrees with you that it's not mentioned in S05
15:20 moritz (unless in a char class that spans multiple lines in the source)
15:20 TimToady it's specced in STD then :)
15:21 moritz ETOOMANYDIFFERENTSPECS
15:22 pmichaud TimToady: I see that STD.pm goes into the <Q> parser for enumerated character classes.... what does the :cc tweak do?
15:22 drbean left #perl6
15:23 pmichaud oh, wait
15:23 pmichaud hmmm
15:23 mkramer joined #perl6
15:24 drbean joined #perl6
15:24 pmichaud okay, my question still stands... what does the :cc tweak do?
15:25 pmichaud does it then make use of "role cc" ?
15:25 moritz it mixes the role cc in
15:25 pmichaud and that's what enables it to recognize the cc backslashes
15:26 pmichaud okay, we can perhaps do something similar
15:27 pmichaud at least that helps on the parsing side
15:27 pmichaud figuring out   <+alnum-[\D]>  is going to be fun, though.  :-)
15:28 llabthgie left #perl6
15:28 jnthn -Ofun ;)
15:28 drbean left #perl6
15:28 moritz which part? the subtraction?
15:28 pmichaud the subtraction of the negation, yes.
15:28 moritz or getting a list of matched characters/ranges from alnum?
15:28 moritz sounds like not too hard with inversion lists
15:28 pmichaud I can do it with inversion lists.... but we really need some opcodes to do the actual match efficiently
15:29 pmichaud and to have a good way of encoding the inversion list in the generated code
15:29 pmichaud I've already solved this problem on paper
15:29 pmichaud I couldn't really implement it in nqp-rx because of the need/want for specialized opcodes to do the matching efficiently
15:29 moritz how? by generating a bit field in the end?
15:29 pmichaud that's not an issue in 'nqp'
15:30 moritz right
15:30 pmichaud oh, I can match against an inversion list no problem
15:30 pmichaud but we really don't want it to be a bunch of PMCs
15:30 drbean joined #perl6
15:30 pmichaud easier is to simply have a string of on/off codepoints
15:30 mkramer left #perl6
15:30 vividsnow left #perl6
15:30 moritz matching against an inversion list should be O(log($list-length))
15:31 pmichaud right
15:31 pmichaud it is
15:31 moritz subtraction is O($len1 + $len2)
15:31 pmichaud but I didn't necessarily want to code that in PIR
15:31 moritz inverting is O(1)
15:31 moritz understandable :-)
15:32 pmichaud as I said, I solved all of this on paper already, including union and renormalizing the lists
15:32 moritz ok ok :-)
15:32 jnthn pmichaud: Please no more PIR.
15:32 jnthn pmichaud: :)
15:32 pmichaud we also have to have a table to maintain the inversion lists for \d, \s, \h, \v, etc.
15:33 moritz aye
15:33 jnthn pmichaud: The cost of developing in PIR in new-NQP is far higher.
15:33 pmichaud jnthn: np
15:33 jnthn pmichaud: And the fact that Regex.pbc isn't in PIR has been a source of regular pain and bugs during implementing separate compilation. :)
15:33 jnthn er, *is* in PIR
15:33 jnthn Or isn't in some HLL :)
15:34 pmichaud jnthn: as I said, I didn't necessarily want to code this in PIR.
15:34 * moritz looked through PIR chunks in the nqp source, looking for ones that I could replace with nqp
15:34 moritz and some of the regex bits looked pretty hairy
15:34 pmichaud jnthn: which is why it hasn't been done yet
15:34 bluescreen10 left #perl6
15:34 moritz like... the OPP in pir *shudder*
15:34 jnthn pmichaud: Yes, makes sense.
15:34 drbean left #perl6
15:35 drbean joined #perl6
15:36 jnthn pmichaud: Between some improvements to PAST and PAST::Compiler and writing a relaitvely straightforward optimizer, we can eliminate much of the overhead we get by writing stuff in NQP today compared to PIR also. :)
15:36 llabthgie joined #perl6
15:36 pmichaud good.
15:37 jnthn pmichaud: We could do with things like, parameters that don't assume they need to go into a lexical.
15:37 jnthn If we have a block that declares no contextuals and has no nested blocks within it, we can optimize the lexicals out completely.
15:37 jnthn I already wrote a first cut of that for nqpclr.
15:38 jnthn Of course, non-PMC lexicals would also be good...I can deal with those at some point.
15:39 jnthn I did a profile of NQP recently using the VS profiler. find_lex is actually a hot path.
15:39 drbean left #perl6
15:40 pmichaud if we assume that lexical names never get rebound we can eliminate the find_lex also.
15:40 pmichaud or, at least, have only one per block
15:41 pmichaud (one per lexical per block)
15:41 jnthn Well, we can statically know if they're rebound if they're non-contextual, I guess?
15:41 jnthn Just analyze the block for :+
15:41 jnthn er, :=
15:41 jnthn And then flag the lexical somehow as non-rebound.
15:41 pmichaud even if they're contextual we can assume they're not rebound, at least in p6
15:41 drbean joined #perl6
15:41 jnthn Oh?
15:42 jnthn $*foo := 42;
15:42 jnthn Could rebind something way down the call chain?
15:42 pmichaud that actually doesn't change the binding of the '$*foo' symbol -- it still points to the same pointer PMC
15:42 justatheory joined #perl6
15:42 pmichaud at least, that's how it is in our current model
15:42 jnthn Yeah, but our current model seems...broken. :(
15:42 jnthn (In Rakudo, not in NQP).
15:42 pmichaud no, I mean the current p6 model
15:42 jnthn Oh.
15:43 jnthn := replaces the container though?
15:43 jnthn Not just the value in it.
15:43 pmichaud no
15:43 jnthn Unless we have two levels of containers
15:43 pmichaud it doesn't replace the container, it simply makes one container refer to another
15:43 pmichaud same as binding in function calls
15:44 jnthn Ah
15:44 pmichaud we have to keep them separate because the two containers might have different constraints
15:44 jnthn Yes, that's true.
15:44 pmichaud my $x = 5;
15:44 pmichaud my int $y := $x;
15:44 pmichaud *Int
15:44 pmichaud that's the same as
15:45 pmichaud my $x = 5;  sub foo(Int $y) { ... };   foo($x)
15:45 pmichaud $y and $x are different containers
15:45 pmichaud so the symbol $y never gets rebound to a new PMC -- it always has the PMC that has the attached "Int" constraint
15:45 moritz rakudo: my $x = 5; sub f(Int $y) { $x = 'foo' }; f($x); say $x
15:45 p6eval rakudo 8533c3: OUTPUT«foo␤»
15:45 moritz rakudo: my $x = 5; sub f(Int $y) { $x := 'foo'; say $y }; f($x); say $x
15:46 p6eval rakudo 8533c3: OUTPUT«foo␤foo␤»
15:46 moritz niecza: my $x = 5; sub f(Int $y) { $x := 'foo'; say $y }; f($x); say $x
15:46 p6eval niecza v4-76-g7bf5ef9: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Any()In parameter declaration, typename 'Int' must be predeclared (or marked as declarative with :: prefix) at /tmp/KFCnvbalDA line 1:␤------> [32mmy $x = 5; sub f(Int[33m⏏[31m $y) { $x := 'foo'; say $y }; f($x); say[0m␤␤Parse
15:46 p6eval ..failed␤␤»
15:46 drbean left #perl6
15:46 moritz niecza: my $x = 5; sub f(Num $y) { $x := 'foo'; say $y }; f($x); say $x
15:46 p6eval niecza v4-76-g7bf5ef9: OUTPUT«5␤foo␤»
15:46 moritz which one is correct? or are both wrong?
15:47 moritz (think s/Num/Int/ in niecza)
15:47 ymasory joined #perl6
15:48 drbean joined #perl6
15:48 jnthn moritz++ # great example
15:48 pmichaud I asked TimToady this question at NPW'09
15:48 pmichaud I don't think I got a clear answer.  :-)
15:48 jnthn nqp: my $x = 5; sub f(Int $y) { $x := 'foo'; say $y }; f($x); say $x
15:48 p6eval nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " 5; sub f("␤current instr.: 'nqp;HLL;Grammar;panic' pc 17577 (gen/hllgrammar-grammar.pir:5028)␤»
15:49 jnthn nqp: my $x := 5; sub f(Int $y) { $x := 'foo'; say $y }; f($x); say $x
15:49 p6eval nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'nqp;Regex;Cursor;FAILGOAL' pc 3435 (src/Regex/Cursor.pir:233)␤»
15:49 moritz say()
15:49 jnthn nqp: my $x := 5; sub f(Int $y) { $x := 'foo'; say($y) }; f($x); say($x)
15:49 p6eval nqp: OUTPUT«5␤foo␤»
15:49 jnthn Heh, thought that'd happen :)
15:49 * moritz finds rakudo's answer a bit confusing
15:49 moritz how can $y be 'foo' if it's typed as Int?
15:49 jnthn Niecza's view of binding is more like NQPs.
15:49 pmichaud I'm inclined to say that Rakudo is wrong there on the rebind
15:49 pmichaud well, maybe not
15:50 bluescreen10 joined #perl6
15:50 jnthn afaik, anyway
15:50 pmichaud NQP's view doesn't have any notion of containers, though.
15:50 jnthn No, that's true.
15:52 pmichaud anyway, my point is that in Rakudo we can actually assume that the lexical symbol $x remains bound to the same PMC throughout its lifetime
15:52 drbean left #perl6
15:53 rlb3 left #perl6
15:53 pmichaud if we want to implement p6 binding and constraint semantics, that's just the way it works out
15:53 vividsnow joined #perl6
15:53 drbean joined #perl6
15:53 rlb3 joined #perl6
15:53 IllvilJa left #perl6
15:54 jnthn pmichaud: OK. Sounds like we can be more efficient then :)
15:55 pmichaud it means PAST needs a way of being able to say "assume lexicals are never rebound and optimize for that"
15:55 pmichaud while it's true for Rakudo, it might not be true for other languages
15:55 * jnthn wonders if that should be Var level or Block level
15:55 pmichaud both
15:55 pmichaud that's why PAST has a 'default' set of attributes for vars :-)
15:56 jnthn :)
15:56 pmichaud so you can say "in this block, if a Var doesn't declare otherwise, assume it's scope/binding/whatever is ..."
15:56 pmichaud if require every Var to explicitly declare, that can get expensive
15:56 jnthn Yes, it would.
15:58 drbean left #perl6
15:59 TimToady I suspect := and ::= are quite different
16:00 drbean joined #perl6
16:00 TimToady the first is (I hope) a simple pointer substitution, while the second is able to add constraints
16:00 moritz TimToady: do you have an opinion on how my example should behave?
16:00 TimToady parameter binding is the second
16:01 moritz rakudo: my $x = 5; sub f(Int $y) { $x := 'foo'; say $y }; f($x); say $x
16:01 p6eval rakudo 8533c3: OUTPUT«foo␤foo␤»
16:02 TimToady I think rebinding $x makes $x and $y point to different things
16:02 pmichaud I can agree with that
16:02 rhebus joined #perl6
16:03 pmichaud Rakudo needs to move to a two-layer system
16:03 moritz so output should be 5\nfoo\n, right?
16:03 TimToady I believe so
16:03 pmichaud $x -> container -> 5
16:03 * moritz submits rakudobug
16:03 jnthn pmichaud: Unless the lexpad's slot *is* the outer container.
16:03 drbean left #perl6
16:03 pmichaud jnthn: two containers
16:04 TimToady a "bvalue" to := should just be a pointer to a pointer
16:04 jnthn pmichaud: Right, there's still two. :)
16:04 pmichaud the lexpad slot is the variable container
16:04 TimToady a "bvalue" to ::= is more complicated
16:04 pmichaud my $x results in   the $x slot going to a PMC that points to a PMC that points to 5
16:05 TimToady I'd like your first PMC to be a native type in most implementations
16:05 moritz that feels... expensive
16:05 jnthn If 5 was some boxed object, it'd be a PMC pointing to a PMC that points to the object?
16:05 pmichaud jnthn: yes
16:05 jnthn That sounds costly
16:05 TimToady that is, := is modifying an unboxed native ref
16:05 TimToady msot if the time
16:05 pmichaud TimToady: we have to have somewhere to hang constraints and properties of the variable itself
16:06 drbean joined #perl6
16:06 TimToady that's the business of ::=, not :=
16:06 TimToady ::= can add to a linked list, but := shouldn't
16:06 ashleydev make it like an inside-out class and add the attributes somewhere else "if needed"
16:06 rhebus_ joined #perl6
16:07 rhebus left #perl6
16:07 rhebus_ is now known as rhebus
16:07 TimToady assuming there's a root pointer, := replaces the root pointer, and ::= inserts after it
16:07 pmichaud so:    my $x = 5;   my Int $y := $x;   $y = 'hello';   # valid?
16:07 molaf left #perl6
16:08 TimToady probably valid but "erroneous"
16:09 jnthn What does that mean?
16:09 pmichaud in other words, binding a variable with := causes it to adopt whatever (non-) constraints exist on whatever it's being bound to?
16:09 TimToady I'm sure that making := fast and ::= smart will result in some "don't do thats"
16:09 pmichaud s/variable/symbol
16:09 TimToady pmichaud: yes, though perhaps we can catch some of those at compile time
16:10 TimToady I'd like := to be very primitive, even if it defeats the type systems
16:10 pmichaud okay, I'm fine with that.
16:10 pmichaud jnthn:  ignore what I said above about being able to optimize our lexical fetches.  :-)
16:10 drbean left #perl6
16:10 jnthn TimToady: That makes me nervous.
16:11 jnthn TimToady: Given I've plans to rely on things typed as Int actually *being* that.
16:11 pmichaud in rakudo's case, we may end up making binding fast only to make variable fetches slow.
16:11 jnthn TimToady: If we defeat that then I'm going to start dispatching to surprise methods. ;)
16:12 drbean joined #perl6
16:12 TimToady or maybe we just need to make sure our native type system supports native refs adequately
16:12 pmichaud rethinking a bit
16:12 pmichaud 16:05 <jnthn> That sounds costly
16:13 pmichaud Which is more costly?
16:13 jnthn pmichaud: If lexical accesses were *cheap* we could worry far less.
16:13 pmichaud (more)
16:13 pmichaud 1.   Lexical fetch for $x -> container -> value
16:13 pmichaud 2.  Known $x -> container -> container -> value
16:13 jnthn We know at compile time for most lookups enough to map them to N pointer chases down the otuer chain, then a slot index.
16:14 jnthn At the moment they're really costly because for every frame in the outer chain that we walk it doing a hash lookup.
16:14 pmichaud jnthn: sure, but if the lexical is known to be in a particular register already, we can avoid even the N pointer chases
16:14 pmichaud once we've looked it up once, we can keep it in that register for the rest of the block
16:14 TimToady what operation do you need a boxed pointer chase for that an unboxed pointer chase in the first step would be "too simple"
16:14 TimToady ?
16:15 jnthn Sure, but a container pointing to a container is a pointer chase too I guess. But it's at least 1 and not N. I grant that.
16:15 pmichaud it's also not a slot lookup
16:15 pmichaud i.e., we're not indexing into an array
16:15 jnthn To the degree that Parrot register accesses aren't slot lookups, yes. ;)
16:15 pmichaud good point :-)
16:16 justatheory left #perl6
16:16 jnthn TimToady: Part of what I'm wondering is "where do the constraints live"
16:16 jnthn In the model pmichaud is suggesting, afaict they'd be hung off the outer container.
16:16 pmichaud TimToady: if $x :=   means that we modify an unboxed pointer,   then every access to $x has to do a lexpad lookup to find out what its current unboxed pointer value is
16:16 pmichaud and lexpad lookups are currently very expensive in Parrot
16:16 drbean left #perl6
16:17 jnthn They are, but they don't have to be if it matters a lot to us that they're faster.
16:17 pmichaud because the only way we have to maintain a reference to a pointer is to box it
16:17 TimToady well, that's a problem, ain't it?
16:18 pmichaud if you're suggesting that parrot needs a native reference type, perhaps.
16:18 pmichaud I'm not the architect there.
16:18 drbean joined #perl6
16:19 pmichaud all we have are native int, native str, native num, and PMC ref
16:19 TimToady I'm saying I think we need to get to a primitive model a bit closer to C or Lisp here, seems like
16:19 mj41 left #perl6
16:19 pmichaud we don't have a native type that can reference a PMC ref
16:20 TimToady or at least not prevent such an implementation on VMs that can support native pointer to pointer
16:20 TimToady (internally, not necessaryily user-visible)
16:21 TimToady this feels a bit like the boundary between "managed" and "unmanaged" code
16:21 pmichaud jnthn: we can speed up lexpad lookups a lot, but I don't think we can speed it up so much that it's less expensive than simply avoiding the lookups altogether :-)
16:21 TimToady I'd at least like to have a variant of P6 that can rival the speed of C/C++ eventually
16:21 MayDaniel joined #perl6
16:22 pmichaud and we still need to know how    my $x = 5;  my Int $y := $x;   $y = 'hello';      affects things
16:22 yegor_ joined #perl6
16:23 yegor_ left #perl6
16:23 pmichaud if we declare that "erroneous" but not enforced/enforceable, I'm fine with that.
16:23 drbean left #perl6
16:23 vividsnow left #perl6
16:23 TimToady perhaps := should be disallowed between locations that are known to be different types at compile time
16:24 TimToady or require something to say "I mean it"
16:24 IllvilJa joined #perl6
16:24 TimToady "with UNCHECKED_TYPE_CONVERSION" in Ada, for instance
16:24 pmichaud I don't follow that.
16:25 drbean joined #perl6
16:25 pmichaud (not sure I need to :-)
16:25 jnthn TimToady: Allowing people to do stuff easily that isn't type safe seems like the path to a lot of pain.
16:25 TimToady my point is basically that we can't do any native types without the compiler knowing the type of the variable
16:25 jnthn Agree on that point.
16:25 TimToady jnthn: that's why it's in all caps
16:26 TimToady much like MONKEY_TYPING
16:26 jnthn TimToady: OK. So long as you don't care that we'll go and find whatever method is in slot 42 of Int's vtable when the actual value is a Monkey. :)
16:26 pmichaud so, in this case the := would be disallowed because    the Int constraint on $y doesn't match the Mu constraint of $x ?
16:27 TimToady phone
16:27 jnthn pmichaud: At the moment I'm pondering that maybe our container is at the 6model level a parametric role. (more)
16:28 jnthn role ScalarContainer[T] is repr('SomeCheapContainerThing') { has T $!data; }
16:28 jnthn It'll then handle native type storage automagically.
16:29 jnthn And we'd not need to worry about storing native types in the lexpad.
16:29 drbean left #perl6
16:29 pmichaud I totally don't follow that last point
16:29 * jnthn backs up a little
16:30 jnthn my int $x = 42;
16:30 pmichaud nested blocks still need to access the native typed lexical, yes?
16:30 jnthn Somewhere we need to store that 42. We shouldn't box it.
16:30 jferrero joined #perl6
16:30 jnthn If I understand the model you're proposing correctly, then the lexpad only ever points to a container which in turn has a value
16:31 jnthn That container would be a reference type, e.g. a PMC.
16:31 drbean joined #perl6
16:31 jnthn So our actual native storage would not be in the lexpad itself, but in the container which the lexpad references.
16:32 jnthn Am I missing something? :)
16:32 pmichaud Okay.
16:32 pmichaud that makes more sense
16:32 pmichaud so our lexpad still only holds PMCs, but some of those PMCs are containers for native types
16:32 jnthn Yes
16:32 pmichaud actually, all of them are, if we consider a PMC ref to be a native type
16:33 jnthn Well, it kinda is :)
16:33 pmichaud right
16:33 jnthn It's just a PMC* pointer. :)
16:33 jnthn But that's how P6opaque already works today
16:33 pmichaud that feels very clean-ish
16:33 pmichaud but in the case of non-native types, we'd still end up with
16:33 pmichaud my $x = 5;
16:33 pmichaud 5 is a boxed constant
16:34 pmichaud then we need a PMC for the variable
16:34 pmichaud then a PMC for $x
16:34 birdwindupbird left #perl6
16:34 jferrero http://rakudo.org/status is blank?
16:34 jnthn pmichaud: thinking... :)
16:34 pmichaud note that I don't have a problem with this at all
16:34 jnthn pmichaud: Note that we won't use Integer PMC any more. Int and Num will directly have the native value stored within them.
16:35 pmichaud yes
16:35 moritz jferrero: we're in the process of migrating to a more reliable hosting solutioin
16:35 pmichaud but it's still 3 pmcs
16:35 jnthn Ouch.
16:35 pmichaud Int
16:35 pmichaud variable
16:35 pmichaud $x
16:35 pmichaud but we no longer need lookups for $x
16:35 jferrero http://rakudo.de/ is freeze?
16:35 jferrero OK, moritz
16:36 jnthn pmichaud: How far can we share the $x?
16:36 jnthn pmichaud: Need we only clone it on a newclosure?
16:36 drbean left #perl6
16:36 moritz jferrero: rakudo.de is my fault... I should take down that spectests graph
16:36 pmichaud jnthn: thinking
16:36 moritz it doesn't mean anything, yet people try to ask deep questions about it
16:36 jnthn If so then I'm less scared.
16:37 tadzik whose child is rakudo.de?
16:37 jferrero OK, moritz
16:37 drbean joined #perl6
16:38 moritz tadzik: mine
16:38 pmichaud well, even now we don't really "clone" the containers
16:38 tadzik moritz: still tracking proto projects?
16:39 moritz tadzik: I don't know what it tracks right now, if anything
16:40 jnthn pmichaud: We create them every time we enter a block at the moment.
16:40 pmichaud I think we still have to do that.
16:40 jnthn pmichaud: I'm thinking we could create the outermost ones once, and attach any type constraint info to them.
16:40 pmichaud (recursion)
16:41 jnthn Oh, that doesn't cause a newclosure, does it...hm.
16:41 jnthn Yeah, I'm thinking of the operation on the wrong block here.
16:42 drbean left #perl6
16:43 jnthn I guess I'm just a little worried about my Foo $x .= new(); immediately creating you three GCable object allocations, which in truns is six heap allocations.
16:43 jnthn *in turn
16:44 drbean joined #perl6
16:44 pmichaud we can "cheat" a bit
16:45 pmichaud we could just have container + value, and then go to the multi-level container only if bound to
16:46 pmichaud being careful not to rebind the lexical
16:46 pmichaud for example, in   $y ::= $x
16:46 pmichaud if $x isn't pointing to a container, we create an anonymous container *then*, then bind both $x and $y to that
16:47 pmichaud (bind in the := sense, not in the lexpad slot sense)
16:47 pmichaud i.e., only go multi-level when we know we need to
16:47 pmichaud so, for
16:48 pmichaud my $x = 5;    #  container for $x, Int 5
16:48 pmichaud my $y;   # container for $y
16:48 pmichaud $y ::= $x;    # create an anonymous container, point it to $x's current value, cause $x and $y to reference the anonymous container
16:49 drbean left #perl6
16:49 jnthn Sounds feasible
16:49 pmichaud and, of course, once a variable is referencing a container, we don't need to repeat that step later
16:49 pmichaud so, it's lazy 3-level
16:50 pmichaud or lazy 2-level  (or whatever we call it)
16:50 odrm joined #perl6
16:50 drbean joined #perl6
16:50 jnthn And avoids the copy op which seems to be source of various of our bind bugs today.
16:50 pmichaud are we still using copy?
16:51 cdarroch joined #perl6
16:51 cdarroch left #perl6
16:51 cdarroch joined #perl6
16:51 jnthn Only for :=
16:51 jnthn How will this play out with arrays? (more)
16:51 jnthn my int @x; # a package array of ints
16:52 jnthn my Int @x; # array of Int objects, or array of containers pointing to Int objects?
16:52 jnthn s/package/packed/
16:52 pmichaud the second one is an array of containers
16:52 pmichaud (that's how it's implemented now)
16:52 jnthn OK.
16:52 pmichaud the first one is likely   ArrayContainer[int]    in the model you proposed above
16:53 jnthn OK
16:53 pmichaud which has some nice potential for making things efficient there :-)
16:53 pmichaud (as in packed arrays)
16:53 jnthn Yes.
16:54 pmichaud actually, the second one might also be ArrayContainer[Int]  and it could largely "just work", perhaps.
16:54 drbean left #perl6
16:54 pmichaud but Rakudo today assumes that Array is really Array of Scalar, and actually has each element as the equivalent of its own scalar container
16:54 jnthn If it knew it needed the container, yes.
16:55 jnthn Yeah, that's the disconnect I'm worried about
16:55 jnthn Where will that complexity bite us...
16:55 pmichaud actually, thus far it seems to be fairly straightforward
16:55 pmichaud or by disconnect are you concerined with   ArrayContainer[Int]  versus ArrayContainer[int]  ?
16:56 pmichaud *concerned
16:56 jnthn Yeah
16:56 pmichaud maybe
16:56 pmichaud ArrayContainer[ScalarContainer[Int]]
16:56 jnthn *nod*
16:56 pmichaud at least conceptually
16:56 jnthn Then we can wrap up the complexiyt
16:56 drbean joined #perl6
16:56 jnthn *complexity
16:56 jnthn Inside of Array
16:56 moritz ok, http://rakudo.de/ is now "updated"
16:56 jnthn Or some such :)
16:56 moritz as in, stripped out everything that's not updated regularly anymore
16:57 pmichaud anyway, since you've been dealing with lexicals and the like lately, I'm thinking I'll leave it to you to decide the model based on today's discussions
16:57 moritz if somebody wants to reconstruct historic module numbers, I might add statistics for the current numbers based on META.list in the ecosystem
16:57 Moukeddar joined #perl6
16:57 pmichaud but I do think that avoiding the repeated lexical fetches is plausible now, where it wasn't in many earlier versions of Rakudo
16:58 odrm left #perl6
16:58 pmichaud (because Perl 6 basically requires that we have some sort of container PMC, to which a lexical slot can be "permanently" bound)
16:58 odrm joined #perl6
16:58 jnthn Yeah, I can see the value of avoiding the repeated fetches.
16:58 jnthn We do spend quite a lot on that.
16:59 jnthn (repeatedly fetching, that is)
16:59 pmichaud so I think I'm saying I'll let you decide  the repeated fetch  versus indirections trade-off
16:59 pmichaud we know we'll have *some* indirections somewhere, especially on ::= binding
16:59 jnthn *nod*
16:59 pmichaud but we can make them really inexpensive
17:00 jnthn My other concern is that what we hand back from .VAR is actually a proper object.
17:00 pmichaud note also that the lazy 2-level I described above also avoid the chain of references
17:00 pmichaud i.e.,    my $x;   my $y ::= $x;   my $z ::= $y;
17:00 jnthn But I think that can be done very cheaply.
17:00 pmichaud we don't end up with $z -> $y -> $x  as we have now
17:00 jnthn Yes, that should not be a chain.
17:00 drbean left #perl6
17:00 jnthn Right.
17:01 pmichaud instead we end up with $x, $y, and $z all pointing to a common anonymous container, while each retains its own constraints
17:01 Chillance joined #perl6
17:01 pmichaud (we can decide if constraints need chaining... but that's workable in this model also)
17:01 jnthn On the one hand, I'm uncomfortable with the number of allocations. On the other, I know that find_lex is pricey.
17:02 pmichaud right, I agree.
17:02 pmichaud I figure you have a better sense of where the balance might lie.
17:02 jnthn And I suspect a mildly aggressive optimizer can eliminate quite a few of them too.
17:02 JimmyZ_ joined #perl6
17:02 pmichaud but as far as the number of allocations goes... I think in some sense the language requires them
17:02 pmichaud so I'm not sure we can completely avoid them
17:02 drbean joined #perl6
17:03 jnthn Looking forward six months, I expect to be inlining tiny-bodied multis too.
17:03 pmichaud +1
17:03 jnthn When we have the type information to do so.
17:03 Moukeddar left #perl6
17:03 jnthn Which we're building towards.
17:03 Entonian joined #perl6
17:03 jnthn So $a + $b where we know $a and $b are int (or Int) won't even be a call, meaning there won't even be containers to build for the parameters.
17:04 jnthn Or PCC, or a callcontext... ;-)
17:04 pmichaud alester: Feel free to point rakudo.org to rakudoperl.org whenever you're ready.
17:04 pmichaud alester: I think the new site is as ready as it needs to be for the domain repointing.
17:06 pmichaud jnthn: that sort of inlining will be awesome
17:07 jnthn pmichaud: Yes. There's some work to do to get there, but I feel I've got a reasonable sense of the path to it.
17:07 drbean left #perl6
17:08 jnthn The other thing we'll win a decent bit on is that typechecks should be a bunch cheaper. :)
17:09 drbean joined #perl6
17:09 jnthn nqp: class Foo is Bar { }
17:09 p6eval nqp: OUTPUT«Can only use get_how on a RakudoObject␤current instr.: 'nqp;NQPClassHOW;compute_c3_mro' pc 1498 (gen/nqp-how.pir:430)␤»
17:09 jnthn Anybody know how to get that to update?
17:09 jnthn That gives a nice compile-time warning now that actually makes sense :)
17:09 * moritz takes a look
17:09 jnthn Since, like, days ago. ;)
17:09 plobsing left #perl6
17:09 jnthn moritz++ # thanks!
17:11 pmichaud afk, lunch
17:12 JimmyZ_ E:\Open Source\nqp>nqp
17:12 JimmyZ_ Null PMC access in instantiate()
17:12 JimmyZ_ ctmo branch
17:13 moritz nqp might not be fine with spaces in path names
17:13 drbean left #perl6
17:13 jnthn JimmyZ_: Looks familiar. You probably have an old libparrot.dll lying around.
17:13 jnthn I'm pretty sure I got that error from that.
17:13 dalek nqp/ctmo: 4042390 | moritz++ | build/gen_parrot.pl:
17:13 dalek nqp/ctmo: [Configure] git fetch in the right place
17:13 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/404239038b
17:14 jnthn Try copy parrot_install/bin/libparrot.dll .
17:14 jnthn er, backslashes!
17:14 jnthn :)
17:14 jnthn moritz: You maybe wanted taht fix in master? :)
17:15 drbean joined #perl6
17:15 JimmyZ_ it works...
17:16 jnthn :)
17:16 JimmyZ_ make clean doesn't clean libparrot.dll :(
17:17 JimmyZ_ good night
17:17 JimmyZ_ left #perl6
17:18 moritz jnthn: sooner or later, yes
17:19 rhebus left #perl6
17:19 drbean left #perl6
17:21 jnthn ;)
17:21 jnthn ctmo has a few bustages at the moment :)
17:21 drbean joined #perl6
17:21 orafu left #perl6
17:23 Tedd1 joined #perl6
17:25 masak joined #perl6
17:25 masak greetings, zerbas.
17:26 TimToady .oO(zerba the greek)
17:26 jnthn masak! \o/
17:26 tadzik hello masak
17:26 drbean left #perl6
17:26 jnthn nom shop &
17:27 Lorn_ joined #perl6
17:27 Lorn_ left #perl6
17:27 masak what's ufobuilder?
17:27 tadzik an accident :>
17:27 tadzik that's basically 'ufo && make && make test && make install' as a backend for Pies
17:27 drbean joined #perl6
17:28 dsouza joined #perl6
17:28 masak heh :)
17:28 masak ufo wasn't convenient enough, huh? :P
17:29 tadzik no, that was just in-field testing of Pies
17:29 fhelmberger left #perl6
17:31 tadzik a proof-of-concept :)
17:32 drbean left #perl6
17:32 bluescreen10 left #perl6
17:33 masak PerlJam: in the Infocom game "The Lurking Horror", there's a wonderful scene description of a seasoned computer hacker who types with one hand 'faster than some people who use all of their fingers'.
17:34 drbean joined #perl6
17:34 masak moritz: thank you for panding Yapsi ;)
17:34 dsouza left #perl6
17:34 * masak .oO( 'pandizing'? )
17:34 moritz masak: thank you for your email forward :-)
17:34 IllvilJa left #perl6
17:36 MayDaniel left #perl6
17:38 drbean left #perl6
17:38 masak moritz: got another one some hours later, saying the book has dispatched.
17:38 moritz \o/
17:38 moritz then it might actually arrive before the official publishing date
17:39 drbean joined #perl6
17:39 masak moritz: I haven't written an OPP in PIR, but I'm pretty sure I understand the one in PGE, after having built a Perl 6 version off of it. it's actually not that tricky -- just a lot of cases to consider, and a lot of goto instructions to muddle things up.
17:41 masak pmichaud: do I understand you correctly that binding makes one container refer to another container? I always thought it made a container refer to the *value* in another container...
17:43 masak ah, I see now what TimToady said about := and ::=
17:44 drbean left #perl6
17:44 masak <TimToady> assuming there's a root pointer, := replaces the root pointer, and ::= inserts after it
17:44 masak I guess the "links" in the linked list are something like containers...
17:44 drbean joined #perl6
17:46 bluescreen10 joined #perl6
17:47 jnthn masak: (refer to the value in another container) wouldn't that be assignment? :)
17:48 masak hm. :)
17:49 masak ok, but it still doesn't match my picture of it.
17:49 drbean left #perl6
17:49 masak in my mental model, I have two *variables* (lexpad entries, whatever) refer to the same container after a binding.
17:49 masak nowhere is one containing referring to another container.
17:50 IllvilJa joined #perl6
17:51 drbean joined #perl6
17:51 jnthn masak: If you think of the lexpad as a kinda container... :)
17:51 masak sure, it's a hash-like container.
17:52 masak but that's not what we usually mean by "container" when we talk about binding.
17:55 drbean left #perl6
17:56 justatheory joined #perl6
17:57 drbean joined #perl6
18:01 drbean left #perl6
18:03 drbean joined #perl6
18:07 Moukeddar joined #perl6
18:07 Moukeddar left #perl6
18:08 drbean left #perl6
18:09 drbean joined #perl6
18:14 drbean left #perl6
18:16 drbean joined #perl6
18:18 ggoebel__ left #perl6
18:20 drbean left #perl6
18:21 mtk left #perl6
18:22 drbean joined #perl6
18:22 molaf joined #perl6
18:24 ggoebel__ joined #perl6
18:25 asdfssssssa joined #perl6
18:26 drbean left #perl6
18:28 drbean joined #perl6
18:29 mtk joined #perl6
18:32 ab5tract joined #perl6
18:33 drbean left #perl6
18:33 molaf left #perl6
18:34 drbean joined #perl6
18:39 drbean left #perl6
18:40 drbean joined #perl6
18:44 drbean left #perl6
18:46 drbean joined #perl6
18:48 pmichaud masak: the thing is, that we tie constraints to lexpad entries, not to "containers"
18:48 pmichaud unless each lexpad entry is its own container
18:49 pmichaud when we say    my Int $y;   $y ::= ...
18:50 pmichaud we can't simply (re-)bind $y to the value on the right; we also have to keep track of the fact that $y has a constraint
18:50 Entonian left #perl6
18:50 pmichaud and in the case of
18:50 drbean left #perl6
18:50 pmichaud my $x = 5;   my $y ::= $x;   $y = 4;
18:50 pmichaud we're changing the value of $x's container, not the value of the immutable 5
18:51 drbean joined #perl6
18:54 ymasory left #perl6
18:54 Moukeddar joined #perl6
18:54 ymasory joined #perl6
18:54 Moukeddar left #perl6
18:55 arcus joined #perl6
18:55 Solarion left #perl6
18:55 birdwindupbird joined #perl6
18:56 drbean left #perl6
18:57 asdfssssssa left #perl6
18:57 masak pmichaud: oh, I agree with all of that.
18:57 asdfssssssa joined #perl6
18:57 masak pmichaud: but what I see there is not one container pointing to another, but the variables $x and $y pointing to the same container.
18:58 drbean joined #perl6
18:59 pmichaud what about
18:59 pmichaud my $x = 5;  my Int $y ::= $x;
18:59 pmichaud what holds the constraint for $y ?
18:59 pmichaud it can't be the container that $x is pointing to
19:00 masak nod.
19:00 masak it's the lexpad entry for $y, no doubt.
19:01 pmichaud so, it's a "container"
19:01 masak is it the same kind of container as the thing that directly contains the 5?
19:01 pmichaud not necessarily, no
19:02 pmichaud but it's more than a simple native pointer, certainly
19:02 drbean left #perl6
19:02 Mowah left #perl6
19:02 mj41 joined #perl6
19:03 [Coke] left #perl6
19:03 masak oh, agreed.
19:03 pmichaud this is where Rakudo has "ObjectRef" and "Perl6Scalar" to identify the different types of references
19:03 pmichaud although I think we got rid of Perl6Scalar
19:03 pmichaud anyway, the fundamental behavior of both $x and $y's "containers" are the same -- they point to something else
19:04 drbean joined #perl6
19:04 pmichaud but they're not the same container, because one or the other or both have specialized behaviors under binding and assignment
19:05 masak nod
19:05 pmichaud (namely, how operations get forwarded to the thing they point to)
19:05 [Coke] joined #perl6
19:06 Mowah joined #perl6
19:06 * pmichaud is sad that rakudo.org is displaying "webpage not available" again.  :-(
19:06 masak :-(
19:07 sftp joined #perl6
19:08 drbean left #perl6
19:09 drbean joined #perl6
19:11 rgrau joined #perl6
19:13 drbean left #perl6
19:15 drbean joined #perl6
19:15 rlb3 left #perl6
19:16 asdfssssssa left #perl6
19:18 nymacro left #perl6
19:18 [Coke] left #perl6
19:20 drbean left #perl6
19:20 [Coke] joined #perl6
19:21 MayDaniel joined #perl6
19:21 drbean joined #perl6
19:26 drbean left #perl6
19:28 drbean joined #perl6
19:29 [Coke] left #perl6
19:30 risou_ joined #perl6
19:32 drbean left #perl6
19:33 [Coke] joined #perl6
19:33 risou left #perl6
19:34 drbean joined #perl6
19:39 Util_ What program generates the file at http://modules.perl6.org/proto.json ?
19:39 drbean left #perl6
19:39 tadzik build_projects_list.pl
19:39 tadzik (I think)
19:39 yegor joined #perl6
19:39 * moritz hopes "yes"
19:40 Util_ In which repo?
19:40 drbean joined #perl6
19:41 justatheory left #perl6
19:41 tadzik modules.perl6.org
19:43 Sarten-X left #perl6
19:43 Util_ Ah! modules.perl6.org isn't just a web site, it is a GitHub repo! Doh!
19:44 moritz it even says "This page is generated from the files in the modules.perl6.org repository."
19:44 moritz where the last two words are links
19:44 ymasory left #perl6
19:45 drbean left #perl6
19:45 ymasory joined #perl6
19:45 * Util_ must remember to read *all* the way to the end :(
19:45 Util_ Thanks!
19:46 Util_ is now known as Util
19:47 moritz well, especially the start and the end
19:47 moritz the rest of the page is pretty uniform :-)
19:47 drbean joined #perl6
19:50 plobsing joined #perl6
19:51 Sarten-X joined #perl6
19:51 drbean left #perl6
19:51 wamba joined #perl6
19:51 wamba left #perl6
19:52 drbean joined #perl6
19:53 birdwindupbird left #perl6
19:53 wamba joined #perl6
19:57 drbean left #perl6
19:57 yegor left #perl6
19:58 drbean joined #perl6
20:01 odrm left #perl6
20:03 drbean left #perl6
20:04 Rotwang joined #perl6
20:05 drbean joined #perl6
20:06 Mowah left #perl6
20:09 Moukeddar joined #perl6
20:09 Moukeddar left #perl6
20:09 drbean left #perl6
20:10 ab5tract left #perl6
20:11 drbean joined #perl6
20:12 justatheory joined #perl6
20:13 masak RT 4.0.0 released! \o/
20:14 masak so, when will rt.perl.org get the new version? :)
20:14 hanekomu joined #perl6
20:14 tadzik (:
20:14 drbean left #perl6
20:15 pothos left #perl6
20:15 y3llow left #perl6
20:15 y3llow_ joined #perl6
20:15 pothos joined #perl6
20:15 [Coke] left #perl6
20:16 y3llow_ is now known as y3llow
20:16 drbean joined #perl6
20:17 [Coke] joined #perl6
20:17 pothos left #perl6
20:18 pothos joined #perl6
20:19 arcus left #perl6
20:20 drbean left #perl6
20:21 pmichaud Sometime soon I'd like to have a conversation here about Perl 6 and disruptive technologies
20:21 pmichaud I've been re-reading "The Innovator's Dilemma" and I think it has some bearing on what we should be doing with Rakudo/Perl 6
20:21 masak +1
20:22 drbean joined #perl6
20:22 jnthn Sounds interesting
20:22 daxim_ left #perl6
20:22 masak Perl 6 is still, eleven years later, dynamite. let's implement it :)
20:22 daxim_ joined #perl6
20:23 frettled pmichaud: that's a very good idea
20:24 pmichaud anyway, I particularly would like TimToady++ to be around for the discussion, since he's talked about "disruptive" a bit in the past
20:26 drbean left #perl6
20:27 jaldhar left #perl6
20:27 drbean joined #perl6
20:27 jaldhar joined #perl6
20:30 Moukeddar joined #perl6
20:32 [particle] left #perl6
20:32 drbean left #perl6
20:33 drbean joined #perl6
20:36 starcoder is now known as DocPenguin
20:37 Util +1 to I.D. conversation
20:37 DocPenguin is now known as starcoder
20:38 frettled pmichaud: also, he tends to have some good feedback :)
20:38 pmichaud maybe early next week
20:38 pmichaud this weekend is pretty full for me
20:38 drbean left #perl6
20:39 drbean joined #perl6
20:39 colomon pmichaud++
20:39 colomon or +1, whatever.  ;)
20:40 frettled +2!
20:40 frettled Which, incidentally, is 2.
20:40 masak rakudo: say +2
20:40 p6eval rakudo 8533c3: OUTPUT«2␤»
20:41 masak rakudo: sub postfix:<!>($n) { [*] 1..$n }; say +2!
20:41 p6eval rakudo 8533c3: OUTPUT«2␤»
20:42 tadzik rakudo: sub postfix:<!> { [*] 1..$^n }; say +2!
20:42 p6eval rakudo 8533c3: OUTPUT«2␤»
20:42 masak rakudo: say +$_(2) given { [*] 1..$^n }
20:42 p6eval rakudo 8533c3: OUTPUT«2␤»
20:43 pmichaud rakudo: sub postfix:<!?>($n) { ([*] 1..$n) ~ '?' };   say +2!?
20:43 p6eval rakudo 8533c3: OUTPUT«2␤»
20:43 drbean left #perl6
20:43 pmichaud hmmmmmm
20:43 Util rakudo: say ++2;
20:43 p6eval rakudo 8533c3: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 22:/tmp/NBHdpByRJI␤»
20:43 masak wait wait
20:43 * frettled is waiting.
20:43 Util Well, that is reassuring :)
20:43 masak wasn't pmichaud's eval a bug!?
20:43 * pmichaud whistles
20:44 * masak submits rakudobug!?
20:44 pmichaud it did seem buggish
20:44 pmichaud oh, not a bug!
20:44 jnthn Where was the bug?
20:44 masak oh!?
20:44 pmichaud I bet prefix:<+> is lower precedence
20:44 jnthn Yes
20:44 masak oh yes
20:44 pmichaud rakudo: sub postfix:<!?>($n) { ([*]?' };   say (+2)!?
20:44 ingy o/
20:44 p6eval rakudo 8533c3: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
20:45 masak because newly defined ops always get tightest prec
20:45 pmichaud rakudo: sub postfix:<!?>($n) { ([*] 1..$n) ~ '?' };   say (+2)!?
20:45 p6eval rakudo 8533c3: OUTPUT«2?␤»
20:45 frettled ingy o/
20:45 drbean joined #perl6
20:45 pmichaud might still be a bug, but if so, it's a default precedence bug
20:45 pmichaud ingy: o/
20:45 tadzik ingy: \o
20:45 pmichaud well, I guess it's a bug either way, since   +'2?' should throw an exception or warning
20:46 masak yes, but that one's submitted long ago :P
20:46 tadzik what a relief! I was worried about "masak submits rakudobug" again :)
20:46 frettled tadzik: don't worry, still more than one hour until midnight local time.
20:46 pmichaud and now we know the real reason why masak++ wants RT 4.0 on rt.perl.org :-P
20:47 masak mwhahaha
20:47 frettled pmichaud: because the current tracker doesn't scale with his bugrep rate?
20:49 asdfssssssa joined #perl6
20:49 pmichaud frettled: yes, something like that
20:49 drbean left #perl6
20:50 * moritz is glad to see pmichaud++ active again
20:51 pmichaud well, I'm on the channel... not much in the way of commits yet :-|
20:51 masak like being a newbie again! :P
20:51 frettled pmichaud: good to see you around, still, don't fret about the commits.
20:51 drbean joined #perl6
20:51 pmichaud but yesterday was productive.  Star release and new rakudoperl.org site up
20:52 frettled mm, nice!
20:52 * jnthn assures pmichaud that new nqp doesn't bite :)
20:52 [particle] joined #perl6
20:54 sunnavy left #perl6
20:55 wamba left #perl6
20:56 jasonmay \o/ thanks to that META.info my module doesn't look like amateur hour on modules.p6
20:56 drbean left #perl6
20:57 tadzik mission complete!
20:57 Moukeddar_ joined #perl6
20:58 drbean joined #perl6
20:59 sunnavy joined #perl6
20:59 Moukeddar left #perl6
21:00 frettled jasonmay++
21:02 tylercurtis tadzik: ooc, is Panda Rakudo-specific?
21:02 masak I think in practice, it is.
21:02 drbean left #perl6
21:03 masak because no other implementation has the things Panda needs.
21:03 masak yet.
21:04 * tylercurtis should have just looked at the code.
21:04 drbean joined #perl6
21:04 tylercurtis Panda::Builder does "perl6 --target=pir".
21:05 pmichaud someday I hope that'll be Panda::Builder::Rakudo
21:05 masak +1
21:05 sunnavy left #perl6
21:05 pmichaud and --target=<code>  instead of --target=pir
21:05 sunnavy joined #perl6
21:06 pmichaud maybe  --target=p6c   or some generic name that means "the compiled form of the module"
21:07 jnthn or -c
21:07 jnthn (compile
21:07 jnthn )
21:07 jnthn :)
21:07 pmichaud -c already means something, I think
21:07 pmichaud -c                check syntax only (runs BEGIN and CHECK blocks)
21:08 jnthn ah, yes
21:08 pmichaud still, that's a great idea :)
21:08 moritz --compile would be perfectly fine
21:08 tadzik tylercurtis: yes, sadly yes
21:08 jnthn moritz: yes, something like that
21:08 drbean left #perl6
21:08 jnthn Or that :)
21:08 pmichaud --compile is too unambiguous :)
21:09 pmichaud and it's at least 6 extra keystrokes.  TOO LONG!  TOO LONG!
21:09 tadzik tylercurtis: sorear asked me once about what neutro needs from niecza, I think the biggest blocker was the file IO support
21:09 masak --cpm :P
21:09 pmichaud cycles per minute?
21:09 pmichaud control program for microcomputers?
21:09 tadzik compile me
21:09 drbean joined #perl6
21:10 tylercurtis Compile Perl Module?
21:10 tadzik cute panda miniatures
21:10 pmichaud certified property manager ?
21:10 pmichaud critical path method?
21:10 moritz let's just chose some random TLA, and come up with a meaning later
21:10 jnthn code please, mister
21:11 moritz cpm is a fine one :-)
21:11 pmichaud cost performance measure?
21:11 masak it sure got the bikeshed juice flowing :P
21:11 bluescreen10 left #perl6
21:12 masak remember, Perl 6 has to grab as many TLAs as possible before they run out. they're a really scare resource.
21:12 jnthn yim! ifa!
21:12 pmichaud yeah, we don't want to be ooa
21:12 tadzik btw, if there is no "one, main implementation", why is Rakudo `perl6`, not `rakudo`?
21:12 pmichaud tadzik: historical, mainly
21:13 pmichaud I'm not opposed to switching the executable to be 'rakudo'... just need to figure out when to do it
21:13 pmichaud I suspect as part of the next major distribution release series
21:13 * jnthn suspects people will want to write /usr/bin/perl6...but that could be an alias rather than the cannonical name.
21:13 jnthn er, #!/...
21:13 masak it's fhr... :)
21:13 masak those raisins sure like to panic...
21:14 pmichaud rakudo comes from a time when it was legitimate to say "Perl 6 doesn't exist", so it was called "perl6" to say "OH YES IT DOES!"
21:14 drbean left #perl6
21:15 masak now the only people saying Perl 6 doesn't doesn't exist are Python people with their heads up their language.
21:15 masak :P
21:15 tadzik or the angry Perl 5 people
21:15 pmichaud I sometimes like to kid:  "How's that Python 3000 thingy working out for ya?"  :-P
21:16 drbean joined #perl6
21:16 masak tadzik: to Perl 5 people, Perl 6 exists but is an irrelevant trek or academic exercise.
21:16 BinGOs it is cruel to mock the afflicted
21:16 masak just letting off occasional steam... :>
21:17 * tylercurtis shouldn't have fun project ideas while doing homework.
21:17 pmichaud shouldn't have homework interrupting fun project ideas :-)
21:19 masak och aye!
21:20 donri joined #perl6
21:20 drbean left #perl6
21:22 drbean joined #perl6
21:26 drbean left #perl6
21:28 drbean joined #perl6
21:30 am0c joined #perl6
21:31 drbean left #perl6
21:33 donaldh joined #perl6
21:33 drbean joined #perl6
21:34 donri left #perl6
21:38 drbean left #perl6
21:40 drbean joined #perl6
21:40 masak 'night, #perl6
21:41 masak left #perl6
21:42 kaare__ left #perl6
21:45 drbean left #perl6
21:46 drbean joined #perl6
21:47 donri joined #perl6
21:51 drbean left #perl6
21:53 drbean joined #perl6
21:57 drbean left #perl6
21:58 mj41 left #perl6
21:59 drbean joined #perl6
21:59 Moukeddar_ left #perl6
22:05 donaldh left #perl6
22:05 drbean left #perl6
22:05 drbean joined #perl6
22:09 pochi joined #perl6
22:10 Layla_91 joined #perl6
22:10 PerlPilot left #perl6
22:11 PerlJam joined #perl6
22:13 drbean left #perl6
22:13 PerlJam tadzik: while on the plane earlier today, I was bored, so I wrote a little program that scrapes the github URLS from modules.perl.org and checks them for META.info and whether it has source-url.  I don't know if you have something like that already or would like something like that or what.
22:13 PerlJam tadzik: just shout if you want it though (or the results of running it :-)
22:14 Layla_91 left #perl6
22:14 drbean joined #perl6
22:15 kaare__ joined #perl6
22:17 bacek_ left #perl6
22:18 fridim_ joined #perl6
22:18 PerlJam tadzik: actually ... https://gist.github.com/947465  (it's perl 5 though)
22:19 drbean left #perl6
22:21 drbean joined #perl6
22:23 plobsing left #perl6
22:25 drbean left #perl6
22:27 drbean joined #perl6
22:30 plobsing joined #perl6
22:31 drbean left #perl6
22:32 kaare__ left #perl6
22:32 drbean joined #perl6
22:32 MayDaniel left #perl6
22:33 jnthn nqp: class Foo is Bar { }
22:33 p6eval nqp: OUTPUT«sh: ./nqp: not found␤»
22:33 jnthn aww
22:36 drbean left #perl6
22:37 f00li5h joined #perl6
22:38 ymasory left #perl6
22:38 drbean joined #perl6
22:40 fridim_ left #perl6
22:43 drbean left #perl6
22:45 drbean joined #perl6
22:49 drbean left #perl6
22:51 drbean joined #perl6
22:55 drbean left #perl6
22:57 drbean joined #perl6
23:01 hanekomu left #perl6
23:02 drbean left #perl6
23:04 drbean joined #perl6
23:05 Sarten-X left #perl6
23:06 chitragupt left #perl6
23:06 Sarten-X joined #perl6
23:08 bacek joined #perl6
23:08 drbean left #perl6
23:10 drbean joined #perl6
23:11 ymasory joined #perl6
23:15 drbean left #perl6
23:17 drbean joined #perl6
23:18 dju joined #perl6
23:19 whiteknight joined #perl6
23:21 drbean left #perl6
23:23 drbean joined #perl6
23:23 IllvilJa left #perl6
23:27 asdfssssssa left #perl6
23:28 drbean left #perl6
23:29 drbean joined #perl6
23:34 drbean left #perl6
23:35 drbean joined #perl6
23:37 icwiener_ left #perl6
23:38 Chillance left #perl6
23:40 drbean left #perl6
23:42 drbean joined #perl6
23:42 rgrau left #perl6
23:47 drbean left #perl6
23:48 drbean joined #perl6
23:48 justatheory left #perl6
23:50 bacek left #perl6
23:52 drbean left #perl6
23:54 Moukeddar joined #perl6
23:54 drbean joined #perl6
23:55 ymasory left #perl6
23:59 drbean left #perl6
23:59 SatoshiHayazaki joined #perl6
23:59 Rotwang left #perl6

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

Perl 6 | Reference Documentation | Rakudo