pugscode.org <Overview Journal Logs> | r1773/winxp: 587/4256, smoke/win2k (occasional): xrl.us/fqum (81/4418, r2232), Mac OS X (160/4483, r2216), Linux (60/4482, 2267) | pugs.kwiki.org
Set by obra on 23 April 2005.
nothingmuch anyone got windows? 00:49
pugscode.org <Overview Journal Logs> | smoke/win2k (occasional): xrl.us/fqum (81/4418, r2232), Mac OS X (160/4483, r2216), Linux (60/4482, 2267) | pugs.kwiki.org 00:50
Darren_Duncan yo, anyone here? 01:41
obra yes 01:45
Steve_p yes
Darren_Duncan great, I have a question 01:49
now that Pugs has matured further and has basic object support, I plan to start revisiting my ported modules ...
I plan to start off by stripping down (commenting out code) Locale::KeyedText to a simpler but functional form that would compile and run right now 01:50
mainly it would be the input checking and subtype code that would be removed, as I think those are the main not implemented parts 01:51
I would put them back in as support exists, back up to full form when it all would execute 01:52
meanwhile, everything I commit from now on would actually execute
and so that should help with integration tests
now the question ...
can I put these executing modules in Pugs' /ext once they execute, or is that still bad for some reason? 01:53
if the answer's "yes", I plan to do so for LKT this week 01:54
in time for 6.2.2 probably 01:55
if no one says anything I will assume that populating /ext is okay 01:56
stevan Darren_Duncan: the current "rules" for ext/ is that it works, additionally I think it should also have enough tests to prove that fact as well 01:58
however, we don't actually have basic object support in perl6 though AFIAK 01:59
Darren_Duncan what do those t/oo/ tests do then?
stevan I think when autrijus says we have object support he means that the base types are now in Haskell OO
t/oo/ is all todo tests currently
Darren_Duncan oh right, I missed that ':todo(1)' before ... 02:01
stevan :)
Darren_Duncan I'll wait some more then,...
in any event, the bare basics I need for LKT are ordinary classes and ordinary methods ...
the fancy multis or inners or roles or subtypes aren't needed for basics 02:02
stevan multi subs are actually working, although with some wrinkles
Darren_Duncan so then, presumably multi methods will work at the same time as methods? 02:03
quick different question ...
stevan I am hoping, but I really cannot say since I am still on the perl6/testing side of things
Darren_Duncan I plan for my next Perl 5 release of SQL::Routine, in progress, to involve reblessing objects into a different class after they were already blessed, possibly more than once ... 02:05
can I assume that Perl 6 can do this too?
note that both classes have the same attributes
only the methods are different
actually, a few attrs are different
but the different ones correspond to each othe 02:06
oh well, that's a concern for later
stevan Darren_Duncan: personally I avoid that type of things in Perl 5 unless absolutely nessecary because I view it as a dark crevice in Perl 5's OO model. Sure its useful, but it can get ugly if not paid the proper respect 02:07
The Stratedgy pattern is maybe what you are looking for.
Darren_Duncan well, here's my reason for doing it ...
stevan as for if you can do it in perl 6, I dont know, but I would actually hope not :)
Darren_Duncan and not to say I can't change the strategy to make it unnecessary 02:08
for background, a SQL::Routine model consists of 2 main classes, the Container and the Node ...
these correspond to an XML Document and Node respectively
analagous I mean
in an effort to be helpful, although perhaps its a mis-feature, I allow Nodes to exist outside of Containers 02:09
in fact, it is normal to create a Node outside of a container, then put it in one separately
stevan sorry, not the strategy pattern, the state pattern 02:10
www.dofactory.com/Patterns/PatternState.aspx
Darren_Duncan currently, one class implements the Node, and certain rules concerning it are different depending on whether it is in or out
I thought of splitting these into 2 classes, which have a common base class
one reason is to reduce tests for whether a method is allowed to be executed or not 02:11
but the main reason is this ...
since version 0.59, when SRT models can be auto-destroyed like normal perl variables 02:12
there is a possible situation where a program can hold a reference to a node that was in a destroyed container, but the node isn't destroyed when the container is, due to the external ref ...
the class split was a possible way to make it easier to detect if this happened when the node is attempted to be used again 02:13
since some of its internals are different, the current code would do the wrong thing if given it
now mind you, external code shouldn't use such nodes unless they explicitly take them from the container before it is destroyed, in which case they are internally fine for reuse 02:14
I'll look at your patternstate url now
note that the possible double life of a node may have been a mis-feature 02:15
at the time I thought it would be useful, such as helping with piecemeal construction, or moving from one container for another
I suppose I could just simplify the module to make nodes only exist in containers, and then see if there's anything useful we can't do anymore as a consequence, later on 02:16
thanks for your feedback
stevan Darren_Duncan: ouch! seems like a lot of manual memory management (if I am understanding correctly) 02:18
Darren_Duncan: BTW - are you planning on going to YAPC::NA this year? 02:19
Darren_Duncan fyi, the first versions of SQL::Routine didn't have a Container at all
The Container was added as an exoskeleton to make certain kinds of tasks easier
is is just a tree of Nodes at heart 02:20
stevan autrijus: I was experimenting with a new parsefail testing technique
Darren_Duncan I have no current plans to go to any conference ... can't afford to
stevan Darren_Duncan: circular refs can be a pain
I have similar problems with Tree::Simple (although I have a weakened ref version in the works) 02:21
Darren_Duncan stevan, that is, I thought of going to OSCON, but haven't bought a ticket yet and won't unless I get some paid work first
stevan autrijus: basically it is this eval_ok('# $code.which(%will, @fail)');
autrijus: it seems to work too :)
Darren_Duncan as for YAPC::NA, I hadn't thought about going, as it seemed too short notice, but I do plan to attend other YAPC in the future (my first ones) 02:22
when is it again?
stevan Darren_Duncan: June 27-29
Darren_Duncan while this conference is cheap, I think the flights would not be
stevan in Toronto
Darren_Duncan its in my own country at least
stevan Cross-Canada drive :)
Darren_Duncan I'm in victoria bc
I can't drive
re circular refs 02:23
they are used because I want an easy way to access related Nodes when you hold an arbitrary one
the main circular refs are child+parent
stevan child <-> parent is always the one :) 02:24
Darren_Duncan an additional circular ref is container to node and vice versa
a Container holds a hash of all its Nodes, keyed by Node id (an integer)
it also holds the virtual root of the tree
called a 'pseudo-Node'
since you can't actually get a handle on it 02:25
just now I used your suggestion and made one part of the loop a weak ref ... and you are credited for it
in 0.59
stevan :)
Darren_Duncan: make sure to check your destruction behavior 02:26
Test::Memory::Cycle is good for that
Darren_Duncan destruction starts at the root and carries on childwards
the leaves are the last to be destroyed 02:27
stevan and if you want to test the weakened refs too, I have a patched version of that and Devel::Cycle which can inspecct weak refs too
Darren_Duncan: so you never destroy subtrees or individual nodes?
Darren_Duncan I tested that it worked by running a thousand iterations of my test suite in a single process and checking that the RAM usage stayed constant
a user can manually destroy subtrees or individuals 02:28
jabbot pugs - 2315 - updating the t/README file
Darren_Duncan I just described what happens if the container itself is destroyed
I also made sure the weakrefs were making a difference; by commenting out any one of them, RAM kept going up showing a leak 02:29
the iterations made perl use about 200M of RAM before quitting when the leak was in full force; it stayed at 20M when no leaks 02:30
stevan nice
Darren_Duncan that was 500 iterations of the test suite 02:31
stevan take a look at Test::Memory::Cycle though, it is useful if for nothing more than regression tests
Darren_Duncan which also took a minute to run
stevan memory_cycle_ok($structure)
thats about all
Darren_Duncan will make a note of that
stevan and since it is more a developer test, you can just check to see if the user has the module and skip the test otherwise 02:32
Darren_Duncan fyi, I think that part of my problem here is that I'm a packrat ... I know that I put forth considerable effort to provide a feature in the past, so I hate to throw it away, hence it hangs around
stevan backwards compatibility is a good thing
Darren_Duncan by forcing nodes into containers 24/7, that's such a throw-away
stevan, true, though in this case the module's so knew, and declared alpha to boot, that I don't think it even has a user base yet 02:33
that said, it won't be much work to adjust use code to stay compatible with such a change
stevan well, feel free to email me if you want to see some of my Tree::Simple memory cycle tests since they are not out yet
Darren_Duncan all my examples put the node in a container as early as possible, so most code operates while it's already in there 02:34
stevan but I am off to watch a movie :)
Darren_Duncan stevan, okay
as for me, I'm going to back out of my current 0.60 work and make a different 0.60 that is the same as 0.59 but with the stripping, and that has simpler code 02:35
we always still have the backups of earlier releases on backpan should we want to put the functionality back in again
see you later 02:36
jabbot pugs - 2316 - 03:18
pugs - 2317 - Update debian/changelog to 6.2.1
Darren_Duncan I am now testing rev 2317 on my Mac OS X system ... the header's about 100 revs behind for it 04:18
Current Mac OS X 10.3.9, system perl 5.8.1rc3, ghc 6.4: Failed 5/222 test scripts, 97.75% okay. 5/4514 subtests failed, 99.89% okay. 05:10
I'm not sure how to edit the topic with Colloquy 05:11
this was for 2317
Khisanth /topic? 05:30
Darren_Duncan I mean the #perl6 topic, that appears at the top of the IRC window 05:58
it lists the current test results by platform; the Mac OS X one was 100 commits out of date
mj $line =~ s{,\s*\:todo\(1\)}{}g; $line =~ s{force_todo[^;]+;}{}g; 06:22
WinXP, r2311 - 35 subtests skipped. Failed 92/222 test scripts, 58.56% okay. 889/4512 subtests failed, 80.30% okay.
autrijus 889/4512? 06:24
is that an improvement?
inplace.t is wrong -- you need adverbial block 06:26
@x .= map {...} # bad
@x .= map:{...} # good
(larry ruling) 06:27
mj r1600 - 1308/4135 subtests failed, 68.37% okay.
r1700 - 1166/4222 subtests failed, 72.38% okay.
r1800 - 1252/4214 subtests failed, 70.29% okay.
r1900 - 893/4240 subtests failed, 78.94% okay.
r2069 - 1090/4408 subtests failed, 75.27% okay.
r2115 - 1000/4459 subtests failed, 77.57% okay.
r2311 - 889/4512 subtests failed, 80.30% okay.
autrijus a definite improvement then :)
jabbot pugs - 2318 - * change inplace.t to use correct adverb 06:28
Khisanth .= ? 06:33
autrijus: where is the method name?
autrijus map 06:38
@x .= map:{}
same as
@x = @x.map:{}
lunch & 06:41
nothingmuch good morning 06:45
06:47 chady_ is now known as chady
Juerd 23:57 < Juerd> autrijus: I can't go into details because I have no better 06:50
suggestion, but I think disambiguation based on lack of comma sucks.
23:58 < Juerd> autrijus: And I'm starting to wonder why a { ... } can't just be
a closure until used in hash context, at which point heuristics come
into action
wilx Heuristics?
Juerd 23:59 < Juerd> autrijus: (more than one statement? runtime error) 06:51
I know the answer by now, though 06:52
autrijus oh well.
Juerd Because a closure captures variables, while in a list they are evaluated immediately.
autrijus map { $_ => $_; } @foo; 06:53
you like that as a disambiguation?
Juerd Yes and no
Yes because it's unspecial, which is good.
No because I always like to write implicit returns without semicolon :)
sub foo { return 5; }, but sub foo { 5 }
But I guess I'll just have to change that habit 06:54
autrijus sub foo { 5 } # is fine
even {5} is fine
just not {5=>6}
Juerd Right.
autrijus larry likes
Juerd It was an example of how I leave out semicolons.
autrijus map { list $_ => $_ } @foo 06:55
Juerd That's stupid imo.
That gives you the same thing as this, but in a weird way:
map sub { ... }, @foo
map hash { ... }, @foo
autrijus my %x = map { hash $_, $_ } 1,2,3 06:56
yeah.
ok, I think I'll retract my tentative new feature
Juerd There's still no way to disambiguate it from the outside.
autrijus and implement semicolon disambiguation.
it may prove to be sanest after all
Juerd That is: the "hash" keyword is a normal keyword
as is "list"
So they can't just be used as disambiguators, as that introduces special syntax, and we all know where that leads. 06:57
autrijus uh no actually
Juerd That'll mean that you can't use these keywords in a block's first statement without altering the block's semantics
autrijus they are there to defeat => as toplevel
so collapsing rule no longer apply
they are not special
any other function will do
Juerd Oh, only top level => makes {} a hash?
autrijus map { id($_ => $_) } 1,2,3
yeah
a toplevel =>, or a toplevel , with => as first arg 06:58
Juerd Bleh. I thought every single non-semicolon statement 'closure' did
autrijus bleh. you thought incorrectly
Juerd But I guess this makes more sense, as otherwise you get into ambiguous cases all the time instead of just most of the time.
:P
And now it's time for another great fun event 06:59
Bringing my car for servicing
(These things work better if they can idle.)
nothingmuch morning 07:25
07:26 castaway_ is now known as castaway
castaway mornin nm 07:26
nothingmuch holidays make it very hard to get to work =(
castaway which holiday? 07:28
nothingmuch passover
sister is home
so it makes commuting harder 07:29
she needs to be kept entertained
Khisanth have her write p6 tests! :)
nothingmuch can't type in english yet
castaway I fail to see the logic.. which of those makes commuting harder? :) 07:30
nothingmuch dad needs the car for the day to go buy her some rollerblades that she asked for
so i can'
t use it 07:31
hence I'm bound to their schedule
castaway ahh
telecommute? :) 07:32
nothingmuch no, we just live in the suburbs 07:38
i wouldn't consider it tele
in theory public transportation could be good enough,
that is, if it didn't suck as much as it does
castaway eh? 07:39
telecommute means "work from home"
nothingmuch oh, i thought it means 'commute' with 'tele' thrown in to illustrate that it's far
eh, naah
not enough quiet
more distractions
plus my plants will die if i don't water them 07:40
castaway If you do it for longer, yes 07:42
nothingmuch it's already been a 3 day weekend
castaway how far is it? 07:44
nothingmuch work?
12-5 minute drive
depending on whose driving
20 if there's a bit of congestion in the morning
castaway hm, have a bike? 07:47
nothingmuch buying one soon
exactly for this reason
we even have a shower at work
castaway :) 07:48
we have one in the basement somewheres too
nothingmuch the only thing stopping me is money atm ;-)
how far is your work?
castaway yeah, always this "money" thing
nothingmuch actually it's not like i have financial problems
castaway from home? good 50 minutes with the S-Bahn 07:49
nothingmuch but damnit, that bass is expensive
S-Bahn is ...?
i know Bahn is road
castaway no Train
nothingmuch or at least I think it is
ah
so what is autobahn?
or did i just make that up?
castaway Its the city train.. (Munich has underground trains: U-Bahn, overground city trains: S-Bahn, Trams and busses..)
Autobahn is motorway, yes.. but "Die Bahn" is trains, well actually the word "bahn" just means something like lane 07:50
nothingmuch ah
castaway (channel, course, pathway, track.. says Leo) 07:51
nothingmuch i should really release this code for wrangling gcov if it ever works
=)
i can't believe that no one ever sufferred before me
or maybe I should just patch gcov 07:52
castaway :)
nothingmuch it's so insane
you have to move all the files around for it
castaway maybe whomever uses it doesnt think so, or they all do that automatically and dont think abuot it.. 07:57
nothingmuch maybe 07:58
jabbot pugs - 2319 - * Withdraw the tentative change of using 08:48
pugs - 2320 - * repair single stmt in shell 09:08
pugs - 2321 - * please keep the newline. :)
pugs - 2322 - * lone block does not count as "simple e 09:18
09:30 Aankh|Clone is now known as Aankhen``
nothingmuch hola Aankhen`` 10:23
i have a problem with the floating box
and <h1>'s beside it being centered in the remaining space
and not the entire page width
only in IE though
castaway IE-- 10:24
nothingmuch so -- 10:25
i hope IE7 is all it's supposed to be
kungfuftr moo? 10:26
nothingmuch moo! 10:27
castaway woof!
kungfuftr nothingmuch: pong
nothingmuch reverb
s
(oioioioioioioionnnnnnnnnnnng)
hola theorbtwo 10:28
kungfuftr nothingmuch: 12:17 < nothingmuch> kungfuftr: ping
=0)
nothingmuch oh, long ago 10:29
castaway depends on your timezone ,)
thats 10 mins ago in mine 10:30
kungfuftr ^_^
nothingmuch: my other half has forced me to take plenty of time out from "perl" things to help with wedding arrangements... so no interweb for me this weekend 10:31
castaway eep :)
nothingmuch your own?
kungfuftr yup 10:38
nothingmuch you make it sounds like you don't want to ;-)
have fun anyway
castaway was about to say that :) 10:39
bro!
nothingmuch hola broquaint
broquaint Hey folks :)
Top o' the morning to ya. 10:40
castaway right back atcha
kungfuftr nothingmuch: wedding will be good, but i hate organising stuff! 10:42
nothingmuch organizing does suck 10:43
that's why my cinema thingy turned out crapp
nothingmuch had his producers switched 3 times
and also since production is not something you get a grade for, no one cared 10:44
kungfuftr nothingmuch: plus... i'm living in england, and the wedding is back home in northern ireland... so organising stuff is a lot trickier!
nothingmuch ooh
kungfuftr many people going to be going to YAPC::EU in portugal?
nothingmuch thought he would go 10:45
but instead i'm going to YAPC::NA
kungfuftr but but but... cheap beer! 10:46
theorbtwo Hmm? I thought YAPC::EU was in Dublin this year?
Not going, though.
kungfuftr theorbtwo: nope, braga, portugal
nothingmuch cheap beer indeed
kungfuftr the last one was in belfast
nothingmuch i want to see portugal
sometime i will
theorbtwo Ah, that must be what I was thinking of. 10:47
kungfuftr theorbtwo: do not dishonour the name of my hometown by calling it 'dublin'... ROAR!
castaway has already run out of travel budget
kungfuftr gets work to pay for it
=0)
castaway nice idea
nothingmuch castaway: did you guys find any decent flights?
kungfuftr: i sort of have that now for ::NA ;-) 10:48
castaway flights yes, decent not so much
(to PHL that is.. )
theorbtwo kungfuftr: What should I call it then? 10:49
castaway which puts us on the right landmass at least
nothingmuch PHL <-- que?
castaway Philidelphia
nothingmuch ah
theorbtwo The city of brotherly love, you know?
nothingmuch tries to remember how long a drive that is
castaway I think he meant s/Dublin/Belfast/
10 hours or so
nothingmuch that sounds too much
castaway not really 10:50
(brrrrmmm)
nothingmuch from buffalo it's around 3 hours to tornoto, methinks
theorbtwo I always thought they were two different cities?
nothingmuch and NY to buffallo is another 2-3
and phil -> NY including traffic is 3
and that's a pretty dumb route
theorbtwo They have two different dots on the map. 10:51
castaway thats a very dumb route ,)
phil, Buffalo goes right thru the middle of PA, ideally
(we did that one last year)
theorbtwo Well, no, that's hardly ideal, but it is the best way to do it.
kungfuftr theorbtwo: BELFAST! 10:52
nothingmuch yeah, but NY NY is a bit of a detour
castaway Phil->NY (city) is 3 ??
The *trains* go that way, and take longer
nothingmuch castaway: including traffic yes
kungfuftr plants an explosive whooppee cushion under theorbtwo's chair
nothingmuch used to live in jersey
used to go to either or every once in a while
theorbtwo I'm still confused as to what I'm doing. 10:53
castaway You claimed YAPC::EU was in Dublin, it wasnt, it was in Belfast, so effectively you were labelling Belfast as "Dublin" (I think)
kungfuftr castaway: correct! 10:54
theorbtwo No, I was effectively confused as to what city it was in.
kungfuftr theorbtwo: just winding ye up... =0)
castaway well yes, that too
right
go back to poking dios scripts, love :) 10:55
theorbtwo goes back to hacking on his haskell grapher instead. 10:56
castaway tsktsk
duty before fun! 10:57
castaway ahems and goes back to work-type stuff
pjcj In perl5: $str .= $end appends $end to $str. Any thoughts on how to do something similar to *prepend* a string in perl6? ie $str XXX $start - what would XXX look like? 11:02
gaal $str = $start ~ $str ? 11:03
pjcj yeah, that's the same as perl5 - I'm looking for something nicer ;-) 11:04
gaal change your consumer to accept a list of characters and produce a lazy list? :) 11:05
theorbtwo $str.=prepend($start), if you define a prepend method on Str.
pjcj I thought about that, but I was wondering if it was possible to define some infix operator, maybe with a funky unicode name, for example 11:06
theorbtwo You could do that; it'd be just like ~ but take it's arguments in the oppisite order. 11:07
kungfuftr would merely be syntactic sugar though, not that useful
nothingmuch pjcj: you could implement an infix op very easily
theorbtwo Everything is syntatic sugar for a turing machine. Syntatic sugar is what makes some languages effectively different from others.
castaway
.oO( >~ and <~ ?)
theorbtwo But it's not terribly useful syntatic sugar. 11:08
castaway assuming they dont already exist..
theorbtwo They don't.
castaway $str >~ $end; $str <~ $begining
theorbtwo The two operators $x > ~$y would have to be written with the space if you defined a new operator, but I suspect they don't come up that much.
castaway likes that
kungfuftr $str <~= $beginning; ? 11:09
nothingmuch "prepended" =. $string; 11:10
;-)
=~, sorry
castaway ick 11:11
nothingmuch can't assign string to constant in scalar context =)
castaway that looks like you're changing "prepended"
theorbtwo nm, just define an operator infix:<=~> 11:12
nothingmuch lets write a test that makes sure that doesn't work, ever =)
theorbtwo It's a valid thing to do, but I'm not sure it reads very well.
(Remember, longest matching token -- currently, "prepend" =~ $string would be an (illegal) assignment of the stringification of $string to the constant string "prepend". If you define an operator =~, though, that's longer then the existing operator =, so gets preferred.) 11:14
nothingmuch oh well
maybe "string" ~> $value; 11:15
or perhaps even "string" ~==> $var; 11:16
either way i think it should be lvalue
ick
/rvalue reversed either way 11:17
pjcj ENOUGH! Thanks all :-) 11:19
nothingmuch you could also define an lvalueable reverse:
pjcj hmmm, I wonder whether ENOUGH is a valid error return code somewhere
nothingmuch $var.reverse ~= reverse($string); 11:20
dear god, 11:22
nothingmuch thinks he *finally* nailed gcov
inline function covereage ok
even dead inlines
(different compilation, they don't run, but we can see whether they're executed)
gcov processing moves the whole .bbg/.da/.gcov mess around every source dir
to the relative location of where the .cpp was compiled 11:23
no, sorry
castaway hands nm a hammer. Quick, nail it down
nothingmuch .bbg/.da are moved next to the .cpp
and then gcov is run from the relative dir where the cpp was compiled
but the .gcov file is not yet moved
theorbtwo Sounds like you have done a Great and Wonderful thing, nm. 11:24
nothingmuch all the .gcovs are moved from pwd to pwd
and then after this is finished, the .gcovs are distributed next to their .cpps
the hard part was discovering that these problems exist though
pjcj relative dirs are evil in this context - Devel::Cover has a similar problem when there are relative dirs in @INC
nothingmuch very very evil
ofcourse, since gcov has these bug you can't cover two files with the same base name 11:25
but we only have a few 'version.cpp' type files
you have to remember what you did 30 minutes ago 11:26
nothingmuch is tired
and then try to find it whether it worked or not
while doing other stuff
it was the hardest project i ever did, from a concentration perspective
11:27 chady is now known as chady_
nothingmuch i like dynamic languages much more after this 11:27
no on to compare windows/unix differences
of executability
castaway :) 11:28
nothingmuch s/no/now/; 11:30
i should really release these scripts 11:32
i just don't know how to package them 11:33
castaway looks at the time.. how'd it get so late already? 12:16
castaway hugs Limbic_Region
nothingmuch relative paths are the mother of the root of all evil 12:22
castaway ,) 12:23
nothingmuch oh well,
autrijus sqrt(all(@evil)).isa($relative_path)
nothingmuch no, the root of all evil is premature optimisation 12:24
autrijus sqrt(all(@evil)) =:= $premature_optimization
nothingmuch oh, i see 12:25
autrijus++; # very witty
autrijus =)
nothingmuch what's up? 12:26
broquaint encouraged me to try and get back to hacking subroutine stuff
with .wrap
nothingmuch will try to blitz through his other responsibilities so that he is not too late
Limbic_Region hugs castaway 12:27
nothingmuch begs autrijus for some attention
broquaint Yeah, get cracking, nothingmuch, we haven't got all day ya know.
nothingmuch ;-)
broquaint: want to help me solve some CSS issues? 12:28
broquaint Sure.
castaway iek, CSS
nothingmuch if you can then I can finish early
this is with windows, mostly
i know how to resolve a few bits
castaway was playing with it this weekend
broquaint Good, because Windows is alls I gots.
nothingmuch and the PNG will prolly have a hard coded BG
nothingmuch.woobling.org/kelaa/demo...re.html.he
broquaint CSS++ # almost useful
nothingmuch CSS+=0.01
the problems with IE: 12:29
the background on top should be red
castaway points Limbic at: theorbtwo.perlmonk.org/frontpage.html
(Just a mock up though :)
nothingmuch the <h2>'s are not centered
autrijus so, .wrap
where are the tests for it?
theorbtwo Hello, autrijus.
nothingmuch autrijus: before we start implementing that will happen 12:30
autrijus k :)
nothingmuch don't you trust me? =) 12:31
autrijus of course I do... just checking :)
<- actually still at @ dinner in a nice shanghai restaurant 12:32
shanghai-style, that is
nothingmuch and you are eating off your laptop?
autrijus yup.
nothingmuch wonders whether it helps or hinders the enjoyment of food stuff
autrijus helps, I think 12:33
castaway :)
nothingmuch autrijus.isa("Crazy"); 12:34
nothingmuch needs breaks from the puter every once in a while
castaway I think he's trying the 'always on' concept (shower, restaurant .. )
(someone say my frontpage mockup is pretty :) 12:35
nothingmuch castaway: your frontpage mockup is very pretty
one pet peeve: the bg of the logo is not the same as the big bg
and perhaps the 'My Bookshelf' etc brown boxes need slightly more padding 12:36
castaway thanks, nothingmuch
autrijus castaway: I think navBar a should not be inset
a.current can be inset
castaway ooh, he actually looked :)
autrijus but noncurrent ones should be outset
nothingmuch but aside from that it's very nice
nothingmuch likes simplicity
btw, why does a page like that need login/logout?
autrijus it is pretty. :)
castaway Thanks for the feedback, will keep note of it :) 12:37
nothingmuch: its going to have an Everything engine underneath
nothingmuch aah 12:38
nothingmuch would like to be at a point where setting up a website with a smart engine is trivial for him
castaway bounces around happily
nothingmuch however, i most definately do not want to make the journey to that point
castaway Everything is nowhere near trivial
nothingmuch so why are you going with it?
castaway Because?
nothingmuch i mean, obviously you both know it well enough so that it's useful 12:39
castaway Its meant as a framework to build on, not something to just plonk down and say 'done'
nothingmuch true that
castaway cos I wanted to build
nothingmuch but getting to know a framework is *hard*
well, good luck with it anyway
castaway well, I'm already far enough so I know how to fiddle things into Everything
nothingmuch hope it turns out useful =)
castaway hopes so too
nothingmuch would have used it for the kelaa website if time wasn't a restriction 12:40
but i can't bother learning it now
bother with
castaway wonders if the actual E-install is viewable.. 12:41
(ermm, bit of a mess right now, but if you scroll down to the bottom, you can see how the nodelets look so far: desert-island.dynodns.net:8080/virtbook/ ) 12:42
oh, and I kinda "borrowed" the logo from a quick google search :) 12:44
nothingmuch the nodelets have good padding
castaway ta
nothingmuch for the title
but maybe a bit too much in the links one 12:45
try lowering the margin of the <ul>
castaway (oh, fun, guest user doesnt see any errors at all ,) 12:46
ah, I see.. yup, I havent changed any of the standard nodelets yet..
nothingmuch =)
castaway ta muchly.. 12:47
nothingmuch what is the content going to be?
(aside from books ;-)
nothingmuch wonders what's keeping stevan 12:48
castaway mostly books :) theorbtwo.perlmonk.org/kwiki/index.cgi?Overview 12:49
mostly the idea is that everyone can have their own "bookshelf" which is a list of links to the books they own.. 12:50
we'll build in an amazon/bookstore connection, and some way of (for example), looking for books by the authors you like..
and discussion boards .. etc 12:51
Limbic_Region castaway - as soon as we are in the new house and I have all my books back up on shelves where they belong instead of in boxes, I am going to try hard to work on the virtual bookshelf project
castaway yay, Limbic
no rush, just decided to do some more fiddling with it, after having a creative ride home (notes on Psion :) 12:52
stevan morning all 12:53
castaway hey stevan 12:54
stevan castaway: have you ever seen Delicious Library? its a Mac OS X only app, but it is kind of similiar 12:55
www.delicious-monster.com/
nothingmuch hola stevan 12:56
castaway yes, seen it.. I'm aiming specifically for a community thing
jabbot castaway: I havn't seen it.. , castaway
stevan it can read bar codes (which is not actually that difficult with the right scanner)
nothingmuch brb
stevan castaway: yes community is good, my problem with DL is that it is not community oriented
you cannot share librabries and such
castaway I found *one* such site, when searching, that cost money, and closed down just after I found it ,)
stevan castaway: AFAIK, if you want to do the bar code scanner, a modified Cue Cat will output to STDOUT 12:57
castaway Feel free to make suggestions/notes/whatever on the wiki, if you have an interest
stevan it acts like a keyboard
castaway We've done that bit already :)
stevan castaway: reading now :)
castaway I suspect the wiki kinda assumes you know some of Everything architechture tho.. hopefully thats not too much of a stumbling block 12:58
stevan nothingmuch: ping me when you are back 13:00
castaway wonders if Limbic looked at the pretty picture :) 13:16
nothingmuch chokes on matzot+avocado 13:17
stevan: ping
Limbic_Region castaway - huh? 13:18
castaway Limbic: theorbtwo.perlmonk.org/frontpage.html 13:19
Limbic_Region that's nice 13:20
Limbic_Region wanders off
theorbtwo is getting very confused by monads. 14:45
theorbtwo is deciding to switch channels again. 14:46
jabbot pugs - 2323 - * Added EOLs at EOFs. 14:48
mkirank is this behaviour in pugs correct , I seem to be getting only one element with 9 ... my @g = ('.') x 9; 15:25
autrijus sure 15:26
you want xx
the p5 x has been split into x and xx
mkirank oh ok .. thanks
autrijus np 15:27
kcwu err...maybe you have known this: life.p6 is incorrect now 15:36
i see full of "****************"
autrijus no I don't... recovering 15:56
hrm. can you diagnose it a bit for me? 15:57
I need to run for a bit
jabbot pugs - 2324 - Removed comment which said there was a b 15:58
pugs - 2325 - * rewrite the ugly `return . foo =<< bar 16:08
mkirank I have written my first perl6 program :-) 16:25
www.perlmonks.com/index.pl?node_id=451261
Corion r2323 - datenzoo.de/pugs/win2k.html 16:27
stevan mkirank: I will commit it for you 16:31
jabbot pugs - 2326 - adding in mkiranks Tic-Tac-Toe game 16:38
pugs - 2327 - patch up some broken examples 17:08
Limbic_Region www.perlmonks.org/index.pl?node_id=451261 # tic-tac-toe in p6 17:22
PerlJam I saw that just now. Quite cool. 17:23
nothingmuch Limbic_Region: already in SVN ;-)
machack666 I found the problem with life.p6 17:25
ingy hi nothingmuch
nothingmuch hola ingy
machack666 I don't know if it's a bug in pugs or not
$neighbours++ if @input[$i]; 17:26
if we force scalar context with +@input...
we get the expected behavior 17:27
Limbic_Region nothingmuch - I saw that but I figured it was worth mentioning
theorbtwo That should be boolean item context.
machack666 otherwise, it seems that we are not actually dereferencing the index, just testing for existence of the index in the array
whether or not the value is 0 or 1 17:28
theorbtwo That's a bug.
machack666 I think there may have been the same issue in the printing routine for the trinary switch
i.e., @input[$index] ?? '*' :: ' ' 17:29
but I didn't force scalar context for the priont routine
it seemed to fix itself with the updated generate routine
I wonder if it's an initialization problem for the array
I don't know how the various contexts get set up, so I don't know why fixing the gen routine woudl change the print automatically 17:30
I'll write a test for it ... do we have a subdir for various contexts?
in the meantime I'll check in the version of life.p6 that works 17:32
jabbot pugs - 2328 - examples/life.p6 added explicit scalar c 17:38
machack666 ok, added a test for boolean context for various trues and falses for arrays and hashes. 17:49
right now 4 are failing, which are the unexpected cases, leading to life.p6's failures, as well as any other {...} if @array[$index] or {...} if %hash{key} constructs 17:50
ok bye 17:51
stevan metaperl_: ping 17:56
metaperl_ hi 17:57
stevan hey metaperl_
got a quick question for you
metaperl_ ok
stevan mind if /msg it?
metaperl_ no, go ahead
stevan its OT :)
jabbot pugs - 2329 - Checking for true values in array and ha 17:58
Corion Does anybody have a hint/idea on what causes splice.t to die with "division by zero" if the last test is uncommented? Is "division by zero" a catch-all Haskell error? 18:15
autrijus I have 18:16
in AST.hs and Types/Array 18:17
I was using
idx `mod` len
Corion aieee :
)
autrijus to truncate [1,2,3][-1] to [1,2,3][2]
since -1 `mod` 3 is 2
that is obviously wrong when you say -4
and obviously wrong when the list is zero sized
but that was the night before 6.2.0 and I ran out of time :) 18:18
Corion Hmmm. But the mod x y should be OK/sane in Haskell (and not be like in C), except for the 0 case, of course.
autrijus woot!
I just made pugs 100% faster (again)!
Corion autrijus++ # insane speedups 18:19
autrijus haskell++ # get features working first, optimization becomes trivial later
theorbtwo Wow! How'd you do that/
autrijus theorbtwo: -funbox-strict-fields and sprinkle strictness flags around
theorbtwo Ah. 18:20
autrijus i.e. programming in OCaml mode ;)
theorbtwo Fun and fast boxes!
autrijus that makes sense because the Eval monad is now mostly a strict monad.
(implicit thunking is largely eliminated)
the only remaining lazy one is VList 18:21
and that is going away when we replace it with a Eager and a Lazy
where Lazy is a generator instead of haskell list
as mandated by larry
that also makes Pugs translatable to Perl6 :)
i.e. it no longer depends on lazy evaluation
Khisanth my Program is Lazy; :p 18:22
autrijus :p 18:23
Corion Why does enforcing strictness speed up things? Lazyness only makes you pay later ... Or is the layness-tax / memory overhead that high?
autrijus Corion: it is true that lazyness is at most a linear slowdown
machack666 foundry down?
autrijus with a good compiler
Corion Err - am I confusing lazyness/eagerness ? What is "strictness" in this context?
autrijus machack666: worksforme 18:24
theorbtwo strict == not lazy.
autrijus Corion: a strict data field is always eagerly evaluated.
Corion theorbtwo: Ah, so strict == eager
autrijus use strict;
Corion autrijus: :)
autrijus in the memory, !Int is just a int
theorbtwo But you can't unbox something that's lazy, and unboxing is lots faster.
gaal 100% faster is... impressive :) 18:25
autrijus but Int must be Int
Corion "unbox" ?
autrijus Corion: unbox, as in using a native C type.
Corion aaah
autrijus that is very fast.
because all accessors can be inlined
and you no longer need to delegate to unboxing routines
gaal making smoke 2329
autrijus gaal: this is the second time it happened after 6.2.1 :) 18:26
Corion r2329 - datenzoo.de/pugs/win2k.html - 329s
theorbtwo OTOH, it can't hold funky things like _/_, promises of lazy computation, etc... but we don't much care anyway.
Corion Is your speedup in already?
autrijus no
gaal doesn't that mean it solves the haltin problem before it was ever posited?
machack666 can't seem to connect; autrijus: I 18:27
'm sending you a patch
autrijus k.
machack666: or alternatively make it somewhere I can download?
committing 18:28
done
stevan if you listen closely you can hear the sound of a thousand SVN updates happening at once 18:29
autrijus :D
gaal smoke 2330 in progress :)
Corion Hah. Found an unguarded use of mod, or rather, two - do we have exceptions? Not yet I guess ...
autrijus Corion: we do... retError is it
Corion autrijus: Aaah. Then I'll look at making "%" Perl-safe :) 18:30
autrijus only two? I think there's 4 more in AST.hs :)
machack666 autrijus: n/m about the email. just got it to work
autrijus cool
Corion autrijus: I see "%" and op2 "splice" , but I'm only looking at Prim.hs
autrijus Corion: you can also generate VError yourself
Corion: see op2Divide
Corion autrijus: I'll first write/steal a set of tests against the mod operator(s) 18:31
autrijus that should give you a pretty clear idea
Corion ... and then I'll try to fix splice()
autrijus coolio
a faster pugs does make coding happier
obra heh
Corion Huh ? Perl5 doesn't have mod.t ?
Hmmm. In Perl5, $x % 0 and $y = 0; $x % $y # are not tested :) 18:32
autrijus "Illegal modulus zero" is the error msg 18:33
Juerd I want $x / 0 to return Inf and $x % 0 to return $x. JUST TO BREAK THE RULES. 18:34
:)
autrijus 0 / 0 is NaN tho
theorbtwo $x<0, $x/0 should be -Inf, $x>0, $x/0 is +Inf; 0/0 is NaN. 18:35
autrijus ...and haskell got that correct 18:36
but "5 `mod` 0" is still error.
Juerd theorbtwo: And $x % 0?
theorbtwo Should be 0.
Juerd Even with 1.5 % 0?
theorbtwo Why not? 18:37
Juerd I hate by the way that in Perl 5 you can't meaningfully use 4 % 1.5
That should simply be 1.
theorbtwo For x $ y, as y approaches zero, the maximum for any x approaches 0.
Corion Hmmm. How do I force (Haskell/Pugs) evaluation without say() ? I don't want output in the test ... 18:38
Juerd Corion: assign
jabbot pugs - 2330 - * add strictness annotation and unbox th
pugs - 2331 - cleaned up tests and added checking agai
Corion juerd: dies_ok( { $x = 0; 3 % $x }, 'Modulo zero dies and is catchable with variables'); # doesn't die ...
theorbtwo Using eval_haskell, you mean? 18:39
Juerd my $y = ...?
Corion Maybe I'm just using dies_ok wrong ...
autrijus bwahaha.
Corion D'oh - I was just using it wrong, of course ! 18:40
autrijus pugs> my ($x, $y); $x = $y = 3; $y = 4; $x
4
Corion dies_ok( { $x = 0; say 3 % $x; }, 'Modulo zero dies and is catchable with variables'); # is fatal now :)
autrijus: Aiiieeeee! :))
Juerd autrijus: Evil. And wrong. :)
autrijus that's the core of array_values_in_bool_context.t
it has nothing with array values
or bool context
it has everything to do with chained assignment.
please refactor the test :)
autrijus fixes
Juerd autrijus: Why is chained assignment special? 18:41
I thought it'd just be $x = ($y = 3);
autrijus Juerd: right, but $y=3 was specifically returning a lval ref 18:42
which is not rvalued
gaal forum2.org/gaal/pugs/smoke-msys.html # duration 239. neat.
autrijus gaal: I have no frame of reference :)
Juerd autrijus: That's correct.
autrijus: However, the second (lexically first) assignment should use only its value part, which cannot be lvalue on that level 18:43
gaal autrijus: it means "very fast".
:-p
autrijus Juerd: right, but my enterRValue is not doing what it should
gaal: what was it before?
Juerd Assigment has to return an lvalue, because ($y = 3) += 1 should end up in $y being 4 :)
autrijus: I see.
gaal unfortunately, i overwrote my old tests.ymls; but i think it was on the order of 350. 18:44
theorbtwo What's the unit on that?
Seconds?
gaal sec
onds.
autrijus neat.
theorbtwo Nice.
autrijus so yeah, indeed 100% faster.
(since there is harness overhead) 18:45
gaal does not include the build iteself though.
heh
100% speedup means new time = 0 sec :)
ingy hola
gaal hey
autrijus deliberately misinterprets the numbers
gaal lies, damn lies, etc.
autrijus riight.
pugs> ($_ = 3)++; $_ 18:46
4
gaal btw auytrijus, isTerminalDevice lies on msys, so "pugs" w/o params hangs.
s/yy// 18:47
autrijus pugs> my ($x, $y); $x = $y = 4; $y = 3; $x
4
gaal: damn lies
Juerd autrijus: Your = has an identity disorder. It thinks it's := ;)
autrijus Juerd: it's fixed :)
gaal fer real! and echo 'say "hi"' | pugs does work, so it's not that msys closes stdin.
looks like an msys bug :/
autrijus gaal: so... move hIsTerminalDevice stdin to compat 18:48
and try to find some other way?
I wonder why it worked
gaal ....and do what on msys?
Juerd autrijus: Oh, right. 'x' and 'y' look too much alike.
jabbot pugs - 2332 - Added test against fatal zero modulus
pugs - 2333 - * fixed the identity disorder of `=`.
gaal return 'true' if no params? :)))
autrijus gaal: I think so
least surprise etc.
gaal hahaha
vile evil. 18:49
autrijus cackles an evil cackle
gaal img93.echo.cx/img93/9492/evil2zq.jpg
autrijus hm, more than 329s passed
I wonder if it's faster for Corion or not 18:50
gaal your machine is so slow
Corion autrijus: I'm currently not smoking
autrijus oh ok :)
that's fine
Juerd autrijus: Pugs has no lazy lists yet?
autrijus gaal already gave us the good numbers
gaal don't mind me, i'm a little tipsy :)
Corion I'm writing tests to banish fatal `mod` :)
Limbic_Region Corion - trying to kick the habit?
Corion Limbic_Region: Busy elsewhere
autrijus Juerd: not yet. 18:51
Juerd: and utterly not since I strictified the data fields
Juerd autrijus: paren parsing is wrong: say (1|2|3).pick should be say((1|2|3).pick), not (say(1|2|3)).pick
autrijus Juerd: if it looks like a function. 18:52
Juerd autrijus: () rules are the same as [] and {}
autrijus: No whitespace allowed, and if you want whitespace, use dot
autrijus Juerd: you are positive?
Juerd autrijus: The thing with () is that it CAN usefully use the value if there's whitespace - as the first argument
Yes
I'll try to find it in an S
18:52 Aankh|Clone is now known as Aankhen``
gaal autrijus, the isTerminalDevice compat hack won't work, exactly because people want to pipe stdin to pugs. maybe we need an explicit flag to start interactive mode? too bad -i is sorta spoken for. 18:54
Juerd if $term($x) # function call because operator expected 18:55
if $term ($x) # syntax error (two terms in a row)
if $term .($x) # valid function call (term expected after dot)
HOWEVER - this is with a variable $term
If you have a named sub, you already know it's a sub
At parse time
autrijus right.
Juerd And can just use ($x) as the first argument
Making subname (1), 2, 3 a 3-arg subcall
autrijus print (4) + 3;
Juerd 7
autrijus it is terribly surprising.
Juerd But print(4) + 3; # 4 (or 3) 18:56
autrijus: No, the *current* thing is surprising, which is why it was changed :)
autrijus say ("Hello" ~ $x) ~ 8;
ok...
I trust you are positive on this :)
Juerd I am - just can't find the spec for it
Which happens all the gd time. 18:57
Corion Yay. Splice bug is fixed
autrijus Corion: yay!
Corion ... but I'll run "make test" before I commit :)
Juerd The synopses are very incomplete when it comes to explaining why decisions were taken, and not every decision is reflected
Arathorn has been surprised many times by the print (4) + 3 thing in p5 :(
Juerd And apocalypses are way too large to grep 18:58
jabbot pugs - 2334 - * unmark unexpected success
gaal autrijus, i'm tracking where the bug is. do you remember whihc module defines isTerminalDevice?
autrijus System.IO
Corion And I think I also found a bug in the Makefile.PL ... "make clean" doesn't clean up Regex/* , UTF8/* and Unicode/* 18:59
autrijus hIsTerminalDevice
gaal btw: anyone else using firefox 1.03 here? have you been seeing a bug where find-as-you-type doesn't?
Arathorn (especially perl -e 'print (4+2)/3' # yields 6)
gaal thanks, autrijus.
Juerd autrijus: if is proof, by the way
gaal ...doesn't find anything, that is.
Juerd autrijus: As if is just a function, if ($foo) { ... } could not be useful without this rule... :)
Corion ... which is what confuses "make; make clean; make optimized" or the other sequence
autrijus Juerd: I understand.
but I don't believe that if is just a function :)
Juerd Which makes me wonder whether if($foo) { ... } really is an error...!
autrijus exactly. 19:00
if(3){die 2}
I'd hate to see it becoming an error.
Juerd No one sane would write that after the first months though
if 3 {die 2}
die 2 if 3
3 and die 2
autrijus I beg to differ. :)
Juerd die 2
autrijus anyway, if is currently a macro.
Corion Perl6 - redefining sanity 19:01
autrijus I will keep it that way until @larry says otherwise.
Juerd: btw
$obj .method ($arg);
ok or not?
Limbic_Region rx:perl5/([XO])\1\1/ is purely a temporary construct correct - there is no intention to have p6 support inline p5 regexen right?
autrijus also: $obj . method ($arg);
xerox Why do you call him "@larry" ?
autrijus xerox: there are multiple larrys 19:02
Juerd autrijus: No
autrijus Limbic_Region: :perl5 is defined in S05
Limbic_Region notes the irony in xerox needing to be told about multiple copies
crysflame heh :)
Juerd autrijus: Larry declared that parens are required with method calls :(
Corion I thought it was now called :Perl5 ? :)
gaal lol
autrijus Juerd: I mean whitespace.
Corion: :P5 !
Corion Ah ;)
autrijus $obj .method (1)
$obj .method(1) 19:03
Juerd autrijus: And whitespace before ( is invalid as I said before...
autrijus $obj .method .(1)
Juerd autrijus: If you want whitespace, you need .
autrijus hmm it will mean something entirely different, no?
it would mean $obj.method().(1)
print .(3);
are you sure it is valid?
Limbic_Region ok - thought I had read that but then I was confused - is the experimental "code on lhs" constructs going to be supported to?
Corion "make test" sure feels faster now :) 19:04
Juerd autrijus: Good question. I don't know.
Limbic_Region and if yes, is both p5 and p6 valid
autrijus Limbic_Region: what?
code on lhs?
Limbic_Region "(?{ code })" for instance 19:05
lhs = left hand side
not to be confused with /e for rhs
autrijus oh. 19:06
Limbic_Region "(??{ code })" as well (both from perldoc perlre)
autrijus for p6 you can just use {}
for p5 I'm not sure.
Juerd {}, <{}> or <()>, depending on what you mean. 19:07
theorbtwo To a way of thinking rx:perl5/(?{ code })/ would imply that the code should be p5 code... which will probably never be supported.
Limbic_Region that's why I was asking 19:08
theorbtwo I wouldn't be terribly surprised if, at some point, p5 regexes become an alternate syntax of p6 regexes, so they'd work, but have p6 code.
autrijus I have no idea about that.
Limbic_Region I seemed to remember reading p5 regexen would be supported and then I second guessed that because of the experimental code features
gaal autrijus: confirmed isatty bug is in msys :/
Limbic_Region wonders if p5 regexen will actually be translated to p6 rules under the covers 19:09
gaal int main(){printf("isatty = %d\n", isatty(0));} # prints "0"
....and 1 on linux 19:10
(and unstd's isatty is what gets called eventually.) 19:11
autrijus print (4)+4 19:13
now prints 8.
please someone write a test for this.
it's a major major change to my brain :)
gaal pugs5bugs? :)
perl5bugs that is
obra "pugs5" 19:15
gaal "You must be logged in to report a bug" on bug page. wow, everything non wikibile looks so -- now. 19:18
jabbot pugs - 2335 - splice([], 1) now works
pugs - 2336 - * `print (4)+4` now prints 8, because th
gaal so (--), even.
Juerd Hm 19:19
I'm thinking about proposing a radical rule syntax change.
autrijus Juerd:
The context in which a subscript is evaluated is no longer controlled by the
sigil either. The inner context turns out to be whatever the outer context
was, since we now have convenient singleā€character context specifiers to force
either scalar or list context.
does this mean
scalar @foo[func()]
will evaluate func in item context
list @foo[func()]
will evaluate it in slurpy context?
gaal t/builtins/arrays/splice.t 19:20
pugs: divide by zero # on linux
Juerd autrijus: Yes
autrijus @foo[func()] = boo();
what about this?
what context is func() under?
Juerd autrijus: It also means that if you want a slice and then stringify that, you have towrite ~list @foo[func] instead of ~@foo[func], because ~@foo[func] is ~@foo[scalar func], or maybe even ~@foo[~func] (nahh?) 19:21
autrijus: hm. void context! :)
autrijus Juerd: you are kidding!
:)
Juerd autrijus: I don't know :)
autrijus ok. I'll assume list by default.
Juerd But by the rules you layed out, it's void :)
autrijus no, it's subtly different
we are at lhs now
Juerd Yes
autrijus and larry says
@x[1,]
@x[1,] = 3 19:22
Juerd Which is, conceptually, also the result of the entire expression
autrijus @x[1] = 3
Juerd Which is in void context :)
autrijus parses differently
@x[1,] = foo(); # foo is as plural
Juerd autrijus: Hm, then assume scalar by default?
autrijus @x[1] = foo(); # foo is as singular
Juerd @x[func] = foo(); # item
@x[func,] = foo(); # slurp
autrijus why?
oh!
riiight.
Juerd consistency perhaps?
autrijus smart.
Juerd I wouldn't know :)
autrijus ponders raising it on p6l again 19:23
Corion gaal: Are you on the latest version? It should work now, that is, dies_ok ...
Err - not dies_ok, it should Just work ... 19:24
theorbtwo You know, I hate it when I try to set up a visualization of something complex, and all I see is "wow, that looks complicated". 19:25
autrijus theorbtwo: :D
Corion Grr. How do I convert a Ratio to a VInt ? 19:27
gaal forum2.org/gaal/pugs/smoke-linux.html r 2334
Corion, is that the last one?
Corion op2Int does seeom to want a Ratio, when all I got is a VInt. Or so I think. 19:28
gaal: Yep, the last one in splice.t should Work ...
(and does for me) 19:29
gaal trying on win32...
19:29 Arathorn is now known as Aragone
theorbtwo My .hi grapher works, in as much as it produces a dot file that describes the relationship between different modules in pugs. 19:30
gaal notices the versions reported in the version string and the revision yaml entry are different
prolly perl Makefile.PL related thogh.
theorbtwo However, it is not graphable into something that looks useful. 19:31
What are they, gaal, and which agrees with svn info?
gaal revision is always from svn info, to2.
see forum2.org/gaal/pugs/smoke-linux.html 19:32
the "pugs" version info is from pugs -V
which apparently is not updated every r, but rather every Makefile.PL (+Config.hs presumably)
forum2.org/gaal/pugs/smoke-msys.html r2336 msys 19:33
theorbtwo Nope, gaal.
Corion gaal: That was before commit
autrijus I asked p6l after all
Corion my commit of the tests should have been at r2335 I think 19:34
gaal to2, what do you mean "nope"?
autrijus happily Juerd and I didn't clash
theorbtwo src/Pugs/pugs_version.h : .svn/entries util/version_h.pl
$(PERL) util/version_h.pl src/Pugs/pugs_version.h
That's from the Makefile.
Juerd autrijus: I'm posting lots of questions to p6l by the way
gaal then how do you explain the r difference?
theorbtwo Every time .svn/entries changes, src/Pugs/pugs_version.h should be remade.
Juerd autrijus: Inspired by our discussions 19:35
pasteling "Corion" at 217.234.76.42 pasted "Why doesn't this Modulus thing even compile?" (23 lines, 661B) at sial.org/pbot/9637
autrijus Juerd: fyi, I posted about expressions
Juerd autrijus: Reading it as we chat
autrijus in slicing context
Juerd: that describes pugs r2337
theorbtwo Do a svn up -r2335 && make
Juerd I want to write my rule syntax overhaul proposal, but need silence in my mind for that :) 19:36
autrijus sorry :)
theorbtwo Does /usr/bin/perl -Iinc util/version_h.pl src/Pugs/pugs_version.h get rerun, and does Compiling Pugs.Help ( src/Pugs/Help.hs, src/Pugs/Help.o ) appear?
Juerd Currently, all sorts of syntax are flying through my head
autrijus also, life.p6 lives.
Corion smokes r2337
autrijus Corion: cool, that's needed :)
hopefully it will take less than 5+ minutes
Juerd I'll do this later. There must be some day during which nothing interesting happens :)
Corion autrijus: Compiling now takes longer than smoketesting I think :) 19:37
gaal to2, i believe the r discrepancy is sufficient evidence that make lies, or that at least it isnt' beign used properly.
theorbtwo Possibly.
But I don't see any failure mode where running Makefile.PL helps.
Juerd autrijus: It passes my sanity checker. Now we have to wait for Larry's
autrijus good.
Corion ... still compiling r2337 :) 19:39
gaal to2, i need to go off now, feel free to investigate / hack yaml_harness further :)
Limbic_Region isn't there a way to do cached compiles where only files that have changed are recompiled? 19:40
gaal l~r, ghc does that automatically
gaal &
theorbtwo L~R: thus ghc's noise about skipping. 19:41
Limbic_Region wouldn't know as he has never compiled ghc nor Pugs 19:42
Limbic_Region hangs his head in shame
Juerd shakes Limbic_Region's hand
Coding Perl 6 without testing any of it :)
Juerd only recently had to compile pugs to verify that what it *did* was right :) 19:43
autrijus Limbic_Region: you can download ghc binaries...
Juerd Hmmm
Can someone write a bot that evaluates every expression uttered on IRC? 19:44
Corion Juerd: #haskell has it, but I wouldn't want to run it for Perl :) 19:45
Juerd (Hm, no, useless. I'm not going to actually provide a func() for stuff like that :P)
Corion Juerd: But if you write a good irc kernel, go ahead :)
machack666 hey, there were problems with array_values_in_bool_context.t ?
Limbic_Region autrijus - the trouble is that I am not aware of any Win32 versions that don't require the Installer (I do most of my work at work and don't have rights to install there)
autrijus machack666: no, it's fine now
Juerd Limbic_Region: Time to escape to a home connection.
Limbic_Region: Can you run putty?
autrijus machack666: but it all passes (life.p6 too)
so move it out from pugsbugs
machack666 ok ... svn delete and svn add, or is there a move command? 19:46
autrijus Limbic_Region: I thought GHC installer lets you choose path
Corion svn move
autrijus machack666: there is svn move.
machack666 thx
Limbic_Region Juerd - up until this weekend I could but that got shut off too
Juerd autrijus: Installers in Win32 identify themselves as being installers, at which the great "security policies" of Windows become active.
autrijus Limbic_Region: otherwise, I'm sure win32 folks like Corion or others will be happy to zip up C:\ghc and put it somewhere
because it doesn't need registry 19:47
Juerd autrijus: Hack out that part and many things that don't need to write in system directories will magically work... :)
Limbic_Region autrijus - is that all it takes? No installation of .dlls in system32 or the registry
autrijus just unzip back to c:\ghc, add c:\ghc\bin to path
Limbic_Region: nope
Limbic_Region ok
Limbic_Region will ping Corion about it
Corion ghc comes as an ugly/stupid .msi package, and there is no .zip. But I can provide that if necessary. I even have 48k/s upstream nowadays.
autrijus the .msi will of course add registry
but those aren't needed
Limbic_Region would prefer just a plain zip file
machack666 what's a sensible location for array_values_in_bool_context.t? something to do with return values makes sense... 19:48
Corion Somehow, t/hashes/slice.t broke
See datenzoo.de/pugs/win2k.html
autrijus gah
Limbic_Region Corion - ATM, all I can do is http download
Corion Hmmm. And also some other array stuff ...
autrijus I just closed the tab I'm writing my journal in
autrijus sobs
Limbic_Region autrijus - you using FireFox?
Corion Limbic_Region: Should I serve the zip via http then? I'll create the .zip now ...
autrijus Limbic_Region: yeah
Limbic_Region and if so, WTF don't you have the tab extensions?
(undo closetab) 19:49
grrr
autrijus oh!
grr.
didn't know that!
autrijus goes installing tab extensions
Limbic_Region undo close tab plus plus
theorbtwo Will that save the contents of form fields, though?
Limbic_Region autrijus - hang on, there are several - I recommend a specific one
theorbtwo (undo close tabs)++
Corion writing-texts-in-a-real-texteditor ++
Oops. Ghc-6.4.zip has 48MB ... That means it will take at least 1000 seconds to upload ... 19:50
Limbic_Region autrijus - piro.sakura.ne.jp/xul/tabextensions...ex.html.en
Corion Limbic_Region: I'll upload ghc-6.4 now, but it'll take some time until it appears ... 19:51
Limbic_Region Corion - wait
I have a better idea
let me do it at home, burn a CD, and bring it to work 19:52
autrijus - that link is for my personal preference for a tab extension in FF
autrijus Juerd: weird
~%x{1,2} 19:53
turns out to become
~%x{ [1,2] }
which is then
~%x{"1\t2"}
er
~%x{"1 2"}
does this seem remotely sane?
elmex ?? 19:54
what does ~ mean?
autrijus string context
elmex err
...
Aankhen`` G'night.
theorbtwo Nope, it doesn't, autrijus.
elmex perl6 is beyond all limits of my comprehension... haskell is easy... but perl6 is a monster 19:55
Juerd autrijus: Anything can be a hash key. Doesn't have to be a string.
autrijus Juerd: assume it is shaped as string
Corion Yay. Seems like modulus now works/dies sanely too ...
autrijus as is the default.
Juerd: I'm asking the sanity of scalarifying (!,2)
(1,2)
Corion++
Juerd autrijus: And what you mean is written as ~list %x{1,2}, possibly ~*%x{1,2} (whoa) 19:56
autrijus whoa indeed
Juerd p6l it :)
autrijus done
Juerd Hm
My rule syntax change turns out to be limited to just three things 19:57
Or, well, just two actually.
1. Make '' and "" work for literal string matches, instead of the ugly <''> and <""> 19:58
jabbot pugs - 2337 - * we now propagate outer context to inne
pugs - 2338 - Moved array_values_in_bool_context.t out
pugs - 2339 - * fix slice.t to use is()
Juerd 2. Make $foo interpolate as a rule, not literal string. Want literal? use "$foo"
autrijus scw: why did you remove output/fp/fp. 19:59
Juerd (3. Make <$foo> use $foo as a rule's NAME)
autrijus I'm adding it back.
Corion autrijus: Can you work on making ghc faster? I have the feeling that compiling Pugs now takes more time than testing it :)))
autrijus maybe it's time to write more tests! 20:00
Corion autrijus: :)))))
autrijus (or, alternatively, don't do make optimized for smoke anymore)
Corion autrijus: Ah, that could be an interesting idea, again
Juerd But it just changed! :) 20:01
Give it chance to settle
Corion Aieeee - more breakage ... datenzoo.de/pugs/win2k.html 20:08
jabbot pugs - 2340 - * add it back.
autrijus Corion: slice.t is repaired as r2339 20:09
Corion Aaah. Will then rerun ;)
autrijus no need to really :)
Corion arith.t also is broken ...
autrijus I just fixed the test file
grep.t worksforme
I wonder why it failsforyou
Corion weird ...
autrijus arith.t too
clearly your harness is weird
Corion need to check then ... Maybe my modulus fix breaks it
... which is not yet committed for good reason ;) 20:10
autrijus :)
Corion Aaah. Yes. How do I get a VRat into a VInt ?
autrijus % 0 20:11
er
% 1
4 % 1
oh wait, "into"
truncate
truncate rat :: VInt
truncate (rat :: VRat) :: VInt
just saying "truncate x" is fine
Corion Will try that ;) 20:12
Juerd What do you do when it feels like your mind is about to explode because it ponders too much things simultaneously? 20:13
Perl 6 is killing me mentally, and I don't know how to relax.
Corion Yay. Compiles :)
Hmmm. But it returns "undef" for lots of the modulus tests. That's not what I want ;)) 20:14
autrijus Corion: you accidentally nuked my fmap change ;)
that's ok though, I'm recommitting
Corion autrijus: Bah :( Sorry :( 20:15
autrijus that's fine... I wonder why svn up didn't catch that
Juerd Any music you can recommend? 20:16
autrijus pink noise 20:17
Juerd eh
noise?
autrijus pink noise = absolute silence
it cancels out ambient sounds
Juerd Impossible here. Busy street
autrijus try playing pink noise with an earphone :) 20:18
Juerd (Near fire brigade... *hates*)
autrijus works wonders.
will return you to sanity in no time
Juerd Then I hear my own breathing and heartbeat. Drives me NUTS! :)
jabbot pugs - 2341 - * re-apply the fmap change accidentally
autrijus it cancels _that_ too :)
Juerd Hmmm
Do you happen to have an .ogg or .mp3 of that? :)
Corion autrijus: return $ if y' == 0 then err else VRat $ (truncate x') % (truncate y') -- doesn't work, and seems to always return 0. What am I doing wrong here? 20:19
for | VRat x' <- x, VRat y' <- y
autrijus Juerd: pink noise doesn't compress well
Juerd: are you on win32? mac? *nix?
crysflame pink noise is interesting 20:20
Juerd: pink noise generators are freeware for all platforms
Juerd autrijus: mac
autrijus Corion: don't think you want to do that
Corion: you just want x' % y'
iirc.
Juerd: oh. Noise.app
blackholemedia.com/noise/
Juerd neat
Corion autrijus: But for = return $ if y' == 0 then err else VRat $ x' % y' -- GHC says: 20:21
Couldn't match `Integer' against `VRat'
Expected type: VRat
Inferred type: Ratio VRat
autrijus wait.. are you implementing mod? 20:22
Corion autrijus: Yep
autrijus mod in haskell is spelled `mod`
not as %
% is the rational divisor
Corion D'oh ;))))
... so the "undef" results are actually OK ;)
Juerd I think they have huge pink noise generators in data centra 20:24
centres, centers, whatever.
It sounds exactly the same :)
autrijus rofl
I hope it helps
it doesn't help a lot if you are playing it off a speaker
Juerd I have no headphones here yet 20:25
autrijus sadly
Juerd Well - I do have some, but the cord is so short I'd have to put my head in the cupboard that hides my mac :)
And they suck anyway.
I bet this noise would fry them ;)
theorbtwo G'night all. 20:27
autrijus 'nite
Corion Hmm. %() should now work, but I'll wait for the compile/smoke run to finish :) 20:28
autrijus woot
Juerd What is %()?
autrijus I think Corion means %0 20:29
but I'm not sure
Limbic_Region 0% financing?
Qiang autrijus you are still up =)
Corion No, I mean <<%>> , or however `mod` is spelled in Perl6 :)
Qiang 0% down? 20:30
Juerd Corion: Oh, &infix:<%>
Corion Aieeee - App "%" [] [Val (VRef <Scalar::Proxy>),Val (VInt 2)] # is not handled by my code. Can I somehow punt to op2Num after a short parameter check?
Juerd Corion: In perl, functions aren't referred to by adding parens, but by adding & :) 20:31
Corion Juerd: :))
Juerd So we speak of &int, not int()
As int() *calls* the function
wow.
I actually SAID backspace.
theorbtwo A good chr(0x8) to you too.
theorbtwo SAYS the goodnight. 20:32
xerox
xerox said backspace too :-)
autrijus how do you do that?
crysflame 20:33
xerox autrijus, with Emacs, C-j Backspace
Oops, C-q C-h
autrijus journal up. and off to sleep I go... 20:35
autrijus waves &
Juerd Good night 20:36
autrijus Juerd++ # indispensible in-channel language guru 20:38
&
Qiang night. autrijus
hm, it's actually 4:40 in taipai. isn't it.
Juerd Yay - I'm not sure I deserve that title, though. I just think a lot (too much) and weed out illogical and inconsistent things where I can.
Qiang what is in-channel language ? 20:39
stevan Corion: ping 20:40
Corion Awake
Juerd Qiang: in-channel guru of language
stevan Corion: I see (from the journal) you have been doing test refactors 20:41
Corion stevan: Not really - today I dabbled in Haskell
stevan I was going to do some myself tonight, anything you noticed I should work on
Corion (and fixed splice() and will fix &infix:<%>
stevan Corion: well any thoughts on places to attack for tests?
Corion ... I hope. If the smoketest tells me all is well.
stevan: I usually scan through the skip/todo stuff, and remove the skip/todo/eval and see if it still works :) 20:42
stevan good idea :)
I think I might try and expand the t/oo tests too
Qiang Juerd: what language are you refering too? ah. hope it's not a dumb question. 20:43
Corion Hmmm. Can I get a sanity test - does t/data_types/array.t fail for anybody currently? I get 2 failures there, and 4 failures in t/data_types/mixed_multi_dimensional.t ...
... and I want to make sure these failures were there before I commit, so I didn't cause them :) 20:44
Juerd Qiang: Perl 6
Qiang Juerd: now i felt that was a dumb question. =)
Juerd Qiang: Go back in time and unask it. 20:48
PerlJam Juerd isn't the language guru for perl6, that's luqui 20:49
Juerd is just the person who keeps everybody honest ;)
or maybe that's sane? 20:50
Qiang Juerd: maybe perl6 can do that :)
Juerd PerlJam: luqui indeed is the guru. 20:51
What do you mean with honest/sane? 20:52
PerlJam Juerd: you seem to be waging a battle against the eventual insanity of the cabal. 20:55
Corion Everybody needs windmills to tilt against
PerlJam Corion: sure.
Juerd PerlJam: I wish I could parse that. Can you try and factor in my limited understanding of english? :) 20:56
Corion data Cabal | Maybe Insane
PerlJam Juerd: various people say insane things on #perl6 or p6l and you tell them that they are insane. Then we move on to the next thing.
Juerd I think some ideas are insane because they're inconsistent or cause extra work.
PerlJam: Oh, like that. Yes, I say what I think. 20:57
Qiang whew, now we can all understand each other.
PerlJam Juerd: or, wrt to "honest", you tend to make sure that everyone's understanding is the *same* understanding :)
Juerd Well, only opinions. Otherwise I'd be flooding.
PerlJam: I'm not sure how and why I do that - and wasn't aware of it myself :) 20:58
jabbot pugs - 2342 - Fixed &infix:<%> to become trappable
pugs - 2343 - Moved the modulus test from t/pugsbugs t
Juerd afk # hands&arms hurt again
PerlJam Juerd: You do it just by asking questions or making statements regarding your own understanding of things.
Juerd That's because with questions, implementing something is impossible. There must eventually be no question left. 20:59
afk
Qiang questioning is good thing. it's hard to cover all aspects. 21:00
i often get asked and then i keep silence for few seconds and said, i will think about that. 21:01
Juerd: i think you keep the unclear question coming so that whoever is implementing will have to be have answer for it. 21:02
Corion r2343 - datenzoo.de/pugs/win2k.html - 8 failing tests 21:05
pugscode.org <Overview Journal Logs> | smoke/win2k (occasional): xrl.us/fqum (4537ok/8fa/891td/33sk, r2343), Mac OS X (160/4483, r2216), Linux (60/4482, 2267) | pugs.kwiki.org 21:06
Corion pugscode.org <Overview Journal Logs> | smoke/win2k (occasional): xrl.us/fqum (4537/8, r2343), Mac OS X (160/4483, r2216), Linux (60/4482, 2267) | pugs.kwiki.org 21:07
jabbot pugs - 2344 - some test refactoring 21:08
pugs - 2345 - adding in dragonchilds tic-tac-toe refac 21:18
Corion t/magicals/caller.t fails due to a "misreported" column offset. I think the offset reported is the opening { and not the function call. I don't know where to fix this though, and/or if more tests with subs that extend over several lines are needed. 21:20
good night 21:30
jabbot pugs - 2346 - Added test against running system() and 21:38
clkao nnunley! 21:45
nnunley clkao! 21:46
clkao welcome back to civilization. i seem to have nicer neighbor than you do
Limbic_Region using svk, what is the shortcut to checkout Pugs (assuming it was never on the box before) ? 21:54
clkao svk co URL 21:56
nnunley clkao: It's not so bad here once you get used to it. Some of it is pretty decayed, but there are spots of interest here and there.
clkao nnunley: *nod*
Limbic_Region clkao - that's not smart enough to skip every single revision is it?
clkao Limbic_Region: it will ask you if you want to do so.
we are user-friendly! 21:57
Limbic_Region ok - cool
machack666 is there some sort of document detailing the status of pugs' support of perl 6's features, i.e., some sort of overview in checklist form so we can know which features are known to work and which ones are known not to work? I see this as something that could help focus both development and help facilitate test writing and some of the other auxilary needs of the pugs project. 23:56
really, i'm looking for a detailed roadmap, as well as the ability to look up in tabular form what the status of (say) a particular mthod 23:58
tr
a\it i
s
(2 year olds are better than cats...)