»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:15 vinian_ left 00:22 tokuhirom joined 00:32 vinian_ joined 00:40 mdxi left
snarkyboojum how do you use RT to find items that are marked "testneeded"? 00:41
ah - there's a tag 00:44
'testneeded'
:)
RT isn't so hard to use after all :)
00:48 molaf_ joined 00:52 molaf left 01:19 molaf_ left, benabik joined 01:32 mdxi joined 01:35 hundskatt left 01:37 araujo left 01:38 alester left 01:39 araujo joined 01:46 Ingis left 02:22 donri left 02:42 thou joined 03:00 Ingis joined 03:03 lutok joined 03:28 raiph joined 03:56 thou left 04:01 lutok left 04:09 tokuhirom left 04:24 araujo left 04:33 thou joined 04:51 vinian_ left 05:00 wolfman2000 left 05:21 raiph left 06:00 localhost left 06:02 localhost joined 06:21 araujo joined 06:27 plutoid joined
dalek kudo/nom: 2154ebb | moritz++ | src/core/ (4 files):
fix comparison ops for Complex numbers
06:32
moritz nom: CONTROL { default { say "warning" } }; ~Any 06:38
p6eval nom 4a4601: OUTPUT«Use of uninitialized value in string context␤»
07:00 molaf joined
dalek ast: 04c0281 | moritz++ | S32-num/complex.t:
comparison with < of complex numbers dies (RT #104660)
07:03
ast: f75b379 | moritz++ | S03-operators/inplace.t:
rakudo unfudges
ast: 5af9d23 | moritz++ | S12-class/augment-supersede.t:
test for augment on lexical class, RT #74910
07:06
sorear good * #perl6 07:20
moritz \o sorear 07:24
07:25 sayu joined
dalek ast: a6ae871 | moritz++ | / (5 files):
various rakudo unfudges, most related to the list fixes by jnthn++
08:02
08:02 lutok joined 08:04 Guest2721 joined 08:21 stepnem left 08:25 Trashlord joined, stepnem joined 08:54 Trashlord left 08:55 sayu left 09:15 thou left
Woodi what is the best way to get v5 working cooperative with v6 ? 09:20
moritz hack blizkost, I think 09:26
09:27 thou joined
snarkyboojum and there was the stuff pmurias was doing in Niecza to embed a Perl 5 interpreter (I think) 09:29
09:30 Trashlord joined 09:32 JimmyZ joined
Woodi is 'testneeded' a something someone can look into ? 09:37
ah, thank you snarkyboojum :) 09:38
JimmyZ commented to news.perlfoundation.org/2011/11/ha...lperl.html 09:39
snarkyboojum Woodi: search in RT for open bugs with the tag 'testneeded', and write tests for the fixes I'm guessing
Woodi do TPF just hire jnthn (if hi wants) for year or two ? :) 09:41
moritz Woodi: rakudo.de/testneeded
JimmyZ doesn't think TPF has enough money
Woodi thanx 09:42
09:43 thou left 09:44 miso2217 joined, miso2217__ left
Woodi oO(some community collecting grant?) 09:45
sorear o/ snarkyboojum 09:47
snarkyboojum sorear \o
09:53 fsergot joined 10:01 tokuhirom joined
Woodi hmm, this 'needtest' work is just: a) read tickets b) copy&paste trouble making code into test file ? 10:02
10:04 miso2217 left, miso2217_ joined 10:07 mj41 joined 10:08 GlitchMr joined
Timbus trac.parrot.org/parrot/ticket/757 its been a while since I've checked this ticket. and now I'm even more sadfaced 10:09
what the heck does everyone else program?? 99% of everything i do is event and thread based. 10:10
10:11 zby_home joined, rsimoes1 joined
Woodi Timbus: WWW, text procesing, numbers counting, such things :) 10:12
Timbus WWW with coroutines leads to some pretty cool stateful webpages 10:13
Woodi Timbus: can you give example ? 10:14
Timbus coroutines in the 'cooperative threads' sense, not this bizarre 'continuable sub' example the synopsis talks about
rsimoes1 I missed the first half of this conversation 10:15
What module are you guys looking at?
moritz rsimoes1: irc.perl6.org/ has the entire conversation
Woodi rsimoes1: last two days are silent here... 10:16
Timbus man, where is the good Coro webserver example
:<
rsimoes1 Corona 10:17
Timbus the idea is you just serve a page and then 'cede', to pause the coroutine. when the client clicks 'next' or whatever, the coroutine stars again
rsimoes1 Continuity for a super clever WAF 10:18
Timbus starts*
ah, Continuity might be it
moritz Timbus: you can do that with a lazy 'map' in Perl 6
Woodi so one coroutine per user ?
Timbus that.. feels wrong, moritz :/ 10:19
10:21 alvis left
Woodi ufo hangs for me :) 10:21
no, work OK 10:23
10:33 alvis joined
Woodi just get a lot of 'Use of uninitialized value in string context' warnings without script interruption... it's need to be that way ? 10:34
masak *yawn*. good morning, #perl6 10:35
moritz good masak, morniing 10:37
10:38 am0c joined, plutoid left 10:44 molaf left, ksi joined 10:47 hundskatt joined 11:00 xinming_ left 11:01 MayDaniel joined 11:13 GlitchMr left
jnthn afternoon, #perl6 11:18
masak jnthn! \o/
jnthn Woodi: (testneeded) it's kinda copy paste; the work is mostly in finding an appropriate test file to add it to and then twiddling it a bit to be a test (so it calls "is"/"ok" etc) 11:19
o/ masak
moritz++ # unfudges 11:22
masak Timbus: events and threads likely need to be tackled simultaneously in the Perl 6 spec. nothing's happening there yet because we're waiting for someone to say "oh, screw this" and replace what's already there with something simple that works, and that we can evolve the final design from. 11:25
11:25 xinming joined
Woodi masak: maybe we should talk more about "how should Perl6 parallel stuff look like ?" ? For example I can (continue?) read wiki and ask stupid questions :) 11:29
masak hm. "routines allow you to abstract over values. generics/parametric roles allow you to abstract over types. macros allow you to abstract over code."
Woodi: we know how it "should look" on a high level. see S17. that's likely to change a bit, but we at least have some ideas already. 11:30
Woodi: we also know how it will probably look on a low level. jnthn maintains that CAS is the only reasonable primitive on which to build bigger chunks.
but someone needs to take charge of providing a "big picture" out of all that. 11:31
an open question is how threading fits together with event systems.
and how much or how little will Perl 6 provide out of the box? 11:32
jnthn masak: Well, I more claimed that you can build everything on CAS. :) But that's more about concurrency control, not just events.
You can be single-threaded and do async/event style stuff.
Woodi my point is that talking and thinking possibly can clarify things. eg. what is Parrot/vm responsibility, what other parallel constructs are possible, eg. futures, what to do ATMwith Actor model... 11:33
becouse every developer have some thoughts, probably was few discusions too, but time moved and there can be new thougs, new idea available... 11:35
masak Woodi: in a sense, yes. we need to discuss these things and arrive at a sensible model for Perl 6. 11:38
Woodi: also, in a sense, no. this is something that one individual needs to sit down and *design*, and it can't be done by committee. it never can.
Woodi eg. spec says coroutines are uncompatible with multi-dispatch. but it says: multiple entrances with changed parameter list. what without changing params ? it is probably moust used case... 11:39
masak that's the "oh, screw this" part. someone needs to champion a coherent design, and a coherent design comes from one mind, by necessity.
Woodi masak: no, talking is needed first. becouse some things are Parrot dependend. so mommunity consensus will help a lot 11:40
masak Woodi: read everything in the spec about coroutines and around S17 with a big grano salis.
Woodi k, will check 11:41
masak Woodi: the Parrot dependencies might matter less than you think. most of these things get designed in Rakudo/nqp first, and then land in Parrot.
Woodi not sure about this
threads for example
CAS instruction from hardware passing... 11:42
masak Woodi: you could argue the same thing about NCI, that it "needs Parrot". but it's currently being developed outside of Parrot. 11:44
Woodi how ??
jnthn By writing code!! 11:45
Woodi: See nci branch in nqp :)
masak jnthn++ # by writing code 11:46
11:48 alvis left
Woodi I see Parrot as Perl5 low level stuff implementation, eg. IO buffering. In Perl5 is not good to use sysread becouse in moust cases will be slower then <FH>/<$fh>. so in Rakudo I use .get and hope that Parrot buffering will work that way. now: what parts of parallel stuff should go into Parrot ? 11:52
masak no idea. 11:53
it usually doesn't make much sense for Rakudo devs to ask this, because Parrot doesn't cater to just Rakudo.
Woodi Parrot is common stuff for all things working on Parrot 11:55
dalek p/nci: 003586e | jnthn++ | src/6model/reprs/CStruct.c:
Fix a copy-paste fail.
p/nci: c9d6b20 | jnthn++ | / (465 files):
Don't include version number in directory holding dyncall; it'll just make every upgrade annoying.
masak Woodi: right, but look at the Parrot object system. doesn't work for Rakudo's needs. Parrot MMD. doesn't work for Rakudo's needs. 11:57
Woodi: and evolving them fast enough for Rakudo to be able to use them wasn't an option. so Rakudo had to provide its own, currently through 6model.
moritz ,jk u m -v m bb n#ßb n , < m m 11:58
11:58 ab5tract joined
Woodi "through 6model" written as part of Parrot ? 11:58
masak no. 11:59
moritz 6model is currently part of nqp, not parrot
Woodi k
masak waves to Ronja :) 12:00
12:00 alvis joined
moritz Ronja shouts "whawhawhawhawhawhawha" 12:00
:-) 12:01
masak bobs happily
Woodi about 'screw' part :) : just want to note that making that parallel design is not necesary same as implementing it... maybe it will help some bright folks to propose drafts... 12:02
maybe chromatic ?
jnthn moritz: So it turns out the dyncall version I'd grabbed had an alignment bug on Win64. Upgrading it now...hopefully it doesn't cause any breakage on $other-platform. 12:04
Will push in a moment...testing welcome.
masak Woodi: suggesting a champion won't help much. :/ 12:05
moritz jnthn: can we delete the bigint branch in rakudo and nqp?
tadzik hello #perl6
Woodi hi tadzik :) 12:06
12:06 tomaw is now known as 5EXAAAUZ2
jnthn moritz: yes 12:06
dalek p/nci: 61a0eac | jnthn++ | 3rdparty/dyncall/ (263 files):
Upgrade to latest version of dyncall lib, which has Win64 fixes amongst other things.
jnthn woo, Win32 API usage in 3 lines: 12:07
use NativeCall;
sub MessageBoxA(Int, Str, Str, Int) returns Int is native('user32.dll') { * }
say MessageBoxA(0, "Hi from Rakudo", "NCI", 0x40);
12:07 5EXAAAUZ2 is now known as tomaw
masak tadzik! \o/ 12:07
12:07 wk joined
Woodi wow :) 12:07
masak jnthn: wow! \o/ 12:08
tadzik nice!
masak jnthn: you've ushered in an era of Windows development for Perl 6!
Woodi anybody know someone pasionate in parallel stuff to bring him to Perl community ? :)
jnthn masak: Well, need callbacks before that... ;)
masak jnthn: oh, right.
jnthn: what does the 0x40 mean?
is that buttons?
jnthn masak: 0x40 is "show a cute little 'i' icon in the message box and play an approriate 'oh hai i haz info' sound effect" :) 12:09
masak: Other flags get you buttons :)
And the return value tells you which one was clicked.
masak oh, it's a general flags thingie for both icons and buttons. 12:10
jnthn right
masak this reminds me of my VB days :)
jnthn 0x40 is just a value I remembered
tadzik :)
jnthn yeah, I had VB days too :P
Since I started programming in BASIC, I'm an irreedambly messed up programmer, apparently.
masak yup. me too. 12:11
jnthn can't remember who had the quote about programmers who learn BASIC first... :)
huf dont worry, *i* started in php.. the hole has no bottom
ie: there's always a lower fish
snarkyboojum bah, what does Dijkstra know :D
masak jnthn: Dijkstra.
jnthn oh, of course!
:)
masak jnthn: and now we're both teaching programming, further spreading the irredemable brain damage :P 12:12
moritz would love to teach programming too, but should learn it himself first
snarkyboojum masak: "mentally mutilated beyond hope of regeneration"
jnthn moritz: Apparently, you should start with BASIC...
:) 12:13
snarkyboojum charming
12:13 Psyche^ joined
moritz jnthn: I did (but a version which already had subroutines and blocks) 12:13
:-)
masak moritz: don't tell anyone, but I didn't finish learning how to program either! 12:14
snarkyboojum I started quickly with qbasic :P
masak I actually touched GWBasic first. but I didn't stay with it for long.
too painful.
snarkyboojum actually it was logo ;) 12:15
masak Turbo Basic was my eternal companion. only grudgingly did I migrate to QBASIC.
Woodi starts with BASIC too... and thinks that saying is not absolute truth...
masak Woodi: O RLY? :) 12:16
12:16 Patterner left, Psyche^ is now known as Patterner
masak Woodi: are you implying that not all of us here are mentally mutilated beyond hope of regeneration? :P 12:16
12:16 alvis left
Woodi yea, same as with optimisation :) 12:17
moritz tried Perl 6 hacking as redemption. Not really working 100% yet
masak moritz: no, only 75% according to recent graphs :)
12:18 fsergot left
moritz doesn't believe in that number at all 12:19
masak well, it means *something*. but maybe not what people think.
Woodi numbers can be improved by scope tuning :) 12:20
moritz the not meaning what people think it does... that's the reason I stopped with the spectest graphs 12:21
12:21 alvis joined
masak it's a general problem with quantifying things. 12:21
reality is complex and summarizing it is hard.
Woodi not sugest breaking "what not implement full spec isn't Perl6" in any sense 12:22
moritz can't parse Woodi's last line
masak there's a bit of "there's at least one sheep in Scotland that's *white on at least one side*!" to it
moritz masak: that's quite some wisdom :-)
Woodi thinks about English corepetution seriously :) 12:23
moritz jnthn: fwiw parallel build in nqp is broken, but serial build seems to work just fine
12:24 ab5tract left
Woodi moritz: I was saying, again, about marking few Perl6 featureas as research or just 'not basic' :) 12:24
moritz Woodi: you're welcome to do so, if you commit to maintain that markings for a while
Woodi they are all marked 'perlish' and me don't change it :) 12:25
moritz: it is not hard: eg. hypers... litle futuristic thing (for now) 12:26
moritz Woodi: hypers are implemented already
they are not really "research" or "experimental" or so 12:27
Woodi not for eventual, new Perl6 implementations. and maybe hypers are bad example
moritz (well, the duck typing isn't implemented, but that's a really new addition) 12:28
Woodi just propose differentation in features threating
moritz Woodi: you can't prioritize features for new compilers without knowing how the new compiler will look like
Woodi moritz: you always can do something even if not everything can be done, in general sense... 12:29
masak I still don't really understand the new proposed duck hypering, but to the extent I understand it I feel it's brittle and dangerous as a feature.
also, I never like more coupling against Cool and Any in various places.
it reduces the ways one can play around with the type system. 12:30
moritz masak: fully agreed
s/d$//
masak it's bad enough that we essentially have two "Object" types, Mu and Any.
moritz Woodi: something can always be done, but the big question is if it does more good than harm 12:31
Woodi isn't duck typing like class categories in Objective-C ? developer.apple.com/library/ios/#do...ories.html
12:34 alvis left
masak Woodi: no, that looks more like monkey patching. 12:34
Woodi: duck typing is assuming an object is eligible based on the presence of a method or so. 12:35
Woodi moritz: agree with that. my idea behint that is to shift Perl6 development to more "stable" point comparing to actual languages without breaking development continuity. just proposing shift in community thinking about Perl6
jnthn moritz: Is parallel build broken inside the dyncall build, something in NQP's makefile, or hard to tell? 12:36
Woodi masak: yes, I thinked about monkey thing. duck typing ?? :) 12:37
jnthn wants to invent a new kind of typing, just so he gets to pick an animal to name it after
masak we've regressed with nom more than anyone expected, and for longer than anyone expected. *apart from that*, I think Perl 6 development is doing fairly well. we're heading in the right direction.
jnthn: Dugong typing!
moritz jnthn: hard to tell 12:38
jnthn masak: Yes, but Rakudo makes a distribution/compiler release distinction in part to handle exactly these kinds of surprises. If people want more stability the latest star release has always been there. 12:41
masak right. 12:45
12:46 alvis joined, fsergot joined
masak I'm mostly talking about in-group expectations. the nom transition was supposed to be less involved and quicker than this. 12:47
yes, I know there are circumstances involved. and I don't mean to panic or anything.
jnthn masak: If it had purely been about the new object model, it probably woulda been.
masak nod
and it might even be that it was just as well to do all those refactors in one go. 12:48
while we're under the hood and tinkering anyway, in a sense.
jnthn masak: It got caught up in a "re-do the setting", "re-do lists" and "do a new regex engine" set of refactors.
masak nod
jnthn Yes, we're in a *much* better position for all of those in a technical sense. 12:49
masak jnthn: I don't know if I or anyone has said this before, but I'm *really* glad you're on the project. otherwise I'd have felt a huge Pugs/2007 deja vu at this point.
jnthn++ 12:50
12:51 mj41 left
jnthn Anyway, I agree it's all taken rather longer than any of us expected. But "a few months longer" on a project of Perl 6 style timescale is small in the big picture, especially for the wins that the nom work has given us. 12:53
And yes, all of the thing that have been done would probably have had to be at some point anyway.
So hopefully in another six months, with a bunch of steadily improving R* releases behind us, it'll look like it was worth it. 12:54
sjn reads masaks comments, and have to agree: jnthn++ 12:59
13:00 alvis left, MayDaniel left, alvis joined
masak jnthn: oh, sure. it was with Rakudo Star and the ng refactor that preceded it. 13:03
13:05 ab5tract joined
felher joins masak and sjn, jnthn++ :) 13:06
13:06 alvis left
jnthn hmm...naming help 13:15
The new NativeCall lets you choose your encoding when passing a string off to C
(utf8, ascii, etc)
I'm pondering doing this as a parameter train
er, trait
Any thoughts on trait name? Best I've got is "is native_marshall('ascii') or so. 13:16
JimmyZ is encode('ascii') ? 13:18
13:20 alvis joined
masak is encoded('ascii') ? 13:23
is sent_as('ascii') ?
is encoded_as('ascii') ? 13:24
jnthn hm
is marshalled_as('ascii') ? :) 13:25
Folks seem to prefer "encoded" :)
Woodi becouse sounds more unix-like... and more huffmanized :) 13:27
masak yeah.
Woodi k, pizza or diner time... 13:29
dalek p/nci: 65cfe28 | jnthn++ | src/ (3 files):
Add a way to get the name of the representation an object is based on.
13:38
kudo/nci: 81bbe8e | jnthn++ | src/binder/sixmodelobject.h:
Grab latest sixmodelobject.h.
13:40
kudo/nci: fb11f7d | jnthn++ | src/ (2 files):
Implement .REPR.
volaj/v2: e293ff0 | jnthn++ | lib/NativeCall.pm6:
Add CStruct passing support. Improve error message when trying to pass a class or other object not based on CStruct.
masak so, en.wikipedia.org/wiki/Hype_cycle 14:07
I posit that knowing about the hype cycle is not enough to prevent it from happening to a project. 14:08
which is all kinds of interesting when you think about it. you can point to a certain phase of the graph, and say "we are here -- and *there's nothing we can do about it*, except to continue forwards" 14:09
of course, with all these things, be it "trough of disillusionment", or "first they ignore you, then they laugh at you", or "every project starts with an individual with a dream"... 14:10
14:11 donri joined
masak ...I always try to remind myself that the same holds true for projects that *don't* bootstrap themselves off the ground. :) 14:11
so being an individual with a dream, or going through a trough of disillusionment might be necessary, but it's not sufficient.
</ramble> 14:12
14:12 sayu joined
tadzik lesson learned: reviewing translations requires a lot of mentoring time 14:13
while I'm at it, I think today's the time we should start adding our tasks to melange. I'll start doing this later on 14:14
masak tadzik++ 14:17
14:27 plutoid joined 14:33 mj41 joined
moritz tadzik: I've already added three tasks to melange 14:39
tadzik: two "tests for RT tickets", one design for faq.perl6.org 14:40
tadzik moritz: great!
cognominal soon, perl will not be caught on a hype cycle but in a whirlpool of hype. :) 14:43
masak cognominal: :D 14:44
cognominal: "we don't believe the old waterfall hype model is a viable way to conduct hype" 14:45
14:45 hundskatt left 14:47 tokuhirom left
Woodi "It's the reliability of single-threaded message-based designs that I like. An avionics software designer told me they never use multi-threading just for that reason. A single thread is absolutely guaranteed to have zero race conditions and deadlocks. No multi-threaded software can provide that sort of guarantee." from c2.com/cgi/wiki?MessagingAsAlternat...iThreading 15:14
15:15 molaf joined 15:17 plutoid left
masak Woodi: in other news, software that doesn't connect to the net is more reliable. so is software that doesn't interact with the user in any way. :) 15:19
"A program that doesn't accept input is absolutely guaranteed to have zero injection attacks. No user-input-accepting software can provide that sort of guarantee." :P
Woodi I like qmail design, it is a "multi-server", multiproces server... kind of messaging architecture...
15:20 cognominal left, cognominal joined
masak people seem to generally say good things about qmail. 15:20
Woodi no, async api is used, select/poll etc
qmail is multiproces but I wonder about something in process 15:21
0mq maybe
anyway, probably no one will want to implement Oracle clone in Perl :) 15:23
JimmyZ i'd more like postfix ... 15:24
Woodi point is where to stop elmiminating use cases... games for example probably needs multithreading
tadzik do they? 15:26
I didn't look deep into the doom3 source, but I saw some event loop in there ;)
but again, I didn't look really deep
masak RFC 1: "Perl 6 should be built around threads from the beginning." 15:27
Woodi games probably want to use few cores...
tadzik ok, there are threads too
gfldex doom3 engine can run the render process in it's own thread
tadzik my bad
gfldex it wont give you much tho
Woodi masak: depends what "from the beginning" means :) 15:28
15:28 Debugullus joined, Debugullus left
masak just point out that threading was part of the deal since RFC 1. 15:29
I'm not sure if any of the Apocalypses mentions RFC 1, though.
Woodi "start development without threads and add later"
probably Actor model - messaging - is a option now. in that case real threads can be hidden 15:30
masak we *have* started development without threads and plan to add them later. 15:32
even Parrot, in a de facto sort of way.
I get the feeling that RFC 1 is largely motivated by the observation that threads are *hard* to add in afterwards. 15:33
Woodi all the STM movement is based on that 15:34
masak well, STM was something that was looked at, in the Pugs era.
I believe Pugs implements some form of STM.
Woodi "implement" is wrong word :) cheating maybe :) 15:35
maybe we can start with efficient Perl6(process) <-> Perl6(proces) protocol ? 15:37
I mean especially in localhost environment
+ green threads and CPU can be used 100% :) 15:38
__sri threads with stm would be very cool, something we can't have in perl5
masak Woodi: why are you so quick to evaluate software with whch you have no actual experience? I believe Pugs *actually* implements STM. no cheating involved.
15:38 mj41 left
Woodi masak: becouse Pugs overrided Haskell STM :) 15:39
__sri i think akka uses threads + stm
masak I don't remember the circumstances that made @Larry abandon STM as *the* approach and start considering it one of many solutions.
Woodi: what, and Haskell's STM isn't real?
Woodi but using ready thing is not the same as implementing from scrath in Rakudo case 15:40
waiting for Hardware TM is an option too :) 15:42
__sri cheap threads could easily become *the* feature to make perl5 folks switch once 10+ core cpus go mainstream
__sri starts drooling at the thought of a perl6 akka 15:43
masak and yet... no-one is actively working on it.
it's just a lot of talk.
maybe that's positive to some extent. maybe it'll motivate someone to start digging into it in earnest. 15:44
one can only hope :)
__sri thought stm was a hot topic for folks with academics background 15:45
many papers to be written :)
moritz masak: I think the reason for not only considering STM was the paper that showed that STM can be combined elegantly with other concurrency concepts 15:46
masak oh, ok.
Woodi if we want multi-core threads in Perl6 then it need be first implemented by lower backend probably. in other case just spawn Perl6 interpreters and do messaging communication...
masak moritz: I remember watching a talk about how STM has scaling problems, just like most threading techniques.
__sri loves akka 15:49
15:50 JimmyZ left
jnthn People always want silver bullets. I guess STM momentarily looked like being one. :) 15:53
(I'm not saying STM is a bad thing. Just that it's not magical either. :))
Woodi there is STM 2, or TM II, scales better 15:54
masak then *that* must be the solution! :P 15:55
15:56 sayu left
Woodi situation is that many parallel things is implemented in other languages and we cannot agree even on draft content :) 15:57
masak yes, but *we know that*. 15:58
a draft won't magically appear just by some people discussing threading and saying what they like and don't like.
a draft is written by someone, a concrete individual who, you know, steps up and JFDIs a draft. 15:59
Woodi eats chocollate
and TimToady lives in heavy-patent country :) 16:00
16:12 Guest92238 left
dalek ast: 696bc8d | moritz++ | S03-operators/repeat.t:
two rakudo unfudges
16:20
__sri patents TimToady 16:21
16:28 demetro joined 16:29 Moukeddar joined, Moukeddar left 16:33 nayobix joined 16:36 lichtkind joined
awwaiid Woodi, 'nine' was working on some multi-processing in #parrot iirc. or at least "green" threads 16:44
16:51 thou joined
dalek p/nci: 4aade5a | jnthn++ | src/ops/nqp_dyncall.ops:
Handle string returns.
16:51
volaj/v2: d22dd75 | jnthn++ | lib/NativeCall.pm6:
Better string support, including multiple encodings.
16:59
17:09 hundskatt joined 17:11 skangas left 17:41 arlinius left, skangas joined 17:42 icwiener joined 17:44 arlinius joined, kmwallio joined
flussence I missed that whole conversation 4½ hours ago. I'd prefer a Str.encoding property (one that also works as a default for .Buf)... 17:44
jnthn flussence: It's not really a property of the thing being passed, though. It's about how the native calling stuff should marshall it. 17:56
flussence hm, I get it now 17:58
17:58 demetro left
flussence a .encoding is setting it in the wrong place... 17:58
17:59 cognominal_ joined, ab5tract left 18:02 cognominal left 18:12 ab5tract joined 18:13 skangas left 18:15 zby_home___ joined 18:16 zby_home left 18:19 ab5tract left
moritz is Buf supported? 18:32
jnthn moritz: Not yet 18:33
moritz you can extract its $!buffer and call .get_string('binary') on it to get a parrot str out of it
18:35 hundskatt left 18:47 MayDaniel joined
dalek p/nci: ba2dda5 | jnthn++ | src/ (3 files):
Handle struct returns. Needs some more work on memory management stuff, but basically works now. Needed a little refactor to the CStruct REPR, thanks to braino when doing it before.
18:48
18:49 mj41 joined
jnthn gist.github.com/1392493 # updated with latest examples 18:51
18:58 MayDaniel left, kmwallio left
moritz jnthn++ 19:09
jnthn: when will you branch nci into nqp/master?
s/branch/merge/
jnthn moritz: I'm fine with developing it in master; the only reason it's in a branch is to not cause disruption while build issues are sorted out. 19:13
moritz: Like, the broken parallel build.
moritz jnthn: moritz.faui2k3.org/tmp/build.log is a complete build log of 'make -j3' 19:20
19:21 Chillance left
moritz the interesting part is that it can't find dyncall/dyn{call,load}.h 19:21
in NativeCall.h
sorear good * #perl6
moritz line 155 19:22
hello sorear
erm, currently even the serial build is broken? 19:23
hm, works again now 19:25
jnthn moritz: the line starting cd src/ops && cc -c -o nqp_dyncall_ops.o
looks to be missing a -I
or did i miss it
moritz: oh!
-I../../3rdparty/dyncall-0.6
...should not have the -0.6...thought I fixed all of those 19:26
moritz: Did you re-configure?
o/ sorear
sorear TimToady: ping. I want to hear the real story about STM in Perl 6.
moritz jnthn: I might not have, let me re-check
jnthn: (unrelated) ConfigVars gets changed during Configure.pl run. Should I 'git rm' it? 19:27
sorear o/ jnthn
moritz does so. Forgiveness > Permission after all 19:30
dalek p/nci: 1a92ea7 | moritz++ | 3rdparty/dyncall/ConfigVars:
[dyncall] ConfigVars is a generated file, and should not be part of the repositry
19:32 c9s left, nayobix left 19:33 hundskatt joined
moritz jnthn: now even the parallel build worked here 19:34
19:34 molaf left, packetknife joined
jnthn moritz: \o/ 19:35
moritz: +1 to remove that file...just an accident
masak nom: class Permission { method Numeric { self.^name.chars } }; class Forgiveness is Permission {}; say Forgiveness > Permission 19:49
p6eval nom 2154eb: OUTPUT«Use of uninitialized value in numeric context␤Use of uninitialized value in numeric context␤Bool::False␤»
masak dang :) 19:50
moritz try with method Real instead
masak oki
nom: class Permission { method Real { self.^name.chars } }; class Forgiveness is Permission {}; say Forgiveness > Permission
p6eval nom 2154eb: OUTPUT«Bool::True␤»
masak \o/
moritz there's no reason for > to coerce to Numeric if it can't deal with any Numeric result 19:51
masak makes sense, I guess.
moritz (that's a rather recent change)
thought I did think that the default .Real would re-dispatch to .Numeric.Real
sorear o/ masak 19:54
masak sorear! hi! 19:57
20:05 snearch joined 20:09 lichtkind left
sorear hello! 20:16
20:17 packetknife left, orafu joined, packetknife joined
masak niecza: class Permission { method Real { self.^name.chars } }; class Forgiveness is Permission {}; say Forgiveness > Permission 20:20
p6eval niecza v11-27-gdaa9117: OUTPUT«Bool::False␤»
20:20 packetknife left
masak hah! 20:20
in Niecza, Forgiveness !> Permission :)
20:20 packetknife joined
sorear .^name NYI 20:22
I'm a little supprised it didn't throw
niecza: say 1.^name
p6eval niecza v11-27-gdaa9117: OUTPUT«Unhandled exception: Unable to resolve method name in class ClassHOW␤ at /tmp/CXKOkTbm7A line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2224 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2225 (module-CORE @ 58) ␤ at /h…
sorear oh! > is calling .Numeric, not .Real 20:23
which isn't overridden, so you're getting to Any.Numeric
which returns 0 if !defined(self)
moritz niecza: say (2+2i) > (2+3i) 20:27
p6eval niecza v11-27-gdaa9117: OUTPUT«Bool::False␤»
moritz niecza: say (2+2i) > (3+3i) 20:28
p6eval niecza v11-27-gdaa9117: OUTPUT«Bool::False␤»
moritz niecza: say (2+2i) >= (2+2i)
p6eval niecza v11-27-gdaa9117: OUTPUT«Bool::True␤»
moritz niecza: say (3+2i) > (2+2i) 20:29
p6eval niecza v11-27-gdaa9117: OUTPUT«Bool::True␤»
moritz niecza: say (2-2i) > (2+2i)
p6eval niecza v11-27-gdaa9117: OUTPUT«Bool::False␤»
moritz niecza: say (2-2i) < (2+2i)
p6eval niecza v11-27-gdaa9117: OUTPUT«Bool::True␤»
20:30 mj41 left
masak eew 20:32
diakopter :) 20:33
20:35 whiteknight joined 20:36 whiteknight is now known as Guest25357, y3llow_ joined 20:38 y3llow left, y3llow_ is now known as y3llow
masak niecza: sub foo {}; my $h = &foo.wrap({}); say $h.WHAT 20:43
p6eval niecza v11-27-gdaa9117: OUTPUT«Unhandled exception: Unable to resolve method wrap in class Sub␤ at /tmp/DN_riAJS37 line 1 (mainline @ 6) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2224 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2225 (module-CORE @ 58) ␤ at /home/p…
masak nom: sub foo {}; my $h = &foo.wrap({}); say $h.WHAT
p6eval nom 2154eb: OUTPUT«Nominal type check failed for parameter '&wrapper'; expected Callable but got Hash instead␤ in method wrap at src/gen/CORE.setting:1334␤ in block <anon> at /tmp/FNlHorYcWL:1␤ in <anon> at /tmp/FNlHorYcWL:1␤»
masak oh! :) 20:44
nom: sub foo {}; my $h = &foo.wrap({;}); say $h.WHAT
p6eval nom 2154eb: OUTPUT«WrapHandle()␤»
masak nom: sub foo {}; my $h = &foo.wrap({;}); say $h.^methods
p6eval nom 2154eb: OUTPUT«restore eager elems end classify uniq infinite flat hash list pick roll reverse sort values keys kv pairs Array grep first join map min max minmax postcircumfix:<[ ]> at_pos all any one none postcircumfix:<{ }> reduce ACCEPTS ACCEPTS WHERE WHICH WHY Bool so not define…
masak ETOOMANY
nom: sub foo {}; my $h = &foo.wrap({;}); say $h.^methods(:local)
p6eval nom 2154eb: OUTPUT«restore␤»
jnthn masak: broken it yet? :) 20:46
diakopter nom: sub foo {}; my $h = &foo.wrap({;}); my $i = $h.wrap({;}); say $i.WHAT 20:47
p6eval nom 2154eb: OUTPUT«Method 'wrap' not found for invocant of class 'WrapHandle'␤ in block <anon> at /tmp/XfeAENZSbe:1␤ in <anon> at /tmp/XfeAENZSbe:1␤»
jnthn diakopter: Pretty sure the spec doesn't say you can do anything with the wrap handle other than call .restore :) 20:48
moritz you can only wrap the routine itself again
masak nom: sub foo {}; my $h = &foo.wrap({;}); $h.restore; $h.restore
p6eval nom 2154eb: ( no output )
masak nom: sub foo { say "unwrapped" }; my $h = &foo.wrap({ say "OH HAI" }); foo; $h.restore; foo; $h.restore; foo 20:49
p6eval nom 2154eb: OUTPUT«OH HAI␤unwrapped␤unwrapped␤»
masak I guess that could be seen as the right behavior...
jnthn masak: Oh...hm 20:50
masak :)
jnthn nom: sub foo {}; my $h = &foo.wrap({;}); say ?$h.restore; say ?$h.restore
p6eval nom 2154eb: OUTPUT«Bool::True␤Bool::False␤»
20:51 packetkn_ joined 20:53 packetknife left
masak oh, ok :) 20:54
take the challenge! twitter.com/OvidPerl/status/140864258358521856 20:55
sorear b: say (2+2i > 2-2i)
p6eval b 1b7dd1: OUTPUT«Bool::True␤»
sorear masak: $\mathbf{C}$ does not have an ordering which is compatible with the field structure, but it's still a useful order for binary searches and stuff 20:57
masak: perhaps it would be better to put this under 'cmp'. However, 'cmp' is still inadequately specced.
masak sorear: the first thing you said is interesting -- I've never heard anyone advocate that before.
sorear: my gut reaction is that it's not a good idea, though. 20:58
geekosaur the haskell community has tossed the idea around before
masak sorear: if something isn't compatible with field structure, it shouldn't play with the Numeric comparison ops.
sorear: that's why moritz made < cast to Real, I guess.
geekosaur (comparison is overloaded; you don't want to have it for field operations, but you sometimes want to use it as a key in a Map..) 20:59
21:04 ksi left, ksi joined
masak geekosaur: well, that's infix:<cmp> in Perl 6, not infix:<< <=> >>. 21:05
geekosaur: and generally Perl tends towards purity of operators. infix:<+> is only for numeric addition, for example. not for adding strings or arrays or other things.
geekosaur right, that's what sorear was saying (so your "the first thing you saidis interesting" is perhaps a little confusing) 21:06
sorear Perl 6 has 4 sets of comparison operator - < = > <=> for .Real functionality using the induced order from the ordered field structure on R
masak == 21:07
sorear le eq gt leq for string comparison, using what the Unicode Consortium calls "binary order" (we haven't specced locale collation yet)
21:07 am0c left
masak could be done with adverbs, I guess. or pragmata. 21:07
sorear before eqv after cmp for object-value polymorphic comparison, which is still too slushy to implement 21:08
=== (for some reason there are no order operators) for object-identity comparison
masak if ObjAt numifies you could use the numeric comparison ops. 21:09
but I'm not sure it does.
arnsholt Regarding ===, would it even make sense to have order operators for that? 21:10
geekosaur it's not clear to me what non-equality object identity comparison would mean in the general case
...that
(for things like the Map case, you probably want something like a hash of the representation value, but I'm not clear that that deserves an operator or any significant huffmanization) 21:13
21:18 ethndbst joined, ethndbst left, ethndbst joined 21:19 fsergot left 21:20 ksi left, ksi joined 21:22 mj41 joined 21:24 Guest25357 left 21:27 whiteknight joined, whiteknight left, plobsing joined 21:28 whiteknight joined, whiteknight is now known as Guest86525 21:34 ksi left
djanatyn are the new perl 6 tasks on GCI going live at midnight? 21:34
21:35 ksi joined
masak djanatyn! \o/ 21:35
djanatyn Yes, sorry. I haven't been here lately >_> 21:36
I've been being lazy, playing a new Zelda game that just came out, and learning some more Haskell in anticipation of a competition coming up soon.
21:37 Guest2721 left
masak sounds awesome. 21:38
I wish I had time to play Zelda games and learn some Haskell :) 21:39
21:40 fsergot joined
djanatyn Yeah, being in highschool has it's perks. :D 21:42
flussence I went out today to buy a game, somehow came home with toothpaste instead. Oh well, less distractions for me...
djanatyn I've been writing lots of Java too. Bleh. 21:43
Not as fun as writing perl6, but still fun in it's own way.
and right now, I'm installing plan9 from bell labs! 21:44
masak djanatyn: I'm currently writing slides for a talk about Java! 21:52
djanatyn Oh, cool.
masak djanatyn: I haven't known this much about the language since I used it, way back in 2010 :P
djanatyn ...Java 8?
masak no, mostly 5 and forwards. 21:53
djanatyn I've been reading a lot about Java 8 on reddit, and the new additions seem pretty cool
masak I know almost nothing about Java 8. does it have closures?
21:54 thou left
djanatyn It has lambdas, I know that 21:55
And I know they've talked a lot about closures, and I think they were added
masak those are basically the same. 21:57
anyway, woo \o/
finally! in 2012!
21:57 thou joined
sorear Java has had closures since 1.1 21:58
lambdas are extremely welcome though. took long enough
it would also be nice if they could make this stuff lighter-weight at runtime, instead of requiring a runtime Class for every reified function 21:59
arnsholt sorear: IIRC there are some limitations to Java's closures though. Like only being able to close over final variables 22:00
masak right.
which pulls most of the fun out of them, to be honest.
but yeah, I guess those are closures. 22:01
you can put stuff in 1-element arrays and access it anyway :P
arnsholt I can't remember when I last tried to do something closurey in Java, but I do remember my fun being spoiled by that 22:02
sorear arnsholt: Haskell can only close over final variables too :P
arnsholt Haskell mostly has only final variables =p 22:03
djanatyn Our school is using Java 6, which is pretty lame 22:04
So I would probably get points deducted if I used java 8 features, as we submit just the source code to our teachers, and she uses her Java 6 JDK to compile 22:05
masak djanatyn: at least it isn't Java 1.2
sorear mine too. "We're using the most recently released version, Java 1.6.2" # their words exactly.
djanatyn o_o
sorear WHAT PART OF BUG FIX RELEASES DO YOU NOT GET 22:06
djanatyn ouch
masak wow.
djanatyn sorear: Do you write Java at your job? 22:07
sorear djanatyn: no, mine [school]
masak djanatyn: you just assume everyone is employed :)
djanatyn Oh. :) 22:08
Sorry ^_^;
flussence: by the way, what game did you go out to get? 22:12
masak more importantly, what toothpaste did you end up with? :P 22:15
flussence I heard people actually like the new Sonic game, but turns out it's not out on any platform I own :( toothpaste was generic store-brand stuff, but it's green! 22:17
masak green means healthy! 22:21
and natural. 22:22
jnthn What does aquafresh mean? :) 22:23
djanatyn flussence: uhh, it's out for PC 22:24
flussence I don't feel like installing wine that badly :) 22:26
masak jnthn: Russia! 22:29
jnthn :D 22:30
masak or France, or any number of countries, I guess.
jnthn Yeah, but Russia is big and awesome and has the Moscow Metro. :) 22:31
masak \o/ 22:32
22:35 Trashlord left, araujo left 22:36 flussence left, ethndbst left 22:37 Trashlord joined, ethndbst joined, ethndbst left, ethndbst joined 22:39 orafu left, orafu joined 22:41 miso2217_ left, Ingis left, aindilis` left, mattp_ left, jaldhar left, p6eval left, spacebat left, renormalist left, wooden left, zb left, kcwu left, charsbar__ left, Bucciarati left, Gothmog_ left, rsimoes1 left, jfried left, moritz left, ruoso left, jerome_ left, betterworld left, Helios left, benabik left, masak left, fhelmberger left, yves left, moritz joined, z-b joined, wooden joined, Yappoko___ joined, nsh_ joined, jnthn joined, pmichaud joined, Gothmog_ joined, kcwu joined, broquaint joined, huf joined, miso2217_ joined, yves joined, jfried joined, rsimoes1 joined, ksi left, masak_ joined, ruoso_ joined, charsbar__ joined, Ingis joined 22:42 aindilis` joined, yahooooo joined, p6eval joined, mattp_ joined, chitragupt joined, fhelmberger joined, ChanServ sets mode: +v p6eval, jerome_ joined, Helios joined, wooden left, wooden joined, jaldhar joined, kthakore joined, renormalist joined, zby_home___ left 22:43 PacoLinux left, masak_ is now known as masak, daemon joined 22:46 spacebat joined, betterworld joined 22:47 Bucciarati joined 22:48 Trashlord left, benabik joined 22:49 packetkn_ is now known as packetknife
dalek p/unirx: 1216a2a | diakopter++ | src/ops/nqp.ops:
import is_uprop parrot op from rakudo ng
22:49
diakopter um
22:50 araujo joined, araujo left, araujo joined, silug left
dalek p/unirx: 109e4aa | diakopter++ | src/ops/nqp.ops:
add uchar.h include
22:51
22:52 Trashlord joined
masak good night, #perl6 22:53
22:55 packetknife left, packetknife joined 22:58 Trashlord left
diakopter gawks at S05 "Terms may also be combined using & for set intersection, | for set union, and ^ for symmetric set difference. Parens may be used for grouping." 22:59
23:01 orafu left 23:03 orafu joined 23:07 Trashlord joined 23:12 Trashlord left
jnthn night, #perl6 23:16
23:20 orafu left, orafu joined 23:22 lutok left 23:29 stepnem left 23:31 stepnem joined 23:33 alvis left 23:35 orafu left 23:36 orafu joined 23:39 hundskatt left 23:46 alvis joined 23:47 mj41 left
dalek p/unirx: d4a0667 | diakopter++ | src/Q (3 files):
Unicode properties in regexes (new S05 syntax)
23:48
[Coke] Tomorrow is the deadline for getting perl6 tasks into GCI. Hurry Hurry. ;) 23:49
23:50 f00li5h left
diakopter [Coke]: want a task to do? 23:51
not GCI, I mean
[Coke] diakopter: I am not a student, if that's where you're heading. 23:52
diakopter no
[Coke] No, I'm not looking for perl6 work at the moment. Thanks, though.
diakopter maybe you can help me answer this question though
roast/S05-mass/properties-block.t 23:53
nm, answered it myself I think 23:54
sorear diakopter: how many unicode props are you adding? 23:57