»ö« | Temporary spam alert: Please register your nick to speak in chan or /msg an op for +v | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by sjohnson on 22 January 2010.
00:00 simcop2387 left, simcop2387 joined 00:14 jferrero joined 00:26 ihrd joined, rgrau` left 00:27 ihrd left
colomon japhb: no naming conventions for modules yet that I'm aware of. 00:29
00:34 lumi left, lumi joined
japhb I was thinking either Algorithm::Name or Algorithm::Problem::Name, so in this case: Algorithm::MiniSat, Algorithm::SAT::MiniSat, or Algorithm::Satisfiability::MiniSAT. The latter construction would work well if there was a parallel space for specialty data structures, such as Structure::BalancedTree::RedBlack or Structure::BVH::Octree. 00:35
00:36 payload joined 00:39 pmurias left 00:41 ericholscher joined, ericholscher left 01:01 meppl joined, lestrrat is now known as lest_away 01:03 mssm left 01:05 lumi left 01:07 ashizawa joined, lumi joined 01:16 justatheory left 01:23 bpa joined
japhb phenny, tell pmichaud Now that we're both back ... we had discussed a couple months ago moving gitorious.org/parrot-plumage/parrot...b/Util.nqp into NQP-rx, possibly with a name change to NQP::Util or somesuch, but that you wanted to think about the details. What are your current thoughts on this? 01:25
phenny japhb: I'll pass that on when pmichaud is around.
01:29 niros left 01:31 lest_away is now known as lestrrat 01:34 drbean joined 01:36 jferrero left 01:47 araujo left 01:51 Chillance left 01:54 TiMBuS joined, bpa left 01:55 popo joined 01:56 popo left 02:01 lumi left, lumi joined 02:06 justatheory joined 02:08 orafu left 02:09 orafu joined 02:12 hitsubunnu joined 02:13 hitsubunnu left 02:14 am0c joined 02:15 am0c left 02:16 FCO left 02:36 orafu left, orafu joined 02:37 issacclee joined, meppl left 02:39 issacclee left
japhb phenny, tell masak What is the current status of proto's installed-modules branch? 03:27
phenny japhb: I'll pass that on when masak is around.
japhb carlins?
What is Carlin Bingham's nick here? He appears to be the most recent proto committer .... 03:29
03:31 agentzh joined 03:35 araujo joined 03:38 cotto left
colomon japhb: I think just carlin. 03:39
I don't think installed-modules is ready for prime-time yet.
japhb *sigh* 03:40
colomon yeah.
japhb I just want to see it merged, so I can reasonably import it into Plumage.
colomon I want to see it working, because I think it would be a huge help getting ng moved over to master smoothly. 03:41
japhb phenny, tell carlin What is the current status of proto's installed-modules branch? You appear to be the only committer of late ...
phenny japhb: I'll pass that on when carlin is around.
japhb colomon, nodnod. Speaking of which, what's the ng status?
03:52 cotto joined
colomon japhb: goal is to switch ng to master this Thursday, with a target of passing about 75% as many tests. 03:58
my gut feeling is it takes another week to reach that. 03:59
things have gotten fouled up a bit because we keep refining how to handle lazy lists.
(the list concept underwent significant revision this week in the spec as a result.)
still, I think it will be exciting to watch all the check-ins to the ng branch this week -- I expect a lot of progress very quickly. 04:08
afk (off to bed) 04:09
japhb colomon, thanks for the info 04:17
04:25 ooops joined, ooops left 04:53 redicaps joined 04:54 nihiliad left 05:24 diakopter sets mode: -R 05:28 diakopter sets mode: +oo japhb Tene 05:30 d4l3k_ left, dalek joined 05:31 diakopter sets mode: +v dalek
diakopter every time I port Sprixel back and forth from/to JS to/from C#, it improves. "I am not making this up." 05:42
06:14 agentzh left 06:28 pnate left 06:30 pnate joined 06:40 redicaps left, redicaps joined 06:56 gfx joined 06:57 pnate2 joined 07:07 Lorn left 07:09 pnate left 07:10 pnate joined 07:14 kaare joined, justatheory left 07:15 pnate2 left, kaare is now known as Guest34084 07:21 Lorn joined 07:30 jferrero joined 07:33 Su-Shee joined
Su-Shee good morning 07:33
07:34 Baggiokwok joined 07:36 diakopter sets mode: +o Su-Shee
diakopter does anyone remember that tweet about the tweet that got erased from the web (including all caches)? I can't find it anywhere. 07:45
07:48 pnate2 joined
diakopter reminds me of that sci-fi book about a book that causes its readers to forget they read it. funny, I'd forgotten all about it. 07:49
07:58 he_ joined 08:00 jonasbn joined, pnate left 08:05 k23z__ joined
Su-Shee reminds me of the micro phage in the shockwave rider. ;) 08:08
diakopter Su-Shee: exactly! 08:11
08:11 iblechbot joined
Su-Shee which is one of the best scifi I've ever read. 08:12
08:16 pnate joined 08:17 mssm joined 08:20 meppl joined 08:21 gfx left 08:23 Baggiokwok left 08:29 pnate2 left
diakopter [More OT] 'Avatar = awesome. I wish the whole world was in 3D.' 08:37
08:37 cotto left 08:40 cognominal joined 08:41 blackbart joined, blackbart left 08:42 k23z__ left 08:48 cotto joined 08:52 Baggiokwok joined, TiMBuS left 08:53 kloeri__ left 09:00 cognominal left, cognominal joined, payload left 09:01 payload joined 09:02 pnate2 joined 09:05 pnate left 09:09 dakkar joined 09:16 cottoo joined 09:17 cotto left 09:27 ejs joined 09:47 xomas_ joined 10:09 redicaps left 10:11 xomas_ is now known as xomas 10:34 drbean left 10:39 Baggiokwok left 10:43 payload left
colomon diakopter: I got glasses for the first time two weeks ago. the effect on my vision is almost exactly like wearing 3D glasses to a movie. I had completely failed to notice that I wasn't seeing depth properly until I started seeing it again... 10:56
mathw weird 11:07
But I guess it was a bit like when my eyes started to go and I didn't realise that I was *supposed* to be able to see the writing on the blackboard 11:08
colomon I do feel like I perceive depth with the glasses still. 11:09
but when I put them on, everything becomes more delicate and I really see in 3D. 11:10
s/with/without/
it is weird, but cool
moritz_ good localtime 11:11
colomon morning! 11:12
11:12 lumi left, lumi joined
mathw colomon: at least there's an improvement to make it worth the effort :) 11:16
hi moritz_ 11:17
colomon mathw: definitely
moritz_ hi mathw - how are things?
mathw I'm bored out of my skull 11:27
waiting for a very large program to compile
and hoping I won't have the urge to throw the computer out of the window when I run it again
(segmentation faults are not a good way to start the week)
11:34 lestrrat is now known as lest_away 11:39 k23z__ joined 11:43 drbean joined 12:04 payload joined 12:05 k23z__ left 12:12 SmokeMachine joined 12:33 ashizawa left 12:34 Baggiokwok joined 12:35 bluescreen joined 12:48 k23z__ joined 12:57 lest_away is now known as lestrrat 13:00 patspam left 13:08 simcop2387 left 13:14 ruoso joined 13:19 lumi left 13:20 lumi joined 13:23 mariuz joined 13:27 JohnDoe365 joined 13:29 iblechbot left 13:33 simcop2387 joined 13:42 bluescreen left, bluescreen joined 13:43 payload left 13:44 payload joined 13:59 JohnDoe365 left 14:08 mariuz left
colomon moritz_: I'm thinking some of us should conspire to try to finish proto's useful branch in the next couple of days. 14:09
moritz_ colomon: some of us should, but currently I'm in a very unpleasant mixture of being either stressed out or offline (or both, sometimes) 14:10
colomon I'm sorry to here that. If there's anything we can do to help with the stress...
*hear 14:11
(gack, my spelling is awful today for some reason)
moritz_ nope
colomon I'm actually going to be offline most of the rest of the morning and at least part of the afternoon myself. Just hoping to get wheels moving... 14:13
14:17 Baggiokwok left 14:34 LaVolta left 14:47 drbean left 14:48 rgrau left
colomon okay, I pulled the latest installed-modules, and now I'm taking the boy to the library for storytime. 14:49
14:49 colomon left 14:51 ash_ joined, jonasbn left 14:54 xinming_ is now known as xinming 14:59 Guest34084 left 15:01 PacoLinux joined
ash_ in S07, it referrer to roles called like List::PushBack, does that seem odd to anyone else? I am referring to naming it List, since lists are generally assumed to be immutable why would a list be able to push back? 15:04
15:04 iblechbot joined
moritz_ seems odd, yes 15:05
15:08 jaldhar left 15:09 payload left, payload joined 15:11 lumi left
ash_ there is a List::Unshift too, so just 2 references to it, just thought i'd comment on that 15:11
15:11 lumi joined
mathw yes it does seem odd 15:16
ash_ ng: @*INC = 1, 2; 15:22
p6eval ng 7daa82: Cannot assign to readonly value␤current instr.: '&infix:<=>' pc 14470 (src/builtins/Junction.pir:113)␤
ash_ are globals not implemented in ng?
moritz_ ng: @*:INC.push: 3
p6eval ng 7daa82: Confused at line 1, near "@*:INC.pus"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤
moritz_ ng: @*INC.push: 3
p6eval ng 7daa82: Method 'push' not found for invocant of class 'Undef'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
moritz_ could be 15:23
s/globals/contextuals/
ash_ S02: $*foo dynamically overridable global variable i thought the * twigil was 'global' ? 15:24
moritz_ thought we had no globals :-)
ash_ ah, i was worried something had changed in the spec and i had not even realized it 15:26
15:28 payload left 15:34 mberends joined
ash_ does anyone know off hand of a set of tests for twigils? 15:35
or is there a way i can verify that the * twigil is working properly?
pmichaud good morning, #perl 15:38
phenny pmichaud: 01:25Z <japhb> tell pmichaud Now that we're both back ... we had discussed a couple months ago moving gitorious.org/parrot-plumage/parrot...b/Util.nqp into NQP-rx, possibly with a name change to NQP::Util or somesuch, but that you wanted to think about the details. What are your current thoughts on this?
pmichaud er, #perl6
ash_ good morning pmichaud 15:40
moritz_ oh hai 15:42
15:44 payload joined, saschi left, Psyche^ joined 15:45 ejs left
jnthn morning, pmichaud 15:48
15:48 Patterner left, Psyche^ is now known as Patterner 15:51 ash_ left
mathw hello! 15:51
pmichaud I'm still searching for the magic constellation of relationships between iterators, arrays, and lists :-| 15:54
15:54 alester joined 15:55 jaldhar joined 15:56 jaldhar left, jaldhar joined 15:57 lumi left, lumi joined 15:58 jferrero left 16:00 jferrero joined 16:01 ejs joined
pmichaud how does an iterator signal "no more elements?" 16:10
diakopter return instead of yield? oh wait, that's IEnumerable
jnthn pmichaud: Nil last I checked... 16:12
pmichaud jnthn: how does one check to see if an iterator returned Nil, then ?
jnthn pmichaud: But it keeps changing.
pmichaud: Nil.ACCEPTS($ret_val) - but that's kinda uncheap...
pmichaud Nil isn't a type
jnthn So?
pmichaud so, what you wrote is the same as ().ACCEPTS($ret_val)
jnthn Nor is 42 but I can smart-match against that. :-)
What type of thingy is Nil?
I guessed an empty parcel.
pmichaud Nil is an empty Parcel
jnthn OK, so can an empty Parcel smart-match against another? 16:13
Oh wait...
...calling a method on a parcel forces it into item context.
Hm
pmichaud using a Parcel in item context converts it into a Seq
and I suspect an empty Seq should match like an empty array
jnthn Yeah 16:14
I mean, detecting if you have an empty parcel is possible by checking (a) is it a Parcel and (b) is it empty, but I'm not sure how that looks in Perl 6, since they tend to evaporate when touched.
16:15 nihiliad joined
pmichaud I have been thinking that perhaps method calls aren't sufficient to force a Parcel into item context 16:16
16:16 KyleHa joined
pmichaud i.e., that we could invoke methods on a Parcel without forcing it to be an item. That would be very helpful now -- especially for dealing with .Capture 16:17
(some methods would force the Parcel to become a Seq, but not all)
jnthn Use the Junction rule
"If the method ain't defined on Parcel itself, we make it a Seq"
(the junction one being "If the method ain't defined on Junction, we auto-thread" 16:18
pmichaud could do that, too. I suspect there aren't that many methods where it matters.
jnthn Right.
Could work. 16:19
PerlJam good morning #perl6
jnthn Let me know if you needs a dispatcher tweak.
pmichaud well, it could work, yes, but even at that Nil.ACCEPTS($ret_val) is really ugly/slow.
jnthn True. 16:20
pmichaud I think I would almost prefer an exception-based model in that case
jnthn I've preferred to avoid using Nil in-band to indicate this all along.
16:21 partisan left
pmichaud well, on thinking about it further, we probably have to be able to check for Nil anyway 16:22
because of the possibility of: sub foo(*args) { return; } 16:23
jnthn Yes, that is true.
isnil dynop. ;-)
pmichaud oh, could just have a .isnil method on Parcel 16:24
jnthn Well, that's cleaner, yes.
16:25 cdarroch joined
PerlJam you want to use Nil to signify that an iterator is "done"? 16:25
pmichaud PerlJam: I want to know (1) how an iterator signifies that it's done, and (2) how to detect when something returns Nil 16:26
PerlJam okay. Because I don't think that "returning Nil" can be the answer to (1)
pmichaud I'm fine with that -- thus my original question 16:27
16:08 <pmichaud> how does an iterator signal "no more elements?"
moritz_ TimToady and ruoso had some extensive dicussions about that
pmichaud moritz_: recently? 16:28
moritz_ but I don't remeber their outcome
pmichaud as in, within the last 3 days?
moritz_ pmichaud: no, more like a year ago
pmichaud moritz_: okay. The array/list/iterator spec was significantly redone over the weekend.
moritz_ and we didn't have a Nil back then 16:29
pmichaud hmmm. in general, "exception" means "return a failure" in p6
so perhaps we need a StopIteration role or something 16:31
or maybe IterationFailure 16:33
actually, thinking about it more, it's Seq (or the notion of immutable array/list) that seems to give me the most heartburn 16:38
16:40 payload left
pmichaud for example, if I have 16:40
16:40 payload joined
pmichaud my $b = 20; my $a = (1..5, $b); $b = 21; say $a.perl; # what gets output? 16:40
16:41 gabiruh joined
diakopter the C# compiler generates a state machine class (IEnumerable<EnumeratedType>), whose MoveNext method returns true until it is out of items; that generated MoveNext method wraps the user's generator code. 16:43
The generated class contains a IEnumerator<EnumeratedType> field that stores the last enumerated item, so when MoveNext returns true, the call puts the EnumeratedType in some out parameter somewhere, and it's returned 16:44
pmichaud diakopter: so, it basically has two parts -- "yes, I got another element", and "here is the element I got" 16:45
diakopter yes
pmichaud colomon++ was suggesting something along those lines
that could be made to work 16:47
16:47 SeaSalt45654322 joined
pmichaud I have to think a bit more about list/seq... talking a walk 16:48
diakopter walk your talk, too! :)
pmichaud *taking 16:49
:) 16:50
SeaSalt45654322 Hi all..can anyone recommend a good IDE to get started with perl 6? 16:51
moritz_ SeaSalt45654322: do you happen to like vim?
if yes: there's a Perl 6 plugin for vim. If not: padre.perlide.org/ 16:52
16:55 Salada345 joined
Salada345 moritz: thanks. I've never used it outside the linux shell...the ideal IDE for me would have a debugging feature that shows me my variable values after i run my scripts 16:56
moritz_ Salada345: that's an ability that a debugger has to provide, an IDE can only integrate that nicely with the editor 16:57
Salada345: and we don't have such a debugger yet :/
Salada345 mortiz_:gotcha...is that just for perl 6 or is it also the case for perl 5? 16:58
moritz_ Salada345: perl 5 has better debugger support 16:59
diakopter it's especially great on Windows using ActivePerl's Perl Dev Kit, whose debugger listener is compatible with both ActivePerl and Strawberry Perl.
Salada345 moritz_: Thank you for your help! I'll keep myself updated on VIM 17:00
diakopter , which facilitates step-through, breakpoints (conditional or not), step-out, etc
moritz_ goes offline, see you tomorrow 17:01
diakopter visually, I mean
moritz_: g'night
Salada345 diakopter: nice, that is exactly what i was looking for. 17:02
diakopter Perl Dev Kit costs money, though...
oh, I didn't realize they had it for all those other platforms too (Mac, Linux, Solaris, AIXppc) 17:03
Salada345 do you know any others that are comparable? but free? 17:04
diakopter yes 17:05
www.epic-ide.org
if you're accustomed to Eclipse
17:07 clintongormley joined 17:08 zloyrusskiy joined
diakopter a quick google search turns up others: perl-express.com, also ActiveState's Komodo Edit 17:08
commute& 17:10
17:11 payload left 17:12 saschi joined, SeaSalt45654322 left 17:16 Salada345 left 17:17 jaldhar left
pmichaud lunch 17:32
17:33 ejs left 17:36 FCO joined 17:50 supernovus joined 17:53 ejs joined 17:55 SmokeMachine left 17:56 stephenlb joined 18:01 lypanov joined, jettero joined
jettero what's going on with xs for perl6 so far? I was googling for things, but I keep finding really old stuff 18:02
seems like a hard problem since there's multiple implementations and things 18:03
supernovus when defining multi subs with different parameters, shouldn't (Num $a, Num $b) outweigh (Object $a, Object $b) ?? 18:10
18:10 dakkar left
TimToady supernovus: I would think so 18:11
jnthn Should do.
PerlJam jettero: there is no XS for perl6. See? Easy peasy :)
18:12 rgrau joined
TimToady XS is one of the p5 things that p6 thinks should get broken. so only a co-interpreter running perl5 will be able to support XS directly 18:12
unless someone resurrects ponie
supernovus Hmm, in rakudo trunk I have: multi sub infix:<should-be> (Num $a, Num $b) { ... } and multi sub infix:<should-be> (Object $a, Object $b) { ... } and if I do a "1 should-be 2" it dispatches to the Object one. If I comment out the Object one, it goes to the Num one. 18:13
TimToady smop might eventually make it easy to meld run-loops for p5 and p6
18:13 zloyrusskiy left, ShaneC1 joined
TimToady what happens if you change Object to Any? 18:14
18:14 meppel joined
TimToady (Object is going away in favor of Mu, btw) 18:15
18:15 ejs left
TimToady Any is more correct in any case, unless you want to allow junctions as arguments 18:15
18:19 ejs joined
diakopter Mu Cool Any -> Yo Am UNCOL 18:22
18:25 stephenlb left, simcop2387 left, jjore left, stepnem left, ingy left, Khisanth left, c9s__ left, _ilbot2 left, ssm left, cognominal left, hercynium left, tomaw__ left, eternaleye left, yahooooo left, nadim_ left, BinGOs left, kraih_sri left, lisppaste3 left, pmichaud left, pugs_svn left, sjohnson left, spinclad left, zorgnax left, awwaiid left, sunnavy left, gbacon left, sbp left
diakopter »ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
meppl left
supernovus Well, changing to Any as well as fixing a typo (duh!) fixed the dispatching problem :-) 18:26
TimToady rather than making Parcel respond to some methods and not to others, we might place parcel responses on the macro/nonmacro boundary with .WHAT etc 18:28
which means maybe there's .NIL and maybe .NOTNIL macros
maybe
(and I hope ng isn't still trying to treate .WHAT et al. as real method calls...) 18:29
*treat in modern english 18:30
PerlJam TimToady: and how does an Iterator signify that there are no more items to iterate? 18:31
(I would think that it would return Mu() or the appropriate "undef" thing)
TimToady that would still be Nil, as per current spec
Mu is not the absence of an object 18:32
Nil is
18:32 pmichaud joined, hercynium joined, tomaw__ joined, eternaleye joined, yahooooo joined, nadim_ joined, BinGOs joined, ssm joined, kraih_sri joined, lisppaste3 joined, awwaiid joined, sbp joined, zorgnax joined, spinclad joined, sjohnson joined, irc.freenode.net sets mode: +ovoo pmichaud lisppaste3 spinclad sjohnson, pugs_svn joined, gbacon joined, sunnavy joined, irc.freenode.net sets mode: +vo pugs_svn gbacon, ejs left
PerlJam When reading from a socket and there's nothing to read, do we get a Mu-thingy or a Nil ? the iterator isn't "done" because the socket is still open and available, but there's just no data. 18:33
18:33 Khisanth joined, stephenlb joined, simcop2387 joined, stepnem joined, jjore joined, ingy joined, _ilbot2 joined, c9s__ joined, irc.freenode.net sets mode: +ov Khisanth _ilbot2
PerlJam (assume a non-blocking read obviously) 18:33
pmichaud PerlJam: blocking read? 18:34
oh, non-blocking
I would expect we'd get some sort of failure object
TimToady sockets are a bit biased towards the exception model
pmichaud TimToady: did you see my earlier question asking "how does an iterator signal that it's done?" 18:35
TimToady did you see my response above?
pmichaud er, "how does it signal 'no more elements'?"
no
maybe it occurred during a netsplit or something...?
TimToady hmm 18:36
tkr PerlJam: .. Mu thingy? Is that like Maybe monad in haskell?
pmichaud goes to check irclog
TimToady missing there too
PerlJam pmichaud: ...
<@PerlJam> TimToady: and how does an Iterator signify that there are no more items to iterate? 18:37
<@TimToady> that would still be Nil, as per current spec
pmichaud If Nil, then how does one check that an iterator returned Nil ?
(or any other function, for that matter)
TimToady by current spec, iterators never return Nil
except to indicate the end 18:38
pmichaud right
so, how do we check that we reached the end?
TimToady @TimToady> rather than making Parcel respond to some methods and not to others, we might place parcel responses on the macro/nonmacro boundary with .WHAT etc
10:28 <@TimToady> which means maybe there's .NIL and maybe .NOTNIL macros
10:28 <@TimToady> maybe
tkr why cant iterators return Maybe, haskell style?
TimToady 10:29 <@TimToady> (and I hope ng isn't still trying to treate .WHAT et al. as real method calls...)
10:30 <@TimToady> *treat in modern english
tkr: all non-native types are Maybe in Perl 6 18:39
but we want to be able to return undefined values
up to and including Mu 18:40
tkr and what is the Just in perl 6?
TimToady subset types
tkr TimToady: return !!0 .. aka. false.
TimToady I don't follow you there. 18:41
tkr you can return undefined, defined, and defined but false. right? 18:42
I think Im too perl5.
TimToady well, !!0 would be true
sbp .NOTNOTNIL? 18:43
TimToady pmichaud: I could perhaps be argued into a NIL value that is always guaranteed to return Nil no matter how many times you try
esp if it goes with a .NIL macro
oh wait
that makes NIL() hard 18:44
well, makes NIL require parens, at least
pmichaud right now we have Nil
tkr TimToady: I dont follow you anymore. !!0 is false as against "0 but true"
18:45 cognominal joined
TimToady nevermind, not enough caffeine 18:45
!!0 is Bool::False, ye
yes even
truth is determined by whatever .Bool returns, which is what 'but' overrides 18:46
well, it'd have to be 'but True', since there's no lower-case truth in Perl anymore :)
pmichaud there is so :) 18:47
tkr so the iterator could return a Maybe, with Just or Nothing.
.. or the Haskell way. where is mauke?
18:49 ejs joined, colomon joined
TimToady or possibly we should divorce Nil from the concept of () a bit 18:52
such that return () returns an 'epsilon' that can be removed, while return Nil terminates by promising to always return ()
PerlJam interesting 18:53
18:53 _Jedai_ left
TimToady possibly Nil is the *undefined* Parcel 18:54
PerlJam then what's Parcel() ?
or are they just synonyms
tkr !!0 != () ... thats a fact.
18:55 _Jedai_ joined
tkr no. 0 = () # synonym 18:55
I think they did this silly thing with == vs === in php. which is similarly funny. 18:56
PerlJam tkr: but Perl 6's == vs === isn't funny? :)
TimToady ==== would be funny 18:57
<=> is funny if you've seen Star Wars
PerlJam TimToady: I guess that's why we don't have :::: instead of <cut>
tkr what wait. what does "===" do? :) 18:58
TimToady what it's supposed to do, we hope
tkr if (0 === !!0 and !!0 === ()) { # ? 18:59
pmichaud 0 === !!0 # false
TimToady that can't possibly be true, since === will never be true for two different types 19:00
pmichaud === checks type and value equivalence, iirc
diakopter my sardonicism detector must be broken
Su-Shee you guys make me afraid sometimes.
PerlJam Su-Shee: afraid of what?
pmichaud TimToady: the case I'm playing with atm is ($a, $b, 1..10, $c).map( { ... } ) 19:01
what's the invocant of .map ?
Su-Shee PerlJam: overall anxiety. deep german angst what you might invent out of a combination of =?!::= or something :)
TimToady pmichaud: looks like a Seq to me, currently
pmichaud TimToady: yes, but I don't want it to be a Seq, because I don't want to be preserving those 1..10 values as I process them 19:02
[particle]1 ==== is spacetime equivalence.
KyleHa =?!::= is the Su-Shee incremental anxiety operator.
19:02 [particle]1 is now known as [particle]
pmichaud I want it to be a List of some sort, where I can get the flattening characteristics of a list but without the "I remember all of the positionals" of Array or Seq 19:02
19:02 ejs left
Su-Shee it'll be like vim .. every typo will show a useful result. ;) 19:02
TimToady pmichaud: gotcha
19:03 Chillance joined
pmichaud so far I'm seeing a variety of cases... let me see if I can enumerate them (will do it in another window then paste results) 19:03
19:03 hercynium left
Su-Shee [particle]: how about ~~~~~ for biological/dna equivalent? can't think too soon about biocomputing. ;) 19:04
[particle] with perl 6, you can discover new species in one line of code! 19:05
Su-Shee well we have phasers, Mu and eigenstates - the bio realm is a little underrepresented ;) 19:07
tkr how woud you build as subroutine zipWith ($sub, \@x, \@y) in perl 6 without using the << = >> stuff . or how it was.
without the hyperoperators. from the basic building blocks? 19:08
19:08 ash_ joined, ash_ left
tkr I was bit surprised that I couldnt do it in perl5 without a loop. 19:08
is prober currying implemented? I could try some perl6 out on my free time. :) 19:09
19:12 ash_ joined
pmichaud TimToady: some of what I have so far: gist.github.com/286129 19:13
oh, and there's another case 19:15
(writing)
diakopter $r = 1..4, @a;
TimToady Useless use of @a in void context 19:16
diakopter o
pmichaud gist.github.com/286131 # updated with additional case 19:18
19:19 justatheory joined
ash_ is S07's reference to List::PushBack and List::Unshift correct? Should those be Array:: instead of List::? 19:20
pmichaud ash_: that's what we're trying to work out now, I think :)
ash_ ah, okay, cool 19:21
pmichaud and S07 has been conjectural anyway, as opposed to being blessed (in the sense that implementations have agreed to it)
ash_ hence the [DRAFT] mark on it still? 19:22
as apposed to say S06 that doesn't have [DRAFT] anymore
TimToady I don't think we can simply say that iterators with pushback/workahead are just Arrays
Arrays don't directly provide the iterator interface 19:23
pmichaud I've been wondering if they should
tkr might I ask why on earth "() === 0" instead of "() == !!0" ? 19:24
ash_ but, calling them a List seemed confusing to me, since List's are immutable...
pmichaud ash_: I think we have to kind of "forget what we thought was true" and restart from first principles
tkr: () === 0 # false
tkr pmichaud: so should be !!0 == () 19:25
pmichaud tkr: at the moment, that would raise a "use of undefined value" exception
because () is Mu which is undefined
tkr undef != !!0 19:26
TimToady () isn't Mu
pmichaud () is Nil
which becomes Mu in item context, yes?
TimToady yes 19:27
pmichaud and == imposes (numeric) item context on its values
tkr ahh. so () could me a "Maybe" with values of !!0 or undef
s/me a/be a/
pmichaud I should've said "because 'item ()' is Mu which is undefined", then
tkr do you use !!0 = 19:28
?
TimToady why do you keep talking about !!0 ?
tkr it's a very good false.
pmichaud tkr: !!0 is just False
ng: say (!!0).WHAT 19:29
p6eval ng 7daa82: Int()␤
pmichaud oops
that's a bug :-|
should've been Bool
ash_ rakudo: say (!!0).WHAT
p6eval rakudo 1d4928: Bool()␤
tkr pmichaud: it should me Maybe -> Nothing -> False 19:31
TimToady .map wants to get some kind of object and tell it "you need to be iterable according to my current context, which is (list|slice)"
tkr Mothing is more like a undef
pmichaud tkr: ! returns a Bool
19:32 jferrero left
pmichaud TimToady: that's not precisely the way I've been viewing it (more) 19:32
.map gets some kind of object that already has a context (list|slice), and knows how to iterate it
I can see the other view, however. 19:33
(I don't quite see how to implement it, though)
TimToady that seems wrongish, or we can never have a method override its outer context
like .slice or .list
tkr pmichaud: perl -MDevel::Peek -wle 'Dump(0); Dump(!!0);' # perl 5
pmichaud tkr: we're talking about Perl 6 here. 19:34
TimToady a method is parsed as a postfix, but the postfix actually is in charge of the semantics of its argument, generally
tkr pmichaud: and that's whats Im trying to understand. what a coincidence!
pmichaud tkr: in Perl 6, prefix:<!> returns a Bool. 19:35
19:35 zaxklone joined
pmichaud and !!0 would complain about a ternary having a !! without a ?? 19:36
ash_ tkr a useful thing in perl 6 is .perl if you want to see how whatever you have would define itself
TimToady pmichaud: not as a prefix
pmichaud std: say !!0;
p6eval std 29585: ===SORRY!===␤Ternary !! seems to be missing its ?? at /tmp/1pG9Mob9ic line 1:␤------> say ⏏!!0;␤ expecting infix stopper␤FAILED 00:01 106m␤
pmichaud std: say(!!0);
ash_ rakudo: my $a = 5; say (!$a).perl;
19:36 [particle]1 joined
p6eval std 29585: ok 00:01 106m␤ 19:36
rakudo 1d4928: Bool::False
pmichaud okay.
std: if 3 = !!0 { say 'ok'; } 19:37