6.2.7 released! | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6
Set by autrijus on 13 June 2005.
autrijus probably not. 00:00
Darren_Duncan seems to work there ... now trying with the module ...
autrijus in that case, 20% or less
if "parse into noop" counts, suddenly 50%-60%
but that's faking
obra autrijus: heh 00:02
Darren_Duncan okay, that seems to have fixed the main problem 00:11
putter :) 00:15
Darren_Duncan another big feature still isn't working, but the yet bigger and more important one now does 00:16
will debug after committing this though
putter 's p6 files end up a mass of comments # when feature_foo works, this should be instead be bar. When there get to be too many of them, I put it aside for a while... 00:22
autrijus thanks for bearing with pugs :)
putter ;) 00:23
thanks for bearing pugs! :)
Darren_Duncan committed a removal of the NASTY haxor 00:24
autrijus lol
putter++
Darren_Duncan another feature of my module still doesn't work though, which is letting text templates be inlined rather than in separate files
autrijus ooh. Darren_Duncan++
coral hah! "People are basically irrational. Look for cheerleading opportunities." lwall++ 00:25
Darren_Duncan eg, LKT_30_TrnMsg.t contains a module declaration at its end, which should be used for the last 3 tests, rather than requiring a separate file; that module doesn't seem to be visible, though
autrijus coral: I heard that line from you earlier :) 00:26
coral someone++ # compiling perl6 to perl5!
autrijus coral: you think that's an excellent move? :)
just by putting "use pugs; ...; no pugs;" in your p5 programs
and turn the "..." into Perl5 and inject back via source filtering into the compiler 00:27
and the compiler is just another cpan module runnable on perl5
svnbot6 r5041, Darren_Duncan++ | Locale-KeyedText : following a Pugs fix, removed the NASTY haxor in translate_message(); the module is now generally useful; however, an adjunct feature (having text templates inlined in code modules) still isn't implemented, so 3 LKT_30_TrnMsg.t tests fail
autrijus (i.e. it's generated from perl6 to perl5 itself)
Darren_Duncan back in a half hour
autrijus I have a feeling that it will expand our committer base. I may or may not be wrong :)
Darren_Duncan I'm going to quit my IRC client while I'm away; will check web logs for what I miss 00:28
autrijus ooh I found a good poem for CodeGen.hs 00:30
obra oh? 00:31
autrijus I sit beside the fire and think
of all that I have seen,
of meadow-flowers and butterflies
in summers that have been...
:)
since it's taking the compiled PIL tree and walk back thru all symbols.
putter :) 00:32
svnbot6 r5042, autrijus++ | * Poetry for CodeGen.hs:
r5042, autrijus++ | I sit beside the fire and think
r5042, autrijus++ | of all that I have seen,
r5042, autrijus++ | of meadow-flowers and butterflies
r5042, autrijus++ | in summers that have been...
wolverian so perl is meadow-flowers and butterflies, eh? 00:33
autrijus yup :)
and yellow leaves and gossamer
wolverian my mind is hurting from the mental stretch
autrijus in autumns that there were,
with morning mist and silver sun
and wind upon my hair.
etc :) 00:34
wolverian yeah, I remember the poem now :)
autrijus abigail even agrees with me :)
wolverian well, @ does look like a flower. kind of. 00:35
obra ---<@
no, that's not the traditional rose, is it?
mugwump ā€ 00:36
geoffb Who wrote that poem?
autrijus geoffb: as all other poems in Pugs, it's a JRR Tolkien poem. 00:37
geoffb
.oO( I need about a 600 DPI display to see unicode glyphs clearly at the small font sizes I prefer )
autrijus (every src/Pugs/*.hs has a poem)
geoffb autrijus, ah, I didn't realize they were all automaticall JRRT 00:38
Odin-LAP Eeek. Scary Tolkien-crazy people! :)
geoffb It's lwall's fault
autrijus geoffb: it's continuing the grand tradition of perl :)
geoffb In college I recall that when they first started running crack against /etc/password they found that something like 1/2 or 2/3 of the accounts had Gandalf, Bilbo, or Frodo as passwords (delta case) 00:39
wolverian I think E. E. Cummings would fit the role of the official Perl poet better.
mugwump sends āœ¾ āœæ assorted ā€ ā unicode ā£ ā¤ flowery ā¦ ā§ things ā˜™ āœž
geoffb Awww, thanks mugwump!
wolverian heh. mugwump++ # pretty
geoffb wolverian, e. e. cummings might do better for one of the 2D languages . . . . 00:40
wolverian and who says perl6 isn't one? :)
autrijus if it's all up to me, I'd choose James Joyce
but that's because I'm nuts 00:41
wolverian (Acme::2D:: maybe)
geoffb use Perl2D;
Odin-LAP mugwump: U+262D!
:p
autrijus I think Nicholas chose a really good release quote for ponie-3
"And, isn't sanity really just a one-trick ponie anyway? I mean all you
get is one trick, rational thinking, but when you're good and crazy,
oooh, oooh, oooh, the sky is the limit." -- the tick
wolverian heh. 00:42
geoffb LOL
I wish I'd seen more of the Tick cartoons . . .
And never wasted any time on the horrid live action version, eww 00:43
mugwump ā™„ any<āœ āœ” ā˜­ ā˜® ā˜Æ ā˜„ ā˜Ø ā˜© ā˜Ŗ>
mugwump calls it quits ;)
Odin-LAP calls it political discrimination. 00:44
geoffb Got all but two of those.
Odin-LAP Stalin got his logo, but what about mine?
*grumble* 00:45
geoffb wishes for a really truly complete set of Unicode fonts. Not "largely complete", not "mostly complete", COMPLETELY COMPLETE.
mugwump, which ones are 2620 and 2625? 00:46
Odin-LAP geoffb: I wish they'd make a font out of the images they use in the spec... :p
Free as in Freedom, of course. :D
geoffb Odin-LAP, NO KIDDING.
I mean come on, it's not like someone didn't go through all the effort already. 00:47
And if there is anything that should be truly free, it's the ability to use Unicode. Sheesh.
Odin-LAP Exactly. :p It doesn't make sense.
geoffb (fully use it, I mean)
Odin-LAP Well, if there's anything that should be free, it's life. ;) 00:48
mugwump .ā™„ |= any<ā˜  卍 卐> # ok geoffb, I'll add pirate to the list ;)
Odin-LAP points out that the earlier list was missing a peace-loving, organised political movement. Encircled-A! 00:49
mugwump sure. ā’¶ is far too plain 00:50
geoffb OK, so now I'm missing 2620, 2625, and 5350.
Odin-LAP mugwump: But it's the only thing available. :(
autrijus ā’¶
(0x24b6)
Odin-LAP Which is why I lamented Stalin getting his logo, but mine being missing. :)
autrijus gah I'm lagged :) 00:51
geoffb Thankfully, IRC is not (usually) arena combat, autrijus :-) 00:52
autrijus :)
coral iblech: is the POE talked about in r5032 the POE at poe.perl.org?
mugwump Odin-LAP: you could use ā˜ø (U+2638, WHEEL OF DHARMA). each to their own, what goes around comes around. close enough to anarchy ;)
autrijus not unless we're playing hangmanbot.p6
Odin-LAP mugwump: Hrm. 00:53
putter notes licences of ruby and sbcl are happily p6 compatible
Odin-LAP mugwump: I prefer to do without, and just paint the damn thing black. :p 00:54
geoffb putter, sbcl?
Odin-LAP Steel Bank Common Lisp
I assume?
putter y 00:55
luqui good morning! 01:13
Odin-LAP wonders what timezone luqui is in. 01:14
luqui I'm in Canada. They don't have timezones in canada.
obra snickers
Timezones were _invented_ in canada
Odin-LAP wonders whether luqui is on another version of Earth.
luqui (really?)
autrijus heya luqui. I fixed the ./ bug ~10 mins after you reported it
(and therefore didn't sleep) 01:15
luqui haha
well, thanks
autrijus :)
geoffb suddenly remembers all of the Newfoundland time jokes he's ever heard)
obra lluyeah. hang on for a point.
pointer
Odin-LAP geoffb: ?
luqui seen nothingmuch? 01:16
jabbot luqui: nothingmuch was seen 2 hours 9 minutes 54 seconds ago
geoffb Newfoundland is on a half-hour timezone.
Odin-LAP Ah.
geoffb Whereas American comics might joke about a time by saying "9 o'clock (8 Central and Pacific)", Canadian comics apparently used to do a similar joke about the Newfoundland time. 01:17
obra luqui: www.amazon.com/exec/obidos/tg/detai...0001OOU88/
putter wonders again about creating a TASKS list, to decouple the figuring out what needs to be done and how hard it is, from the actual doing.
luqui obra: cool 01:18
autrijus putter: go ahead. optionally link to files with todo tests
or just call it TODO.
and make it clear that it's just a scratchpad to communicate random notes, instead of some issue-tracking system :D 01:19
(not saying that issue-tracking system is not a good idea in general)
obra issue tracking systems all suck
nothingm1ch irssi seems cool
autrijus but RT sucks less than many
coral re: autrijus day 142, it's like they're forking the project at every actual point of contention and letting it grow as it may. the rfc process was a crazy tap for that, and many reacted with insanity. still, forking software seems to encourage competitive development. parallel implementations are probably more likely to succeed when tested singly purely on that basis alone, and both benefit from each other's work.
nothingm1ch hola autrijus
hola obra
obra hey nothingm1ch 01:20
nothingm1ch wonders why he can't rename himself
coral the trick is getting knowledge providers to contribute to all forks simultaneously, somehow. lwall does it by talking about perl6, which makes sense to all implementations (pugs included).
autrijus coral: I understand that. which is why I'm making it explicit in tomorrow's talk :)
svnbot6 r5043, putter++ | docs/quickref/namespace: correction re grammars and rules
01:21 nothingm1ch is now known as nothingmuch
autrijus it's not really forking... pugs started with zero lines :) 01:21
nothingmuch ah, there we go
luqui nickserv is nice
nothingmuch hola luqui
nothingmuch heads on to compile pugs
luqui hola nothingmuch, has comido la cena? 01:22
:-)
autrijus heya. anyone got a tuit of running down a commiter-by-commits analysis of the svn log? :)
nothingmuch hablo espaōæ½xF1ol, no comprande
;-)
luqui you foreigners
nothingmuch brb, reboot is in order
luqui americans can be proud of knowing another language, for your information ;-) 01:23
nothingmuch (tiger has encrypted virtual memory)
hah
Odin-LAP Men man mĆ„ jo snakke mindst tre sproger fĆør man kan kalde sig almindelig! 01:28
putter autrijus: elaborate? 01:29
autrijus putter: select name, count(commits) from commiters order by count(commits) desc 01:30
putter will do, sec...
autrijus danke
nothingmuch autrijus: can I resume an interrupted svk cp? 01:31
autrijus nothingmuch_: sure, by "svk sy -a" 01:32
nothingmuch autrijus++ # useful 01:33
did you see my new laptop yet?
autrijus no 01:34
luqui it's spiffy
not Spiffy
nothingmuch =D 01:35
no source filters here
the light sensitive brightness adjustments are SO cool
oh crap, now I know what I need the most 01:36
my ssh key
putter nopaste 01:37
autrijus pasteling: nopaste 01:38
mugwump hmm, it's should be an alias for $_.does
if it's Spiffy { } :)
nothingmuch perlbot: nopaste?
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
pasteling "putter" at 66.30.119.55 pasted "commit stats" (95 lines, 1K) at sial.org/pbot/11389 01:39
nothingmuch putter: you ought to use pbotutil
coral :wq! # language that likes to start command names with a single colon
putter pbotutil?
nothingmuch once you configure it right (*cough*) it's very nice
Odin-LAP That's the only useful command, too. ;)
nothingmuch putter: a CLI interface to nopaste 01:40
on the mac you say:
putter ah.
nothingmuch pbpaste | pbotutil.pl -s pugs | pbpaste
and then the clipboard is nopasted, and the resulting URL is in the clipboard
ofcourse, -s pugs is a configuration param 01:41
autrijus putter: thanks!
putter glad to help.
autrijus I wonder if that's a power law curve
nothingmuch hnmm... ghc is not installing
autrijus further wonders if it'd be too much to ask a GD-fu
you know, line graph 01:42
(or bar)
nothingmuch oh wait
i see
putter tries to remember gnuplot...
nothingmuch oh yay! they fixed the terminal! 01:47
it's now unicode happy
oh wait, not entirely
ingy: ping 01:49
putter autrijus: a linearish dropoff with 4 people, 63% of total commits, then a knee, and a flatish decay with the rest.
autrijus putter: .png available? :) 01:50
nothingmuch autrijus: is ingy in the room? 01:52
autrijus yup 01:53
nothingmuch is he dead?
autrijus ingy is pondering that question
he said yes
nothingmuch ask him if he would like to know about using strong cryptography in heaven 01:54
or hell
wherever it is that ingy goes to
luqui yeah it's hell 01:55
you know that anyone who uses a source filter automatically goes to hell
mugwump 0wns nothingmuch by accessing his akashic records
nothingmuch akkashic? 01:56
oh oh wait, I have a dictionary
=ah
uh, sure
luqui: true
nothingmuch would never sign a deal with the devil without having strong cryptography involved
pasteling "putter" at 66.30.119.55 pasted "plot1" (64 lines, 3.8K) at sial.org/pbot/11390 01:57
autrijus putter: cool!
that's power law enough
putter trying to do log axes... 01:58
If you would like it for a slide, I can clean it up (dots would probably be better than crosses...).
autrijus yes, I'll put it in my slide :)) 01:59
putter++ # extremely helpful
nothingmuch putter - what's that format?
putter uuencode of a .png
nothingmuch ah, so pipe to uudecode works 02:00
thanks!
putter np
nothingmuch everyone, please please please sign up here: wiki.yapctoronto.org/index.cgi?PGPKeySigningBOF
luqui: go make a key, like right now
i'm printing the forms
luqui doesn't have gpg
luqui tries to find it
nothingm1ch ee 02:05
autrijus: if ingy is asleep please generate a gpg key for him and push it to some server
luqui haha 02:06
autrijus ...
nothingm1ch nevermind all that privacy crap
oh, and let him type some entropy into /dev/random, he wanted to do that 02:07
putter thinks there soooooo has to be an easier way... 02:09
02:10 nothingm1ch is now known as nothingmuch
autrijus yay, the hardest slide is written ;) 02:21
+* I'm not in the Cabal 02:22
** I will not promise anything
+** If you want something, write a test and hack on it
+** ...the commit bit is always waiting for you
should be a breeze from there on
putter ah, expectation management...
obra s/in/part of/?
autrijus sure.
nothingmuch bah 02:27
autrijus coral: the note you forwarded me about closure leaks memory... it's one of the main reasons why pugs started. 02:28
nothingmuch luqui, ingy: got keys? 02:29
autrijus (because I needed to do openafp with closure-based streams, and p5 leaks horribly, so I had to learn haskell, then I need to let perl people use haskell libraries... and all comes from there)
luqui nothingmuch: yepperoonies 02:30
ingy hola
obra hey ingy!
ingy nothingmuch: I need a key
nothingmuch did you send it to a keyserver?
obra: do you have a key?
ingy I'm in 1130
luqui keyserver?
ingy at the kwiki hackathon
nothingmuch join pgp-key-howto
obra nothingmuch: yeah. i need to do payroll, then i'll pull it. but it's the dsa on the keyserver for [email@hidden.address] 02:31
nothingmuch ingy? 02:35
obra nothingmuch: do you need me to add it to the page? 02:38
nothingmuch yep, and to send it to a keyserver 02:41
obra Er. It should already be on keyservers.net
nothingmuch okay, so just put the fpr out, for my re 02:42
f
and i'll download it and put it on the form
obra thanks
obra goes to consult the gpg manpage
nothingmuch gpg --list-pub your_id --fingerprint 02:43
that should do the trick
obra Key fingerprint = AB4A 62CF 1A1A 119A 0462 39D6 122F 5DF7 108E 4046
nothingmuch should I put it on the webpage?
obra if you're up to it, that'd be great. otherwise, i can cope 02:46
nothingmuch okay 02:48
for some reason i keep hitting cmd+s on wiki pages
ingy: if you have 5 mins please give them to me 02:50
but I do need to print these things
how would someone convince CPAN.pm to use http instead of ftp for MIRRORRED.BY? 02:59
jql have LWP or wget installed, and select -urled mirrors 03:00
at least, that's what I do
MIRRORED.BY?
hmm
nothingmuch nevermind, i got it 03:07
thanks
src/syck/syck.o: unknown symbol `_printf$LDBLStub' 03:08
final link ... ghc-6.4: linking extra libraries/objects failed
is that known?
autrijus are you gcc_select'ing 3.3? 03:09
nothingmuch nope, didn't 03:10
twas 4..0
will switch
damnit, my . key is too sensitive 03:11
"persistent vegetative state. "
www9.sbs.com.au/theworldnews/region...p;region=6
is it OK to eat political activists?
obra nothingmuch: when is the bof? 03:18
revdiablo nothingmuch: only with copious seasoning
pasteling "putter" at 66.30.119.55 pasted "plot2.png" (82 lines, 4.9K) at sial.org/pbot/11391 03:38
obra w/win 14
putter autrijus: here is a final-ish version of the plot. just let me know if you have any change requests...
autrijus putter: looks great 03:42
putter a log scale version is perhaps more informative... except for 3 outliers, the log plot is basically linear. 03:43
autrijus ooh. 03:45
obra is plot2.png the logscale plot?
autrijus no 03:46
putter no, I'll put together a pretty one...
nothingmuch what's the cmd to send all the keys to a server? 03:48
gpg --send is surprisingly quick to finish
pasteling "putter" at 66.30.119.55 pasted "plot3.png logplot" (103 lines, 6.2K) at sial.org/pbot/11392 03:56
Darren_Duncan greetings ... 04:01
will experiment now; a commit may be forthcoming
one thing I noticed earlier, and now, is that something related to Test.pm is failing ... it is not printing out the count of failed/expected tests at the end ... the END block is not executing, it seems 04:08
checking docs ...
yes, that's the correct name for it 04:10
putter night & 04:19
Darren_Duncan it works! 04:20
I just rearranged the module declaration in the test file to be above the tests rather than below, and refs succeeded ... this suggests that the declaration is recorded at runtime rather than compile time, but autrijus did suggest something like this the other day when he said to move one class in KeyedText.pm below the others (which worked there). 04:22
committed 04:27
svnbot6 r5044, Darren_Duncan++ | Locale-KeyedText : rearranged LKT_30_TrnMsg.t so the module declaration inside it appears above the tests rather than below; split the try-block in KeyedText.pm into 2 parts; all LKT distro tests now pass, and there are no nasty hacks; this module is now widely useable
Darren_Duncan Locale-KeyedText is now complete
only thing left to do is gradually remove workarounds in it as Pugs itself improves over time 04:28
hooray
autrijus hooray! 04:29
Darren_Duncan++
Darren_Duncan so, is there anything in particular you want me to do next? 04:30
I'll probably start re-porting SQL::Routine in a few days, but thought I would hold it off until some planned Pugs design changes are done, so it is simpler 04:31
autrijus nod.
Darren_Duncan moreover, assuming that a 6.2.8 is imminent, I will wait on purpose until after that happens before starting said SRT port 04:32
and meanwhile focus on Perl 5 modules
autrijus, it must be half-past-midnight over there ... you all partying now? 04:34
never mind
good night 04:35
autrijus g'nite... I think I'll sleep in a bit
with unfinished slides
and finish the second half during the 15min break
obra good luck
Darren_Duncan I hear that's a longstanding tradition ... Perl conference speakers making their slides at the last minute
I don't think I could ever do that ... I'm not a fast thinker 04:36
oh, and good luck with your talk
mugwump it seems that talks laboured over are laborious...
Darren_Duncan fyi, I added my own comment to the change log on a previous commit, re what I was doing, so no one else has to 04:38
autrijus stevan_: if you can, please check in the perl6 object space (metamodel) code before my talk tomorrow :) 04:44
docs/talks/YAPC.spork landed. 04:49
* First cut - very incomplete - of my talk in 8 hours
Please help cleaning up the XXXs, typos, thinkos, pictures, and add whatever you want me to talk about.
I think I need to sleep a bit.
thanks in advance to whomever kind enough to help me from staring at a blank screen and speak :)
svnbot6 r5045, autrijus++ | * First cut - very incomplete - of my talk in 8 hours
r5045, autrijus++ | Please help cleaning up the XXXs, typos, thinkos, pictures,
r5045, autrijus++ | and add whatever you want me to talk about.
autrijus waves & 04:50
svnbot6 r5046, mugwump++ | Ship Date - its tests at least aren't completely broken :) 04:59
r5047, autrijus++ | * tone down the description of non-self-hosting a bit
chromatic Who wants a TypeConstrainedArray PMC? 05:02
wgz.org/chromatic/tmp/tc_array.patch 05:03
Darren_Duncan the talk has a good intro, me thinks ... continuing on
chromatic It's a proof of concept, barely tested, but it's a start and it doesn't segfault.
arcady type constrained array? how is that?
and the link doesn't seem to work 05:04
svnbot6 r5048, autrijus++ | * usual svnprops
chromatic Oops, link fixed. 05:05
arcady, it's a Parrot PMC that Autrijus wanted.
Darren_Duncan with the "== Perl 5: Modules" section, was the "no warnings" simply an example of 'no'? otherwise "use warnings" reflects better practice 05:08
that's only a minor point though ... ignorable 05:09
ingy nothingmuch: where are you?
arcady type constrained array does look useful 05:12
chromatic my Array @foo of Int; 05:13
arcady exactly 05:14
Darren_Duncan the word Array is redundant when you have the @
on the other hand, this is not ...
my Array $foo of Int; 05:15
if that works at all
chromatic It's bedtime even in my own time zone, despite everything I've done today!
Darren_Duncan its 22:15 in my timezone
chromatic Ditto, but I'm not there.
Alright, I'm out. 05:16
stevan_ autrijus: I am commiting the metamodel now 05:26
(please dont mention it too much though, cause it's still a little hackish :)
autrijus: I put it in lib/Perl6-MetaModel, it still needs some cleaning up though, I will try to do it in the morning 05:34
svnbot6 r5049, Stevan++ | adding the Perl6-MetaModel in Perl5,... its not perfect yet, but here you go! :-P
mugwump so Perl-MetaModel is the Perl6 metamodel in Perl 6, and Perl6-MetaModel is the Perl6 metamodel in Perl5? :-/ 05:35
pdcawley That's not at all confusing.
stevan_ :P
this is a prototype of the perl6 metamodel i hacked together so we could tests some behaviors
it was never really meant to be anything but that 05:36
pdcawley grins. Don't worry about it.
stevan_ but then autrijus decided it should serve as the basis of the perl5 compiler
mugwump heh
stevan_ which is cool, but means it needed to be cleaned up greatly
Darren_Duncan isn't that the way it is
stevan_ its about 1/2 way there
it still does not do state in roles 05:37
Darren_Duncan quite often, coders make prototypes, and then business folks say, ship it, you're done
pdcawley So, no pressure then.
stevan_ but I think thats insanity anyway :)
Darren_Duncan: yes, thats basically what happened :)
yeah
pdcawley shall have a read... as soon as I've levelled this character in WOW (which shouldn't be long)
stevan_ pdcawley: I would actually very much appreciate you input if you have time
mugwump stevan_: perhaps it is worth getting rid of most of ext/Perl-MetaModel, then?
stevan_ pdcawley: thanks
mugwump: you too
coral autrijus: pom poms for all! 05:38
autrijus: yes, i like the idea tremendously. especially 'no pugs'. is it a source filter?
stevan_ mugwump: not yet, since eventually the metamodel will need to model all that stuff too
coral heh, so it is
Darren_Duncan have you guys read autrijus' talk yet?
stevan_ so please leave it, the perl5 code gen stuff can utilize some of that work I think
coral gossamer
like spiderweb silk
stevan_ Darren_Duncan: no, we live it :P
pdcawley I think to do state in roles you need some way of asking the GC/language kernel/runtime for an iterator on the live set.
pdcawley hasn't. 05:39
stevan_ pdcawley: yes, autrijus larry and I discussed that over sushi today at lunch
Darren_Duncan yes; I meant did you check it through for any obvious errors or omissions?
coral all the unicode flowers wilted before i saw them :( they're all '?' now
Darren_Duncan tjat
stevan_ loves BBQ eel and metamodels
Darren_Duncan that's what he wanted people to do now, as its around 8 hours before delivery time
stevan_ Darren_Duncan: no, I need to sleep right now actually
pdcawley URL please?
stevan_ otherwise I will sleep though the talk itself
coral (U+2638)++ # Wheel. Of. DHARMA! 05:40
Darren_Duncan its committed in /docs
docs/talks/YAPC.spork
pdcawley d'oh!
Patch with suggestions?
mugwump prepares coral a fresh bunch, āœ¾āœæā€ā
coral autrijus: heh, wish i was there for it.
Darren_Duncan I believe so
coral well, it's forking conceptually. two parties take two paths from a single point and see what happens when they meet again.
sometimes one party doesn't make it.
Darren_Duncan r5045, autr_ijus++ | * First cut - very incomplete - of my talk in 8 hours 05:41
[9:50pm] svnbot6: r5045, autr_ijus++ | Please help cleaning up the XXXs, typos, thinkos, pictures,
coral (topaz comes to mind, no harm intended chip)
Darren_Duncan [9:50pm] svnbot6: r5045, autr_ijus++ | and add whatever you want me to talk about.
that's what he wanted
the post was 50 mins ago
coral heh! 05:42
I'm not in the Cabal
stevan_ pdcawley, mugwump: please send any metamodel comments to p6c or me directly, I hate backlogging :)
coral autrijus: it's a public list that you're welcome to join and respond to said email, if you desire. it seemed right up the alley for a response about pugs.
pdcawley stevan: Wilco
Darren_Duncan I'm almost halfway through now ... no mistakes noticed, but omissions I have no idea about
stevan_ ok, night all &
mugwump night stevan_ !
Darren_Duncan nighey 05:43
t
coral is now synchronized with real time.
Darren_Duncan real time? what's that? 05:44
coral been stuck in scrollback since svn came back up
Darren_Duncan ok
coral i keep 7 days
coral just finished reading (and responding to) scrollback
Darren_Duncan I quit my client every night so its empty when I open each morning ...
just check the web logs if I think I need to see what was missed 05:45
I don't know if its in the official spec or not, but "if -r -w 'file' { ... }" looks archaic ... the -r etc should be methods 05:57
arcady the -r -w stuff is mentioned in A03 but not S03 06:06
Darren_Duncan it looks wrong to me ... I never liked it in Perl 5 either
something that "should" not be in Perl 6
arcady yeah.. there has to be some better way to do it 06:07
Darren_Duncan and since all file handles in Perl 6 are objects anyway, it should be trivial to make those into methods, and make that the standard way
pdcawley I think that was suggested and rejected in RFC days. 06:08
Darren_Duncan A03 is old anyway, and written long before there was heavy thought about object stuff anyway ... it was probably a throwaway example in A03
pdcawley Needs to be on paths, not filehandles.
arcady yeah, that's the problem 06:09
Darren_Duncan whatever ... path objects ... objects all the same
arcady I'd rather not have it be a method of Str
pdcawley There's the fun with keeping the stat results hanging around as well. Should probably be multimethods, with shared state.
Or state 'written back' to the string.
Darren_Duncan eg, it should be like "'/foo/bar/baz.txt'.file_exists'" 06:10
arcady no, no it shouldn't
pdcawley It should be '/foo/bar/baz.txt'.as_path.file_exists (if you insist on methodology) and I don't. 06:11
arcady that just goes against so much of OO
why should a string know whether a file of its name exists?
Darren_Duncan or even how about "file_path_exists( 'foo.txt' )
QtPlatypus pdcawley: Thats ugly
Darren_Duncan oh oh ...
FilePath.exists( 'foo.txt' ); 06:12
pdcawley QtPlatypus: But correct, which is why the -x methods are better.
FilePath.from_string('foo.txt').exists works too, but is again ugly.
Darren_Duncan my last example is that you just invoke a builtin module method taking the path as an argument 06:13
arcady but the -x functions seem like a pain to parse
coral 'foo.txt'.-x
pdcawley arcady: So?
Perl is about making it easy for the user, not the implementor.
Darren_Duncan I would think that if something like filesystems is going to have special operators in the standard language, then network connections should too 06:14
pdcawley Argue it with Larry. Personally, I think he's made a good call on this. 06:15
Darren_Duncan filesystem stuff just looks so much like the domain of a module rather than the core
pdcawley Who says it's not a module?
wilx Hm, well, isn't it inheritance from shell?
pdcawley Just autoloaded.
wilx -x stuff.
coral need not be
pdcawley Right, I need breakfast.
Darren_Duncan I mean the syntax doesn't look module-like
arcady well... the -x stuff in the shell is really options to the [ command 06:16
pdcawley Why not? They're prefix operators.
arcady but is -f an operator, or negative f?
Darren_Duncan maybe I need to see this in a wider context and/or see the explanation before I can understand why -x etc is being kept 06:17
QtPlatypus Since plain f is a barestring and there banned in perl6, and negative f makes little sence its an operator 06:19
arcady ah, but what if I have a function called f?
coral does it share a prototype with -f? 06:20
Darren_Duncan it could 06:21
unless there is something special in the -f prototype that a normal user can't use with their own functions
that said, this seems to be the same situation as naming your own function 'map' or 'sort' etc 06:22
it seems to me, then, that the '-' part is un-necessary
except there is an operator named 'x' that then looks like '-x' ... except perhaps for argument count 06:23
wilx Again. It is what shell has that is why it is kept...
arcady why not just ask on p6l? that's what it's for, after all 06:24
Darren_Duncan good idea
Darren_Duncan finished looking at docs/talks/YAPC.spork and didn't find anything significant wrong 06:42
svnbot6 r5050, Stevan++ | removing the meta-model, dont worry I will put it right back
Darren_Duncan good night all 06:44
06:46 SM_ax_ is now known as SM_ax
svnbot6 r5051, Stevan++ | putting the metamodel back, I reformatted some stuff, as well as fixed some other stuff; I am too sleepy to do any real work though 06:47
spinclad done backscrolling (yow!) 07:01
only things wrong I saw with YAPC.spork were the damn XXX's, but I don't have suggestions for them at this hour. 07:02
autrijus rehi lambdacamels! 09:47
autrijus resumes the exciting work of slidemaking 09:50
clkao giggles at autrijus 09:57
coral autrijus: i am back in the present!
autrijus yo clkao, coral 09:59
svnbot6 r5052, autrijus++ | * resuming work on slides. 10:39
QtPlatypus Do will we get a write up of Mr Wall's speach? 10:44
coral 11:21 < autrijus> I have an older copy: perlcabal.org/~autrijus/larry-commu...ilding.ppt
autrijus coral: you have some tuit on your hands? 10:45
coral: I can use help finding punny (or at least somewhat on topic) images for each slides
coral i am directly pre-sleep for work in about 5 hours :( 10:48
otherwise i would love to
autrijus ah ok. no worries 10:49
yay, 3 slides left 10:53
it's all pictures from here on 10:54
broquaint Are all the talks begin recorded this year? 10:56
autrijus no idea
10:56 scook0_ is now known as scook0
broquaint Darn. Well I can only wait and hope I guess. 10:58
svnbot6 r5053, autrijus++ | * 3 slides left! 11:15
r5054, autrijus++ | * earthy's reviews.
r5055, masak++ | * Fixed minor gr error in docs/talks/YAPC.spork: 11:36
r5055, masak++ | s/closures leaks/closures leak/
masak hopes he's right 11:37
autrijus: did you know that you say in two consecutive slides that pugs has 7000 tests? (Expectation management, Test first) 11:38
maybe omit it in the second one? 11:40
autrijus thanks!
masak np
svnbot6 r5056, autrijus++ | * XXXs eliminated -- entering type annotation phase 11:47
masak :) 11:49
autrijus :)
svnbot6 r5057, autrijus++ | * annotation phase passes. entering optimization phase... 12:18
masak "optimization"? i clearly have less fun than autrijus when preparing my talks 12:29
QtPlatypus wonders how you profile a talk. 12:32
autrijus by asking the audience 12:34
you are all on the big screen now! 12:35
(the vga line worked)
...and I'll finish my slides now
autrijus promptly unplug the vga line 12:36
stevan!
stevan: lib/Perl6/Runtime/* okay with you? 12:37
I'm not sure where to put the tests tho
stevan autrijus: you can put it anywhere you like 12:38
autrijus stevan: okay, I'll do that in the intermission 12:39
stevan ok
are you finishing the talk right now?
autrijus yeah 12:40
or rather the first half
stevan :)
of course, you have the whole first have to write the second half
nothingmuch seōæ½xF1ors! my printer is crewing up 12:41
anybody who can print this: nothingmuch.woobling.org/gpg. 12:42
pdf
double sides
will get a free cookie
(seriously)
Boogie nothinhmuch: I can print it, but how can I get my cookie? ;)
nothingmuch someone whose at the conference 12:43
Boogie :)
nothingmuch print it = print it in 15 copies
darn 12:52
autrijus hm, I need to conjure up some graphviz foo
autrijus tries
nothingmuch autrijus: i'll be late for your talk
i can't get this crap to print
autrijus that's fine, no worries
jhorwitz autrijus: you look surprisingly awake for someone without slides a day ago. ;-) 12:55
svnbot6 r5058, autrijus++ | * local optimization phase done... entering whole-program analysis
autrijus jhorwitz: it's called "abandon"
jhorwitz excellent! now i'm *really* looking forward to your talk. :)
nothingmuch abandon? no slides? 12:56
autrijus nothingmuch: no, as in "with abandon"
nothingmuch ah
jhorwitz nothingmuch: are you at YAPC?
nothingmuch yes 12:57
well, not yet
jhorwitz needs to meet more lambdacamels in person 12:58
nothingmuch are you at the conf?
jhorwitz yes 13:00
sitting in the ballroom waiting for autrijus' talk
autrijus strangely I've finished the graphviz foo in time 13:01
feather.perl6.nl/~autrijus/viz.png
uploaded
masak autrijus++ # you did that in 8 minutes? 13:03
autrijus yeah, people under pressure etc
masak :)
masak has to get more of that pressure stuff
jhorwitz autrijus codes to relax before a talk. 13:05
autrijus alright let me get the vga line back
svnbot6 r5059, iblech++ | * YAPC.spork -- Minor typo fixes etc.
r5059, iblech++ | * docs/talks/README -- Added YAPC.spork
r5059, iblech++ | * Usual svn props
autrijus you will be all on the screen -- brace yourselves
ooh iblech checked in more fix 13:06
jhorwitz hello YAPC
autrijus remakes the slides
masak hi Toronto
autrijus maybe I should've checked the diff first hm.
nothingmuch yeah! printing is working! laundry is doing! 13:07
masak nothingmuch++
pjcj wonders for how long autrijus' slides will remain valid
masak thinks that depends on whether autrijus will keep updating pugs during the talk 13:08
nothingmuch yeah! printing is working! laundry is doing!
masak again? :) 13:09
nothingmuch anyway, /me must be off 13:10
see everyone at the conf 13:11
i printed a few extra forms
and maybe we can print some there
so adhoc entries can be made by hand
coke__ wonders if autrijus knows how dangerous it is to leave an IRC window open during the conference! 13:48
stevan coke__: I am sure he does 13:49
Limbic_Region is said window being probjected where others can see it? 13:51
stevan nope
he has full screen Spork
masak coke: what would the dangers be? 13:52
masak is curious 13:53
stevan masak: I think he is thinking his IRC window will pop up if you mention his name
coke__ masak: having someone evil like me post a huge message to the chat when the window is showing.
Khisanth he says something and then a commit comes up making what he just said untrue? :P
coke__ say, generated with `banner`. =-)
stevan coke__: no IRC in the presentation this time 13:55
maybe after the break
coke__ right, but the window has been visible once or twice. I'm waiting to pounce. =-)
(not that I have anything ready. =-)
masak it gives a certain sense of power to know that one can affect a projection screen in Toronto from here... 13:56
stevan coke__: are you here? 13:59
coke__ yes. I'm on the wall. larry's in front. there's a table behind him. I'm behind that table. 14:00
~~~
stevan ah
I am on the other side, all the way in the back
near the coffee :)
stevan was up too late working on the metamodel junk
coke__ oooh. get me a cuppajoe, willya?
Khisanth hrm thought you were sitting on larry :) 14:01
stevan coke__: sure, catch !!
coke__ yeowch!
stevan we should have a #perl6 meeting during the break
pdcawley_ is wishing he was there.
coke__ taunts pdc!
stevan morning pdcawley 14:02
pdcawley_ But then, aren't we all (well, those of us who aren't there).
Morning stevan. Still haven't looked at the metamodel stuff, been out doing sunshine and seabreeze related stuff.
stevan pdcawley: sounds like a better plan anyway :)
I am trying to clean stuff up right now actually
pdcawley_ Yeah, my bit of the big blue room is rather gorgeous right now. Very blue. 14:03
stevan autrijus has threatened to show/talk about it in the second half
pdcawley: very nice
pdcawley_ Did he finish the second half?
masak i think so
he removed all the XXXs
stevan Toronto looked a little grey this morning, but it was very nice/blue yesterday
pdcawley: no, he is still on the first part 14:04
masak stevan: i think pdcawley meant did he finish writing it :) 14:05
pdcawley_ bingo masak
stevan pdcawley: he still has plenty of time :) 14:06
I think he is writing while he is presenting this part :)
if he can program and shower, and program and sleep
why not write slides while giving a talk
coke__ he just needs 2 more hands.
masak you don't need hands to talk :) 14:07
pdcawley_ still remembers with pleasure the lightning cpan rap...
coke__ he's stuck holding hte mic, though.
masak ah
jhorwitz maybe he's typing with his toes under the table.
theothermike he has a brain -> computer interface im sure 14:08
pdcawley_ Or do I mean 'these are a few of my favourite cpans', done bilingually.
masak pdcawley_: that sounds wonderful 14:09
pdcawley_ Was at YAPC::NA 2? years ago. Or was it OSCON the same year. Ask autrijus for an encore :)
He might need material.
theothermike bring back the hangmanbot! 14:22
masak theothermike: is it broken? where is it? 14:25
coke__ uh, how did my name get on the author list? 14:33
pdcawley_ shiny magic pixies put it there? 14:37
Okay, so it's not likely, but wouldn't it be great if that were true? 14:38
coke__ I posit that autrijus is made entirely of shiny magic pixies. 14:39
pdcawley_ Hmm... the shiny magic pixie hypothesis eh? Interesting.
pdcawley_ strokes beard
coke__ HEY!
pdcawley_ wonders if the united school boards of Kansas could teach that instead of Inelegant Design. 14:40
svnbot6 r5060, Stevan++ | MetaModel update: we now have proper Method Objects (subs wrapped in objects) 14:47
autrijus stevan++ # invalidating one of my slides 14:48
coke__ autrijus: so did I just get the "pain the in the butt" listing in the AUTHOR fiel? =-) 14:51
HI EVERYBODY!
autrijus coke__: riiight :)
coke__ We're on teh b ig screen! =-)
autrijus (you guys are on big screen now)
coke__ everybody in the conference WAVE!
TORONTO!!!!! LET'S ROOOOOCK! 14:52
autrijus ...not really having an effect
coke__ wow. nothing. these guys are lame. =-)
autrijus heh
autrijus proceeds to wait for people to slowly return
autrijus decides to eat some cold breakfast
coke__ ah. larry's in the way.
skugg if someone says where the camera is, i'll wave...
Khisanth time for some ascii art? :) 14:53
coke__ So, autrijus , can you invoke partcl from inside pugs yet? 14:54
autrijus eval_pir sure 14:55
I tested it in leo's
but there's no eval(:lang<tcl>)
coke__ ... you're going to make me write that, aren't you. =-)
Limbic_Region takes off his monastic robes and walks around strutting his stuff 14:56
Limbic_Region dives for cover as people start hurling sharp pointy objects
autrijus so are we or not going to start?
coke__ wonders if he has to learn enough haskell to write that, or if he can implement it in perl6.
Limbic_Region autrijus - while you are waiting, have you figured out how to address the slowness of prelude? 14:57
coke__ he's no longer waiting
Limbic_Region ah - sorry 14:58
coke__ *sigh*. Can I have a commit bit?
(when you stop talking, of course>)
)
Limbic_Region sure - give me an email address and a bit of time to remember how 14:59
nothingmuch morning 15:03
Limbic_Region salutations
nothingmuch Limbic_Region: you're not at YAPC, right?
Limbic_Region correct nothingmuch 15:04
nothingmuch shame
Limbic_Region I am sitting at my desk waiting for coke__ to provide me an email address so I can give him a commit bit
nothingmuch ah
Limbic_Region nothingmuch - if it had been 2 weeks from now I would have been there
as it stands now, my wife would not be allowed to re-enter the country 15:05
nothingmuch demerphq is in the same boat
coke__ points lr at the private message he sent.
Limbic_Region invite sent coke__ welcome aboard 15:06
yeah - this client is rather difficult to get used to - but beggars can't be choosers
nothingmuch seen luqui 15:09
jabbot nothingmuch: luqui was seen 12 hours 38 minutes 47 seconds ago
coke__ ok. I'm "coke". 15:11
(now to grab a copy of the source)
nothingmuch svk! 15:14
nothingmuch 's laptop crashed
now i'm an svk advocate
;-)
clkao eyes nothingmuch 15:15
clkao digs out the log that nothingmuch saying what's the point using svk
lumi Hi nuffin
nothingmuch hola lumi
i bought a 17"
lumi Yum yum
Still don't have a backpack for it 15:16
nnunley clkao: The regimen of brainwashing and aversion therapy has worked (for nothingmuch)
nothingmuch lumi: make sure it fits 15:17
lumi Of course 15:18
nothingmuch i have a bag which was advertized as fitting, when I bought it
lumi Ahhhh, oh dear
nothingmuch but it fits in a way that I don't consider fitting
(pun not intended)
lumi I'll be extra careful then, thanks
Limbic_Region ?eval my %ball = map { $_ => 1; } 1..12; %ball{12} = 1.5; my $first = %ball{12} <=> %ball{0}; %ball{12} = .5; my $second = %ball{12} <=> %ball{0}; ($first, $second)
evalbot6 (\1, \1)
lumi Maybe I'll get a sleeve and just a huge backpack then
Limbic_Region spaceship operator is b0rk
?eval 1 <=> 1.5 15:19
evalbot6 -1
Limbic_Region but only sometimes
?eval my %ball = map { $_ => 1; } 1..12; [+] %ball{1..4} <=> [+] %ball{5..8} 15:21
evalbot6 0
coke__ ?eval any(1,2,3)
evalbot6 1
Limbic_Region ?eval my %ball = map { $_ => 1; } 1..12; ([+] %ball{1..4}) <=> ([+] %ball{5..8})
evalbot6 Error: cannot cast from VUndef to Pugs.AST.Internals.VCode (VCode)
coke__ has pugs checked out. 15:22
Limbic_Region so both are parse errors - one dies and the other doesn't
how should I write tests?
coke__ there. committed something. =-) 15:23
Limbic_Region ?eval my %ball = map { $_ => 1; } 1..12; %ball{12} = 1.5; my $first = %ball{12} <=> %ball{0}; %ball{12} = 0.5; my $second = %ball{12} <=> %ball{0}; ($first, $second)
evalbot6 (\1, \1)
svnbot6 r5061, coke++ | Case correction 15:25
Limbic_Region perlbot nopaste 15:27
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
Limbic_Region what's the correct way to test parsefails? 15:35
svnbot6 r5062, Stevan++ | adding ::Class, ::Instance and ::Role methods 15:36
nothingmuch comment them out
fail("PARSEFAIL",:todo<parsefail>);
pdcawley Limbic: I've done 'eval "..."' for some stuff that currently breaks.
Limbic_Region eval_is
works for what I am doing
nothingmuch then it's not a hard parsefail 15:37
stevan Limbic_Region: eval_* is not working correctly though ( i think )
pdcawley notes that the more he sees :head<tail> syntax, the more he likes it.
stevan because it cannot handle scope
nothingmuch in that case evaling is much better
Limbic_Region stevan - right 15:38
let me try nothingmuch's fail
pdcawley %CALLER::.eval_in_scope(...)
Oh, that doesn't exist? Dang.
Or &?CALLER_CONTINUATION.eval_in_scope # probably the better choice
coke__ easiest way to get GHC on OS X?
pdcawley Get a feather account.
nothingmuch coke__: www.haskell.org/ghc
pdcawley And use tramp.
stevan coke__: there is a DMG on haskell.org I think 15:39
pdcawley Working for Tiger now? Cool.
nothingmuch yup
just gcc_select 3.3
pdcawley No it bloody doesn't. Well, it didn't here this morning.
pasteling "Limbic_Region" at 129.33.119.12 pasted "Can someone with tuits sanity check and then commit this as t/pugsbugs/parsing_spaceship.t" (21 lines, 390B) at sial.org/pbot/11401 15:41
pdcawley (this is using hte darwinports thing).
Limbic_Region there are the 2 parse failures with the spaceship operator if someone has tuits
pdcawley utils/PrimPacked.lhs:257:0:
Warning: foreign declaration uses deprecated non-standard syntax
is what it throws at me.
Limbic_Region 1 results in parsing but gives incorrect results
pdcawley Anyhoo. Must nip out for a few minutes.
coke__ it only claims to work on 10.3
Limbic_Region the other is an outright parse fail
coke__ (gah. also takes a day to download. =-) I'll get it later. =-) 15:48
svnbot6 r5063, Stevan++ | whoops forgot the load test
coke__ I was able to grab the latest OS X version for panther, and at least "ghc --help" works. 16:03
stevan_ 3 minutes left, can he finish :P 16:13
coral who?
stevan_ autrijus
coral neat 16:14
stevan_ he is talking really fast now
coral cheers autrijus
stevan_ trying to get through all the slides
coral SMILEY FACE AUTRIJUS, HE'S OUR MAN
etc
Darren_Duncan oh, its still on now! 16:19
HELLO TORONTO!
coke__ "hi" 16:20
pdcawley TORONTO! TORONTO! I LOVE YA TORONTO! YOU'RE ONLY A DAY AWAY! 16:28
Um...
Darren_Duncan I think the talk may be over now? 16:29
it seems when I reviewed the talk yesterday, there was one sanity thing I missed: presentation_date: June 9th, 2005 16:33
pdcawley oops
Darren_Duncan another oops: * 6.2.7: To be released today! 16:39
actually ... forget those last two oops ... I was reading the wrong file today ... but not last night 16:41
they were just so similar to each other I didn't catch on right away
last night I still reviewed the correct one
svnbot6 r5064, autrijus++ | * the final set of slides that went live. 17:41
dudley I just got to the part in A Gentle Introduction to Haskell where they explain that the type system has a type system for typing types and my head exploded and I think most of my brain leaked out. 17:42
coke__ hides
autrijus dudley: READTHEM has a link 17:44
Haskell Tutorial for C Programmers - Eric Etheridge 17:45
<www.haskell.org/~pairwise/intro/intro.html>
which is much better
even for us non-C programmers
dudley Ah, cool. Thanks! 17:46
Limbic_Region autrijus - do you have any tuits ATM? 17:47
sial.org/pbot/11401 17:48
2 spaceship parse bugs
autrijus Limbic_Region: no, as a matter of fact I slept for 3hrs
and I had to skip the boat cruise or the sessions
I think skipping boat cruise is the obvious option
Limbic_Region oooh - sorry
autrijus Limbic_Region: please codify them as tests
Limbic_Region they are 17:49
that's what the link is
just needs a commit
stevan_ mmmm, papers (www.iam.unibe.ch/~schaerli/research/index.htm)
svnbot6 r5065, geoffb++ | Add entry for lib/Perl6-Metamodel/ to hack.pod 19:12
r5066, Stevan++ | Perl6-MetaModel : MetaClasses now have built in pre and post order traversal visitor(ish) functions
autrijus Limbic_Region: I committed your test
stevan__: you're mad
coke__: (belated) welcome aboard! 19:13
coke__ muahahah. 19:16
and the ghc seems to work. oooh, I have power now, I should make test pugs. 19:17
svnbot6 r5067, autrijus++ | * spaceship parsing bug, thanks to Limbic_Region 19:19
Limbic_Region thanks autrijus 19:20
autrijus =)
coke__ wonders if autrijus will reject my patch. 19:21
autrijus I never reject patche
s
I just obliterate revisions ;) 19:22
(which I'm not going to do)
Odin-LAP You never accept patches either, then?
autrijus indeed. 19:23
Odin-LAP They just sort of slide in without you noticing... :D
autrijus I actually go thru all revsions :)
Odin-LAP Did you invent a way to compress time, or something? 19:24
Limbic_Region so I had intended to ask earlier - have you worked out a way forward WRT the Prelude slowness?
autrijus Limbic_Region: yes
Limbic_Region: it's precompilation during "make"
Limbic_Region has it been journaled yet?
autrijus gaal mumbled something about military service and not up to do it 19:25
no, but I want to get it in before release
the 10x slowdown in trunk is not acceptable
Limbic_Region autrijus - if you didn't get a chance to read the journal gaal linked to - I will summarize
he intends to refuse to go 19:26
autrijus oh!
will that get him in trouble?
url?
Limbic_Region which will result in jail time and/or fines
will search for it
autrijus oh wow.
wolverian which country does he live in?
Odin-LAP Israel? 19:27
wolverian .il? okay.
right.
coke__ wow. compiling pugs is slooow
Limbic_Region www.livejournal.com/users/gaal/159292.html 19:28
autrijus coke__: "make unoptimised" etc
(but if you're making test and am in no rush, go for the optimised build)
Limbic_Region that is the journal link he referred to
autrijus k
coke__ autrijus: now that I havepower, I can burn as much cpu as I want! 19:29
autrijus =)
Limbic_Region the next thing I am going to try and figure out (now that I have a Pugs I can at least play with) is why Pugs refuses to build
autrijus on win32?
Limbic_Region yep
autrijus oh wow. what's the error msg? 19:30
Limbic_Region been happening since theorbtwo's patch
autrijus the fromVal patch?
Limbic_Region thinks he is the only 1
autrijus I missed that
did you nopaste a errlog?
Limbic_Region yep
will go back and find it
autrijus sorry for your trouble
I can boot to win32 to take a look
transparent containers and prelude preloading and fix regression 19:31
Limbic_Region as I said, I think it is just me
since Jonathan put out a binary build today that works
still looking for the nopaste 19:32
autrijus is the three things I'd like to happen before release
'k
Limbic_Region sial.org/pbot/11331
oops - not that 1 19:33
although
443 [21:07] <integral> hmm, is src/Pugs/Compile/PIR/Prelude.hs causing build problems for others too?
leads me to believe I am not the only 1
PerlJam make 19:34
oops
Limbic_Region found it
sial.org/pbot/11330
that's the error I get when compiling Pugs on Win32
autrijus gaal: I've just read your journal. doing something that makes you not hate yourself is commendable. best wishes etc. 19:35
coke__ ghc-6.4: 19:36
src/syck/syck.o: unknown symbol `_printf$LDBLStub'
final link ... ghc-6.4: linking extra libraries/objects failed
(from make test on os x)
autrijus coke__: are you running with gcc4?
coke__ apparently
autrijus coke__: did you gcc_select 3.3?
coke__ no =-) 19:37
I will try this.
autrijus coke__: can you look at README and hack Makefile.PL to print out a deadly warning so nobody gets bite by this again?
until 6.4.1's release (which is "imminent") we'll have to deal with this crap on osx
so maybe probe for darwin, gcc4, ghc 6.4
and then print out a deadly warning and die 19:38
because you need "make clean" now :-/
sorry for that
coke__ woof. well, my own fault for not reading the docs.
autrijus well, we don't really expect people to :)
so maybe just print that warning neverthess if it's in OSX
if you can test for tiger or higher, even better
anyway, commits welcome to Makefile.PL
coke__ roger roger. checking now 19:39
autrijus you++
Limbic_Region: okay 19:40
Limbic_Region ?
autrijus Limbic_Region: can you run gen_prelude?
Limbic_Region not ATM 19:41
autrijus ok, that's fine, I'll now boot to win32 to confirm the fix
bbiab!
Limbic_Region can't believe that this is affecting ALL Win32 users else the screams would have been much louder
fwiw - "gen_prelude: user error (Pattern match failure in do expression at src/gen_prelude.hs:23:4-15)" is what I get when I run C:\Cygwin\Pugs\lib\CORE\pugs\gen_prelude.exe from Jonathan's binary distribution 19:43
coke__ note: backtracking past the colon is not advised and may result in a dump
autrijus "may"? 19:45
you're so kind.
Limbic_Region also fwiw - all the Win32 smoke tests are outdated too
autrijus roger on all accounts 19:46
Limbic_Region autrijus - did you see my gen_prelude output?
autrijus yup I'm in win32 now
Limbic_Region ok
that isn't from the machine experiencing the problem btw - so I don't know how relavent it is
autrijus Limbic_Region: ok. so you can't retry/duplicate there?
Limbic_Region no - no GHC - Jonathan's binary build 19:47
obviously he isn't having the problem though - www.jwcs.net/~jonathan/perl6/ 19:48
autrijus oh. bummer. cuz I think I know the problem
coke__ ... gccversion is lying!
autrijus but I can't dup it here
coke__: !!
yow.
Limbic_Region ok - it is now 1548 localtime for you autrijus - right?
autrijus yuppers 19:49
coke__ %Config I did not run gcc_select. but Config says gccversion is 3.3
this will be ... problematic.
Limbic_Region good - I will be able to duplicate 1900ish
autrijus coke__: I think you need to run gcc_select.
coke__ right, but I'm trying to get it to die on my config first. =-)
autrijus indeed
Limbic_Region maybe sooner depending on how long it takes to get my vehicle's emissions tested 19:50
beyond running gen_prelude - any preliminary steps I should take before pinging you autrijus?
autrijus I'm still thinking about it 19:51
Limbic_Region good news is my code now "runs" - though due to the parse bugs it gives incorrect results 19:52
spaceship operator on hashes results in 1 regardless of what the values actually are
autrijus k will fix. 19:53
Limbic_Region the second parse bug (parse fail actually) with parens isn't that important to me as the one I just described 19:54
autrijus gotcha
Limbic_Region I accidently discovered the parens bug when I thought I would help the parser out by giving it context 19:55
it went from bad to worse ;-)
coke__ how does the Config in Makefile.PL determine the gcc version?
(does it use the version that perl was compiled with rather than the current version in the env?) 19:56
Limbic_Region assuming perl was compiled with gcc ;-)
autrijus coke__: we don't yet probe for that
coke__: I suggest if you're on darcwin, run gcc_select with ``
but maybe there's other ways 19:57
I'm fine with an unconditional warning too :) but actual selective death is preferred
coke__ I'll have a patch shortly for you to vet.
autrijus please just commit.
I don't vet patches, sir
coke__ I just hate to break the build on my first patch, you know? =-) 19:58
autrijus breaking build is fine on this culture :)
other people will fix :)
(eg. me)
and I'll even thank you for it. fancy that :)
Limbic_Region: my attempt of fix is in 20:02
svnbot6 r5068, autrijus++ | * Hopefully saner gen_prelude.hs that may make Limbic_Region happy -- untested!
autrijus it's untested, and may not be the actual bug you're running into -- let me know if it still fails
but it fixes the thing that theorbtwo mentioned at top of the file 20:03
which was very long lines
now booting back to freebsd...
Limbic_Region autrijus - will let you know 20:04
was thinking you were going to fix the first spaceship operator bug
Limbic_Region takes what he can get and is happy about it
coke__ autrijus: done, committed. 20:05
autrijus coke++ 20:06
eh. I've just rebooted :)
looking into spaceship now
wilx Do you know that caffeine addiction is bad? :)
autrijus huh? :) 20:07
wilx I read article about it in National Geographic.
svnbot6 r5069, coke++ | Enforce the "don't use gcc 4.0 note on OS X 10.4" note in the README.
Odin-LAP wilx: "Reeeally?"
autrijus coke++ # really, that one has caught ~5 people unprepared
wilx ... 20:08
wilx is embarrassed...
I haven't noticed coke__.
coke__ someone make sure it doesn't bork anyone else. I got a conversion from uname - r to OSX 10.4 inn there, so I'm ONLY checking tiger/gcc 4.0
wilx I thought it was CocaCola++ :D 20:09
Omg.
coke__ wilx: I just got a bit a few minutes ago.
yup. compiled with 3.3 (and MUCH faster with unoptimzied. =-) 20:11
wilx I just shouldn't jump into conversation before I gather some context...
coke__ I dislike that the test harness isn't showing me the test # as it runs.
luqui coke__, compiled with what 3.3? 20:12
coke__ :gcc version 3.3 20030304 (Apple Computer, Inc. build 1809)
luqui ahh. you're referring to parrot?
coke__ ... no, pugs.
luqui um
svnbot6 r5070, Stevan++ | more metamodel refactoring, and removing the PIL stuff
coke__ yes?
luqui don't you need ghc to compile pugs? 20:13
and isn't there no dependency whatsoever on gcc?
coke__ not when you can grab the DMG, no.
apparently not, luqui.
autrijus luqui: it turns out not much people compile ghcs themselves :)
you can do w/o gcc if you make unoptimised without C libs
but because we need PCRE
we do depend on GCC
luqui ahh
coke__ ah. so building unoptimized doesn't test gcc? hang on. 20:14
autrijus coke__: eh it does, because of syck and pcre
so that's fine
Limbic_Region: got the bug, it's a whitespace thing 20:20
svnbot6 r5071, Stevan++ | adding in basic container types
autrijus looks at stevan in awe 20:21
coke__ :?
autrijus oh. just the scalar.
had me scared for a bit :) 20:22
nothingmuch hola
autrijus yo nothingmuch
nothingmuch i'm an svk user now ;-)
autrijus nothingmuch: cool!
luqui would really like the proper class resolution stuff
nothingmuch want to join us in our hackathon?
luqui i.e. PIL instead of Perl::Compiler::PIL::PIL
autrijus nothingmuch: where when who what eh?
nothingmuch stevan_ & luqui's room 20:23
autrijus luqui: it's in Eval.Var for package name resolution
clkao giggles
autrijus toPackage
clkao try to make one directory in pugs contains 2000 files
autrijus you can take a look if you want, but I won't get tuit for it this release
clkao svk sucks
nothingmuch i can try
clkao but hopefully i can fix that tonight 20:24
autrijus nothingmuch: don't try that
nothingmuch why not?
autrijus if you do don't commit :)
nothingmuch i'm an svk user, i don't need to check it into mainline ;-)
autrijus right! 20:25
nothingmuch++ # totally tuned in to the svk-fu
20:25 nothingmuch is now known as nothingmuch_, nothingmuch_ is now known as nothingmuch_[svk
clkao autrijus: how's yapc 20:25
nothingmuch_[svk damn
clkao autrijus: did you talk about svk
autrijus clkao: very good, I did sneak in three sentences about svk
in my talk
clkao just three!
svnbot6 r5072, nothingmuch++ | directory for pil on perl5 runtime
clkao you need to have svk as watermark of the slides on every page! 20:26
nothingmuch_[svk clkao: no, my laptop crashed, and i realized that i needed distributed stuff
or rather, that's not what made me switch to svk
autrijus clkao: see... if you write part of svk in perl6 and it can compile back to perl5, wouldn't that be cool?
all your SVN/Perl bindings will still work without tying!
(and GC won't be an issue)
clkao autrijus: do not tempt me! 3 svk bugs are discovered today 20:27
autrijus clkao: oh wow.
Limbic_Region autrijus - thanks - will verify at home in a bit (hopefully Pugs builds ;-)
autrijus L~R: in case you read the backlog -- the spaceship test now passes 20:30
autrijus feels rather good now
luqui is there any way to rebless in pugs atm? 20:31
autrijus wonders who will be the helpful gnome to do changelog this time
svnbot6 r5073, autrijus++ | * Fix spaceship parsing bug reported by Limbic_Region.
r5073, autrijus++ | It's actually something more sneaky -- the parens
r5073, autrijus++ | expression is gobbling up the trailing space when
r5073, autrijus++ | followed by a <named> hash subscription syntax, even
r5073, autrijus++ | when it's a valid operator name like <=>.
r5074, autrijus++ | * unTODO the parsing spaceship test.
r5075, nothingmuch++ | adhere to itypeish interface
autrijus luqui: is rebless even allowed?
luqui well, in a way, using runtime 'does' 20:32
autrijus oh. right.
but not $class.bless
luqui probably not
autrijus at least it's not in s12
luqui anyway, I'm thinking that won't do it
I'm trying to move the PIL tree over to a new tree where most of the nodes are exactly the same
but one or two of them are extended a little
without rewriting all the node types... 20:33
autrijus mumbles something about OO not suited for that
(really)
you have to recast the node types
luqui: but, runtime "does" is a 6.2831 thing for me :)
nothingmuch_[svk autrijus: how do i make svk checkin without checking into openfoundry?
luqui well, they'll still do the PIL role
autrijus nothingmuch_[svk: you make a local branch
luqui autrijus, ahh
20:34 nothingmuch_[svk is now known as nothingmuch
autrijus nothingmuch_[svk: svk cp //mirror/pugs //pugs 20:34
gaal hi.
autrijus and then
svk switch //pugs
that's it
hey gaal. you doing okay?
gaal yes: thanks. i was let off the hook again, but because of unfortunate circumstances
geoffb gaal, ? 20:35
gaal my grandfather died tonight.
autrijus !.
geoffb oh man, SORRY to hear that!
autrijus ditto.
gaal thank you very much.
luqui :-(
gaal so i'm not going to jail this time... 20:36
geoffb Well, at least that part is good
But will it be coming up again soon? 20:37
gaal yeah. the joke is that time is on my side:
who knows? maybe there'll be peace in this stupid area by the time i'm drafted. :/
mugwump takes gaal's temperature 20:38
geoffb
.oO( sadly unlikely, that )
Does Israel have a maximum age at which you can be called?
autrijus ?eval rule foo {(a)a+}; "fooaabb" ~~ /<foo>/; $<foo>[0]
evalbot6 Error: Pattern match failure in do expression at src/Pugs/Prim/Match.hs:26:8-19
nothingmuch geoffb: to the army?
autrijus bah. no parrot 20:39
geoffb nothingmuch, yes.
In the US I was off the hook at 25 I think.
gaal yes. it keeps shifting but by the current laws i just have to et deferrals for 13 more years
geoffb Few things felt as good as trashing that "selective service" card
OUCH
gaal (this is reserve duty, i finished my compulsory duty years ago)
geoffb nod 20:40
gaal i've had a long day, folks - the funeral was up north and i just came in - so i'm off to bed. just wanted to say i'm okay and still around 20:41
autrijus gaal: you sleep well. take care!
geoffb ditto
gaal thanks very much, again. have fun people!
putter & gall
luqui: have you looked at Eval.Val? 20:43
svnbot6 r5076, nothingmuch++ | r5078@syeeda: nothingmuch | 2005-06-28 16:37:57 -0400
r5076, nothingmuch++ | rename scalar implementation file
autrijus alright, I'm heading back to my room to crash after this talk
will probably wake up around midnight and check back
geoffb have a good nap! 20:44
obra sleep well
autrijus :)
nothingmuch autrijus: what about keysigning?\\ 20:49
wow, you switch to svk, and new commits give you double the karma 20:50
svnbot6 r5077, nothingmuch++ | r5080@syeeda: nothingmuch | 2005-06-28 16:49:37 -0400
r5077, nothingmuch++ | array container implementation
autrijus nothingmuch: you can do `svk push --verbatim` 20:51
nothingmuch ah =)
luqui putter: yes, and I shortly stopped 20:56
putter ah well. tnx. it sort of looks like it should already be working... perhaps i'll try again later. 21:00
autrijus zzz & 21:01
putter & 21:02
nothingmuch autrijus: ping 21:07
geoffb nothingmuch, he's trying to sleep, I think 21:08
svnbot6 r5078, geoffb++ | Trying valiantly to keep hack.pod in sync with the pace of Pugs development; more lib/ changes in the source map
nothingmuch geoffb: we know it's not for real
luqui we need a Pad node in PIL again
that or we need to associate a pad with a code
actually I like the latter better 21:09
oh, autrijus zzz
integral imho a Pad node in PIL would be rather bad. You're going to have to serialise the data at some point anyway to get it into a pbc 21:12
luqui I'm not sure what those two things have to do with each other 21:15
as in "don't understand" not sure
'splain
integral well a Pad maps variable names to values, so if you've got: my $s = BEGIN { Class.new }; you've got to store the object created at compile-time between compile and runtime 21:20
luqui I don't understand how that has to do with a pad node 21:21
(and we have to store such objects anyway) 21:22
autrijus I trust luqui and integral are in each other's good hands
so I'll really sleep and ignore the window that lights up :)
autrijus waves &
luqui :-) gnight
integral I may be misunderstanding, but a Pad is a map from names to full objects
luqui just like a symbol table
integral In a normal compiler you're not storing values during runtime, you're just storing info such as which register you're using
nothingmuch autrijus: does array_storeVal need to autovivify containers, and autoextend? 21:23
autrijus nothingmuch: autoextend yes, vivify is fetchelem's
integral But pugs is an interpreter and it uses perl5's pad model
nothingmuch hmm
okay
integral so there's just one structure used during parsing, and when evaluating from the syntax tree 21:24
luqui you're saying that a Pad node would require that we store environment information in the PIR tree
I agree
integral yes, and drag in the whole of the runtime system
And since the runtime looks at compile-time data structures, you have a big loop between the two
And this is why AST.Internals takes hours to compile 21:25
luqui hmm
anyway, I've decided against a Pad node, I think
we still need a way for lexicals to find their lexical scope 21:26
integral anyways, the thing that I hate is: sub foobar { my $s; BEGIN { $s = 5 } }
luqui: maybe you do need a "Pad", but not a Pad
luqui I think I understand what you mean 21:27
and I think that's what I meant all along
I wasn't really intending to store any Perl6-level values in the node
integral :-) There's a bit in SICP on this
luqui the weird thing about perl 6 is: 21:28
$x and my $x if $x
^v1 ^v2 ^v2
the latter $x is used before it is created
integral weird is an understatement there
luqui so I'm trying to figure out how to represent that 21:29
integral it's neither let nor letrec :-(
luqui for the p5vm, I need to associate something with every perl6 level closure that stores this info 21:30
(because perl5 closures are more prominent than the perl6 equivalent)
integral ah, Ā§5.5.6 of SICP. chapter 4's metacircular evaluator is like old pugs' Eval.hs, and chapter 5's compiler is like pugs' PIL system
luqui SICP? 21:31
svnbot6 r5079, Stevan++ | Perl6-MetaModel - parameter validation on the class constructors, so that nothingmuchs code will yell at him when he spells it wrong
integral "Structure and Interpretation of Computer Programs", mitpress.mit.edu/sicp/, a text on Scheme programming that covers implementing scheme in scheme ;-)
luqui ahhh 21:32
integral luqui: if you've seen STG, maybe you want to extend closures like that to mark which variables you close over?
luqui STG?
anyway, a plan like that is something like what I had in mind
integral "Spineless Tagless G-machine", the vm that GHC targets 21:33
luqui ahh
luqui is haskell-ignorant for the most part
pdcawley Has any thought been given to how we're going to do things like 'iterate over all the objects in memory'? 21:34
luqui very little 21:35
you were talking about querying the gc
i think that might be the lowest overhead solution
(for the programs that never do it)
pdcawley ISTM that that's going to have to be handled by the garbage collector, which means we're going to have to expose some kind of Kernel/GC/Runtime object
Exactly.
integral o_O Why do you need to do that?
pdcawley It's the sort of use that *should* be slow, but shouldn't be impossible.
luqui the problem is that we might not have that ability in every platform we target
pdcawley integral: Add a role to a class with instances, that role has state, how do you rejig the existing objects? 21:36
luqui and without support from the runtime, it seems like a pretty hard task
pdcawley Hell, add an attribute to an existing class that has instances and you have to do the same thing.
You can't have the class hold links to its instances because then you really confuse the GC. 21:37
luqui is off to the YAPC minicruise
pdcawley Or you have to introduce weak links, which have to be cleaned up.
luqui come back soon pdcawley and we will talk more (if needed)
integral hmm, well dan wanted parrot to have notifications for that
pdcawley (not that that's impossible of course, just expensive all the time)
luqui have fun
integral Can't you implement your own by having a list of watches on each class?
oops, didn't read all of what you said 21:38
pdcawley integral: Exactly, but the notification's only half the battle, you still need to find all the instances in the class, and that means grepping through the live set.
integral you can't upgrade them on demand?
pdcawley Version the objects and fix 'em as you use them?
integral yep.
pdcawley That means a check every time you use an object. 21:39
Even if it has been updated.
integral hmm, not necessarily
svnbot6 r5080, nothingmuch++ | r5085@syeeda: nothingmuch | 2005-06-28 17:37:31 -0400
r5080, nothingmuch++ | array is compilable, and tested.. still broken
stevan_ pdcawley: the current metamodel checks back to the metaclass on attribute access to check the meta-data (meta meta data)
integral if you're accessing via a vtable on the object, you just create a new vtable, and change the old vtable to do upgrades
pdcawley And replace the vtable with the non-updating vtable as you do it. Nice trick. 21:40
stevan_ some on some level it might be able to catch it lazily
integral uses Data::Alias::swap too much in perl5 for lazy object tricks
pdcawley But, that still doesn't help when your programmer explicitly wants to walk all the existing objects in a class without having links that keep objects alive that should be dead.
And there are occasions when such a thing is useful. 21:41
stevan_ pdcawley: yes, that is true
integral like debugging
stevan_ but only insane ex-smalltalk hackers like doing that stuff :P
pdcawley Yeah.
integral like figuring out exactly which Coro::State objects you're leaking today =)
pdcawley As I say, just putting this issue on the table now, because the sooner it's sorted the better.
It doesn't have to be the full Ruby ObjectSpace (although if Ruby's going to target Parrot, you need to expose the GC at the ruby level anyway) straight away, but it does have to support implementing something like it. 21:42
wolverian ObjectSpace is nice.
stevan_ how does Smalltalk do it? 21:43
pdcawley For the strongest value of 'has to' I can muster whilst not being Larry.
Depends on the smalltalk I think.
stevan_ ok
pdcawley Squeak's been undergoing changes in how that stuff works.
stevan_ I am not familiar with ObjectSpace ... looking now
pdcawley But the GC is exposed at the language level. (Not surprisingly really, it's implemented in smalltalk (or possibly a tinytalk, can't remember))
stevan_ interesting (ObjectSpace that is) 21:44
pdcawley ISTR that ObjectSpace is pure ruby, built on top of the Kernel primitives. 21:45
But I could easily be wrong about that.
wolverian ruby-doc says it's in gc.c 21:46
but I don't know how much that really tells.
pdcawley Fairy nuff.
The timely destruction requirement does make some of this a little trickier I think. 21:47
Though it probably mandates that we have a sufficiently clever GC on all platforms as well.
wolverian heh. nice. you do GC.disable in ruby. 21:48
pdcawley And if it's sufficiently clever to do timely destruction, it should be sufficiently clever to expose walking the live set.
integral hmm, does timely destruction mean that an implementation can't just not GC at all?
pdcawley Yup.
integral hmm! 21:49
PerlJam integral: assuming a sufficiently tight coupling between "gc" and "object destruction" :-)
kungfuftr suddenly realizes he lives only 2 miles away from the worlds largest nuclear fusion device
pdcawley hopes he'll be able to write things like 'method DESTROY is lazy {...}' to signify that, whilst this class has a destructor, it doesn't require timely destruction.
integral PerlJam: hmm!
if "timely destruction" just means running destructors at the right time, I suppose a bit of static analysis would fix it then 21:50
pdcawley I doubt it very much.
And for occasions where static analysis could cut the mustard, I argue that methods like File.open('/etc/passwd'): -> $row { ... } are better idioms than the current Perlish way of doing it. 21:51
wolverian ooh, ruby. 21:52
pdcawley wolverian: Well, smalltalk really. 21:53
wolverian right, I'm not familiar with smalltalk.
(I've been getting the impression lately that I should be.)
pdcawley (aCollection asStream) each: [ each | ... ].
If you want to do object things, by ghod you should be.
My familiarity is on the acquaintaince level, but it's a lovely, lovely language. 21:54
PerlJam you know, every time I hear people talking about nifty new features in a language or a nifty new language with cool features, someone invariably brings up smalltalk. Why isn't smalltalk more successful?
pdcawley Because people don't like image based languages?
svnbot6 r5081, Stevan++ | P5-PIL-Run - fixing code, but it is still missing the scalar (which is on nothingmuchs machine, and he must have forgotten to check in)
integral too dynamic? the runtimes suck?
pdcawley Because there's so *much* of it in a smalltalk image.
PerlJam pdcawley: you know smalltalk well then :)
pdcawley Because it's like nothing else you've ever seen -- the stuff that rips^w borrows from it usually does it half-arsedly... 21:55
integral the fact that squeak sits in it's own little window, with it's own little world puts me off using it to munge text files =)
pdcawley That too.
But, when you look at the language, it's potentially a great text munging language.
And people have been brainwashed into thinking the C/Pascal school of brainded static typing is the way to work with polymorphic types. Which is fucking insane. 21:56
integral I suppose the problem with having a simple parrot compiler for it is that you lose the object browser, morphic/MVC, etc which all make for great wizbang demos 21:57
PerlJam The first formal OOP class I ever took used smalltalk and C++ Unfortunately we spent more time talking about C++ (mainly due to its deficiencies)
pdcawley ObjectiveC's much nicer, Brad Cox pinched some good stuff from smalltalk.
integral but some static typing is nice pdcawley, it's a pain only finding out half way through the test suite that you called "emailOrder" on an int rather than a PurchaseOrder
pdcawley And that pops up a debugger window, you fix the problem and carry on running the tests... 21:58
integral hmm, true, I suppose. I just get nervous about compensating with a runtime environment 21:59
PerlJam prejudice! Pure prejudice. :)
pdcawley Smalltalk test first: Write the test. Run it. When it fails, get the debugger to generate the stub method and get to the point where everything's compiling. Then run the test again, fix the behaviour in the debugger...
Keep going.
integral what happens when the mistake you made isn't as simple as just writing an unimplemented method? 22:00
PerlJam integral: you can warp the runtime as needed. 22:01
integral PerlJam: timetravel backwards you mean?
PerlJam effectively. (caveat programmer though)
integral erk :-) 22:02
pdcawley Roll back to the last known good changeset.
Or if you've really screwed the pooch, the last known good image. 22:03
integral err? I mean how do I hotfix. How do I change things, and then avoid having to start over
pdcawley And because the entire editing environment has its source code exposed, you can change it as needed, plus you've got a library of (hopefully) good examples to learn from.
integral: Rewrite stuff. Unless you've futzed with something seriously fundamental you should be able to get out of it. 22:04
integral err, I didn't type something there: "start the test suite over"
PerlJam and this is why smalltalk isn't more successful. 22:05
pdcawley But you'd have to start the test suite over anyway.
integral *blink* 22:06
pdcawley It's just when you do it in perl you use a command line program to do it.
integral "carry on running the tests" -- I thought you could just continue running, like in VB
pdcawley You don't *have* to debug your way to passing tests. You can use the IDE in more impressive ways than that.
coke__ sounds like moo. =-)
integral I'd still like my method name typos to be found before the code is run =) 22:07
pdcawley integral: Well, if your fix is something you're absolutely confident about (accessor method say, that can be quickly hacked in in the debugger), you just let it run.
Um... that's what smalltalk's compile phase is for.
it's not 100% certain, but it's not too bad.
integral not 100%? hmm, it should be able to be assuming that method names are unique (which they're probably not) 22:08
pdcawley debugger comes up, write the method, save/compile it, tell the debugger to retry.
method names are unique? I don't even know the type of my object (unless it's self).
You're still thinking like a C++ person.
someObject aMethod - at compile time there's no *clue* what the type of someObject is. 22:09
integral I'm thinking of Haskell's typeclasses. The method's name allows you to tell exactly which typeclass ("interface") an object is expected to support
pdcawley: yes there is, someObject->can("AMethod")
pdcawley Yeah. But who's going to be stupid enough to do that.
Just call the method.
integral huh? 22:10
stupid enough to do what?
pdcawley If it fails, either implement the method, stick a null behaviour on object, or slap your forehead and go "Ah, that should have been aMethod"
Using 'can' is generally very bad style.
Just call it and let the runtime catch the exception.
integral *sigh* I was using can to express that someObject does have some type information 22:11
pdcawley Only at runtime.
integral The information that someObject is expected to can aMethod
pdcawley Not at compile time, which is when you want the checking.
But calling the method conveys that information too.
integral err?
pdcawley someObject can: 'aMethod' 22:12
someObject method.
integral what?
pdcawley What's the point of the call to can?
integral I'm NOT calling can.
pdcawley Then what *are* you doing with it?
integral Because the programmer calls aMethod on someObject, the compiler knows that someObject is expected to be able to do aMethod. I'm using can as a predicate 22:13
pdcawley But it doesn't know what type someObject is
integral yes, you do, it's a type that has a aMethod
pdcawley No, it might be a type that has a methodNotImplemented method that can dispatch the aMethod message.
integral yeah, then statically the compiler has to assume that that type can do any method until runtime 22:14
pdcawley statically, the smalltalk compiler just assumes that everything can do any method until runtime. 22:15
wolverian heh. that even lined up.
pdcawley Shh... don't tell Limbic_Region!
Limbic_Region pdcawley - you forget - the channel is logged
integral my point is that it would be nice if the compiler did that bit more work 22:16
pdcawley Not really.
If you want that, use Haskell.
integral yes, I do, and that's why. 22:17
I can find that I've made a mistake during a quick recompile rather than a long run of the program
pdcawley but the types of mistake you can find are far more limited than what you can find out from a test. Which can be written in a usefully outcome oriented fashion. 22:18
integral yes, that's why you do both!
pdcawley So you're going to have to write the tests anyway, you've just moved some of them earlier in the process at a time when you can't show as much intent as you do in your tests. 22:19
Point is, you don't *need* to do both.
Limbic_Region autrijus ping 22:20
your patch didn't work (or rather, I am still getting a blow up on Prelude.hs)
pdcawley Once you accept the value of the tests as spec/documentation/reassurance, the need for all this type declaration noise in code becomes much less pressing.
wolverian osteele.com/archives/2004/11/ides the IDE divide. interesting.
integral pdcawley: err, I didn't mention any type of declarations. 22:21
pdcawley Yeah, haskell does inferencing, I know.
integral in fact, the whole point of inferencing is to not need declarations
pdcawley none at all?
Coo.
integral well, that's not *strictly* true
They're totally optional when you're within haskell98. But not necessarily on advanced type usage (undecidability and all that) 22:22
pdcawley So that's 'not to need so many declarations'.
integral nah, it's a "you only need them to document, or if you're hacking PUGS"
pdcawley notes that types for documentation gets nicely handled by Smalltalk idiom. Because of the way methods work: 22:23
* capitalize: aString
Collection>>inject: anObject into: aBlock 22:24
etc..
integral you get meaningful argument names in haskell too =)
pdcawley In smalltalk you get much more places to name your arguments, there's the method name part, and then there's the name of the parameter itself. 22:25
So your method name is usually role suggesting, and your parameter name is type suggesting.
integral that's true, positional only does get rather opaque
pdcawley It's one of the smalltalk things that *hasn't* been pinched by all and sundry, and I don't know why because it's one of the really lovely things. 22:26
integral and type sigs like: (ClassA a, ClassB b, ClassC c) => a -> b -> (a, c) are rather nastier than: Int -> Float -> Complex
pdcawley I"ve only seen smalltalk message selector style pinched by ObjectiveC. 22:27
integral anyway, thanks :-) time to sleep
pdcawley same here. 22:31
Darren_Duncan that IDE divide article looks interesting ... personally, I see myself more as language first person and don't use an IDE 23:11
svnbot6 r5082, Stevan++ | Perl6-MetaModel : container typed attribute ($.foo, @.bar, %.baz) are now initialized with the correct value when we construct the instance (@.bar gets an [], %/baz gets a {}, and $.foo gets undef), the set_value() method also checks that the value being set conforms to that type as well (and dies if not)
mugwump does emacs count as an IDE? :) 23:12
stevan_ Darren_Duncan: what do you use to edit? 23:13
hey mugwump :)
Darren_Duncan I use BBEdit on Mac OS X
stevan_ ah
Darren_Duncan actually, it has a few IDE-like features, but is primarily a text editor
mugwump heya stevan_ ... wish I had time to muck in with what you're working on...
stevan_ Darren_Duncan: TextMate is a nice OSX editor/IDE
mugwump: no problem 23:14
Darren_Duncan eg, it has syntax coloring and balancing and it can invoke other programs to run or syntax check
I've been using BBEdit for years, since the System 7 or so days, and it transitioned to X well
stevan_ mugwump: its starting to get a little cleaner, but the whole Role with State thing is a big issue and one we have not yet resolved
Darren_Duncan: my problem with BBEdit has always been the lack of a good "project" view 23:15
Darren_Duncan: I used ProjectBuilder for the past few years (since X came out really)
Darren_Duncan that hasn't bothered me ... I use folders to organize my projects anyway
mugwump is there a practical difference between a Role and a Class (other than you can call Class.new() ) ?
stevan_ Darren_Duncan: me too, but I like a nice folder view on the side
mugwump: yes, a big diff
a Role is not instantiable (sorry I have no idea how to spell that) 23:16
mugwump (that's what I meant by the .new thing ;))
stevan_ Larry said you can do MyRole.new()
but it is just sugar for
mugwump but that creates an anonymous class?
Darren_Duncan one of the great things about the Mac OS, since System 7 and thru X, that no other OS has that I'm aware of, is hierarchical file system views where you can see and manipulate files and folders in the same window
stevan_ class annon does Role {{
yes
Darren_Duncan so I often have one window open with the folder disclosure triangles turned so you can see folder's contents in the same window as a parent
stevan_ Darren_Duncan: Windows had that view in the file explorer 23:17
Darren_Duncan does it contain files too or just folders?
it was just folders last I looked
stevan_ Darren_Duncan: it is just like Mac
mugwump just press Win+E
stevan_ oh,.... hmm
dont remember
Darren_Duncan I'll take a screenshot and show it to you ...
stevan_ Darren_Duncan: the thing I like about TextMate (and liked about Project Builder) was that it had a "project drawer" which did exactly what your window does 23:18
it is nice having it attached to the window :)
so I dont loose it :)
mugwump: there are other Role issues though
for instance
what do you do with private methods in Roles
are they folded into the class? 23:19
or are they private to the role
if they are folded in to the class
can I have submethods or something similar in Roles?
and do those get folded in or not
these issues are not that bad though 23:20
the really hard one is attributes from roles
because say I have role Foo which has $.bar
then I have role Bar which has $.bar
mugwump isn't this the same as :private vs .public, vs ā‹®protected (to use the C++ terminology) ? 23:21
stevan_ mugwump: yes and no
perl6 does not have protected
but the point is that when you have conflicts
you almost always end up needing to look inside the roles
so they are no longer black boxes 23:22
which might be okay
but it means they are less reusable on their own
it would be hard to give people a set of Roles
on CPAN or something
mugwump ok. I think the same problem applies to private accessors on Classes; ie, they can't be accessed from SubClasses either
stevan_ they would need to look inside them to use them
mugwump s/accessors/(accessors&attributes)/
stevan_ mugwump: yes
but my superclasses attributes do not live in my class space 23:23
roles are flattened (as decreed by Larry)
mugwump why?
stevan_ and they are not really "first class" things
mugwump: because the whole point of them is that they are *not* classes
mugwump that just sounds like a recipe for disaster TBH
stevan_ so you dont need to keep them around 23:24
actually it works quite well with Traits
because they do not have state
there is not only a lot of research into traits
mugwump traits are properties of Class/MetaClass objects, no?
stevan_ but they are being added to many new languages
in Perl6 yes, sorry I mean the traits from the paper
the paper which inspired Roles
mugwump sure
stevan_ if you do not add state, the rules are very simple and straightforward 23:25
but when you introduce state, things get really messy really fast
mugwump ok. Let's quickly discuss what "flattening" means...
to me, flattening simply means composing a dispatch table and resolving conflicts
stevan_ mugwump: yes, on a very basic level that is true 23:26
but that dispatch table becomes the ::Type defintion
but that is only methods
mugwump what I'm wondering about is why anyone cares whether Roles are removed from a layer of the type system that doesn't really matter...
stevan_ you need to also fold in state
Darren_Duncan okay stevan_ and mugwump , look here: darrenduncan.net/hierarchy_view.jpg
that's a snapshot of what my desktop looks like 23:27
stevan_ Darren_Duncan: yes, i do that too (although i prefer the column view (Greg's Browser for the ole school mac hackers :))
Darren_Duncan I've never seen an os besides the Mac OS that lets me do that, and the feature is invaluable to my productivity
column view has its uses, but I find this more useful; it lets me see down several paths simultaneously
stevan_ yes, both have their uses 23:28
Darren_Duncan and I can select and move or whatever items in different folders at once
stevan_ I used Gregs Browser on my old mac for several years though, so i developed a taste for column view
Darren_Duncan this feature started in System 7, back in 1991 or so
stevan_ I used to use a Hyperbolic file browser on windows, not *that* was cool
Darren_Duncan now the question is, does any OS besides the Mac OS come standard with what I displayed? 23:29
stevan_ mugwump: it is possible to look at flattening as an implementation issue
Darren_Duncan this feature is one of the many reasons I prefer the Mac OS
stevan_ however, I think it changes how people will look at Roles
it also complicates the method dispatcher
since you traverse roles breadth first
mugwump sure. but I think it would greatly simplify things to consider Roles just composable classes. 23:30
stevan_ mugwump: yes, but that is not what roles are
mugwump You could "flatten" it by composing it into an anonymous class first
ok, so forgive me for asking, but what are they? :)
stevan_ they are collections of reusable behaviors
another level of decomposition 23:31
mugwump yes, they are a set of method signatures
stevan_ they can also easily double as interfaces (in the java sense) as well
mugwump which is also a set of method signatures
stevan_ mugwump: and state :)
mugwump ok, so if you model state as a collection of accessor methods, then the signatures of those are the same thing 23:32
so you are still dealing with a set of method signatures
stevan_ but how do I handle accessor method clashes?
and what about $.foo = "Bar" accessing?
and what about private state? can roles have it? 23:33
and who is it private too?
if it is folded in, then you need to look inside the role to be sure it can be composed into your class without problems
or you need to look after it blows up because there was a problem
mugwump they don't clash, it's just another key (which role/class private namespaces are accessed from) 23:34
s/namespace/attribute?
stevan_ but then you just have mix-ins
little classes injected into the class hierarchy
which is not totally bad
but not really what we want
but as you can tell, this makes roles into a fairly complex topic 23:35
mugwump I still don't understand what extra you get from this flattening...
stevan_ and one which many people will get wrong
my current thoughts revolve around using a Perl6::Role::Method class to represent methods from roles to retain meta info from the role it came from 23:36
which will make disambiguation easier
mugwump: then what do you do when you dont flatten? 23:37
mugwump to me, the following things are pretty much isomorphic;
1. classes + multiple inheritance
2. classes + interfaces 23:38
3. classes + mixins
they all break the "tree" requirement of a strict Class Inheritance system
so, I was also thinking; 23:39
4. Classes + (roles|multiple inheritance)
stevan_ and they are all known to be difficult and at times dangerous
mugwump can you elaborate on that? 23:40
I mean, the details of them typically suck when implemented
stevan_ multiple inheritance: hard to use correctly, known to have subtle traps which are hard debug/find
IMO the only one who got it right was Eiffel cause they allow you to disambiguate by renaming "features" (Eiffels name for methods) 23:41
interfaces: people get them better, but they are annoying since they are always abstract
mugwump well we don't need to preclude the possibility of that (renaming on role importing)
stevan_ and people have a hard time really understanding what they are good for
interfaces are usually used as API descriptions 23:42
but you can do type checked interface polymorphism really nicely (sorta) in java
mugwump heh. yeah, instead of composable units of behaviour :)
stevan_ which many people just dont get
mixins: I think I can just say 'nuff said 23:43
they suck
and can get really really messy
stevan_ is debating between Thai, Indian, Japanese or Turkish for dinner :)
mugwump sure, but only if the only "key" to the mixin is the method name, not the complete signature, or signatures conflict, or you want to dynamically change classes
stevan_ I love all the food choices in cities 23:44
mugwump ok. Let's summarise where we're at then, and give you a good question to ask Larry when you see him :)
stevan_ mixins are less a problem at composition time 23:45
they lead to very fragile class heirarchies
mugwump: I have been talking all this stuff to Larry for the past week :)
he was at the hackathon
and lately I have also been pulling chromatic into it
and Luke Palmer (luqui) 23:46
mugwump yes, I understand. And I greatly respect all of your experience, of course.
But I still have a question for this collective group. 23:47
stevan_ shoot, i will pass it on
I am always open for debate
and they are all getting kind of sick of it I think :)
mugwump composes his question :) 23:48
stevan_ excellent 23:49
mugwump right, here we go. 23:54
Assumptions:
1. It would greatly simplify the MetaModel if Roles and Classes were basically the same thing. That is, if the only difference between a Class and a Role is that the Class is instantiable, and a Role is not.
2. Effects to the user-level metamodel, such as role "flattening" can be viewed as the same problem as composing a method dispatch table. ie, when you add a role to a class, (or a superclass to a class, for that matter), it checks that there are no conflicting methods by simply building a new instantiable Class (anonymous if it's simply a Role 'does'-ing another Role)
So, the question is;
- What exactly can you achieve by viewing Roles as something that are "flattened" into Classes, rather than simply incomplete Classes?
stevan_ is thinking.... 23:56
mugwump stevan_: do you think I should forward to the ML?
stevan_ lets talk about it first 23:57
revdiablo: #1
(damn autocompletion)
revdiablo: #1
LOL
mugwump hehs
stevan_ ok, regarding #1
why do you think it simplifies it? 23:58
I see it as complicating it
because role traversal is breadth first
not depth first
mugwump wow, ok so we have quite a difference in perspective here ;)
this is good
stevan_ :) 23:59
mugwump "role traversal is breadth first"; what kind of traversal is this? dispatching?
stevan_ let me just say one thing before we get further into this