Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-06-08

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 sorear that's part of why we don't do it, I think
00:00 lue I feel the urge to fix it myself :) . Let's see how difficult it is to _find_ the bug in the first place :)
00:00 lue It's such a funny bug though.
00:05 * lue can't help but wonder if fixing the error message would be a good first step.
00:06 jnthn $dayjob meeting in 7 hours or so, guess I should get at least try and some sleep ahead of that. night o/
00:07 lue goodnight o/
00:09 sorear STD.pm6 is still fighting me
00:11 TimToady I hope it's losing :)
00:12 sorear it's more a case of modifying a compiler with a bootstrap system designed by an idiot is painful
00:13 TimToady sort of a collective idiot, in this case :)
00:13 sorear any cleanup I make to STD.pm6?  10 minutes later, I find out that 1. my obviously correct cleanup is actually causing miscompilations 2. I need to svn revert the compiler in order to try again
00:14 * lue images a STD.pm6 as a child who refuses to take the medicine, even though it would make him feel better.
00:14 lue *imagines STD.pm6
00:15 pugssvn r31169 | colomon++ | [t/spec] Additional tests for div, first tests for mod.
00:26 arnsholt rakudo: my @a; @a[0] = []; @a[0][0] = 1;
00:26 p6eval rakudo b258f5: OUTPUT«Null PMC access in invoke()␤  in main program body at line 1␤»
00:27 arnsholt Is that a known bug?
00:30 k23z__ joined #perl6
00:30 k23z__ so I heard you guys want a GUI toolkit for Perl6
00:30 k23z__ I'm writing a GUI toolkit in C++ from scratch
00:30 lue rakudo: say [].WHAT
00:30 p6eval rakudo b258f5: OUTPUT«Array()␤»
00:31 k23z__ mberends I think was offering to write bindings
00:31 lue rakudo: my @a; say @a; say @a.perl
00:31 p6eval rakudo b258f5: OUTPUT«␤[]␤»
00:31 k23z__ what I can make is some minimalistic GUI toolkit written from scratch in C++
00:31 k23z__ (well it will use SDL and/or OpenGL depending on how I decide to make it)
00:31 k23z__ (but that matters less)
00:32 k23z__ it is portable
00:32 lue rakudo: my @a=[]; @a[0] = []; @a[0][0] = 1;
00:32 k23z__ and at the current rate it will be finished in 2 years
00:32 p6eval rakudo b258f5: OUTPUT«Null PMC access in invoke()␤  in main program body at line 1␤»
00:32 lue hrm. Don't know, arnsholt.
00:32 k23z__ lue, do you think 2 years is a long time ?
00:34 sorear why another graphics toolkit
00:34 meppl joined #perl6
00:34 k23z__ sorear, because it will be minimalistic
00:34 lue not necessarily.
00:35 k23z__ most GUI toolkits out there have too much stuff in them, and are poorly documented(as most software is)
00:35 lue k23z__: If you were to make a new GUI toolkit, I don't think you'd be able to use any part of SDL/OpenGL/etc.
00:35 k23z__ lue, how so ?
00:36 k23z__ lue, I'm already using it(SDL/OpenGL)
00:36 lue Maybe it's just me, but I get the idea that SDL and OpenGL *are* GUI toolkits [or can be used as such].
00:37 arnsholt SDL and OpenGL are general purpose graphics toolkits
00:38 k23z__ they offer primitives for graphics,keyboard,mouse
00:38 k23z__ from that to a GUI there's a long way
00:39 lue Well then, I guess I need to look at some APIs sometime :) . In that case, use SDL/OpenGL for creating a GUI toolkit is great.
00:41 k23z__ I believe it will be better than Tk,Gtk,Gtk+,FLTK,Qt,Wx,MFC   when it's finished
00:42 k23z__ in my oppinion every GUI toolkit out there is flawed
00:42 lue That's what the guy who made FontForge thought [or something like that] :)
00:44 k23z__ lue, I like how he thinks then :)
00:44 k23z__ every piece of software I see, I think it's too complicated
00:45 diakopter Soon the Rebellion will be crushed and
00:45 lue The Swiss Army Knife Law: "The more it does, the cooler it is."
00:46 k23z__ my GUI toolkit has now 2500 LOC , I will keep it below 5000 LOC and it will be able to do everything that every other toolkit does and much much better,and people will be able to look in the source and actually understand it
00:46 lue .oO(I have a simple IRC client, it only does IRC and my ironing. I don't see what you mean)
00:46 diakopter k23z__: in which language is it written?
00:46 k23z__ diakopter, C + +
00:46 Tene k23z__: have you looked at EFL at all?  Seems like they're doing some interesting things these days.
00:46 diakopter ah
00:47 arnsholt Are there issues with autovivification in current Rakudo?
00:47 acastlenut joined #perl6
00:47 k23z__ Tene, http://en.wikipedia.org/wiki/Enlightenment_Foundation_Libraries
00:47 Tene Yes.
00:47 sorear arnsholt: Plenty.
00:48 ash__ arnsholt: there were some last i checked
00:48 arnsholt Right. Then I just have to figure out how to work around them
00:48 ash__ arnsholt: what issues are you fighting with currently?
00:49 arnsholt ash__: I'm writing a HMM decoder (Viterbi's algorithm) so I've got a matrix I'm populating
00:49 k23z__ Tene, I just measure enlightment source code, they have 75k LOC
00:49 k23z__ Tene, I intend to keep it below 5k
00:50 arnsholt I figure I'm just going to write a loop that builds the matrix populated with 0 or something
00:50 k23z__ I think having a lot of code is not necessarily a good thing
00:50 k23z__ "Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away."
00:51 sorear "EFL has lots of code, therefore no idea in it can possibly be worth reusing."
00:51 diakopter "Most organizations/individuals don't have time for Perfection"
00:53 ash__ arnsholt: seems reasonable, also, if you feel like dipping into parrot, i know whiteknight made some libraries for parrot for matrix stuff
00:54 ash__ (and linear algebra, which is normally pretty matrixy)
00:54 whiteknight yeah, we have parrot-level matrices. Going to have full BLAS bindings soon
00:54 whiteknight where "soon" is "whenever somebody gets around to adding it"
00:54 k23z__ I can't afford to use over-complicated software like Gtk or Qt, if I write my own GUI toolkit, first of all I won't need to ever read any documentation(for GUI toolkits at least), also I won't take any more compromises and if something breaks or segfaults I know 100% whos fault it is and I can address him directly by facing a mirror
00:55 ash__ k23z__: what if you don't have opengl?
00:55 k23z__ ash__,
00:55 acastlenut q
00:56 k23z__ ash__, is there any situation where that can happen ?
00:56 ash__ i think a major part of most of the other gui toolkits you have mentioned is none of them require opengl
00:56 ash__ sure, old hardware, crappy hardware, cheap hardware, embedded systems
00:56 sorear hi, I don't have hardware 3d
00:57 sorear gtk runs *fine* here
00:57 k23z__ ash__, I write a wrapper around the graphics functions over here, maybe some macros ... dunno yet
00:58 k23z__ I hate to find something that I don't like and not being able to fix it , because the codebase of that piece of software is really beyond any size that's readable
00:59 Tene Reasonable enough.  Just depends on your goals.
00:59 Tene Raster has been working on EFL for years, started from scratch because of significant dissatisfaction with other gui toolkits, just like you.
01:00 k23z__ who's Raster ? company/individual ?
01:00 Tene Individual, primary author of EFL.
01:00 diakopter readability is very subjective
01:01 k23z__ EFL is written in C
01:01 k23z__ C is hard for the eye
01:01 Tene That's extremely subjective.
01:01 Tene :)
01:01 ash__ C is easier to understand than C++, all things considered # thats a loaded statement, but i think its true, and i'll get off the language wars bus here
01:02 sjohnson :)
01:02 sjohnson some would say perl is hard on the eyes too!
01:02 Tene The EFL folks avoid C++, as it's far too huge to reasonably use or understand, and they can build everything they need in C, and understand it and have confidence in it, similar to your recently-expressed issues with GUI libraries. :)
01:02 sjohnson i found that the worst perl code, is from programmers who program in perl like they program in any other language... ie, not using any of the good perl features
01:02 sjohnson and these people wonder why they "can't get into" perl
01:03 sorear k23z__: You must not have seen the innards of Parrot
01:04 Tene I haven't minded Parrot internals.
01:04 yinyin joined #perl6
01:08 pugssvn r31170 | sorear++ | [STD,viv] Regex parse cleanup - ~ is now a pseudo quantifier, so it associates with the right atoms.  No horrible reassociation pass needed.
01:14 sorear FINALLY
01:15 * sorear hopes that mole stays down
01:15 sorear now, for the rest
01:26 diakopter :)
01:32 pugssvn r31171 | sorear++ | [STD] ignore whitespace between an atom and a quantifier, instead of quantifying a space atom
01:42 masonkramer joined #perl6
01:45 jaldhar joined #perl6
01:47 pugssvn r31172 | sorear++ | [STD] $<foo> = <bar>? should parse the quantifier outermost for consistency with <foo=bar>?
01:48 dju_ joined #perl6
01:49 zorgnax joined #perl6
01:52 breinbaa1 joined #perl6
01:52 ingyfoo joined #perl6
01:53 frodwith_ joined #perl6
01:56 slavik joined #perl6
01:57 TiMBuS joined #perl6
02:01 [mark] joined #perl6
02:02 plobsing joined #perl6
02:09 zorgnax joined #perl6
02:28 skids joined #perl6
02:29 gbacon joined #perl6
02:31 jaldhar joined #perl6
02:31 justatheory joined #perl6
02:37 ashleydev joined #perl6
02:45 s1n joined #perl6
02:47 am0c joined #perl6
02:53 s1n joined #perl6
02:55 s1n joined #perl6
03:02 s1n joined #perl6
03:07 alester joined #perl6
03:10 ashleydev joined #perl6
03:14 pugssvn r31173 | colomon++ | [t/spec] Test that Cool properly handles conversion to Numeric for core Numeric and Real methods.
03:15 sorear um, what
03:15 sorear STD parses <?after x> and <?after x > differently
03:15 sorear in :!s context
03:18 dalek rakudo: 0290298 | (Solomon Foster)++ | src/core/Cool-num.pm:
03:18 dalek rakudo: Clean up the Cool versions of the standard Numeric and Real methods.
03:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0290298ffaeb8025ef882d5a0203a102ffb8d952
03:18 dalek rakudo: 34c1ba4 | (Solomon Foster)++ | t/spectest.data:
03:18 dalek rakudo: Turn on new S32-num/cool-num.t test file.
03:18 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/34c1ba458d6d816b892517639001d0490efe301a
03:26 ashleydev joined #perl6
04:05 kfo_ joined #perl6
04:16 sorear at this point, I think the only plausible explanation for why STD is broken is that I've somehow *accidentally* introduced a Trusting Trust virus into it
04:16 sorear this is not comforting.
04:17 TimToady o_O
04:17 TimToady what are the symptoms?
04:22 sorear actually, it's Just Broken and can't be bootstrapped at all
04:23 sorear my testing before commit didn't account for the possibility of writing a STD.pm6 that would doom us to failure three generations hence
04:23 sorear now I get to revert all the minor regex fixes I've spent the last three days struggling with!
04:23 diakopter :'(
04:24 sorear how do I revert commits in svn?
04:24 TimToady just check out an earlier version?
04:24 TimToady I dunno, actually.
04:27 agentzh joined #perl6
04:34 Tene svn revert, iirc
04:35 constant joined #perl6
04:35 constant joined #perl6
05:10 kaare joined #perl6
05:10 TiMBuS TimToady, svn co -r REVISION
05:10 TiMBuS bit late i know
05:36 orafu joined #perl6
05:38 eternaleye joined #perl6
05:40 PZt joined #perl6
05:40 sorear TiMBuS: it's me who's asking, and it's not too late
05:41 sorear TiMBuS: but I want to destroy/supersede the revision, not just examine history
05:41 sorear a darcs rollback or a git revert
05:45 dual joined #perl6
05:49 gfx joined #perl6
05:50 Tene sorear: you checkout the file of the earlier revision, and then re-commit it as a new revision.
05:50 TiMBuS sorear, dont think you can do it one go. why not svn up -r oldrevision then recommit?
05:50 TiMBuS fff
05:51 eternaleye phenny: tell masak that 'forinsecal' is confusingly close to 'forensical', which means 'gathering data by examining the surroundings'
05:51 phenny eternaleye: I'll pass that on when masak is around.
05:53 TiMBuS google says some people use svn merge -r currentversion:oldversion but im not sure how that works (isnt it the same as svn up -r oldversion?)
05:55 mberends joined #perl6
06:03 ashleydev joined #perl6
06:07 jnthn morning, #perl6
06:10 sjohnson jnthn: yo
06:11 uniejo joined #perl6
06:19 diakopter one way to do it is to "svn export -r revision that-dir" (a checkout without the .svn dirs) and cp the dirtree over the working checkout (preserving the .svn), then commit
06:19 diakopter note in particular the *export* instead of *checkout*
06:21 * jnthn -> meeting
06:22 moritz_ good morning
06:34 Su-Shee joined #perl6
06:39 moritz_ rakudo: 'ab' ~~ /<alpha> <xdigit>/; say $<alpha xdigit>
06:39 p6eval rakudo 34c1ba: OUTPUT«ab␤»
06:39 moritz_ rakudo: 'ab' ~~ /<alpha> <xdigit>/; say $<alpha xdigit>.join(',')
06:39 p6eval rakudo 34c1ba: OUTPUT«a,b␤»
06:48 Grrrr joined #perl6
07:00 ajs I'm trying to find code to look at that's a good intro to how to take a match and transform it into executable code within the context of the current program. Do we have anything like that that's relatively easy to read? I'm almost to the point that my actions are building code from my rules, but not quite.
07:01 moritz_ ajs: maybe http://www.perlmonks.org/?node_id=842792 is of help to you?
07:02 moritz_ apart from that, eval() and closure currying are currently the only ways to buid code with Rakudo
07:03 jjore joined #perl6
07:03 ajs Ah, so I can't call PAST::Compiler.compile directly?
07:04 ajs I was trying to build up a PAST::Block containing a return PAST::Val just as a test
07:05 moritz_ ah, maybe that works
07:05 ajs Not exactly something that's copiously documented, though eh? ;-)
07:06 moritz_ I think PCT has documentation
07:06 moritz_ somewhere inside the parrot repo
07:07 ajs OK, I'll look into that more tomorrow. I stopped paying attention to parrot after PGE and before NQP, so a lot has changed.
07:08 ajs Just for fun and profit, I'm seeing if I can get a Perl 5 regular expression to transform into executable Perl 6 code in pure Perl 6.... it's ... interesting.
07:09 Ross joined #perl6
07:09 ajs I have a parser for P5re, but it needs a lot of very dynamic actions to manage it (things like (a|$) are a pain to parse.
07:09 ajs But I'm starting small... first something that can return a value, then rule the world.
07:09 ajs ;)
07:11 moritz_ :-)
07:11 moritz_ PGE had a perl 5 regex parser
07:12 ajs I'll take a look at that. My ultimate goal, of course, would be to transform arbitrary Perl 5 into Perl 6 (not as a bug-for-bug Ponie style thing, but just as a porting target)
07:15 ajs But getting from parsing a regex to handling the entire language is quite a long walk. Right now, I just want to get some working code
07:16 moritz_ working code is important, right
07:16 ajs heh
07:16 * moritz_ -> decommute
07:31 wint joined #perl6
07:37 ascent_ joined #perl6
07:38 opx^away joined #perl6
07:40 rgrau joined #perl6
07:43 mberends joined #perl6
07:50 opx^away joined #perl6
08:02 nadim_ joined #perl6
08:02 cls_bsd_ joined #perl6
08:03 kaare joined #perl6
08:04 frooh_ joined #perl6
08:04 ingy joined #perl6
08:04 gfldex_ joined #perl6
08:14 constant joined #perl6
08:14 constant joined #perl6
08:17 pnate joined #perl6
08:17 am0c joined #perl6
08:20 sorear_ joined #perl6
08:25 tomaw joined #perl6
08:25 opx^away joined #perl6
08:28 Gothmog_ joined #perl6
08:33 dakkar joined #perl6
08:35 rhr joined #perl6
08:46 pugssvn r31174 | cosimo++ | [docs] Try to understand which is which
08:46 pugssvn r31174 |
08:46 pugssvn r31174 | Mark css files so I can understand which of the
08:46 pugssvn r31174 | 3 perl.css files is used in the synopsis html docs.
08:47 k23z__ joined #perl6
08:47 * moritz_ runs update-syn on feather
08:47 cosimo if anyone knows a bit more of the synopsis publishing process
08:48 * moritz_ raises hand
08:48 cosimo moritz_: cool
08:48 masak joined #perl6
08:48 masak oh hai, #perl6!
08:48 phenny masak: 05:51Z <eternaleye> tell masak that 'forinsecal' is confusingly close to 'forensical', which means 'gathering data by examining the surroundings'
08:48 cosimo moritz_: there's another small problem, the new icons I added are not there in the /syn folder
08:49 masak eternaleye: yes. for the time being, consider that a feature.
08:49 cosimo i expected anything in docs/feather/* to show up in perlcabal.org/syn/ but apparently it doesn't work that way
08:49 moritz_ cosimo: http://svn.pugscode.org/pugs/docs/feather/script/update-syn is what is run each hour
08:49 cosimo moritz_: so the new icons are showing up as broken
08:49 cosimo moritz_: i saw that, but it accesses ~agentzh which I don't know how to debug
08:49 * moritz_ looks where the document root is
08:50 cosimo maybe someone can reset my password on perl6.feather.nl ?
08:50 moritz_ just a sec
08:50 agentzh cosimo: sorry about that :P
08:51 cosimo agentzh: np, really. just trying to understand how the pieces fit together :)
08:52 moritz_ cosimo: ~agentzh/syn/ is just an ordinary directory in which .html files are created
08:52 moritz_ cosimo: you can change the update-syn script to copy stuff there
08:53 cosimo moritz_: ah, ok
08:53 moritz_ cosimo: you can put stuff into docs/feather/ in the pugs repo...
08:53 moritz_ cosimo: where they will show up at the level of documentroot, hopefully
08:53 cosimo moritz_: what about the makefile in ~agentzh/syn/zh-cn ? is that relevant?
08:54 moritz_ cosimo: no idea
08:54 agentzh cosimo: that is not relevant, i believe.
08:54 agentzh it's just holding the chinese transcript of S01
08:54 agentzh iirc :)
08:55 moritz_ oh
08:55 moritz_ it seems that /var/www is a symlink to something inside audreyt's home
08:55 moritz_ which has changed recently
08:56 moritz_ so maybe I need to set up a perlcabal user
08:56 moritz_ which just serves as a base for web-ish stuff
08:57 pugssvn r31175 | cosimo++ | Copy also the new smartlinks highlight icons
08:57 cosimo moritz_: please can you push the changes?
08:58 cosimo update-syn?
08:58 betterworld joined #perl6
08:59 moritz_ cosimo: doing it now, takes a while to render all the synopsis
09:00 agentzh moritz_++ :D
09:00 pmurias joined #perl6
09:01 moritz_ agentzh: I plan to migrate the update-syn and your crontab entry to a new user, so that people don't have to log in as you to run the update
09:01 agentzh moritz_: it makes a lot of sense :)
09:02 moritz_ cosimo: it seems there's no 'cosimo' account on feather at all.. do you want one?
09:06 dalek joined #perl6
09:10 masak ajs: ping
09:10 cosimo moritz_: yes, that would be great
09:11 masak seems some actual "I want to believe"-type people are starting to pick up on the ufo project on Twitter. :) I have no idea what they make of it, but they do link to it.
09:20 mathw hah
09:20 tomaw joined #perl6
09:21 moritz_ cognominal: could you please make your patches with `git format-patch HEAD~1' (need to commit first)? That way they are easier to apply
09:22 cosimo moritz_: actually I had thought of changing update-syn so it can run "inplace", from the svn tree itself
09:22 cognominal moritz_,  ok
09:23 Gothmog_ joined #perl6
09:23 opx^away joined #perl6
09:24 astinus joined #perl6
09:28 k23z__ mberends, hey, so you want to write some bindings eh ?
09:34 mberends k23z__: yes. sorry, busy right now, but what you've written about your GUI toolkit looks interesting (and somewhat hubristic)
09:36 * masak hopes someone will provide and package bindings to some of the more common GUI toolkits
09:37 mathw Oh yes
09:37 mathw Someone will
09:37 mathw It might even be me
09:37 mathw Just... not yet
09:55 dakkar joined #perl6
09:55 pugssvn r31176 | cosimo++ | [docs] update-syn: also update the css file for the synopsis when syncing
10:05 pugssvn r31177 | pmurias++ | [smop] fix test
10:05 pugssvn r31178 | pmurias++ | [mildew] dumping lexicals scopes and idconsts
10:05 pugssvn r31179 | pmurias++ | [mildew] options to Mildew::Backend::OptC are optional
10:08 cosimo now the smartlinks in the syn docs are a bit better I think
10:09 cosimo i still need to fix the highlight icons, will get there soon
10:10 hirschnase joined #perl6
10:10 ciphertext joined #perl6
10:12 moritz_ cosimo++
10:16 moritz_ http://blogs.msdn.com/b/vcblog/archive/2010/06/01/how-we-test-the-compiler-backend.aspx
10:28 pmurias moritz_: the stress modes part is interesting
10:44 clintongormley joined #perl6
11:00 whiteknight joined #perl6
11:05 proller joined #perl6
11:20 cognominal joined #perl6
11:26 satyavvd joined #perl6
11:26 satyavvd joined #perl6
11:35 pugssvn r31180 | cosimo++ | [docs] update-syn: Clean up and make easier to relocate
11:43 ruoso joined #perl6
11:52 moritz_ [Coke]: ping
11:55 hirschnase joined #perl6
11:57 cosimo there's quite a few co* nicks too :)
12:02 mberends k23z__: ping
12:02 k23z__ mberends, pong
12:03 mberends about writing bindings for Rakudo...
12:04 mberends we are restricted to certain call signatures because of the current way Parrot does NCI
12:04 k23z__ mberends, I got windows(with close/minimize/maximize buttons) , drag & drop , buttons , images , and hoverin/hoverout events at the moment .. I intend to basically write everything that a normal GUI toolkit does in C++ and keep it below 5000LOC
12:04 mberends k23z__: cool!
12:05 mberends k23z__: the part that is likely to be hardest is getting callbacks to work for input events
12:06 k23z__ mberends, well for creating an object on the screen I create a class and derive from the basic classes(Button,Window etc) and implement methods for that class
12:06 k23z__ mberends, how would you do it ?
12:06 mberends k23z__: in Rakudo we would be limited to polling
12:06 moritz_ unless there's an external runloop
12:06 k23z__ how would polling limit this ? what is it polling for ?
12:07 k23z__ I have a World::Loop() which waits for events, it's wrapped inside the SDL event loops
12:07 k23z__ *loop
12:07 * jnthn back from meeting
12:08 jnthn Whoa...I drank *way* too much coffee at those meetings.
12:08 colomon \o/
12:08 diakopter moritz_: from your msdn link above: "We don’t require complicated harnesses since our app is short-running and we don’t have to deal with the UI automation problem that many other testers in the world do because there is no user interaction.  Most of our tests are just batch or simple perl scripts with some .cpp and .h files."
12:08 mberends k23z__: I don't think Rakudo can provide anything callable from your Loop()
12:09 k23z__ mberends, why ? I can write some events or signals for Rakudo to catch and handle ...
12:09 k23z__ mberends, will he have to do IPC ? or how exactly will the two communicate ?
12:10 k23z__ mberends, I could also include some serialize/deserialize(JSON/XML) and make a pipe through which you could tell the GUI what you want ..
12:10 k23z__ but uh.. that would be a bit slow
12:10 k23z__ mberends, how do you normally write bindings for Rakudo ?
12:11 mberends k23z__: preferably all in one process, so without IPC, because Rakudo does only blocking synchronous I/O
12:12 mberends k23z__: the normal bindings are for the Rakudo process (which is actually the Parrot executable) to load a native code library and call the functions in there.
12:12 k23z__ so I should export .so or .dll ?
12:12 k23z__ and you could load and import the functions there and use them ?
12:13 mberends k23z__: yes. The .so for Unix or .dll for Windows. Both work fine.
12:13 cognominal is there a way to enumerate all the classes known from Perl 6?
12:13 moritz_ don't think so
12:14 moritz_ anonymous classes might even be garbage collected once their instances fade away
12:14 mberends k23z__: are you familiar with http://github.com/jnthn/zavolaj ?
12:14 k23z__ not at all
12:14 jnthn anonymous classes had best be GC'd once their instances fade away. :-)
12:15 moritz_ jnthn: knowing the parrot GC... I can only hope :-)
12:15 jnthn moritz_: Well, it's not so much that Parrot GC as if it keeps another reference around to it that I didn't intend it to.
12:15 cognominal what is this backslash around anonymous going across the net :)
12:16 moritz_ all anonymous classes oppose scientology... or so :-)
12:16 mberends k23z__: Zavolaj is the tool I would like to use to create Rakudo bindings for your GUI library
12:17 k23z__ mberends, I've just read here how to use mingw to create dlls http://www.adp-gmbh.ch/win/misc/mingw/dll.html
12:17 k23z__ mberends, so one part of the problem is solved, since I would just have to write a C api over my C++ already existing API
12:17 k23z__ mberends, then using Zavolaj you can use the C API to write the bindings no ?
12:17 mberends k23z__: that would work :-)
12:31 mberends afk & # $class
12:34 plainhao joined #perl6
12:38 colomon perl6: say 11 mod 3
12:39 p6eval rakudo 34c1ba: OUTPUT«2␤»
12:39 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "mod"␤    expecting operator, ":" or ","␤    at /tmp/FFEghmBGNv line 1, column 8␤»
12:39 p6eval ..elf 31180: OUTPUT«Undefined subroutine &GLOBAL::infix_mod called at (eval 123) line 3.␤ at ./elf_h line 5881␤»
12:39 colomon alpha: say 11 mod 3
12:39 p6eval alpha 30e0ed: OUTPUT«infix:<mod> not yet implemented in Rakudo, sorry␤in sub »
12:40 colomon ooo, at least alpha had a nice message about it.  :)
12:40 moritz_ still, surprisingly good error message :-)
12:46 synth joined #perl6
12:49 pmurias joined #perl6
12:49 pmurias ruoso: hi
12:51 pmurias ruoso: it turned out the segfault was a result of infinite recurssion in a incorrect test
12:59 masak rakudo: say [mod] 100, 99, 88, 77, 66, 55, 44
12:59 p6eval rakudo 34c1ba: OUTPUT«===SORRY!===␤Could not find sub &infix:<mod>␤»
13:00 masak huh?
13:00 colomon huh.
13:00 masak rakudo: say 100 mod 99
13:00 p6eval rakudo 34c1ba: OUTPUT«1␤»
13:00 * masak submits rakudobug
13:00 masak probably a symptom of something larger.
13:01 colomon rakudo: say [div] 100, 99, 88, 77, 66, 55, 4
13:01 p6eval rakudo 34c1ba: OUTPUT«0␤»
13:01 colomon something wrong with the ordering of .pm files in the build, maybe?
13:01 moritz_ colomon: is it 'our' multi infix:<mod>?
13:02 ruoso pmurias, hi
13:02 colomon maybe it's the our, that's the only difference I see from div
13:02 colomon trying that.
13:02 ruoso pmurias, that's good news...
13:04 arnsholt Are there any established practices on how and where to document modules?
13:05 PerlJam buenos dias #perl6
13:05 colomon o/
13:05 colomon > say [mod] 100, 99, 88, 77, 66, 55, 44
13:05 colomon 1
13:06 moritz_ arnsholt: most modules use some PODish markup
13:06 masak arnsholt: anything which is an "entry point" in some sense SHOULD be documented. probably other things as well.
13:06 masak arnsholt: mberends is our documentation hero, so you should ask him.
13:06 masak hm, meant mberends++. :)
13:07 colomon hmmm.... where to test [mod]?
13:07 moritz_ colomon: either along with mod, or in S03-metaops/* somewhere
13:08 colomon mod is in arith.t, which seems pretty low level.
13:08 pmurias ruoso: i'll now try to steal the build system from Text::BibTeX which is a dual perl module/C library
13:10 pnu joined #perl6
13:12 ruoso pmurias, okay... there are other references if that looks complicated...
13:13 pmurias ruoso: got any links to other things to steal parts from?
13:15 am0c joined #perl6
13:16 ruoso pmurias, i've recently made a binding for Sedna
13:16 ruoso it included calling a completely external build
13:17 ruoso Module::Install (or is it Module::Build) also has a module for building c libraries I htink
13:20 pmurias ruoso: got a link for the Sedna binding?
13:20 pmurias found
13:25 pmurias ruoso: the README for Sedna is outdated as it mentions it as a dependencie
13:25 pmurias * dependency
13:25 pmurias while the POD mentions that it is bundled
13:25 proller joined #perl6
13:31 xabbu42 joined #perl6
13:37 relyonthewind joined #perl6
13:37 ruoso pmurias, er... ok... I'll update it
13:37 * ruoso should probably start using Module::Install::ReadmeFromPod
13:39 relyonthewind left #perl6
13:41 JimmyZ joined #perl6
13:43 kaare joined #perl6
13:46 arnsholt I released!
13:46 arnsholt Perl 6 can now decode HMMs: http://github.com/arnsholt/Algorithm-Viterbi
13:47 masak \o/
13:48 masak and it uses ufo! :)
13:48 pmichaud good morning, #perl6
13:48 masak morning, pmichaud
13:48 cognominal how to express the type of this structure  ( "toto", [ "foo"] ,"foo" ); That is a tree of stings?
13:49 gbacon joined #perl6
13:49 arnsholt masak: ufo has a very endearing feature. I don't have to do -anything- to get it to work =D
13:49 cognominal \o/  pmichaud
13:49 colomon \o
13:50 masak cognominal: how do you mean, 'express'? you want a name for it?
13:50 masak I'd call it a nested array of strings.
13:50 masak except that the outermost layer happens to be a listcaptureparcelwhatever.
13:51 cognominal I want to declare a variable of that type, so I need to expresse that type.
13:51 felipe joined #perl6
13:52 masak std: subset NAoStr of Array where { all(|$_) ~~ Str | NAoStr }
13:52 cognominal So that is can be checked somehow. Statically or dynamically, par the Perl 6 compiler or a Perl 6 lint. Who knows.  I don't care but I want to be able to say in a way that part of Perl6 concrete syntax.
13:52 p6eval std 31180: OUTPUT«ok 00:01 109m␤»
13:52 pmichaud cognominal: that structure starts out as a Parcel
13:53 cognominal s/par/by/
13:53 masak cognominal: would the above be enough? seems you can recurse in subtype declarations.
13:53 masak std: subset NAoStr of Array where { all(|@^elements) ~~ Str | NAoStr }
13:53 p6eval std 31180: OUTPUT«ok 00:01 106m␤»
13:54 * masak cackles
13:54 cognominal masak, sounds nice enough.
13:54 masak hm, probably the | isn't even needed there.
13:54 masak the prefix:<|>, I mean.
13:54 masak the infix:<|> may or may not cause an infinite loop. :/
13:55 masak (since junctions evaluate all their components in parallel)
13:55 masak but it should be OK, I think, since the structural recursion always bottoms out.
13:56 masak unless there are := bindings in the middle of it. :/
13:56 * masak thinks too much
13:57 pmichaud or perhaps captures
13:57 masak arnsholt: Algorithm-Viterbi added to proto's projects.list
13:57 cognominal I tend to think always a step beyond what is implemented or more often perpendicular to what is sensible.
14:00 pmichaud cognominal: oh, so you're like masak++ then?  ;-)
14:03 masak 'perpendiculat to what is sensible'. yup.
14:03 masak s/t/r/
14:03 pmurias ruoso: smop is under Artistic 2?
14:06 [Coke] moritz_: pong.
14:06 cognominal I need to write as much code as masak++  so
14:07 dju joined #perl6
14:09 * [Coke] finally gets around to writing a dumb builder that checks parrot and all the hlls he cares about.
14:11 cognominal rakudo:    say   'abc' ~ m :g  /  . /
14:11 p6eval rakudo 34c1ba: OUTPUT«===SORRY!===␤Confused at line 11, near "say   'abc"␤»
14:11 cognominal oops
14:11 cognominal rakudo:    say   'abc' ~~ m :g  /  . /
14:11 p6eval rakudo 34c1ba: OUTPUT«===SORRY!===␤Confused at line 11, near "say   'abc"␤»
14:12 plobsing joined #perl6
14:12 cognominal what is the current idiom in rakudo to do that?
14:12 cognominal rakudo:  say   'abc'.match(  /  . /, :g )
14:13 p6eval rakudo 34c1ba: OUTPUT«abc␤»
14:13 cognominal hooray
14:13 cognominal rakudo:  say   'abc'.match(  /  . /, :g ).WHAT
14:13 p6eval rakudo 34c1ba: OUTPUT«Parcel()␤»
14:13 cognominal rakudo:  print   $_ for  'abc'.match(  /  . /, :g )
14:14 p6eval rakudo 34c1ba: OUTPUT«abc»
14:14 cognominal rakudo++
14:15 proller joined #perl6
14:16 pyrimidine joined #perl6
14:19 ajs rakudo: my $code = PAST::Compiler.compile(PAST::Block.new(PAST::Val.new( :value(1) ))); say $code();
14:19 p6eval rakudo 34c1ba: OUTPUT«1␤»
14:20 ajs rakudo: my $block = PAST::Block.new(PAST::Val.new( :value(1) )); my $code = PAST::Compiler.compile($block); say $code();
14:20 p6eval rakudo 34c1ba: OUTPUT«get_iter() not implemented in class 'Capture'␤  in main program body at line 11:/tmp/Gcz_AAWNc_␤»
14:20 k23z__ /mingw/lib/crt2.o(.text+0x37):crt1.c: undefined reference to `__cpu_features_init  <--what the hell is this  ?
14:20 ajs Anyone know why those two aren't the same?
14:21 jnthn rakudo: rakudo: my $block = PAST::Block.new(PAST::Val.new( :value(1) )); say "alive"
14:21 p6eval rakudo 34c1ba: OUTPUT«===SORRY!===␤Confused at line 11, near "rakudo: my"␤»
14:21 jnthn rakudo: my $block = PAST::Block.new(PAST::Val.new( :value(1) )); say "alive"
14:21 pmichaud [Coke]++
14:21 p6eval rakudo 34c1ba: OUTPUT«alive␤»
14:22 pmichaud PAST compiler might not know what to do with rakudo objectrefs
14:22 jnthn rakudo: my $block = PAST::Block.new(PAST::Val.new( :value(1) )); my $code = PAST::Compiler.compile($block);
14:22 p6eval rakudo 34c1ba: OUTPUT«get_iter() not implemented in class 'Capture'␤  in main program body at line 11:/tmp/sXHbFObB83␤»
14:22 jnthn pmichaud: Oh, oddness. I'd have thought they'd be transparent to it.
14:22 hirschnase joined #perl6
14:22 pmichaud well, so would I, but normally we're doing binding instead of assignment in NQP
14:22 jnthn True.
14:23 ajs Yeah, and sadly that's not an option in Rakudo
14:23 masak submit a rakudobug?
14:23 pmichaud rakudo:  my $block = PAST::Block.new(PAST::Val.new( :value(1) ));  say PARROT($block)
14:23 p6eval rakudo 34c1ba: OUTPUT«Perl6Scalar->PAST;Block␤»
14:23 ajs Fair enough, just wanted to be sure I wasn't doing something stupid
14:24 ajs Hmmm pmichaud, you might be onto something there, let me try that out
14:24 pmichaud it may also be that PAST::Compiler isn't returning something that rakudo knows how to process
14:24 jnthn pmichaud: That worked in the pervious example though.
14:24 ajs It works fine in the first case
14:24 pmichaud oh, good point.
14:24 jnthn uh, previous :-)
14:24 hirschnase joined #perl6
14:24 pmichaud so I fall back to "there's something weird about $block"
14:25 pmichaud yes, I would expect it to be transparent... but perhaps it isn't for some reason.
14:25 ajs rakudo: my $block = PAST::Block.new(PAST::Val.new( :value(1) )); my $code = PAST::Compiler.compile(PARROT($block)); say $code();
14:25 p6eval rakudo 34c1ba: OUTPUT«Null PMC access in type()␤  in main program body at line 11:/tmp/cgP_Wd5cmw␤»
14:25 ajs OK, will go the bug route. Thanks all.
14:26 pmichaud yes, I'd be curious as to what that could possibly be.
14:26 pmichaud I'm also curious as to whether the get_iter is failing on a Parrot Capture or a Rakudo Capture
14:27 jnthn The latter would be very odd.
14:27 breinbaas joined #perl6
14:27 pmichaud agreed... but it's all a little odd to begin with
14:27 jnthn (Since we inherit from Parrot Capture...)
14:27 jnthn Troo. :-)
14:28 pmichaud phenny: tell sorear after thinking about it this morning, I realized that double-indirection for variables/binding isn't the answer either
14:28 phenny pmichaud: I'll pass that on when sorear is around.
14:30 skids joined #perl6
14:31 pugssvn r31181 | pmurias++ | [mildew] ast from the m0ld backends doesn't go through the
14:31 pugssvn r31181 | simplification pass, noops in m0ld, label duplication is caught
14:32 pugssvn r31182 | pmurias++ | [mildew] started porting Build.PL over from Text::BibTeX
14:46 pyrimidine joined #perl6
14:46 rv2733 joined #perl6
14:51 rgrau_ joined #perl6
14:56 xabbu42 joined #perl6
14:58 masak pmurias, ruoso, sorear: which one of you should I talk to if I'm interested in the art of turning a parse tree à la viv into an AST?
15:01 pmurias any one of us which is avalible
15:02 proller joined #perl6
15:02 masak ok, great.
15:03 masak I don't really know where to begin. I know the goal is to condense information by removing unnecessary information only pertinent to parsing.
15:04 masak I don't have very many examples of how to do that. PPI is one, I guess.
15:04 masak I've been looking at that a little.
15:04 jnthn masak: There's also Rakudo's Actions.pm, which is doing that very thing.
15:04 masak ah, goodie.
15:04 masak but Actions.pm creates PAST, right?
15:04 jnthn Yes
15:05 jnthn *AST* :-)
15:05 masak the impression I have of PAST is that it's too low-level.
15:05 masak but I might be wrong on that; I don't know enough about it.
15:06 jnthn I thought we'd have to extend it a lot when I first encountered it too, 2+ years back.
15:06 jnthn I was wrong.
15:06 pmurias masak: mildew/src/VAST/* contains code which turns VAST into mildew AST
15:08 masak ok, here's what I'd like to have. I want an abstraction level where I can comfortably say things like "these two methods return values of different type", "this method contains a statement which will never be reached" and "this method never refers to 'self', directly or indirectly". will VAST or PAST do that for me?
15:08 pmichaud PAST can do it, but it's not built-in.
15:09 pmichaud (it can be done with PAST, but PAST doesn't provide those capabilities by default)
15:09 masak ok, that's good to know. I didn't expect it to be built-in.
15:09 masak I'm prepared to write search tooling myself.
15:09 jnthn It's still I expect we'd need to build some day.
15:09 jnthn If you're intested in building it, that'd be awesome.
15:10 masak I am. that's sigmund.
15:10 masak just thinking of what AST tech to use.
15:10 masak maybe PAST is it.
15:10 pmichaud for example, for the latter, we can just have every variable reference place a marker in the routine's symbol table saying "I used this"
15:11 jnthn pmichaud: Well, or walk the tree for PAST::Var nodes with a matching .name()
15:11 pmichaud jnthn: sure, but "walk the tree" is a little expensive.
15:11 masak 'self' is a term, not a variable. :)
15:11 jnthn True.
15:11 pmichaud easier to do it while building :-)
15:11 jnthn masak: That's a parsing thing. At the AST level you care about "how do I get self"
15:12 jnthn masak: And the answer is "it's stored in a lexical"
15:12 masak oh, ok.
15:12 pmichaud in rakudo, we implement self as a lex... what jnthn++ said.
15:12 pmichaud I suppose it's an open question as to whether 'self' should be visible in the lexpad.
15:12 masak I need to learn to distinguish parse-phase things from things in later phases.
15:12 jnthn pmichaud: Well, it's tricky-ish to get at it now. :-)
15:13 jnthn pmichaud: Since it's stored sigil-less.
15:13 pmichaud jnthn: I was thinking in the sense of   MY::
15:13 jnthn eww
15:13 pmichaud MY::<self>
15:13 macdaddy joined #perl6
15:13 drbean joined #perl6
15:13 jnthn YOUR::<self> :-)
15:14 jnthn pmichaud: Well, we can find a way around that if we need to.
15:14 pmichaud jnthn: right... I'm just idly curious at the moment.  :)
15:14 jnthn pmichaud: We'll hae the same fun with MY::<__CANDIDATE_LIST__> too :-)
15:14 masak rakudo: class A { method closure { my $i = 0; return { say self, ++$i } } }; my $c = A.new.closure; $c() for ^5
15:14 p6eval rakudo 34c1ba: OUTPUT«A()<0x1a1fd80>1␤A()<0x1a1fd80>2␤A()<0x1a1fd80>3␤A()<0x1a1fd80>4␤A()<0x1a1fd80>5␤»
15:14 masak \o/
15:15 masak a self-sacrificing method :P
15:15 jnthn Totally giving it's self up.
15:16 * pmichaud wants to attack the ticket queue, but knows that he really needs to solve lists.
15:16 masak to achieve closure, you first have to let go of the self...
15:16 xabbu42 joined #perl6
15:17 masak pmichaud: lazy lists feels like the last big remaining feature for R*.
15:17 pmichaud masak: well, working lists and iterators, yes.
15:18 pmichaud it's not just laziness, it's also the mis-reporting of things like GatherIterator and the fact that binding lazy structures consumes them
15:18 pmichaud and we still need working closures for R*, although that's pretty easy to solve at this point.
15:19 pmichaud but closures will have to be solved in the next 3-4 days to make it into the parrot release, I suspect.
15:19 jnthn Aye, those are probably our two nastiest things at the moment.
15:23 jnthn pmichaud: Parrot release is a week today, I believe.
15:23 pmichaud jnthn: yes, thus closures have to be solved in the next 3-4 :)
15:23 jnthn So yes, 3-4 days to get in before the freeze.
15:23 masak does the closures trouble originate on the Parrot level?
15:23 pmichaud not any more.
15:23 pmichaud but we need a new PAST node type to really handle it well.
15:24 masak oh!
15:24 pmichaud (and that's in Parrot)
15:24 pmichaud wellllllll
15:24 pmichaud if we *had* to, the PAST node type could come from Rakudo for a while :)
15:24 jnthn ;-)
15:24 pmichaud and then get backported into Parrot
15:24 masak no rush, then. :)
15:24 * jnthn hands pmichaud a monkey with deft fingers
15:29 envi^home joined #perl6
15:35 Ross joined #perl6
15:37 arnsholt joined #perl6
15:46 patspam joined #perl6
15:57 ashleydev joined #perl6
15:58 justatheory joined #perl6
15:58 arnsholt Is there a way to make a named parameter required? (Apart from die "OMG!" if not $named)
15:59 jnthn !
15:59 jnthn as in, :$batteries!
16:00 pyrimidine_ joined #perl6
16:02 arnsholt Yeah, that worked, thanks
16:02 arnsholt (it took me a second to figure out the one-byte response, but the parallel to ? is pretty clear, when I think about it)
16:03 pyrimidine_ joined #perl6
16:09 masak hm, A06 didn't have the exclamation mark, nor (if I read it correctly) any corresponding way to mark a named as required. and nameds were marked like this: +$named.
16:09 masak I'm glad it changed. :)
16:10 masak optional positionals were ?$opt
16:10 jnthn .oO( A is for Aulde )
16:10 jnthn masak: Heh, that longs...just wrong now. :-)
16:10 jnthn *looks
16:12 xabbu42 joined #perl6
16:12 xabbu42_ joined #perl6
16:13 k23z__ mberends, you got windoze ? I wanna send you some binaries for you to hafalook
16:14 cdarroch joined #perl6
16:14 cdarroch joined #perl6
16:15 ashleydev joined #perl6
16:15 mberends k23z__: sure, sounds like fun. I'll privmsg you an email address
16:15 k23z__ mberends, please do so
16:20 TimToady masak: in all(|$x) the | is required, because $x never interpolates into a list
16:20 TimToady but don't write it that way
16:21 masak ok.
16:21 TimToady well, it was $_, so just .all works
16:21 masak ooh!
16:21 masak rakudo: .all
16:21 p6eval rakudo 34c1ba: OUTPUT«Method 'all' not found for invocant of class ''␤  in main program body at line 11:/tmp/E_IUQZn9ZC␤»
16:21 * masak submits rakudobug
16:22 colomon What type is .all supposed to be defined on?
16:22 TimToady Any -> List
16:22 jnthn Ah, then it is a rakudobug.
16:22 jnthn rakudo: 42.all
16:22 p6eval rakudo 34c1ba: OUTPUT«Method 'all' not found for invocant of class 'Int'␤  in main program body at line 11:/tmp/P7ynz4FEml␤»
16:22 jnthn Ah, OK, actually not bug, just NYI.
16:23 alester joined #perl6
16:24 TimToady in any case, it ought to work in your subset of Array
16:25 TimToady rakudo: my @a = 1,2,3; say @a.all
16:25 p6eval rakudo 34c1ba: OUTPUT«Method 'all' not found for invocant of class 'Array'␤  in main program body at line 11:/tmp/1M77vVAN9f␤»
16:25 arnsholt masak: I've got an idea for ufo, BTW
16:25 TimToady pugs: my @a = 1,2,3; say @a.all
16:25 p6eval pugs: OUTPUT«all(VInt 1,VInt 2,VInt 3)␤»
16:25 arnsholt How about a target that reruns ufo for you?
16:25 masak arnsholt: I'm listening. so are "they".
16:25 masak arnsholt: a target? how do you mean?
16:26 TimToady pugs: $_ = [1,2,3]; say .all
16:26 p6eval pugs: OUTPUT«all(VRef <Array:0x2aefa8588d91>)␤»
16:26 TimToady pugs: $_ = (1,2,3); say .all
16:26 p6eval pugs: OUTPUT«all(VRef <Array:0x2b56f2f9ab91>)␤»
16:26 TimToady hmm
16:26 TimToady well, pugs isn't always right :)
16:27 TimToady oh, wait
16:27 TimToady pugs: $_ := (1,2,3); say .all
16:27 p6eval pugs: OUTPUT«all(VInt 1)␤»
16:27 TimToady pugs: $_ := [1,2,3]; say .all
16:27 p6eval pugs: OUTPUT«all(VInt 1,VInt 2,VInt 3)␤»
16:27 arnsholt masak: A target in Makefile, that runs ufo
16:27 TimToady there we go :)
16:27 arnsholt Although I suppose it's a bit stupid
16:27 arnsholt But I found I wanted it nonetheless =)
16:28 masak arnsholt: so, like, 'make ufo' or something?
16:28 masak arnsholt: that simply runs 'ufo'?
16:28 Jedai joined #perl6
16:28 arnsholt Yeah =)
16:28 arnsholt Now that I think about it, maybe not a good idea after all >.>
16:29 masak let's just say I'm not yet convinced of its advantages. :P
16:29 arnsholt I can understand that, actually =)
16:29 arnsholt Maybe if ufo ever grows parameters or somesuch
16:30 arnsholt Bah. My prove is too old for ufo
16:30 masak it has one, as of yesterday.
16:30 masak arnsholt: then your prove needs updating. maybe I should put that in the README or something.
16:30 arnsholt Yeah, I've encountered the problem before
16:31 arnsholt My Ubuntu is olded
16:31 pugssvn r31183 | colomon++ | [t/spec] Add simple tests for [div] and [mod].
16:32 meppl joined #perl6
16:32 dalek rakudo: 7821618 | (Solomon Foster)++ | src/core/Real.pm:
16:32 dalek rakudo: [t/spec] Add "our" to infix:<mod> definition so [mod] works.
16:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/78216182a3b1a0a83096c4b8d1adc39ac31c29cb
16:33 arnsholt masak: But something you should do is mark the test and clean targets as phony targets
16:33 masak arnsholt: excellent idea. I await your patch with gratitude.
16:33 arnsholt Sure =)
16:34 masak ++arnsholt
16:38 arnsholt *sigh* This is the times when git taxes my patience
16:38 arnsholt Coaxing git into making a patch takes longer than writing the patch
16:39 masak I'm not particular. I accept a gist of a diff.
16:44 arnsholt masak: http://gist.github.com/430285
16:45 * moritz_ back
16:45 moritz_ [Coke]: I recall you have access to the planetsix config file... colomon's post are all shown with "colomon" as the title, not with the actual title
16:45 masak arnsholt: applied, pushed. thanks!
16:45 moritz_ [Coke]: could you please try to fix it?
16:46 * masak goes home to do laundry, cook nom
16:46 colomon I'm not really that vain, honest!  ;)
16:46 moritz_ colomon: that's what they all say :-)
16:47 [Coke] moritz_: it's his feed.
16:47 [Coke] view-source:http://justrakudoit.wordpress.com/feed/
16:47 [Coke] says: "
16:47 [Coke] <media:title type="html">colomon</media:title>
16:47 [Coke] sorry.
16:48 moritz_ huh?
16:48 moritz_ [Coke]: ah, that's the feed title
16:49 moritz_ [Coke]: but what we want is <title> inside each item
16:49 moritz_ <item> <title>Mandelbrot</title> ...
16:49 jnthn moritz_: It is inside each item though - but it's the title for the gravator...
16:49 jnthn *gravatar
16:49 [Coke] moritz_: ah...
16:49 jnthn Maybe the parser is not very namespace aware. ;-)
16:49 [Coke] in that case it's not a config issue, it's a bug in the planet code, I'm guessing.
16:50 * colomon is glad you guys understand what is going on, I was just trying to figure out how to fix it...
16:50 [Coke] if there is a different feed I could try, I can do that, otherwise, best to bump to the planet coders.
16:54 moritz_ [Coke]: not aware of one :(
16:56 [Coke] moritz_: I'd ping robert and ask.
16:56 moritz_ ok, I'll write a mail
17:00 colomon moritz_++
17:00 moritz_ done
17:03 [Coke] moritz_++
17:04 * jnthn realizes he'd better make a start on his talks for $workshop today.
17:06 moritz_ speaking of today... #phasers in 1:54?
17:09 arnsholt What is this #phasers thing?
17:09 moritz_ what previously was #rakudosketch
17:09 moritz_ our weekly status meeting
17:09 arnsholt Ah, right
17:11 * [Coke] sighs. I'm going to have to do another bisect to figure out when partcl-nqp died. =|
17:11 [Coke] whoops. ww
17:12 jnthn Yes, #phasers is today
17:12 jnthn We'll see who makes it. :-)
17:12 colomon moritz_: thanks for the reminder, too.
17:13 colomon (#phasers, I mean.)
17:15 szabgabx joined #perl6
17:23 estrabd joined #perl6
17:23 cognominal rakudo: : :g.perl
17:23 cognominal oops
17:23 p6eval rakudo 782161: OUTPUT«===SORRY!===␤Confused at line 11, near ": :g.perl"␤»
17:23 cognominal rakudo: :g.perl
17:23 p6eval rakudo 782161:  ( no output )
17:23 cognominal rakudo: say :g.perl
17:23 p6eval rakudo 782161: OUTPUT«"g" => Bool::True␤»
17:24 cognominal I thought that was :g(0)
17:26 stephenlb joined #perl6
17:26 estrabd joined #perl6
17:26 cognominal ho, apparently that has changed.
17:42 pyrimidine joined #perl6
17:47 TimToady cognominal: it was never :g(0), though rakudo had it :g(1) at one point
17:48 TimToady that is, :foo has always implied true, not false
17:48 moritz_ it's :!foo that's false
17:48 TimToady nodnod
17:51 stephenlb joined #perl6
17:52 estrabd joined #perl6
17:55 estrabd joined #perl6
17:55 cognominal anyway, it makes more sense even if it may be heavier on memory implemantation-wise.
17:59 dalek rakudo: acecb97 | moritz++ | src/core/Match.pm:
17:59 dalek rakudo: remove some clutter from Match.perl output
17:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/acecb97d04b45b4d7f5cb09c28ef232f0a9adb46
18:00 mberends joined #perl6
18:00 Chillance joined #perl6
18:01 arnsholt I even blogged: http://blogs.perl.org/users/arne_skjaerholt/2010/06/decoding-hmms-in-perl-6.html
18:01 arnsholt (Most fitting would perhaps be if the post was generated by a HMM language model, but I think readability would suffer ^^)
18:02 TimToady cognominal: as many Lisp implementations have shown, there is nothing that says a unit cell must always be interpreted as a native int; certainly in Perl 6 the unit cell could encode commont Int values and common enum types
18:04 moritz_ http://www.perlmonks.org/?node_id=843572 btw
18:10 broquaint joined #perl6
18:15 cognominal TimToady:  A scalar being a degenerated list with one element. Should I have failure like that :  Method 'sort' not found for invocant of class 'String' ?
18:15 cognominal That would avoid to special case a lot of code.
18:16 cognominal afk&
18:21 pmichaud phenny: tell sorear disregard my previous message... we do need double-indirection, it just looks very different from what I was originally expecting.
18:21 phenny pmichaud: I'll pass that on when sorear is around.
18:22 moritz_ pmichaud: is there anything I can do to help you get inversion lists and backslash escapes in char classes running?
18:22 xabbu42 joined #perl6
18:22 pmichaud moritz_: let me see if I can figure out how to write it up.
18:22 pmichaud (the description)
18:22 christine joined #perl6
18:24 moritz_ one more things...
18:25 moritz_ for MAIN I want to add a contextual to the module loader that indicates if we're compiling a module or not
18:25 moritz_ and if not, add a call to a MAIN_HELPER or so to the end of the mailine code
18:26 moritz_ does that sound like an accecptable plan?
18:26 pmichaud no
18:26 pmichaud I think we decided a bit ago that using contextuals for this isn't really the way to go
18:26 moritz_ did we settle on an alternative?
18:27 pmichaud yes, but haven't implemented it yet.
18:27 pmichaud essentially, YOU_ARE_HERE needs a refactor.
18:27 pmichaud The first (outermost) sub in any compiled module needs to see if it has an outer context.
18:27 pmichaud If it has an outer context, then it's not the mainline.
18:27 pmichaud If it doesn't have an outer context, it is the mainline.
18:28 moritz_ modules have an outer context?
18:28 moritz_ I mean, other than the setting
18:31 pmichaud well, it's more in the sense of "am I an eval" versus "am I a module"
18:31 moritz_ use Foo; # shouldn't execute Foo.pm's MAIN sub
18:32 moritz_ actually for now I'd even always include a call to MAIN_HELPER
18:32 moritz_ and do the "run only if" part later as a refinement
18:33 SmokeMachine joined #perl6
18:37 xabbu42 joined #perl6
18:40 pyrimidine joined #perl6
18:42 moritz_ rakudo is awesome
18:43 moritz_ with Q:PIR and the setting I can prototype my Rakudo code outside the compiler
18:47 jnthn #phasers in 13 mins or so
18:49 k23z__ joined #perl6
18:50 alester joined #perl6
18:50 moritz_ http://nopaste.snit.ch/21083
18:50 moritz_ I don't understand why I get that Null PMC Access
18:50 xabbu42 joined #perl6
18:50 moritz_ %r should be the Any type object, not Null
18:52 * moritz_ feels rather dumb
18:52 jnthn %r  = $P0['&MAIN']
18:52 jnthn moritz_: You're checking if the lexpad is null
18:52 jnthn moritz_: But assuming that if the lexpad exists, there must be a &MAIN in it
18:53 moritz_ ah
18:53 jnthn My guess is that the line I pasted is the source of your fail.
18:53 moritz_ you're right
18:53 moritz_ jnthn++
18:53 moritz_ now that I know what my error was, it's easy to fix
18:54 pmichaud 18:42 <moritz_> rakudo is awesome
18:54 pmichaud I like reading that.  :)
18:55 cognominal Answering my own question  @( )  is not so much a hassle
18:55 k23z__ mberends, ?
18:55 k23z__ mberends, ping
18:55 mberends k23z__: pong
18:56 k23z__ mberends, http://cloud.github.com/downloads/wsdookadr/WFSDL/wfsdl.rar
18:58 samlh joined #perl6
18:58 mberends k23z__: I see the email, will be starting up windoze in a few minutes :)
18:58 k23z__ gr8
18:59 moritz_ rakudo: my $x = 5; $x does False; say $x.Bool
18:59 p6eval rakudo acecb9: OUTPUT«0␤»
18:59 mberends k23z__: it looks like you've done a lot of work there :)
18:59 moritz_ rakudo: my $x = 5;  say $x.Bool
18:59 p6eval rakudo acecb9: OUTPUT«1␤»
18:59 k23z__ mberends, haha
19:02 moritz_ http://nopaste.snit.ch/21084 rather close to initial MAIN handling
19:05 masak joined #perl6
19:06 pmichaud moritz_: I'm fine with whatever MAIN handling you want to put in place.. my concern is that we're starting to layer too many special-purpose dynamic vars into the loading process and not thinking about the bigger picture of how things fit together.
19:06 pmichaud (which is why YOU_ARE_HERE needs a bit of a rework)
19:07 pmichaud and the $*IN_EVAL  dynamic var is EVIL
19:07 pmichaud (it needs to go away)
19:07 moritz_ pmichaud: I'll introduce no dynamic vars, and live with always calling all MAIN subs
19:07 pmichaud wfm for now.
19:07 pmichaud I expect I'll be able to address it in about a week.
19:07 pmichaud (i.e., before the next rakudo release)
19:07 pmichaud back to list design
19:09 _ilbot2 joined #perl6
19:09 Topic for #perl6is now »ö« | http://perl6.org/ | nopaste: http://paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: http://irc.pugscode.org/ | UTF-8 is our friend!
19:13 christine joined #perl6
19:15 cognominal that's creepy when, by mistake,  I type 'say <something>'  at the bash prompt instead of the rakudo and my mac reads it aloud.
19:15 PerlJam it's a feature!
19:15 samlh lol
19:16 cognominal but that happens because I am thrown out of the rakudo shell with get_string() not implemented in class 'ArrayIterator'
19:17 arnsholt The same thing happens to me from time to time =)
19:18 pmichaud eta to #rs?
19:18 moritz_ pmichaud: -18
19:18 moritz_ pmichaud: in #phasers
19:18 pmichaud oops
19:32 lucs joined #perl6
19:34 ShaneC joined #perl6
19:38 rokoteko joined #perl6
19:38 rokoteko will you be able define your own ops in perl6?
19:39 moritz_ rakudo: multi sub postfix:<!>($x) { [*] 1..$x }; say 51
19:39 p6eval rakudo acecb9: OUTPUT«51␤»
19:39 moritz_ rakudo: multi sub postfix:<!>($x) { [*] 1..$x }; say 5!
19:39 jnthn fail ;-)
19:39 p6eval rakudo acecb9: OUTPUT«120␤»
19:39 moritz_ better :-)
19:40 rokoteko I mean like make an op called "*!*" that does what you want? ie. $result = 1 *!* 2; ?
19:40 moritz_ sure
19:40 moritz_ what do you want *!* to do?
19:40 jnthn rokoteko: Like above but infix:<*!*> and take two args.
19:41 rokoteko jnthn: yes. infix sub that thakes two args, named in a weird way. :)
19:41 rokoteko moritz_: I dunno. maybe $a**$b-1, if you need something.
19:41 moritz_ rakudo: sub infix:<*!*>($x, $y) { $x ** ($b - 1) }; say 2 *!* 9
19:41 p6eval rakudo acecb9: OUTPUT«===SORRY!===␤Symbol '$b' not predeclared in infix:<*!*>␤»
19:41 moritz_ rakudo: sub infix:<*!*>($x, $y) { $x ** ($y - 1) }; say 2 *!* 9
19:42 p6eval rakudo acecb9: OUTPUT«256␤»
19:42 rokoteko ah, brilliant.
19:42 rokoteko something new. :)
19:42 TimToady I think ($a**$b)-1 is more useful...
19:45 Jedai joined #perl6
19:52 takadonet TimToady: ...
19:57 jnthn std: $*
19:57 p6eval std 31183: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of $* variable; in Perl 6 please use ^^ and $$ at /tmp/Nw0NoTCfy1 line 1:␤------> [32m$*[33m⏏[31m<EOL>[0m␤Parse failed␤FAILED 00:01 107m␤»
19:57 jnthn std: my $* = 42;
19:57 p6eval std 31183: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of $* variable; in Perl 6 please use ^^ and $$ at /tmp/msn7f4ez6E line 1:␤------> [32mmy $*[33m⏏[31m = 42;[0m␤Parse failed␤FAILED 00:01 104m␤»
19:57 jnthn Aww!
19:57 masak std: ^^
19:57 p6eval std 31183: OUTPUT«Use of uninitialized value $bad in concatenation (.) or string at STD.pm line 67904.␤[31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix  instead at /tmp/GWZ6elm6cy line 1:␤------> [32m^^[33m⏏[31m<EOL>[0m␤Parse failed␤FAILED 00:01 105m␤»
19:57 masak TimToady: ^^
20:03 patrickas joined #perl6
20:03 Psyche^ joined #perl6
20:03 patrickas hello
20:04 moritz_ hi patrickas
20:04 moritz_ I'm currently working on MAIN sub included in rakudo
20:04 patrickas hi moritz_
20:04 patrickas \o/ maskak++
20:04 patrickas i mean moritz_++
20:04 moritz_ I got it far enough not to Null PMC Access
20:04 patrickas keyboard confusion :-)
20:04 moritz_ but it's not calling MAIN yet :(
20:05 patrickas Null PMC Access is good :-)
20:05 rokoteko are, let's say Int and Num somehow connected in the type system, or are they as separate as Int and Str?
20:05 patrickas can i help somehow ?
20:06 moritz_ rakudo: say Int ~~ Numeric
20:06 jnthn rokoteko: Well, they both do the Numeric role
20:06 p6eval rakudo acecb9: OUTPUT«1␤»
20:06 moritz_ rakudo: say Num ~~ Numeric
20:06 p6eval rakudo acecb9: OUTPUT«1␤»
20:06 moritz_ and both do the Real role too
20:06 rokoteko jnthn: nods. something like this I was waiting for as an answer. so roles can be user to extend the type-system?
20:07 moritz_ patrickas: I can push what I have to branch, maybe you have some ideas
20:08 moritz_ patrickas: pushed to branch MAIN
20:08 jnthn rokoteko: Well, so can classes in that sense. :-)
20:09 jnthn rokoteko: We just define a Numeric role and Int and Num both declare themselves as doing it.
20:09 jnthn rokoteko: But any class doing Numeric-y things can also declare itself as "does Numeric" too.
20:09 jnthn So it's a way to be extensible in that sense I guess, yes.
20:10 moritz_ I guess the change to src/Perl6/Actions.pm isn't doing what it should
20:12 rokoteko jnthn: ok, thanks for explanation.
20:12 patrickas moritz_ ok I'll take a look
20:15 moritz_ ah, I guess the :name() thing is wrong
20:15 moritz_ if only I spoke PAST fluently...
20:19 rokoteko how would I find out all the roles that f.ex. Num does?
20:19 moritz_ by reading the source code :-)
20:19 jnthn rakudo: say Num.^roles.perl
20:19 p6eval rakudo acecb9: OUTPUT«(Real[], )␤»
20:20 jnthn Though Real in turn does Numeric
20:20 jnthn ...and that trailing comma is freaky.
20:20 moritz_ but not wrong
20:20 smash__ joined #perl6
20:20 smash__ hello everyone
20:20 jnthn moritz_: No, but it may indicate something else is.
20:20 moritz_ hm
20:21 moritz_ jnthn: how do I call a sub in PAST? PAST::Op.new(:pasttype('call'), '&subname') ?
20:23 moritz_ or :name('&subname')?
20:25 jnthn :name('&subname')
20:25 pmichaud rakudo star repo now at http://github.com/rakudo/star
20:26 cdarroch joined #perl6
20:26 cdarroch joined #perl6
20:26 patrickas_ joined #perl6
20:26 pmichaud current committers are pmichaud, jnthn, moritz, masak, perlpilot
20:28 ethel joined #perl6
20:28 cognominal pmichaud,  what's the purpose of a new repo?
20:29 patrickas so I guess you guys are the santa clauses who'll bring christmas to us all ? :-)
20:29 pmichaud cognominal: distributions are separate from compiler releases
20:29 PerlJam cognominal: we need a place to put the dist
20:29 cognominal ok
20:29 pmichaud there can be many different distributions based on the rakudo perl compiler
20:29 cognominal patrickas++
20:29 * jnthn afk for a little bit
20:32 smash__ moritz_: ping
20:32 moritz_ smash__: pong
20:33 smash__ moritz_: need a sugestion where to add a test for RT#69232 so i can close the ticket.. any ideas ?
20:33 moritz_ smash__: looking...
20:33 pmichaud if someone wants to add rakudo/star.git to hugme, that'd be great.
20:33 pyrimidine joined #perl6
20:34 pmichaud for the star repository, I vote for a liberal commitbit policy
20:34 moritz_ pmichaud: I'd need the rakudo account API token for that
20:34 pyrimidine joined #perl6
20:34 pmichaud moritz_: won't it be the same as rakudo?  or do you not have that already?
20:34 pmichaud hugme show rakudo
20:34 hugme pmichaud: sorry, I don't know anything about 'rakudo'
20:34 pmichaud oh.
20:34 moritz_ smash__: it would be ideal to get t/spec/S32-io/IO-Socket-INET.t running on Rakudo master
20:34 moritz_ smash__: and add the test there
20:35 smash__ moritz_: i can have a look at it.. no promisses tho
20:35 pmichaud moritz_: /priv msg okay for api token?
20:35 moritz_ pmichaud: yes
20:36 dalek rakudo: 4df5081 | pmichaud++ | docs/release_guide.pod:
20:36 dalek rakudo: Tentative name for June release.
20:36 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4df5081d5758333e831cbf593b04e197182891f3
20:36 luben_k joined #perl6
20:38 moritz_ hugme: reload
20:39 hugme joined #perl6
20:39 moritz_ hugme: show star
20:39 hugme moritz_: the following people have power over 'star': T⁣imToady, [⁣particle], c⁣olomon, j⁣nthn, m⁣asak, m⁣berends, m⁣oritz_, p⁣michaud, s⁣orear. URL: http://github.com/rakudo/star/
20:39 xenoterracide joined #perl6
20:39 xenoterracide left #perl6
20:39 patrickas damnt it! Now I got it!
20:40 patrickas It's the "star" that announces christmas!
20:40 patrickas sorry that was the last pun
20:40 patrickas no more siliness from me
20:40 PerlJam patrickas: too bad.
20:43 pmichaud the "star" has lots of meanings
20:43 patrickas well I was aware of the whatever
20:43 patrickas and had guessed "the star of the show" meaning
20:44 patrickas but it's the first time that I make the christmas connection
20:46 cognominal I know that BooK's wife is expecting a kid in August. Would he be our savvior? In a few years, will he argue succesffuly with the priests in the temple about the Perl 6 scriptures.
20:47 smash__ moritz_: ahh, you tricked me ;)
20:48 PerlJam Perl 6 has no temple.
20:48 luben_k left #perl6
20:48 patrickas Perl 6 has no priests
20:49 moritz_ oh sure it has
20:49 moritz_ http://use.perl.org/~masak/journal/39445
20:49 smash__ i always played as priest !!
20:51 PerlJam pmichaud: are you paying attention to #ps?
20:53 patrickas Perl 6 has no priests .oO(just perlmonks)  but I guess I was wrong :-)
20:53 cognominal pmichaud, I must talk with mberends at the french workshop this Friday. about rakudo *, is there a page I can refer  to?
20:55 pmichaud cognominal: no, it's one of my many todos
20:55 pmichaud I might be able to write something up by then
20:55 pmichaud at least some talking points or bullet points would be good
20:56 * mberends sneezes
20:57 cognominal I don't care so much about the date but about the features.  I am seeing the docs/ROADMAP file , I suppose I can say the really important items will be solved.
20:57 mberends cognominal: do you mean talk about Rakudo * ?
20:58 cognominal By the way I am working on a presentation tool tentatively called  Silver Bullets designed to present slides with annotated code.
20:58 hirschnase joined #perl6
20:59 cognominal mberends: at fpw,  I will talk about rakudo *  :)    You will talk of that +  everything else   :)
20:59 skangas joined #perl6
21:05 whiteknight joined #perl6
21:07 jjore joined #perl6
21:10 justatheory joined #perl6
21:12 ggoebel joined #perl6
21:17 alester joined #perl6
21:19 LionMadeOfLions joined #perl6
21:22 azert0x joined #perl6
21:24 cognomore joined #perl6
21:46 Guest46866 left #perl6
21:49 cognominal In rakudo,  I suppose that without  the := operator.  I can't replace ["est"]  in  [ "ceci", ["est"], "une pipe" ];
21:49 cognominal I must walk the structure and build another...
21:51 colomon rakudo: my @a =  [ "ceci", ["est"], "une pipe" ]; say @a[1] = "is"; say @a.perl
21:51 p6eval rakudo 4df508: OUTPUT«␤Cannot assign to readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 11:/tmp/HxoEjj0qDL␤»
21:52 colomon rakudo: my @a =  ( "ceci", ["est"], "une pipe" ); say @a[1] = "is"; say @a.perl
21:52 p6eval rakudo 4df508: OUTPUT«est␤Cannot assign to readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 11:/tmp/9FcbrVp0dR␤»
21:52 colomon rakudo: my @a =  ( "ceci", ["est"], "une pipe" ); say @a[0] = "is"; say @a.perl
21:52 p6eval rakudo 4df508: OUTPUT«ceci␤Cannot assign to readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 11:/tmp/6uoFNOkGm5␤»
21:52 colomon rakudo: my @a =  ( "ceci", ["est"], "une pipe" ); @a[0] = "is"; say @a.perl
21:52 p6eval rakudo 4df508: OUTPUT«["is", ["est"], "une pipe"]␤»
21:52 colomon ah, typo
21:53 colomon rakudo: my @a =  ( "ceci", ["est"], "une pipe" ); @a[1] = "is"; say @a.perl
21:53 p6eval rakudo 4df508: OUTPUT«["ceci", "is", "une pipe"]␤»
21:53 * colomon probably doesn't understand the question, and is off to the pub anyway...
21:55 cognominal well I want to have variables that would bind to subbranches, so I want them to see the modification.
21:55 cognominal Anyway, I have a workarouand.
22:09 mikehh joined #perl6
22:10 REPLeffect joined #perl6
22:20 eternaleye joined #perl6
22:37 d4l3k_ joined #perl6
22:50 Wolfman2000 joined #perl6
22:54 dukeleto joined #perl6
22:55 snoopy joined #perl6
22:56 dukeleto howdy
22:57 dukeleto i have figured out how to load perl6.pbc
22:58 dukeleto http://gist.github.com/430762 <-- src/metamodel/ClassHOW.pir needed a :load
22:59 * jnthn wonders why it was missing in the first place
22:59 dukeleto jnthn: can you apply that?
22:59 jnthn Yeah, I'm just trying to remember if doing so will break something else.
23:00 dukeleto jnthn: i am runnign "make test" with it now
23:00 jnthn Needs make spectest really I guess
23:00 dukeleto jnthn: basic sanity tests pass, trying spectest now
23:01 dukeleto jnthn: that allows loading perl6.pbc without running it
23:01 jnthn *nod*
23:01 dukeleto jnthn: without :load, it is impossible to load perl6.pbc without running it
23:01 dukeleto jnthn: but yes, it could break something
23:01 jnthn dukeleto: Yeah. I'm hoping it's just a mistake rather than deliberately missing the :load.
23:02 jnthn I can't think of anything it'd break, so I'll go with mistake. :-)
23:02 dukeleto jnthn: most likely it is just a mistake, no one has tried to load the PBC without running it, most probably
23:03 dukeleto jnthn: but for PL/Perl6, i need to load perl6.pbc in the Parrot interp that will compile stored procedures written in Perl 6
23:03 jnthn dukeleto: If the spectest comes back clean (doing a run now) I'll apply it.
23:03 dukeleto jnthn: awesome!
23:03 jnthn rakudo: say [mod] 100, 99, 88, 77, 66, 55, 44
23:04 p6eval rakudo 4df508: OUTPUT«1␤»
23:04 dukeleto jnthn: i am seeing a failure in S02-literals/listquote-whitespace.rakudo, is that expected ?
23:04 jnthn No, but I wonder if it's a failed PARROT_REVISION bump.
23:05 jnthn pmichaud++ fixed something in nqp-rx in that area recently.
23:05 dukeleto jnthn: i am not using --gen-parrot, that is why. livin' on the bleeding edge for convenience, but my spectest is probably not valid
23:05 dukeleto jnthn: since you are running one, I will kill mine
23:06 jnthn oh no, it was a Rakudo patch to fix that one
23:06 jnthn Hmm
23:06 jnthn Anyway, I doubt it's anything related to this patch.
23:07 * dukeleto hopes for the best
23:09 eternaleye S06-routine-modifiers/proxy.t seems somewhat bitrotted; it uses the syntax 'new Proxy'
23:10 jnthn Eww.
23:10 jnthn Yes, decidedly bitrotten
23:10 jnthn Or just wrong since it's inception but never run. :-)
23:12 * jnthn tests a cognominal++ patch too
23:16 arnsholt joined #perl6
23:16 eternaleye I was looking at it because I was curious as to how one defined a scalar container oneself to be used with my $foo is MyContainer. (I had this idea of my Int $foo is ( Scalar but Logged[$filehandle] ); )
23:27 ciphertext joined #perl6
23:31 eternaleye joined #perl6
23:32 skids joined #perl6
23:32 Util joined #perl6
23:34 cotto_work joined #perl6
23:34 Util Within a sub, how can you tell if a optional parameter was passed, if undefined values are valid arguments for that parameter?
23:35 jnthn Util: Get the capture, and check the number of elements in it.
23:35 jnthn Well, the list part of it.
23:35 * sorear returns
23:35 phenny sorear: 14:28Z <pmichaud> tell sorear after thinking about it this morning, I realized that double-indirection for variables/binding isn't the answer either
23:35 phenny sorear: 18:21Z <pmichaud> tell sorear disregard my previous message... we do need double-indirection, it just looks very different from what I was originally expecting.
23:35 jnthn yayitssorear
23:36 jnthn sub foo(|$c, $x, $y?) { if +@($c) == 2 { ... } }
23:36 jnthn Or some such.
23:36 Util jnthn: And if there are multiple optional parameters?
23:37 jnthn Util: If they're positional, then later ones can't be passed positionally without passing earlier ones.
23:39 Util jnthn: true; I meant optional named params in the last question.
23:41 jnthn Util: if %($c).exists('the_name') { ... }
23:41 Util jnthn: Doh!  Thank you!
23:42 jnthn Util: though another trick is to have a "clever" default value that sets a flag if it is triggered.
23:42 eternaleye std: role Logged[$fh] { method FETCH { say $fh, "Accessed at { localtime }, value: { (callsame).perl }"; nextsame }; method STORE { say $fh, "New value stored at { localtime }, value: { $^val.perl }"; nextsame }; }; my Inf $foo is ( Scalar but Logged[$*IN] ); $foo = 3; say $foo; $foo = 5; $foo = "UhOh";
23:42 p6eval std 31183: OUTPUT«[31m===[0mSORRY![31m===[0m␤Placeholder variable $^val may not be used here because the surrounding block takes no signature at /tmp/pEwVec6mlm line 1:␤------> [32m stored at { localtime }, value: { $^val[33m⏏[31m.perl }"; nextsame }; }; my Inf $foo is [0m␤In my
23:42 p6eval ..declaration,…
23:42 cxreg why the separate repo for star?
23:43 eternaleye std: role Logged[$fh] { method FETCH { say $fh, "Accessed at { localtime }, value: { (callsame).perl }"; nextsame }; method STORE( $val ) { say $fh, "New value stored at { localtime }, value: { $val.perl }"; nextsame }; }; my Inf $foo is ( Scalar but Logged[$*IN] ); $foo = 3; say $foo; $foo = 5; $foo = "UhOh";
23:43 p6eval std 31183: OUTPUT«[31m===[0mSORRY![31m===[0m␤In my declaration, typename 'Inf' must be predeclared (or marked as declarative with :: prefix) at /tmp/bwL3rbQiBL line 1:␤------> [32me: { $val.perl }"; nextsame }; }; my Inf[33m⏏[31m $foo is ( Scalar but Logged[$*IN] ); $f[0m␤Malformed my at
23:43 p6eval ../tm…
23:43 Util jnthn: would $y.exists work?
23:43 jnthn cxreg: It's a distribution release rather than just a compiler one, so we need to collect various things together.
23:43 jnthn Util: No
23:43 eternaleye std: role Logged[$fh] { method FETCH { say $fh, "Accessed at { localtime }, value: { (callsame).perl }"; nextsame }; method STORE( $val ) { say $fh, "New value stored at { localtime }, value: { $val.perl }"; nextsame }; }; my Int $foo is ( Scalar but Logged[$*IN] ); $foo = 3; say $foo; $foo = 5; $foo = "UhOh";
23:43 p6eval std 31183: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/_XZNdUP5Ql line 1:␤------> [32m.perl }"; nextsame }; }; my Int $foo is [33m⏏[31m( Scalar but Logged[$*IN] ); $foo = 3; s[0m␤    expecting name␤Parse failed␤FAILED 00:01 108m␤»
23:44 eternaleye std: role Logged[$fh] { method FETCH { say $fh, "Accessed at { localtime }, value: { (callsame).perl }"; nextsame }; method STORE( $val ) { say $fh, "New value stored at { localtime }, value: { $val.perl }"; nextsame }; }; my Int $foo is Scalar but Logged[$*IN]; $foo = 3; say $foo; $foo = 5; $foo = "UhOh";
23:44 p6eval std 31183: OUTPUT«ok 00:01 108m␤»
23:44 eternaleye rakudo: role Logged[$fh] { method FETCH { say $fh, "Accessed at { localtime }, value: { (callsame).perl }"; nextsame }; method STORE( $val ) { say $fh, "New value stored at { localtime }, value: { $val.perl }"; nextsame }; }; my Int $foo is Scalar but Logged[$*IN]; $foo = 3; say $foo; $foo = 5; $foo = "UhOh";
23:44 p6eval rakudo 4df508: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Mu $child, Role $r)␤:(Code $block, Any $arg?, Any :export($export)!)␤:(Mu $child, Mu $parent)␤␤  in main program body at line 11:/tmp/CBdR5PS1Zb␤»
23:44 jnthn eternaleye: I'm not entirely convinced that'll work. (more)
23:44 jnthn Traits should be applied once, and at compile time, if they're really done correctly.
23:45 jnthn Not per "instance" of the variable.
23:45 jnthn You could make it work perhaps with a filename rather than a file handle.
23:45 jnthn Rakudo doesn't know how to handle it yet still, though.
23:45 eternaleye Yeah, I was thinking more of using it as a quick debugging tool
23:45 tedv joined #perl6
23:45 eternaleye Rather than something to use in production
23:46 jnthn Also, calling callsame and nextsame will call the next candidate twice.
23:46 jnthn Not just once and keep the return value.;
23:46 jnthn But again, easily enough default with.
23:46 eternaleye Ooh, forgot the my $foo = callsame idiom.
23:47 jnthn *nod*
23:53 szabgabx joined #perl6
23:57 Intensity joined #perl6
23:57 [Coke] p3
23:57 dukeleto jnthn: how is that spectest looking?
23:57 [Coke] *argh*
23:57 jnthn dukeleto: dobre :-)
23:57 jnthn dukeleto: It just finished, I just pushed.
23:58 dukeleto jnthn: awesome!
23:59 cxreg i'm not crazy; laziness is incomplete or entirely unsupported, right?

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

Perl 6 | Reference Documentation | Rakudo