Parrot 0.6.0 "P&P" released | Please mentor for SoC | parrotcode.org/ | YAPC::NA talks deadline is Mar 31 | tinyurl.com/2pmnlq
Set by moderator on 18 March 2008.
Infinoid doesn't help kid51 with that 00:00
wknight8111 urg. I'm getting the error "Lexical '0' not found" for every single statement. 00:02
Infinoid is it looking for a lexical variable of that name? 00:03
wknight8111 most of the statements don't have any variables at all
"5+4" -> "Lexical '0' not found"
Infinoid that's in raduko?
wknight8111 no, in an octave port that I'm working on 00:04
I am going to find some spare time this week and hack in some better error messages into PCT 00:06
Infinoid is --target=past implemented on the perl6 layer, or on the parrot layer?
'coz it sounds really useful here.
wknight8111 i think i fixed that last error. I'm getting a new error now 00:07
new = good
Infinoid heh :)
it is either progress or congress, depending on whether you've moved on to the next one or introduced an earlier one :)
wknight8111 right. either way i've narrowed it down 00:08
Coke (exit getting caught) see languages/tclsh/src/tclsh.pir line 181 for how to handle that. 00:13
wknight8111 okay, thanks
Coke (Those macros are defined in .../src/macros.pir)
chromatic Infinoid, it's in HLLCompiler. 00:14
00:15 slightlyoff joined 00:36 spez left
cotto_home is INTVAL_SIZE a good way to check if I'm on a 64-bit system (in C code)? 00:40
Infinoid cotto_home: looks good to me, it's defined to 8 on my x86-64 linux box 00:42
cotto_home thanks 00:43
00:59 petdance joined 01:02 particl1 joined 01:04 slightlyoff_ joined 01:34 grim_fandango joined 01:49 petdance joined
Coke Anyone here have a comment as to whether or not languages should be adhere to parrot's "try not to use non-core/bundled" modules credo? Seems like they should be able to set more requirements (and have) than parrot itself. (RT #51916) 01:56
Infinoid my own priority would be to maximize code reuse and minimize developer work, therefore, anything on CPAN is fair game. But I am neither a core developer, nor a languages guy. 01:58
kid51 I think they'll have to go into Bundle::Parrot ... which I actually know little about. 02:05
Limbic_Region Coke - get p5 on parrot working and then it is all fair game :-D
02:06 peepsalot joined
kid51 But who exactly is working on "p5 on parrot"? 02:06
Limbic_Region well, the ponie project is dead as a door nail AFAIK 02:07
but nicholas still seems to make p5 core changes that seem to be in preparation for p5 on parrot
mostly, I was speaking tongue in cheek (note the smiley)
and on that note, I am out - TTFN 02:08
Coke kid51: I have commit privs on Bundle::Parrot : it's just a Bundle. 02:13
Bundle?
purl hmmm... Bundle is just a directory.
Coke bundle is also a special kind of CPAN thingee that just says "install these other modules"
purl okay, Coke.
Coke Someone with some C-fu could probably apply #46597
kid51 Then could you add Parse::Yapp to Bundle::Parrot? 02:14
02:15 particl2 joined
Coke I could. I hesitate to add stuff that parrot itself doesn't require. 02:15
I'm not refusing, just hesitating. =-)
Infinoid looks at #46597
kid51 Well, then do we need a Bundle::Parrot::Languages ? 02:16
Coke Iunno. I suspect I should just give up and add it to B:P; can you respond to the ticket to the list and ask for feedback? See if anyone other than I has any concerns? 02:17
Coke triages a bunch of the new tickets and adds [TAG]s 02:21
Coke wonders if rt.perl.org just fell off the map 02:33
Infinoid works great here 02:34
Infinoid resolves RT#46597
svnbotl r26550 | infinoid++ | trunk: 02:37
: [raduko] reformat slightly to pass t/codingstd/cuddled_else.t
r26551 | infinoid++ | trunk:
: [src] "indexes" argument to Parrot_init_arg_indexes_and_sig_pmc should be NULLOK.
: This patch inspired by RT #46597. bgeron++
02:47 contingencyplan joined
Coke Infinoid: danke. 02:48
svnbotl r26552 | coke++ | trunk: 03:14
: [docs]
: Fix typo & remove "This section intentionally left blank."
diff: parrotvm.org/svn/parrot/revision/?rev=26552
r26553 | coke++ | trunk: 03:41
: [DEPRECATED]
: The pmc_namespace vtable was deprecated, the get_namespace vtable was
: its replacement: Here's a rename which resolves both tickets
: (now merged into RT#48144).
diff: parrotvm.org/svn/parrot/revision/?rev=26553
chromatic Hey Coke, want to profile some PIR? 03:44
Coke Sure.
chromatic Okay, let me mail my patch and instructions to the list. 03:47
03:49 Auzon joined
chromatic There you go. 03:50
04:00 svnbotl joined
Coke chromatic: not seeing it. will probably have to wait until tomorrow anyway. 04:12
Coke has fun ripping things out.
04:15 AndyA joined 04:17 ewilhelm left
svnbotl r26559 | coke++ | trunk: 04:18
: [DEPRECATED]
: remote int variants of getattribute/setattribute opcodes that were already
: throwing exceptions anyway. (RT #48729)
diff: parrotvm.org/svn/parrot/revision/?rev=26559
chromatic It should be in the list archives now. 04:20
04:29 Ozama joined
Ozama alguem ae tem bd 04:30
?
svnbotl r26560 | coke++ | trunk: 04:37
: [DEPRECATED]
: use less qw(.);
diff: parrotvm.org/svn/parrot/revision/?rev=26560
Coke Ozama: I'm sorry, I don't recognize that language. 04:38
Coke guesses portuguese, and we do have a native speaker, but I'm not sure he's about. 04:39
-> 04:41
svnbotl r26561 | coke++ | trunk: 04:44
: [DEPRECATED] [pynie]
: use less qw(.);
diff: parrotvm.org/svn/parrot/revision/?rev=26561
05:31 skv_ joined 07:09 Ademan joined
svnbotl r26562 | chromatic++ | trunk: 07:19
: [PGE] Reordered generated code to bail out of an obviously-failing match before
: creating PMCs to store results for successful results. This is a minor
: optimization.
diff: parrotvm.org/svn/parrot/revision/?rev=26562
07:28 uniejo joined 08:05 iblechbot joined 08:37 slightlyoff joined 08:51 askie joined 09:00 kj joined 09:18 Dave joined 10:04 ruoso joined 10:15 iblechbot joined 10:41 ask joined 10:59 mire joined 11:01 skids joined 11:08 skids joined 11:13 particl1 joined
svnbotl r26563 | kjs++ | trunk: 11:26
: [nqp] update bootstrap/actions.pm a bit.
diff: parrotvm.org/svn/parrot/revision/?rev=26563
11:49 teknomunk joined 11:55 kid51 joined
svnbotl r26564 | kjs++ | trunk: 11:57
: [nqp] add compiler driver for bootstrap version of nqp.pir
: update manifest, which also includes Whatever class for perl6 which wasn't added apparently.
diff: parrotvm.org/svn/parrot/revision/?rev=26564
12:14 IllvilJa joined 12:19 silug joined
svnbotl r26565 | kjs++ | trunk: 12:29
: [nqp] update makefile with a "boot" target, which builds the bootstrap version of nqp.
diff: parrotvm.org/svn/parrot/revision/?rev=26565
r26566 | kjs++ | trunk: 12:35
: [nqp] fix paths for .includes in bootstrap compiler driver.
diff: parrotvm.org/svn/parrot/revision/?rev=26566
12:42 teknomunk joined
svnbotl r26567 | kjs++ | trunk: 12:48
: [nqp][bootstrap] various updates
: add an .include for the builtins.
: update the TODO: 1 thing has been done.
: fix a thing in actions.pm
diff: parrotvm.org/svn/parrot/revision/?rev=26567
12:49 slightlyoff joined 13:02 mire joined
Coke kid51++ 13:11
13:35 teknomunk joined
kj that's weird. blocktype("sub") in NQP's Actions.pir 13:36
i thought only "immediate" and "declaration" were allowed.
or valid, at least
13:39 teknomunk joined
svnbotl r26568 | kjs++ | trunk: 13:44
: [nqp]bootstrap/actions.pm
: fix for-loop
diff: parrotvm.org/svn/parrot/revision/?rev=26568 13:45
kj woohoo!! npq's bootstrapped version is running pretty nicely :-)
jonathan Nice work! 13:47
kj I think I just compiled Squaak's action file
with nqp, implemented in nqp
Coke wonders how this boostrap works. 13:51
kj except that it doesn't work yet.. oh well.
Coke ... nice timing.
kj oh not sure if it's actually a bootstrap...
ehm
the NQP actions file, Actions.pir, now has an actions file written in NQP
so the code generator of the NQP compiler is written in NQP. 13:52
Coke ... and how do you run that? with the non-bootstrapped version that's written in pir?
kj it results in a .pbc file
in the end
so that can be run by parrot
Coke yes, but it can't be turtles all the way down.
kj so instead of running parrot nqp.pbc, I now run parrot bootstrap/nqp.pbc
which uses the same parser 13:53
but a different actions file, namely one written in NQP.
particl1 pats his turtle's shell 13:55
minor nit... i prefer one [] for all tags in a commit message 13:56
eg: [nqp bootstrap] over [nqp][bootstrap]
kj ok
particl1 i'd love to see one nqp actions file as canon, with a script generating the other 13:57
kj yeah. I'm a bit confused now.
particl1 maybe something that uncomments all comments starting with '## ', and comments all lines without /^#/ 13:58
'cept blanks, of course
and a full regression suite to make sure both behave the same
kj you mean some kind of comment flipper?
particl1 yep
so the .pir file can be used to generate the .pm 13:59
kj good idea. I'm not inspecting the generated code of both versions. They're similar, but somehwat different
some :viviself stuff seems to be different
particl1 that's a slippery slope. 14:00
a test suite that runs pir vs pm would be nice
Coke: what time is the call today, edt time? 14:01
Coke particl1: I do NOT prefer a single [foo bar] over [foo][bar]. Makes it easier to find your tags for foo or bar.
I admit I still don't understand how the bootstrap is not running PIR. =-) 14:02
particl1 /\\[.*\\bfoo\\b.*\\]/
that regex works for either style 14:03
kj Coke: I'm confused myself :-S
So, what happens is, the Actions file for the current NQP compiler is reimplemented using NQP
Coke Then the style we use doesn't matter, does it?
particl1 ][ hurts my eyes. ymmv 14:04
kj If you open that file, you'll see the NQP equivalent of the cuurrent implementation. What I did was flip the comments, use the NQP version (fix it here and there) and comment the PIR version
then that NQP file is compiled by the current NQP compiler
Coke so this is like the second stage of the gcc from-scratch compilation process? 14:05
kj and after adding a new main file for the new version which loads this NQP-generated PIR actions file
i don't know gcc compilation process
... the new nqp is generated
Coke you use some other compiler to build gcc from source. (phase 1) you then use that built version of gcc to build gcc from source.
particl1 kj: "then that NQP file is compiled by the current NQP compiler" -- that's where the pir version is used
that's the bootstrap part
kj right
so, you build a c compiler using assembly. then using that version, you compile a c compielr written in C, which you compile with the assembly-version 14:06
particl1 we could use nqp to build parrot after miniparrot. wanna try :)
kj eh, parrot is not written in nqp... what do you mean ? :-) 14:07
particl1 instead of using perl 5
kj ah
nice SoC project ;-)
particl1 can't wait to build nqp later today. i'd do it now, but i need the power for $work 14:09
PerlJam Coke: so ... we'll use parrot to compile the c99 compiler and then use *that* to compile parrot? :) 14:11
particl1 okay... i need to profile some mod_perl code. any favorite modules i should look at?
kj ah I see what's wrong, I think. I just forgot a whole action method. woops. 14:15
particl1 make -j test # on perl-5.10.0 is a huge time saver 14:16
Coke can someone with privs on feather upgrade ack to svn-latest? 14:18
particl1 you could build your own. those with privs include juerd, timtoady, moritz, diakopter... don't know any others 14:21
Andy or put it in your ~/bin :-)
particl1 tempts fate with make -j install 14:28
Coke ... I know I could have my own.
But thanks. =-) 14:29
particl1 hey, i pinged those involved. that's what counts
14:31 rdice joined 14:32 Theory joined
particl1 anybody seen tewk lately? 14:32
Coke seen tewk? 14:33
purl tewk was last seen on #parrot 5 days and 21 hours ago, saying: But I'd be open to other core hacking ideas that need to get done this summer. Particle doesn't seem to be around right now. [Mar 20 10:06:47 2008]
Coke Didn't we have a ticket at one point to eliminate the configure tests from "make test" ? 14:34
purl, 46+755+96 14:36
purl 897
particl1 i'm not sure if we had a ticket. we certainly had sentiment.
tewk ping coke 14:40
purl I can't find coke in the DNS.
particl1 hey there tewk
Coke tewk: 10:32 < particl1> anybody seen tewk lately?
tewk I got your email. I've been busy. I'm going to make some changes to the proposal today. I'll ping you when they are ready. 14:41
particl1 excellent. thanks. how's the family?
tewk Busy, but fun.
Does the jit of nci on x86 work? I saw some minimal code but don't know if it is used, I'm guessing not. 14:42
diakopter Coke: where's a tgz of awk svn-latest
ack I mean :) 14:43
particl1 tewk: i'm not sure. what's the best way to check? bulid jitted parrot and test... what?
tewk How serious are people about using llvm for parrot jit? 14:44
particl1 diakopter: search for App::Ack on cpan
should be 1.78
tewk I'll test the nci jit and see if it works at all, I was just seeing if anyone had any first hand knowledge.
diakopter svn export ack.googlecode.com/svn/trunk/ ack 14:45
particl1 that works too 14:46
diakopter Coke: ping
Coke: I installed it to /usr/local/bin 14:47
Andy no
particl1 wtf?
Andy no no
diakopter no no?
Andy ack-standalone
GET ack.googlecode.com/svn/trunk/ack-standalone > ack
diakopter ok...
Coke /usr/bin/ack -v dies atm. 14:48
Coke waits.
particl1 in my defense, i expected diakopter would build/test/install ack after exporting the repo :) 14:49
14:49 cognominal joined
Andy ah 14:49
diakopter Coke: try now? 14:50
1;1 root@feather:~# ack --version 14:51
ack 1.78_01
Coke ack --version 14:53
-bash: /usr/local/bin/ack: No such file or directory
$ which ack
/usr/bin/ack
diakopter heh
where do you want it? /usr/local/bin or /usr/bin 14:54
Coke this means i can't just type "ack".
I'm not *running* /usr/local/bin/ack; I'm running "ack", and which ack tells me that is /usr/bin/ack. but /usr/bin/ack seems to work.
so, I'm confused. 14:55
diakopter restart the shell? I don't know why it's still looking for the (removed) /usr/bin/local/ack
I mean /usr/local/bin/ack
Coke ah. "hash -r" 14:56
what the (*&#$ is the point of 'which' if the shell is going to lie about it? =-)
diakopter++
diakopter unless you had an alias set up or something 14:57
Andy I'd also like to recommend: ACK_PAGER='less -R -m -N' 15:00
particl1 wuzzat do?
diakopter less? 15:03
purl i heard less was more.
diakopter :)
particl1 ok... man says it allows color output, includes line numbers, and prompts with % through file 15:04
Andy Just try it. 15:05
GO ON MAN JUST TRY IT
particl1 wonders if his win32 port of less supports that
course, it won't support -R
Coke tries it and fails to like it. 15:17
Andy waaaaah 15:19
particl1 is there ack --pager?
Andy yes
of course.
purl Indubitably.
Coke how do you override the pager setting? 15:20
Andy The way that logically makes sense.
The least surprising way. 15:21
--nopager
Coke We've discussed this in the past: your logic and my logic don't seem to mesh. =-)
15:22 peeps[work] joined
Coke Running this through a pager for some searches seems to make it take forever to display output (either with ACK_PAGER or even |cat). meh. 15:22
Andy yeah, I'm thinking it needs to unbuffer output.
I need a test that verfiies that ack --help shows all the commands possible. 15:24
so I can't forget to leave off --pager next time.
Like I did this time.
Coke wonders if it is unsurprisingly logical that ack --v really means ack -v 15:25
particl1 -> #ack 15:27
Andy PLEASE KEEP THE CHANNELS PURE 15:28
Coke please don't shout.
Andy ALSO DON'T SHOUT 15:29
diakopter Infinoid: to answer your question, that became and is still a casualty of priorities and attention. 15:31
Infinoid is your work in progress available somewhere? I might take it and run with it, it's an interesting project :)
particl1 goes offline to look for lunch & 15:33
pmichaud (nqp "bootstrap") I really prefer that we use the term "self-hosting" as opposed to "bootstrap" here 15:36
"bootstrap" implies that we're throwing away the PIR translation... and I'm not sure I'm ready to do that yet
in particular, even though the nqp-version of actions may be semantically equivalent to the pir version, it also may have a lot of overhead that is best avoided until we get some optimizations in place 15:37
otoh, if there's a strong sentiment that PIR is such a horrible evil that we need to be bootstrapping everything to excise it, then we can talk 15:38
Coke_offline I am unaware of such a sentiment. 15:40
->
pmichaud oh, I know it exists
lots of people seem to be in a rush to move things off of PIR asap
PerlJam crazy people. 15:45
purl crazy people are the ones who flew planes into buildings or destructors
cognominal I have the feeling that once enough perl6 will be implemented, self-hosting will be a big win feature wise
PerlJam cognominal: sure ... but we're not there yet :) 15:46
pmichaud cognominal: why?
PerlJam pm: because we can do more with less and it's all perl 6
(IMHO)
pm: btw, welcome back : ) 15:47
cognominal also, it is a good thing that people see "real" code written in Perl 6
PerlJam rubs the vanishing cream off of his nose ... :-)
cognominal pmichaud, parrotwise (versus pct), what is still missing to support perl6? 15:49
pmichaud when we say "self-hosting"... what part/feature of self-hosting is the big win?
does "self-hosting" mean that _all_ of Rakudo is written in Perl 6?
diakopter Infinoid: when I said I was working on it, I meant working on it *in my mind*! 15:50
;)
Infinoid ooo 15:51
Infinoid does an svn checkout of diakopter's mind
pmichaud cognominal: I can't think of any major features off the top of my head that are missing. concurrency/threading are probably bubbling up, but we're a ways from needing that
diakopter I did update the botnix instance on feather to the latest svn
Infinoid right, I'll figure out botnix and see what I can come up with, thanks :)
pmichaud there are still some issues with lexical handling that need to be fleshed out (or worked around) 15:52
cognominal pmichaud, how hard it is to get pct hll namespace aware? 15:54
pmichaud it's going to be a bit of work
need to refactor protoobject handling
for now it's just easier to work in the parrot hll namespace 15:55
cognominal I tried naively to make it stick .HLL "perl6" "" in the beginning of the pir code but I get strange messages
pmichaud right, adding .HLL "perl6" means that the PAST protoobjects can't be located
because they're in the parrot hll namespace while the action methods are running in the perl6 hll namespace 15:56
15:56 Theory joined
pmichaud so, we also need to import those protoobjects into the perl6 namespace 15:56
PCT should probably provide a helper method to do that
cognominal there is an export_to described in the namespace ppd
pmichaud I think that export_to is a bit out of date 15:57
I'm not even sure it's implemented yet
cognominal part of it if I trust the tests
pmichaud I've also commented in the past that I think those deserve a redesign, since that pdd was created before we had the PMCMETHOD capabilities 15:58
now that we have PMCMETHODS, we can make a much saner interface
(sorry, PCCMETHOD. or something like that)
cognominal with Perl6 having its onw namespace, the Hash class and the Hash pmc will not collide anymore?
pmichaud they will still collide
because class namespaces are separate from the hll namespaces
that's another bug that Parrot needs to address
15:59 gryphon joined
pmichaud but we can work around that by introducing a Perl6Hash class 15:59
cognominal it seems there is long and short names, but I don't understand how it works.
jonathan I think that's only because we haven't thrown away the class registry yet.
pmichaud the trick to figuring out how Rakudo (and PCT and NQP) works is to remember that they tend to avoid Parrot classes altogether 16:00
at least for names
jonathan If we can get PMC class lookups all going via namespaces just the same as we have PIR class ones doing, I guess that problem goes away.
pmichaud instead everything happens via their protoobjects
cognominal now, I am not running blind in the walls. I am able to see what are the problems. not yet to fix them.
pmichaud so there's nothing preventing Rakudo from having a 'Hash' protoobject, that is an instance of Perl6Hash but appears as 'Hash' in every other respect 16:01
jonathan Though it means if you want a Parrot PMC, like 'Hash', you'd have to make sure you looked in the parrot namespace for it. Which is messier.
pmichaud in Rakudo? No, we'd have a Parrot::Hash protoobject that gives us an instance of the Parrot PMC 16:02
or otherwise maps correctly to the PMC Hash as opposed to the Perl6 Hash
oops, I misread jonathan's comment. You're correct, jonathan
having all PMC class lookups via namespaces make things like $P0 = new 'Integer' a lot more tricky 16:03
jonathan Right.
pmichaud which is also why the protoobject approach makes a _lot_ of sense :-)
purl okay, pmichaud.
jonathan And we don't have any way, in the key syntax, to distinguish between lookups from HLL root and real root.
pmichaud Right. But that's where doing things like exporting/importing can give us a win 16:04
jonathan Yup.
pmichaud for example, if we have a way to import the PMC classname into a HLL namespace, then we don't have to worry about looking things up directly in the parrot hll namespace
jonathan Right. 16:05
pmichaud and we can say that $P0 = new 'Integer' always refers to 'Integer' in the HLL, and never to Parrot's Integer (unless it's been mapped that way)
jonathan That would make a lot of sense.
pmichaud but protoobjects give us much the same capabilities, at the cost of an extra step
thus
$P0 = get_hll_global 'Integer'; $P0 = $P0.new(); 16:06
jonathan Well, we need protoobjects for Perl 6 stuff anyway.
pmichaud of course, the advantage to the $P0.new() approach is that we can also send initialization information to the object at the same time we create it 16:07
anyway, I need lunch. bbiaw
jonathan Yup, got Spanish lesson here too.
bbl
pmichaud adios
hasta lluegos (or something like that) 16:08
PerlJam one ell 16:09
and no ess
16:30 sjansen joined 16:34 kid51 joined 16:40 particl1 joined
particl1 hi from nypl 16:41
kid51 So what exactly are you up to in Gotham? 16:45
particl1 wife has a conference 16:46
i'm tagging along for a scenery change
kid51 Well, I'd arrange an emergency social meeting of ny.pm for you, but as you know, I'm out of the country.
particl1 too bad i didn't consider organizing an emergency social ny.pm meeting
yep, i see you're in the 51st state 16:47
kid51 You could always email dha. When jmcadams was here he got a meeting on one day's notice.
Benefit of meeting (besides beer): It would mean someone besides me could advocate for Parrot in NYC.
particl1 yeah. my nights are already double-booked, though 16:48
i have two dinners tonight
kid51 You'll have to hit the gym tomorrow, then. 16:49
particl1 good idea 16:52
purl particl1: Good Idea: Whistling while you work. Bad Idea: Whistling while you eat.
particl1 grr can't get the free wifi to work at the library
17:03 ruz joined 17:04 Theory joined
Coke particl1: I would suggest posting a blog entry on parrotblog regarding SOC 17:04
particl1 advertising? 17:07
purl Contempt, rather than celebration, is the proper response to advertising and the system that makes it possible.
17:08 Theory joined
Coke yes, in re: ambs recent email. 17:09
I can then put a pointer to that up on pc.o 17:11
particl1 yeah, i should blog about it. i'll try to get to it in a few hours 17:18
tewk particl1: Made a couple of minor changes to SoC application. 17:19
17:20 spez joined
particl1 tewk: i'll take a look today, thanks! 17:24
17:27 spez left 17:37 darbelo joined
Coke pmichaud: regarding my email, I think this heads to a discussion that we need to have before 1.0: "what should be a opcode/runtime library/method/pmc/..." there's a lot of code scattered that could use a global organizational pass. 18:06
do we need to have "concatenate" vtable entries, e.g. instead of just having that be a method?
particl1 only aggregates get shift/unshift 18:07
and possibly only list-like aggregates
this should be implemented by pmroles
Coke particl1: eventually, sure. now everyone has them.
particl1 "everyone has them" - what? 18:08
Coke every pmc has several unshift_ VTABLE variants.
grep unshift src/vtable.tbl 18:09
sorry, ack. =-)
particl1 ah.
i'd better check the vtable pdd
Coke that's pdd17, right? 18:10
particl1 yep, consolidated into pdd17 18:11
svnbotl r26569 | pmichaud++ | trunk: 18:13
: [past-pm]:
: * Remove deprecated past-pm from the "compilers" section of Parrot docs.
diff: parrotvm.org/svn/parrot/revision/?rev=26569
18:19 kid51 joined
kid51 particle ping 18:25
or particl1 ping
Coke sees he was not fast enough in redirecting that thread back onto RT. 18:27
particl1 pong 18:31
kid51 The problem we're having on feather with the two postconfigure tests -- that's part of a general problem we're having when we try to require Parrot::Revision during testing. At least that's my diagnosis. 18:32
'cause when I try to run perl Configure.pl --test on feather for the very first time, I get the hang at t/configure/018-revision.t. 18:33
particl1 this used to Just Work before you refactored to make it more testable
i'm not blaming, just noticing
kid51 But the code wasn't being tested at all then. So it only Just Worked because it wasn't being tickled at all, except during Configure.pl itself. 18:34
I think the underlying problem is that we've agreed to support 3 different version control clients. 18:36
And that Parrot::Revision is mandated to work one way before configuration and a different way after.
particl1 i don't see that as a problem
kid51 Yes, I know, but it's proven to be a maintenance nightmare. 18:37
particl1 i use three version control clients at $work
Infinoid people are currently using 4 version control clients: svn, svk, git-svn, and git (without git-svn)
I fixed some stuff related to git-without-svn last week... seems someone's put up a public git mirror at repo.or.cz
Coke if the tests are the only thing tickling the code....
particl1 it is indeed difficult to support. however, if someone is able to set up envs to test these, with smokes, then we're getting somewhere 18:38
cognominal I have renounced using svk for parrot weeks ago
I use svn
Coke Honestly, I think saying "svn is what we support, you can roll your own elsewise" is not a terrible position.
in which case most of this support nightmare goes away. 18:39
s/nightmare/slight issue/
kid51 Coke++
Infinoid any reason why we don't do a check for the existence of $HOME/.svk before running svk? that'd sidestep the process-prompting-for-input issue
kid51 ... but I know people would scream if we did that.
Infinoid I wouldn't scream :)
Coke Infinoid: That seems reasonable, so it'll never work. =-)
Coke 's passport shows up. 18:40
Infinoid I use svn... git is really nice for offline work (better than svk, in my opinion), but not worth the hassle of figuring it out
particl1 just because you have svk installed doesn't mean you're using it. 18:41
it's a pita, for sure
Infinoid agreed 110% 18:42
I think I know how to fix up the svk stuff. it won't be perfect, but combined with a "use other SCMs at your own risk" blurb somewhere, I think it'll be allright 18:43
Coke does svk always go into $HOME/.svk ?
Infinoid I can check the svk sources to verify that 18:44
way I see it, there are 4 cases. 1: svk isn't installed. 2: svk is installed but never used, this is the case where svk hangs. 3: svk is installed and used but doesn't know about the current repo. 4: svk is installed, used, and knows our version, grab the version in this case 18:45
I'm hoping "used" is as simple as ".svk exists in the current user's home directory" 18:46
particl1 the two main questions are: "am i in a working copy?" and "what vc tool am i using?"
Infinoid right. those are easy to answer for everything except svk 18:47
kid51 particl1: Where 'working copy' is the opposite of working from, say, a release tarball -- correct?
particl1 isn't there a depotmap somewhere (or whatever it's called)
kid51: working copy is somewhere you can perform vc commands 18:48
so, not tarball or svn export
Infinoid the "DEVELOPING" file doesn't exist in release tarballs, right? how about daily snapshot tarballs?
kid51 Infinoid: Correct on the release tarballs 18:49
kid51 knows nothing about daily snapshot tarballs
particl1 DEVELOPING is missing from releases only
Infinoid checks
DEVELOPING exists in snapshots :(
kid51 That's a PITA: YA variation to be maintained. 18:50
particl1 it's okay to say "i don't know what revision this is" 18:51
and set it to zero.
kid51 I already account for the presence/absence of DEVELOPING in the tests I've written for Parrot::Revision.
particl1 yes. as long as you use that only to determine whether it's a release tarball vs anything else that's fine
Infinoid disambiguating snapshots from svk checkouts basically requires checking ~/.svk
nopaste "kid51" at 216.138.231.37 pasted "Parrot::Revision: excerpt handling SVK" (20 lines) at nopaste.snit.ch/12577 18:54
Coke Um... does the version test check for svn first?
if so, why am I failing that and checking svk?
18:54 chromatic joined
chromatic I think you're all asking the wrong question. 18:54
The right question is "Why do we need to know which VCS someone is using?" 18:55
18:55 barney joined
particl1 some tests, like metadata 18:55
Coke what is the test testing?
particl1 so, if i tcan't determine which vcs, it should just fail
svn:keywords etc 18:56
Coke "why do we even have this lever."
kid51 svn:keywords are checked, I believe by Parrot::Distribution, to determine what should be updated in MANIFEST
18:57 Psyche^ joined
particl1 basically, if we can determine that you're a developer, we can run the development tests 18:57
chromatic if -e 'DEVELOPING'
particl1 NO
Coke "why not"
purl i heard "why not" was never sufficient justification.
particl1 i could be a user that exports HEAD from svn 18:58
Coke developers don't always have a working copy.
particl1 then i get DEVELOPING
Infinoid snapshots have a DEVELOPING, but how many people here use snapshot tarballs for development?
Coke so why are we running developer tests without being told to?
Andy Plus I might not WANT to do developer tests.
Coke why don't we, by default, just run feature tests.
Infinoid another goal is to figure out what revision a build was built from (and we need to know which VCS, to determine which command to run for that). 18:59
chromatic All this is worth the faffing about trying to detect the VCS from all the potentially installed VCSes now and forever is active for the current checkout but which won't cause smokes to fail?
Infinoid I'd say it's worth checking the easily checkable cases, at least 19:00
Coke I'd say it's not, given how much time we've spent trying to get even the easy case right. =-)
particl1 at the moment, parrot is optimized for developers
Coke for very small values of optimized. =-)
Infinoid developers are the common case. :)
particl1 at some point, probably nearer to 0.99, this will change
chromatic Okay, let me ask a different question.
Do the SVN metadata tests tell us anything interesting when they fail?
Coke I don't think running the codingstd tests every day is "optimized for developers". Nor the config tests. nor ... 19:01
kid51 It's certainly not optimized for maintenance developers ;-)
It's optimized for developers in the sense that anyone with a commit bit who wants to add a feature more or less can.
particl1 i'd be very happy not to run the config tests if i'm not modifing config 19:02
kid51 Witness: recent addition of two new config steps without prior discussion.
particl1 ...and not to run the codingstd/distro/etc tests if i'm not creating a distro
IF we have procedures in place that allow us to clean up the mess every month before release
otherwise release is too big a burden
hell, i'm planning to release on tax day, while i'm in hawaii 19:03
(and will have arrived hours beforehand)
chromatic Warnocks himself in the head
particl1 chromatic: they tell us if our coding standard is being enforced 19:04
sometimes, that's important
Coke not on every commit.
chromatic When is it important?
Coke That's a maintenance issue.
particl1 yep, maint. 19:05
Coke so, "for a release" would be an excellent time. Not during the "I'm about to commit something, run make test to make sure I didn't break the build".
chromatic I mean, if it's so important that we make sure that all files being checked into the repository have the same three SVN properties set, we could enforce it at the one place where we know we're using SVN.
... and we know that no human will ever forget. 19:06
Infinoid don't forget the other uses: is having a svn revision number for "./parrot --version" important? if so, when?
nopaste "kid51" at 216.138.231.37 pasted "lib/Parrot/*.pm files mentioning 'svn'" (19 lines) at nopaste.snit.ch/12578
chromatic ... and we can always update a REVISION file.
... without human intervention.
PerlJam those pesky humans ... always getting in the way 19:07
particl1 chromatic: that means two commits for every commit
chromatic Does a server-side pre-commit hook require two commits?
Coke when is phone, btw?
chromatic one hour 19:08
Coke danke.
I figured if you were here, it was soon. :P
particl1 if it's safe to do pre-commit, it's only one commit
i would really like to make the technology work for us
Coke this raises the question, though: is having the revision really necessary?
kid51 The codingstd tests that are currently in 'make test' are those where we already have a high degree of conformity to the standards. Those where we are a long way off (such as the pdd_format.t I added this week) are not in 'make test'.
chromatic That's a good question.
Coke if the only place we really need it is ./parrot --version ... why? why is that necessary. 19:09
chromatic codingstd tests are fine at the moment; it's just the VCS ones that bother me now.
Coke ... one thing at a time, sure. =-)
chromatic make coretest improved my productivity. 19:10
Coke ditto.
particl1 what do we need? 'devtest mainttest distrotest fulltest' 19:11
Coke test and fulltest are sufficient for me.
chromatic I think we have some of the others.
Coke if you want to test something specifically... run the specific test. otherwise you're either making sure you broke no features, or that parrot is ready for a release. 19:12
kid51 particl1: Do you still believe ./parrot --revision must be available?
IIRC, several months ago we, um, discussed this. 19:13
particl1 i believe that if we can determine which revision the parrot you're running was built from, it'll make debugging/maintenance easier
i don't care how.
Coke presumably, in the *wild*, people will not be running an svn-version.
particl1 but it should Just Work.
Coke presumably, if they are developers, they know how to work their VCS and can tell us.
particl1 but they'll be running from some distro that is associated with an svn revision
chromatic ... then distro needs to work with upstream. 19:14
Coke no, they'll be running from some distro that is associated with a release.
chromatic And I've revealed myself as an idealist.
particl1 i'm not a p5p, but i occasionally run blead
i never get it from a release
Coke yes. and when you run bleed, do you typically install it for some user who doesn't know where it came from? 19:15
PerlJam particl1: you get a tarball of bleadperl?
particl1 no, not a tarball
Coke presumably, you know where you got that file from, neh?
PerlJam particl1: Do you run a bleadperl that someone else installed? 19:16
chromatic bleadperl has a file called .patch which contains only the revision number of the patchlevel.
particl1 it's an extract from the repo
no metadata
purl no metadata is, like, recoreded, the "is this a copy/rename" algorithm is run at merge-time
particl1 no possibliity to update
just re-extract
it doesn't matter.
PerlJam particl1: it mattered enough for you to mention it, so it's something worth looking into. 19:17
IMHO
Coke It seems that if we added something to the rsync/tarballs to have the version number they were extracted from, that would address your issue.
and then the *repo* wouldn't need to deal with any of this.
particl1 sure 19:18
Infinoid it would solve a lot of problems
particl1 if "this is parrot, 0.6.0-devel" is sufficient for us to debug, drop revision entirely
Coke s/solve/avoid/ is even better. =-)
particl1 *if the concensus is that
PerlJam does not concense :) 19:19
Coke we're doing monthly releases. if someone says 'I have 0.6.0-devel' and we're on 0.6.1, step one is going to be 'get a new copy'
chromatic +1 to that
Coke "eyes to the future" or whatever chip said. # chip++
seen Robrt? 19:20
purl Robrt was last seen on #p5p 1 day and 3 hours ago, saying: I'll go shower. [Mar 25 09:12:43 2008]
Coke humanity thanks you, Robrt.
chromatic I suppose clueful developers who really want to use something other than SVN can create a hidden file on their own that *one* thing can check. 19:21
Coke which reminds me, any bugs that are reported on anything older than 0.5.0 should probably be closed out of RT with a 'please retest this against a current version and reopen this ticket if necessary'
chromatic ... but I'm not going to tell them that.
particl1 this is why i stopped worrying and learned to love the bomb. 19:25
chromatic Let's talk conclusions then. 19:28
particl1 1. software sucks.
chromatic +1 19:29
purl 1
Coke thought he was the suck-monger.
... that didn't sound quite so bad in my mind.
particl1 :)
Coke conclusion: it would be nice to have a plan to deal with bug reports from odd versions of parrot... but this doesn't necessarily involve tracking the svn revision with each build. 19:30
If can avoid dealing with tracking the parrot revision, we can rip out some code and tests.
kid51 If we no longer need to determine a revision number once we invoke 'make', then lib/Parrot/Revision.pm can be simplified. Can we live with that?
chromatic +1 19:31
purl 1
chromatic purl, you don't get to vote
purl chromatic: what?
Coke purl, be nixon.
purl Coke: huh?
kid51 particl1: Can you live with that?
chromatic YOW
purl I'm shaving!! I'M SHAVING!!
jjuran purl, I don't believe we've been formally introduced. 19:32
purl jjuran: i'm not following you...
Coke purl, purl?
purl rumour has it i am going alone. or almost an anagram of Donaudampfschiffahrtskapitaensmuetzenkordel or a perv or an auto-triage bot or a she or so stupid or a smartass or the sixth beatle. or www.infobot.org or dumb
cotto_work status
purl Since Fri Mar 21 21:28:03 2008, there have been 774 modifications and 550 questions. I have been awake for 4 days, 15 hours, 4 minutes, 47 seconds this session, and currently reference 692194 factoids. Addressing is in optional mode.
Coke AIGHS as allison's blog resets again. 19:33
particl1 kid51: yes.
kid51 Thanks (sigh of relief). 19:34
Then that means that the remaining ugly code in Parrot::Revision is SVK-related -- correct?
Infinoid I don't think we need that ugly code, either 19:35
kid51 ... or that our problems are SVK-related.
particl1 if we don't care about the revision, then we don't care about svk
actually, i'm not sure that follows. hrmm.
Infinoid as I see it, the only thing we do care about is whether to tack on the -devel suffix, and existence of DEVELOPING is sufficient for that
kid51 Well, as I understand it, we *do* care about revision for "developers", ie. when you're working in a working copy. 19:36
particl1 maintenance developers must use svn to clean up metadata
Coke kid51: no we don't.
because thee developer knows what version they are using.
regardless of their VCS.
Tene but *developers* already know what vcs theyr'e using and can get it from there
Infinoid if you're in a working copy, you are responsible for using the VCS tool of your choice
particl1 we're dropping revision info entirely from the distro.
Infinoid parrot doesn't care :)
Coke .. from the build.
ah. yes, distro but not repo, right. 19:37
kid51 Okay, so who's going to be in charge of which aspects of this?
Coke volunteers, as he loves ripping out code.
Infinoid if anything remains to be done by this weekend, I'll have some time for this
Coke I will open a ticket with a patch, allowing for some discussion in case we missed something. (which I hope we did not.) 19:38
kid51 Coke: Can you open an RT which states what needs to be done and subdivides tasks?
Question anticipated and answered.
Tene Coke: can you open a ticket asking yourself to open a ticket asking you to subdivide tasks?
Coke tene: fix lolcode. 19:39
:P 19:40
Tene Coke: fix my laptop. :P
Coke ... what's your geo?
kid51 At this time do we plan to change any of the Parrot::Distribution, etc., code which uses svn properties to determine what should be in MANIFEST? (If answer is No, then our job is more focused. If Yes, someone needs to examine those modules.)
Tene SF atm, Houston next week 19:41
Coke not yet. we were just talking about versions.
... svn properties to determine what should be in manifest? hurm?
kid51 Yes. Currently, you need to do svn add and svn propset to get make_manifest_and_skip.pl to recognize a newly added file. 19:42
Coke no, just an svn add.
SFAIK.
kid51 Well, we can check on that.
Coke Let's burn this bridge first.
barney svn add is enough for gen_manifest_and_skip.pl 19:43
kid51 k
barney But there are useful SVN properties that should be checked IMHO 19:44
chromatic That's a secondary discussion. 19:45
kid51 Yes, and the t/codingstd/*.t tests do that.
chromatic (Mostly because I'm trying to figure out what a failure in the SVN properties tell us about Parrot.)
barney svn:eol-style for example
Coke chromatic: those tests are not feature driven. That's a completely different type of test. altogether. 19:46
particl1 there are some io files in examples/ iirc that need eol-style=LF
Coke </airplane>
particl1 heads to the hotel to get set up for sixperl &
Coke the feature test would fail if those eol-styles are not set properly. This is a secondary test. Much like the config tests.
barney The question is whether a (codingstd,config,distro) test saves more work than it causes 19:48
kid51 If we're not going to be looking at the revision number during or after 'make', then we can probably eliminate tools/build/revision_c.pl -- which in turn would permit revisiting lib/Parrot/Revision/Utils.pm, which in turn would permit looking at lib/Parrot/Revision.pm, which would imply changes in pre- and postconfiguration tests. 19:49
chromatic I agree that those IO tests need specific linefeeds.
kid51 Does that seem reasonable? (Though it would not address the SVK-related problems.)
chromatic kid51, +1 19:50
kid51 Okay, so how about this for a plan: Coke posts RT. Infinoid looks at SVK-related problems. kid51 looks at other Parrot::Revision-related problems, working backwards from revision_c.pl. 19:51
Infinoid thought the plan was to toss all the svk-checking code out the window... 19:52
Coke thought so too.
Infinoid if that's what you're asking me to do, I am quite happy to :)
Coke let me post what I think is the summary of our discussion and we'll go from there.
kid51 okay, but I'll let you (Infinoid and Coke) do the tossing. 19:53
... and take the heat ;-)
Infinoid what heat? no svk == no problem :) 19:54
kid51 Infinoid++
Coke we're not saying you can't use svk to hack on parrot.
we're just avoiding caring. Everybody wins.
Infinoid and if someone is using a svn->mercurial gateway and doesn't understand it, it's their fault! :) 19:57
TimToady phone 20:01
20:03 particl1 joined
Coke ... someone is EATING their phone. 20:07
confound I do that sometimes 20:09
not anymore though, I have a treo
too big
Coke ... you could not hear me? 20:20
chromatic Nope. 20:21
20:22 cosimo_ joined 20:33 ruoso joined
Coke -> offline 20:35
20:44 cosimo_ left
barney frooze Firefox, by running Javascript HQ9+ 20:55
davidfetter oi, ruoso :) 20:57
ruoso davidfetter, hi david... 20:58
I've been thinking about you this days... :P... having to work with MySQL ;) ;)
heh
davidfetter i can help you fix that problem :)
ruoso heh
it seems that the project will be moved to oracle... (the customer only seems to know this two options) 20:59
davidfetter for a very small fraction of oracle's costs for the first year, i can get it to postgres :)
ruoso heh... that's one thing I don't like in working for big companies... it's very hard to bend their rules 21:01
doesn't matter how stupid they are
davidfetter specializes in helping big companies with new things :) 21:02
21:19 slightlyoff joined 21:35 particl1 joined 21:58 buchet joined 22:03 wknight8111 joined 22:23 spez joined 22:48 mire joined 22:59 ewilhelm joined 23:01 Limbic_Region joined
darbelo Coke: what sort of specifics? 23:12
ewilhelm darbelo: have you read parts of svn.perl.org/parrot/trunk/languages/c99/ ? 23:17
darbelo Yes, but it looks like some of the files there are unused. I'm guessing it's part of its recent conversion to PCT. 23:19
chromatic I think that's right.
ewilhelm chromatic: darbelo is here for SoC 23:20
darbelo Right now I'm trying to find out why the parser chokes on "main()" and "main( void )"
chromatic Welcome.
purl Heh, not likely around here you won't be.
darbelo Thanks. 23:21
ewilhelm purl: bad purl
purl Bad ewilhelm!
Coke silly bot. 23:23
purl *giggle*
darbelo it looks like they fail for different reasons. 23:24
Coke So, as you've found, the c99 grammar isn't quite right. Getting it to parse C99 properly is one step. Getting it to compile C99 is, I think, a lofty dream goal that one person probably isn't going to do in one summer.
There was talk about using it to replace our simplistic c-parsing codingstd tests, for example. 23:25
chromatic Parsing -- especially with regard to macros -- is probably doable in a summer.
Coke (e.g. have a set of actions that, when it found a bad construct, emitted a warning)
chromatic Once we have a C99 parse tree, we can perform actions against that.
Coke chromatic: I would agree. I would start with parsing (and tests to back it up.) A stretch goal would be to replace some of the codingstd tests, I think.
chromatic If I had the spare time to make XPath work on ASTs, we could use that. 23:26
Coke ooooh.
chromatic I know.
Coke I'm now imaginging using jquery to manipulate asts. =-)
chromatic I don't know about jquery, but something.
ewilhelm can it be stated in a timeline which has running code before the halfway point?
chromatic We could express error patterns and potential optimization patterns in terms of XPath expressions.
Coke but this is off track for darbelo. 23:27
chromatic In terms of running code, I'm sure we could make milestones of C99 features. 23:28
Tests could correspond to milestones.
ewilhelm nudges darbelo to join in the planning
darbelo I like the tests == milestones idea. 23:29
Coke excellent. I need to go spend time with family: feel free to ping chromatic while he's around, and particle if he shows up, and feel free to email me. 23:30
coke?
purl i heard coke was pondering converting tcl to use it, but have some concerns.
Coke purl, me?
purl hmmm... Coke is pondering converting tcl to use it, but have some concerns.
Coke no, coke is will@coleda.com
purl okay, Coke.
Coke pats purl onna head.
darbelo Idea: make the preprocessor a separate grammar/compiler. 23:31
chromatic I could see dividing C99 support into lists of related features.
ewilhelm recalls en.wikipedia.org/wiki/Sparse 23:33
maybe a good source of tests? 23:34
darbelo More tests for c99 compilers are listed in pcc.ludd.ltu.se/standards_and_regre...n_testing/ 23:36
some of that could be adapted, and maybe categorized by feature. 23:40
Limbic_Region last two days I have had to make realclean before building - is this expected? 23:41
chromatic Coke invalidated the bytecode once.
23:43 cotto_work joined
Limbic_Region hrm, ok 23:44
chromatic That means you have to regenerate all PBC files.
Limbic_Region yes, I know
but that doesn't explain why I had to do it yesterday when I got home from work
and then again today
*shrug* 23:45
chromatic Good question.
23:45 ratmice joined
purl Yeah, it is. I'm stumped. 23:45
Limbic_Region next question - I recently saw something on the list about questioning if parrot built on cygwin out of the box. For a very long time, I built daily on cygwin to ensure it continued to work. Is Cygwin one of the tinder boxes? 23:48
If not, should I be building daily again?
ewilhelm gives easy answer: yes! :-D 23:49
Limbic_Region assumes ewilhelm is answering the first question (tindered) and doesn't go fix his cygwin install 23:50
ratmice is there some example of using nmi with parrot classes?
chromatic nmi?
purl somebody said nmi was non-maskable interupt
chromatic somebody can't spell interrupt; maybe someone from the w3c? 23:51
ewilhelm Limbic_Region: where do the tinder boxes appear?
ratmice sorry nci
jonathan ratmice: What are you looking to do? 23:52
Limbic_Region heh, I just checked my cygwin's parrot - 0.6.0-devel
ewilhelm - I don't know. I do remember it being discussed and people offering boxes 23:53
this should be a fun svn up
there must be a corrupt path somewhere 23:54
ratmice jonathan: well i was pondering hooking into the objc runtime if you look at this info -n 'Type encoding' -f gcc it seems fairly easy to build parrot nci strings at runtime from the various type encodings
chromatic I don't seem to have that info page. 23:55
ratmice hmm may require installation of the objc compiler?
PerlJam Limbic_Region: I just tried to build out-of-the-box on cygwin a little while ago and it failed because it doesn't find libcrypto (apparently) 23:56
ratmice gcc.gnu.org/onlinedocs/gcc/Type-encoding.html
PerlJam (out of the svn box that is)
Limbic_Region PerlJam - well, I figured out what my problem was - PATH conflict
chromatic PerlJam, that shouldn't be the case; maybe the detection of crypto libraries is wrong. 23:57
Limbic_Region PerlJam - last built Parrot on Cygwin back on November 24th
PerlJam - svn up'ing now
ewilhelm - google suggests tinderbox.perl.org/tinderbox/showbu...ree=parrot
shorten Limbic_Region's url is at xrl.us/bia7m
ewilhelm yeah, I get 503 there though 23:59
PerlJam tries a cygwin build again.