»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot: perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 27 June 2009.
last Hello out there. How does one use STD.pm (at home, not the irc version here)? 01:12
TimToady I've used it occasionally 01:13
pugs_svn r27563 | lwall++ | [STD] start splitting out 'need' semantics from 'use'
r27563 | lwall++ | [STD] fix less-than-awesome message about null patterns, PerlJam++, moritz++
TimToady cd src/perl6
make
tryfile foo
or viv foo to get AST 01:14
last Wait, where is src/perl6? Is this in Pugs?
TimToady yes
have you a commit bit to the pugs repo?
last I think I do, though I haven't messed with it since the very early days. 01:15
TimToady any idea what the svn id was? 01:16
nevermind, found it
last ? 01:16
TimToady still at ralf.org?
last yes 01:17
TimToady I can renew it if you don't remember your password
last let me give it a try.
how did you figure out ralf.org? there aren't any obvious connections between this ID and that I can think of... 01:18
TimToady via colomon
your irc commection is colomon@ 01:19
last Ah. I see. :)
TimToady and that's your old svn id
last Thank you! Both for this help and for Perl in general.
TimToady bows and can't stand up again because his swelled head is too heavy 01:20
TimToady std: // 01:36
p6eval std 27563: OUTPUT«##### PARSE FAILED #####␤Null regex not allowed at /tmp/BkMdsQczMZ line 1:␤------> //␤FAILED 00:02 36m␤»
TimToady std: / [] / 01:37
p6eval std 27563: OUTPUT«##### PARSE FAILED #####␤Null pattern not allowed at /tmp/3HRRgDMgiz line 1:␤------> / [] /␤ expecting any of:␤ termish␤ ws␤FAILED 00:02 36m␤»
TimToady std: / [ a | b | ] / 01:37
p6eval std 27563: OUTPUT«##### PARSE FAILED #####␤Null pattern not allowed at /tmp/nX1wGfNDpN line 1:␤------> / [ a | b | ] /␤ expecting any of:␤ termish␤ ws␤FAILED 00:03 36m␤»
TimToady std: / [ a | | c ] /
p6eval std 27563: OUTPUT«##### PARSE FAILED #####␤Null pattern not allowed at /tmp/634IPLm289 line 1:␤------> / [ a | | c ] /␤ expecting any of:␤ rxinfix␤ termish␤ ws␤FAILED 00:02 36m␤»
TimToady std: / [ ) / 01:38
p6eval std 27563: OUTPUT«##### PARSE FAILED #####␤Unmatched closing bracket at /tmp/ghZdjjJq1c line 1:␤------> / [ ) /␤ expecting any of:␤ regex atom␤ rxinfix␤ termish␤ ws␤FAILED 00:02 36m␤»
TimToady std: / [ - ] /
p6eval std 27563: OUTPUT«##### PARSE FAILED #####␤Unrecognized regex metacharacter at /tmp/AS19cXbMlx line 1:␤------> / [ - ] /␤ expecting any of:␤ regex atom␤ rxinfix␤ termish␤ ws␤FAILED 00:02 36m␤»
jauaor hi TimToady 02:13
:)
jauaor smoking test his tiny lang :P 02:15
last Does the STD.pm tryfile require a working Pugs? I'm having a rough time get Pugs built... 02:27
TimToady last: no, only a working Perl 5.10 02:38
last Ah, 5.10 dependencies bite me again. Guess I'll move it to the Linux box with 5.10... Thanks again. 02:40
eternaleye (backlogging) moritz_, szabgab: Weren't line anchors _intentionally_ taken out because they made Firefox start working _really_ hard (and be nonresponsive) on in-page searches? 02:51
skids eternaleye: I don't think that was the main reason the line anchors were taken out. 03:38
.oO(though there should be a better system)
03:43
perlsyntax Where can i download perl 6? 04:12
for linux
hello 04:13
araujo hi 04:14
check the site perl6-projects.org/
araujo and choose an implementation 04:14
:)
perlsyntax what be good to use with ubuntu linux i just a newbie.. 04:22
araujo mmm 04:29
szabgab eternaleye, the anchors were not "taken out" that was just a bug I introduced that eliminated them 05:20
otoh it does seem to be less responsive to me in FF 05:21
literal moritz_: why did the syntax highlighting on your blog go away? 06:01
moritz_ eternaleye: no, the javascritp made browsers freak out, not the line anchors 06:12
literal: things that I wrote in POD never had syntax hilighting
Su-Shee hi 06:27
szabgab moritz_, I was planning to replace that javascript with jquery 06:32
but now I need to go back and write more slides :-)
moritz_ szabgab: ok ;-)
szabgab there were already 7 people registered to my Perl 6 class when I got the last update! 06:33
lisppaste3 tene pasted "basic dialog window" at paste.lisp.org/display/83615 06:48
Tene comments?
Tene One issue... @*ARGS actually isn't usable at all for passing to a C function that expects argv... 06:49
Tene NCI::Util's toolkit_init can use a parrot argv... but not a processed one like @*ARGS 06:49
so I saved the real argv into @*REALARGS 06:50
Su-Shee ooh, I like to test it - what's Elementry? 06:51
moritz_ Tene: nice. 06:52
.oO( why does all GUI code has to look ugly like that? )
06:53
eternaleye That's the E17 toolkit, right?
Tene eternaleye: yes, one of them. 06:54
moritz_: I basically ported straight from C, with some minor OO stuff on top.
Tene I really want to make the OO interface a lot nicer. 06:54
Su-Shee moritz_: at least it's a common standard of ugliness ;)
Tene so... it needs some significant APi design. 06:55
Tene I should post this to github. 06:55
Su-Shee Tene: it's perfectly readable if one knows gui toolkits...
moritz_ aye
Su-Shee (great. 3 days ago, I deleted all e17 stuff, because I didn't need it. ;) 06:56
Tene Heh. 06:57
lemme post this to github...
Su-Shee yes, please.
Tene github.com/tene/parrot-elementary/tree/master 06:58
first run build.sh to compile the needed .so
make sure you have elementary installed
then run run.sh, which just runs parrot with -X /usr/local/lib
I'm not sure what env var I could set to make that not required. 06:59
imgur.com/kgDVS.png
I need to wrap the rest of the widgets... 07:00
Tene need to define a few constants... 07:01
need to add a macro for the library init stuff
but, a good start
Su-Shee urgh.. elementary really depends on _anything_ :))
aeh, every.
Tene Yeah. ;) 07:05
um... there's one issue... I've been getting sporadic segfaults somewhere in one of the efl libs.
sometimes it takes me a few tries to start the app
once it starts, everything runs fine.
Su-Shee I just found the already compiled sources which I didn't delete.
Tene Also, everything runs perfectly inside of gdb
every time.
so, difficult to reproduce...
moritz_ Tene: you could try valgrind 07:06
Tene moritz_: clever. 07:07
I was thinking of trying to debug from a core file.
moritz_ (actually not clever, I just had lots of bad experience ;) 07:08
eternaleye Tene: Do you run into the issue where core files only have 2 stack frames?
Tene eternaleye: I have very little experience with core files. I loaded one into gdb a couple of days ago to see if I could do it, and the backtrace definitely had more than two stack frames...
eternaleye Hm. Maybe it's some setting here, then 07:09
Tene moritz_: segfault not reproducable under valgrind, of course.
moritz_ bah. 07:10
Tene moritz_: but the degfault is definitely happening in the e lib, not parrot, afaict.
eternaleye Tene: strace? 07:11
Tene so I'll report it to the e folks, and let them track it down.
Su-Shee (my coffee went cold, I haven't even got up yet.. and all to see a little window popping up.. ;) 07:14
Tene and to click the buttons!
Don't forget to click the buttons! 07:15
Su-Shee ok, _that_ makes all the difference! :) 07:15
Tene hmm... I can add focus callbacks...
Su-Shee Tene: are you planning a little howto ala "how to wrap a c lib into parrot and make this a rakudo camel?" 07:16
Tene Um, sure.
I hadn't planned that yet.
But, would that be useful to someone, do you think?
Su-Shee Tene: to more or less everyone who's planning to make the usal 8604 c libs available to rakudo, I think. 07:17
Tene: specifically to everyone planning to wrap cairo, gtk, tk, qt, clutter ...
moritz_ aye.
various DB clients too
Tene Su-Shee: the way this *should* happen is that we could autogenerate these wrappers from the C headers.
there was even a project to do that, ncigen
but it's been pretty much abandoned. 07:18
moritz_ that's a shame
Tene The author lives in my city... I could track him down and "politely" convince him...
Su-Shee Tene: I personally gladly do it by hand as long as it's a little easier than XS..
Tene I've never done XS.
Su-Shee Tene: knocking at his door at 3 in the morning, abducting his cat..? ;)
Tene Exactly!
Su-Shee Tene: I took one look into it and didn't even start - I've always wanted to add xlib surfaces to cairo-perl 07:19
Tene there's an existing xlib wrapper for Parrot... but it's not usable from rakudo. 07:19
Su-Shee Tene: anyway - imagine a rakudo-wrapper around entire X including composite...
Tene It wouldn't take much to make it available from rakudo, though. 07:20
Su-Shee Tene: I'm drooling into my keyboard, now.
Tene oh? for raw xlib? 07:20
Su-Shee ok, not for that, no. ;)
Tene heh
moritz_ the art of wrapping includes deciding what to wrap ;-) 07:21
Su-Shee Tene: what I'm thinking about is that OLPC's "sugar" project shows us, that there is no reason not to write shiny windowmanagers in a "scripting language". now imagine having extensive gui/graphic's bindings of all kinds in rakudo.
pugs_svn r27564 | moritz++ | [t/spec] remove a left-over .car
Su-Shee moritz_: tuna with goat cheese. ;) 07:22
Tene looks like someone started wrapping Qt.
Su-Shee: japhb has made OpenGL available from rakudo
Su-Shee Tene: Very nice. 07:23
Tene Su-Shee: does the elementary example work for you? 07:24
et.pir ?
Su-Shee Tene: have to update some stuff first, elementary doesn't play with older snapshots, it seems. 07:25
Tene or .pl ?
ah
tann std: (1..5).grep :{ $_ % 1 }; 07:35
p6eval std 27563: OUTPUT«ok 00:02 37m␤»
tann rakudo: (1..5).grep :{ $_ % 2 };
p6eval rakudo d8d064: OUTPUT«Statement not terminated properly at line 2, near ":{ $_ % 2 "␤in Main (src/gen_setting.pm:3340)␤»
tann ^^^ looks like rakudo's parser doesn't get it right?
eternaleye rakudo: (1..5).grep: { $_ % 2 } 07:36
p6eval rakudo d8d064: ( no output )
eternaleye rakudo: .say for (1..5).grep: { $_ % 2 }
tann eternaleye: std parses ok
p6eval rakudo d8d064: OUTPUT«1␤3␤5␤» 07:37
Tene rakudo doesn't do adverbial blocks yet 07:37
tann eternaleye: if that space makes such a difference, expect lots of guys to become bald sooner
Tene: thanks
eternaleye tann: It's a semantic error, not a syntactic one - STD only catches _syntax_ errors 07:38
eternaleye "wrong meaning" vs "bad grammar" 07:39
tann eternaleye: the space is mandatory?
ie.... no space is allowed
eternaleye tann: For it to do what you intended there, I think so (I'm no expert)
tann eternaleye: oh man methinks that'll suck 07:40
eternaleye rakudo: .say for (1..5).grep : { $_ % 2 }
p6eval rakudo d8d064: OUTPUT«Statement not terminated properly at line 2, near ": { $_ % 2"␤in Main (src/gen_setting.pm:3340)␤»
Tene I've never liked the adverbial block thing at all, personally.
tann especially when people are accustomed to write :by(n) 07:40
Tene std: (1..5).grep:{ $_ % 1 }
p6eval std 27564: OUTPUT«ok 00:02 37m␤»
eternaleye tann: it's than _anything_ followed by a colon without whitespace is an invocant
rakudo: .say for (1..5).grep\ : { $_ % 2 } 07:41
p6eval rakudo d8d064: OUTPUT«1␤3␤5␤»
eternaleye "unspace" is useful
tann pugs: (1..5).grep :{ $_ } 07:42
p6eval pugs: OUTPUT«*** ␤ Unexpected ":{"␤ expecting operator␤ at /tmp/qm019IEa83 line 1, column 13␤»
tann oh man 07:42
larry must've thought hard about this ...
it sucks nonetheless
Tene pugs never got adverbial block, iirc. 07:43
eternaleye tann: prefix:<:> is the Pair constructor (also known as 'adverbial' form). :something('value) makes the Pair 07:44
:something('value') makes the Pair something => 'value'
tann eternaleye: and i thought only pythonists care about whitespaces
eternaleye Omitting parens and value default it to Bool::True
tann: Perl only cares when leaving it out creates something abiguous to parse 07:45
*ambiguous
moritz_ Perl 6 cares much more about whitespace
moritz_ not about leading whitespaces on lines though 07:45
tann and those error will appear ambiguous to perl6 novices 07:46
eternaleye (1..5).grep:{ $_ % 2 } # is (1..5).grep an invocant, or is { $_ % 2 } the key of a pair?
moritz_ it's an adverbial block, actually
tann so, .say for 1..100 :by(3) -> $i; will fail to parse
Su-Shee Tene: You've not just wrapped Elementary into parrot, you wrote a parrot version of the window-popup itself and wrapped this into rakudo?
tann lemme check
rakudo: .say for 1..100 :by(3) -> $i; 07:47
p6eval rakudo d8d064: OUTPUT«Statement not terminated properly at line 2, near ":by(3) -> "␤in Main (src/gen_setting.pm:3340)␤»
eternaleye tann: I have no clue what that's supposed to do, and it's rightly invalid IIUC 07:48
tann rakudo: .say for 1..100:by(3);
p6eval rakudo d8d064: OUTPUT«Statement not terminated properly at line 2, near ":by(3);"␤in Main (src/gen_setting.pm:3340)␤»
eternaleye -> declares parameters on blocks; where's the block?
tann eternaleye: late night and too much food :) 07:49
eternaleye rakudo: .say for 1..100 :by(3);
p6eval rakudo d8d064: OUTPUT«Statement not terminated properly at line 2, near ":by(3);"␤in Main (src/gen_setting.pm:3340)␤»
moritz_ adverbs on operators aren't implemented in Rakudo
so 1..10:by() won't work yet
eternaleye Ah
moritz_ rakudo: say Range.new(1, 10, by => 3)
p6eval rakudo d8d064: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in method Range::true (src/gen_setting.pm:1601)␤called from Main (/tmp/bSC5AgieMK:2)␤»
moritz_ rakudo: say Range.new(from => 1, to => 10, by => 3) 07:50
p6eval rakudo d8d064: OUTPUT«12345678910␤»
tann moritz: i can't still get over the fact that a space before the adverbial is significant :(( 07:51
i.e. space before the colon
moritz_ tann: you will, eventually 07:54
tann moritz_: but ya know, i have love for those who like to get into perl 6 ;)
Su-Shee *tadaaa* :) frollein-schmidt.de/tenes-elementary-window.png 09:03
moritz_ and most importantly - did you click those buttons? :-) 09:04
Su-Shee (only 2 hours, an entire enlightement 17 later and renaming my parrot-paths... but it doesn't segfault...) 09:05
I did and they don't break it either. :)
Tene: very nice. really works just fine. 09:06
(no, I can click as hard as I want - doesn't segfault. :)
moritz_ that doesn't sound very parrotish :-) 09:07
Su-Shee started 20 times and killed it: no segfaults. 09:07
moving around fast also no problem. 09:08
doesn't break expose either. nice, clean, working window. 09:09
no flickering, no nothing.
Su-Shee clicks happily on a button with a stupid grin - I'm really grateful noone's seeing this. :) 09:10
finanalyst moritz_: which buttons???
Su-Shee finanalyst: Tene's "elementary" window has buttons to click on. 09:10
finanalyst \a goes to find elementary project 09:11
Su-Shee (and the window actually is an elementary one but it's the name of enlightenment's widget set..)
finanalyst: download.enlightenment.org/snapshots/2009-06-14/ <-- this works
finanalyst: and then gitclone Tene's stuff. 09:12
finanalyst is this parrot or perl6?
moritz_ yes.
Su-Shee finanalyst: both!
moritz_: :)
Su-Shee finanalyst: elementary wrapped in parrot wrapped in rakudo. 09:12
finanalyst can i get the project using proto? 09:13
Su-Shee finanalyst: no idea, I just gitcloned it. 09:13
(actually, the code looks like a parrot binding of elementary, then a parrot gui program and this seems to be also wrapped into rakudo..) 09:15
masak perlmonks.org/?node_id=780001 # KyleHa++ 09:17
Matt-W I'm hoping to be able to take a look at wrapping GTK+ with Parrot at some point 09:21
Su-Shee Matt-W: probably everyone does.. 09:23
Matt-W But first... this mug of hot chocolate
Su-Shee now gets up and starts the actual day. I need breakfast now. 09:24
pugs_svn r27565 | moritz++ | [t/spec] fudge gets confused with some tests counts, so add a #?DOES line 09:28
mikehh rakudo - d8d0640 builds on parrot r40098 make test PASS, make spectest (up to rev 27564) reports 1 failure - but actually passes 09:43
t/spec/S03-operators/hyper.rakudo - Parse errors: Bad plan. You planned 91 tests but ran 93.
mikehh that's on Ubuntu 9.04 amd64 09:45
moritz_ mikehh: fixed in r27565 10:19
szabgab rakudo: say qq:to/END/ bla END 10:26
p6eval rakudo d8d064: OUTPUT«Colons cannot be used as delimiters in quoting constructs at line 2, near ":to/END/ "␤in Main (src/gen_setting.pm:3340)␤»
szabgab are heredocs implemented already ?
moritz_ szabgab: here-docs are NYI
szabgab std: say qq:to/END/ bla END
p6eval std 27565: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/qPux9EcCNy line 1:␤------> say qq:to/END/ bla END␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:04 37m␤»
moritz_ std: say qq:to/END/␤bla␤END 10:27
p6eval std 27565: OUTPUT«ok 00:04 37m␤»
moritz_ I think the terminator must be on a line of its own
szabgab ok, how do I type that newline ?
in XChat ?
moritz_ by copy & paste :-)
szabgab std: say qq:to/END/␤bla␤END
p6eval std 27565: OUTPUT«ok 00:04 36m␤»
szabgab clever :-)
moritz_ or of course you can define a compose key sequence 10:28
szabgab I have no idea how to do that 10:29
moritz_ it's an X.org thing, not xchat 10:30
but I've never tried that
mikehh rakudo - d8d0640 builds on parrot r40098 all tests PASS, make test/make spectest (up to rev 27565) - Ubuntu 9.04 amd64 10:46
masak rakudo: say (1..3).pick(5, :repl).perl 11:09
p6eval rakudo d8d064: OUTPUT«[2, 3, 3, 1, 3]␤»
masak ooh, we have :repl, cool. 11:10
moritz_ perlmonks.org/?node_id=779942 note the reply to this node :-) 11:12
masak :) 11:15
"Perl 6 bias"
moritz_ aye 11:16
moritz_ rakudo: print $*IN.get 11:28
p6eval rakudo d8d064: OUTPUT«Land der Berge, Land am Strome,»
moritz_ www.google.com/search?q=perl+6+Land...&hl=en :-) 11:29
rakudo: print $*IN.lines(3).[2] 11:30
p6eval rakudo d8d064: OUTPUT«Land der Hämmer, zukunftsreich!»
masak I edited the Wikipedia article on the Austrian national anthem to mention its use here on #perl6. en.wikipedia.org/wiki/Land_der_Berg..._am_Strome 11:36
I'm not 100% the edit will survive, but we'll see.
moritz_ "Use in popular culture" would have been the usual headline :-) 11:40
masak oh right! I was clutching for something like that. 11:41
should I change it?
moritz_ I think so, not sure
masak changes
takadonet morning all 12:00
masak takadonet: \o 12:03
takadonet ? 12:06
masak takadonet: it's the image of a person, lifting one arm in a greeting gesture. 12:07
takadonet hehe never seen that one before
masak takadonet: I'd guess the meme is about one month old on #perl6. 12:08
takadonet masak: I been on and off this channel over the past year or so
masak takadonet: have you been doing anything cool with Rakudo yet? 12:09
takadonet masak: Working on getting multiple fasta parser working but met with limited success 12:10
masak anything in particular blocking?
takadonet I can parse the input correctly however have trouble capturing all the match AND return a single object 12:11
masak in what way is that a problem? 12:12
the Match object in $/ is one single object.
and it captures the whole match.
takadonet it's been a week since I last did it. Give me a second to see where I left off 12:14
takadonet Well looks like I was wrong. I was able to return a single object with the correct attributes however I could not modify attribute (such as removing new line characters) in the grammar and see the changes outside the scope of the grammar 12:20
masak no, that sounds like something you cannot do -- yet. 12:22
masak but I'm sure there are plenty of possible workarounds. 12:23
takadonet That's one thing I do not like about perl 6 right now. Never sure if I'm hitting a real road block or just my knowledge of the language 12:24
moritz_ that's why we have such a helpful IRC channel :-) 12:25
takadonet Indeed, just wish I had more time to hack with Perl 6 12:26
masak it's all a matter of allocating the time we already have. 12:28
takadonet or taking time from work to hack..... 12:32
masak effectively, that's what I do. I only work half time. 12:33
moritz_ masak: are you still at university? 12:34
masak moritz_: aye. working/studying.
moritz_ so half time work, half time studying, half time hacking? :-)
masak exactly. 12:35
I haven't had a 100%-or-less schedule in years, so nothing new. :)
Matt-W masak: what are you studying? 12:37
masak Matt-W: bioinformatics. 12:39
SamuraiJack rakudo: say "hello world"; 12:40
p6eval rakudo d8d064: OUTPUT«hello world␤»
SamuraiJack rakudo: say.WHAT
p6eval rakudo d8d064: OUTPUT«say requires an argument at line 2, near ".WHAT"␤in Main (src/gen_setting.pm:2444)␤»
Matt-W masak: Ah, so Perl then :)
masak rakudo: SAY &say.WHAT
takadonet Wished I had a real bioinformatics program to take but no such luck
p6eval rakudo d8d064: OUTPUT«Could not find non-existent sub SAY␤»
SamuraiJack say "hello world".WHAT 12:40
masak rakudo: say &say.WHAT 12:41
p6eval rakudo d8d064: OUTPUT«Code()␤»
masak Matt-W: there's a lot of that, yes.
Matt-W masak: hurrah for Perl!
Matt-W would like a job where he can do Perl 12:42
SamuraiJack rakudo: say "hello world".WHAT
takadonet my workplace does Perl :)
p6eval rakudo d8d064: OUTPUT«Str()␤»
SamuraiJack cool )
Matt-W takadonet: Nice 12:43
SamuraiJack rakudo: say &say.WHAT.WHAT 12:44
p6eval rakudo d8d064: OUTPUT«Code()␤»
takadonet Well Perl,C,Java. Depends what project you are assigned
SamuraiJack rakudo: say &say.WHAT.WHAT.perl
p6eval rakudo d8d064: OUTPUT«Code␤»
masak at work, I do mostly Java.
takadonet Really at work you can pick any language as long as you can justify it and that it makes sense 12:46
Matt-W Lucky you
We're C++ and Java
some Perl
And getting the okay to write anything new in anything other than Java is really hard 12:47
Getting the okay to use the most appropriate language for the job seems to need intervention by the Queen
takadonet Matt-W: Which Queen? 12:51
masak the Red Queen from 'Through the Looking-Glass', probably. 12:52
Matt-W Well the Queen to whom I owe allegiance is Elizabeth II of the United Kingdom, but I suspect she might not carry enough authority here in the office. 12:53
masak too bad. then you could refer to the codebase as "Her Highness' Codebase". 12:54
Matt-W After all, what does she know about programming languages
masak s/'/'s/ 12:55
Matt-W It is said that when she gave Bill Gates his honorary knighthood she told him she has never used a computer
Which would not surprise me
But I'm sure she'd like Perl 6
Everyone should like Perl 6
takadonet hehe 12:56
one of my co-workers still does not believe it will be out any time soon
Matt-W I'm not sure about soon
masak neither am I.
Matt-W but it will definitely happen 12:56
Matt-W I've convinced my co-workers of that 12:56
and they even like the sound of some of the features
When I did a Perl 5 training course last year, I included a slide in the OOP section showing how to do the example class in Perl 6 12:57
People liked the look of that :)
masak I think there's too much focus on the actual moment of release. there's so much to be done before that happens.
Matt-W Yes
I just like the day to day progression towards it
masak that's the only way to make it happen.
Matt-W One day we'll look at the language features and say 'hang on a sec, this is nearly done'
masak aye :) 12:58
Matt-W But for now it is enough to track the progress
And after all, most things that get implemented seem to get redesigned in the process
masak I take that as a very good sign.
takadonet I enjoy watching the progress that has been made so far but I so want to start using it daily at work
masak a spec that adapts to reality. 12:59
takadonet: you should start by using pun.
github.com/masak/pun/
perfect for those short filtering scripts. 13:00
</commercial>
Matt-W I've never got my head around -p and -n 13:03
masak getting a spectest failure running t/spec/S32-io/IO-Socket-INET.t
anyone else getting that?
Matt-W: oh, they're very simple! -n wraps your code in 'while ($_ = $*IN.get).defined) { ... }' and -p in 'while ($_ = $*IN.get).defined) { ... ; .say }' 13:04
pmichaud Good morning, #perl6
masak oh hai pmichaud
Matt-W masak: ahah 13:05
pmichaud: Good morning
masak did there use to be a <dot> rule in PGE? 13:06
pmichaud there did, yes. 13:06
Now it's just '.'
masak fixes t/spec/S32-io/IO-Socket-INET.t
davef hi - in rakudo, if I 'use' a class file in a 'role' definition file I sometimes get 'Could not find non-existent sub trait_mod:is', if I include the class source it's Ok. Is this a known bug or am I doing something wrong? 13:07
pugs_svn r27566 | masak++ | [IO-Socket-INET.t] <dot> is no more, let's use '.' instead 13:08
pmichaud it's not a known bug. I don't know if you're doing something wrong.
masak davef: I don't get it. is there a nopaste to go with that question?
davef sorry - what's a nopaste? 13:09
masak davef: paste.lisp.org/ 13:09
(for example)
masak davef: it's a web service for posting pieces of code longer than one line (because it'd create too much traffic on the channel) so that everyone can discuss the same piece of code. 13:11
davef ok - will try and generate a minimal example then nopaste it.
masak excellent.
moritz_ @seen jnthn 13:15
lambdabot jnthn is in #perl6. I last heard jnthn speak 6d 12h 45m 49s ago.
masak ENOJNTHN 13:16
Matt-W holiday? 13:17
pmichaud yes.
Matt-W good
masak he deserves it.
Matt-W better than being kidnapped by a mob of Common Lisp programmers
moritz_ lol
masak Matt-W: can that happen?
Matt-W who are worried that Perl 6 will show that Common Lisp isn't the ultimate programming language after all 13:18
masak looks around nervously 13:18
Matt-W Sometimes you can distract them 13:19
Just point out an unmatched bracket
masak ah! clever.
Matt-W Doesn't always work though
masak no, if they indent properly it doesn't help much. 13:20
Su-Shee masak: are you still reading up on MVC?
masak Su-Shee: very much so, yes.
well, I think I grok MVC as such. it's MVC frameworks that still stump me a bit. 13:21
Su-Shee masak: st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html I think this is one of the Smalltalk "originals" and very interesting.
masak Su-Shee: ah, yes. a classic.
been a while since I read that one, so I probably will re-read it. 13:22
Su-Shee more detailed in a good way.
masak but (as I said), I'm fairly confident about what MVCs do.
just not how MVC web frameworks function.
Su-Shee how exactly they implement the idea?
masak yes, something like that. 13:23
all the nitty-gritty details, ORM, templates and the like.
how it all fits together.
Matt-W masak: all lisp example code I've seen lately was indented very poorly
Su-Shee I found the mojo source very readable and helpfull.
masak I've bought the Catalyst book.
Matt-W they always seemed to put their closing brackets all at the end at once ))))))
masak Su-Shee: oh, I'll check it out then.
Matt-W: I find the Emacs sources are quite nice. 13:24
Matt-W masak: if you come up with some remarkable insights on Catalyst, let me know
masak: I was playing with it recently
Su-Shee masak: and it's _very_ lean and "plain".
masak Su-Shee: do you consider Mojo an MVC framework?
Su-Shee masak: sure, it is one.
masak ok. 13:25
Su-Shee very neat and tidy code.
masak gotcha. 13:26
colomon Hi all. 13:46
I'm trying to get tryfile / STD.pm to work. 13:47
Right now I get syntax error at STD.pm line 1, near "grammar STD:"
when I use stock Perl 5.10.0.
moritz_ how do you run it?
did 'make' succeed?
masak sounds like you're trying to run STD.pm with Perl 5.
colomon 'make' what? I was under the impression I didn't have to build pugs... 13:48
moritz_ colomon: there's a Makefile in src/perl6/ 13:50
colomon: independent from pugs
PerlJam colomon: you don't have to build pugs, but STD.pm isn't perl 5 code, so you have to build something that understands it :)
moritz_ (it's the pugs repo, but it doesn't built pugs to run 'make' in src/perl6/)
colomon Just tried it, hardcoded to /usr/local/bin/perl 13:51
Can I just do a quick search and replace on the perl6 directory to point it to my Perl 5.10?
PerlJam colomon: yep, it expects perl 5.10 to be in /usr/local
colomon: or you could create symlink from /usr/bin/perl to /usr/local/bin/perl if you have 5.10 installed 13:52
colomon I only have 5.10 installed on my personal account, not as root.
PerlJam oh, then yeah, change /usr/local/bin/perl everywhere to be your local copy of 5.10 13:53
also, make sure you have Moose installed
colomon Okay, I'll give that a try. Thanks! 13:54
masak M_o_C: I think I prefer "Reality is that which, when you stop believing in it, doesn't go away." -- Philip K. Dick 14:01
masak #p6s tonight. 19:00 UTC as usual. 14:19
moritz_ and like last time I might not be able to attend
too much lasagne waiting to be cooked and eaten 14:20
masak I know the feeling. :)
moritz_ and later on maybe "Zoff im Zoo", a very nice card game 14:21
PerlJam #p6s ? 14:22
colomon Have working tryfile! Thanks again!
masak PerlJam: #perl6-soc
colomon++
PerlJam masak: and what goes on at #perl6-soc ?
masak PerlJam: we discuss the two Perl 6 GSoC projects. 14:23
sort of like weekly status meethings.
PerlJam ah. 14:24
How are they coming along BTW?
moritz_ (Zoff im Zoo even made it into a a scientific publication, ideas.repec.org/p/dgr/kubcen/2002113.html)
masak PerlJam: if you come tonight, you'll find out.
PerlJam: all my information is a week old.
PerlJam it may be a week old to you, but it's new and fresh to me ;) 14:25
moritz_ I think pmurias++ is coming along very nicely
he basically did most of his dispatch work, and now has to optimize it
masak that's my impression as well.
moritz_ with literal++ it's harder to tell for me 14:26
PerlJam literal was doing the docs?
masak I do know literal++ has made some progress with Padre.
PerlJam I guess I should look at what the gsoc projects actually are :) 14:27
moritz_ I see a disturbingly low rate of commits to grok (for somebody being paid half time), but I don't know how much of a good metric that is
masak but I don't know how far he's got on the part of grok which I consider to be most exciting. we discussed it a fair bit last week, though.
moritz_: yes, same here. and a disturbingly low rate of blog posts.
PerlJam okay, waiting for 1900utc 14:28
moritz_ is Tene's part of the web.pm grant finished? 15:09
masak Tene's part is "help clear away Rakudo/Parrot blocks, and do a pastebin". 15:11
as far as I'm concerned, he has done that part admirably.
moritz_ wasn't there a Tags.pm also?
masak yes.
and LolDispatch.
but those weren't in the grant proposal. 15:12
moritz_ ok 15:12
masak still very useful, of course.
Lorn rakudo has threads? 15:48
moritz_ exactly one.
Lorn moritz_: one?
masak but that one is very nice.
speaking of that, what is the plan in Parrot for threading? 15:49
Tene masak: there are a few blockers...
PerlJam masak: as I've always heard it, the plan is "eventually" :) 15:50
Tene threads work okay under some restrictive conditions.
masak ok. I didn't even know whether it was underway, so that's good news to me.
Lorn does parrot/rakudo threads will be "JNI" like? 15:51
Lorn masak: do you have a example/link for threads in rakudo? 15:52
PerlJam rakudo: async { say "hi" } 15:53
masak Lorn: no, since the thread support is "exactly one" right now, it's hard to provide an example or a link.
p6eval rakudo d8d064: OUTPUT«async not implemented at line 2, near ""␤in Main (src/gen_setting.pm:640)␤»
PerlJam Lorn: btw, that was an example for you :) 15:55
Lorn PerlJam: :P
Tene masak: one of the parrot milestones coming up involves threads, but I forget which one. 15:56
masak Tene: ah.
async is, IIRC, a remnant of the STM ideas in Pugs -- and I'm informed that we don't believe in STM as fiercely any more, for whatever reason. 15:57
Tene trac.parrot.org/parrot/ticket/757 15:57
is the big blocker I found. In parrot you *can* make a thread, but if any classes with non-simple names exist, parrot crashes when trying to clone the interpreter. 15:58
masak Tene: thanks. trac, since about a week ago, only gives me redirect loops. :/
PerlJam masak: async is still mentioned in the spec.
masak PerlJam: it is indeed. 15:59
but only once in S04, and S17 is still slightly drafty I think.
moritz_ hasn't heard of async{} going away
masak I'm not saying it has gone away.
I'm just saying it stems from STM, which we don't believe in as fiercely any more. 16:00
for whatever reason.
Tene masak: so, once Parrot gets its threads fixed, I have an async {} implementation I can commit.
PerlJam so ... ultimately threads in perl still needs some loving.
masak Tene: cool!
masak wow, S17 is definitely drafty. 16:01
PerlJam masak: but async doesn't seem to be greatly related to STM. 16:03
moritz_ no, the rollback is 16:04
masak PerlJam: indeed. instead, that seems to be the contend/maybe/defer keywords.
Matt-W how do I return a value from some inline PIR? 16:12
PerlJam Matt-W: I think it's something like %r = $P0 ... but my memory is very rusty. 16:13
moritz_ it is.
erm, correct, not rusty ;-)
PerlJam Matt-W: $P0 would be the value you want to return in my example.
Su-Shee Tene: Did you read backlog? :) 16:16
Matt-W PerlJam: woo, thanks 16:17
had to pull in some stuff from other code
Matt-W turns out to return an integer you have to box it into a PMC and return that 16:17
Matt-W woops 16:17
and I returned the wrong one
masak: gist.github.com/147817 <- look what I can do! 16:18
Now to fit it in somewhere appropriate...
PerlJam Matt-W: IO somewhere :) 16:19
Matt-W yeah
now according to S32::IO, this stuff lives in a class we don't have yet
and has a very strange interface
Parrot doesn't seem to have a way to call stat and get back everything at once, which is interesting 16:20
masak Matt-W++
Matt-W Implementing it is much easier than actually putting it somewhere useful 16:21
masak Matt-W: I fear that the current ones are in any-str or some such.
:e, :d and :f, that is.
masak yahooooo: helooooo! 16:22
moritz_: perlgeek.de/blog-en/perl-6/musings-....writeback -- nice post!
moritz_++
PerlJam Matt-W: having something working and in the repo is probably more important than having it be exactly correct methinks.
Matt-W PerlJam: perhaps 16:23
PerlJam er, be in exactly the right place I mean.
masak moritz_: one spelling nit: s/to some extend/to some extent/
PerlJam (of course the code should be correct :)
Matt-W well yes
but what form should it take
PerlJam Copy perl5
Matt-W Perl 5 has stat
to implement that I'd have to call Parrot's stat lots of times 16:24
PerlJam Well, I meant as far as the IO heirarchy goes. Make IO::File or somesuch.
or IO::FSNode if you want to be more S32-ish
Matt-W yes that's what S32 says
how do I add a new class to the setting?
moritz_ Matt-W: write a new file, add it to build/Makefile.in 16:25
git-add it
reconfigure, recompile, profit!
Su-Shee it's profit now? I though open source leads to fame and glory..
+t. 16:26
Matt-W that could be considered a form of profit
moritz_: thanks
moritz_ Su-Shee: profit on a meta level
Tene Su-Shee: yes, I read it.
PerlJam reconfigure, recompile, karma!
how's that?
Su-Shee PerlJam: very -do of rakudo :) 16:27
PerlJam wait ... rakudo means "way of karma"? ;)
Su-Shee "guaranteed way into karma" ;)
masak moritz_: oh, now I see two typos: s/extend/extent/ and s/left to moved/left to move/ perlgeek.de/blog-en/perl-6/musings-....writeback 16:31
Tene Su-Shee: did you have any remaining questions for me? 16:32
moritz_ masak: thanks. Clearly I shouldn't blog at 0.30AM ;-)
masak moritz_: yes, please keep blogging. even Knuth makes mistakes. 16:33
Matt-W isn't happy with this FSNode API
Su-Shee Tene: no. works perfectly stable here, anyway. :)
Matt-W still, I can implement it for now so I shall
moritz_ Matt-W: that's because it should be FSM ;-)
Matt-W FSM?
moritz_ the flying spaghetti monster can fix it all! 16:34
Matt-W yes, but it probably won't
Tene Su-Shee: I didn't wrap the PIr version of the basic window example, I reimplemented it in Perl 6.
so it's completely independent of the PIr version
masak Matt-W: also not happy with it. it feels way overdesigned.
Su-Shee Tene: aaah.. ok.
Matt-W masak: also, it puts file times in a hash 16:36
PerlJam Matt-W: why not go with something like IO::stat for now and let the future sort out that FSNode business? 16:37
(or IO::mtime in your case)
Matt-W that would be my preference 16:38
PerlJam rakudo doesn't currently have any API guarantees does it? 16:39
TimToady S03 defines it as IO.m 16:39
Matt-W really 16:41
so IO.m('myfile')?
TimToady no IO('myfile').m
Matt-W ah
yes of course
PerlJam or $filename.IO.m
TimToady or 'myfile'.IO.m 16:42
yeah
PerlJam or $filename.IO ~~ :m
TimToady that too
Matt-W blinks
the last one seems odd
PerlJam rakudo doesn't grok $filename.IO yet though
TimToady Matt-W: it just falls out of the definition of Pair smartmatching to abstract out boolean method calls as a form of data 16:45
Matt-W mtimes aren't a boolean thing though
TimToady and hence, junctionable
TimToady ah yes, :m probably doesn't make much sense then 16:46
since it would pretty much always be true
Matt-W unless it happened to be modified exactly on the epoch 16:47
TimToady I'm confusing it with :M :)
which doesn't make much sense either
so ignore me, and make it .mtime
Matt-W heh
Matt-W so we're missing a few things then I think 16:48
TimToady some mornings I just can't guzzle coffee fast enough to get smart
Matt-W it's okay, I'm going out soon so I'll stop bugging you about it 16:49
what we don't seem to have is the IO('myfile') bit
so I think this is going to take a bit more structural work 16:50
TimToady well, the S32 folks have only been thinking of it as the parent package, but I'd like to move it more in the direction that ingy first proposed it
TimToady where IO is an abstraction of potential IO 16:51
but opens lazily on demand and with a mode appropriate to its usage
or it the case of a stat, it might never open at all 16:52
or maybe it opens it to guarantee consistent fstat semantics instead
Matt-W aah 16:53
TimToady in any case, someday I'd like to have a file copy look like IO($in) ==> IO($out)
PerlJam TimToady++ 16:55
TimToady ingy++
the P5 version of IO tries to do a little too much, probably, but I like the basic abstraction idea
PerlJam me too
TimToady every now and then I take a pass through IO.pod and simplify. Maybe I'm overdue for another pass :) 16:56
Matt-W maybe :)
I'd just like some framework I can implement things in :)
TimToady or maybe I should get ingy to simplify it :) 16:57
Matt-W delegation is the soul of good management
Matt-W & 17:05
Tene pmichaud: I ran into a rakudo issue last night... 17:10
pmichaud Tene: ouch.
(Good afternoon, #perl6)
Tene pmichaud: I got my toolkit wrapper working, but to call the toolkit_init function, I needed access to the unmodified argv. 17:11
to pass to NCI::Util's call_toolkit_init
pmichaud I don't understand "unmodified argv"
Tene okay, 'sec 17:12
src/builtins/guts.pir +390
!UNIT_START
it has .param pmc args, which gets modified, and then stuffed into @*ARGS 17:13
I needed access to args *before* it was modified.
PerlJam rakudo: my $x = 0; $x++; $x.++; 17:14
p6eval rakudo d8d064: OUTPUT«Statement not terminated properly at line 2, near ".++;"␤in Main (src/gen_setting.pm:3340)␤»
Tene my workaround patch to demonstrate it was to set_hll_global '$REALARGV', args before modifying it.
pmichaud I don't understand what part of @ARGS isn't working for you. the args list isn't significantly modified. 17:15
only the first element (the script name) is removed.
Tene I'm not sure either. The NCI argv stuff is a little mysterious to me right now. 17:18
Hmm, maybe you're right... 17:20
ah, it might have been the shifting off $PROGRAM_NAME 17:21
maybe if I pass that too...
Tene pmichaud: okay, nevermind. :) 17:27
pmichaud: did you see this: gist.github.com/147853 ? 17:29
pmichaud Tene: no, hadn't seen that. Looks very cool. 17:35
payload line 5: my $bg = $win.'widget_add'('bg', 1.0, 1.0); 17:48
_'widget_add'_
?
Tene Yes.
erm... typo
I was translating from PIR.
payload what is this? ive read GTK+ today somewhere? 17:49
Tene It's elementary, one of the Enlightenment libraries. 17:50
payload ah cool
Tene Not particularly stable or convenient. GTK might be a more-popular choice.
lisppaste3 TimToady pasted "Tene: perhaps formatted more like this" at paste.lisp.org/display/83642 17:54
[particle] that looks sixy 17:56
Tene Nice. :) 17:56
pmichaud o/ "I'm too sixy for my code..." o/
"Perl 6 is one sixy language."
Su-Shee new karaoke version for developers. 17:57
REPLeffect that's an almost .. um ... scary thought :D 17:58
pmichaud afk, lunch 18:01
szabgab how can I find out the directory of the currently running script ? 18:06
sg like FindBin::Bin ?
or is there a basename() I can run on $*PROGRAM_NAME ? 18:07
payload does substr only has the parameters start and count ? 18:18
payload a named parameter end would be nice i think 18:19
payload why does not every error message has a line number? it's often disturbing 18:36
what do i have to do to make these error messages more helpful? ^^
PerlJam some errors are generated by parrot, some by rakudo (for one thing) 18:42
masak payload: substr has an '$end' parameter. see S32/Str 18:50
#p6s in 10.
payload oh yes... found. ^^ 18:52
masak p6s now -- provided someone besides me is here to participate in the meeting... :) 19:02
takadonet meeting? where? 19:44
masak takadonet: on #perl6-soc
takadonet can I listen in? 19:45
masak oh, absolutely.
pmichaud Test #2 in t/spec/S32-hash/invert.t isn't a valid test as written (assumes order of results) 20:01
masak we should implement eqv for hashes. :) 20:02
pmichaud yes, but that still wouldn't help this case :-)
(it's a list)
masak oh :)
StephenPollei std: [+] 20:15
p6eval std 27566: OUTPUT«ok 00:02 36m␤»
StephenPollei std: >>.
p6eval std 27566: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/AWEjEBRHSo line 1:␤------> >>.␤ expecting any of:␤ prefix or noun␤ statement end␤ statement list␤ whitespace␤FAILED 00:02 36m␤»
colomon Any idea what might be wrong with the line $out.print "ISO-10303-21;\n"; ? 20:33
pmichaud needs a colon or parens 20:34
$.out.print("ISO-10303-21;\n");
$out.print: "ISO-10303-21;\n";
std: $*OUT.print "ISO-10303-21;\n"; 20:35
p6eval std 27566: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/8xXrpABTCl line 1:␤------> $*OUT.print "ISO-10303-21;\n";␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:02
..37m␤»
moritz_ pmichaud: so it should be is_deeply {%h.invert}, {b => 'a', d => 'c'}, right?
pmichaud moritz_: that might work 20:36
I was thinking to test the sorted list
%h.invert.sort
moritz_ that's what the later tests do
pmichaud: I don't care either way - should I, or will you correct it?
pmichaud well, it's failing in rakudo with Parrot trunk, so it needs fixing. 20:37
moritz_ ok, I'll update, test and commit
pmichaud I'm fine with the is_deeply approach, I think.
colomon pmichaud: yup, parens work. Thanks! (colon is deeply surprising to me...)
dalek kudo: dfe8518 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to after the keys-branch-merge for more testing.
20:45
TimToady it's a variant of the invocant colon in print $*OUT: "..." 20:47
pugs_svn r27567 | moritz++ | [t/spec] test relied on hash order, pmichaud++, bacek++ 20:49
colomon Is :i on regexes still not implemented in rakudo? 20:52
masak rakudo: say "FOO" ~~ m:i/foo/ 20:53
p6eval rakudo d8d064: OUTPUT«sh: ./perl6: No such file or directory␤»
moritz_ it is, but only on the inside
"FOO" ~~ m/:i foo/
colomon is putting it after m/foo/:i legal syntax? STD.pm let it by... 20:54
moritz_ no 20:55
TimToady it would try to apply the :i to whatever operator preceded the m//
colomon rakudo: say "FOO" ~~ m/:i foo/
p6eval rakudo dfe851: OUTPUT«FOO␤»
colomon ah.
Thanks!
PerlJam std: m/foo/:i
p6eval std 27566: OUTPUT«ok 00:02 36m␤»
PerlJam interesting
TimToady is arguably a bug
[particle] my dog $rx; $rx ~~ Dog :i; 20:56
TimToady it doesn't check the top of the term stack to see if it's really an operator
[particle] anyway, seems a bug to me, whitespace wanted after the closing delimiter on a regex, at the least 20:57
pugs_svn r27568 | moritz++ | [perl6-projects.org] re-add note about source of file. Also add an 20:58
r27568 | moritz++ | authentication header for google webmaster tools to get some statistics
sjohnson suggestion for Perl 6: possibility of string interpolation for CONSTANTS somehow? 21:00
masak rakudo: constant a = 4; say "{a}" 21:02
p6eval rakudo dfe851: OUTPUT«4␤»
masak sjohnson: like that? :)
sjohnson heheh
like that :) 21:03
masak sjohnson: sorry, we disappoint you all the time by already having solutions... :)
moritz_ my $a is ro = 5; say "foo $a";
sjohnson perl 6.. the language of kings 21:07
moritz_ rakudo: say { a => 1, b => 2 } eqv { b => 2, a => 1 } 21:53
p6eval rakudo dfe851: OUTPUT«infix:<eqv> is only implemented for certain special cases yet␤in sub infix:eqv (src/gen_setting.pm:1450)␤Null PMC access in get_pmc_keyed()␤current instr.: 'perl6;Perl6;Compiler;eval' pc 288503 (src/gen_actions.pir:24176) (src/gen_setting.pm:3340)␤»
pugs_svn r27569 | moritz++ | [t/spec] fix and extend %h1 eqv %h2 tests 21:59
dalek kudo: 10843c7 | moritz++ | src/setting/Operators.pm:
infix:<eqv> for hashes
22:02
literal @tell masak gah, sorry I couldn't make it tonight :( 22:30
lambdabot Consider it noted.
moritz_ rakudo: say {} eqv {} 22:33
p6eval rakudo dfe851: OUTPUT«infix:<eqv> is only implemented for certain special cases yet␤in sub infix:eqv (src/gen_setting.pm:1450)␤Null PMC access in get_pmc_keyed()␤current instr.: 'perl6;Perl6;Compiler;eval' pc 288503 (src/gen_actions.pir:24176) (src/gen_setting.pm:3340)␤»
dalek kudo: 9a7a1dc | moritz++ | src/setting/Operators.pm:
two identical objects are also equivalent
22:37
missingthepoint www.perlcabal.org/syn/: "updated every one hour with the latest Synopses and Pugs test suite from their respective SVN repositories" 22:59
literal they're both kept in the Pugs repository now 23:00
missingthepoint that's what I thought
pugs_svn r27570 | bpetering++ | [docs/feather/syn_index.html] Change incorrect/misleading dual repos statement 23:08
cj seen diakopter 23:44
seen diakopter?
bucky hi cj 23:46