»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
pmichaud jnthn: pong 00:00
(will catch jnthn++ tomorrow)
00:03 silent_h joined 00:09 leprevost left
dalek ar: 6ed6e37 | pmichaud++ | skel/build/Makefile.in:
Add code to install 'panda' and 'ufobuilder' into $(BINDIR).
00:13
00:24 lue left, lue joined 00:26 nrr left 00:27 nrr joined 00:28 justatheory left 00:35 noganex joined 00:36 noganex_ left
pmichaud draft version of new rakudo.org site at rakudoperl.org/ . Comments and suggestions welcomed. 00:46
00:46 leprevost joined 00:50 mtk left 00:51 [Coke] left, cdarroch left 00:52 [Coke] joined
lue pmichaud: looks much better, and doesn't deviate too much from rakudo.org 00:56
00:59 mtk joined, justatheory joined 01:05 SatoshiHayazaki joined 01:06 Entonian joined 01:08 noganex left 01:09 noganex joined 01:14 am0c left 01:20 am0c^ joined, am0c^ left 01:27 Entonian left 01:50 woosley joined 01:52 whiteknight left 02:27 am0c joined 02:29 araujo joined
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:48
02:49 leprevost left 03:13 awwaiid left 03:15 awwaiid joined
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
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
I'm happy to switch to any wordpress template I can easily get my hands on :)
and the current rakudoperl.org WP theme is a customization of the default twentyten theme 03:24
jdhore ah
pmichaud (a very simple customization :-)
(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.
*aesthetic
03:26 Su-Shee left 03:28 Su-Shee joined 03:29 ymasory joined 03:35 hudnix left 03:36 satyavvd joined 03:38 araujo left 03:42 araujo joined 03:43 satyavvd left
dalek ar: 0f607e2 | pmichaud++ | skel/README:
Update release number in README.
04:11
ar: 15a246c | pmichaud++ | skel/docs/announce/2011.04:
Fix January -> April in announcement text.
04:21 orafu left 04:22 _jaldhar joined, plobsing_ left 04:23 orafu joined, kaare__ joined
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 04:51 ymasory left 05:00 silent_h left 05:08 molaf joined 05:10 molaf left 05:17 sftp left 05:24 birdwindupbird joined, yegor joined 05:33 birdwindupbird left 05:36 justatheory left, birdwindupbird joined, justatheory joined 05:41 justatheory left 06:00 wtw joined 06:03 nymacro joined 06:10 Mowah joined 06:24 yegor_ joined, yegor left 06:47 rhebus joined, yegor_ left 06:50 mj41 joined
frettled pmichaud: congrats on getting 2011.04 out the door! 06:57
07:00 Tedd1 left, yegor_ joined 07:01 rhebus_ joined 07:02 rhebus left, rhebus_ is now known as rhebus 07:04 birdwindupbird left 07:13 rhebus_ joined 07:14 rhebus left, rhebus_ is now known as rhebus
moritz pmichaud++ # star release 07:14
07:14 fhelmberger joined
tadzik yay, Star :) 07:14
pmichaud++
though I'm afraid ufobuilder made it into Star rather accidentally 07:17
jdhore pmichaud++ 07:18
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 07:25 rhebus_ joined, rhebus left, rhebus_ is now known as rhebus 07:26 yegor_ left
jdhore question: Why do you guys use phenny for memos and not just MemoServ? 07:30
07:33 cali_gurl87 joined, icwiener joined 07:34 cali_gurl87 left 07:36 yegor_ joined 07:39 rhebus left 07:40 rhebus joined
moritz because phenny is cute and polite :-) 07:53
jdhore ah 07:57
08:06 krunen left, krunen joined
mathw Morning 08:12
08:12 Tedd1 joined
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:13
08:22 rhebus left 08:26 drbean left
ingy tadzik: where's the SHELTER list? 08:27
08:28 drbean joined
ingy tadzik: I can try to fix things up. 08:28
08:32 drbean left
Su-Shee mathw: "Ich bin nach Koeln gefahren" "Ich war in Koeln" 08:32
mathw: "I drove to...." "I was in ..." 08:33
08:34 drbean joined, am0c left 08:36 Tedd1 left
mathw Su-Shee: thanks. I thought it was like that, but I wasn't sure 08:37
08:38 mtk left 08:39 drbean left
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:39
08:40 drbean joined 08:41 Tedd1 joined
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:42
08:44 drbean left 08:45 drbean joined 08:46 krunen left 08:47 mtk joined 08:49 pmurias joined 08:51 drbean left 08:52 drbean joined
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 08:57 drbean joined
Patterner it's like english and americans, Su-Shee 09:00
09:00 aindilis left, aindilis joined 09:02 drbean left 09:04 drbean joined 09:05 Sarten-X left 09:08 Nehru joined, drbean left, Nehru left
nrr with respect to the prÀteritum in german: there are small exceptions. forms of "sein," "wissen," and so on are sometimes used. 09:08
"ich wusste das nicht." instead "ich habe das nicht gewusst," though that varies a bit. 09:09
09:10 drbean joined 09:11 Justin__ joined
Justin__ perl6: say "ciao"; 09:11
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 !
moritz wusste das nicht
Justin__: it executes three different, slow compilers (and doesn't parallelize) 09:13
Justin__: so 2s aren't too bad
Justin__ moritz: that was just a helo world.. now am scared to try it more :\
moritz Justin__: no need to be scared, you don't get the bill for the computing time 09:14
Justin__: but it's faster if you talk to just one compiler
rakudo: say 'OH HAI'
Justin__ haha! :D nice one
p6eval rakudo 8533c3: OUTPUT«OH HAI␤»
09:15 drbean left, pmurias left 09:16 tzhs joined, drbean joined 09:19 Justin__ left 09:21 drbean left 09:22 drbean joined 09:28 drbean left 09:30 drbean joined 09:35 drbean left 09:36 drbean joined 09:41 drbean left 09:43 drbean joined 09:45 snearch joined 09:47 drbean left 09:48 drbean joined, icwiener_ joined 09:49 icwiener left 09:50 s1n left 09:52 drbean left 09:54 drbean joined 09:57 drbean left, s1n joined 09:59 drbean joined 10:02 wallberg joined
moritz jnthn: is nqp supposed to use the installed nqp-rx from parrot at all? 10:02
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? conferences.yapceurope.org/npw2011/
10:04 drbean left
moritz wallberg: I'm pretty sure masak and jnthn are going :-) 10:04
10:05 drbean joined
wallberg moritz: :-) 10:06
jnthn o/ 10:07
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.
moritz: However, it does depend on some things from the Parrot repo. 10:09
moritz jnthn: ah, I found it
jnthn moritz: Such as PAST.pbc
tadzik wallberg: I think the callbacks are the biggest blocker
moritz jnthn: the .ops file compilation uses the nqp-rx shipped with parrot
wallberg tadzik: ok. what is the status on those?
tadzik wallberg: none I think :)
moritz jnthn: and since 'make install' currently overrides at least NQP.pbc, that's bad
10:10 drbean left
moritz wallberg: Tene did bindings for some obscure-ish GUI framework 10:10
wallberg: don't know if they still work
jnthn moritz: Oh, yes
moritz: I suspect we may need to do some renaming.
moritz++ # looking into the install issues, which will soon be very relevant :) 10:11
10:11 woosley left
jnthn moritz: Is it just NQP.pbc that overlaps? 10:11
moritz jnthn: not sure yet
10:12 drbean joined
dalek p/ctmo: b3299e5 | moritz++ | build/Makefile.in:
make nqp installable again

