The Return of the Journal : pugs.blogs.com/ | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6
Set by GammaRay on 31 December 2005.
00:02 bsb left, nothingmuch joined
putter sigh. last night's "almost but not quite" hash parse fix, was in fact a fix. a second, independent bug, of apparently long standing, left me thinking the fix was still buggy. note to self - there is the "control", and then there is the "experiment". the control differs from the experiment only in... ;) 00:09
r8742.
svnbot6 r8742 | putter++ | Parser.hs - Improved hash recognition. {("a"=>3),}.ref is again ::Hash, not ::Block. Various failing tests now succeed.
r8742 | putter++ | Background: {}-like things are initially parsed as a Block, and then their AST is examined to see if they should be a Hash instead. The examination patterns became out of date with respect to the parsed AST.
putter ?eval 3 00:11
luqui: ping? ;)
tewk putter: So 00:12
opps what needs to be done to release, little stuff that is. Fix the failing tests in make test ?
putter yes indeed 00:13
00:13 locksy joined
putter is building a clean pugs with intent of running make smoke on it. 00:13
00:15 Tman joined 00:16 Debolaz joined
putter other than that, a release is a good time to step back, look around, and see if anything has gotten old and crufty. outdated information, things that we should really have but never quite got around to (eg, docs' getting_started), etc. anything that would make the release a better creature. 00:17
for instance, we suggest people do make unoptimized if the pugs build is taking too long for them. but, at least on my machine, the resulting compile of some files (Run I think) takes >1GB memory, and I spend more time swapping than I saved compiling the other files. 00:19
So it could be nice for someone to do some timing runs, and see if we should reconsider how we deal with "if the build is going too slow for you...". 00:20
Perhaps we could couple make unoptimized with no-precompiled prelude. But if you dont have a precompiled prelude, do things really work? (periodic #p6 traffic suggests not quite). These are cpu and time intensive, or involve groveling in the somewhat cruft build system, but the "step back, pretend I'm 00:23
a new user, and explore" applies to docs and everything else as well.
makes sense? 00:24
gaal putter++ 00:25
gaal tries to sleep again
tewk Yeah, audrey mentioned a couple of things that unoptimized would probably baloon on, prelude was one of those. I don't remember what the others where Pugs.Run ?
s/where/were/
putter attempts to shed weariness in gaal's general direction 00:26
yes, I think Pugs.Run was the one I noticed. 00:27
It might, or might not, be worth glancing over the :todo tests. A lot of them represent stuff which can't be fixed until pugs is a little further along. But sometimes it seems, if a failing test get's todo'ed for a release, it doesnt get touched again until it unexpectedly starts passing. 00:33
tewk has an idle dual G5, I'll see if I can get ghc on it
putter But like I said, a lot of the tests are unaddressably broken for the moment, so I'm not sure how rewarding a skim of them would be.
:)
ah, that reminds me, 00:34
tewk I noticed that my $a=42; $$a.elems is failing, because it isn't throwing an exception. t/builtins/array/elems.t test 4-5. 00:35
putter geoffb: re fast numerics, sure Fortran stuff is tuned. but who's insane enough to do something like setting up offloading onto graphics processors? 00:36
hmm. any question of the form "what language community is insane enough to..." seems to have a... small number of answers. err, maybe just one. I never quite thought of it that way before... 00:38
;)
looking... 00:39
00:39 Debolaz joined 00:43 penk joined
dduncan hmph, now Pugs says r8712, which is wrong, again 00:47
putter tewk: src/Pugs/Prim.hs has a table at the bottom, declaring the types of the primitives. It looks like that is currently entirely non-functional. (I just called several absurd combinations of primitives and argument types).
dduncan it is starting to look like the version only gets updated in Pugs itself when the Makefile.PL is regenerated 00:48
putter dduncan: lol. sorry.
dduncan or the last few times it worked coincided with that
putter what platform? 00:49
dduncan but even when Pugs wasn't updated correctly, pugs_version.h WAS correct
darwin
putter oh, err, missing dependency?
dduncan why?
pugs still runs, but its internal version is wrong
its something between when pugs_version.h is generated and the actual build that isn't working properly 00:50
putter foo.h only ends up in an object file/executable via some bar.c which #include's it. If Makefile(.PL?) doesnt know bar.c depends on foo.h, then foo.h can get updated, without anyone else caring
dduncan see, during the build process, it says it was compiling Pugs.Version, but it seems that the newer src/Pugs/pugs_version.h wasn't actually being read 00:51
the latter file contained: #undef PUGS_SVN_REVISION
#define PUGS_SVN_REVISION 8742
but running ./pugs afterwards said its version was r8712 00:52
which is what it was the last time I built yesterday
putter you could try running make. then make again into a log file. say make > log1 2>&1 . then touch pugs_version.h (or make a noop edit of it). then make > log2. and see if log1 and log2 are interestingly different. if not, its a missing dependency issue. 00:53
dduncan will try that
putter because then the change to pugs_version.h hasnt motivated make to do anything different. 00:54
dduncan I assume you mean to run the first command right now, without changing anything
putter err, the first of the three make's? that was just an attempt to normalize what ever state you are now in. actually, you might log that one too, and compare all three logs. just incase something less simple is happening. 00:55
dduncan the first make is running now ...
done
putter that was fast...
:)
of course, when I said make > log2 I meant make > log2 2>&1 00:56
dduncan what I did was "make > log1 2>&1" within the current state
without doing anything else first
putter fine
dduncan now I will touch the version file and do it again
putter oh, why not do another
dduncan it should be fast since nothing changed
putter before touching
touching = changed
make uses date of modification, rather than contents, to indicate need for refresh 00:57
dduncan I added a space character to the version file, changing its file date, and am running make again but to log2 00:58
done
putter want's dduncan's cpus
(and bus, and memory, and...) 00:59
dduncan this make was fast because it didn't do anything significant
a normal rebuild takes a good hour
and a smoke currently takes about 120 mins
putter ah 01:00
dduncan which is odd since a few months back it took about 70 mins, and the test suite didn't get much bigger meanwhile
or even 45 mins
putter hmmm.
dduncan fyi, the hardware is dual-1ghz PPC G4, ram is 768M 01:01
its about 3.5 years old
putter tewk: there's something else for the imaginary doesnt really need to be done todo list. a time and space profile building and testing.
01:01 Debolaz joined
dduncan now running a diff showed no significant changes 01:01
and every run, even when no actual work to do, will regenerate src/Pugs/pugs_version.h 01:02
giving it a new date and such
putter my quick guess is you might be getting nailed by swapping? can you watch a system monitor while test is running?
01:03 nothingmuch joined, Tman is now known as lovestoes
dduncan the machine didn't act like it was swapping ... er, that happens a bit on build, but not on smoke 01:03
anyway, on both of these logs, it says it skipped Pugs.Version 01:04
I don't think it is the file dates, but the file contents that determine this
or there is some intermediate file that wasn't getting updated
putter runs touch test...
I ran 01:05
pasteling "putter" at 66.30.119.55 pasted "working make" (15 lines, 265B) at sial.org/pbot/15495 01:08
dduncan er, actually the make doesn't rewrite version.h, but regardless, I had touched it 01:09
I did a diff between my terminal scrollback and one of the log files, to compare the first make after update to the test
originally it said, but this was skipped the second time: Preprocessing library Pugs-6.2.10... Building Pugs-6.2.10... 01:10
originally it said, Compiling Pugs.Version, but skipped after
originally it compiled Pugs.Parser but skipped after 01:11
all else was skipped both times
01:11 lovestoes is now known as Tman
putter one reason for long smoke times may be hangs. looks like I'm going through 27 cpu minutes on ext/HTML-Entities/t/entities.t ;) 01:11
dduncan actually, the later one said Preprocessing library Pugs-6.2.10... Building Pugs-6.2.10... 01:12
too, but after the compile skips rather than before them
there were no other significant differences 01:13
putter could you do the same set of commands as in my paste, and paste your results?
dduncan just a minute
when you say, "results", you mean the same summaries you nopasted, I assume 01:14
putter yes
dduncan its in progress 01:15
almost done 01:20
pasteling "dduncan" at 24.108.164.7 pasted "nonworking make" (15 lines, 1K) at sial.org/pbot/15496 01:24
dduncan okay, there you go
putter, if you have any other ideas, let me know 01:25
putter back 01:26
yeah, so it's definitely a dependency problem. well that, or make is trying every time you run it create... 01:28
putter greps for pugs_version.h...
dduncan fyi, each run shows inconsequential diffs from others, such as files having manpages made in a different order 01:29
putter what version of ghc are you running? 01:31
and have you seen the INSTALL notes on darwin?
dduncan its GHC 6.4.1 01:32
I've been using this for many months, as with the same OS (X 10.3.9), and there were no problems with the version for many months, starting just a few weeks ago 01:33
putter hmm
dduncan one thing that may be a factor is that my system clock was wrong during one update a few weeks ago
it was set to 1969 then 01:34
so some files may be saved wrong
however, I did a make realclean in the meantime
and the version periodically *does* update meanwhile
so I would have expected the wrong date to be a temporary ailment
I can do a search for files with bad dates, in case any are still around, that may be significant 01:35
tewk dduncan: xargs touch < find .
putter Do the logs show ghc trying to recompile Version.hs?
01:36 Debolaz joined
dduncan none of the 4 I just did showed it recompiling Version.hs 01:36
in fact, it only does this when the version control number is different than version.hs 01:37
but its supposed to
only do that on a change
01:37 hcarty left
dduncan regardless, the initial time after my update, it did recompile Pugs.Version 01:37
but something didn't happen after that 01:38
01:38 wilx joined
dduncan I will observe, that even after it recompiled Pugs.Version and Pugs.Parser, it skipped 'Pugs', where it used to redo that all the time 01:39
and just below that it says "compilation IS NOT required"
not adjacently below
give me a minute
will nopaste something more useful ... 01:40
pasteling "dduncan" at 24.108.164.7 pasted "original log, showing inconsistent versions" (222 lines, 17.4K) at sial.org/pbot/15497 01:44
dduncan putter, look at that 01:45
it shows what actually happened (wrong) in the normal setting
normal when there actually was an update
and not just a faux update
this was all that happened before I started talking to you today about it 01:46
putter oh. can you blow everything away and just start from scratch? I tend to think of realclean as meaning, sort of kind of but not really clean. in general. maybe it works on pugs. but still. 01:47
putter regularly compiles pugs from scratch, just to avoid having to worry about/debug "complications".
oh, drats. the fix of pugs with embedded parrot just means, at least on my box, I get to segfault. :( 01:48
at least ghc shares my pain: pugs: internal error: EVACUATED object entered! Please report this as a bug to [email@hidden.address] Hey, and this one is replicable. Reporting...
bah. heisenbug.
dduncan if you are suggesting that I wipe my whole checkout dir and recheckout everything ... or svk revert the whole thing, I could do that 01:49
is this what you suggest?
putter looking...
svk? ah. in svn its a trivial op. svk less so. 01:50
audreyt rm -rf *; svk revert -R . 01:51
trivial enough :)
audreyt spent far too much time reading up on IEEE 754/854/754r :/ 01:52
and got nothing useful in return ;)
dduncan the svk commands are often similar to svn ones
on purpose
putter recalls folks waiting long times for svk bootstraps. still hasnt upgraded from svn himself.
dduncan okay, will wipe
the main problem I had with svk was installing it in the first place 01:53
putter audreyt: yeah. thats why I ended up not bookmarking/logging anything. "I just so dont want to be here".
"and dont really need to be"
audreyt putter: svk co svn.openfoundry.org/pugs/ and answer "h" to the "how many revisions you want to go back" :)
leo_ audreyt: good morning and btw 0/0 is throwing an exception in parrot since a week or so, the latter with constants only since today :)
putter :) 01:54
audreyt leo_: heh, how coincidal ;)
leo_ yeah
dduncan fyi, I actually just renamed the pugs checkout folder, made an empty folder in the old ones place, and am reverting into that
leo_ and I'm going bedwards now ;)
dduncan that's done
audreyt leo_: so it fails even with N registers? 01:55
i.e. not only I?
dduncan now remaking
leo_ audreyt: yes
audreyt leo_: okay... is there a p6i thread for it?
(i.e. what motivated this change?)
putter is there a way to make smoke without getting ext/*. other than moving ext/* of course ;) 01:56
audreyt putter: it's called "make test"
putter oof. but... where are the pretty pictures?
audreyt ah, tcl as usual.
01:57 Debolaz joined
leo_ audreyt: not much discussion on p6i, it just seems to be the natural thing to do in that case (a lot of TODO comments in code did also suggest it) 01:58
dduncan now on refreshed 'make' ... I also quit BitTorrent this time to free up some RAM ... ghc needs lot
audreyt leo_: okay... here are 24 other cases to consider 01:59
but you should sleep first :)
leo_ I think, if you want to handle fancy things with 1/0 then just create your own PMC that does it
dduncan back in a bit
audreyt leo_: I think so too, and p6l is arguing what Perl6Num should do
svnbot6 r8743 | audreyt++ | * add PUGS_SMOKE_EXCLUDE_EXT env to run-smoke.pl
audreyt leo_: does this mean NaN is going to go away in N* registers? 02:00
leo_ audreyt: I know there are more cases - later
audreyt i.e. any operation that manufactures NaN normally is turned into exception
it seems terribly inconsistent to have NaNs in some cases and exceptions in some others
dduncan I, like, totally agree!
audreyt putter: export PUGS_SMOKE_EXCLUDE_EXT=1
leo_ @larries have to figure out some default behaviour 02:01
or refer to *one* spec
audreyt ...and fill in undefined bits of that spec 02:02
in any case, go sleep first, we'll figure it out :)
eventually.
02:03 Medvekoma joined
leo_ sure - my only concern wrt NaN is not to have it on the credit card or such :) 02:04
audreyt 4563 1300 0NaN +Inf
leo_ yeah 02:05
I could live with a +Inf on the cash side for a while, though 02:08
02:11 Southen joined
audreyt goes to $job 02:17
putter briefly considers a make test output postprocessor 02:20
(2 subtests UNEXPECTEDLY SUCCEEDED) (1057 subtests TODO), 879 subtests skipped. Failed 91/511 test scripts, 82.19% okay. 1282/9301 subtests failed, 86.22% okay.
But that's with rules unnecessarily broken. Embedded still segfaults.
unexpecteds are in t/oo/roles/conflicts and ... that's odd. can you have an unexpected success that doesnt say "succeed". grep shows only one of those. hmm...
miles to go before we sleep^W release
hmm... why does builtins/perl.t expect (\{mumble}) to be anything but a block? missing invocation I think...
ah, rx:perl5// stringifies as {rule}, perl()ifies as \{rule}. how unfortunate.
class A {}; A.perl
oops, wrong window
02:22 putter joined, Debolaz joined 02:27 Medvekoma joined
putter audreyt: ping? 02:33
oh, hopefully (still) asleep.
audreyt putter: no, about to run t $job 02:41
obra mm. $job 02:42
audreyt: alexmv just checked in a nice inversion. Now Jifty::Dispatcher calls mason. Your autohandler is free again
02:44 scook0 joined
putter no biggy 02:46
audreyt woot!
svnbot6 r8744 | putter++ | t/builtins/perl.t
r8744 | putter++ | :todo<release> .perl on Rule objects. Which sort of dont exist yet.
r8744 | putter++ | :todo<feature> .perl on recursive structures. Unimplemented.
audreyt pulls with real network (tm) instead of ozymandns
ok, taxi is here. gotta go. bbl &
putter &
Jifty::Dispatcher calls mason... putter squints 02:47
dduncan okay, following the nuke 'n' pave of the checkout dir plus rebuild, pugs reports the correct as-then checkout version of 8742 ... so far so good
will now update and rebuild, to see if it reflects 8744 or not
putter has fingers crossed. makse typng difficult 02:48
dduncan this update has no src/ changes, but it did say "Compiling Pugs.Version 02:49
okay, that's done, and pugs seems to report 8744
so for now at least, no problem! 02:50
putter :)
dduncan and there were no Makefile.PL changes either, which was good 02:51
putter "Get your Amazing Doctor Wunderbar's Elixer of PowerCycle And Reeboot here. Cure for whatever ails you. Indigestion, hair loss, love life, Windows, ALL are brushed away by..." 02:52
02:54 Debolaz joined
meppl guten morgen 03:09
svnbot6 r8745 | putter++ | t/data_types/num.t - Test file is no longer dubious. Wrapped eval()s around parse errors from numbers with underscores (one a correct parse fail, the other a bug). 03:16
03:25 macli joined, macli left
putter good, well, "morning". good UTC wee hours of the morning. 03:29
03:29 Medvekoma joined
putter place a globe on the ground, with your current location up-most, and north pointing the right way, and the light/shadow on the globe matches that on the earth. :) 03:30
it.slashdot.org/it/06/01/17/0331238.shtml What is Perl6? on /. But it's been up for a while - about to fall off the bottom of the page. So not much use for making comments. As for content, I only skimmed the top, but eh. 03:47
03:47 scook0 joined
putter Motivated by chromatic's www.perl.com/pub/a/2006/01/12/what_...erl_6.html 03:48
robkinyon seen stevan 03:55
jabbot robkinyon: stevan was seen 1 days 9 hours 15 minutes 59 seconds ago
robkinyon seen stevan_
jabbot robkinyon: stevan_ was seen 1 days 9 hours 22 minutes 8 seconds ago
dduncan now begun to smoke 8745 03:57
04:08 Debolaz joined 04:09 scook0 joined
pasteling "putter" at 66.30.119.55 pasted "output of r8742 make test" (1058 lines, 53.7K) at sial.org/pbot/15498 04:10
putter oh, amd64 FC3, external parrot, embedded perl5. 04:11
good night all & 04:13
good wee UTC hours of the morning? just doesnt do it.
04:17 Amnesiac joined 04:31 justatheory joined
dduncan it appears we have an infinite loop in ext/HTML-Entities/t/entities.t now 04:33
top says pugs has been running 28 minutes straight now
or maybe its actually the file after that
I mean that "ext/HTML-Entities/t/entities.t" is the last line currently displayed of output 04:34
on hitting ctrl-c, it says: Could not run yaml harness: No such file or directory at util/run-smoke.pl line 62.
or rather it says: pugs: interrupted Could not run yaml harness: No such file or directory at util/run-smoke.pl line 62. make: *** [smoke-pugs] Error 2 04:35
in any event, many ext/ tests have been dying with "No such method" errors, as they have been for weeks 04:36
that's the largest outstanding problem with this release-to-be that I'm aware of 04:37
04:40 dolmans joined 04:49 Debolaz2 joined 04:54 imperator_ is now known as imperator, Debolaz joined
audreyt dduncan: noted, will fix later tonight 05:03
(if none beats me to it)
05:07 evalbot_8745 joined
audreyt ?eval $+x 05:11
evalbot_8745 Error: Undeclared variable: "$+x"
dduncan I hear you
audreyt cool :) 05:12
Debolaz Good morning people. 05:15
05:16 weibo1 joined
audreyt Debolaz: hi 05:16
05:20 scook0_ joined
dduncan good mawning 05:29
Debolaz Hmm.. *Tries lighttpd* 05:30
05:45 sili_ joined 05:46 simcop2387 joined, hobbs joined
simcop2387 lol 05:46
sili_ hi frandz
Cryptic_K >.<
Cryptic_K gest the popcorn?
gets*
sili_ for you language designers: this isn't necessarily for p6 or anything.. what is the best i could do to prevent infinite recursion? 05:51
or infinite looping
06:01 elmex joined 06:12 scook0__ joined
dduncan if you're talking about the test suite 06:24
sili_
have the harness run each test in a separate process
and have an automatic kill signal sent to that process after a predetermined interval, such as 60 seconds 06:25
okay scripts should finish normally before that time, infinite ones will be killed 06:26
I think that web servers do something similar with CGI scripts, or can be set up to, so they aren't hung by bad cgi scripts
I've seen it specifically on IIS back in 1999, and I'm sure Apache does it too
adjust from 60 seconds to an amount reasonably longer than the test would take, such as 10X its expected run time 06:27
sili_, does that answer your question? 06:28
sili_ dduncan: it makes me further believe the answer is "it can't reasonably be done" 06:30
thank you though
dduncan were you talking about the test suite, or some other circumstance? 06:32
fyi, pugs can catch certain kinds of kill signals and shut down gracefully
a process can also send a timer signal to itself
eg, tell the OS to notify it when, say, 60 seconds passed 06:33
sili_ not pugs or anything specific. just a language in general
dduncan the signal handler for that could then shut down gracefully
any language could do this
its simply an OS and/or interpreter feature
what do you want to do?
sili_ prevent and/or detect+stop infinite loops/recursion 06:34
dduncan do you mean, take arbitrary bad code and make sure it doesn't run overtime, or stop your own good code after not-too-long? 06:35
sili_ any arbitrary bad code
dduncan as in the case of the test suite
sili_ no
dduncan I can't see this happening efficiently
pugs or whatever language could profile itself 06:36
and if the profile says something ran too much in a pattern resembling infinity, it could do something
06:36 GeJ joined
dduncan but all those checks slow everything down 06:36
fine for debugging, but not otherwise 06:37
the timer system works better if you know the code is supposed to be short lived
sili_ which enforces my answer
dduncan like a test script, is meant to be short lived
GeJ greetings all 06:38
dduncan greetings one
gaal sili_: purely speaking it's a halting problem; but you can engineer it so that if you run the same tests several times, you can use old timing information to set new expected timeouts. that way you don't need completely arbitrary limits for tests. 06:42
afk & 06:43
06:51 scook0__ joined
sili_ hmm 06:53
dduncan however, we need to start somewhere reasonable 07:02
for now, perhaps the harness can be altered, unless it already does this, to time each test individually ... the result could be included in the smoke output too; not just a total time to run, but a breakdown 07:03
07:04 hobbs left
dduncan after a number of smokes, we can see run time for several developers, then just set a timeout that is longer than the longest test on the slowest system 07:04
for this purpose, it doesn't have to be complicated; it doesn't have to profile, unless we want the test suite to say when a halting test is taking signficantly longer than usual 07:05
07:13 Medvekoma joined 07:15 Medvekoma joined
dolmans i heard perl6 will have strict type declare, is that a mandatory? 07:23
Khisanth s/will/can/
dolmans Khisanth: do you mean type declare is just optionary? 07:24
Khisanth yes, if I am reading your question correctly :) 07:25
07:26 feng123 joined
dolmans ok, thx. 07:26
07:26 nothingmuch joined
simcop2387 Khisanth: oo neat that'd be alot of fun to have 07:27
nothingmuch hola 07:30
07:39 Medvekoma joined
ingy hola nothingmuch 07:41
07:43 Cryptic_K joined 07:45 feng joined 07:52 canhope joined 08:02 scook0__ joined 08:10 iblechbot joined, stennie joined 08:11 Medvekoma joined
nothingmuch hola ingy 08:24
08:34 Odin- joined 08:36 scook0__ joined
dduncan hola bothuvya 08:42
08:46 Cryptic_K joined 08:53 feng123 joined 08:56 scook0 joined 09:20 kane_ joined 09:22 scook0_ joined 09:27 Cryptic_K joined 09:31 Medvekoma joined 10:04 scook0__ joined 10:09 rantanplan_ joined 10:17 Southen_ joined 10:25 scook0_ joined 10:32 rantanplan_ joined 10:33 rantanplan_ joined 10:35 Medvekoma joined 10:57 G2 joined 11:20 myren joined
myren PMC's vtables can be updated at runtime i presume? 11:20
thats how dynamic typing works i assume?
scook0_ myren: parrot questions are probably better asked in the parrot channel 11:50
11:50 scook0_ is now known as scook0
scook0 (you're more likely to find someone who actually knows the answer) 11:52
myren is that on a different irc server? 12:04
there's 1 person in #parrot and they are not an op
cognominal #parrot does live in irc.perl.org 12:05
or grou.ch if you have trouble connecting
I keep forgetting where the perl6 version scheme is documented :( 12:16
theorbtwo cognominal: You mean the pugs version scheme?
cognominal yes 12:17
12:22 pfenwick joined
nothingmuch the roadmap? 12:33
theorbtwo docs/01Overview.html, search for roadmap. 12:35
13:00 kolibrie joined
cognominal thx 13:03
13:09 iblechbot joined 13:27 \xe6var joined 13:33 binary42 joined 13:45 stevan joined 13:50 Southen joined 13:52 r0nny joined 13:54 r0nny joined 13:59 Debolaz joined 14:04 petdance joined 14:08 Southen_ joined 14:09 rodi joined, lypanov joined 14:12 sahadev joined 14:24 joepurl joined
lypanov is there a #parrot somewhere? 14:24
sorry, googled, found, ignore me
rafl lypanov: irc.perl.org 14:25
lypanov: Oh, sorry. Ignore me.
lypanov giggles
thanks anyway rafl :)
14:26 pfenwick left
lypanov just in case anyone actually knows where to find chromatic 14:27
: www.perl.com/pub/a/2006/01/12/what_...tml?page=3
has a bad link, to the phalanx project
which, nicely, via firefox
gets you to microsoft.com 14:28
rafl lypanov: It doesn't redirect to microsoft for me, but the link is broken, indeed. 14:32
lypanov rafl: probably just some weirdness in the dns i'm using 14:33
14:38 lisppaste3 joined 14:40 movies1978 joined 14:42 elmex joined
xinming hmm, token doesn't explained well in synopsis. So, anyone here have a clue? 14:44
obra you mean what a "token" is? 14:45
Khisanth lypanov: no, someone answered that for me the other day, the first result for "http" is mircosoft.com on google
lypanov Khisanth: aha, magical firefox feature
GeJ more like a magical google feature
lypanov hehe 14:46
yeah
GeJ well it's a mix indeed... 14:47
lypanov is there a special channel for pugs or is this the canonical one?
Khisanth "ff is basically doing a search for http and hitting I'm Feeling Lucky"
this is the one :)
theorbtwo This is the cannonical mode. 14:48
GeJ firefox gets 'http' as the URL. malformed so assumes it's a search subject, forwards to google and get the first result : microsoft.com
lypanov whats the most usual frenzied chat time for the channel?
any given timezone or quite random? 14:49
i'm looking for a good time when i can ask questions to the core :)
theorbtwo When audreyt is doing pugs stuff, whenever that is.
...but you might consider the perl6-compiler mailing list.
lypanov theorbtwo: k :) 14:51
theorbtwo: i'll 'hang' for the moment, if nothing turns up in a week i'll try the ml :)
thx for the info
xinming obra: yes. 14:52
theorbtwo What's your question?
xinming obra: the synopsis doesn't have any detail on it.
token
obra xinming: It's a pretty standard term when talking about parsing. 14:53
it's (iirc) the smallest unit one can parse soemthing into.
Others can likely give a more computer-sciencey definition
theorbtwo Well, not neccessarly the smallest unit one can, but the smallest unit one /does/.
14:52 < xinming> obra: the synopsis doesn't have any detail on it.
14:52 < xinming> token
14:53 < obra> xinming: It's a pretty standard term when talking about parsing.
Er, sorry. 14:54
xinming the printable letter(include utf-8 character and ASCII) ? 14:55
theorbtwo Can you give us some context for what sort of token you're talking about? 14:56
xinming theorbtwo: in Synopsis...
hold on
Tokens (keyword: token) are rules that perform low-level pattern matching (and also enable rules to do whitespace dwimmery). 14:57
and for the reason, I can't find the word dwimmery in Dictionary. :-/
theorbtwo Do What I Mean... -ery. 14:58
xinming :-( 14:59
Oh, I know...
DWIM mean Do what I mean.
how about the keyword?
theorbtwo I haven't a clue. 15:03
xinming theorbtwo: Did you read the synopsis? It's in S06,
in 'Subroutines and other code objects' part. 15:04
lypanov keyword == a word in the language 15:05
the keyword is token
e.g "token blah"
could be some code
no real idea, haven't read it, just guessing
theorbtwo Hm, now I did, and I still haven't a clue... I'm guessing that they want to be called by the rule engine, but I don't really know when or why or where or how... 15:06
xinming has to be waiting for synopsis update. :-P
lypanov where can i find the synopsis? 15:07
theorbtwo dev.perl.org/perl6/doc/synopsis.html
lypanov: I really suggest you ask your questions now instead of waiting until the channel is more happening; it's likely that they don't require as core sorts of folk as you think. 15:09
ingy hola kiddies
theorbtwo Hola, ingy.
obra ingy!
ingy mind if I refactor your code?
hi obra
theorbtwo My code? I'm not sure I still have more then 5 lines on a blame...
ingy I meant the Royal Your 15:10
lypanov theorbtwo: basically the question is, how do you expect to make it fast? 15:11
theorbtwo Ah. 15:17
That needs guys more core then me, at least for some bits.
For other bits: GHC is constantly getting faster, or at least introducing methods that we can use to get faster.
15:18 vel__ joined 15:26 petdance left 15:37 xinming joined, hexmode joined 15:41 Eimi joined
lypanov theorbtwo: yeah, efficiency is my only real concern these days 15:45
theorbtwo: figured out eventually that high level is useless if you can't easily make it go as fast as a quick hack up solution a low level language :)
16:00 nothingmuch joined, lucass joined 16:10 kanru joined 16:20 rafl joined
stevan audreyt: ping 16:25
stevan thinks maybe he has figured out the $repr issues which have gone warnocked on p6l 16:26
but I would like to get a sanity check from you before I code anything
16:30 Qiang joined
audreyt stevan: pong! 16:32
stevan audreyt: :) 16:33
audreyt submit your sanity for inspection now :)
stevan class finalization
audreyt just woke up from an awkwardly-timed nap... 00:33am here
stevan but in a very limited way
thats almost like going to sleep at a normal time...
you better be careful, next thing you know you will get an office job 16:34
audreyt nah, this means going to sleep right after exhausting 8-hour $job day
Qiang 9-5!
audreyt well, more like 11-7
stevan :)
Qiang that would be a flexible schedule :)
audreyt but go on :)
stevan so, lets examine Array for a moment in isolation 16:35
Array does List
correct?
(List being a role which provides the more "functional" things like map, grep, reduce, etc)
Array is a role itself
I think it is possible to describe the Array role completely leaving only postcircumfix:<[]> (or whatever that is) undefined 16:36
audreyt go on, but I think we are going to legislate punning officially 16:37
stevan it may not be the more efficient implementation, but thats not our conceren at the moment
audreyt (fully defined role moonlighting as a class)
stevan :)
so ,... we still dont have a class(Array) only a role(Array) 16:38
but before I define class(Array) I want to describe how role(Array) could be used
role(Array) can be done by other classes, which will give them Array like behavior
this is an alternative to subclassing Array 16:39
audreyt subclassing Array is insane anyway</mumble>
stevan s/(Array)/class($1)/
audreyt still. :)
(but go on)
stevan it is insane, but only because of the $repr type I think
audreyt exactly because of $repr.
stevan so in all cases where you would want to subclass class(Array), you can do role(Array) 16:40
the result will be exactly the same
since the local classes methods will override those in role(Array)
so, since $repr presents an issue for Array, we finalize it
s/(Array)/class($1)/ 16:41
then you cannot subclass it anyway :)
but you can still have all the same benifits as if you could
audreyt except for MI.
stevan because you have a role(Array) which is a 99.99999% implementation
audreyt which is the insane part
so we conveniently sidestep that problem
stevan well I think the MI issue can be solved uing the role 16:42
16:42 eric256 joined, eric256 left
lypanov audreyt: quick q, when are usually the best times to drill your mind? (in a rather light mannered way) 16:42
audreyt role doesn't let you do pre/post "super" calls, does it?
it's all flat
lypanov audreyt: (wrt performance and pugs/perl6/parrot)
audreyt lypanov: now.
stevan if you have to ,.. you create: class MyArray { does Array } and subclass that
16:42 Debolaz joined
lypanov audreyt: mind if i go privmsg? 16:42
audreyt lypanov: only if you publicly explain the reason :) 16:43
lypanov or create #perl6-performance?
audreyt: to not wreck the conversaion you're already having :)
s/ion/t&/
16:43 chris2 joined
audreyt lypanov: separate tabs will wreck my mind :) 16:43
stevan lypanov: we are used to multiple threaded conversation
:)
audreyt stevan: agreed.
stevan par for the course in #perl6
audreyt stevan: but I agree the default impl methods does not belong in a class 16:44
lypanov audreyt: hehe. okay :P
audreyt stevan: so, what is preventing us from filling in the missing <[]>?
stevan audreyt: ideally we put as much as possible into the role, it will make things much more portable
audreyt: in Role? 16:45
lypanov audreyt: okay, basic premise, i'm a ruby nut that started rewriting with three aims: ruby in ruby, efficient, extensible
stevan s/Role/role(Array)/
lypanov audreyt: perl6 is getting clean, and ruby2 is getting less clean, so i'm loosing interest fast in ruby, thusly turning to other possibilities
audreyt stevan: aye
lypanov audreyt: however, over the last 6 months i've found that efficiency is unfortunately just too much of a concern for many applications
stevan thinks lypanov has a strange defintion of "clean" ;) 16:46
lypanov audreyt: so i wondered exactly how high on the list of priorities it is for the perl6 team?
stevan: not perl5? ;)
integral agrees. perl6.clean? == no
audreyt surely lypanov doesn't mean clean as Clean :)
16:46 justatheory joined
audreyt now, "less cruft", that's an agreeable definition 16:46
stevan tries babelfish for a translation of "clean"
audreyt lypanov: ok. I can only speak for one person in the pugs team 16:47
which is myself
stevan audreyt: the idea is that we create a class(Array) which implements the <[]> part, and then finalize that class
lypanov audreyt: any opinion of anyone forming the core is more than enough :)
(as in, the people most likely to talk with code)
stevan basically forcing the "extension of built in types" to always be done using roles 16:48
audreyt stevan: got it. and the undef-but-behavioural ::Array in userland is proxy for _both_
stevan lypanov: keep in mind that pugs is not the "official" version, only the most complete to date :)
audreyt: both the role(Array) and class(Array)?
audreyt the most incomplete too
lypanov stevan: yeah, as i said, i'm more interested in people that are actually working towards the goal :)
audreyt as there is only one ;)
stevan :D 16:49
audreyt stevan: yes, per the strange S12 duckroling definition, that's my impression. anything wrong with that?
stevan not at all
lypanov stevan: try using babelfish to go via at least 3 languages ;)
audreyt lypanov: okay. pugs's goal is not to create a fast VM
we do have two VMs in our tree
both written in haskell
but the goal is to go for a clean semantics 16:50
lypanov audreyt: the goal is to prototype the language?
integral ugh, is it possible to make Pugs.Run small again yet using all the new PIL serialisation stuff?
audreyt efficiency is okay but secondary
integral: yes! yes!
integral: will happen _right_ after 6.2.11
integral yay!
audreyt integral: I just don't want to delay the release again for it
stevan audreyt: I think we can make the $repr=nil classes deal with does() and is() in an approriate way
audreyt stevan: that'd fit larry's mind
integral And so the old evaluator will get killed soon too?
lypanov audreyt: but the goal of pugs is to be written in perl6 itself, yup? 16:51
audreyt integral: s/killed/cannibalised/
lypanov audreyt: (thats the more important aim of mine)
audreyt lypanov: yes. however, our newer VM is really tiny
stevan audreyt: okay I will document this in docs/notes
audreyt and reimplementing it in Perl6 (to form a metacircular evaluator) is trivial
stevan: woot!
integral I think there'd have to be a really optimising perl6 compiler along the lines of jhc or mlton before writing all of it in p6
stevan loves metacircularity :) 16:52
16:52 rantanplan_ joined
lypanov audreyt: is there any docs on the new vm? or best to simply read the code? 16:52
audreyt integral: s/writing/writing and using-in-production/
theorbtwo integral: You mean whole-program optimization? Not really possible; if we are to allow BEGIN blocks to warp lots, we never see the whole program.
stevan integral: why can we write an optimizing perl 6 compiler in perl 6? it could then continually optimize itself until it got fast enough for itself 16:53
integral theorbtwo: I'm not convinced in the specific case of the compiler since the interfaces to the compiler should be well-defined, so you can do whole-program optimization within them
audreyt lypanov: svn.openfoundry.org/pugs/src/PIL/Na.../Parser.hs svn.openfoundry.org/pugs/docs/notes..._types.pod
lypanov audreyt: if i were to svn co from the pugs tree would that be the entire universe or does it have many other hard code deps? 16:54
audreyt lypanov: our only dep is: perl5, ghc6.4
well, perl5.6 actually
well, also "make"
integral stevan: I think because it'd be really, really too slow to start in perl6 without having got part way there already
audreyt that should be all
stevan integral: just leave it running for a day or two :) 16:55
lypanov audreyt: excellent.
16:55 r0nny joined
stevan picutres it turning into something like the amoeba-tetsuo at the end of Akira 16:55
audreyt lypanov: okay, going back to your question. pugs's idea is to have a series of minilanguages between perl6 and the final target
lypanov: to complicate the matter, "the final target" means any<Haskell Perl5 JavaScript Parrot>. 16:56
# pugs.blogs.com/photos/visiolization...ation.html
\xe6var how evil 16:57
audreyt lypanov: so our prototypical VM doesn't matter in the long run; they are just convenient evaluators (and semantic definitions) for the intermediate forms
lypanov: performance is handled in two parts: the underlying runtime, and the codegen
lypanov: the codegen needs to generate as-fast-as-possible code, using whatever trick allowed in the underlying runtime. 16:58
lypanov: so a simple PIL construct can be expressed with nasty hacks in eg. the JavaScript codegen.
lypanov audreyt: basically my main worry with most current systems (especially the new ruby interpreter implementation) is the lack of support for specialization at object model level as opposed to vm level 16:59
audreyt lypanov: now, parrot folks -- like leo_ here -- are concerned not only to run perl6 correctly but also run it fast
lypanov: okay... in that case you want to read S12 a bit 17:00
search.cpan.org/dist/Perl6-Bible/li...le/S12.pod
lypanov: perl6's metamodel is pluggable; we implement a rather complex default model for the user 17:01
lypanov: but those are all implemented in term of primitive PIL^N constructs, namely representation types and prim calls
17:02 r0nny joined
audreyt lypanov: so by changing or augmenting the "boot code" you can end up with entirely different metamodel, even at runtime. 17:02
stevan which is pure unadulterated insanity :)
audreyt our current boot code is here: svn.openfoundry.org/pugs/src/PIL/Na...Bootstrap/
yes, what steven said
stevan but its a whole lot of fun :P
audreyt now, the challenge is to run the prim calls/reprs efficiently in the underlying runtime 17:03
17:03 bsb joined
audreyt and make sure there are shortcuts for common operations in the boot code 17:03
robkinyon stevan: audreyt: So, the upshot of your agreement is that the only $repr will be p6opaque ... ?
stevan robkinyon: nope
robkinyon of course not. that would be too simple and logical. :-/ 17:04
audreyt robkinyon: svn.openfoundry.org/pugs/docs/notes..._types.pod
stevan robkinyon: my basic idea is that if we allow classes to be finalized, then we can allow alternate repr types to exist and not trip over each other easily
audreyt lypanov: so whenever we come up with a potentially expensive requirement in the boot code (C3 dispatch order; iterators; autoboxing) 17:05
stevan robkinyon: I think there is sanity in p6opaque being the only repr type available in user-land
but that is not my descision
robkinyon so, we're still doing $repr === Some-Class-that-has-$repr==p6opaque?
lypanov audreyt: okay. on a more basic mechanics level, the system shown in the simplecomplation.html performs complation once, is there interest in iterative compilation?
audreyt lypanov: we ask the real VM people -- leo_ and friends -- to make those fast
lypanov: p6 operates under separate compilation
(and linking) 17:06
lypanov: so each individual .pm undergoes the same loop
that is not the case in the v1 (Exp) runcore, but will become as such in v2 (PILN)
stevan robkinyon: no, I think $Larry[0] still needs to clarify his envisioned usage of diff repr types
audreyt (previously I tried GhcBinary but it breaks horribly; now we have YAML, those can store our "byte code")
stevan p6array may not mean "use an Array class as your repr type", but it might mean "use the same repr type as Array" 17:07
robkinyon Isn't the $meta`create("") idea done more simply by having an undef singleton?
lypanov audreyt: ah, but the vm is still fairly high level in any case for parrot etc, so problem avoided basically.
stevan robkinyon: explain more please
lypanov audreyt: i'll have to read the svn tonight, idea is interesting
audreyt lypanov: well, hold on for the "etc" here... parrot may be more lower level than you think :)
lypanov audreyt: the "<4k code" in an interview with you caught me 17:08
robkinyon well, the goal of the undef $repr, as i understand it, is to create an instance of class Foo which evaluates in all situations to the same result as undef
audreyt lypanov: you can try "make pil" in the current source tree to play with the v2 VM
lypanov audreyt: (as my ruby interpreter is already approaching that and not nearly finished)
robkinyon in other words, bless( \(my $x) => 'Foo' )
audreyt lypanov: I thinkit's <1k LOC
robkinyon except more intelligently
with all the appropriate overloads.
stevan robkinyon: yes, essentially, but it also responds to the methods and introspection/reflection as an instnace of the class would
lypanov audreyt: given your blog and the word "isight" can i assume it'll compile on a ppc/osx box?
audreyt lypanov: sure 17:09
lypanov excellent
robkinyon So, since this is something that sounds reasonably common, why not put it as part of the MOP?
.meta, .id, .repr, .as_bit, .as_str, and .null
stevan robkinyon: what would .null return?
robkinyon and let the MOP do all the crazy overloading for you instead of hiding it in the $repr
lypanov audreyt, stevan, et al: hope to chat again when i've gained a bit more understanding :) thx for the info :)
robkinyon .null would return an object that is the null object for that class 17:10
stevan lypanov: your welcome, come back and visit us anytime :)
robkinyon presumably it would be a singleton in the default
stevan robkinyon: what is the use of that?
robkinyon what is the use of $repr == ""?
audreyt lypanov: thanks for the question :)
stevan robkinyon: those are created as singletons in the boot code
robkinyon why can't Foo.null be the same way?
lypanov stevan, audreyt: :)
lypanov runs off to catch his bus
stevan robkinyon: I see what you are missing 17:11
robkinyon I was sure it was something. :-)
stevan there are 2 different "Foo"s
17:11 nnunley joined
stevan ^Foo which is the metaclass instance 17:11
and ::Foo which is an instance of ^Foo with the nil $repr
both are created at boot time 17:12
audreyt because larry thinks ::Int.isa(::Int).
robkinyon what is the terminology for the class 'Foo' ?
stevan ::Foo
^Foo is the metaclass instance itself
robkinyon so, $foo = ::Foo->new ?
stevan (I think)
at least this week
robkinyon ok
stevan yes
robkinyon so, ::Foo.meta == ^Foo ?
stevan yes 17:13
basically what you were saying about "shouldnt it be a singleton" is correct
robkinyon So, why is ::Foo a null instance of ^Foo ?
audreyt robkinyon: because ::Foo has no member data
stevan so that ::Foo.isa(::Foo)
audreyt class Dog { has $.tail; }
but ::Dog.tail is not there
robkinyon ok
audreyt as ::Dog is nil not opaq
s/is/reprs/ 17:14
stevan which means it will blow up easily
audreyt compile time too
stevan when you try to access attributes
which is what Larry wanted
robkinyon So, what I'm proposing is if ^Foo.null == ::Foo, then ::Foo.null == $foo where $foo ~~ undef
stevan so that the distinction between class methods and instnace methods is made by whether they attempt attr access or not
robkinyon ahhh! that's a bad distinction 17:15
audreyt robkinyon: we all agree!
stevan points at $Larry
audreyt but that's what S12 explicitly says!
robkinyon S12 is wrong
audreyt it's not wrong, any more than perl5 is wrong
perl5 is like that.
stevan wonders if robkinyon got his LISP book yet
audreyt Dog->tail vs Dog->new->tail
robkinyon will be picking up Advanced Lisp at the library today, but is waiting for Basic Lisp. :-)
how do I do virtual methods then? 17:16
virtual instance methods?
but, that's beside the point
audreyt method meth {...}
stevan all methods are virtual
audreyt right.
there is no nonvitual methods.
robkinyon but meth(), in that case, is a class method
because it doesn't attempt attr access
audreyt nope.
stevan robkinyon: it /can/ be a class method
audreyt the {...} means it's not a method ;)
well rather, that it can't be used as either instance or class meth 17:17
robkinyon ok, so i create a method that doesn't attempt attr access in Foo, then override it in Bar with one that does
what now?
audreyt robkinyon: you get what you deserve.
robkinyon or, vice-versa
stevan :D
audreyt exactly as in p5.
robkinyon Why should i have to know the internals of the method in Foo just to create it in Bar?
that's such action at a distance that it hurts 17:18
stevan robkinyon: you dont.,.. you just cant use Bar like you use Foo,..
robkinyon That violates liskov
stevan thinks liskov is used to being violated by now
audreyt chortles
robkinyon It also violates polymorphism 17:19
audreyt robkinyon: S12 is by far not nominal class-based object orientation.
stevan points at $Larry again
audreyt robkinyon: most of what you are describing is now moved to roles
robkinyon my Dog $fido should be able to be assigned a Chihuahua, regardless of how the methods are defined
stevan robkinyon: I tried the inject/suggest reasonable class methods, but it didnt take 17:20
audreyt robkinyon: actually, liskov as you described Just Works
robkinyon i think a p6l post is in order
audreyt robkinyon: you can assign it a Chihuahua _instance_
robkinyon audreyt: How do you figure? I can't necessarily call $fido->tail
audreyt why not? 17:21
robkinyon if it's a Dog, I can't call tail(), but if it's a Chihuahua, I can
because Dog defined tail() without attr access and Chihuaha defined it with attr access
audreyt huh.
stevan robkinyon: then you cant call Chihuahua.tail()
robkinyon Liskov is violated 17:22
stevan but you can call Dog.tail()
audreyt but Chihuahua.new.tail() is fine
robkinyon that's -EXACTLY- my point
audreyt so is Dog.new.tail()
so ths only failing case is Chihuahua.tail
which I think is outside the common use of liskov
which only governs instances
robkinyon audreyt: So I can call class methods on instances?
audreyt robkinyon: surely
(again, just like p5)
robkinyon that's rather counter-intuitive
stevan and instance methods on classes, assuming they dont touch attrs
robkinyon don't bring p5 up in this situation
p5 doesn't have an OO model. It has a model that pretends to simulate OO 90% of the time 17:23
audreyt robkinyon: but this is explicitly modeled after p5...
robkinyon It shoudn't be
audreyt ...but sure.
robkinyon There's a reason that Class:: is the most populated TLN on CPAN
stevan points widly at $Larry again
@Larry even
robkinyon The reason is that people don't like P5 OO
at all
audreyt robkinyon: p6's object model is really prototype based, in all seriousness.
robkinyon LOL 17:24
you wanna fill her in on the joke, stevan?
audreyt it just pretends that it has classes and roles but shipping a bunch of default prototypes and have the compiler use them
stevan robkinyon: fear not, we will have our own "internal" copy of Bootstrap.pil ;P
audreyt s/but/by/
robkinyon if it was prototype-based, then $repr would not be an issue
everything else would be the metamodel
theorbtwo robkinyon: But what are the prototypes made of?
stevan theorbtwo: magic pixie dust of course 17:25
robkinyon theorbtwo: a black box that responds to get(name) and set(name,value)
it's purely a struct that self-organizes
everything else is based on the fact that blocks are first-class
all the userland crap is done through APIs, with one API being recommended above all others, just like there's one syntax that's recommended above all others 17:26
stevan robkinyon: your blackbox is the PIL^N opaque type :)
robkinyon ok
then everything else is purely userland sugar
right?
audreyt well, sugar for the userland 17:27
stevan well... there is a layer of meta-land sugar first,.. but yes
audreyt not sugars written in userland
but yes.
robkinyon so, the entire $repr question is, for the most part, moot?
theorbtwo ...which is, IIRC, the repr named 0, or Opaque, and it's an open question as to if there exist other reprs, and what they are for, right?
audreyt robkinyon: $repr question is saying the you are allowed to choose your black box
robkinyon: some people would like to store their black box in a way that is e.g. compatible with a C struct 17:28
robkinyon Array isn't compatible like that
neither is ""
those should be implemented through roles and methods, not $repr
audreyt we can (and imho should) make them compatible
stevan robkinyon: dont think of p6array as being a repr implemented with ^Array
robkinyon i think my argument is that only unboxed types should be allowed as $repr
audreyt "" should just reject all set() prim calls 17:29
robkinyon: oh! we are in vehement agreement.
problem is, some unboxed types have boxed counterparts.
robkinyon because only unboxed stuff is compatible with foreign data structures
audreyt and those may have to carry an unbox around
robkinyon ok
audreyt ponders the expression "carry an unbox around"
robkinyon what does that have to do with $repr?
audreyt that unbox has a $repr
surely 17:30
but the boxed variant is opaque
robkinyon no ... that unbox can -be- a $repr
audreyt yes.
robkinyon it doesn't have a $repr
audreyt the box is an opaque that hasa unbox that is a $repr.
theorbtwo I thought unboxed things didn't have a repr -- that's the definition of unboxed.
Right, OK.
integral what is --external?
audreyt so far so good?
robkinyon one of the attributes within the boxed will be the unbox, but the $repr for the boxed is still p6opaque
unless i'm missing something 17:31
audreyt robkinyon: yes. ^Array and ::Array both has p6opaque as reprs, if that's what you are asking :)
robkinyon: however, array _instances_ carry around an unbox that _be_ the native p6array repr.
robkinyon so, why is Array being considered as a possible $repr?
stevan robkinyon: it is not
theorbtwo s/_be_/_is_/? 17:32
robkinyon imho, if you're using a $repr != p6opaque, then you should be forced to deal with internals
theorbtwo Why is there a native p6array repr? Why not just build it out of a p6opaque?
stevan robkinyon: I think that $repr = 'p6array' does not mean "use an instance of ::Array as your $repr"
audreyt integral: it's linking haskell modules with pugs
integral: not actively used anymore; should probably be revived/revised
integral: s/pugs/pugs interpreter/ 17:33
robkinyon stevan: That distinction needs to be blessed by $Larry[0]
stevan robkinyon: I know,..
audreyt theorbtwo: er, speed.
theorbtwo: p6opaque => ParrotObject; p6array => ResizablePMCArray
theorbtwo OK, I can buy that.
audreyt theorbtwo: same argument for any other unbox.
stevan theorbtwo: what would the Array hold in it's p6opaue?
integral ah
robkinyon ok ... i think i'm more comfortable now with alternate $repr 17:34
stevan class Array { has @array; } is a little to cyclical
audreyt cool :D
robkinyon :-p
theorbtwo stevan: What can you do with a p6array?
stevan theorbtwo: exactly :)
audreyt theorbtwo: svn.openfoundry.org/pugs/docs/notes..._types.pod
theorbtwo Er, with a p6opaque.
robkinyon i do have to bitch on p6l re: the class method/instance method distinction
audreyt theorbtwo: has_attr, get_attr, et_attr
stevan robkinyon: good luck :P
audreyt s/et_attr/set_attr/
theorbtwo: and nothing else
robkinyon: we tried :) 17:35
stevan theorbtwo: using the p6array repr type (which is not a $repr which is an instance of ::Array)
robkinyon And I think someone needs to push Larry for a confirmation that only unboxed can be used as $repr
stevan you can do many other things which make sense with arrays
robkinyon does this mean that there's a p6nil unbox?
audreyt robkinyon: yes.
which is conveniently named "" in the enum
which may be too cute.
robkinyon That's too cute 17:36
stevan robkinyon: I am hoping that larrys silence means he is pondering the $repr issue
theorbtwo You can build an array from that. Each element goes in an attr named __whatever_$index.
audreyt robkinyon: if you think it's too cute... fix it in the boot code
robkinyon every $repr should start with "p6" and then immediately describe the storage mechanism
feh
i don't code ... i just bitch from the sidelines. :-)
stevan theorbtwo: but then each instance of array has a varying number of attrs
theorbtwo You could build it with just a single string if you needed to -- that's all memory itself is.
And this is a problem? 17:37
robkinyon & # lunch and wife needs the computer
stevan theorbtwo: when you define a class, you define the attrs it has,.. if each instance has a different set of Attrs, thats nasty from a metamodel perspective
audreyt robkinyon: oh well... I tried. I'll change it to p6nil
stevan theorbtwo: if you wanna implement arrays as string,.. go for it :P
theorbtwo: i myself would prefer to implement strings as arrays,.. that makes more sense 17:38
theorbtwo So the judgement is that it's better to have more reprs and avoid yet more levels of indirection then just have one and be cute.
I can deal with that.
stevan theorbtwo: pretty much 17:39
theorbtwo: the point is that we need a native list type in the bowels of the runtime anyway, so why not use it as a repr and save ourselves some time
theorbtwo IWFM.
audreyt stevan: care to summarize the clarification on robkinyon's concerns in docs/notes/ -- either as part of piln repr types or as something else?
stevan theorbtwo: I think it introduces some problems, but none that cannot be solved
audreyt: ok, I will make a note of em
theorbtwo Um, is it "", "p6nil", or "p6undef"? I think I'd prefer the last... 17:42
stevan p6-larrys-crazy-class-is-undef-thingy
audreyt undef carries an exception object
the S12 term is "empty" 17:43
theorbtwo Hm, OK.
17:43 nothingmuch joined
audreyt p6empty better than p6nil? 17:43
theorbtwo ...and I think I need to read S12 again.
Probably.
Donno.
Need more sugar before I slump over at keyboard.
Probably more water too. 17:44
audreyt I'll stick with p6nil then.
stevan audreyt: so looks like there will be a nice Tokyo hackathon
theorbtwo wonders why he's still typing and not getting up.
audreyt stevan: indeed
stevan wonders if he can get a TPF travel grant
audreyt I've just decided not to submit one :)
theorbtwo wonders if TPF should get a travel agent.
svnbot6 r8746 | audreyt++ | * Tidy up unused imports and uncovered base cases in Text.Parser.*
r8746 | audreyt++ | and in PIL.Native.*.
audreyt so go ahead and submit one for you :D 17:45
stevan ponders it
is there any type of deadline or such for that kind of stuff?
stevan has never even read the grant page on tpf.org
audreyt yes, because their next meeting is february
stevan ah 17:46
audreyt so you need to submit, like, now
stevan ok,..
any tips?
audreyt you can then come back with me to OSDC.tw and speak here
and then we can hack more :D
stevan ponders a pan-Asian tour 17:47
svnbot6 r8747 | audreyt++ | * the very-cutely-named "" repr type is now known as "p6nil" instead,
r8747 | audreyt++ | per suggestion from the apparently-not-into-cuteness robkinyon++.
stevan :D
audreyt++ #nice commit message
audreyt ingy: cplan.kwiki.org is down so I can't retrieve my grant proposal (not even sure it's there) 17:48
ingy audreyt: ok 17:50
audreyt stevan: that's what I submitted: 17:52
ingy audreyt: this wiki has long since been decommissioned
audreyt perlcabal.org/~autrijus/tmp/followu...oposal.txt
ingy: that's okay, I found my proposal 17:53
stevan audreyt: cool, thanks :)
ingy ok, I still have the wiki archived on disk if you need something
hi stevan
stevan hey ingy
ingy are you coming here? 17:54
nothingmuch ingy: you keep pinging me
stevan ingy: if TPF will pay for it :)
nothingmuch do you need something?
ingy pets nothingmuch
just to touch you
nothingmuch ah
ingy it's been a while ;)
nothingmuch hehe
stevan thinks ingy is lonely in .tw 17:55
nothingmuch inflates a copy of nothingmuch for ingy
ingy wheee :D
nothingmuch i have to go help mum handle her PC
have fun with me while I'm gone
ingy stevan: do you have a $job these days? 17:56
stevan ingy: yes I do, same one actually
ingy will they let you work from here? 17:57
that's what I do
stevan ingy: we are totally virtual too, but my marriage is not :P
ingy stevan: yeah you gotta sever those ties man 17:58
audreyt bring your family here then :D
stevan thinks audreyt might not know what she would be getting into
audreyt ingy: tsk
stevan: mmm?
ingy stevan: yeah you can carry your family around on a little scooter like everyone else here
it's fun 17:59
stevan 3 year old twins are a force to be reckoned with
audreyt oh wow, didn't know they are twins
stevan ingy: I will discuss it with my wife :P
ingy the divorce?
audreyt or rather, that a plural context was expected
ingy stevan++
stevan ingy: if I divorce her, and we get married,.. you will have to stop fooling around with nothingmuch all the time 18:00
ingy stevan: Perl 6 is your bitch
stevan ingy: quite true
18:03 Debolaz joined
stevan is trying to figure out what the DELIVERABLES for this grant would be 18:09
theorbtwo stevan: Speaches at $conferences?
s/Speaches/Talks/
stevan theorbtwo: I am not sure I want to commit myself to a talk 18:10
maybe thorough design documents would be enough
and a reference implementation in PIL^N :) 18:11
audreyt and a reference codegen in Perl5. :) 18:12
(unless you want to do PIR instead)
s/in/to/
s/codegen/runtime to support the codegen/
stevan hmm 18:13
18:13 Limbic_Region joined
audreyt i.e. bring Perl6::ObjectSpace up to date 18:13
stevan yes
audreyt it's a waste to have it not recognize PILN
stevan thats a possibility
audreyt and it's the fastest route for p5 targetting
so add it anyway and we'll figure it out :)
pasteling "stevan" at 67.186.136.119 pasted "grant proposal draft" (23 lines, 1K) at sial.org/pbot/15504
stevan hows that 18:14
audreyt change "The Object ModetaModel to "The Object model (with Classes, Roles, etc)"
stevan ok 18:15
18:15 randomity joined
audreyt s/langauge/language/ 18:15
stevan yeah I will spell check it before i send :)
audreyt "having both Larry and Damian in the same physical room for this discussion is great... because they don't visit our virtual rooms" 18:16
(j/k)
stevan :D
I would like to get this $$ so I think I will stick with my version :P
audreyt do mention the perl5 runtime -- also include links to the P6-ObjSpace and docs in the pugs tree 18:17
stevan ok
audreyt otherwise fine
best luck
Limbic_Region 2 p6 related posts at the Monastery today 18:24
perlmonks.org/index.pl?node_id=523949
perlmonks.org/index.pl?node_id=523956 18:25
bsb Is there a log of recent irc history? 18:26
audreyt bsb: irc.pugscode.org 18:28
bsb Thanks 18:29
Limbic_Region bsb - the pugs homepage has a list of very useful links related to all things pugs (to include the irc logs)
bsb I missed the context to lypanov's ruby plan
audreyt seems lypanov is doing RbRb
the equiv of PyPy
18:30 G2 joined
bsb Yeah, I see now. Thought it might have been more Ronie 18:32
As in Ponie
\xe6var audreyt: rbrb? where?
18:33 Debolaz2 joined
bsb \xe6var: www.lypanov.net/xml/development/rubydium/nanovm 18:33
I think
audreyt ponders the Ronin project 18:35
nice name
bsb I wrote "Ronie" but Ronin is mush better 18:36
s/mush/much/
I'm currently breaking ruby's gc trying to scope the project out 18:37
robkinyon audreyt: I"m into cuteness, just not when it impedes understanding of something that's a bone of contention. :-) 18:38
18:40 putter joined
stevan audreyt: when is the Tokyo Hackathon scheduled for? pre-conf? post-conf? 18:40
robkinyon audreyt: Where in S12 does it say that instance methods are those which access attributes and class methods are those which don't? 18:41
putter the p6l annex?
18:42 nothingmuch joined
robkinyon Is it the update to A12 that goes "[Update: class methods are no longer distinguished from instance methods by the compiler, except insofar as the compiler can tell that a method refers to instance variables in the body. It's a run-time error to ask for an attribute of a class object, but that's because the class object doesn't have the attribute, not because it's a class object.]" 18:43
putter re rbrb, metaruby is perhaps the furthest along... but hasnt done a public release yet. :(
stevan A12 is for amusement purposes only IIRC
robkinyon: stick to the new S12
robkinyon dev.perl.org/perl6/doc/design/syn/S12.html ?
stevan yes 18:44
audreyt goes findking some snack... bbiab
robkinyon I"m not seeing where S12 says that class methods are methods without attr acccess 18:46
stevan robkinyon: it may be on p6l only then
robkinyon gah
putter sili_: especially for low level systems, one approach is to engineer so "running" == "making progress", and then have your run loop ping an second, really simple system, whose sole role is to restart the first if there hasnt been a recent ping. 18:47
18:52 bernhard joined
stevan audreyt: ping 18:55
18:55 elmex joined
putter stevan: for the near term, I was thinking of breaking the object space p6 code into a bunch of little roles, which can then be assembled. Eg, something like having a separate Mumble::MapGrepReduce role, which this week can be does()ed by Array, on tuesday by List, and on alternate thursdays by Seq. with just a one line change. 18:55
well. two
thoughts?
stevan putter: what is the value of breaking it up this way? 18:56
18:57 mandarin_ joined
putter fast and easy response to design spec changes. so hierarchy changes are localized, rather than being pervasive in multi/method signatures. 18:57
stevan I am not sure it pays (in the long run) to optimize for design spec changes :) 18:58
and I am not sure how this would affect the method signatures
putter also permits easily creating variant implementations.
stevan putter: you can create variant implementations with plain role composition 18:59
putter: the value I can see in this approach is to get more code reuse using smaller parts 19:00
putter ponders 19:01
stevan putter: an important piont about the p6 in p6 effort is that it is a clean reference implementation
it really should not attempt to cater to the weaknesses and strengths of each different possible runtime 19:02
each runtime should address that on it's own
at least this is my feeling on the subject 19:03
putter currently, when I go to write prim multis/methods, there is an uncomfortable amount of uncertainty. As in, "It's unclear what to do, the process of determining how unclear is hard, and all of the choices seem likely to result in short lifetime before rewrite". Eg, 19:04
19:04 Debolaz joined
stevan putter: I feel much the same way 19:05
putter: there is no clear spec for this yet, and all the peices currently fit together only with much hand-waving 19:06
putter what class is this multi actually defined in? Array? List? Elsewhere? Should I go look at S\d\d? Grep p6l? Look back at the #p6 log for a vaguely remembered it should be X not Y? That for the signature. Then, which implementation choice should I use? Cater to eventual optimizability or likely current performance? Together with 19:07
stevan putter: optimize for correctness 19:08
or fun
but nothing else
otherwise it will surely be short lived
I am also not sure you need to define these as multis,.. that is very CLOS-ish, but I am not sure it is nessecary
putter what dependencies? The concept of a "circular prelude", in the sense of linear ordering, is silly. There are always lots of things which could be implemented using lots of others, all with tradeoffs, not just against the runtimes, but among the api methods. Magical compilation may eventually make that go away, but it's not 19:09
PerlJam Everyone congratulate me (or offer condolences if you know better :-), as of Jan 10, the twins gained some marginal independence from their mother. See www.flickr.com/photos/17029646@N00 19:11
stevan PerlJam: congrats
putter clear my design criteria should be "optimize for imaginary compilers". ;) The main payoff for me, personally, for breaking it into pieces, is it is far less overhead to do multiple implementations, and mixin one which seems merely plausible, knowing the choice can be trivially changed, than now attempting a perhaps
stevan PerlJam: twins,.. you are in for one hell of a ride ;)
putter intractable/undefined good quality choice now. /end
;)
19:12 rantanplan_ joined
PerlJam stevan: been more sleep deprived than usual this past week. We'll see how long I can keep it up :-) 19:12
putter re CLOS-ish, oh great, I was hoping that at least wasnt an uncertain design decision! :) 19:13
stevan PerlJam: boy-girl twins too,.. I have a pair as well,.. mine are almost 4 though,..
putter considers making a p6 object space _factory_. :) but then, that's what macros are for...:)
stevan putter: well it's CLOS-ish, but P6 does not do the other stuff in a CLOS-ish way,. so I am not sure it will work as you expect
putter: I think maybe you need to lay your larger vision out first 19:14
I have trouble following your reasoning at times, and I really think that is because I am not seeing *your* "BIG PICTURE" 19:15
all I tend to see is *my* BIG PICTURE, and I can't see where they both fit yet
19:16 khisanth_ joined
\xe6var PerlJam: my condolences;) 19:17
boy/girl ?
19:18 khisanth_ is now known as Khisanth
PerlJam aye 19:18
\xe6var cool;) 19:19
Limbic_Region grats PerlJam 19:20
19:20 marmic joined
audreyt stevan: pong? 19:24
stevan audreyt: any idea when and how long the hackathon would be? 19:25
audreyt stevan: the tokyo one?
stevan yes
putter takes a moment to look at photos...
PerlJam: congrats and sympathy. seeing siblings, at least the nature of your near-term future wont come as a _complete_ surprise. ;)
PerlJam: re "We'll see how long I can keep it up", 4+ years? ;)
stevan: yeah. and maybe I'm overstating the problem. a lot of the object space, likely most of it, doesnt really care what's going on with Array/List/etc. It's strictly "client" code. As long as "@a" works, no problem. 19:26
perhaps I shouldnt have started with the hairy tangle of the core. the optimal approach to that, for now, may simply be "whatever the easiest thing is which gets us through the day".
which goes against the trust of the whole "write code in advance of piln being able to run it" thrust of the exercise. but this approach clearly had a "may not fly" risk.
stevan: could you summarize how much is working or not in piln?
stevan putter: PILn really needs some more tests, and then Array needs work I think 19:27
putter: I have not looked at it in about a week, so I would have to check and see
putter is there sanity?
stevan putter: sanity? whats that?
putter 's irc client syncs, lots of stuff to read... 19:28
PerlJam putter: it shouldn't be that long. With our other children, after about a month, they started sleeping through the night without much worry.
robkinyon A month?!?
lypanov returns
PerlJam yes, one month 19:29
it may be longer with these two as they are slightly premature
stevan PerlJam: no waking up for food?
robkinyon wonders if PerlJam takes the RubberChicken approach to infant sleep habits.
PerlJam robkinyon: what's that?
lypanov hit with a rubber chicken? 19:30
robkinyon It's known as the RubberMallet approach in some states
chris2 oh oh, lypanov is joining the dark sides too ;-)
PerlJam stevan: maybe once, but usually my wife will feed them well before putting them to bed for the night.
audreyt stevan: probably the week before March 29
lypanov bsb: interestin'
stevan audreyt: ok
audreyt stevan: no concrete plan yet
lypanov bsb: skip the nanovm bit. nanovm is just 800 lines of crappy vm code
bsb: rubydium is the actual goop 19:31
PerlJam robkinyon: you've some strange ideas. (I knew this before reading your posts to p6l ;-)
stevan audreyt: understood.
putter laughs. there is a subcategory of humor devoted to friends whose first n kids have property x, spend a year or few patting themselves on the back for "how well they did", and then hit n+1...
s/they/we/
stevan audreyt: I suppose I dont need anything concrete for the grant though 19:32
putter lypanov: what do you think of metaruby etal? 19:33
lypanov yoyo chris2
chris2: yeah, what the hell, ruby2 is gonna suck anyway
putter: metaruby or ruby2c?
chris2 lypanov: i was refering to #haskell, actually }:-)
lypanov oh, lol
putter metaruby. though the two are tangled. 19:34
audreyt stevan: yea
bsb thank lypanov
lypanov putter: whats metaruby?
putter ah, looking for url..
chris2 lypanov: zenspiders attempt
(nuff said :P)
lypanov chris2: thats not metaruby
thats ruby2c and "metaruby" :P
chris2 um, yes it is
ahh :)
lypanov metaruby is thingies... whats his name...
chris2 well, matju did a metaruby too, but that was totally different 19:35
lypanov that quebecois guy
19:35 khisanth_ joined
lypanov exactly 19:35
lypanov wonders how to spell quebecois
chris2 it was a reimplementation of the core classes in ruby
robkinyon PerlJam: I'll take that as a compliement. :-)
lypanov chris2: *nod*
robkinyon lypanov: You need the circumflex under the 'c'. :-)
lypanov thats the only mistake i made?
w00t!
lypanov grins 19:36
putter: anyways. thoughts on the zenspider stuff?
putter: its crap :P
putter: the entire idea is flawed
chris2 it could work, but it will be crap, yes ;-)
PerlJam robkinyon: I'm not sure I meant it as such, but you can take it that way if you like :-) I've said similar things to Damian, so you're at least in good company ;) 19:37
stevan audreyt: would you mind reading the most recent draft?
putter www.zenspider.com/Languages/Ruby/MetaRuby.html , but more: blog.zenspider.com/ right-side categories MetaRuby, ParseTree, Ruby2C (and maybe more?). 19:38
lypanov bsb: so you're hacking up a replacement gc?
bsb No. That just were the seqfault was 19:39
lypanov putter: yeah, there's two projects with the same name, its confusing as hell
bsb: hehe. whats ronie then?
bsb I'm trying to understand ruby's implementation
Ronie is just a nice acronym 19:40
19:40 khisanth_ is now known as Khisanth
putter yes, there is also an old an inactive-for-years MetaRuby on... raa. raa.ruby-lang.org/project/metaruby/ 19:40
lypanov aye
bsb Would be like www.poniecode.org/
Maybe not as difficult as ruby seems very clean internally 19:41
chris2 seems ;) 19:42
putter bsb: yes, the implementation is nice.
lypanov considering there are still gc bugs popping uo...
putter nice, at least for an intelligibility standpoint. it was fairly easy to do automated modifications to the C code to swap in alternate objid/num/array primitives. 19:44
I can't speak to memory management.
chris2 at least ruby problems are comparatively easy to localize
putter odeo.com/audio/306696/view Eric Hodel talks about MetaRuby (haven't watched it myself) 19:47
glu.ttono.us/articles/2005/10/14/metaruby 19:49
lypanov putter: metaruby as per the current ideas of the project leaders is just.. meh 19:50
putter: it can not possibly be efficient
19:57 hachi joined
Limbic_Region seen pmichaud 19:58
jabbot Limbic_Region: pmichaud was seen 203 days 40 minutes 46 seconds ago
Limbic_Region hmm
putter seen pmichaud_ 19:59
jabbot putter: I havn't seen pmichaud_, putter
audreyt pmichaud is I think tied up in $job according to the last two cabal phone conference minutes
putter ah 20:00
Limbic_Region right - I was just looking for contact info 20:03
demerphq (from PerlMonks) has once again expressed moderate interest in PGE
he is the guy that made the trie patch in the p5 regex engine for alternation in bleedperl 20:04
audreyt Limbic_Region: cool! if he can hop on IRC -- or arrange some Skype/Gobby conference -- I'd like to work with him on porting the Rules-in-Haskell core to C 20:05
(or to Perl5, but I think C is the way to go)
libpge
Limbic_Region I will tell him you are interested
audreyt or just librules
Limbic_Region AFAIK, he is not IRC savvy 20:06
audreyt is he in .de?
if he'll be in GPW, we can work in realspace.
Limbic_Region IIRC yes 20:07
I just /msg'd him
frankfurt, germany - so yes (unsure of the GPW though) 20:08
20:08 Debolaz joined
audreyt yeah, I think I stayed in his place once 20:08
stevan audreyt: proposal submitted & fingers crossed 20:10
audreyt woot
Limbic_Region ok - well I hope things work out audreyt - demerphq is a pretty bright guy but hasn't found a compelling reason to get involved with p6 - I hope this pushes into the abyss 20:11
20:11 nothingmuch joined 20:13 dduncan joined
svnbot6 r8748 | audreyt++ | * Fix the HTML::Entity infinite loop as reported by darren duncan. 20:13
audreyt Limbic_Region: I firmly believe a shared librules will be of use to all people 20:14
there should be more libraries like syck and pcre. 20:15
stevan envisions a "Build your own Perl 6 - some assembly required"
audreyt thinks they directly contribute to world peace
stevan++
but, sleep. only 5 hrs left.
integral is syck written in C? 20:16
stevan audreyt++ # code for world peace
audreyt integral: yes 20:18
dduncan fyi, starting today and for a few days, I'll be doing a full backup of my computer, and installing Mac OS X 10.4.4 Tiger for the first time; until now, I was using 10.3.9
among other things, that should make installs of svk easier
audreyt woot
dduncan hopefully those filesystem indexes that Tiger will automatically do won't take up too much space
audreyt waves and goes sleeping &
gabor++ # picked my fav photo for osdc.org.il/
dduncan fyi, I've had the install DVD since last april, but I was waiting until it became more stable, since my only comp is the machine I work on
ingy hi audreyt 20:19
audreyt ingy: er, hi. you don't see me. I'm already sleeping
dduncan yes, sleep-talking
ingy want to share a hotel room Saturday night? ;)
I'll show you my YAML if you show me yours
dduncan provocative, aren't you 20:20
ingy I think I scared audreyt
audreyt (details already arranged in /msg ;)) 20:21
audreyt sleeps for real & 20:22
ingy we did our business in private
audreyt ingy: FWIW, I agree on UseHeader and UseVersion -- always use positive configs; and I agree on fallbacking to $YAML::* if $YAML::Syck* is not set.
ingy: and I also agree to various other things that you may come up with -- if you get cycles, please just commit to the YAML-Syck repo. 20:23
ingy ok
stevan ingy: if I make it to tokyo can i see your YAML too? 20:24
ingy stevan: got iSight?
stevan nope sorry :) 20:25
ingy right here right now baby
stevan we could share a capsule hotel
ingy although I'm not sure if the lense is wide enough to capture it all
stevan: yeah
I really want to stay in a coffin 20:26
=== Things to do before I die:
* Sleep in a coffin
* Threesome with Japanese twins
lypanov lol 20:27
ingy (my little node to Austin Powers)
grr. being a yamlist makes me type node when I mean nod
svnbot6 r8749 | audreyt++ | * fix a trivial pod error in MIME::Base64 20:34
Limbic_Region she fixes code in her sleep 20:36
dduncan that's one explanation for her great speed
hachi I'm wondering about her interface, surely it can't be a keyboard because those are too slow. 20:37
Limbic_Region seen chip
jabbot Limbic_Region: chip was seen 50 days 26 minutes 6 seconds ago
20:38 Debolaz joined 20:39 elmex joined
dduncan now beginning smoke of 8749 20:54
20:54 stevan_ joined
svnbot6 r8750 | stevan++ | PILN object repr types.pod 21:03
r8750 | stevan++ | - added section to address the concerns of robkinyon and to (hopefully)
r8750 | stevan++ | clarify how these repr types will be used
21:09 Debolaz2 joined 21:10 DaGo joined 21:12 husohuso joined
leo_ stevan_: $repr and repr type is totally misleading: $ python ... help(repr) 21:16
stevan_ leo_: it is from S12, the first argument to CREATE() 21:17
21:17 Debolaz2 is now known as Debolaz
leo_ I know 21:17
stevan_ leo_: I am not sure what else I should call it
leo_ it's not that common to deal with $repr that is deserves that short name 21:18
$opject_representation_internals
s/p/b/ 21:19
and if you really want to deal with that the type that name ;)
m 2 c of course 21:20
stevan_ :) 21:21
21:24 Debolaz2 joined 21:30 \xe6var is now known as \xe6\x76\x61\x72
dduncan it appears that ext/Span/t/span.t or the file after it is also infinite looping 21:40
I'm debating whether to update the harness to do that timer kill thing on long running tests, though I'm not sure how hard it will be to do
21:45 sub_chick joined 21:52 nothingmuch joined 22:04 patron joined, Debolaz joined, patron left 22:11 SamB joined 22:16 stevan_ is now known as stevan, frederico joined
svnbot6 r8751 | Darren_Duncan++ | r2071@Darren-Duncans-Computer: darrenduncan | 2006-01-18 14:16:42 -0800 22:22
r8751 | Darren_Duncan++ | in /util/yaml_harness.pl, updated run_test() to time how long each test takes and spit a warning saying so ... this can be a first step in adding granular timing information to smoke reports, and also determining a good kill timer wait to mitigate infinite loops
22:25 Debolaz2 joined
gaal dduncan: tests.yml already has timing information. 22:26
dduncan oh
what is the best way to display this info while the test is running? 22:27
gaal what granularity of display do you want?
test or file? 22:28
dduncan per test for now
gaal if file then line 247
dduncan what I actually want to do is set a timer at the right place which will kill an individual test if it runs too long, and move on to the next one 22:29
I thought perhaps yaml_harness.pl was the place to do it
gaal individual test or file?
dduncan test file
eg, one line item in the normal output 22:30
gaal yes, then run_test around that line can do it.
dduncan if the smoke framework already has the feature to limit time used, it should be turned on
gaal note that there are platform dependence issues here
I don't think it does, but look at Test::Harness 22:31
on which we perform live brain surgery
(i.e., our copy is almost or maybe even entirely unmodified from an upstream version, but we make it do things it didn't think it'd ever do.) 22:32
22:32 christo joined 22:34 christo joined
svnbot6 r8752 | stevan++ | Scribbling down the notes from todays discussion about built-in types, and 22:37
r8752 | stevan++ | the $repr issues created when they are subclassed. Very very very rough, I
r8752 | stevan++ | will clean it up more later.
22:41 frobnitz joined 22:42 stennie joined
frobnitz I'm sure this is a faq, but is there a way to do multi-line input in Pugs' interactive mode? 22:43
dduncan if there is a way, I haven't discovered it 22:51
22:52 amv_ joined 22:55 nothingmuch joined 23:15 Debolaz joined 23:17 \xe6\x76\x61\x72 is now known as \xe6var 23:40 Debolaz2 joined