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 |