»ö« 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! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
00:00 sftp left 00:06 risou left
colomon rakudo: say ~<a b c d> 00:12
p6eval rakudo 2c66f9: OUTPUT«a b c d␤»
00:12 kensanata left
colomon rakudo: say 'a'.fmt("%2s") 00:13
p6eval rakudo 2c66f9: OUTPUT« a␤»
colomon rakudo: say 'a'.fmt("%-2s")
p6eval rakudo 2c66f9: OUTPUT«a ␤»
00:14 araujo left 00:16 wamba left 00:18 c1sung_ is now known as c1sung 00:23 araujo joined 00:24 whiteknight joined 00:44 [particle] joined 00:47 orafu left, Trashlord left 00:49 QinGW joined 00:54 pmb joined
pmb hi 00:54
00:54 rgrau_ left 00:58 cdarroch left 01:01 Raynes joined 01:05 Limbic_Region joined 01:09 Chillance left
colomon phenny: tell masak It's the sprintf that's killing you, I think. I've rewritten colors-and-heights to use a bunch of .fmt calls and ~ , and it makes a huge difference 01:14
phenny colomon: I'll pass that on when masak is around.
01:20 nadim left 01:24 dnl- joined 01:28 dnl left, dnl- is now known as dnl 01:30 dnl left 01:36 ggoebel left 01:46 dnl joined 01:57 dnl is now known as ch3ck
colomon phenny: tell masak My version is here -- gist.github.com/668607 -- and is 8x faster. 02:02
phenny colomon: I'll pass that on when masak is around.
colomon Huh. sprintf is more or less just a call straight into Parrot. Odd that should be so slow.... 02:05
02:14 ch3ck left 02:19 alester left 02:26 impiou1 joined, impiou1 left 02:38 am0c^ joined
colomon oh, never mind. the trouble is .trans, not sprintf 02:49
02:55 cognominal left 02:57 rurban left 03:01 pmb left 03:02 eggled left 03:03 whiteknight left 03:04 nymacro joined 03:20 redicaps joined 03:26 agentzh joined 03:32 lidden left
dalek nch-scripts: 0b7573c | colomon++ | trans-sprintf.pl:
Test .trans and sprintf.
03:37
03:51 nymacro left 04:03 nymacro joined
sorear hi 04:09
04:14 Limbic_Region left, satyavvd joined 04:16 orafu joined
cotto does masak generally prefer to have his last name spelled with an umlaut? It doesn't have one in parrot's CREDITS. 04:19
04:21 _twitch joined
dukeleto masak: ping! 04:29
masak: ^^^
dukeleto has to regenerate the parrot.git repo
so if you want something changed that is easy, now is the time. But please don't make my life more difficult for no reason.
Now as in "now" 04:30
sorear dukeleto: masak isn't even online
dukeleto sorear: he tab completes, he *must* be online
sorear he doesn't tab for me 04:33
dukeleto masak doesn't use an umlaut in rakudo.git
so i am not going to change what he has in CREDITS
sorear mas<tab> = masonkramer, masonkramer
04:35 redicaps left
dukeleto sorear: it was a joke. Laugh. Take a deep breath. Laugh again. You can go now. 04:35
04:45 REPLeffect joined 05:02 eternaleye left, eternaleye joined 05:06 kanishka left
dalek ecza: ac003e7 | sorear++ | src/ (2 files):
Allow inspection of role parameters
05:12
ecza: 131fa77 | sorear++ | / (3 files):
Encode variable name information in LAD trees
ecza: 13cdb07 | sorear++ | v6/ (2 files):
Fix heredoc tweaking
05:17 redicaps joined 05:38 lue joined
lue ohai o/ 05:38
phenny lue: 08 Nov 11:55Z <masak> tell lue thanks for the patch at gist.github.com/667105 -- I see one tiny error on L28 (which is easy to correct), and I'd like to discuss how strings interact with ++ and --. apart from that, it looks very good.
dukeleto A new parrot.git is born. Please do a "git pull --force" to git it. 05:44
dukeleto had to fix some bugs in the repo
05:53 am0c joined 06:02 nymacro left 06:18 redicaps left 06:21 xabbu42 joined 06:25 nymacro joined 06:28 mberends left 06:52 wtw joined 07:00 toebu joined, toebu is now known as TobiOetiker 07:01 kaare joined, kaare is now known as Guest5940 07:18 orafu left, orafu joined
sorear TimToady: How does Any decide whether to stringify as "" or ""-with-warning or "Any()"? 07:36
Why isn't it possible for parametric roles to have parameters in method names? 07:38
07:40 tgrim joined 07:42 TobiOetiker left 07:48 xabbu42 left 07:50 nadim joined 07:51 am0c left 08:10 am0c joined 08:16 nymacro left 08:26 justatheory left 08:39 meppl joined 08:49 kensanata joined 08:57 wamba joined 08:58 daxim joined
sorear out 09:15
09:26 kensanata left 09:33 Trashlord joined 09:41 jasonmay_ joined, nrr left, wolveria1 joined, plobsing_ joined 09:42 nrr` joined, flussence_ joined, perigrin_ joined, broquain1 joined, rokoteko_ joined, sjn_ joined 09:47 flussence left, LionMade0fLions left, jasonmay left, plobsing left, broquaint left, wolverian left, hatseflats left, sjn left, s1n left, thepler left, maluco left, perigrin left, rokoteko left 09:48 thepler joined, xabbu42 joined 09:49 LionMade0fLions joined, maluco joined 09:50 s1n joined, hatseflats joined 09:57 cjk101010 joined 10:04 QinGW left 10:06 wamba left 10:10 dakkar joined 10:22 masak joined
masak morning, #perl6 10:22
phenny masak: 01:14Z <colomon> tell masak It's the sprintf that's killing you, I think. I've rewritten colors-and-heights to use a bunch of .fmt calls and ~ , and it makes a huge difference
masak: 02:02Z <colomon> tell masak My version is here -- gist.github.com/668607 -- and is 8x faster.
masak colomon++
odd. doesn't .fmt use printf?
tadzik o/ 10:24
moritz_ masak: maybe sprintf scales O(bad) with the number of formats used
masak that might be it. 10:25
10:25 flussence_ is now known as flussence
moritz_ do we redispatch to the parrot printf? 10:25
masak suspect so. 10:26
10:28 masonkramer left 10:29 masonkramer joined
moritz_ rakudo: say time - time 10:29
p6eval rakudo 2c66f9: OUTPUT«0␤»
moritz_ rakudo: say now - now
p6eval rakudo 2c66f9: OUTPUT«-0.178533475026567␤»
tadzik phenny: tell colomon what's wrong with neutro? 10:30
phenny tadzik: I'll pass that on when colomon is around.
tadzik masak++ # druid working 10:33
masak some happy tweets: twitter.com/paxindustria/status/1827139309535233 twitter.com/xquery/status/1907273655910400 10:39
mathw masak: the first one is particularly nice, I think 10:40
especially for the person who gave the talk :D 10:41
10:41 broquain1 is now known as broquaint
masak indeed. 10:41
moritz_ any idea which talk it referred to? 10:43
masak new rule: every time you suggest a "special sigil" on p6l, you lose. even if you do so hesitatingly.
moritz_ +(1..Inf).pick 10:45
daxim speccers: steal the syntax for inclusive/exclusive ranges from Gosu - developers.slashdot.org/story/10/11...-To-Public
masak but we have inclusive/exclusive ranges... 10:46
moritz_ daxim: so what's their syntax?
daxim :o
1|..|10 open interval (equals 2..9)
masak daxim: 1 ^..^ 10 10:47
moritz_ I don't see how that's better or worse than 1^..^10
masak in Perl 6.
daxim kick-ass
masak my thought exactly.
daxim see, I didn't even know it was there
mathw But now you do
masak daxim: clearly you haven't studied the Periodic Table of Operators enough :)
mathw So today's not a complete loss
moritz_ ours has the advantage you can even say ^10 10:48
whereas |10 has a completely different meaning
(at least in Perl 6 :-)
daxim then, have a look at the Gosu intro whether there's anything else worth cribbing 10:49
masak sure thing. 10:51
moritz_ seems like they stole the idea to use -> for lambdas :-)
var file = new File( "someFile.txt" ) 10:52
file.write( "That was easy" )
I like that example :-)
mathw Haskell also uses -> for lambdas though... just in Haskell, it appears in a different place and means a different thing
moritz_: I'm always suspicious of easy examples. I always want to see real code
But it is a nice example to bring a smile to the face 10:53
moritz_ aye
masak what do they do about opening and closing the file?
are such ideas outdated?
moritz_ from a first glance the syntax looks pretty neat
I just don't like that lambdas are open-ended
\ s -> do something with s 10:54
mathw hah that's Haskell syntax :)
masak agreed.
moritz_ there's no final delimiter, so if you write big ones, it's hard to see where it ends
and you have to rely on outer parens
mathw hmm no layout rule?
10:54 ggoebel joined
masak where are all these neat JVM languages sprouting up from? is there a JVM language construction kit somewhere? 10:55
moritz_ hard to tell from the examples
var orderedByLength = listOfStrings.orderBy( \ s -> s.length() )
masak hm. they have "as String" for conversions where Perl 6 has ".Str"
mathw "as String" is a bit more Java-ish in influence 10:56
daxim -> takes a block if it's not just a single expression {}
moritz_ daxim: ah, that's nicer
mathw or Boo
moritz_ mathw: Perl 6 also has "as Str" (in signatures)
mathw moritz_: true
moritz_ ++ for using "as String" and not "to String" :-) 10:57
mathw yes "as" is much nicer conceptually I think 10:58
moritz_ "to" really sounds like an in-place conversion 11:02
mathw yup
11:03 kensanata joined 11:10 sjn_ is now known as sjn
masak cotto: I'm almost entirely umlaut-agnostic when it comes to my last name. I like when it's there but don't mind when it isn't. 11:11
moritz_ would mind misplaced umlauts in his name :-) 11:12
masak well, "misplaced" can mean two things. I don't like the "Masäk" spelling. 11:13
daxim M»ö«sak 11:14
masak :)
sushi & 11:15
moritz_ well, 'Möritz' or so was what I meant with mis-placed umlauts in my name :-)
masak ahh, "mis-placed" with a dash. that's a third meaning :P 11:16
(the first two are "wrongly placed" and "wrongly omitted", by the way) 11:17
really &
11:49 satyavvd left 11:50 am0c left 12:09 [particle] left
colomon masak: sorry, I should have added a third message. it's not sprintf that's the problem, it's .trans 12:10
phenny colomon: 10:30Z <tadzik> tell colomon what's wrong with neutro?
12:10 [particle] joined
colomon tadzik: step 1 is your github connection for projects.list no longer works after recent changes there. 12:11
tadzik: step 2 is that neutro's copy of perl6-File-Tools no longer tests cleaner for me on the Mac, so it won't install there. (normal perl6-File-Tools works fine for me, I haven't investigated the difference yet.) 12:12
12:14 agentzh left
masak colomon: yes, I saw that in the backlog later. 12:14
colomon: thanks for your exploratory work. 12:15
12:21 [particle]1 joined, nymacro joined, [particle] left 12:29 bluescreen joined 12:30 bluescreen is now known as Guest6493
masak bbkr++ # I/O suggestion for perl6advent 12:30
12:32 Teratogen joined
Teratogen gosh 12:32
I am unbanned! =)
masak Teratogen: welcome back! 12:33
moritz_ proof yourself worthy :-)
masak moritz_: sounds like something a math teacher would say :) 12:34
Teratogen: ooh, you're the "dammit" guy!
Teratogen: just to clear this up from the start, people here have been getting Perl 6 "out the door" for years and years. 12:35
moritz_ masak: I count that as a compliment :-)
masak Teratogen: claiming otherwise is deluded, confusing, and not very gentlemanlike. 12:36
Teratogen: as a general pro tip, I would suggest that you spend less energy clamoring for Perl 6, and more energy trying it out. have a nice day. 12:37
12:39 toebu joined 12:47 raj joined
Teratogen masak is there a definitive version of Perl 6 out yet? 12:48
masak Teratogen: is there a definitive version of Perl 5 out yet? 12:49
jnthn masak: (is there a JVM language construction kit) Hopefully some day in the not too distant future, Perl 6 grammars + NQP + PAST. ;)
masak jnthn: \o/
jnthn <- ill :/ 12:50
masak jnthn: :/
get well soon!
like, by Friday.
:)
jnthn I hope so, I spend tomorrow and Thursday teaching.
So long as I get better from here rather than worse, it should be OK.
Clearly when you're here we must go for a curry to do way instain bacteria. 12:51
masak yay! do way instain!
jnthn
.oO( which harm jnthn who cannot fright back! )
12:52
Oh no, it was a ?, not a !
...I know "how is babby formed" too well...
masak :D
Teratogen Perl 5 is under ferocious development 12:53
I have v5.10.1 on my machine!
12:54 nymacro left
jnthn The ferocicity is such that you could even have 5.12 on it. ;) 12:54
masak and soon 5.14
Teratogen: but you didn't answer my question.
Teratogen the specification for Perl 5 is the source code for Perl 5 12:55
takadonet morning all
masak Teratogen: that's also not an answer.
takadonet: mroing!
takadonet masak: how are u sir?
masak takadonet: I'm fit and healthy, and my tummy is full of sushi. and u, sir? 12:56
Teratogen there is always a definitive version of Perl 5 out!
the latest version! =)
masak I find the Rakudo Star releases to be very definitive.
Teratogen I guess what I am asking is there a version of Perl 6 that compiles directly to Parrot code?
masak of course there is. 12:57
Teratogen what is it written in?
C?
takadonet masak: just got in for work and looking for any new commits for rakudo :)
masak Teratogen: look, what use is it complaining about things not being there yet if you have no clue whatsoever what's there?
Teratogen that's true =)
masak Teratogen: even as trolls go, you're quite a failure.
Teratogen: go read up. 12:58
Teratogen I am a failed troll =(
takadonet masak: perhaps he is a happy troll?
masak takadonet: is it snowing yet in central Canada? 12:59
takadonet: I think there are so many interesting ways to be a troll. I refuse to argue with substandard trolls. that's just a waste of my time. 13:00
takadonet masak: should be but little warmer then normal around here 13:01
masak: do you know where pmichaud is? 13:04
masak takadonet: Texas?
masak .oO( current state of pmichaud... )
13:11 plainhao joined
masak moritz_: re rt.perl.org/rt3/Ticket/Display.html?id=68498 -- do you have any opinion about the resolution of this one? has it ever been decided how it is to be determined whether an attribute "has been initialized"? 13:13
if you ask me, I'm not sure we need a third layer, besides the one with the actual value, and the defined/undefined layer. adding an initialized/uninitialized layer seems like complicating things a lot just to allow people to initialize things with an undefined value. 13:14
jnthn I wouldn't miss it. But then, I'm an implementor. ;-) 13:16
masak as an end user, I wouldn't miss it either. 13:17
jnthn Well, that's the more important measure. :-) 13:19
plobsing_ phenny: tell arthur-_ how did you obtain libjit? it doesn't appear to be packaged for this distro. did you build from source? which sources did you use? 13:20
phenny plobsing_: I'll pass that on when arthur-_ is around.
13:22 Patterner left
colomon masak: we've had a couple of days with snow here, but nothing that stuck to the ground yet. (though apparently my parents, 2 hours' drive southeast, did wake up with a layer of white on the ground a few days ago -- melted by lunch.) 13:23
jnthn afk for a bit 13:24
masak colomon: we got our layer of white today. but to be honest it looks very wet.
arthur-_ plobsing_: from git
phenny arthur-_: 13:20Z <plobsing_> tell arthur-_ how did you obtain libjit? it doesn't appear to be packaged for this distro. did you build from source? which sources did you use?
arthur-_ ( so, from source ) 13:25
plobsing_: url = github.com/plobsing/parrot-libjit-fb.git
13:26 MayDaniel joined
arthur-_ oh ! 13:28
libjit
not parrot-libjit
sorry
plobsing_: from freshmeat.net/projects/libjit/ 13:29
built from source 13:30
plobsing_ so you used the 0.1.2 sources?
arthur-_ yes
masak not a single use of sub-form &elems in the spectest suite... :/
13:30 xinming joined
arthur-_ libjit-0.1.2 13:30
13:34 Psyche^ joined, Psyche^ is now known as Patterner 13:39 MayDaniel left 13:42 jasonmay_ is now known as jasonmay 13:45 ggoebel left
masak hah! by the time of A12, we had 'as' as a coercion operator! :) 13:47
with the extra twist that 'as' could be omitted in assignments if the lhs was typed. freaky. 13:49
13:50 ggoebel joined 13:54 vxz left, raj left
flussence rakudo: say sprintf('%d %1$d', 4); 14:01
p6eval rakudo 2c66f9: ( no output )
flussence rakudo: say sprintf('%d', 4);
p6eval rakudo 2c66f9: OUTPUT«4␤»
flussence what would I need to do to get that (Str::SprintfFormat.index) to work? 14:02
14:03 ggoebel left 14:08 ggoebel joined
masak flussence: modify the source code of sprintf. 14:08
flussence shouldn't be too hard... .oO( famous last words? ) 14:10
masak I'm trying to find it for you, but I'm not too familiar with Parrot architecture. 14:11
flussence I tried once before and got nowhere... :( 14:12
masak closest I've come so far is src/ops/string.ops, but it just delegates to something, I don't know what.
flussence if nothing else, I'll at least try to write tests for it
(after $dayjob... bah) 14:13
14:14 wallberg joined
masak again, probably best make it Parrot tests. 14:16
dukeleto did i hear "Parrot tests" ? 14:17
flussence maybe!
masak we're talking about embracing/extending sprintf.
dukeleto parrot's sprintf ?
what do y'all want to extend about it? 14:18
flussence it's more a case of making it work as documented... the %1$d syntax is missing right now :(
14:21 [particle]1 is now known as [particle], wallberg left
masak I'd actually like to extend it. this is something that's been bugging me for a while. 14:21
Perl 6 has a %C directive, quite powerful, would be nice to have. 14:22
but it needs to be added at the Parrot level.
14:22 nsh_ left, sbp left
masak it's one of those two-layer problems where nothing happens because few or none have the specific know-how needed to add it. 14:22
just like the DESTROY/DESTROYALL submethods. 14:23
(also, pehaps the need for these features isn't super-high)
dukeleto sorear: ping 14:26
masak: is there a description of what %C does, and what "%1$d" is supposed to do?
masak: if y'all can write failing tests, then maybe i can get parrot people to make them pass 14:27
masak dukeleto: it's a deal.
dukeleto: there's some spec about both, in S32/Str. 14:28
=item sprintf
14:28 wallberg joined 14:29 KyleHa joined 14:30 fhelmberger joined, ch3ck joined 14:31 Guest6493 left 14:32 Guest6493 joined
ch3ck m0insen 14:33
14:37 wallberg left 14:39 ggoebel left 14:43 tzhs joined, ggoebel joined
masak ch3ck: \o 14:50
ch3ck morrn masak 14:52
masak well, mid-afternoon, really. 14:53
14:53 nymacro joined, Guest5940 left 14:54 kanishka joined
ch3ck we follow larry's place :> 14:55
he's still yawning 14:56
14:57 sftp joined 15:03 cjk101010 left 15:20 plobsing joined 15:21 MayDaniel joined 15:22 wtw left, _twitch left
daxim masak, why didn't you tell us you were coming to vienna? :( we could have made you a star guest for apw2010 15:22
masak thank you. :) I wasn't there for the Friday, only Wednesday and Thursday.
for what it's worth, I enjoyed Vienna. I didn't have a lot of time for Perl though, I was there in other business. 15:23
jnthn back 15:26
takadonet jnthn: welcome back 15:32
plobsing phenny: tell arthur-_ I reproduced your error. I debugged by running 'parrot -w perl6.pbc mongo.p6 2>&1 | grep libjit'. Turns out it isn't finding /usr/local/lib/libjit.so.0 . You need to tune your system to be able to find this library. You can configure ld.so.config/ldconfig to treat /usr/local/lib as a library path, install the library into a location that is already a library path (eg:...
phenny plobsing: I'll pass that on when arthur-_ is around.
plobsing .../usr/lib), use LD_LIBRARY_PATH, or add it only to parrot search paths by running parrot with the -X option.
15:34 toebu left, wolveria1 is now known as wolverian 15:36 pmb joined
pmb hi 15:36
PerlJam greetings 15:37
masak hi pmb!
pmb :)
hello hello
15:37 estrabd_afk is now known as estrabd
jnthn #phasers today? 15:43
15:48 raj joined 15:53 cognominal joined 15:59 wallberg joined 16:01 MayDaniel left 16:02 _kaare joined 16:05 cjk101010 joined
dukeleto sorear: ping 16:07
16:09 toebu joined 16:12 tzhs left 16:14 sECuRE left 16:15 raj left 16:16 risou joined
masak jnthn: hope so. it's in 2h43m, right? 16:17
16:20 Trashlord left 16:22 timbunce joined 16:25 rgrau left
jnthn masak: Right, 8pm our thyme. 16:25
masak sage words.
16:26 sECuRE joined, timbunce left, plobsing left
jnthn I wonder if we'll talk about the parsely tree. 16:27
arthur-_ plobsing_: parrot test.pir 16:28
ParrotLibrary
phenny arthur-_: 15:32Z <plobsing> tell arthur-_ I reproduced your error. I debugged by running 'parrot -w perl6.pbc mongo.p6 2>&1 | grep libjit'. Turns out it isn't finding /usr/local/lib/libjit.so.0 . You need to tune your system to be able to find this library. You can configure ld.so.config/ldconfig to treat /usr/local/lib as a library path, install the library into a location that is already a library path (eg:...
masak std: class IDholder {}; class Collar is IDholder {}; class LegBand is IDholder {}; role Pet[IDholder $id: $tag] {}; class Dog does Pet[Collar, "fido"] {} 16:29
p6eval std a194beb: OUTPUT«ok 00:01 124m␤»
masak rakudo: class IDholder {}; class Collar is IDholder {}; class LegBand is IDholder {}; role Pet[IDholder $id: $tag] {}; class Dog does Pet[Collar, "fido"] {}
p6eval rakudo 2c66f9: OUTPUT«===SORRY!===␤Lexical 'self' not found␤»
masak jnthn: any comment? :)
arthur-_ plobsing_: but pir::loadlib__ps('libjit_fb') or die 'could not load libjit_fb'; still dies
jnthn role Pet[IDholder $id: $tag] {} 16:30
What's that colon doing there?
16:30 timbunce joined, nymacro left
masak jnthn: it's a disambiguator. it's from A12. 16:30
jnthn wtf
why are you using syntax from A12 16:31
Rather than the correct syntax in S12?
Well, probably S14 now.
masak I know, I know.
jnthn : is used for invocant nowadays.
It should probably have complained at you a bit differently
masak ah, it used to be longname separator?
16:31 wallberg left
jnthn I guess so. 16:31
It's ; now
No
;;
masak A12 says "If you want to parameterize the initial value of a role attribute, be sure to put a colon if you don't want the parameter to be considered part of the long name"
jnthn The ; is conjectural.
OK 16:32
Then you want ;;
masak right.
jnthn The error could be more awesome but isn't surprising either.
masak nod.
I think STD could complain, though.
jnthn You're trying to use something as an invocant, in a place where there is no invocant.
Aye, true.
$INVOCAT_OK should probably trigger there and say "huh, what?"
16:33 sftp_ joined
jnthn er, the thing that checks $*INVOCANT_OK 16:33
16:33 sftp left
jnthn Not sure if we ported $*INVOCANT_OK into Rakudo's grammar yet, mind. 16:33
Maybe a good weekly challenge if not :) 16:34
masak aye.
16:35 vxz joined
jnthn hopes his bad throat goes away soon, given he's meant to spend most of tomorrow talking. 16:36
moritz_ hopes only the badness of the throat goes away, but the throat itself should stay :-) 16:37
16:37 cls_bsd left
jnthn Maybe I should take a jar of honey as well as my laptop. :) 16:37
Preferable. :P
PerlJam hey, I just noticed that parrot is on github now ... Has anyone worked out how to do the rakudo build based on a gitted parrot?
moritz_ not yet
I mean to give it a shot tonight, but I'd love it if somebody else gets there faster
jnthn ++moritz_ 16:38
16:38 MayDaniel joined, toebu_ joined 16:39 toebu_ is now known as TobiOetiker[T7]
masak huh, A12 has the 'handles' trait working on method declarations. wild. 16:45
16:45 toebu left
jnthn
.oO( "Traits gone wild!" )
16:46
16:46 orafu left
masak "The Apocalypse they didn't want you to see!" 16:47
jnthn It's been years since I read A12. :)
16:48 orafu joined
masak I'm glad we got rid of array- and hash-based delegation. 16:48
jnthn That was in S12 until fairly recently.
It was around sufficiently recently that Rakudo once implemented it, iirc.
PerlJam I thought rakudo has it implemented now.
masak aye.
jnthn Oh. :) 16:49
masak don't think so.
jnthn I don't either
It was in alpha
But didn't make it into ng 'cus handles was totally re-done then.
PerlJam perhaps I've got some faulty wiring in my memory circuits
masak rakudo: class A { has @.x handles <elems> }; say A.new(:x(1, 2, 3)).elems
p6eval rakudo 2c66f9: OUTPUT«3␤»
masak \o/
so, it's gone.
jnthn The other funny one on that front was in S06
sub foo(:@bar) { say @bar.perl }; foo(bar => 1, bar => 2); # guess what this was once spec'd to do :) 16:50
masak jnthn: you got rid of that!?
I never noticed.
jnthn I...hope so
I certainly never implemented it
masak czechs
jnthn If it's still there, feel free to actually kill it. 16:51
It's bonkers.
16:51 domidumont left
jnthn Though, admittedly, sorta cute. :) 16:51
16:51 pmb left
masak yup, still there. 16:51
jnthn whoa :)
masak S06:745.
jnthn handes masak++ the matches ;)
masak jnthn: you remove it. I have a feeling TimToady might smite whoever does it. :P 16:52
he has been defending that bit before.
jnthn :|
OK, leave it then. :)
I can get smote.;
masak :P
jnthn I'd rather get smote than have to implement it. :P
...is taht actually the correct conjugation? I *think* smite is ablauty... :) 16:53
masak $MAX_IMPLEMENTOR_INCONVENIENCE
jnthn: "smitten"?
jnthn No
PerlJam heh
jnthn I think that's a different word
"I'm smitten with Ukrainian girls."
That's quite different to having smited...smote...whatever.
:)
masak what's the present tense of "smitten"?
jnthn It's a noun, ain't it? 16:54
daxim to smite
masak no, it's clearly a participle.
jnthn oh
it's an adjective
dictionary.reference.com/browse/smi...&qsrc=
it means both
masak participle.
jnthn d'oh :)
16:54 justatheory joined
daxim participle 16:54
jnthn Yes, it is :) 16:55
masak people like the FLOSS episode. twitter.com/pilif/status/2039873338867713
16:55 orafu left
masak .oO( if it was that excellent, I don't need to listen to the previous episodes... :P ) 16:55
jnthn It is an adjective too but then it's unrelated to the verb smite. I guess. :)
masak I wouldn't be so sure. 16:56
daxim fact: bruce schneier smites exceptions instead of throwing them
jnthn masak: Hmm. Maybe you're right...it just feels...weird. :) 16:57
16:57 orafu joined
jnthn masak: I'd never considered them as related before :) 16:57
perhaps from PIE base *(s)mei- "to smear, to rub," 16:58
(says the link I posted)
masak the rubbing theory of romance. 16:59
jnthn
.oO( Mmmm...pie... )
masak: Lets, er, not go there. :P
justatheory rubs masak
masak I feel... smitten. eww.
17:00 rgrau joined 17:01 dukeleto left
jnthn www.etymonline.com/index.php?term=smitten 17:01
17:02 rbuels left, orafu left 17:03 orafu joined 17:05 timbunce left, dukeleto joined, timbunce joined, rbuels joined
masak jnthn: I don't think the analogy is that far-fetched. I envision some poor soul struck by lightning or something -- totally comparable to falling in love. 17:06
nom & 17:08
17:08 timbunce left, masak left
jnthn yeah, it sucks when that happens... :P 17:09
17:09 rbuels left 17:10 dukeleto left 17:11 sftp_ left, sftp_ joined 17:14 dukeleto joined, rbuels joined 17:16 Ross joined 17:17 risou left 17:20 Ross left, MayDaniel left 17:21 x3nU left, envi_ joined 17:22 rbuels left, timbunce joined, dukeleto left 17:23 envi left
TimToady sorear> TimToady: How does Any decide whether to stringify as "" or ""-with-warning or "Any()"? 17:23
what we've said about that in the past is there are two different stringifications 17:24
17:24 nsh_ joined
TimToady .Str is low level and indicates the desire for a printable representation, so that produces "Any()" 17:24
17:24 ggoebel left, sbp joined
TimToady .Stringy (used by ~) is high level and indicates the desire to get a string to do further string processing with, so ~Any is supposed to do ""-with-warning 17:25
I note that rakudo does not follow this yet though...
17:26 dukeleto joined
TimToady it's possible that using .Str for the low level is bad though 17:27
jnthn rakudo: say ~(class { method Stringy { "right" }; method Str { "rong" } })
p6eval rakudo 2c66f9: OUTPUT«()␤»
jnthn oh, duh :) 17:28
17:28 envi__ joined
colomon how long till #phasers? 17:28
jnthn rakudo: say ~(class { method Stringy { "right" }; method Str { "rong" } }.new)
p6eval rakudo 2c66f9: OUTPUT«===SORRY!===␤Confused at line 22, near "say ~(clas"␤»
jnthn rakudo: say ~((class { method Stringy { "right" }; method Str { "rong" } }).new)
p6eval rakudo 2c66f9: OUTPUT«rong␤»
jnthn we're doin it rong
colomon: 92 minutes
colomon yow! good thing I asked! #stupid daylight savings.... 17:29
17:29 ggoebel joined
jnthn yeah, they caught me out last week too :) 17:29
17:29 envi_ left
TimToady rakudo: say Any.Stringy 17:29
p6eval rakudo 2c66f9: OUTPUT«Method 'Stringy' not found for invocant of class ''␤ in main program body at line 22:/tmp/IPEsTsUJC3␤»
colomon we don't have Stringy at all yet, do we?
TimToady rakudo: say Str ~~ Stringy 17:30
p6eval rakudo 2c66f9: OUTPUT«1␤»
moritz_ only in some few cases
colomon never mind, I see role Stringy is in there now!
moritz_ rakudo: say Bool.Stringy, Bool.Str
p6eval rakudo 2c66f9: OUTPUT«FalseBool␤»
17:30 kensanata left
bbkr is there a way to write simple AUTOLOAD? i'm trying to write JSON::RPC and more elegant solution is to use it like $client->methodname($methodparams) than $client->call(method=>$methodname,params=>$methodparams). any ideas? 17:31
mkramer AUTLOAD became CANDO 17:32
PerlJam bbkr: are you writing libs for Lacuna Expanse in Perl 6? 17:33
mkramer bbkr: perlcabal.org/syn/S10.html
bbkr mkramer: thanks, exactly what I need!
moritz_ I don't think it's implemented 17:34
bbkr PerlJam: no, JSON-RPC soI can write GetResponse API wrapper later in P6.
17:34 molaf joined
bbkr s/sol/so/ 17:34
mkramer I remember there was some issue with importation 17:36
it's not possible for CANDO to install new methods into the class, or something
jnthn You can easily install new methods in a class today
What you can't currently do is trap unhandled dispatches.
colomon dang, we want p6 Lacuna Expanse libs! 17:40
;)
colomon was just checking how long it will take his supply ship to reach his latest colony...
PerlJam jnthn: surely, that can't be that hard to add :)
mkramer my %bag = Bag(1,2,3); %bag.WHAT() # seriously, what? 17:41
bbkr i don't want to install method into class (because in JSON-RPC list of methods is not known), just want to handle calls to methods that dont exist in my class.
jnthn PerlJam: It's trivial...in 6model. :)
PerlJam jnthn: tease! 17:42
mkramer bbkr: it sounds like you're out of luck in rakudo right now, based on what jnthn just said
TimToady sorear> Why isn't it possible for parametric roles to have parameters in method names? 17:43
std: method ::($name) ($x) { $x + 1 }
p6eval std a194beb: OUTPUT«ok 00:01 123m␤»
jnthn TimToady: ...omg...what?! :-)
TimToady: Not that it's all that nasty to support but... :-)
TimToady assuming $name is a constant
or a generic parameter
jnthn *nod*
TimToady see sorear++'s question
jnthn PerlJam: Yes, from a Rakudo point of view I'm teasing. On the other hand, I do have working a implementation that'll handle it that runs on .Net and Parrot by now. :-) 17:44
TimToady rakudo: method ::($name) ($x) { $x + 1 } 17:45
p6eval rakudo 2c66f9: OUTPUT«===SORRY!===␤Indirect name lookups not yet implemented at line 22, near " ($x) { $x"␤»
TimToady looks like rakudo parses it right too
17:46 alester joined
jnthn Oh, that's a start at least. :) 17:46
Can you do stuff like method ::('get_' ~ $name) ($x) { ... } 17:47
std: method ::('get_' ~ $name) ($x) { ... }
p6eval std a194beb: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/NzpsYROr_C line 1:␤------> method ::('get_' ~ $name) (⏏$x) { ... }␤ok 00:01 123m␤»
jnthn whee
TimToady which is just a warning 17:48
rakudo: method ::('get_' ~ $name) ($x) { ... } 17:49
p6eval rakudo 2c66f9: OUTPUT«===SORRY!===␤Indirect name lookups not yet implemented at line 22, near " ($x) { .."␤»
17:53 impious joined 17:54 sethp joined 17:56 M_o_C joined 17:58 cdarroch joined, cdarroch left, cdarroch joined
TimToady Util: something is really wonky about your permutation sort; the permuter uses [>] while the sorter uses [le] 17:59
18:00 dakkar left
TimToady oh, wait, I see the indirection now 18:01
18:02 wallberg joined
TimToady was confused because the two routines use @a with different types 18:02
TimToady is also suspicious that it's possible to write a more efficient permuter if it keeps the state somewhere besides the last permution 18:04
18:05 timbunce left, timbunce joined
TimToady seems like a gather/take would be useful somehow 18:05
another thread of thought is that we could build in the permution generator like other languages do 18:06
*tation 18:07
bbkr mkramer: indeed, I found no workaround to catch unhandled dispatch. so I allow to provide list of methods to install for now "JSON::RPC::Client.new(methods => <foo bar>)" and install them using ^add_method. and wait for CANDO implementation. 18:10
moritz_ bbkr++ # nice workaround
18:11 x3nU joined 18:20 spq1 joined
moritz_ phenny: tell masak re RT #68498, I'm not aware of any resolution (or even resolution approach). Maybe the information could be kept in a contextual hash? 18:21
phenny moritz_: I'll pass that on when masak is around.
18:25 thundergnat joined, timbunce left
thundergnat Hi #perl6 18:25
PerlJam greetings thundergnat 18:26
moritz_ holla
colomon Hi thundergnat!
18:26 sethp left
thundergnat I took a whack at writing my first perl6 module: Sort::Naturally. It's on github at github.com/thundergnat/Sort-Naturally. 18:27
PerlJam thundergnat++
thundergnat Comment, suggestions and dope-smacks welcome. (well not the dope-smacks so much...)
unless completely necessary... 18:28
18:28 bbkr left
takadonet git clones it... 18:28
moritz_ ooh, nice use of list comprehension in the example
my @ips = ((0..255).roll(4).join('.')for 0..99);
18:29 cjk101010 left 18:30 impious left
moritz_ thundergnat: have you added it to the list on github.com/perl6/ecosystem/ ? 18:30
thundergnat moritz_: Umm no
moritz_ thundergnat: oh, you didn't have access... now you do
thundergnat: if you add it there, it'll appear on modules.perl6.org/ after a while 18:31
18:31 bbkr joined
colomon "For liberal values of speedy." 18:32
thundergnat moritz_: I'll give it a try. If I have difficulties I may ask for assitance.
colomon :)
moritz_ thundergnat++
18:36 mberends joined
moritz_ pushed to branch parrotgit, which starts with the conversion 18:37
18:38 timbunce joined 18:39 risou joined, wallberg left
TimToady thundergnat: would it help the order-of-magnitude calculation to treat leading 0's as non-numeric? 18:39
thundergnat Timtoady: I experimented with treating leading zeros differently and it made some things better, but led to other odd behaviors. 18:41
I reverted back to the simplest case. 18:42
It makes for some oddities under certain circumstances, but sorting numbers as strings is going to be somewhat fragile no matter what. 18:43
If you are expecting it to exactly match nemeric sort that is.
*numeric 18:44
In practice, what I have is good enough for most circumstances. And makes more sense than perl 5 Sort::Naturally IMO. 18:47
18:48 timbunce left 18:49 timbunce joined 18:51 perigrin_ is now known as perigrin 18:52 KyleHa left, csl joined 18:55 stkowski joined, timbunce left 18:56 csl left, timbunce joined
thundergnat Woo Hoo! After fumbling around a bit, managed to add Sort-Naturally to ecosystem repository. 18:59
Util #phasers time! 19:00
thundergnat I'll figure out git sooner or later.
sjohnson git! 19:02
git is great
19:04 masak joined
masak mmm, nom. 19:04
phenny masak: 18:21Z <moritz_> tell masak re RT #68498, I'm not aware of any resolution (or even resolution approach). Maybe the information could be kept in a contextual hash?
masak moritz_: sounds brittle and, again, is it worth it? 19:05
moritz_ dunno
tadzik hello 19:07
moritz_ #phasers right now
19:07 kanishka left 19:11 daxim left 19:13 timbunce left 19:18 thundergnat left
sorear dukeleto: pog 19:23
TimToady is that a cross between a pig and a hog?
19:24 x3nU left 19:25 molaf left, x3nU joined
tadzik colomon: what exactly fails for you? 19:28
(neutro, file::tools)
19:29 xabbu42 left
colomon tadzik: gist.github.com/ 19:31
19:31 lamstyle left 19:32 kanishka joined
tadzik colomon: did you accidentally a part of an url? :) 19:33
colomon tadzik: apparently yes. :\ 19:34
gist.github.com/669657
masak everybody knows you need to accidentally the whole URL... :)
tadzik oh wait, and projects.list is broken or something 19:35
colomon: how about with --v?
testing will get more verbose
19:35 bbkr left
dukeleto sorear: pong, in #parrot 19:35
colomon tadzik: oh, yes, projects.list is definitely broken. You should be able to see that locally if you try to do an update.
tadzik yeah, just saw it 19:36
doesn't LWP::Simple like https? :S
everything suddenly got so broken
sorear LWP::Simple doesn't come with https by default 19:37
because of crypto export paranoia
you need to install Crypt::SSLeay
colomon tadzik: PERL6LIB=tmplib bin/neutro --v neutro appears to generate the exact same output I've already sent you.
tadzik well, it's even perl6-lwp-simple even
colomon sorear: is that a p6 module?
tadzik s:2nd/even//
masak github/gist has switched (more) to https recently, methinks.
sorear colomon: no, I thought you were talking p5
masak: entirely
19:37 bbkr joined
tadzik colomon: does macos have wget by default? 19:38
masak sorear: do you know why?
colomon tadzik: maybe?
19:38 envi__ left
tadzik colomon: mind checking? 19:38
colomon I don't remember installing it, but my memory is weak.
I definitely have it here.
sorear masak: firesheep
tadzik anyone knowing?
colomon looks like not, maybe
?
tadzik crap 19:39
colomon "If, like me, you are missing wget since you upgraded to Leopard"....
tadzik well, we could git-clone it, since we rely on git anyway
19:39 sftp_ left
colomon git clone it and copy it into place? 19:39
tadzik yeah, sounds like a plan
colomon tadzik++
tadzik I hope I'll be able to make it in half an hour, battery is getting tired 19:40
what does it zero-depth git clone look like? 19:41
dukeleto tadzik: what now? 19:42
tadzik: what do you mean "zero-depth" ?
tadzik dukeleto: nothing now. I recall a way to clone a git repo w/o its history 19:44
moritz_ just knows that from git-svn
19:45 rbuels joined
dukeleto tadzik: there is something called a "shallow clone" but it is still in development, it is not a git feature ready for public consumption 19:47
tadzik I see
masak sorear: ah. 19:49
tadzik colomon: strange, tests passed for me. WIll look into them now
Util tadzik: OS X has `curl` by default. Just be sure to use the -o or -O options, or the URL retrieved goes to STDOUT
colomon tadzik: what platform? For me, once I fixed the https: thing, Linux worked but OS X (Leopard) fails. 19:50
moritz_ colomon: do you have compiled .pir files in your parrot install location, or in ~/.perl6/lib/ ?
colomon probably in ~/.perl6/lib
why?
tadzik colomon: Linux
moritz_ colomon: it might be a source for hard-to-reproduce errors 19:51
colomon okay, blew .perl6 away and trying again 19:52
still the same error. :(
tadzik lemme look into these tests
colomon: does 'some_file'.IO ~~ :d work for you? 19:53
colomon > "README".IO ~~ :d 19:54
Bool::False
that would be yes, right?
tadzik well, I guess it does. Could you enter the dir and run the tests manually?
mbuild, ufo&&make, whatever
colomon cd neutro/tmplib ?
tadzik cd ~/.neutro/src/*File*
colomon I see. 19:55
"mbuild"?
tadzik hmm, I thought mbuild is verbose
yep, from Module::Tools
but as I see `mbuild test` is not verbose for some reason, so go for ufo or test manually 19:56
Util tadzik: If the project is on GitHub, you can get a tarball or zipball of the project with no Git repo detail.
Is that what you meant by "zero-depth"?
github.com/parrot/parrot/tarball/master
masak std: my Str subset Username; 19:57
p6eval std a194beb: OUTPUT«ok 00:01 118m␤»
tadzik Util: nah. I was actually trying to use just LWP::Simple, but it has no SSL so it's pretty useless for GH now
colomon tadzik: ufo's make test reports "All tests successful."
tadzik hrm, funny 19:58
masak rakudo: my Str subset Username;
p6eval rakudo 2c66f9: OUTPUT«===SORRY!===␤Unknown declarator type at line 22, near ";"␤»
tadzik . o O (masak submits rakudobug)
masak: you run MacOSX, no? 19:59
masak tadzik: I do.
masak submits rakudobug
tadzik masak: could you try to reproduce colomon's problems? Bootstraping neutro
masak sure.
colomon masak++
tadzik ++masak 20:00
masak so, (1) pull neutro, (2) ...?
tadzik PERL6LIB=tmplib bin/neutro neutro
and preferably remove your ~/.neutro first
Util tadzik: Once you know the fullname of the file it is going to serve, you can get it without SSL. 20:01
curl -O download.github.com/parrot-parrot-R...e42.tar.gz
tadzik Util: yeah, but that is curl, so we get one case for OSX, one for Linux, another one for windows probably. I'll just go for git for now 20:02
masak: just gitpushed fixed neutro
20:02 masak left
Util For the record, Curl works on Win32 (after downloading the native .exe) and on Linux. 20:02
20:03 masak joined
masak sorry, my connection is not the best right now. 20:03
tadzik yeah, but that's still an additional dependency
Util TimToady: I used the first coherent permutation algorithm I could find. 20:04
tadzik 2102 tadzik | masak: just gitpushed fixed neutro
Util Eventually I will read Knuth for the best algorithm.
Right now, I am more interested in a better interface; something like:
my $p_iter = permute(< a b c >); while my @p = $p_iter->next { ... }
or
my $p_iter = permute(< a b c >); for $p_iter.iterate { ... }
masak Util: how about `for permutations(< a b c >) { ... }`? 20:05
colomon Util: seems like permute / permutations should just return a lazy list. It's the p6 way. 20:06
tadzik . o O (advent calendar post - The P6 Way)
Util masak: That's great, as long as it is lazy.
masak Util: it is, as long as you use a gather or something. 20:07
20:07 ch3ck left 20:08 x3nU left
masak tadzik: the P6 Way that can be told is not the unvarying P6 Way. 20:09
20:09 sftp joined
tadzik masak: how is the testing? 20:10
masak slow. I'm having only irregular interwebs. 20:11
20:11 lamstyle joined
tadzik bah. I have no internets at home, I'm now in the shopping centre, and the battery dies in 7 minutes :) 20:11
dalek : d3e1c88 | tadzik++ | misc/perl6advent-2010/topic-brainstorming:
Updated advent calendar ideas
20:12
20:12 hudnix left, risou left
masak massages the ethernet cord, trying to make the bits flow faster 20:13
20:14 MayDaniel joined
tadzik is quite suprised looking at gil.di.uminho.pt/users/smash/rakudo-bench.html 20:16
why the enormous jump on 2010.09?
seen smash 20:17
aloha smash was last seen in #perl6 4 days 4 hours ago saying "colomon: i'll try it later, the process takes hours to run.. thks".
tadzik my battery's getting dead
colomon, masak: feel free to msg me if you find out something funny. I'm our for now
masak tadzik: \o
20:18 tylercurtis joined
sorear hi tylercurtis 20:18
masak tylercurtis! \o/ 20:19
sorear you just missed #phasers... moritz_ thinks I need a blog
masak +1 20:20
20:22 hudnix joined
masak it's comforting to see that do_nothing.p6 is actually trending downwards all the time. reaching 1s will be a big step. 20:22
dukeleto masak: i try to do nothing as quickly as possible all the time 20:24
sorear: you do need a blog :)
sorear: take a look at gitwrite.com
20:25 TobiOetiker[T7] left, plainhao left
tylercurtis HHi, masak, sorear! Sorry for the slow reply. Building gcc in a vm doesn't seem to be friendly to my laptop's functioning. 20:28
masak :)
TimToady nature abhors a vm 20:31
masak perhaps nature prefers physical machines. 20:32
sjohnson OT q: anyone care about the Go language?
dukeleto sjohnson: define "care" 20:33
sjohnson thinks it might be worth learning / might be worthy of relacing C, etc
dukeleto sjohnson: i would like to see someone hacking on Go on Parrot. But that isn't going to be me.
masak sjohnson: I like it, and I'd like to use it some time, but frankly I don't do that kind of coding a lot.
sjohnson: closest I've got lately is writing Druid code in C. but that's partly because I wanted to learn C better. 20:34
sjohnson yeah i kind of want to learn C better too but i wonder if Go will be a better choice
with C1X coming out (maybe), it looks like C will be good enough to stick around for decade(s) to come
masak sjohnson: it all depends what your goals are, I suppose. 20:35
sjohnson: languages aren't objectively better or worse than others.
sjohnson to give you an example, i hate writing stuff in JS and PHP, but i really enjoy writing in Perl 20:36
i suppose i'm looking for the right application language, and dont really have the time to "Try em all out"
20:36 MayDaniel left
sorear go will fail for the same reason Plan 9 failed 20:36
it's not a sufficiently compelling improvement 20:37
masak sorear: bad acting? :P
sorear C is good enough to block adoption of successors
masak sjohnson: try as many as you can.
TimToady wonders why it's so hard to write applications in applicative languages... 20:38
sjohnson good point. also, ive been reading a lot of experts say they think C++ is crap
linus, rms, to name two
.oO(wonders if TimToady doesn't like C++ too)
20:39
either8
masak sjohnson: Erik Naggum didn't like C++ either. Steve Yegge doesn't like C++ either.
sjohnson i haven't heard one expert say that they think C is crap. makes me wonder about C++ 20:40
arnsholt masak: There was very much Naggum didn't like =)
sjohnson masak: this guy doesnt seem to like Perl much either 20:41
TimToady we had a goaround or two about Perl, in fact. :)
masak TimToady: what, you and Naggum?
TimToady in fact, iirc, the oatmeal and fingernail clippings remark was in a reply to Erik :) 20:42
I could be misremembering
masak arnsholt: I still haven't figgered out how he manages to be so *angry* all the time without stepping over more lines than he does.
20:42 y3llow_ joined
sjohnson thanks masak, im checkin out yagge's thoughts 20:43
20:43 pothos_ joined
sjohnson TimToady: may i ask your expert opinion on C++? *puppy dog eyes* 20:43
masak arnsholt: his distinguishing trait, however, is easy to identify. he simply runs circles around all his debating opponents. every time they try to up the ante, he just puts in a bit more effort and *crushes* them. 20:44
20:44 pothos left, y3llow left 20:45 y3llow_ is now known as y3llow, pothos_ left, pothos joined
TimToady I misrembered, it was a reply to Tim Bradshaw 20:46
masak a lot of Erik's criticism of Perl seems to be out-of-date, or directed to a style of programming that I don't often see in Perl circles nowadays. 20:47
dalek kudo: 4d33bae | masak++ | src/core/Cool-str.pm:
[Cool-str] fixed .trans case where @changes is []

This un-breaks one of the tests in trans.rakudo.
20:49
masak that was an "oops, missed a spot" commit.
sorear C++ is a brilliant solution to the wrong problem 20:50
if Bjarne had seen garbage collection coming, C++'s design would be a lot more relevant today 20:51
sjohnson if C++ had garbage collection, the language would shrink back down to the size of C
sorear sure, it's possible to retrofit a GC onto C++. But a lot of C++'s features only make sense in the context of object lifetime tracking
20:52 takadonet left
masak sjohnson: if you haven't seen it yet: sites.google.com/site/steveyegge2/tour-de-babel 20:52
sjohnson masak++ yeah i found this link after you told me his name 20:53
it's pretty much exactly what i wanted to see
people who aren't afraid to go on rants from time to time
masak sjohnson: he mentions C++ in other posts as well; never in a good context.
sorear other features I'd like to see in C++, partial list: * Parametric polymorphism * Metadata-based module imports
moritz_ sjohnson: yosefk.com/c++fqa/ 20:54
sjohnson masak: how would i go about finding them?
moritz_ like to see compile time type safety
masak sjohnson: easiest might be to just read everything he wrote. you probably won't regret it. 20:55
sorear moritz_: that's the only kind of type safety C++ has
moritz_ well, not in the sense that I would like 20:56
sjohnson thanks for everyones opinions
i am finding the C++ pros/cons arguments very interesting
moritz_ when you instantiate a template class, you can get (and often do get) an error not at the instantiation location, but in the templated class
which means that compiling the template class wasn't type safe 20:57
sorear ah
that's really where I'm going with "parametric polymorphism"
TimToady looks for a generic carpet to sweep generic problems under
sorear templates that are compiled once
sjohnson heh
moritz_ TimToady: my wife has announced interest in such a carpet, when you find one 20:58
dukeleto TimToady: i have a nice GenericPersianRug you can have
TimToady I suppose it came from a store that was going out of business generically? 20:59
flussence
.oO( from a RugFactoryFactoryFactoryFactory... )
sjohnson moritz_: thanks for the link 21:04
21:08 KyleHa joined
Tene There are like three persian rug stores on the same street in downtown palo alto. 21:08
Kind of weird.
21:08 BooK joined
masak Tene: there's got to be a pun in there somewhere. 21:09
TimToady they have the same street down in palo alto? that really *is* weird... 21:12
especially since palo alto is up from here...
TimToady wonders where palo soprano is... 21:13
moritz_ rakudo: my $x = (1,2,3); my $y = map {$^x * $^x}, $x; say $x.perl 21:14
p6eval rakudo 2c66f9: OUTPUT«(1, 2, 3)␤»
moritz_ shouldn't this be 9 ?
TimToady maybe if you print $y
Tene moritz_: you never assign to $x?
well, s/never/once/
moritz_ rakudo: my $x = (1,2,3); my $y = map {$^x * $^x}, $x; say $y.perl
p6eval rakudo 2c66f9: OUTPUT«(9)␤»
moritz_ right, stupid me
TimToady std: my $x = (1,2,3); my $y = map {$^x * $^x}, $x; say $x.perl 21:15
p6eval std a194beb: OUTPUT«ok 00:01 123m␤»
TimToady hmm, I guess it only warns on unused parameters
masak programming is all about those little details :)
moritz_ std is kinda stoic about runtime behaviour :-)
indeed
I just wanted to bring some reality to a p6l discussion 21:16
TimToady std: my $x = (1,2,3); -> $y { say $x.perl }(map {$^x * $^x}, $x); 21:17
p6eval std a194beb: OUTPUT«Potential difficulties:␤ $y is declared but not used at /tmp/MEo93PPH1o line 1:␤------> my $x = (1,2,3); -> ⏏$y { say $x.perl }(map {$^x * $^x}, $x);␤ok 00:01 125m␤»
masak I've heard that when a p6l discussion is brought together with some reality, they both turn into photons.
TimToady I guess that rules out alphas and betas 21:18
colomon (backlogging) I think I've said it here before, but by far my biggest complaint about programming in C++ is that it is so insanely verbose. 21:19
consider: say "There were $count $items"; 21:20
TimToady you should see COBOL++
colomon versus: std::cout << "There were " << count << " " << items << std::endl;
or @array.sort 21:21
versus std::sort(array.begin (), array.end ());
21:22 dju joined
colomon I wouldn't give you 10 cents for adding garbage collection to C++, but a tersification project would be awesome. 21:22
Tene colomon: C++ backend to rakudo, obviously. 21:23
21:23 toebu joined, toebu is now known as TobiOetiker[T11] 21:27 dju left, dju joined
sjohnson just got an email back from theo de raadt 21:33
the only body in the email: "c++ is a pile of crap."
21:34 ch3ck joined
sjohnson colomon: thanks for your input 21:35
colomon: ++
oops 21:36
masak sjohnson: what a delightful coincidence.
sjohnson colomon++
masak: coincedence?
21:36 Guest6493 left
sjohnson you mean theo's reply? i actually emailed him about an hour ago :] 21:36
masak sjohnson: actually, I'm assuming it wasn't.
sjohnson asking for his expert thoughts
masak and you got'em. 21:37
sjohnson oh ya
im glad he replied
masak you should print the email, frame it, and put it on the wall. 21:38
your wall, I mean. not TimToady.
21:40 hudnix left 21:41 uniejo joined
mkramer moritz_: I'm trying to get a handle on how %-sigiled variables are made to unroll, and how they get they automatically get made into hashes 21:41
could you give me some direction for where to go in the source?
21:42 jaldhar left
mkramer in assign.pir I see that if a container isn't scalar then delgate to !STORE 21:44
sjohnson masak: :) i might paste it to a blog i might start 21:45
just my day-to-day musings in life i suppose
mkramer but what created .cont in the first place?
masak sjohnson: maybe it's high time you got a Twitter account. 21:46
21:46 hudnix joined
masak sjohnson: then you could write "Emailed Theo de Radt about his expert opinion on C++. Got back 'c++ is a pile of crap'" 21:46
moritz_ src/core/Hash.pm method !STORE (to mkramer)
sjohnson haha 21:47
good call
21:47 hudnix left
mkramer moritz_: no, that's too late in the process. I understand that assignment to a %var eventually delegated to Hash.!STORE, but by the type of assignment, anything with a %sigil is already a Hash 21:47
I want to find where in the source an LHV with a % becomes a Hash 21:48
*by the time of assignment
21:48 starcoder left
moritz_ mkramer: no, STORE is exactly where conversion to Hash happens 21:49
mkramer Why delegate storage to Hash.!STORE before the container is actually a hash? 21:50
21:50 timbunce joined
moritz_ doesn't understand the question 21:51
consider
my %h;
%h = <a b>;
what happens is
%h is being typed to Associative
and intialiazed by the compiler with Hash.new
for the second line, &infix:<=>(%h, <a b>) is called 21:52
which delegates to %h.!STORE(\<a b>)
21:53 starcoder joined
moritz_ which in turn wipes its internal storage, and stores <a b> in the internal storage location 21:53
still with me? 21:54
... apparently not
mkramer moritz_: I'm still here
trying to follow
moritz_ phrased differently, infix:<=> is coercive if the RHS has a sigil of @ or %
and that coercion happens in method !STORE 21:55
mkramer what's the sigil of $object->method_returning_a_list?
moritz_ none 21:56
you can't assign to a list
mkramer RHV's have sigils
moritz_ you can only assign to variables
RHV?
pmichaud you can assign to a list
it's called "list assignment", in fact :-)
moritz_ you take over then, pmichaud :-) 21:57
mkramer my $stuff = $object->list_method
pmichaud right now (unless it's changed during my "absence") rakudo does hash and array variable initialization incorrectly
masak don't think that's changed. 21:58
moritz_ mkramer: that still assigns to $-sigiled variable
pmichaud also, it's $object.list_method
no arrow
mkramer bnahh sorry, perl5 on the brain
pmichaud currently, my $stuff = $object.list_method invokes list_method on $object, then itemizes the result and stores it in $stuff 21:59
moritz_ mkramer: I think what you're aiming at is that there's also a non-syntactic distinction between flattening and non-flattening things 22:00
rakudo: sub a() { [1, 2, 3] }; sub b() { 1, 2, 3 }; .say for a; .say for b;
p6eval rakudo 2c66f9: OUTPUT«1 2 3␤1␤2␤3␤»
mkramer Yes, that's one thing
Basically, I just don't understand sigls. At all. 22:01
22:01 ch3ck left
mkramer I know what they *do*, I don't know how they do it 22:01
moritz_ with magic[tm].
pmichaud sigils on variables provide information about the variable
masak alpha: say elems 1, 2, 3
p6eval alpha : OUTPUT«3␤» 22:02
masak rakudo: say elems 1, 2, 3
p6eval rakudo 2c66f9: OUTPUT«Could not find sub &elems␤ in main program body at line 22:/tmp/Lc556CVpUb␤»
masak pmichaud: fixing this in master is as simple as exporting some .elems method, right?
pmichaud masak: probably not
mkramer and since everything they do can also be done without the syntactic distinction, there must be some more fundamental process to which both @alists and $obj.list_method are subjected to get them to behave exactly the same way
pmichaud masak: probably needs a separate elems sub
masak pmichaud: ok.
pmichaud (see 'sort' and 'join' for comparison)
masak thanks, I will. 22:03
22:03 tylercurtis left
pmichaud mkramer: I disagree with the premise there (more) 22:03
moritz_ mkramer: internally, Rakudo uses a wrapping layer for distinguishing flattening and non-flattening things
pmichaud the syntactic distinction is significant
@abc flattens in a flattening context, while $abc does not
moritz_ rakudo: my $a = (1, 2, 3); say $a.PARROT; my @a = (1, 2, 3); say @a.PARROT
p6eval rakudo 2c66f9: OUTPUT«Perl6Scalar->Seq␤Array␤»
pmichaud that example is probably misleading. 22:04
rakudo: my $a := (1,2,3); my @a := (1,2,3);
p6eval rakudo 2c66f9: ( no output )
moritz_ pmichaud: feel free to provide a better one :-)
pmichaud rakudo: my $a := (1,2,3); my @a := (1,2,3); .say for $a; .say for @a
p6eval rakudo 2c66f9: OUTPUT«1 2 3␤1␤2␤3␤»
pmichaud or, even more significantly:
moritz_ rakudo: my $a := (1,2,3); my @a := (1,2,3); say $a.PARROT; say @a.PARROT
p6eval rakudo 2c66f9: OUTPUT«ObjectRef->Parcel␤ObjectRef->Parcel␤» 22:05
moritz_ doesn't understand the implementation at all
pmichaud rakudo: my $a := (1,2,3); my @a := $a; .say for $a; .say for @a; say @a =:= $a;
p6eval rakudo 2c66f9: OUTPUT«1 2 3␤1␤2␤3␤0␤»
pmichaud er
rakudo: my $a := (1,2,3); my @a := $a; .say for $a; .say for @a; say @a === $a;
p6eval rakudo 2c66f9: OUTPUT«1 2 3␤1␤2␤3␤Bool::True␤»
pmichaud flattening and non-flattening cannot be determined strictly from the value of a container
even in this last example, where $a and @a are in fact the same object, they end up with different behaviors in list context 22:06
mkramer Ok - that last example surprised me 22:07
pmichaud it needs to be that way so that the following works.... 22:08
rakudo: sub abc(@a) { .say for @a; }; my $b := (1,2,3); abc($b);
p6eval rakudo 2c66f9: OUTPUT«1␤2␤3␤»
pmichaud when @a is bound to $b, it flattens in list context 22:09
masak pmichaud: according to which rule are some of those subs 'proto' and some 'multi'?
pmichaud masak: I don't know the answer to that one; multi+proto changed on me and I haven't caught up to the new spec. jnthn++ and/or colomon++ know the answer, I think.
sorear pmichaud: moritz_ thinks niecza needs a blog. What should I use?
pmichaud sorear: whatever blog platform you're most comfortable with :-)
I'm a fan of wordpress lately 22:10
masak pmichaud: I don't think Rakudo has changed in that regard.
sorear I'm not comfortable with any of them
pmichaud (based on the perl6advent calendar last year)
sorear In the lack of experience sense, not the "tried em, hated em"
pmichaud as soon as I come up with a name for my blog, I'll be setting it up on wordpress
so, count me as a vote in favor of wordpress :-)
masak sorear: if you can guess some of your requirements in advance, we can give you more specific tips.
pmichaud so far I haven't been a fan of drupal 22:11
moritz_ sorear: what's more important for you, get goiing quickly, or have a system you really like?
pmichaud in my case, "system you like" would be more important, since you have to live with it longer :-)
I keep thinking about rewriting my wiki software in p6, in which case I'd probably do something with that. 22:12
but that's not likely to happen anytime soon, so I need "blogging software I like" sooner than I can write it :)
colomon rakudo is still on the old multi+proto designed from a year or so ago. jnthn++ is working on the new one with his current "side" project.
pmichaud colomon: there's an even older multi+proto than the one rakudo is on 22:13
I'm not caught up with the one it's currently on that explains how/when one uses proto.
moritz_ -> sleep
colomon ah
masak I'm looking at the column of multis and protos, and I don't see the pattern.
sorear as a reader, I think most NIH blog engines are annoyingly limited
colomon masak: I'm not sure there is a real pattern. where are you looking?
sorear cf the lack of comments and recently broken escaping in psyde
masak sorear: point taken. 22:14
sorear out of responsibility I'd rather user something established
masak sorear: broken escaping was totally my fault. I should have test coverage there, and I don't. psyde is still under construction and very much my own pet project. thanks for catching that one, by the way.
sorear: also note that I haven't recommended you use psyde :) 22:15
pmichaud masak: perhaps a good question is... if you weren't doing psyde, what would you use?
22:15 hudnix joined
masak phenny: tell tadzik that neutro bootstrap worked fine on my box. 22:15
phenny masak: I'll pass that on when tadzik is around.
pmichaud is surprised how many positive comments there have been about the floss interview. 22:16
sorear my priorities are reasonably simple, well debugged, and supports sane standard blog behavior
masak pmichaud: I'm also partial to Wordpress. blog.perl.org looks good too. but I guess the real answer is that if I weren't doing psyde, I'd long for something very much like it. :)
pmichaud masak: +1 :)
colomon masak: glancing at the end of Cool-str.pm as an example, I think I used "proto sub" and someone else use "multi" or "multi sub" and as far as I know, the choice was completely arbitrary.
pmichaud that's how I ended up with PmWiki :)
sorear feed generation, comments; if comments require authentication, it should be an established auth platform
masak colomon: good. that's consistent with what I'm seeing. 22:17
sorear: there have been problems with blog.perl.org -- I think Wordpress is the safer choice there.
22:17 risou joined
masak better, more centralized maintenance. 22:17
pmichaud although I'm normally partial to google-sponsored tools, I've not been that impressed with blogger either.
masak sorear: also, I don't know whether I should be flattered or slightly peeved at having psyde be taken as an example of a "NIH blog engine". NIH is, I guess, an accurate description. but reinventing the wheel is not my main objective -- exercising Rakudo is. 22:19
22:19 am0c^ left
mkramer rakudo: sub rlist{ (1,2,3) }; .say for rlist; 22:21
p6eval rakudo 2c66f9: OUTPUT«1␤2␤3␤»
mkramer flattening sans sigil 22:22
this is where I'm getting stumped
sorear mkramer: rlist() returns a flatteny thing
expressions don't return values
pmichaud flattening tends to be the default behavior
things don't flatten when they've been explicitly put into a scalar container of some sort. 22:23
sorear they return storage location + flatteny bit + rwy bit
the details of this vary a lot between compilers
22:23 flussence_ joined
pmichaud imo, the compiler details are as yet less interesting than what the spec requires 22:24
plobsing_ arthur-_: I can no longer reproduce the problem after running 'sudo ldconfig'. It loads the library and generates a thunk for 'ipttp' fine for me.
pmichaud std: sub rlist{ (1,2,3); }; 22:25
p6eval std a194beb: OUTPUT«ok 00:01 121m␤»
22:25 flussence left
mkramer a storage location + flatteny bit + rwy bit 22:25
Alright, now that is what I've been driving towards 22:26
a flatteny bit - there is one. I knew there had to be something like that
pmichaud rakudo has a "don't flatten" bit
jnthn masak: I didn't follow the proto/multi question from earlier, but try asking me when I don't have such a headache. :)
masak hands jnthn a mug of warm milk and honey 22:27
jnthn masak: If you want to play with the latest semantics though, grab NQP.Net, 'cus it's probably closest to correct on them, or at least the bits it implements.
It's also the only thing that is somewhat clueful about :U and :D too
o/ pmichaud
masak ooh
pmichaud o/ jnthn
jnthn pmichaud: How's things? Missed having you around. :)
pmichaud things are... so-so. I'm in a tuit deficit. :( 22:28
sorear out
22:29 masonkramer left
mkramer Thanks for your kind attention, I'm out too 22:29
22:29 masonkramer joined
masak &elems passes manual test. running spectests Justin Case. 22:30
22:30 fhelmberger left
jnthn So long as you don't run then Justin Beiber. 22:30
masak unless I run him 800% as slow. 22:31
22:31 hudnix left
jnthn Well, if you're using Rakudo... :P 22:33
22:33 hudnix joined
masak on the bright side, each Star release has gotten faster at doing nothing :) 22:34
we're down to 1.3 seconds now.
22:37 ch3ck joined 22:45 PerlJam left
jnthn masak: That's important to reduce too, since we have to do it a lot of times in the test suite. :) 22:47
pmichaud yes, I was a bit surprised (shouldn't have been) at how much spectest time was in startup. 22:48
afk, dinner 22:49
22:51 whiteknight joined
masak it's important to reduce for almost every reason imaginable. 22:51
in fact, I'll go as far as to say that it's probably a great one-dimensional measure of how seriously the Rakudo team takes performance.
i.e. it sits at the cross-section of "probably not too hard" and "very important for PR" 22:52
jnthn masak: "not too hard"? :) 22:53
If we want to REALLY do well there we need the serialization stuff.
I promise you it's not easy. :) 22:54
Tene jnthn: yeah, the traditional "just wait while jnthn works on serialization" plan.
Easy for everyone but you, so we just drop the outlier...
masak I didn't mean to trivialize anyone's efforts.
blog post! strangelyconsistent.org/blog/novemb...-ex-shogun
jnthn Tene: It's not the _only_ think that matters, and I very much encourage improvements. I just think that's the one thing that stands a chance of giving us the biggest improvement there. 22:55
Tene jnthn: agreed
22:56 M_o_C left 23:00 KyleHa left, _kaare left 23:03 TobiOetiker[T11] left
jnthn sleep & 23:03
masak 'night, jnthn. dream of kept voices and ache-free heads.
23:05 REPLeffect left 23:16 TobiOetiker[T11] joined, risou_ joined, ch3ck left 23:18 REPLeffect joined 23:19 risou left, uniejo left 23:29 ch3ck joined
ingy hi 23:33
23:35 masak` joined 23:39 masak left, masak` is now known as masak 23:44 sftp left, plobsing_ left 23:46 plobsing joined 23:48 orafu left, orafu joined 23:52 stkowski left 23:53 vxz left 23:55 meppl left 23:57 orafu left 23:58 orafu joined
dalek rakudo: e6486e5 | masak++ | src/core/Any-list.pm: 23:59
rakudo: [Any-list] added &elems sub
rakudo:
rakudo: Old Druid code showed that this used to work in alpha. Adding it
rakudo: back.