Sadly this overwrites some files from parrots nqp-rx, which means that it breaks recompilation, because .ops file translation uses nqp-rx internally
10:12
jnthn fears there will be more 10:13
tadzik also,pararell build is broken again 10:14
jnthn Oh.
moritz tadzik: yes
jnthn Wonder what regressed that...I'd tried to be careful. :/
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
should be an easy-ish fix
jnthn ah, yeah...that hadn't used to depend on the dynexts.
10:16 awwaiid joined
moritz tests a fix 10:17
10:17 drbean left 10:18 krunen joined, drbean joined
dalek p/ctmo: 86fd707 | moritz++ | build/Makefile.in:
[build] unbreak parallel build
10:18
moritz unfortunately that takes away a lot of benefit from the parallel build 10:20
jnthn A bootstrapping compiler is hardly ideal for a parallel build really... 10:21
Every stage needs the last one.
And stages need stuff within that stage too. 10:22
HLL.pm does use P6Regex which in turn does use Regex which in turn needs the NQPCORE.setting.
10:22 drbean left
moritz right 10:22
jnthn Which kinda forces an ordering.
We got away with far more before the compiler actually wanted to know something about the programs it was compiling. :) 10:23
10:24 drbean joined
moritz fail, nqp installs nqprx.pbc :-) 10:24
both install a P6Regex.pbc 10:25
a Regex.pbc
jnthn oh...we shouldn't be installing nqprx.pbc :)
eep
moritz but nqp-rx install an nqp-rx.pbc :-)
note the dash
jnthn and a HLL.pbc, I fear...
oh... 10:26
Where are we installing all of these to?
moritz yes, HLL.pbc too
jnthn Is there no "language directory"?
moritz the nqprx.pbc goes to languages/nqp
the regex.pbc stuff to library/
jnthn oh. 10:27
OK.
moritz and most of the other stuff to library/ too
bbkr_ i've released new version of my JSON::RPC github.com/bbkr/jsonrpc , what I have to do to place it in the ecosystem? and what is required for "Panda approval" ?
moritz bbkr_: add a link to your META.info in the 'META.list' file of the 'ecosystem' repo 10:28
no approval steps whatsoever
dalek p/ctmo: f73152c | moritz++ | build/Makefile.in:
[build] stop installing nqprx.pbc
10:29
bbkr_ moritz: thanks
10:29 drbean left
moritz jnthn: turns out we installed the nqp.pbc twice :-) 10:29
jnthn wow :)
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
But looking through the library location code in library.c, it seems not.
moritz jnthn: maybe that exists, but we're not using it?
10:30 drbean joined
jnthn moritz: They do have a language directory thingy. But only for load_lang op, afaict. 10:31
moritz jnthn: things are not so bad after all, it's only three files that conflict 10:32
HLL.pbc, P6Regex.pbc, Regex.pbc
lunch &
10:34 drbean left
jnthn moritz: OK, that's not so bad. Thanks for looking at it. 10:35
10:36 drbean joined
tadzik bbkr_: just _please_ make sure that your file is a legal JSON 10:40
so no missing commas or whatever
10:40 drbean left 10:41 drbean joined 10:42 tzhs left
dalek osystem: 74793b8 | tadzik++ | META.list:
Fix links
10:43
bbkr_ tadzik: ofc, i've validated it with www.jsonlint.com/ 10:44
10:45 drbean left 10:46 drbean joined
dalek osystem: c7157ab | tadzik++ | META.list:
More linkfixing
10:47
10:49 donri joined
tadzik We need a validation tool for this 10:50
10:51 drbean left 10:52 drbean joined
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
Juerd Ouch
That's quite bad 10:55
tadzik yeah
I wonder if I can set up some obligatory commit hook which will validate the list
10:57 drbean left
tadzik OR I can add a few try {} is the list generatior :) 10:57
s/is/in/
10:58 drbean joined
tadzik hugme: add bbkr_ to ecosystem 11:00
hugme tadzik: sorry, I don't know anything about project 'ecosystem'
tadzik bbkr_: that's broken :) 11:01
bbkr_ ?
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?
bbkr_ Sorry, didn't know about "raw" requirement. Fixing... 11:03
11:03 drbean left
tadzik bbkr_: the link needs to point to the JSON file, not the github page 11:04
11:05 drbean joined
tadzik Juerd: that's partly doable, yes 11:05
11:09 Trashlord left, drbean left
bbkr_ tadzik: fixed, link to raw/ in pull request 11:10
11:11 drbean joined 11:12 pernatiy left 11:15 drbean left 11:16 pernatiy joined 11:17 drbean joined 11:18 birdwindupbird left
tadzik ok, merging 11:21
11:22 drbean left
dalek osystem: c6ebebc | (Pawel bbkr Pabian)++ | META.list:
Added JSON::RPC module
11:23
osystem: 9481db4 | (Pawel bbkr Pabian)++ | META.list:
Fixed META.info location of JSON::RPC to raw
osystem: 0f87c0b | tadzik++ | META.list:
Merge branch 'master' of github.com/bbkr/ecosystem into bbkr-master

