Prelude is broken: sial.org/pbot/11497 | 6.2.7 released! | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6 | Chip needs help!!! www.geeksunite.net
Set by theorbtwo on 3 July 2005.
svnbot6 r5175, autrijus++ | * I broke the build. :-/ Maybe `is builtin` conflicts with the 00:07
r5175, autrijus++ | precompiled Prelude? Will investigate further after some
r5175, autrijus++ | more adjustment of jet lag... For now, read in Prelude.pm
r5175, autrijus++ | in the old way.
r5176, autrijus++ | * update our version dep of parrot to 0.2.2
autrijus greetings lambdacamels! 01:16
I'm still being assauted by full 12hr of jet lag
dudley Welcome back! 01:17
autrijus but I'm doing fine. still working on releng -- down to 43 failed testfiles
heya dudley :)
gaal: I failed to run "eval" even with the precompiled prelude before my commits 01:18
so it seems it's not neccessarily my problem
gaal: are you still WIP on that?
helps with changelogging would be very appreciated -- I changelogged till pre-hackathon time 01:19
but I need to fix the 43 testfails first now
also, the new rulings lwall made during hackathon needs to be brought back to pmichaud for ratification
if someone can clean it up a bit and categorize them accoding to synopsis numbers and mail to pmichaud that'd be cool; otherwise I'll proc it a bit later 01:20
sili hmmmmm
autrijus the first url is use.perl.org/~autrijus/journal/25337 (for the rulings) 01:21
autrijus begins the exciting process known as backlogging 01:26
meppl :-P 01:35
cognominal_ how one does a PIR load_bytecode() and calls a PIR routine from pugs? 01:43
nothingmuch hola seōæ½xF1ors! 01:45
nothingmuch has arrived in tel aviv
autrijus cognominal_: eval "load_bytecode 'foo'\n...", :lang<pir>
I think
heya nothingmuch. 01:46
cognominal_ thx, I will try it 01:49
meppl nothingmuch, do you live there?
stevan howdy ya'll 02:14
it seems like svn.openfoundry.org is down?
or is it just me?
luqui looks like that to me too 02:16
dudley No, it seems to be down : (
stevan geoffb: whats you article about? 02:19
autrijus heya stevan, luqui 02:30
02:30 shachaf_ is now known as Shachaf
stevan hey autrijus, good to be back home? 02:30
autrijus still fighting with the MAXINT (12hr) amount of jetlag
but otherwise fine
I need to switch my IRC host... I'll brb
back 02:31
stevan openfoundry seems to be down? do we have an alternate?
URL that is 02:32
autrijus I thought you have svk? :)
stevan never managed to get it installed :)
autrijus oh wow :)
stevan and I was doing work on feather using my wifes laptop :)
autrijus svn.perl.org/perl6/pugs/trunk/
stevan I think I compiled my perl incorrectly when i upgraded, it gave me several symbol errors 02:33
autrijus I'm pinging the openfoundry folks... this is their business hour so it should be back online soonish 02:36
stevan cool
I am thinking of changing the *_method methods in the Metaclass to look something like this 02:37
$meta->add_method('label' => Per6::Method->new(sub { .. }), for => 'Class');
$meta->add_method('label' => Per6::Method->new(sub { .. }), for => 'Instance');
autrijus ah, making C/I meth explicit 02:38
stevan actually its better for the getting then the setting
$meta->get_method('label', for => 'Class');
autrijus right
stevan the adding could actually be done by checking the type
Perl6::Instance::Method
and Perl6::Class::Method
etc
autrijus that sounds sane 02:39
stevan :)
I will take that as a compliment :P
hmmm, can Roles add Class methods? 02:40
autrijus I'd say yes 02:41
nothingmuch HOME! I"M HOME! FINALLY! 03:41
autrijus nothingmuch: happy?
nothingmuch very
first class was sort of fun 03:42
less noisy, and less bumpy
autrijus ooh :)
nothingmuch and slightly more food
but not much more
autrijus I on the other hand gets shuffled around a lot
nothingmuch i also got shuffled a lot
air canada flight to tel aviv was also overbooked
so i went back to maelv
autrijus my toronto->vancouver flight being massively delayed so I could not have made my ->taipei flight 03:43
nothingmuch flew to budapest
autrijus so I boarded another random westjet flight at last minute (literally)
nothingmuch stayed there 12 hours
and then flew to tel aviv
autrijus only to find that the ->taipei flight already counted me out, etc
but I survived :)
nothingmuch by random do you mean
"counted me out" -- that is you could board? or could not board?
autrijus could not board, as they already listed me as delayed for a day
but I managed to socially engineer my way into the plane finally 03:44
nothingmuch ah
did you have to buy another ticket?
autrijus procedurally yes
practically I didn't do anything extra
nothingmuch did they pay for it?
autrijus nope
nothingmuch oh man
my social engineering was unsuccessful... i went to air canada, and they said 'sit down, we'll call you' 03:45
and then when it was too late they were like 'oh crap, we screwed up, you should have boarded'
since it was my second overbooking mess
btw, have a look: nothingmuch.woobling.org/example.html 03:46
stevan: please do a sanity check on my commit
autrijus openfoundry is back.
please commit at will 03:47
nothingmuch yep, pulling first
autrijus: find us a doc monkey - the TTH docs aren't good enough
autrijus TTH?
nothingmuch we need someone who can describe a concept well
Test::TAP::HTMLMatrix
since it's a tool, and not an API, i'm having trouble with it
btw, chromatic submitted a patch, and I uploaded UNIVERSAL::isa 0.02 from the airport 03:48
autrijus there are test-doc masters around here... chromatic, petdance, schwern
ypu I got it. ::can too.
I need to run for lunch. be back in a few mins
nothingmuch that's odd, chromatic also uploaded it? 03:49
i made diotalevi comaintainer, so that he could upload a backwards compatible 0.03
autrijus Prelude was borken (worked around now): sial.org/pbot/11497 | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6 | Chip needs help!!! www.geeksunite.net 03:49
nothingmuch but i don't remember doing chromatic 03:49
autrijus *shrug* once 0.03 hits it won't matter 03:50
nothingmuch it's just weird
i didn't know two conflicting namespaces + versions could co-exist
okay, pushed 03:53
svnbot6 r5177, nothingmuch++ | Fix up stuff to correlate with some changes in the metamodel
r5178, nothingmuch++ | use croak instead of die for more informative reporting
dudley OpenFoundry's back up for the svk-challenged among us... 04:10
Darren_Duncan I'm currently 'make test' on r5178 04:23
gaal welcome home, yuval and autrijus! 04:29
autrijus: looking at the result of -CPugs, it seems clear the prelude wasn't being compiled becuase there was very little logic, only symbol declarations 04:30
nothingmuch huh, weird
gaal (that's from yesterday, i didin't look now) 04:31
nothingmuch search.cpan.org/~chromatic/UNIVERSAL-isa-0.02/ <-- just a dup of my upload - SIGNATURE and all
hola gaal
thanks so much for yesterday
or today
it's been a very long today for me
gaal hey nm! how was the flight?
i bet
nothingmuch i got to fly first class, for the first and probably last time in my life
i have a theory
gaal oh right, first class
(i
nothingmuch the plane acts as a sort of sprint
spring
gaal 'm backlogging right now)
nothingmuch making it less bouncy up front 04:32
stevan nothingmuch: big pimpin! in first class :P
nothingmuch stevan: i'd rather be in the cargo box and not endure what I did
my flights were overbooked twice 04:33
stevan ??
oh
yeah that sucks, but at least you had leg room :)
nothingmuch yup
stevan did they let you into the first class lounge?
free drinks, all the peanuts you can eat
gaal next time get the plane to tug you and do waterski
nothingmuch i replaced all 'die's with 'croak's in the metamodel, to make it easier for me to debug my classes
i didn't try for the loungy
e
geoffb ping('stevan') 04:34
nothingmuch gaal: that should be a fun way to kill myself
as opposed to drying up like a raisin
airports + airplanes make my skin very angry
gaal oh, i thought that lounges were suppoesed to be over half of the deal
stevan geoffb.pong()
nothingmuch gaal: might be
gaal since you don't have to endure the stupid terminal annoyances 04:35
geoffb You asked about the article I'm writing . . .
nothingmuch why are you guys using parens?
gaal: uh, wow..... that's a nice idea
but I doubt they would have let me in
gaal in tel-aviv, by the way, the lounge has a free phone
stevan geoffb: yes, is it another in your 3-D series? or something on perl6?
nothingmuch it always said "gold super card members only" or something
and i was more of a 'fucked over sob with a compensation package'
stevan nothingmuch: croak is fine :) 04:36
gaal i suppose that if you fly 1st, you get to use the lounge
nothingmuch i didn't see any lounge for those kinds of people
geoffb It's OpenGL in Perl using SDL_Perl. This fourth article is about performance, including profiling, display lists, and happy fun frame rate counter display
stevan, yep, 4th in the 3d series.
stevan geoffb: nice
geoffb I would LOVE to be able to do a conversion to Perl 6, as soon as it works
nothingmuch well too late
gaal by the way, there's a guy doing 3d stull in OCaml
geoffb Maybe article 6. :-)
gaal as a demo, looks like he's reimplementing katamary damacy
nothingmuch no sense crying over unspilled complimentary champagne and peanuts =)
stevan geoffb: by that time, they should give you a book deal :P
gaal *stuff
geoffb stevan, heh, I wish 04:37
stevan thinks that articles might actually pay better though
gaal better than books, stevan?
geoffb Articles don't pay much. At O'Reilly it's $300 per
stevan they dont pay alot, but at least it's not based on sales
geoffb (American)
stevan geoffb: yes, I know (I wrote some of the Code Katas)
gaal geoffb: merjis.com/developers/ocamlode might be interesting to you
geoffb stevan, ah 04:38
gaal, thanks for the pointer
gaal np. i thought that books pay mostly in resume value? :)
stevan geoffb: IIRC, the book deal is an advance, then royalties once you sell enough to equal the advance
gaal++ # sooo true
geoffb stevan, hmmm, interesting. 04:39
stevan geoffb: I may be wrong though, its been a while since I looked. However, that is fairly standard practice in the publishing field
geoffb Last I recall O'Reilly was doing 10% off the top to the author, but I assume the advance comes directly out of that
gaal "hi, so what we're going to do in this interview is to get to you know you a bit, then ask you a few questions to see how well you know c" -- "i wrote the book"
svnbot6 r5179, Stevan++ | Perl6-MetaModel : removed much of the class method and attribute accessors in favor of passing parameters into the normal methods; so $self->get_class_method("foo") is now $self->get_method("foo", for => Class);
geoffb gaal, heh 04:40
stevan ... and still at +92% coverage :P
nothingmuch: did you commit the croak stuff? 04:41
nothingmuch thinks he will release the MockObject scripting thing
stevan: yes 04:42
stevan hmmm, I am afraid I may have overwritten it.
sorry
I will fix it 04:43
nothingmuch odd
VCS is supposed to let you avoid doing that kind of stuff
stevan yes, but I was copying over stuff I had done from an svn.perl.org checkout 04:44
like I say, oops ;)
nothingmuch i'm merging changes
stevan oh 04:45
nothingmuch okay, pull 04:48
wait.... wtf?! i just fixed this
stevan sorry 04:49
I am not used to anyone else working on this :P
nothingmuch nevermind
svk is confusing me
that's not you
is add_method huge now? 04:50
or about 6 lines?
stevan much bigger now 04:51
nothingmuch ok 04:52
hmm 04:54
shit, i broke it
ugh!
autrijus: help 04:55
clkao: help
obra svk issues? 04:56
nothingmuch yep
i merged badly
obra what's up?
nothingmuch it merged a merge with a merge of a merge
wof a conflict
and somewhere along the way I screwed up
s/wof/with/ 04:57
obra What's the end result?
nothingmuch something that fails the tests
or fails 2 tests
stevan: are 2 tests supposed to fail?
subtests 04:58
Failed 2/12 test scripts, 83.33% okay. 2/301 subtests failed, 99.34% okay.
stevan no
they all pass
nothingmuch grunts with dissatisfaction
stevan commit, I will fix it
nothingmuch this resolution was part of my push
so i think it was comitted
but i'm not 100% sure 04:59
stevan fixed it 05:02
commiting now
nothingmuch did I commit?
stevan I dont know
nothingmuch hah
stevan but there was 2 broken tests
ok 05:03
it should be there now
oh wait
wow, you really did make a mess :P
nothingmuch sorry =( 05:04
svnbot6 r5182, Stevan++ | Perl6::MetaModel - fixing the broken tests; it was my fault, sorry nothingmuch :)
stevan no, it was my fault, but your merge was really weird too 05:05
nothingmuch what was weird?
gaal autrijus, ping
stevan nothingmuch: the *_class_method methods were back again 05:07
I just took them out though
ok bedtime for me, adios all & 05:08
gaal bye stevan
geoffb g'night, stevan 05:09
nothingmuch adios stevan
sorry
mugwump grrs at /usr/lib/perl/5.8/CORE/reentr.h:611: error: field `_crypt_struct' has incomplete type 05:26
svnbot6 r5183, Stevan++ | Perl6-MetaModel : removing the old class methods from a bad merge
gaal oh, mugwump, that's very grrrable :-( 05:27
mugwump no clues yet I assume
gaal what platform? on linux it wokedforme only after everything was built from the same perl 05:28
iirc on windows i couldn't get it to work
but not remembering seems to be proof that i needed to repress this.... coution, there be dragons
mugwump removes the local perl from his $PATH etc 05:29
QtPlatypus ?eval "Am I still dead?" 05:37
evalbot6 'Am I still dead?'
QtPlatypus ?eval sub foo ($bar) { sub ($baz) { $baz ~ $baz } }; foo( 05:38
evalbot6 Error: unexpected "f" expecting ";", statements or end of input 05:39
QtPlatypus ?eval sub foo ($bar) { sub ($baz) { $baz ~ $bar } }; foo("bar")("baz")
evalbot6 'bazbar'
QtPlatypus ?eval sub foo ($bar) { sub ($baz) returns Str { $baz ~ $bar } }; foo("bar")("baz")
evalbot6 Error: unexpected "r" expecting block
gaal perlcabal.org/~gaal/smoke_xp.html # r5179, 18 yellows! 05:51
gaal must go to $work 05:52
egg $echo ${work}? 05:58
Does Parrot beat Pugs? 06:05
obra Nope. 06:06
Parrot and Pugs are friends.
egg O_O whay?
s/whay/why/ 06:07
QtPlatypus Pugs can compile to Parrot.
In time Pugs will be powerfull enought to compile everything to Parrot. 06:09
egg I meant [performance] ...
QtPlatypus Oh, yes when code is compiled to parrot it goes about 100x faster.
egg so pugs is a new language?
QtPlatypus Nope, pugs is an implementation of Perl6. 06:10
egg strange
QtPlatypus Not realy.
gcc is not a new lanague. c is the lanugage.
Khisanth what is so strange about a compiler?
egg by functional language?
QtPlatypus egg: I don't understand what you mean could you write it in anouther way. 06:11
egg parrot vm <-> pugs's perl6 Which is faster? 06:12
Khisanth pugs can emit PIR
QtPlatypus Pugs has two parts, a backend and a frount end. The frount end compiles, and then can use meany backends to run what the frount end could compile. Pugs has its own backend which is slower then using Parrot. 06:16
egg Is Parrot stack-machine based? (like java?)
QtPlatypus egg: No its regester based.
egg O-O 06:17
why not Lisp-like vm? 06:19
or stack-machine vm ...
obra www.parrotcode.org 06:20
read the faq
egg I did
obra Doesn't that cover why they built a register-based VM?
egg umm 06:21
I cannot find that
obra #parrot on irc.perl.org may be a better place to ask questions about parrot's design
egg oh,thanks
let me try ^_^
(perl6 channel?) 06:22
...
Khisanth hrm it's right there! above reference counting 06:26
QtPlatypus thinks that egg was lieing about reading the FAQ
QtPlatypus wishes that the parser was more sensable about telling you where the error was. 06:27
Khisanth where is the fun in that?
QtPlatypus Khisanth: Its alot more fun then having to comment out everything and then pairing back the comments untill something causes the error that is marked as being serval lines up. 06:29
Khisanth no debugger? 06:30
QtPlatypus There is a debugger for pugs? 06:31
Khisanth I guess #haskell would know :) 06:32
Darren_Duncan fyi, result of 'make test' on r5178 is (18 subtests UNEXPECTEDLY SUCCEEDED) (855 subtests TODO), 400 subtests skipped. 06:48
Failed 32/351 test scripts, 90.88% okay. 94/6168 subtests failed, 98.48% okay.
if anyone wants a list broken down by test, say so and I'll nopaste it 06:49
Aankhen`` It seems to be building a lot slower this morning. o_O
gaal|work D_D, see also prelcabal.org/~gaal/ 06:54
Aankhen`` pokes sri_. 07:13
svnbot6 r5184, Aankhen++ | * HTTP::Message -- fixed signature for &content. 07:26
r5185, mugwump++ | test numifying floats with leading 0's 07:33
r5186, mugwump++ | test for rounding behaviour of sprintf
r5189, mugwump++ | Generate random dates in ISO form and test for correct parsing - debug cut (comment laden)
r5190, mugwump++ | Run whole test, disable debug output
Aankhen`` ?eval 42 07:49
evalbot6 42
Aankhen`` ?eval $?PUGS_VERSION
evalbot6 \'Perl6 User\'s Golfing System, version 6.2.7, June 13, 2005 (r5190)'
Aankhen`` ?eval "42".eval 07:50
evalbot6 42
Aankhen`` ?eval 1 as Str 07:51
evalbot6 Error: unexpected "a" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
Aankhen`` ?eval my $foo = 1 as Str 07:52
evalbot6 Error: unexpected "a" expecting operator, ";" or end of input
Aankhen`` ?eval my Int $foo = 1 as Str
evalbot6 Error: unexpected "a" expecting operator, ";" or end of input
Aankhen`` ?eval my Int $foo = "abcd" as Str
evalbot6 Error: unexpected "a" expecting operator, ";" or end of input
Aankhen`` ?eval "bah"
evalbot6 'bah'
QtPlatypus Looks like eval bot doesn't know about as 07:53
Aankhen`` Yep.
egg as vb?
Nattfodd ?eval my Bot $dummybot = "evalbot" as IntelligentBot 07:54
evalbot6 Error: unexpected "a" expecting operator, ";" or end of input
Nattfodd definitely not :)
Aankhen`` Hehe.
QtPlatypus pugs hasn't implemented << 08:07
pugs hasn't implemented binary << and >> 08:08
jql ?eval 1 << 2 08:18
evalbot6 Error: unexpected "<" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
gaal|work ?eval 1 +<< 2 08:19
evalbot6 Error: unexpected "<" or "+" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
jql ?eval &infiix:<+<>(1, 2)
08:19 Aragone is now known as Arathorn
evalbot6 Error: unexpected ":" expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input 08:19
jql ?eval &infix:<+<>(1, 2) 08:20
evalbot6 4
jql hey
good bot
?eval 1 +< 20
evalbot6 1048576
jql praises evalbot6
?eval "foo" ~< 10 08:21
jql had to try
evalbot6 '
jql umm... that was just great. 08:22
Aankhen`` If I have a BUILD submethod in a subclass, do I need to explicitly call SUPER::BUILD? 08:24
jql no
Aankhen`` BUILDALL calls that, right?
jql yes. they get auto-called following the NEXT tree or some such 08:25
Aankhen`` Apparently so. Remind me to finish reading the tabs I open before asking.
jql ?eval "fox" ~| "baz"
evalbot6 'foz'
jql this is gonna be a fun language
Aankhen`` Heh. 08:27
QtPlatypus << has been renamed +< ? 08:29
jql it has
delimits texas quotes now
Aankhen`` ?eval class Foo { method blub () { "Foo" } } class Bar { method blub () { "Bar" } method baz () { $_ = Foo.new(); .blub(); } } Bar.new().blub() 08:30
evalbot6 'Bar'
QtPlatypus E03 needs updating then.
Aankhen`` ?eval class Foo { method blub () { "Foo" } } class Bar { method blub () { "Bar" } method baz () { $?SELF = Foo.new(); .blub(); } } Bar.new().blub()
evalbot6 'Bar'
Aankhen`` QtPlatypus >> Look at the synopses.
?eval class Foo { method blub () { "Foo" } } class Bar { method blub () { "Bar" } method baz () { $?SELF = Foo.new(); .blub(); } } Bar.new().baz()
evalbot6 Error: Can't modify constant item: VObject (MkObject {objType = (mkType "Bar"), objAttrs = <ref>, objOpaque = Nothing, objId = 60})
Aankhen`` ?eval class Foo { method blub () { "Foo" } } class Bar { method blub () { "Bar" } method baz () { $_ = Foo.new(); .blub(); } } Bar.new().baz()
evalbot6 Error: Can't modify constant item: VObject (MkObject {objType = (mkType "Bar"), objAttrs = <ref>, objOpaque = Nothing, objId = 60})
Aankhen`` Bah.
?eval class Foo { method blub () { "Foo" } } class Bar { method blub () { "Bar" } method baz () { given (Foo.new()) { .blub(); } } } Bar.new().baz() 08:31
evalbot6 Error: unexpected "{" expecting operator, ",", ":", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or "}"
Aankhen`` ?eval class Foo { method blub () { "Foo" } } class Bar { method blub () { "Bar" } method baz () { my $foo = Foo.new(); given ($foo) { .blub(); } } } Bar.new().baz() 08:32
evalbot6 'Foo'
Aankhen`` Ah.
jql that was bizzare 08:33
gaal|work wow, what a beautiful patch hunk:
Aankhen`` Sorry for the spam!
gaal|work -plan 21;
+plan 301;
Aankhen`` :-o
jql why did that given(Foo.new()) misparse?
Aankhen`` I dunno.
jql ?eval given (Int.new(10)) { say; } 08:34
evalbot6 Error: unexpected "{" expecting operator, ",", ":", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or end of input
Aankhen`` ?eval class Foo { method bar () { "bar" } }; given (Foo.new().bar()) { .uc() }
evalbot6 Error: No compatible subroutine found: "&given"
jql ?eval given Int.new(10) { say; }
evalbot6 Error: unexpected "{" expecting operator, ",", ":", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or end of input
Aankhen`` ?eval class Foo { method bar () { "bar" } }; given Foo.new().bar() { .uc() }
evalbot6 Error: No compatible subroutine found: "&given"
jql ?eval given Int.new(10) -> { say; }
evalbot6 Error: unexpected ">" or "-" expecting operator, ",", ":", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or end of input
Aankhen`` Yowza. 08:35
jql ?eval given 10 ~ 20 -> { say; }
evalbot6 Error: unexpected ">" or "-" expecting operator, ">>+|<<", ">>+^<<", ">>~|<<", ">>~^<<", ">>?|<<", ">>+<<", ">>-<<", ">>~<<", "\187+|\171", "\187+^\171", "\187~|\171", "\187~^\171", "\187?|\171", "\187+\171", "\187-\171", "\187~\171", "+|", "+^", "~|", "~^", "?|", "+", end of input, "~", ",", ":", term postfix, postfix conditional, postfix loop, postfix iteration or ";"
jql well, there's an operator list for Qt
Nattfodd ouch
jql these would probably make nice tests. anyone logging this? 08:36
QtPlatypus Thanks jpl
jql ?eval given 10 ~ 20 { say; }
evalbot6 Error: No compatible subroutine found: "&say"
Aankhen`` I could write up the given misparse once I finish what I'm working on.
jql ?eval given 10 ~ 20 { say $_; }
evalbot6 Error: No compatible subroutine found: "&say"
jql ?eval given 10 ~ 20 { $_; } 08:37
evalbot6 \'1020'
QtPlatypus ?eval my $a=1;$a +< 1; $a
jql my bad, then
evalbot6 \1
QtPlatypus ?eval my $a=1;$a +<= 1; $a
evalbot6 Error: Can't use readline() or getc() in safemode.
jql that was interpreted as unary =?
gaal|work ugh, that's parsing as =1
jql what happened to magic whitespace?
well, <= is implied +, since ~<= is spelled le 08:38
methinks
gaal|work [off-topic] did adblock stop working for other firefox users besides me?
jql ?eval my $a = 10; $a +|= 0xdead 08:39
evalbot6 \57007
QtPlatypus jpl: I was trying to do shift in place. +<= is to +< as += is to +
Aankhen`` ?eval sub foo ($bar where { .lc() eq "bar" }) { '$bar is OK' } foo('bar') 08:40
evalbot6 Error: unexpected "w" expecting trait, ",", ":" or ")"
jql I know that, and you know that, but Perl1 used <= and lt to mean +<= and ~<=, and we're stuck with it
egg hi I am back ^_^ 08:41
jql wouldn't mind the synonym, though
egg what's new?
aye
jql ponders if &infix:<le> should be a synonym for &infix:Ā«~<=Ā» 08:42
?eval "foo" ~<= "bar" 08:43
evalbot6 Error: Can't use readline() or getc() in safemode.
Aankhen`` What does &foo.goto do? 08:50
QtPlatypus Aankhen``: Most likely jumps to &foo smashing the current stack.
Aankhen`` I see. 08:51
QtPlatypus Allows you to do tailcall elimination.
svnbot6 r5191, Aankhen++ | * added HTTP::Request. 08:55
jql tailcall elimination is good. :) 09:13
Aankhen`` goes out. 09:26
Later.
sili anyone involved with SQL? unf.be/~sili/projects/sqlbuilder/sql.html i could really use some feedback 10:05
QtPlatypus Where is the normal #perl irc channel?
osfameron there's a thread on DBIv2 right now, no? 10:06
QtPlatypus: MAGnet ?
Juerd QtPlatypus: Everywhere
pjcj ... and nowhere, baby 10:17
osfameron notices there is no spoon 10:19
10:30 _meppl_ is now known as meppl
mugwump Is there a FreeBSD doctor in the house? 11:16
castaway dabro! 11:34
kungfuftr castaway! 11:38
mugwump: oi 11:40
mugwump oh hi kungfuftr 11:42
castaway kungfuftr! 11:46
kungfuftr castaway: congratulations are in order i believe... so... um... congrats! 11:52
osfameron congratulates castaway for.. er.. whatever it's in order for
castaway yesindeedy.. and thanks :) 11:54
got a job at Sophos, osfameron 11:57
broquaint Congrats, castaway :) 11:58
castaway wonders if they really want the references
ta bro
kungfuftr castaway: yes
=0)
osfameron castaway: ah, well done, where is it?
castaway fair enough
kungfuftr castaway: btw, you'll be on my team
castaway woo :) 12:00
lucky you ,)
were you looking for me recently for anything in particular? 12:02
kungfuftr castaway: nope, just to congratulate you 12:03
castaway okiedoke then 12:04
kungfuftr castaway: you'll not be going to YAPC::EU then 12:05
castaway points osfa towards Abingdon, Oxfordshire..
osfameron castaway: ah, I seem to remember you wanting to relocate 12:10
but a quick check showed Sophos offices in Germany as well as UK
QtPlatypus ?eval chr(17) 12:22
evalbot6 ''
mugwump ?eval chr(27) ~ "[1Jfoo"
evalbot6 '[1Jfoo'
QtPlatypus ?eval chr(17).perl
evalbot6 '\'\''
QtPlatypus ?eval chr(43).perl 12:23
evalbot6 '\'+\''
QtPlatypus ?eval chr(128) ~~ "\x80" 12:24
evalbot6 bool::true
QtPlatypus ?eval chr(-128) ~~ "\x80" 12:25
mugwump ?eval chr(0x263a)
evalbot6 pugs: Prelude.chr: bad argument
'ƃĀ¢Ć‚Ć‚Āŗ'
QtPlatypus ?eval $*PUGS_REVISION 12:34
evalbot6 \undef
Aankhen`` ?eval $?PUGS_VERSION 12:35
evalbot6 \'Perl6 User\'s Golfing System, version 6.2.7, June 13, 2005 (r5191)'
coral r5191. nice 12:59
mugwump freebsd++ # dvd writer just worked 13:03
kungfuftr freebsd++ # Just Works [tm]
mugwump and it will only take 2 more hours to finish writing this dvd! :-| 13:04
Nattfodd gentoo++ # isomorphic to FreeBSD 13:06
Aankhen`` Windows++ # DVD writer worked from day one 13:08
:-P 13:09
wilx` :)
mugwump Windows++ # it has no power over me 13:10
13:10 wilx` is now known as wilx
wilx @karma Windows 13:11
egg @@
wilx @@karma Windows
@@Windows 13:12
How? :)
mugwump jabbot, karma Windows?
jabbot mugwump: Windows? has neutral karma
mugwump jabbot, karma Windows
egg what...is...windows?
jabbot mugwump: Windows has karma of -3
wilx Oh, those were eyes?!
I see :)
Windows++ # :)
meppl egg, windows is the most used operating system by end-users 13:13
from microsoft
egg oh, I have a bit windows in my home too
meppl but pelase try to boycott it ;) 13:14
osfameron meppl: why?
egg what?
meppl windows is bar to us 13:15
mugwump Do not blindly boycott the dark side. you must learn to understand and resolve your anger, not merely constrain it
osfameron zigackly
egg foo or bar ?
osfameron not to mention the fact that if you care about perl6 being actually, um, used by anyone
it might help for it to run on Windows. 13:16
meppl bar
mugwump the users of Windows must support Perl 6 running on Windows.
egg Is perl6 out?
mugwump, why?
osfameron mugwump: sure, I'm not expecting Linux/Apple users to flock to the cause
mugwump because this is a volunteer project ;)
osfameron but making sarcastic discouraging noises about Windows users is pretty silly 13:17
mugwump there is the PxPerl distribution, that is out now
osfameron (perl community)-- # irritatingly and smugly anti-windows in general
meppl microsoft is against good standards, against almost all people doing in freenode
osfameron mugwump: yes, for which pixigreg++
mugwump no more silly than making disparaging remarks about people who make dispariging remarks I'll add 13:18
egg meppl, really?
osfameron heh, mibby
egg mugwump, py...thon? 13:19
meppl egg, yes ;) 13:20
egg (snake is everywhere... -_-)
snake = evil 13:21
mugwump please. this is perl 6. write: $snake ::= $evil
egg O_O!!! 13:22
coral or a grammer that lets you say snake = evil
egg $$$$$$$$$$ ... so I hate Perl
coral er, grammar
egg shell-script too
python syntax ... long long long 13:23
I preper C++ 13:24
QtPlatypus Pugs's doesn't have an equiverlent of "use bytes" yet does it?
meppl perl is the real advanced language - other languages like python or ruby are for newbies and kids :o) *duck
wolverian syntax-wise I think I like ruby best.
coral dodges and weaves through the licking fires
Nattfodd meppl: s/perl/lisp/ :)
wolverian but after CPAN you realise syntax really doesn't matter that much. 13:25
egg meppl, oh, it IS.
coral 11 A.C.
Meta
osfameron wolverian: this is why it doesn't matter that VB's syntax sucks
it's just a scripting language for COM (or now .Net)
mugwump lights a reefer from a little flame on coral's hair, then stamps out the burning hair
coral coralflame takes on a whole new meaning 13:26
egg osfameron, oh, Visual Basic is not Basic 13:27
osfameron er.. certainly it's not visual
egg osfameron, it's M$'s Basic
coral it's a dialect of a language
castaway looks for bacon.
gaal|work Qt: no, unicode is hardcoded into getch and everything else 13:28
egg M$'s basic,pascal,cobol,c,c++...... etc
gaal|work it would be grandalicious to have layers and stuff :)
egg +M$'s java 13:29
QtPlatypus Damn, I'm trying to implement "pack".
egg QtPlatypus, pack?
osfameron is pack syntax likely to be same as perl5?
QtPlatypus osfameron: I see why it wouldn't be any diffrent. 13:30
gaal|work well, a bytes version of the various prims might be useful
mugwump hmm, dunno. pack's a bit crufty
egg (?)
gaal|work Qt: actually $larry mentioned something
about wanting to rethink it
osfameron would be nice if it used some of the thinking of rules rejig
QtPlatypus Arh Ok.
osfameron (like spacing, named rules etc.) 13:31
QtPlatypus nods to osfameron.
egg Perl's .NOT = Perl6 + Parrot?
QtPlatypus Still I think it would be an interesting exersize.
mugwump can't you just /me cracks egg 13:32
mugwump dohs
egg ...
egg said: don't crack me ^_^
lumi gaal|work: iwpta "lawyers"
egg s/lawyer/taxer/ 13:33
Aankhen`` perlbot karma Windows 13:34
perlbot Windows doesn't have any karma
Aankhen`` :-o
egg karma? 13:35
QtPlatypus ?eval 0xFFFFFF 13:36
evalbot6 Code to eval exceeds maximum length limit.
QtPlatypus ?eval "0xFFFFFF" 13:37
evalbot6 '0xFFFFFF'
QtPlatypus ?eval "\xFFFFFF"
evalbot6 pugs: Prelude.chr: bad argument
egg ?eval 0xFF
evalbot6 255
egg grrrr
bad
QtPlatypus blinks.
coral ?eval "\x210F" 13:38
evalbot6 'ƃĀ¢Ć‚Ć‚'
coral ?eval "\xFE00"
egg ranma
evalbot6 'ƃĀÆƂĀøƂ'
egg ranma
coral irssi shows nulls; interesting to know.
QtPlatypus ?eval "\xFFFF" 13:39
evalbot6 'ƃĀÆƂĀæƂĀæ'
egg ranma too
QtPlatypus Good, pugs will allow you to generate illegal Unicode
egg so? 13:40
castaway mine is showing weird junk ,) (irssi that is)
egg me too
coral like ??D?O
QtPlatypus I'm seeing weard junk as well. 13:41
castaway heh
utf8--
egg I am on UTF-8 ^_^
coral hmm
egg totally ranma
coral ?eval "\x201E"
evalbot6 'ƃĀ¢Ć‚Ć‚'
egg ranma
castaway wtf is "ranma"?
coral wow, that's impressive. i made it worse. back to not messing with irssi.
a cartoon or apparently slang? 13:42
egg oh, it is chinese
ran-ma
Aankhen`` Ranma is a strange anime series, AFAIK... 13:43
castaway looks at egg.
osfameron is that the gender-changing panda one?
QtPlatypus osfameron: Yes
egg said: don't look at me plz ^_^
osfameron generally dislikes anime 13:44
Aankhen`` I generally like anime, but a few series are too weird even for me.
kungfuftr can someone type in a utf8 character on screen? (testing console) 13:45
cognominal_ ? say 'a' ~~ m/(.)/
?eval say 'a' ~~ m/(.)/
evalbot6 Error: No compatible subroutine found: "&say" 13:46
castaway try those funky evals?
Aankhen`` ?eval class Foo { submethod BUILD (+$.foo, +$.bar) { say "Foo::BUILD()"; } } class Bar { is Foo; submethod BUILD (+$.baz) { say "Bar::BUILD()"; } } my $bar = Bar.new();
evalbot6 Error: No compatible subroutine found: "&say"
cognominal_ ?eval say 'a'
evalbot6 Error: No compatible subroutine found: "&say" 13:47
Aankhen`` ?eval my @temp; class Foo { submethod BUILD (+$.foo, +$.bar) { push @temp, "Foo::BUILD()"; } } class Bar { is Foo; submethod BUILD (+$.baz) { push @temp, "Bar::BUILD()"; } } my $bar = Bar.new(); @temp
evalbot6 ['Foo::BUILD()', 'Bar::BUILD()']
Aankhen`` ?eval my @temp; class Foo { submethod BUILD (+$.foo, +$.bar) { push @temp, "Foo::BUILD()"; } } class Bar { is Foo; submethod BUILD (+$.baz) { push @temp, "Bar::BUILD()"; } } my $bar = Bar.new(); push @temp, $bar.foo; @temp
evalbot6 Error: No compatible subroutine found: "&foo"
egg aye... bad toy
Aankhen`` ?eval my @temp; class Foo { submethod BUILD (+$.foo, +$.bar) { push @temp, "Foo::BUILD($.foo, $.bar)"; } } class Bar { is Foo; submethod BUILD (+$.baz) { push @temp, "Bar::BUILD($.baz)"; } } my $bar = Bar.new(baz => "BAZ"); push @temp, $bar.foo; @temp 13:48
evalbot6 Error: No compatible subroutine found: "&foo"
Aankhen`` ?eval my @temp; class Foo { submethod BUILD (+$.foo, +$.bar) { push @temp, "Foo::BUILD($.foo, $.bar)"; } } class Bar { is Foo; submethod BUILD (+$.baz) { push @temp, "Bar::BUILD($.baz)"; } } my $bar = Bar.new(baz => "BAZ"); @temp
evalbot6 ['Foo::BUILD(, )', 'Bar::BUILD(BAZ)']
Aankhen`` Ah.
gaal|work what happened to evalbot's safe_say?
Aankhen`` ?eval safe_say "foo"
evalbot6 Error: No compatible subroutine found: "&safe_say"
Aankhen`` It died.
gaal|work urr, no it was supposed to be installed transparently.
Aankhen`` Apparently it wasn't. 13:49
gaal|work well it *was*, but it b0rk.
Aankhen`` Awww. 13:52
I think my understanding of objection creation and initialisation is a little confused. 13:56
svnbot6 r5192, Aankhen++ | * fixed signature for HTTP::Request::BUILD. 14:03
r5193, Aankhen++ | * un-"fixed" signature for HTTP::Request::BUILD.
r5194, Aankhen++ | * HTTP::Request -- `parse` method needs to be able to alter $str.
Aankhen`` What is the syntax for heredocs? 14:23
And do they work yet?
Nevermind, found quoting.t. 14:24
QtPlatypus Yes the work
q:to<endname>; 14:25
Aankhen`` Ah, thanks.
QtPlatypus pugs is slightly wrong.
Aankhen`` It doesn't seem to be working... 14:26
QtPlatypus will check the stuff he has done.
q:to/end/ 14:27
...
end;
Aankhen`` Ah. 14:28
The semi-colon comes at the end, then.
QtPlatypus nods "Its actually a parsing bug in pugs"
Aankhen`` OK.
Thanks for the help. :-)
QtPlatypus No problem. 14:30
Aankhen`` Do modules still need to return 1? 14:40
wolverian s,1,a true value, 14:41
Aankhen`` OK.
osfameron I think not, anyway?
gaal|work i think not, too; and i hope require evaluates to an object representing the module. 14:42
Aankhen`` Bleh, I just added 1 at the end of my module.
Oh well, it won't hurt. Hopefully.
gaal|work indeed it wouldn't.
wolverian AES don't mention returning true.
osfameron I think it's specifically mentioned somewhere that modules don't need to, and that it was a bad decision in the first place 14:43
wolverian right.
gaal|work there must be an $A++ waiting to be written exploiting this convention. if there hasn't been one already! 14:44
$A += require Carp or something.
Aankhen`` $A++?
gaal|work paris.pm.org/aplusplus.html 14:45
like japh, only sicker
castaway the point, at least with old perls, was that "do" returns the last value/thing in the file, and that was why returning true was useful, I thihnk 14:46
svnbot6 r5195, Aankhen++ | * added HTTP::Response.
r5196, Aankhen++ | * HTTP::Response -- EOL at EOF, more signature tweaking.
r5196, Aankhen++ | * Usual SVN properties for ext/libwww-perl/lib/HTTP/Response.pm
gaal|work sure
castaway and that carried over to require, iirc
gaal|work yup
Aankhen`` Woo... that IS sick.
castaway - which would lead me to guess/suppose that p6 doesnt need it 14:47
Aankhen`` Doh.
gaal|work it's so much fun when we're all in violent agreement like that.
Aankhen`` I said HTTP::Response instead of HTTP::Request.
castaway well, do can be used to 'read data dumpered file' in
gaal|work omg, i *did* just accidentally invent a new $A++. where's cognominal?
castaway, well, that's what do FILE / p6 evalfile is for. 14:49
you typically don't need @INC+%INC semantics for that kind of hting.
QtPlatypus In pugs the return value of use seems to be the return value of import.
castaway gaal|work: I have no clue how p6 relates in some areas.. :) 14:50
QtPlatypus gets an odd error "*** No compatible subroutine found: "&Pugs::Internals::check_for_io_leak"" Line 1 is a comment. 14:51
svnbot6 r5197, iblech++ | * Usual svn properties added to new files in ext/ and lib/.
r5197, iblech++ | * t/ -- unTODOs and unEVALs.
castaway gaal|work: I'm guessing that external modules and do have little in common now, tho?
gaal|work c, there *is* no do now :) 14:52
castaway sorry.. then what did "do FILE / p6 evalfile" mean? 14:53
gaal|work this is all implemented in Pugs.Prim.Eval, and governed by "EvalStyle"
c: the keyword is now called "evalfile"
castaway ah, ok
s/do/evalfile/ in last statement then
gaal|work and in the case of evalfile, the EvalStyle's result is the last evaluated value
like p5 do 14:54
castaway right, but is that bit used to load/parse modules in separate files now?
wolverian io($file).eval # do we really need evalfile? 14:55
gaal|work wolverian: that's indeed what it does - but there is no io() yet :) 14:56
wolverian (or io($file).slurp.eval, which I think is still better than evalfile, which is just a hateful idiom anyway)
gaal|work: right, I'm talking about p6 now, not pugs specifically :)
castaway does the Larry have-wavey thing :)
bah "hand-wavey"
wolverian for a second I thought you had a Larry and were waving him.. 14:57
castaway heh
gaal|work c: "that bit" is reused a bit; when you are in use, then the result is just assimmilated into the current env
(my turn to handwave :-)
castaway umm, ok :)
gaal|work look in src/Pugs/Prim/Eval.hs 14:58
note that EvalResultModule is unused 14:59
because it isn't blessed in any spec yet
svnbot6 r5198, iblech++ | t/var/symbolic_deref.t -- Fixed tests and added new tests, gaal++: 15:01
r5198, iblech++ | * my $x; $::('x') # should die
r5198, iblech++ | * our $x; $::('x') # should work
r5198, iblech++ | * my $x; $::('MY::x') # should work
gaal_work cool! iblech++
i have a ride home,
bye :) &
pdcawley_ Ah.. thought for a second that that shouldn't work... 15:08
%::{'$x'} and %::{'x'} are going to be interesting clashes...
Or is that only going to work with %*::{'$x'} ? 15:09
Aankhen`` goes to take a break from staring at code. 15:11
iblech pdcawley_: IIRC, $::(...) (symbolic dereferentiation) only works with ()s, not with {}s. So $::(foo) is always symbolic deref, while %::{foo} is always hash access 15:22
pdcawley_ iblech: I think we're talking at crossed porpoises. %::{...} is (should be) the symbol table. 15:27
So 'keys %::' should get you all the names in the current package.
%*:: becomes the equivalent of Perl5's %:: or %main::, etc. 15:28
%*::{/%.*::/} should get you all the loaded packages, etc... 15:29
iblech Yep. I thought you were asking when %::{...} is symbolic deref and when it's hash access: %::('$x') is illegal (not variable named '%$x'), but %::('x') works (evaluates to var '%x') 15:31
pdcawley_ Ah.. gotcha. Misunderstood you twice. I should go down and cool my brane
iblech ;) 15:32
pdcawley_ Is &?CALLER_CONTINUATION working yet? 15:33
(Weekly nag.) 15:34
iblech Don't think so... 15:35
pdcawley_ Ah well. I shall mark my calendar for this time next week then. 15:36
gaal rehi 15:41
svnbot6 r5199, iblech++ | t/subroutines/currying.t, t/packages/Test.pm -- Added test for (use ...).assuming(...).
QtPlatypus pugs doesn't have leave yet. 15:42
:
(
iblech Yep, but pugs -CPIR has it :) (but not the full leave with its optional params) 15:43
Aankhen`` Optional params? 15:49
iblech Yep, see t/builtins/control_flow/leave.t: There's leave $ret_val and leave $thing_to_leave, $ret_val, where $thing_to_leave can either be a Code reference or a Class (like Sub, or Block) 15:51
Aankhen`` Cool. 15:52
Bah, I still don't understand continuations properly. 15:53
svnbot6 r5200, fireartist++ | * more oo construction tests 15:55
r5200, fireartist++ | * usual SVN properties for AUTHORS
cwest So, (not p6 specific but I know you'll know).. .I'm reading the YAML spec (skipping straight to the grammar) and I'm just wondering why it's filled with identifiers that begin with a double bang (!!). 16:12
broquaint Because it's an angry spec! 16:14
cwest heh 16:15
cwest wonders how syck handles un-identified streams... 16:17
broquaint Looks like shorthand notation: yaml.org/spec/current.html#tag%20shorthand/ 16:19
As referenced in the last paragraph of Chapter 4. Syntax: yaml.org/spec/current.html#id2512702 16:20
cwest ah, cool 16:30
I was almost there. 16:31
16:34 Maddingue is now known as Maddingue_
cwest defining data types.... ugh 16:36
Can't everything just be a string? ;-) 16:37
broquaint Any does String. 16:41
Aankhen`` Parse error: expected method name after "." 16:47
svnbot6 r5201, Aankhen++ | * ChangeLog: edited; added note about 01Overview.kwid
broquaint ?evalbot Any does String 16:50
?eval Any does String
evalbot6 Error: No compatible subroutine found: "&Any"
broquaint Dang.
gaal wouldn't that be Any.does(String) ? not that it works, but still... 16:52
svnbot6 r5202, Aankhen++ | * HTTP::Message -- fiddled around with the pattern matching a bit. 16:53
Aankhen`` Or maybe: class Any is extended { does String; } 17:02
svnbot6 r5203, Aankhen++ | * fixed silly mistake in HTTP::Request::as_string.
r5204, Aankhen++ | * fixed silly mistake in HTTP::Response::as_string.
Aankhen`` (is that C<is augmented> now?)
wolverian Str, not String, or has that been chaned? 17:04
s,chaned,changed,
Aankhen`` Oops, sorry.
My bad. :-)
?eval my $foo = "abcd"; undefine($foo) 17:08
evalbot6 undef
broquaint ?eval undefine(%*::); 17:11
evalbot6 Error: Undeclared variable: "%*::"
broquaint ?eval $foo='yo'; undefine(%::); $foo
evalbot6 Error: unexpected (, "i" or "u" expecting ";", statements or end of input
iblech %:: is not yet parsed, IIRC 17:12
broquaint Ah. Is there a way to abuse^Waccess the main package yet?
iblech Hm... there's %MY::, IIRC. Not sure, though 17:14
food &
broquaint ?eval my $foo = '/aside cackle wildly'; undefined(%MY::); $foo 17:17
evalbot6 Error: Undeclared variable: "%MY::"
broquaint Is there anything I can undefine that I didn't already define? 17:18
offby1 dumb question time: I built "pugs", and ran it like "./pugs". Then I typed open("/dev/null") . I expected to see something like {filehandle}, but instead it said No compatible subroutine found: "&open". What obvious thing am I missing? 17:20
wolverian offby1: that means your pugs doesn't implement open() 17:21
offby1 is that unusual?
should it implement it?
wolverian yes, it should. maybe you're suffering from the thing mentioned in the topic
offby1 checks 17:22
well, I don't even know what a "prelude" is, but I'll turn back the clock to r5137 and see what happens. 17:23
Aankhen`` My Pugs appears to implement open. 17:24
wolverian the topic seems to indicate that the latest revisions have fixed the issue
offby1 would I expect massive test failures if open were unimplemented?
wolverian (I don't know if &open is implemented in Prelude, anyway)
offby1 s/would/ought/
dudley it is in Prelude, and it does cause massive test failures. 17:25
gaal wolverian: it is.
offby1 hokey
gaal but the prelude is in now.
wolverian thanks :)
offby1 is embarrassed to report that, now that he thinks about it, he _did_ ignore massive test failures last time he built. Ahem. 17:26
gaal dudley: if you svn up your tests should pass.
dudley s/does/did/
gaal it's just reverted to it's "eval" behavior, which is slow.
s:2nd/it's/its/ 17:27
dudley gaal: I haven't been able to build a new pugs lately. GHC is a rather slow compile ;-)
gaal dudley, do you know about 'make unoptimized'?
much faster compilation... much slower pugs :) 17:28
dudley gaal: No, I meant I was building ghc itself :)
gaal oi oi oi ouch
Aankhen`` Why? 17:30
No binary builds available for your system?
Argh. 17:31
I just lost a 7 or 8 line commit message. :-\
wolverian how? 17:32
dudley Aankhen``: I've been using the .dmg version on osx, but I couldn't get hs-plugins to work.
Aankhen`` wolverian >> Komodo crashed for no apparent reason when I clicked on "OK".
dudley >> Ah, I see.
Hmm. 17:33
Strange.
Or maybe not.
Bleh.
Now Komodo's confused.
offby1 do the pugs developers tags certain releases?
s/tags/tag/ 17:34
I _do_ speak English. Really.
gaal offby1, i don't think so, but svn log | grep "This be" 17:35
Aankhen`` offby1 >> Lies!
offby1 is torn 17:36
dudley stitches offby1 back together 17:39
svnbot6 r5205, Aankhen++ | HTTP::Message: 17:42
r5205, Aankhen++ | * removed all explicit declarations of invocants for methods.
r5205, Aankhen++ | * fixed a few `want ~~ Foo` occurrences.
r5205, Aankhen++ | * removed `:P5` wherever the new form worked.
r5205, Aankhen++ | * replaced anonymous subs with pointy blocks for consistency.
r5205, Aankhen++ | * changed all array checks to `@foo > 1` for consistency.
r5205, Aankhen++ | * (hopefully) fixed &:stale_content.
r5205, Aankhen++ | * fixed a few outright mistakes.
castaway busybusybee, Aankhen``
Aankhen`` It needed a lot of work. :-) 17:43
gaal Aankhen``, it's obviously up to you but consider not dropping :P5 -- it depends on parrot which not everybody can build against.
Aankhen`` gaal >> I've been using an external Parrot...
gaal on win32 i haven't seen even that work :( 17:44
offby1 whaddya know: after rebuilding: open ('/dev/null') => {handle: /dev/null}
thanks gang
Aankhen`` Really? That's strange. I'm running on Win32 and Parrot has always compiled without any problems.
gaal it built ok, but pugs didn't work with it (for me)
Aankhen`` (I just can't link it into Pugs, since apparently that requires MSYS) 17:45
gaal has been a while since i tried though :)
Aankhen`` Well, I did consider just leaving :P5 alone, but then I figured since the module won't even compile yet, PGE ought to be a little more reliable by the time it's used. :-)
gaal :)) 17:46
Aankhen`` That might change if someone were to port Time::Local, or an equivalent... *hint hint*
svnbot6 r5206, Aankhen++ | * HTTP::Message: removed unnecessary empty import lists. 17:48
Aankhen`` Hmm... I appear to have a circular dependency here. 17:49
HTTP::Message `use`s HTTP::Request and HTTP::Response, which in turn use it...
gaal require instead? 17:50
Aankhen`` Ah, right.
gaal or factor out to HTTP::Common
Aankhen`` Actually, it's not common functionality; it's using specific functionality from each module. 17:51
I can `require` Request and Response from Message while `use`ing Message from them?
gaal what's the user liable to bring in? 17:52
Aankhen`` Request or Response.
Basically, HTTP::Request and HTTP::Response both inherit from HTTP::Message.
So I can just `require` it, right?
gaal so why does H:M call into either of them?
i just see line 213 17:53
svnbot6 r5207, Aankhen++ | * HTTP::Response: `use HTTP::Message`.
gaal where you don't need to have them actually loaded
Aankhen`` I'm going to `require` all of them. 17:54
gaal i think it's okay for H:M not to use OR require either of H:Req or H:Res
it doesn't seem to need them.
Aankhen`` It does need to have the classes available for parsing...
gaal what do you mean? 17:55
Aankhen`` my $class = ($content ~~ m,^(HTTP/.*)\n,) ?? HTTP::Response :: HTTP::Request;
@:parts = $class.parse($content);
castaway umm, surely it wants dummy methods which it calls in itself, which they overwrite? (not that Ive looked what you're doing, but thats what it sounds like)
Aankhen`` If neither one is loaded, where will the `parse` method be found?
gaal sure, but nobody calls that on a raw H:M object
you don't instantiate from H:M 17:56
it's an "abstract" base class.
Aankhen`` Would anything break if they all `require` each other?
gaal and &parse is an abstract method.
theorbtw1 doesn't see why anything would break if they all use each-other either.
castaway H:M requiring something that descends from it sounds really ick
17:56 theorbtw1 is now known as theorbtwo
gaal the base class doesn't need to require its children 17:57
Aankhen`` castaway >> That's how it works in the P5 version.
castaway that doesnt make it less icky ,)
Aankhen`` OK, I'm just going to leave them all `require`ing each other for now.
Khisanth hrm wouldn't this be a good time to fix a broken design? ;)
castaway sounds like it
Aankhen`` castaway >> You could take a look at ext/libwww-perl/lib/HTTP/Message.pm to see what's going on.
gaal wait, why *does* H:M define &parse?
castaway (isnt this where stubs come in?)
Khisanth or perhaps a designe forced by p5's OOP
castaway I think the question is more, why does it call it? (or maybe not) 17:58
gaal noooo, i don't understand when that method gets to be called at all
unless!
svnbot6 r5208, Aankhen++ | * HTTP::Message, HTTP::Request and HTTP::Response should just `require` each other, not `use`.
Aankhen`` gaal >> Because it can parse certain types of messages.
And it is called by the derived classes.
gaal the children call SUPER
but that's okay too
Aankhen`` See, HTTP::Request and HTTP::Response parse one part of the message (the headers). 17:59
Then they call SUPER::parse to parse the actual content.
gaal okay, that's all fine then
sound even
Aankhen`` A message may be comprised of multiple parts, and each part may in turn be another HTTP::Request or HTTP::Response.
gaal and you *still* don't need to require H:Re[q|s]
Aankhen`` But if they aren't required, how would they exist? Are they automatically imported when the class method is called? 18:00
gaal one reason why you might *want* to though is if you want to save your user from having to use them both
castaway why would they not exist? does anyone just create a H:M object?
Aankhen`` castaway >> Possibly. 18:01
gaal can your user be expected to sometime just want to say "use H:Request" ?
Aankhen`` gaal >> All the time.
theorbtwo That explains why Request and Response require Message.
Why does Message require Request and Response?
Aankhen`` Hrm.
One sec.
Khisanth nobody has been able to answer that!
Aankhen`` I need to check something.
gaal okay; then the user simply never "use H:M" himself
Khisanth emailing the original author maybe be useful ;) 18:02
gaal uses
theorbtwo I meant require, not C<require>.
castaway looks at H:M
theorbtwo It doesn't much matter in modules without a sub import.
Aankhen`` Mmm. 18:03
Aankhen`` mulls it over.
gaal in short, you can assume (or even verify if you want) that if H:M has finished initializing, at least one of H::Re[a|s] is loaded.
and you're perfectly safe.
Aankhen`` Right.
Bye bye requires.
gaal *Req|Res 18:04
Aankhen`` ?eval 100 <= 101 <= 102 18:08
evalbot6 bool::true
Aankhen`` ?eval my ($foo, $bar, $baz) = <100 101 102>; $foo < $bar < $baz
evalbot6 bool::true 18:09
Aankhen`` ?eval my ($foo, $bar, $baz) = <100 101 102>; $foo < $bar > $baz
evalbot6 bool::false
Aankhen`` ?eval my ($foo, $bar, $baz) = <100 101 102>; $foo > $bar < $baz
evalbot6 bool::false
castaway isnt sure again currently ,)
Aankhen`` ?eval my ($foo, $bar, $baz) = <100 101 102>; $foo < $bar < $baz
evalbot6 bool::true
Aankhen`` ?eval my ($foo, $bar, $baz) = <100 101 102>; $foo > $bar > $baz
evalbot6 bool::false
cwest bot war?
svnbot6 r5209, Aankhen++ | * HTTP::Message should not require HTTP::Request or HTTP::Response. gaal++ theorbtwo++ castaway++ Khisanth++
cwest oh, evaluator
Aankhen`` Sorry, I tend to get something into my head and go on spamming until I figure it out... 18:10
?eval module Foo { our $bar = "10"; %OUR::<bar>; }
evalbot6 \undef 18:11
iblech ?eval my $x; module Foo { our $bar = "10"; $x = %OUR::<bar> } $x
evalbot6 \undef
Aankhen`` Hmm. 18:12
castaway wonders if one can /msg the bot..
Khisanth no
Aankhen`` I want to create an export[able|ed] subroutine by binding to `our &foo`. Is that possible?
Khisanth at least not the last time I tried
gaal Aankhen``, i don't know; but the 'is export' trait does work 18:13
iblech autrijus checked in many improvements for qualified name handling, so it might work now
Aankhen`` (and the best part is, I want to do it through symbolic references, e.g. `&::($name) = { ... }`)
gaal heh heh heh :)
Khisanth heh was just wondering why that isn't being used :)
Aankhen`` I can have `our &foo is export ::= { ... }`? 18:14
castaway anyway, the request/response thing, looking at the p5 versions anyway.. the code makes me suppose that at that point, it is trying to parse incoming data from a socket, and since it doesnt know whether the data is a request or a response at the time, it loads a bare H:M, and requires/changes to the correct sort on the fly
(But I cant see anywhere where that "parts" sub is being called by anything, so Im kinda confused)
Khisanth sub foo is export {} isn't it?
gaal c: why doesn't it rebless it then? (or does it perhaps?)
Aankhen`` Khisanth >> Yes, but I have to use binding since the names are dynamic.
(and I don't want to use `eval` if I can help it) 18:15
castaway good question
Aankhen`` gaal >> It's parsing parts of the whole, and it may have to use different methods of parsing for different parts. 18:16
gaal a whole what? HTTP conversation? interesting.
Aankhen`` ?eval my %foo = (:bar<baz> :quux<too>); %foo
evalbot6 Error: unexpected ":" expecting term postfix, operator or ")"
Aankhen`` gaal >> A whole HTTP::Message. :-)
gaal ....though each chunk is definitely either a response or a request
Aankhen`` No.
They're MIME chunks. 18:17
gaal ahh
Aankhen`` Arbitrary chunks of data.
?eval my %foo = (bar => 'baz', quux => 'too'); for %foo -> $k is rw, $v is rw { ($k .= uc; $v .= uc; } %foo
evalbot6 Error: unexpected "f" expecting ";", statements or end of input reserved word
castaway boggles 18:18
Aankhen`` ?eval my %foo = (bar => 'baz', quux => 'too'); for %foo.kv -> $k is rw, $v is rw { ($k .= uc; $v .= uc; } %foo
evalbot6 Error: unexpected "f" expecting ";", statements or end of input reserved word
Aankhen`` ?eval my %foo = (bar => 'baz', quux => 'too'); for %foo.kv -> $k, $v { ($k .= uc; $v .= uc; } %foo
evalbot6 Error: unexpected "f" expecting ";", statements or end of input reserved word
Aankhen`` Wha?
Ohh.
?eval my %foo = (bar => 'baz', quux => 'too'); for %foo.kv -> $k is rw, $v is rw { $k .= uc; $v .= uc; } %foo
evalbot6 Error: Can't modify constant item: VStr "bar"
Aankhen`` :-\
Khisanth $k.uc? 18:19
Aankhen`` ?eval my %foo = (bar => 'baz', quux => 'too'); for %foo.kv -> $k is rw, $v is rw { $k = $k.uc; $v = $v.uc; } %foo
evalbot6 Error: Can't modify constant item: VStr "bar"
Aankhen`` Could someone point me to a Synopsis which discusses symbolic dereferencing? 18:21
I want to know if I can use `our &::RC_($foo)`. 18:22
gaal s02, no? 18:23
Aankhen`` ?eval our $foo is random_trait;
evalbot6 undef
gaal only i'm not sure how you could say our on something that's computed 18:24
because our needs to happen at compile time
Aankhen`` Using ::=?
our &::RC_($message) is export(:DEFAULT) ::= sub () { $code };
Khisanth Aankhen``: what are you working on that contains this many unknowns? 18:25
Aankhen`` HTTP::Status.
It can be done using `eval`, but like I said, I want to avoid that.
gaal &::("RC_" ~ $message) ?
&::(<<RC_{$message}>>) ? 18:26
Aankhen`` The former will work (dunno about the latter). 18:27
$::($foo)::Bar::baz # $Foo::Bar::baz
There doesn't seem to be anything about having dynamic parts of the same package, rather than seperate dynamic packages.
gaal if A will work, B will, also.
Aankhen`` Oh yeah, sorry, I didn't really comprehend it.
gaal that dynamic stuff makes my head hurt a bit :) 18:28
Aankhen`` Heh.
It would be neat if it worked. ^_^
gaal dynamic packages that is
there was a bit where larry mentioned lexical vs dynamic vs inner vs outer packages and... kablooie 18:29
Aankhen`` Ow.
Khisanth bleh perl6 provides no better solution for this type of thing besides the same old kludges?
gaal ah, it's right there after that block.
Aankhen`` gaal >> S02? That bit seems clear enough to me... 18:30
gaal Khisanth, why kludges? you really want symbolic lookups, you have them
how else woudl you express 'em?
Aankhen`` I like the new syntax for symbolic lookups.
It looks a lot cleaner. :-)
gaal "Package names are searched for from inner lexical scopes to outer, then from inner packages to outer" - what's an inner package? 18:31
Aankhen`` module Foo { module Bar { ... } }
Bar is the inner package.
gaal okay; what about the distinction against scopes? 18:32
Aankhen`` { say "Outer lexical scope"; { say "Inner lexical scope" } }
wolverian Aankhen``: you mean 'my module'? surely modules are global by default?
Aankhen`` wolverian >> Not that I know of...
wolverian Aankhen``: okay then. :) 18:33
gaal but note that it says *packages* are searched for from inner lexical scope outwards 18:34
so what's the distinction?
Aankhen`` One sec, I will try to pastebin it.
wolverian gaal: distinction between?
gaal "inner lexical scope" and "inner packages" 18:35
what's an inner package if not a package defined within the lexical scope of another one?
wolverian gaal: I assume it means a package that is put into the lexical scope, and I assume you need to do 'my package' to do that 18:36
gaal: like you have to do with subs
pasteling "Aankhen``" at 203.101.0.48 pasted "Inner vs. outer package vs. lexical scopes" (14 lines, 265B) at sial.org/pbot/11519 18:37
Aankhen`` I thought that was fairly straightforward. :-S
gaal no, $::() doesn't look for lexical vars unless you say MY
and then it looks *only* for lexicals 18:38
if i understand correctly.
Aankhen`` I thought it said it looks first in the inner lexical scopes...
"Package names are searched for from inner lexical scopes to outer, then from inner packages to outer."
gaal for the _package name_ 18:39
Aankhen`` Oh.
Package names, not lexical variables... right.
Aankhen`` is blissfully ignorant.
gaal which is kinda anticlimatic if it just means that in your nopasted example, the current package is Bar! :) 18:40
Aankhen`` Heh.
gaal bbiab 18:41
autarch Is it kosher to ask language/syntax questions here? 18:42
of course it's moot if no one else is around ;)
Aankhen`` Go ahead and ask. Someone will answer if they know. 18:43
Khisanth they went into hiding when you entered :)
autarch no doubt
Aankhen`` $::($foobar)baz # ILLEGAL at compile time (no operator baz)
autarch just wondering if this will be allowed ...
Aankhen`` I think that means your version is the correct one, gaal.
autarch has Int $.day where { Date.day_is_valid_for_month( $.year, $.month ) }
cause that would totally rock 18:44
if it is valid it's not clear how the new value of $.day would be passed in
Aankhen`` autarch >> You'd pass in the new value by assigning to it as usual, and if the closure doesn't return true, it will raise an exception (i.e. die horribly).
autarch So it'd be available as $.day ? 18:45
Aankhen`` Yes.
autarch ah, so sweet
Aankhen`` Er.
You'd need "is rw" on it too.
has Int $.day is rw where { Date.day_is_valid_for_month( $.year, $.month ) };
autarch ah, right
Aankhen`` (not sure about the order)
autarch that's a good point, since I'm not sure I even want to expose those as rw
but the whole concept is still very cool 18:46
finally decent parameter validation built in 18:47
Aankhen`` Heh.
It's all thanks to subtypes, AFAICT.
The `where` clause creates an anonymous subtype.
autarch yeah
subtypes are very nice
Aankhen`` Yep.
autarch I'm a big fan of strict validation (err, no surprise from my CPAN modules) so having it built in is going to be great 18:48
svnbot6 r5210, Aankhen++ | * added HTTP::Status.
Aankhen`` I am a big fan of being explicit about everything -- which is why people sometimes wonder why I use Perl -- and so proper signatures are the coolest addition from my POV. :-) 18:49
BRB. &
Khisanth because with Perl, although you can be explicit, you don't have to be all the time :) 18:50
autarch right
and it still makes it easier to do stuff than a language like Java, where you have to be explicit _and_ tedious 18:51
iblech Hm... I think you'd have to use $_ here: has Int $.day where { Date.day_is_valid_for_month($.year, $.month, $_) } -- because otherwise &Date::day_is_valid_for_month won't know the day to check ($_ is the new candidate value)
autarch With Perl you can be explicit without being painfully tedious, and I'm thinking with Perl6 you can really raise the bar
iblech: ok
Another q: Will this work and is it stylistically "good": 18:52
my $date = Date.new( :today );
Aankhen`` Back. 18:53
autarch >> That is the same as: my $date = Date.new(today => undef); 18:54
Is that what you want?
autarch well, I'd like a way to pass in a string but make it look like something that's not an arbitrary string
maybe I should just export some constants or something
Aankhen`` I'm sorry, I'm not really following you.
autarch Basically, i want to overload the constructor so I can do a variety of things like "Date.new(:epoch => time)" or "Date.new('today')" and so on 18:55
Aankhen`` Hmm.
autarch it'd be nice to limit the strings that can be passed in to a set of sane ones, maybe
or maybe it should just take any string and try to parse it
Aankhen`` You can do: Date.new(epoch => time())
Ohh.
You want to be able to pass arguments in different styles? 18:56
offby1 Is there something built-in to perl 6 that acts a bit like Data::Dumper->Dump -- namely that it returns a string that unambiguously describes a complex value (like a hash)?
autarch This is as opposed to doing Date.today(), which is basically what the P5 DateTime does
Aankhen`` Have you heard MMD?
castaway yes, .perl, offby1
Aankhen`` offby1 >> Have you tried .perl?
autarch Aankhen``: yeah, this is all about MMD
egg no
offby1 castaway, Aankhen``: never heard of it. I'll try it. Thanks!
Aankhen`` autarch >> multi submethod BUILD ($.epoch, $.day, $.blah, $.foo) { ... }; multi submethod BUILD ($single_value_to_parse) { ... } 18:57
autarch Aankhen``: yeah, that's pretty much what I have
iblech autarch: submethod BUILD (Str where /^[today|tomorrow|...]$/ $epoch) {...}?
autarch although it's using named args
Aankhen`` Right.
autarch iblech: yeah, that works
also note that pugs doesn't like multi submethod yet ;)
so I'm just doing multi method new
Aankhen`` Pugs doesn't like a lot of stuff yet. ;-) 18:58
autarch heh
Aankhen`` wonders if he should port HTTP::Headers::Auth now or later.
egg never try hehe
autarch Yeah, I'm trying to write "ideal Perl6", then backport to something that runs on pugs
offby1 well, that was sure easy.
egg perl6 + parrot lol
Aankhen`` Hmm, seems to be fairly straightforward. 18:59
autarch I figure that might also help come up with tests for Pugs
Aankhen`` Pugs probably won't like `is augmented` yet, but I can port it regardless.
egg parrot will beat somebody
Aankhen`` egg >> What are you on about?
egg never mind ^^
Aankhen`` OK. 19:00
?eval class Int is extended { method add_one () { $?SELF + 1 } }; 10.add_one(); 19:03
evalbot6 11
Aankhen`` ?eval class Str is extended { method add_one () { $?SELF ~ "1" } }; "10".add_one();
evalbot6 '101'
Aankhen`` ?eval class Str is extended { method add_one () { $?SELF ~ "1" } }; "10".add_one(); "abcd".uc();
evalbot6 'ABCD'
Aankhen`` ?eval class Str is augmented { method add_one () { $?SELF ~ "1" } }; "10".add_one(); "abcd".uc(); 19:04
evalbot6 'ABCD'
Aankhen`` ?eval class Str is augmented { method uc () { "UC: $?SELF" } }; "abcd".uc
evalbot6 'UC: abcd'
Aankhen`` Cool.
egg umm
iblech I think it works only because the traits are only parsed, and Pugs doesn't close classes currently 19:05
Aankhen`` Ah.
Which one would it be?
'augmented' or 'extended'?
iblech IIRC it's augmented this week, but I'm not 100% sure 19:06
Aankhen`` OK.
Bleh. I don't understand HTTP::Headers::Auth. 19:12
egg umm 19:13
useful? 19:14
Aankhen`` Umm. What?
egg HTTP....
Aankhen`` Not particularly.
I can afford to leave it out for now.
egg me too 19:15
Aankhen`` Yey.
dudley What's the Pooh test? 19:25
autarch how to load a Perl5 module? Is it use perl5:Time::Local ? 19:28
gaal autarch: yes.
autarch hmm, there's no localtime in pugs yet, gah 19:29
iblech But there's eval("localtime", :lang<Perl5>) :)
autarch hah, cool
good enough for now
Aankhen`` pugs> eval("localtime", :lang<Perl5>) 19:30
undef
Bah.
iblech Aankhen``: Do you have perl5 linked in?
Aankhen`` Nope.
iblech Ok, then it can't work :)
autarch hmm, I get No compatible subroutine found: "&eval" 19:31
Aankhen`` Indeed.
.
autarch >> I think your Prelude.pm is not being loaded
autarch hrm
gaal Pipe.open('perl -e "print localtime"').say :-)
autarch I have the last release compiled
gaal autarch: svn up
iblech autarch: What's your $?PUGS_VERSION?
autarch yeah
6.2.7
gaal urrr, slurp.say up there.
autarch just use svn head?
gaal sure 19:32
iblech Definitely.
autarch k
gaal it's pretty goon right now.
autarch I just worry about getting a broken state
gaal heh, pretty good. i'm pretty goon!
autarch I'm a pretty goon too
other goons love me
gaal i was using it as an adjective, not a noun, but hey, your version works too i guess. 19:33
autarch the adjective would be goony, of course 19:34
gaal not necessarily!
i'm sure there's a linguistic term / trope name for using a noun as an adjective 19:35
"it's very chic" "very you" etc. 19:36
hmm, "you" isn't a noun, i know
autarch close enough 19:37
but "very chic" is using chic as an adjective, no?
gaal sure
autarch and it wasn't a noun first
At least I don't think so
gaal wasn't it?
what's "french chic"? 19:38
cwest So... if you were building a YAML parser would you make the structure be a Real Parse Tree where nodes could get their .parent() and .children(), etc?
gaal goes off to find a big dic
autarch cwest: as opposed to what?
actually, I'd make it emit events 19:39
then the tree builder can be separate
cwest as opposed to haveing to keep all sorts of current context on a stack for things like "how many spaces are we using for indentation right now?"
this.parent.indent instead of this.current_context_that_we_always_have_to_update.indent 19:40
autarch the former certainly seems cleaner 19:41
cwest yeah 19:42
I ran into a snag while turning the spec into a grammar.
s-indent(n) ::=s-ignored-space x n[66]
s/\[66\]/gg
er, ignore [66]
Static grammar and ' ' x n don't mix. 19:43
gaal well, the OED lists it both as a "substantive" and an adjective; and the first reference (1856) only mentions it, quoting it and calling it a "property". the next one, 1882, is "she had no _chic_", i.e., used as a substantive
autarch Compiling pugs with Perl5 embedded still fails on my debian unstable machine
gaal but this is certainly neither conclusive nor a good example, coming from slang in another language.
19:44 spinclad_ is now known as spinclad
cwest & # celebrating the us victory over both the british - who first invaded this land - and the american indians - who first belonged to it... feeling convicted and conflicted in the process. 19:44
autarch I'm celebrating the wonder freedom the US has brought to the world
thank you, Fearless Leader, long may you reign 19:45
gaal anyway: consider the usage "That's very New York" or "very Perl"
for some reason this always comes with "very"
(i think) 19:46
autarch sure 19:47
or "so Perl"
gaal wow! remember the debate about true / so?
it just occurred that they should have chosen "very"
because etymologically that means "truly"
cwest verily 19:50
gaal forsooth
autarch anyone else seen this compilation bug?
cwest & # gone
autarch specifically, anyone fixed it?
/usr/lib/perl/5.8/CORE/reentr.h:611: error: field `_crypt_struct' has incomplete type
gaal that has to do with perl version mismatches, i think. 19:51
what distro are you running?
autarch hmm
debian unstable
they did just move from 5.8.4 to 5.8.7
gaal and stock p5? 5.8.4_whatever it is now?
autarch wonder if anything lingered
gaal they did!? at last!
autarch aha 19:52
there's /usr/lib/perl/5.8 and /usr/lib/perl/5.8.7
probably that's the problem
both of those have CORE/*.h
ah, 5.8 is a symlink, dammit
gaal yup, header fun like we all love
autarch heh
but there's a /usr/lib/perl/5.8.4 which has no package 19:53
gaal worst case, compile your own perl under ~ ? embedded p5 worksforme on linux now, but i do remember it took me a while to moose it.
oh, and you do have perl-dev and perl-lib and whatever else, right? 19:54
autarch yeah
gaal libperl-dev too yes? :) 19:58
autarch yes
it'd blow up much differently if I didn't have _any_ headers installed
gaal indeed. i'm kicking myself for not remembering how i solved this, because just the otherday someone else asked about this too :( 19:59
maybe it was a -dev package for crypt like the error message really says?
autarch well, I removed the old headers and I'm trying a recompile from scratch
and got the same damn error 20:02
gaal got libgcrypt11-dev ?
libssl-dev ? 20:03
i'm kinda shooting in the dark here :(
autarch not sure
I didn't have libgcrypt11-dev
no love 20:04
gaal crap, i'm grep -r'ing for _crypt_struct now and i can't find it? how did this build? :) 20:05
autarch I'm not finding it under /usr/include either, except in Perl's headers 20:07
err, wait, that was /usr/lib
but also not in /usr/include
how can I make the pugs Makefile show me what commands it is using? 20:09
gaal on feather, i can't find it either but juerd's auto build does embed p5.
what do you mean, what commands? like sh -x ?
autarch yeah 20:10
gaal dunno, prolly some env var. info make?
autarch I'm just wondering if it's not using all the right compiler flags 20:12
Aankhen`` make VERBOSE=1? 20:14
autarch nope 20:15
autarch hates make
btw, I can make unoptimized and it works, which is weirdness 20:16
gaal what works, embperl5?
autarch yeah 20:17
gaal that's very weird indeed.
autarch the only difference is the -O vs -O0 flag to ghc 20:20
gaal yes :(
autarch wonder if ghc has a bug
gaal blaming the compiler is the last resort :) 20:21
autarch heh
so my stopgap is to compile just src/Pugs/Embed/perl5.o with unoptimized, stop the compile, delete any .o files from after that, and run make optimized ;) 20:22
is there a pugs wiki where I could document that? 20:24
gaal pugs.kwiki.org
autarch ah, right in the topic
gaal but also try seeing what CRYPT_R_PROTO is set to?
autarch how can I check that?
gaal gcc -E... something :) let me remember 20:25
beh i *can't* remember. well the hack would be to remove that line from the .h file :) 20:27
autarch heh 20:28
it seems to going ok now
pugs is now complaining with No compatible subroutine found: "&:epoch" 20:34
code is: my Date $date = Date.new( :epoch => time );
seems legit to me
gaal no need for the :
autarch But I like it ;)
gaal actually it shouldn't be there :) 20:35
autarch it makes it clear it's a name
gaal say :epoch(time) then
autarch bleah, that's ugly ;)
gaal :epoch => means ":epoch"
just like p5
autarch yeah, I know 20:37
or I mean I know now
is it ok to check in stuff under ext/ with known-to-be failing tests? 20:41
gaal de facto yes. 20:42
btw do you know about :todo<bug> and :todo<feature>?
hmm, can anyone bring a status update about freepan? are people using it? 20:43
QtPlatypus ?eval rule :w {this is a test}
evalbot6 Error: No compatible subroutine found: "&rule"
QtPlatypus ?eval rule name {this is a test} 20:44
evalbot6 undef
autarch ?eval eval("localtime", :lang<Perl5>)
QtPlatypus ?eval rule name :w {this is a test}
evalbot6 Error: No compatible subroutine found: "&Pugs::Internals::eval_perl5"
wolverian gaal: no, :epoch => is a syntax error in p5
evalbot6 Error: No compatible subroutine found: "&rule"
wolverian gaal: (well, most of the time, anyway.)
autarch gaal: sort of, but my tests are mostly failing because I can't get P5 localtime working ;) 20:45
gaal wolverian: word.
QtPlatypus Damn pugs doesn't implement :w, which makes writing a self hosting grammar very hard.
autarch and I cannot get it to return values in list context
hmm, I can just implement my own based on time() and math, I guess 20:46
gaal autarch: keep in mind p6 time is 2000-based.
autarch yeah 20:47
is that spec'd somewhere?
gaal i remember it's $Larry'd, but don't know if it made it to AES. 20:48
autarch but it's # of seconds since 2000-01-01 UTC, right?
gaal looks in Prim.hs 20:49
yes,
autarch yep, it says UTC there
Khisanth QtPlatypus: does PGE have it implemented yet? 20:50
QtPlatypus I don't know. I'll check.
autarch subroutine aliasing? &now := &today; 20:55
is that right?
gaal or ::= (compile time) 20:57
autarch ok 20:58
compile time is preferable for this
whee, I just implemented localtime in Perl6 (I hope) 21:04
or I guess it's gmtime
gaal cool! Prelude it?
autarch ah, good idea 21:05
let me make sure it works ;)
gaal :)
autarch it almost certainly doesn't
gaal today is Tenthday, 35 May -720
oops!
coral heh
autarch hmm, pugs is not loving sub _date_from_epoch (Int $epoch) returns Int, Int, Int { 21:06
how do I declare the return value there?
gaal grr, not sure you can do better than List
autarch hmm
lameness
gaal where's Juerd? haven't seen him in a while
he knows these things :) 21:07
wolverian returns :(Int, Int, Int) but doubtful if pugs likes that 21:09
besides, shouldn't we be returning objects?
gaal really? i haven't seen that ever
autarch well, in this case I'm trying to write something primitive to turn an epoch into a year, month, and date
wolverian gaal: p6l stuff. almost certainly not final. not in AES, certainly.
gaal actually want as it was vaguely p6lled will be powerfull enough to tell if the caller wanted an object or a list, so you can return either 21:10
autarch AES == ??
American Encryption Standard?
gaal caller, for example, returns (needs to return) either a list like p5, or an object. 21:11
apocalypse/exegesis/synopsis
:pluralized
autarch hmm, it occurs to me that I need localtime, not gmtime, and that implementing that in Pugs via P6 would be really really really hard, if not impossible 21:13
autarch is tempted to dive into Haskell
gaal go for it! the bits between headaches are very enjoyable! 21:14
autarch heh
hmm, is there XS for Haskell that can be used in Pugs? 21:16
it'd be easy to get that info from the C-level gmtime() & localtime()
gaal you mean call haskell from pugs?
autarch no, call C from haskell
or better yet, call C from pugs! 21:17
thus avoiding haskell entirely
gaal look eg at File.open in prelude.pm vs. Pugs::Internals::openFile
oh
autarch but that's a horrible hack
gaal haskell can call c, sure
pugs can't call c directly yet
autarch dang 21:18
that'd be pretty nasty anyway, to be calling XS (or whatever) from the Prelude ;)
gaal look at Pugs.Compat for a demop
not really
the prelude has two aspects:
there are pure perl parts, that ideally should be salvageable by any other perl6 implementation 21:19
and there are perl facades to services provided by the internals
you can't implement caller in pure perl, for example
but you do want to package the results in a perl object 21:20
Aankh|Clone G'night.
gaal and it's much nicer to do the packaging in perl than in haskell
autarch right
I saw that
the real trick here though is to get at libc
so I can call ctime, localtime, and gmtime
clkao hello autarch! 21:21
gaal grep for "foreign import stdcall" in Compat
autarch clkao: I'd type ni3 hao3 in Chinese but I don't have xcin running
gaal: will do 21:22
gaal you don't have to actually write this in Compat 21:23
hmm wait, i bet what you want exists in haskell anyway?
autarch gaal: probably 21:24
clkao autarch: i use scim lately :)
gaal haskell.org/ghc/docs/latest/html/li....Time.html
clkao and openvanilla on osx
autarch clkao: heh, didn't you write xcin originally? 21:25
clkao sort of.. but not completely 21:26
autarch I think I have scim installed but I haven't needed to figure out how to use it yet 21:27
gaal autarch: what do you need now? i'll try to give you a convenient interface
autarch I need the year, month, & day from localtime() 21:28
gaal you need localtime(arg) now too, right? 21:42
or is localtime(now) ok for now?
autarch gaal: no, I need localtime(arg)
otherwise all I can do is make today ;) 21:43
gaal ok :)
autarch does P5-ish stuff like this work in P6: my ( $y, $m, $d ) = (localtime)[5,4,3] 21:52
are the parens necessary around localtime?
gaal dunno.
wolverian never understood why they are in perl5 21:55
autarch cause it doesn't understand the context well enough, I think 21:57
in P5 it's probably going through 2 steps: 1) stick the return values from localtime into the parens; 2) get the indexed values
wolverian but ()s are only precedence 21:58
and the precedence is the same as without them
oh 21:59
duh
localtime[5,4,3] is localtme([5,4,3])
:)
autarch heh
wolverian s,tme,time,
p6 is more whitespace-dependent than p5, but I'm not sure about this issue.
autarch pugs won't pase "Int | Str" with space in there 22:17
mugwump I think the rule of thumb there is, if it looks different - it is different 22:18
autarch but they don't look different to me 22:19
mugwump then it's probably just a parsing bug
autarch for ( 1..12 ) -> my $m
mugwump :)
autarch isn't that valid P6?
mugwump drop the my
autarch is it implied? 22:20
mugwump it's shorthand for:
for (1..12), sub($m) { ... }
wolverian autarch: -> is another way to construct a sub.
you can use it in my &sub = -> $x { ... }
mugwump it might seem like an arbitrary change just to make the code look pretty, but let me assure you it's actually an arbitrary change to make things look pretty 22:21
wolverian haha.
mugwump++
autarch ah, right, now I remember reading this stuff 22:22
it's a big leap from reading it to writing it
does "multi method new" work in Pugs? It looks like it doesn't 22:28
hmm, but it seems like "multi submethod BUILD" does, so that's better 22:30
if ( $day ~~ m:perl5:i/^last$/ ) { 22:33
gives me: Can't modify constant item: VStr "last"
weirdness
wolverian does pugs still need the parens in the if ? 22:34
gaal certainly not. 22:35
they don't hurt though :) 22:36
wolverian they hurt readability 22:40
osfameron wolverian ?
wolverian osfameron: perl6 doesn't require the parens in 'if (1) { ... }'. 'if 1 { ... }' works. the () only hurt readabilit.y 22:42
s/.y/y./
osfameron maybe I'm derabged, I quite like if () 22:43
s/b/n/
gaal you're used to it :)
it's quite nice not to have it
wolverian if foo { bar } else { baz } is especially nicer tow rite 22:44
s/tow rite/to write/ # argh
(I have a small burn on my finger and it hurts to type, sorry)
osfameron yeah, I guess. For longer expressions it's nice to have the visual pill
gaal larry has a real nice explanation about how c-ish 22:45
if (expr)
statement;
got it wrong 22:46
osfameron yeah, definitely
gaal or is it in the AES?
heh, c is evil, #872: this is valid c:
if (expr);
statement;
note the *first* semicolon 22:47
you can stare at this for HOURS and not understand how statement runs when expr is clearly false
autarch anyone have any thoughts on the error above? 22:48
gaal ah
rx:perl5<i>/asdadsf/ 22:49
note "rx", and <i>
autarch same error
Can't modify constant item: VStr "last"
That's the value of the variable being matched against 22:50
gaal what's in your block? 22:51
autarch aha
gaal the error could be there: pugs isn't very exact with coordinates still
autarch I was looking at the wrong line
i'm dumb
gaal no, pugs is misleading that way
autarch I cannot write to the incoming variables?
gaal not by default
autarch can I do "is copy"?
gaal you need 'is copy'
yes
alternatively is rw 22:52
depending of course on whay you need.
autarch no, I don't want to overwrite the caller's var
gaal is copy then.
autarch hmm, is copy isn't fixing it
Int|Str +$day = 1 is copy
gaal perlbot nopaste
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
autarch nopaste for one-liners?
wolverian autarch: Int|Str is very probably wrong, as they can be trivially coerced into each other.
autarch: when you say 'Int $foo' you're saying you want the integer view of $foo, not that it must _be_ Int when given in 22:53
autarch well, I _really_ want Int|Str where { <i>/^last$/ }
wolverian I don't see how an Int could possibly have 'last' in it
autarch but a Str could 22:54
wolverian why do you have Int there then?
autarch basically I want to allow 1..31 or "last"
gaal meh, i just ran out of wakies. sorry, autarch, localtime will have to wait for tomorrow :)
autarch gaal: np
wolverian autarch: oh, you mean the where only applies to Str?
autarch right
gaal waves. zzZZZ &
wolverian okay. not sure if that's the right precedence. :)
autarch nor am I
wolverian (it tricked me!)
svnbot6 r5211, autarch++ | hey, tests that pass (handling day => 'last') 23:02
r5212, autarch++ | data needed for tests
r5213, autarch++ | these should pass once localtime() is implemented
r5214, autarch++ | BUILD methods that work for Date.pm
r5215, autarch++ | do last day of month tests for a leap year as well
putter QtPlatypus: :w just means to insert a <?ws> everywhere the pattern has two non-abutting non-whitespace tokens. You can use \s+ instead of <?ws> if your copy of parrot doesnt have <ws> yet. So it really shouldnt be an obstacle... 23:06
autarch does Pugs do stringification yet? 23:08
svnbot6 r5216, autarch++ | add quarter() method and tests for it
autarch I mean object overloading as string 23:09
ericjh256 whats does a quarter method do? 23:13
last i checked ( two weeks ago) i beleiver there were some specification issues with string overloading that was still being worked out.
autarch $date.quarter 23:16
the checkin message isn't clear without knowing what files it was
ericjh256 that is true.
autarch I'm only working on a P6 implementation of datetime stuff 23:17
putter &
ericjh256 gotcha. cool. 23:18
svnbot6 r5217, autarch++ | tests for Date.ymd(), Date.mdy(), and Date.dmy() 23:33
r5218, autarch++ | add Date.ymd(), .mdy(), & .dmy() methods
autarch hopefully that message is a bit clearer 23:35
svnbot6 r5219, autarch++ | tests for Date.day_of_year() 23:43
r5220, autarch++ | test Date.day_of_quarter()
r5221, autarch++ | add Date.quarter(), Date.day_of_year(), & Date.day_of_quarter()
coral wow 23:45
autarch well, that stuff's really trivial 23:48
mugwump autarch, you do know that time() returns time from the new epoch, don't you? 23:54
?eval time()
evalbot6 173836460.38778
mugwump ?eval time()/86400 / 365
evalbot6 5.5123184046672691527143581938102486047692
wolverian ?eval ~time
evalbot6 '173836476.907951'
wolverian buh.
autarch mugwump: yeah 23:57
mugwump also, I had to use this to do the function aliasing in Set.pm; 23:59
our &Date::now ::= &Date::today