Conflicts: META.list
11:24 drbean joined
tadzik yay, modules.perl6.org got updated 11:24
11:25 yegor_ left
tadzik 34 modules have Panda badges 11:26
11:27 yegor_ joined 11:28 drbean left 11:30 drbean joined
moritz tadzik: extra points for having an absent Panda badge point to an installation error log 11:30
tadzik: JSON doesn't have a badge, and I have no idea why 11:31
11:31 birdwindupbird joined 11:35 drbean left, drbean joined 11:36 [Coke] left
tadzik I'll take a look 11:37
moritz: the panda badge doesn't check the installation
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
moritz tadzik: what does it check? 11:37
PerlJam bbkr_: go for it. :) 11:38
11:40 drbean left
tadzik moritz: the presence of source-url 11:40
11:41 drbean joined
PerlJam ah, the dreaded switch from repo-url to source-url ;) 11:42
moritz and I'm to blame :/
PerlJam tadzik++
tadzik :)
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
I wonder what her error rate is though.
moritz just look at how often she hits backspace
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 11:47 drbean joined 11:51 drbean left
dalek psi: 79609ac | moritz++ | META.info:
fix META.info
11:52
moritz finds the panda badges maximally cute
tadzik the bigger image is even cuter :) 11:53
11:54 drbean joined 11:55 Patterner left 11:57 Psyche^ joined, Psyche^ is now known as Patterner 11:58 drbean left 12:00 drbean joined, pernatiy left 12:03 Sarten-X joined 12:05 drbean left 12:06 drbean joined, wallberg left 12:07 pernatiy joined 12:09 takadonet joined
takadonet morning all 12:09
12:10 Tedd1 left 12:11 drbean left, Holy_Cow joined 12:12 drbean joined
Util Morning, takadonet 12:15
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
pmichaud ...is there a rakudo favicon?
12:17 drbean left
moritz pmichaud: rakudo.org used a scaled down version of the logo 12:18
pmichaud I don't see one there now
moritz hm, maybe my mind is playing tricks on me :/
12:18 drbean joined
pmichaud anyway, if someone wants to create a favicon, I can certainly install it :) 12:19
12:19 MayDaniel joined
jnthn o/ pmichaud 12:19
pmichaud o/ jnthn 12:20
moritz pmichaud: try moritz.faui2k3.org/tmp/favicon.ico
nothing fancy
pmichaud got the icon; have to take kid to school will install when I get back (in 15) 12:22
12:23 drbean left
moritz no hurry 12:23
12:25 drbean joined 12:29 drbean left
Util updates Perl6-Math-Quaternion, trying for Panda badge. 12:30
12:31 drbean joined
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
jnthn: I guess I'm not proficient in the art of renaming files in a bootstrapped compiler
pmichaud favicon installed 12:33
12:33 plobsing joined
moritz ... and it shows up in my browser. Yay. 12:35
12:35 Moukeddar joined, drbean left, jevin left, ponbiki left 12:37 jevin joined, drbean joined 12:38 MayDaniel left, IllvilJa left 12:39 ponbiki joined 12:42 drbean left, Holy_Cow left
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?
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 12:44 drbean joined
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 ;)
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
s/is done/is possible/
12:48 drbean left 12:50 f00li5h left, drbean joined, hudnix joined
pmichaud is there a hook to be able to generate the extra methods when the class is composed? 12:52
12:54 bluescreen10 joined, drbean left
jnthn pmichaud: That's certainly be possible. 12:55
pmichaud seems like we'll need something like that anyway, for other automatically-generated methods
jnthn pmichaud: compose is just a method call on the meta-object. It can do whatever it likes.
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.
pmichaud but it can also be done at the time of the regex
so yes, it can be moved out of PAST::Compiler 12:56
probably should be
jnthn Are the prefixes primarily data?
pmichaud currently yes, eventually no
jnthn Or is there logic involved that has to be delayed?
Ah, OK
12:56 cxreg2 joined
pmichaud I need to look at sorear++'s implementation of LTM 12:56
12:56 PerlPilot joined, drbean joined
jnthn Do duplicate or empty prefixes have any semantics, ooc? 12:56
pmichaud and that will determine what we need 12:57
shouldn't be any duplicate prefixes
12:57 Util_ joined
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.
pmichaud hmmm
jnthn Does an empty prefix mean anything?
12:57 patch__ joined
pmichaud yes 12:57
12:57 Moukeddar left
jnthn OK 12:57
12:58 bacek_ joined, charsbar__ joined
pmichaud it means that the rule can match an empty string, so the ltm-cheater takes that into account 12:58
12:58 Eevee_ joined
jnthn ah, I see 12:58
12:58 nnunley_ joined
jnthn OK, makes sense. 12:58
pmichaud the existence of duplicates doesn't really affect performance, iirc, because it's ultimately all hashed anyway 12:59
12:59 bacek left, PerlJam left, miso2217 left, Eevee left, Util left, cxreg left, chitragupt left, nnunley left, aloha left, charsbar_ left, arcus joined
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 13:00 chitragupt joined
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
pmichaud I didn't have that option with Parrot's default method model 13:00
but since we should be able to have a 'Regex' base class somewhere, it becomes much more plausible 13:01
13:01 drbean left
jnthn Yes 13:02
pmichaud i.e., ultimately I'd like to be able to do &regexxyz.prefixes() instead of !prefix_regexxyz()
jnthn Many things get more plausible :)
13:03 drbean joined
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
pmichaud i.e.,: regex abc { 'foo' <xyz> } can have different prefixes depending on inheritance 13:04
13:04 snearch left
flussence almost half \o/ 13:04
tadzik yes :)
pmichaud moritz: I'd suggest that exceptions should become S18, and that we switch around the synopses after that 13:05
13:05 tzhs joined
pmichaud or perhaps exceptions makes more sense as S17 13:06
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
it's not clear why those should be split in two
(at least not to me)
13:07 drbean left
pmichaud so, my tentative suggestion: S07 - Exceptions, S08 - Lists, Iterators, Captures, Parcels 13:07
or vice-versa 13:08
moritz currently 15, 18, 23, 25, 27 and 30 are free
pmichaud yes, but exceptions seems like one of those "lower-level" items 13:09
on the other hand, if it's heavily object/class-based, then perhaps it belongs after 14
13:09 risou joined, drbean joined
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"
*principle
moritz pmichaud: yes, it is heavily based on OO and roles
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
flussence
.oO( maybe the synopses should be autonumbered from a directed graph of links :)
pmichaud will IO need a good understanding of exceptions to be able to use it?
moritz ... and recalculates file names after each commit? 13:11
pmichaud: don't think so
pmichaud then yes, S18 seems like a good fit
moritz it might generate forward references though
pmichaud if what you're writing reads more like a library than anything else, then it could be a subsection of S32 13:12
there's already a S32-Exception
moritz hm, point taken
pmichaud all of synopses 28 through 32 look like they might want a re-think 13:13
(in terms of numbering and content)
moritz much of it will look a lot like an API spec more than the narrative in S02-S06
pmichaud yeah, api spec tends to be S32-ish, I think
moritz s/more/not/
pmichaud much like the other builtin functions/methods
moritz aye 13:14
13:14 drbean left 13:15 drbean joined 13:16 _twitch left 13:17 VXZ joined 13:18 plobsing left 13:19 bluescreen10 joined 13:20 drbean left 13:21 arcus left 13:22 drbean joined 13:23 am0c left 13:24 newbee left 13:26 drbean left 13:27 IllvilJa joined 13:28 drbean joined 13:32 birdwindupbird left 13:33 drbean left 13:34 drbean joined, ella joined, birdwindupbird joined
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␤»
ella rakudo: x 13:35
p6eval rakudo 8533c3: OUTPUT«Could not find sub &x␤ in main program body at line 22:/tmp/2DJLehGo29␤»
ella rakudo say x
moritz bbkr_: similar cases are known and have been fixed - I don't think this one
bbkr_ reports just in case
13:36 arcus joined
moritz bbkr_++ 13:36
13:37 wallberg joined 13:38 drbean left, undee69 joined 13:40 drbean joined 13:41 miso2217 joined
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␤»
moritz bbkr_: rakudo doesn't understand any backslash sequences in char classes :( 13:42
13:42 arcus left
ella rakudo: say 1 13:42
p6eval rakudo 8533c3: OUTPUT«1␤» 13:43
ella rakudo: say 17
p6eval rakudo 8533c3: OUTPUT«17␤»
jnthn rakudo: say 17 + 25
p6eval rakudo 8533c3: OUTPUT«42␤»
jnthn \o/
13:44 drbean left
undee69 rakudo: say 9+1 13:44
p6eval rakudo 8533c3: OUTPUT«10␤»
moritz rakudo: say (42/14).perl 13:45
p6eval rakudo 8533c3: OUTPUT«3/1␤»
13:45 woosley joined 13:46 drbean joined
bbkr_ moritz: time for workarounds then. luckily this works perfectly: m/^<[!..~]-[:]>+$/ (RFC2822 header name regexp for incoming Email::MIME) 13:47
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
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.
moritz thought 'perlpilot' on github was PerlJam on #perl6 13:50
seen PerlJam
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.".
tadzik I never know :)
13:50 drbean left 13:51 undeevhanner is now known as undee69 13:52 wallberg left, drbean joined 13:55 ella left 13:57 drbean left, _jaldhar is now known as jaldhar 13:59 drbean joined 14:03 drbean left, plobsing joined 14:04 drbean joined 14:06 meswami joined 14:09 drbean left 14:11 drbean joined 14:15 drbean left 14:17 drbean joined 14:21 drbean left, undee69 left 14:23 drbean joined
meswami hi every one.what is 'highlight' that u get with output in p6eval 14:25
?
moritz meswami: it used to give you an URL to a highlighted html file 14:27
meswami: seems it's broken now
14:28 drbean left 14:30 drbean joined 14:32 slavik left 14:34 drbean left 14:35 bluescreen10 left 14:36 drbean joined 14:37 yegor_ is now known as vividsnow 14:40 drbean left 14:41 meswami left 14:42 drbean joined 14:45 drbean left, mkramer joined 14:47 bluescreen10 joined, mkramer left 14:48 drbean joined 14:52 drbean left
TimToady moritz: that doesn't make sense to me; I thought meswami was asking about error message colors 14:53
std: 1 2
p6eval std 3468e14: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/OVTxzpdR2L line 1:␤------> 1 ⏏2␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 119m␤»
moritz TimToady: p6eval also has a 'hilight' target 14:54
14:54 drbean joined
moritz hilight: my $x 14:54
TimToady ah, ok
moritz highlight: my $x
p6eval Please use /msg p6eval my $x
bbkr_ is there any smart (and implemented) way to check if characters in string are within US-ASCII range 1-127 ?
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
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 :)
jnthn Yeah, that would be ideal way 14:58
TimToady eventually, <:ascii> should work 14:59
14:59 drbean left 15:00 drbean joined
jnthn rakudo: say "öl" ~~ /<ascii>+/ 15:02
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.
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.
TimToady and also because pair notation allows an argument
moritz rakudo: say "öl" ~~ /<isAscii>+/
jnthn What does that really mean?
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␤»
jnthn As in, what does <:foo> mean over <foo>?
In terms of runtime semantics? 15:05
15:05 tzhs left, alester joined, drbean left
jnthn That is, is it still some kinda method call? 15:05
15:06 molaf joined 15:07 drbean joined
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
TimToady and we may want to nail the namespace of character props down at compile time
p6eval rakudo 8533c3: OUTPUT«(timeout)»
TimToady (for efficiency) 15:08
moritz (1..127)>>.chr
jnthn Ah, that's a good point.
15:08 orevdiabl left 15:09 donri left, revdiablo joined, revdiablo left, revdiablo joined
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
perldoc.perl.org/perlunicode.html#U...Properties lists *some* of these properties
though Perl 5's syntax is special rather than overloading pair notation
15:11 drbean left 15:12 drbean joined, woosley left 15:13 alester left
TimToady so where P5 uses \p{Bidi_Class:R} we'd use <:Bidi_Class<R>> 15:13
or <:Bidi_Class('R')> if you don't like nested angles 15:14
pmichaud I thought <ascii> was implemented.
TimToady using pair notation also gives us <:!Letter> 15:15
15:15 alester joined
moritz alpha: say "abc" ~~ /<ascii>+/ 15:15
p6eval alpha : OUTPUT«(timeout) find regex 'ascii'␤in regex »
TimToady S05:1587 for the P6 spec on this
moritz pmichaud: the nqp char class implementation is... very incomplete 15:16
pmichaud ah, S05 doesn't define <ascii>
that's why nqp/rakudo doesn't have it. :-)
moritz pmichaud: it does spec backslash sequences in char classes though :-) 15:17
pmichaud moritz: it does? ;-)
15:17 drbean left
pmichaud moritz: I see no backslash sequence in char class spec in S05. :-P 15:18
15:18 rlb3 joined
pmichaud (not saying it's not valid... just that it's not specced) 15:18
moritz S32 uses it :-)
15:18 drbean joined
moritz and the test suite 15:18
pmichaud S32 was speculative at the time that was written
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
TimToady agreed
pmichaud and at the time I wrote NQP, even STD.pm didn't have a good way to parse that
much less implement it
moritz but my ack agrees with you that it's not mentioned in S05 15:20
(unless in a char class that spans multiple lines in the source)
TimToady it's specced in STD then :)
moritz ETOOMANYDIFFERENTSPECS 15:21
pmichaud TimToady: I see that STD.pm goes into the <Q> parser for enumerated character classes.... what does the :cc tweak do? 15:22
15:22 drbean left
pmichaud oh, wait 15:23
hmmm
15:23 mkramer joined 15:24 drbean joined
pmichaud okay, my question still stands... what does the :cc tweak do? 15:24
does it then make use of "role cc" ? 15:25
moritz it mixes the role cc in
pmichaud and that's what enables it to recognize the cc backslashes
okay, we can perhaps do something similar 15:26
at least that helps on the parsing side 15:27
figuring out <+alnum-[\D]> is going to be fun, though. :-)
jnthn -Ofun ;) 15:28
15:28 drbean left
moritz which part? the subtraction? 15:28
pmichaud the subtraction of the negation, yes.
moritz or getting a list of matched characters/ranges from alnum?
sounds like not too hard with inversion lists
pmichaud I can do it with inversion lists.... but we really need some opcodes to do the actual match efficiently
and to have a good way of encoding the inversion list in the generated code 15:29
I've already solved this problem on paper
I couldn't really implement it in nqp-rx because of the need/want for specialized opcodes to do the matching efficiently
moritz how? by generating a bit field in the end?
pmichaud that's not an issue in 'nqp'
moritz right 15:30
pmichaud oh, I can match against an inversion list no problem
but we really don't want it to be a bunch of PMCs
15:30 drbean joined
pmichaud easier is to simply have a string of on/off codepoints 15:30
15:30 mkramer left, vividsnow left
moritz matching against an inversion list should be O(log($list-length)) 15:30
pmichaud right 15:31
it is
moritz subtraction is O($len1 + $len2)
pmichaud but I didn't necessarily want to code that in PIR
moritz inverting is O(1)
understandable :-)
pmichaud as I said, I solved all of this on paper already, including union and renormalizing the lists 15:32
moritz ok ok :-)
jnthn pmichaud: Please no more PIR.
pmichaud: :)
pmichaud we also have to have a table to maintain the inversion lists for \d, \s, \h, \v, etc. 15:33
moritz aye
jnthn pmichaud: The cost of developing in PIR in new-NQP is far higher.
pmichaud jnthn: np
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. :)
er, *is* in PIR
Or isn't in some HLL :)
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
and some of the regex bits looked pretty hairy
pmichaud jnthn: which is why it hasn't been done yet
15:34 bluescreen10 left
moritz like... the OPP in pir *shudder* 15:34
jnthn pmichaud: Yes, makes sense.
15:34 drbean left 15:35 drbean joined
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
15:36 llabthgie joined
pmichaud good. 15:36
jnthn pmichaud: We could do with things like, parameters that don't assume they need to go into a lexical. 15:37
If we have a block that declares no contextuals and has no nested blocks within it, we can optimize the lexicals out completely.
I already wrote a first cut of that for nqpclr.
Of course, non-PMC lexicals would also be good...I can deal with those at some point. 15:38
I did a profile of NQP recently using the VS profiler. find_lex is actually a hot path. 15:39
15:39 drbean left
pmichaud if we assume that lexical names never get rebound we can eliminate the find_lex also. 15:40
or, at least, have only one per block
(one per lexical per block) 15:41
jnthn Well, we can statically know if they're rebound if they're non-contextual, I guess?
Just analyze the block for :+
er, :=
And then flag the lexical somehow as non-rebound.
pmichaud even if they're contextual we can assume they're not rebound, at least in p6
15:41 drbean joined
jnthn Oh? 15:41
$*foo := 42; 15:42
Could rebind something way down the call chain?
pmichaud that actually doesn't change the binding of the '$*foo' symbol -- it still points to the same pointer PMC
15:42 justatheory joined
pmichaud at least, that's how it is in our current model 15:42
jnthn Yeah, but our current model seems...broken. :(
(In Rakudo, not in NQP).
pmichaud no, I mean the current p6 model
jnthn Oh.
:= replaces the container though? 15:43
Not just the value in it.
pmichaud no
jnthn Unless we have two levels of containers
pmichaud it doesn't replace the container, it simply makes one container refer to another
same as binding in function calls
jnthn Ah 15:44
pmichaud we have to keep them separate because the two containers might have different constraints
jnthn Yes, that's true.
pmichaud my $x = 5;
my int $y := $x;
*Int
that's the same as
my $x = 5; sub foo(Int $y) { ... }; foo($x) 15:45
$y and $x are different containers
so the symbol $y never gets rebound to a new PMC -- it always has the PMC that has the attached "Int" constraint
moritz rakudo: my $x = 5; sub f(Int $y) { $x = 'foo' }; f($x); say $x
p6eval rakudo 8533c3: OUTPUT«foo␤»
moritz rakudo: my $x = 5; sub f(Int $y) { $x := 'foo'; say $y }; f($x); say $x
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
p6eval niecza v4-76-g7bf5ef9: OUTPUT«===SORRY!===␤␤Any()In parameter declaration, typename 'Int' must be predeclared (or marked as declarative with :: prefix) at /tmp/KFCnvbalDA line 1:␤------> my $x = 5; sub f(Int⏏ $y) { $x := 'foo'; say $y }; f($x); say␤␤Parse
..failed␤␤»
15:46 drbean left
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␤»
moritz which one is correct? or are both wrong?
(think s/Num/Int/ in niecza) 15:47
15:47 ymasory joined 15:48 drbean joined
jnthn moritz++ # great example 15:48
pmichaud I asked TimToady this question at NPW'09
I don't think I got a clear answer. :-)
jnthn nqp: my $x = 5; sub f(Int $y) { $x := 'foo'; say $y }; f($x); say $x
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)␤»
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)␤»
moritz say()
jnthn nqp: my $x := 5; sub f(Int $y) { $x := 'foo'; say($y) }; f($x); say($x)
p6eval nqp: OUTPUT«5␤foo␤»
jnthn Heh, thought that'd happen :)
moritz finds rakudo's answer a bit confusing
how can $y be 'foo' if it's typed as Int?
jnthn Niecza's view of binding is more like NQPs.
pmichaud I'm inclined to say that Rakudo is wrong there on the rebind
well, maybe not
15:50 bluescreen10 joined
jnthn afaik, anyway 15:50
pmichaud NQP's view doesn't have any notion of containers, though.
jnthn No, that's true.
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
15:52 drbean left 15:53 rlb3 left
pmichaud if we want to implement p6 binding and constraint semantics, that's just the way it works out 15:53
15:53 vividsnow joined, drbean joined, rlb3 joined, IllvilJa left
jnthn pmichaud: OK. Sounds like we can be more efficient then :) 15:54
pmichaud it means PAST needs a way of being able to say "assume lexicals are never rebound and optimize for that" 15:55
while it's true for Rakudo, it might not be true for other languages
jnthn wonders if that should be Var level or Block level
pmichaud both
that's why PAST has a 'default' set of attributes for vars :-)
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 ..."
if require every Var to explicitly declare, that can get expensive
jnthn Yes, it would.
15:58 drbean left
TimToady I suspect := and ::= are quite different 15:59
16:00 drbean joined
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?
TimToady parameter binding is the second
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␤»
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
pmichaud Rakudo needs to move to a two-layer system 16:03
moritz so output should be 5\nfoo\n, right?
TimToady I believe so
pmichaud $x -> container -> 5
moritz submits rakudobug
jnthn pmichaud: Unless the lexpad's slot *is* the outer container.
16:03 drbean left
pmichaud jnthn: two containers 16:03
TimToady a "bvalue" to := should just be a pointer to a pointer 16:04
jnthn pmichaud: Right, there's still two. :)
pmichaud the lexpad slot is the variable container
TimToady a "bvalue" to ::= is more complicated
pmichaud my $x results in the $x slot going to a PMC that points to a PMC that points to 5
TimToady I'd like your first PMC to be a native type in most implementations 16:05
moritz that feels... expensive
jnthn If 5 was some boxed object, it'd be a PMC pointing to a PMC that points to the object?
pmichaud jnthn: yes
jnthn That sounds costly
TimToady that is, := is modifying an unboxed native ref
msot if the time
pmichaud TimToady: we have to have somewhere to hang constraints and properties of the variable itself
16:06 drbean joined
TimToady that's the business of ::=, not := 16:06
::= can add to a linked list, but := shouldn't
ashleydev make it like an inside-out class and add the attributes somewhere else "if needed"
16:06 rhebus_ joined 16:07 rhebus left, rhebus_ is now known as rhebus
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
TimToady probably valid but "erroneous" 16:08
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?
TimToady I'm sure that making := fast and ::= smart will result in some "don't do thats"
pmichaud s/variable/symbol
TimToady pmichaud: yes, though perhaps we can catch some of those at compile time
I'd like := to be very primitive, even if it defeats the type systems 16:10
pmichaud okay, I'm fine with that.
jnthn: ignore what I said above about being able to optimize our lexical fetches. :-)
16:10 drbean left
jnthn TimToady: That makes me nervous. 16:10
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.
jnthn TimToady: If we defeat that then I'm going to start dispatching to surprise methods. ;)
16:12 drbean joined
TimToady or maybe we just need to make sure our native type system supports native refs adequately 16:12
pmichaud rethinking a bit
16:05 <jnthn> That sounds costly
Which is more costly? 16:13
jnthn pmichaud: If lexical accesses were *cheap* we could worry far less.
pmichaud (more)
1. Lexical fetch for $x -> container -> value
2. Known $x -> container -> container -> value
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.
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
once we've looked it up once, we can keep it in that register for the rest of the block
TimToady what operation do you need a boxed pointer chase for that an unboxed pointer chase in the first step would be "too simple"
?
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
i.e., we're not indexing into an array
jnthn To the degree that Parrot register accesses aren't slot lookups, yes. ;)
pmichaud good point :-)
16:16 justatheory left
jnthn TimToady: Part of what I'm wondering is "where do the constraints live" 16:16
In the model pmichaud is suggesting, afaict they'd be hung off the outer container.
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
and lexpad lookups are currently very expensive in Parrot
16:16 drbean left
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
TimToady well, that's a problem, ain't it?
pmichaud if you're suggesting that parrot needs a native reference type, perhaps. 16:18
I'm not the architect there.
16:18 drbean joined
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
pmichaud we don't have a native type that can reference a PMC ref 16:19
TimToady or at least not prevent such an implementation on VMs that can support native pointer to pointer 16:20
(internally, not necessaryily user-visible)
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 :-)
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
pmichaud and we still need to know how my $x = 5; my Int $y := $x; $y = 'hello'; affects things 16:22
16:22 yegor_ joined 16:23 yegor_ left
pmichaud if we declare that "erroneous" but not enforced/enforceable, I'm fine with that. 16:23
16:23 drbean left, vividsnow left
TimToady perhaps := should be disallowed between locations that are known to be different types at compile time 16:23
or require something to say "I mean it" 16:24
16:24 IllvilJa joined
TimToady "with UNCHECKED_TYPE_CONVERSION" in Ada, for instance 16:24
pmichaud I don't follow that.
16:25 drbean joined
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.
TimToady my point is basically that we can't do any native types without the compiler knowing the type of the variable
jnthn Agree on that point.
TimToady jnthn: that's why it's in all caps
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. :)
pmichaud so, in this case the := would be disallowed because the Int constraint on $y doesn't match the Mu constraint of $x ?
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)
role ScalarContainer[T] is repr('SomeCheapContainerThing') { has T $!data; } 16:28
It'll then handle native type storage automagically.
And we'd not need to worry about storing native types in the lexpad. 16:29
16:29 drbean left
pmichaud I totally don't follow that last point 16:29
jnthn backs up a little
my int $x = 42; 16:30
pmichaud nested blocks still need to access the native typed lexical, yes?
jnthn Somewhere we need to store that 42. We shouldn't box it.
16:30 jferrero joined
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:30
That container would be a reference type, e.g. a PMC. 16:31
16:31 drbean joined
jnthn So our actual native storage would not be in the lexpad itself, but in the container which the lexpad references. 16:31
Am I missing something? :) 16:32
pmichaud Okay.
that makes more sense
so our lexpad still only holds PMCs, but some of those PMCs are containers for native types
jnthn Yes
pmichaud actually, all of them are, if we consider a PMC ref to be a native type
jnthn Well, it kinda is :) 16:33
pmichaud right
jnthn It's just a PMC* pointer. :)
But that's how P6opaque already works today
pmichaud that feels very clean-ish
but in the case of non-native types, we'd still end up with
my $x = 5;
5 is a boxed constant
then we need a PMC for the variable 16:34
then a PMC for $x
16:34 birdwindupbird left
jferrero rakudo.org/status is blank? 16:34
jnthn pmichaud: thinking... :)
pmichaud note that I don't have a problem with this at all
jnthn pmichaud: Note that we won't use Integer PMC any more. Int and Num will directly have the native value stored within them.
pmichaud yes 16:35
moritz jferrero: we're in the process of migrating to a more reliable hosting solutioin
pmichaud but it's still 3 pmcs
jnthn Ouch.
pmichaud Int
variable
$x
but we no longer need lookups for $x
jferrero rakudo.de/ is freeze?
OK, moritz
jnthn pmichaud: How far can we share the $x? 16:36
pmichaud: Need we only clone it on a newclosure?
16:36 drbean left
moritz jferrero: rakudo.de is my fault... I should take down that spectests graph 16:36
pmichaud jnthn: thinking
moritz it doesn't mean anything, yet people try to ask deep questions about it
jnthn If so then I'm less scared.
tadzik whose child is rakudo.de? 16:37
jferrero OK, moritz
16:37 drbean joined
moritz tadzik: mine 16:38
pmichaud well, even now we don't really "clone" the containers
tadzik moritz: still tracking proto projects?
moritz tadzik: I don't know what it tracks right now, if anything 16:39
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.
jnthn pmichaud: I'm thinking we could create the outermost ones once, and attach any type constraint info to them.
pmichaud (recursion)
jnthn Oh, that doesn't cause a newclosure, does it...hm. 16:41
Yeah, I'm thinking of the operation on the wrong block here.
16:42 drbean left
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
*in turn
16:44 drbean joined
pmichaud we can "cheat" a bit 16:44
we could just have container + value, and then go to the multi-level container only if bound to 16:45
being careful not to rebind the lexical 16:46
for example, in $y ::= $x
if $x isn't pointing to a container, we create an anonymous container *then*, then bind both $x and $y to that
(bind in the := sense, not in the lexpad slot sense) 16:47
i.e., only go multi-level when we know we need to
so, for
my $x = 5; # container for $x, Int 5 16:48
my $y; # container for $y
$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
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
so, it's lazy 3-level
or lazy 2-level (or whatever we call it) 16:50
16:50 odrm joined, drbean joined
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, cdarroch left, cdarroch joined
jnthn Only for := 16:51
How will this play out with arrays? (more)
my int @x; # a package array of ints
my Int @x; # array of Int objects, or array of containers pointing to Int objects? 16:52
s/package/packed/
pmichaud the second one is an array of containers
(that's how it's implemented now)
jnthn OK.
pmichaud the first one is likely ArrayContainer[int] in the model you proposed above
jnthn OK 16:53
pmichaud which has some nice potential for making things efficient there :-)
(as in packed arrays)
jnthn Yes.
pmichaud actually, the second one might also be ArrayContainer[Int] and it could largely "just work", perhaps. 16:54
16:54 drbean left
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.
Yeah, that's the disconnect I'm worried about 16:55
Where will that complexity bite us...
pmichaud actually, thus far it seems to be fairly straightforward
or by disconnect are you concerined with ArrayContainer[Int] versus ArrayContainer[int] ?
*concerned 16:56
jnthn Yeah
pmichaud maybe
ArrayContainer[ScalarContainer[Int]]
jnthn *nod*
pmichaud at least conceptually
jnthn Then we can wrap up the complexiyt
16:56 drbean joined
jnthn *complexity 16:56
Inside of Array
moritz ok, rakudo.de/ is now "updated"
jnthn Or some such :)
moritz as in, stripped out everything that's not updated regularly anymore
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
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:57
16:58 odrm left
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
16:58 odrm joined
jnthn Yeah, I can see the value of avoiding the repeated fetches. 16:58
We do spend quite a lot on that.
(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
we know we'll have *some* indirections somewhere, especially on ::= binding
jnthn *nod*
pmichaud but we can make them really inexpensive
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
i.e., my $x; my $y ::= $x; my $z ::= $y;
jnthn But I think that can be done very cheaply.
pmichaud we don't end up with $z -> $y -> $x as we have now
jnthn Yes, that should not be a chain.
17:00 drbean left
jnthn Right. 17:00
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
17:01 Chillance joined
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.
pmichaud right, I agree. 17:02
I figure you have a better sense of where the balance might lie.
jnthn And I suspect a mildly aggressive optimizer can eliminate quite a few of them too.
17:02 JimmyZ_ joined
pmichaud but as far as the number of allocations goes... I think in some sense the language requires them 17:02
so I'm not sure we can completely avoid them
17:02 drbean joined
jnthn Looking forward six months, I expect to be inlining tiny-bodied multis too. 17:03
pmichaud +1
jnthn When we have the type information to do so.
17:03 Moukeddar left
jnthn Which we're building towards. 17:03
17:03 Entonian joined
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:03
Or PCC, or a callcontext... ;-) 17:04
pmichaud alester: Feel free to point rakudo.org to rakudoperl.org whenever you're ready.
alester: I think the new site is as ready as it needs to be for the domain repointing.
jnthn: that sort of inlining will be awesome 17:06
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
17:07 drbean left
jnthn The other thing we'll win a decent bit on is that typechecks should be a bunch cheaper. :) 17:08
17:09 drbean joined
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)␤»
jnthn Anybody know how to get that to update?
That gives a nice compile-time warning now that actually makes sense :)
moritz takes a look
jnthn Since, like, days ago. ;)
17:09 plobsing left
jnthn moritz++ # thanks! 17:09
pmichaud afk, lunch 17:11
JimmyZ_ E:\Open Source\nqp>nqp 17:12
Null PMC access in instantiate()
ctmo branch
moritz nqp might not be fine with spaces in path names 17:13
17:13 drbean left
jnthn JimmyZ_: Looks familiar. You probably have an old libparrot.dll lying around. 17:13
I'm pretty sure I got that error from that.
dalek p/ctmo: 4042390 | moritz++ | build/gen_parrot.pl:
[Configure] git fetch in the right place
jnthn Try copy parrot_install/bin/libparrot.dll . 17:14
er, backslashes!
:)
moritz: You maybe wanted taht fix in master? :)
17:15 drbean joined
JimmyZ_ it works... 17:15
jnthn :) 17:16
JimmyZ_ make clean doesn't clean libparrot.dll :(
good night 17:17
17:17 JimmyZ_ left
moritz jnthn: sooner or later, yes 17:18
17:19 rhebus left, drbean left
jnthn ;) 17:21
ctmo has a few bustages at the moment :)
17:21 drbean joined, orafu left 17:23 Tedd1 joined 17:25 masak joined
masak greetings, zerbas. 17:25
TimToady
.oO(zerba the greek)
17:26
jnthn masak! \o/
tadzik hello masak
17:26 drbean left
jnthn nom shop & 17:26
17:27 Lorn_ joined, Lorn_ left
masak what's ufobuilder? 17:27
tadzik an accident :>
that's basically 'ufo && make && make test && make install' as a backend for Pies
17:27 drbean joined 17:28 dsouza joined
masak heh :) 17:28
ufo wasn't convenient enough, huh? :P
tadzik no, that was just in-field testing of Pies 17:29
17:29 fhelmberger left
tadzik a proof-of-concept :) 17:31
17:32 drbean left, bluescreen10 left
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:33
17:34 drbean joined
masak moritz: thank you for panding Yapsi ;) 17:34
17:34 dsouza left
masak .oO( 'pandizing'? ) 17:34
moritz masak: thank you for your email forward :-)
17:34 IllvilJa left 17:36 MayDaniel left 17:38 drbean left
masak moritz: got another one some hours later, saying the book has dispatched. 17:38
moritz \o/
then it might actually arrive before the official publishing date
17:39 drbean joined
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:39
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:41
ah, I see now what TimToady said about := and ::= 17:43
17:44 drbean left
masak <TimToady> assuming there's a root pointer, := replaces the root pointer, and ::= inserts after it 17:44
I guess the "links" in the linked list are something like containers...
17:44 drbean joined 17:46 bluescreen10 joined
jnthn masak: (refer to the value in another container) wouldn't that be assignment? :) 17:47
masak hm. :) 17:48
ok, but it still doesn't match my picture of it. 17:49
17:49 drbean left
masak in my mental model, I have two *variables* (lexpad entries, whatever) refer to the same container after a binding. 17:49
nowhere is one containing referring to another container.
17:50 IllvilJa joined 17:51 drbean joined
jnthn masak: If you think of the lexpad as a kinda container... :) 17:51
masak sure, it's a hash-like container.
but that's not what we usually mean by "container" when we talk about binding. 17:52
17:55 drbean left 17:56 justatheory joined 17:57 drbean joined 18:01 drbean left 18:03 drbean joined 18:07 Moukeddar joined, Moukeddar left 18:08 drbean left 18:09 drbean joined 18:14 drbean left 18:16 drbean joined 18:18 ggoebel__ left 18:20 drbean left 18:21 mtk left 18:22 drbean joined, molaf joined 18:24 ggoebel__ joined 18:25 asdfssssssa joined 18:26 drbean left 18:28 drbean joined 18:29 mtk joined 18:32 ab5tract joined 18:33 drbean left, molaf left 18:34 drbean joined 18:39 drbean left 18:40 drbean joined 18:44 drbean left 18:46 drbean joined
pmichaud masak: the thing is, that we tie constraints to lexpad entries, not to "containers" 18:48
unless each lexpad entry is its own container
when we say my Int $y; $y ::= ... 18:49
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
18:50 Entonian left
pmichaud and in the case of 18:50
18:50 drbean left
pmichaud my $x = 5; my $y ::= $x; $y = 4; 18:50
we're changing the value of $x's container, not the value of the immutable 5
18:51 drbean joined 18:54 ymasory left, Moukeddar joined, ymasory joined, Moukeddar left 18:55 arcus joined, Solarion left, birdwindupbird joined 18:56 drbean left 18:57 asdfssssssa left
masak pmichaud: oh, I agree with all of that. 18:57
18:57 asdfssssssa joined
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:57
18:58 drbean joined
pmichaud what about 18:59
my $x = 5; my Int $y ::= $x;
what holds the constraint for $y ?
it can't be the container that $x is pointing to
masak nod. 19:00
it's the lexpad entry for $y, no doubt.
pmichaud so, it's a "container" 19:01
masak is it the same kind of container as the thing that directly contains the 5?
pmichaud not necessarily, no
but it's more than a simple native pointer, certainly 19:02
19:02 drbean left, Mowah left, mj41 joined 19:03 [Coke] left
masak oh, agreed. 19:03
pmichaud this is where Rakudo has "ObjectRef" and "Perl6Scalar" to identify the different types of references
although I think we got rid of Perl6Scalar
anyway, the fundamental behavior of both $x and $y's "containers" are the same -- they point to something else
19:04 drbean joined
pmichaud but they're not the same container, because one or the other or both have specialized behaviors under binding and assignment 19:04
masak nod 19:05
pmichaud (namely, how operations get forwarded to the thing they point to)
19:05 [Coke] joined 19:06 Mowah joined
pmichaud is sad that rakudo.org is displaying "webpage not available" again. :-( 19:06
masak :-(
19:07 sftp joined 19:08 drbean left 19:09 drbean joined 19:11 rgrau joined 19:13 drbean left 19:15 drbean joined, rlb3 left 19:16 asdfssssssa left 19:18 nymacro left, [Coke] left 19:20 drbean left, [Coke] joined 19:21 MayDaniel joined, drbean joined 19:26 drbean left 19:28 drbean joined 19:29 [Coke] left 19:30 risou_ joined 19:32 drbean left 19:33 [Coke] joined, risou left 19:34 drbean joined
Util_ What program generates the file at modules.perl6.org/proto.json ? 19:39
19:39 drbean left
tadzik build_projects_list.pl 19:39
(I think)
19:39 yegor joined
moritz hopes "yes" 19:39
Util_ In which repo? 19:40
19:40 drbean joined 19:41 justatheory left
tadzik modules.perl6.org 19:41
19:43 Sarten-X left
Util_ Ah! modules.perl6.org isn't just a web site, it is a GitHub repo! Doh! 19:43
moritz it even says "This page is generated from the files in the modules.perl6.org repository." 19:44
where the last two words are links
19:44 ymasory left 19:45 drbean left, ymasory joined
Util_ must remember to read *all* the way to the end :( 19:45
Thanks!
19:46 Util_ is now known as Util
moritz well, especially the start and the end 19:47
the rest of the page is pretty uniform :-)
19:47 drbean joined 19:50 plobsing joined 19:51 Sarten-X joined, drbean left, wamba joined, wamba left 19:52 drbean joined 19:53 birdwindupbird left, wamba joined 19:57 drbean left, yegor left 19:58 drbean joined 20:01 odrm left 20:03 drbean left 20:04 Rotwang joined 20:05 drbean joined 20:06 Mowah left 20:09 Moukeddar joined, Moukeddar left, drbean left 20:10 ab5tract left 20:11 drbean joined 20:12 justatheory joined
masak RT 4.0.0 released! \o/ 20:13
so, when will rt.perl.org get the new version? :) 20:14
20:14 hanekomu joined
tadzik (: 20:14
20:14 drbean left 20:15 pothos left, y3llow left, y3llow_ joined, pothos joined, [Coke] left 20:16 y3llow_ is now known as y3llow, drbean joined 20:17 [Coke] joined, pothos left 20:18 pothos joined 20:19 arcus left 20:20 drbean left
pmichaud Sometime soon I'd like to have a conversation here about Perl 6 and disruptive technologies 20:21
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
masak +1
20:22 drbean joined
jnthn Sounds interesting 20:22
20:22 daxim_ left
masak Perl 6 is still, eleven years later, dynamite. let's implement it :) 20:22
20:22 daxim_ joined
frettled pmichaud: that's a very good idea 20:23
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:24
20:26 drbean left 20:27 jaldhar left, drbean joined, jaldhar joined 20:30 Moukeddar joined 20:32 [particle] left, drbean left 20:33 drbean joined 20:36 starcoder is now known as DocPenguin
Util +1 to I.D. conversation 20:37
20:37 DocPenguin is now known as starcoder
frettled pmichaud: also, he tends to have some good feedback :) 20:38
pmichaud maybe early next week
this weekend is pretty full for me
20:38 drbean left 20:39 drbean joined
colomon pmichaud++ 20:39
or +1, whatever. ;)
frettled +2! 20:40
Which, incidentally, is 2.
masak rakudo: say +2
p6eval rakudo 8533c3: OUTPUT«2␤»
masak rakudo: sub postfix:<!>($n) { [*] 1..$n }; say +2! 20:41
p6eval rakudo 8533c3: OUTPUT«2␤»
tadzik rakudo: sub postfix:<!> { [*] 1..$^n }; say +2! 20:42
p6eval rakudo 8533c3: OUTPUT«2␤»
masak rakudo: say +$_(2) given { [*] 1..$^n }
p6eval rakudo 8533c3: OUTPUT«2␤»
pmichaud rakudo: sub postfix:<!?>($n) { ([*] 1..$n) ~ '?' }; say +2!? 20:43
p6eval rakudo 8533c3: OUTPUT«2␤»
20:43 drbean left
pmichaud hmmmmmm 20:43
Util rakudo: say ++2;
p6eval rakudo 8533c3: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/NBHdpByRJI␤»
masak wait wait
frettled is waiting.
Util Well, that is reassuring :)
masak wasn't pmichaud's eval a bug!?
pmichaud whistles
masak submits rakudobug!? 20:44
pmichaud it did seem buggish
oh, not a bug!
jnthn Where was the bug?
masak oh!?
pmichaud I bet prefix:<+> is lower precedence
jnthn Yes
masak oh yes
pmichaud rakudo: sub postfix:<!?>($n) { ([*]?' }; say (+2)!?
ingy o/
p6eval rakudo 8533c3: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
masak because newly defined ops always get tightest prec 20:45
pmichaud rakudo: sub postfix:<!?>($n) { ([*] 1..$n) ~ '?' }; say (+2)!?
p6eval rakudo 8533c3: OUTPUT«2?␤»
frettled ingy o/
20:45 drbean joined
pmichaud might still be a bug, but if so, it's a default precedence bug 20:45
ingy: o/
tadzik ingy: \o
pmichaud well, I guess it's a bug either way, since +'2?' should throw an exception or warning
masak yes, but that one's submitted long ago :P 20:46
tadzik what a relief! I was worried about "masak submits rakudobug" again :)
frettled tadzik: don't worry, still more than one hour until midnight local time.
pmichaud and now we know the real reason why masak++ wants RT 4.0 on rt.perl.org :-P
masak mwhahaha 20:47
frettled pmichaud: because the current tracker doesn't scale with his bugrep rate?
20:49 asdfssssssa joined
pmichaud frettled: yes, something like that 20:49
20:49 drbean left
moritz is glad to see pmichaud++ active again 20:50
pmichaud well, I'm on the channel... not much in the way of commits yet :-| 20:51
masak like being a newbie again! :P
frettled pmichaud: good to see you around, still, don't fret about the commits.
20:51 drbean joined
pmichaud but yesterday was productive. Star release and new rakudoperl.org site up 20:51
frettled mm, nice! 20:52
jnthn assures pmichaud that new nqp doesn't bite :)
20:52 [particle] joined 20:54 sunnavy left 20:55 wamba left
jasonmay \o/ thanks to that META.info my module doesn't look like amateur hour on modules.p6 20:56
20:56 drbean left
tadzik mission complete! 20:57
20:57 Moukeddar_ joined 20:58 drbean joined 20:59 sunnavy joined, Moukeddar left
frettled jasonmay++ 21:00
tylercurtis tadzik: ooc, is Panda Rakudo-specific? 21:02
masak I think in practice, it is.
21:02 drbean left
masak because no other implementation has the things Panda needs. 21:03
yet.
tylercurtis should have just looked at the code. 21:04
21:04 drbean joined
tylercurtis Panda::Builder does "perl6 --target=pir". 21:04
pmichaud someday I hope that'll be Panda::Builder::Rakudo 21:05
masak +1
21:05 sunnavy left
pmichaud and --target=<code> instead of --target=pir 21:05
21:05 sunnavy joined
pmichaud maybe --target=p6c or some generic name that means "the compiled form of the module" 21:06
jnthn or -c 21:07
(compile
)
:)
pmichaud -c already means something, I think
-c check syntax only (runs BEGIN and CHECK blocks)
jnthn ah, yes 21:08
pmichaud still, that's a great idea :)
moritz --compile would be perfectly fine
tadzik tylercurtis: yes, sadly yes
jnthn moritz: yes, something like that
21:08 drbean left
jnthn Or that :) 21:08
pmichaud --compile is too unambiguous :)
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
masak --cpm :P
pmichaud cycles per minute?
control program for microcomputers?
tadzik compile me
21:09 drbean joined
tylercurtis Compile Perl Module? 21:10
tadzik cute panda miniatures
pmichaud certified property manager ?
critical path method?
moritz let's just chose some random TLA, and come up with a meaning later
jnthn code please, mister
moritz cpm is a fine one :-) 21:11
pmichaud cost performance measure?
masak it sure got the bikeshed juice flowing :P
21:11 bluescreen10 left
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!
pmichaud yeah, we don't want to be ooa
tadzik btw, if there is no "one, main implementation", why is Rakudo `perl6`, not `rakudo`?
pmichaud tadzik: historical, mainly
I'm not opposed to switching the executable to be 'rakudo'... just need to figure out when to do it 21:13
I suspect as part of the next major distribution release series
jnthn suspects people will want to write /usr/bin/perl6...but that could be an alias rather than the cannonical name.
er, #!/...
masak it's fhr... :)
those raisins sure like to panic...
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
21:14 drbean left
masak now the only people saying Perl 6 doesn't doesn't exist are Python people with their heads up their language. 21:15
:P
tadzik or the angry Perl 5 people
pmichaud I sometimes like to kid: "How's that Python 3000 thingy working out for ya?" :-P
21:16 drbean joined
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
masak just letting off occasional steam... :>
tylercurtis shouldn't have fun project ideas while doing homework. 21:17
pmichaud shouldn't have homework interrupting fun project ideas :-)
masak och aye! 21:19
21:20 donri joined, drbean left 21:22 drbean joined 21:26 drbean left 21:28 drbean joined 21:30 am0c joined 21:31 drbean left 21:33 donaldh joined, drbean joined 21:34 donri left 21:38 drbean left 21:40 drbean joined
masak 'night, #perl6 21:40
21:41 masak left 21:42 kaare__ left 21:45 drbean left 21:46 drbean joined 21:47 donri joined 21:51 drbean left 21:53 drbean joined 21:57 drbean left 21:58 mj41 left 21:59 drbean joined, Moukeddar_ left 22:05 donaldh left, drbean left, drbean joined 22:09 pochi joined 22:10 Layla_91 joined, PerlPilot left 22:11 PerlJam joined 22:13 drbean left
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
tadzik: just shout if you want it though (or the results of running it :-)
22:14 Layla_91 left, drbean joined 22:15 kaare__ joined 22:17 bacek_ left 22:18 fridim_ joined
PerlJam tadzik: actually ... gist.github.com/947465 (it's perl 5 though) 22:18
22:19 drbean left 22:21 drbean joined 22:23 plobsing left 22:25 drbean left 22:27 drbean joined 22:30 plobsing joined 22:31 drbean left 22:32 kaare__ left, drbean joined, MayDaniel left
jnthn nqp: class Foo is Bar { } 22:33
p6eval nqp: OUTPUT«sh: ./nqp: not found␤»
jnthn aww
22:36 drbean left 22:37 f00li5h joined 22:38 ymasory left, drbean joined 22:40 fridim_ left 22:43 drbean left 22:45 drbean joined 22:49 drbean left 22:51 drbean joined 22:55 drbean left 22:57 drbean joined 23:01 hanekomu left 23:02 drbean left 23:04 drbean joined 23:05 Sarten-X left 23:06 chitragupt left, Sarten-X joined 23:08 bacek joined, drbean left 23:10 drbean joined 23:11 ymasory joined 23:15 drbean left 23:17 drbean joined 23:18 dju joined 23:19 whiteknight joined 23:21 drbean left 23:23 drbean joined, IllvilJa left 23:27 asdfssssssa left 23:28 drbean left 23:29 drbean joined 23:34 drbean left 23:35 drbean joined 23:37 icwiener_ left 23:38 Chillance left 23:40 drbean left 23:42 drbean joined, rgrau left 23:47 drbean left 23:48 drbean joined, justatheory left 23:50 bacek left 23:52 drbean left 23:54 Moukeddar joined, drbean joined 23:55 ymasory left 23:59 drbean left, SatoshiHayazaki joined, Rotwang left