Parrot 2.8.0 released | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | smoke GC-related branches and attack GC tickets
Set by moderator on 1 October 2010.
dukeleto hatseflats: just wondering. the ebuild says scarabeus wrote it 00:02
hatseflats dukeleto: the only files in there are .dump files and one vtable.tbl
don't know if that means something
ellefu Quick question: In a .pmc file, how would I specify a method name (like "METHOD PMC* foobar()") that doesn't conform to C syntax? (Say, if it has a dash in it or something.) 00:03
cotto ellefu, did you try something and get an error?
It's possible pmc2c may need to be smartened up to handle whatever you're trying to do. 00:04
dukeleto ellefu: .pmc files get converted to C by pmc2c, like cotto++ said
cotto says a lot of things
dukeleto even believes a few of them
cotto For some reason, running nqp-rx's build and test suite under the profiling runcore is a bit slower than normal. 00:05
ellefu, what's the name you want to use? 00:07
ellefu 'set-car'. :-) Playing around with implementing a proper Lisp in Parrot. 00:10
Interesting. If I try to quote the method name, like one would in PIR ("METHOD void 'set-car'(PMC* value)") actually causes pmc2c to ignore that method declaration entirely. The generated code just skips right over it. 00:11
cotto pmc2c is like that
bacek_at_work cotto, hey. Time to resurrect pct_pmc? :) 00:12
at least we can bring Grammar to trunk to use as validator
cotto bacek_at_work, I thought that there wouldn't be a need for pct_pmc. 00:13
bacek_at_work cotto, no, but we have functional Grammar for PMC in branch. 00:14
cotto It could be useful, but it'd also be really slow compared to the current process. 00:15
ellefu Slow is fine, as long as it works. 00:16
cotto I don't think you realize how slow it'd be. 00:17
bacek_at_work cotto, we just need profiling to tune nqp-rx. Oh wait...
:)
cotto heh
nqp-rx is looking good so far
Next up is Rakudo's build and spectest. That should only take a couple days. 00:18
00:18 theory left
cotto all tests pass 00:19
woo-hoo!
bacek_at_work ship it! 00:20
cotto bacek_at_work, do you have an x64 machine you could test a patch on? 00:29
bacek_at_work cotto, at home.
nopaste "cotto" at 192.168.1.3 pasted "hard-code profiling runcore as the default (do not commit)" (51 lines) at nopaste.snit.ch/24095 00:30
cotto ok. I'd appreciate it if you could apply that and run Parrot and nqp-rx's build and tests.
cotto needs to go afk
00:47 nopaste left 00:54 nopaste joined 01:07 whiteknight left 01:29 ruoso joined 01:44 theory joined 01:58 kid51 joined 02:24 kid51 left 02:25 jsut_ joined 02:30 jsut left 02:35 janus left 02:41 tcurtis joined
plobsing ellefu: I think you might be able to work around your C-invalid identifier issue by listing the method under a C-valid identifier and then moving the method. 03:01
03:13 janus joined 03:14 treed left
dukeleto 'ello 04:23
04:32 sri left
plobsing hiya duke! 04:37
04:40 sri joined
cotto ~~~~ 04:58
bacek_at_work ENOMATCH 05:01
cotto ENOTSMARTENOUGH 05:09
The Rakudo build works with the profiling runcore. 05:10
Happy times.
I suppose the next task is to make it useful. 05:11
bacek_at_work What about World Domination? And pony? 05:13
cotto World Domination is hard. 05:15
Let's go shopping.
plobsing profiling runcore allows us to dominate a more efficient world.
with turbo-ponies 05:16
cotto I'm getting tired of typing "profiling runcore". How does "profcore" sound? 05:17
05:22 jsut joined
ellefu plobsing: Yeah, that's my backup plan. At the moment, toying around with changing pmc2c to distinguish between C identifiers and method names. We'll see. 05:22
bacek_at_work cotto, PCore is shorter :) 05:24
plobsing let's just call it PR 05:25
as in "our PR is broken again" 05:26
cotto "pcore" has potential 05:27
way easier to type
05:27 jsut_ left
cotto anyone know what the parking situation is at the venue for the Portland meeting next Saturday? 05:41
Hmm. The venue isn't far from omsi. 05:45
05:46 tcurtis left
cotto Maybe that'll be a good time to work on resurrecting khairul's project. 05:47
05:57 theory left
dukeleto cotto: the parking situation? it has a parking lot, which will probably have space during the day. sometimes it fills up at night 06:14
cotto: are you planning on coming to the parrot gathering? that would be awesome!
cotto thanks. I hate looking for a spot.
of course!
It's only a few hours away.
dukeleto cotto: sweet! I am even more excited now. We can complain about Subversion IRL 06:15
cotto Is chromatic in?
dukeleto cotto: hopefully. It would be awesome if particle could come too, but I am not sure. 06:18
cotto: some very nice people spread the word to lots of local tech groups, so I am hoping ot get some other peopl in the virtual machine world to show up, like some Rubinius people 06:19
cotto great idea
we can hardly have too much cross-polination
dukeleto cotto: i think virtual machines can learn from each other. There is no reason why Rubinius and Parrot shouldn't be sharing good ideas. 06:20
cotto *pollination
Though I'd imagine that the Rubinius guys focus more on using the jvm optimally than writing their own. 06:21
but they could tell us what's great about the jvm and what's not 06:22
dukeleto cotto: yeah, I don't expect lots of direct colloboration, but the sharing of good high-level ideas 06:24
06:46 ellefu left, ellefu joined 07:34 mikehh left 07:43 M_o_C joined 07:48 luben_work joined 07:55 fperrad joined
dukeleto how do I regenerate tools/dev/mk_language_shell.pl if I patched the mk_language_shell.in file? 08:51
cotto why does that file add $PConfig{exe} to the end of a perl script? 08:55
reconfig?
dukeleto cotto: it is a file that gets fiddled with and then mk_language_shell.pl is generated from it 08:58
running "make" after applying a patch to it didn't generate the .pl
i guess i can run "make clean" then "make", but that seems suboptimal
there used to be a "tools" target, iirc
ellefu What if you delete mk_language_shell.pl, then make? 09:04
Also, I think I found another bug while futzing with pmc2c -- could someone look at line 798 of default.pmc and confirm that there's really supposed to be a 'VTABLE' in that function definition? 09:06
cotto ellefu++ 09:07
I didn't even know we had a VTABLE slot for that. 09:08
ellefu pmc2c is driving me mad. Its response to anything that it doesn't understand is to just silently give up.
cotto Ah. It's a fairly recent addition by bacek.
ellefu, it's not an especially well-designed tool. 09:09
ellefu Nothing that can't be fixed. :-)
cotto nothing that can be fixed easily, though
though if you have a patch...
dukeleto ellefu: i would like some tests for your patch to mk_language_shell
ellefu Well, I've got the "quoting function names" thing almost done.
bacek cotto, it was added more than year ago. "Fairly recent" :) 09:10
dukeleto ellefu: i am thinking we need to make sure that created languages compile and pass their tests
ellefu: otherwise, every time there is a change in parrot, our scripts will break and we won't know
cotto needs to stop thinking about revisions around 40000 as recent. 09:11
dukeleto goes to sleep and hope for lovely patches in the morning
cotto night
dukeleto cotto: yes, do that. And feed the magic git ponies so we can ride them into the setting sun
ellefu dukeleto: So have mk_language_shell.pl do a "parrot setup.pir test" after generating the boilerplate?
cotto ellefu, yes, but using the newly-built parrot 09:12
as opposed to an installed one from 7 months ago that the user's conveniently forgotten about
dukeleto ellefu: yes, there is a test file called t/tools/mk_language_shell.t 09:13
ellefu Will do.
dukeleto ellefu: the same problem probably exists in create_language.pl, please fix that as well :) They will be merged in the future, but we are maintaining both for now 09:14
ellefu: they use different configure systems (Configure.pl vs setup.pir)
dukeleto actually goes to sleep
cotto too 09:15
ellefu Nope, create_language.pl doesn't appear to generate .pmc files.
cotto It probably needs some convincing. It should have the option there somewhere. 09:16
'night humans and bots
ellefu Night!
bacek: Any reason not to change "warn "FATAL ERROR: Duplicated VTABLE function: " . $method->name" to a die()? 09:20
bacek ellefu, "deprecation policy" 09:27
ellefu Ouch.
bacek check trac. I think it should be deprecated already. Otherwise - create deprecation ticket and we'll fix it after next release in 2 weeks time. 09:28
sorear good timing, btw 09:29
ellefu Trac says that the warning is eligible for removal after Oct 19. 09:31
bacek ellefu, yes. After next supported release (2.9) 09:43
09:53 M_o_C left 10:04 contingencyplan left 10:35 M_o_C joined
dalek rrot: r49476 | bacek++ | branches/generational_gc (2 files):
Add write barriers to CallContext mutable accessors
11:02
rrot: r49477 | bacek++ | branches/generational_gc/src/gc (4 files):
Rename GC.mark_pobj_header into .mark_str_header to reflect semantics.
rrot: r49478 | bacek++ | branches/generational_gc/src/gc/gc_ms2.c:
Shuffle functions around. Everything is probably broken. Let's start from scratch for mark_and_sweep function
rrot: r49479 | bacek++ | branches/generational_gc/src/gc/gc_ms2.c:
Rewrite generational MS algorithm. Does compile. Doesn't work
rrot: r49480 | bacek++ | branches/generational_gc/src/gc/gc_ms2.c:
Fix typos.
11:18
11:23 ruoso left 11:33 mikehh joined 11:46 whiteknight joined 11:47 whiteknight left
dalek rrot: r49481 | bacek++ | branches/generational_gc/src/gc/gc_ms2.c:
Don't kill "constant" objects...
11:49
rrot: r49482 | bacek++ | branches/generational_gc/src/gc/gc_ms2.c:
Fix cleanup flags
mikehh bacek: you got missing docs and asserts 11:58
bacek: you want me to try and sort it out? 11:59
bacek: and c++ comments in generational_gc/src/pmc/default.pmc 12:01
12:27 tadzik joined 12:37 allison joined 12:41 bluescreen joined 12:47 ruoso joined 13:03 tcurtis joined, tcurtis left 13:19 jan left 13:20 Patterner left 13:22 M_o_C left 13:30 Psyche^ joined, Psyche^ is now known as Patterner 13:31 whiteknight joined 13:45 tadzik left 13:49 PerlJam joined 13:51 theory joined 13:55 theory left 13:59 bacek left 14:01 bacek joined 14:08 tadzik joined 14:40 luben_work left 14:42 contingencyplan joined 14:57 jan joined 14:58 tadzik left 15:09 Andy joined 15:14 he_ joined 15:15 theory joined 15:19 smash joined
smash hello everyone 15:19
whiteknight hello smash 15:22
15:25 bacek left, bacek joined 15:30 theory left 15:33 theory joined 15:50 bacek left 15:55 bacek joined 16:07 ruoso left 16:38 brianwisti joined
brianwisti Came on to ask a question and found the answer before I had a chance. So ... um ... hey. 16:44
whiteknight hey! 16:48
we always like answering questions here, even if we answer our own 16:49
moritz will I switch on the light in the next 10 minutes? I think I will, it's getting dark...
brianwisti Well, I sort of answered my question. Good enough for today. But for later: how can I tell if a PMC can be invoked? I went the lazy way and checked if typeof is 'Sub', but that might not work for advanced cleverness. 16:51
plobsing you are likely to be eaten by a grue
whiteknight brianwisti: Most core types implement the role "invocable"
so $I0 = does $P0, "invocable"
er, invokable
it's not a hard-and-fast rule, but invokable core types should implement that role 16:52
brianwisti That works and soothes my easily ruffled sense of code propriety. Thanks, whiteknight 16:53
whiteknight brianwisti: no problem. What kind of fun project are you working on? 16:54
brianwisti I'm poking at the next Parrot Babystep while my work tests run. 16:55
whiteknight oh, nice
brianwisti Finally getting into namespaces. 16:57
17:09 fperrad left 17:37 allison left 17:39 dip left 17:43 theory left 17:45 M_o_C joined
dukeleto hola 17:59
cotto Hmmm. Testing mk_language_shell-generated languages might be tricky. It appears to assume that it's being run with an installed parrot and doesn't work when running from a build tree. 18:01
dukeleto cotto: did some tests get added for that recently? 18:02
cotto I'm adding one. 18:04
I guess I can TODO it for now.
dukeleto cotto: it shouldn't use the installed parrot 18:06
cotto: but something is better than nothing. TODO it and I can try to tweak it
cotto: you should be able to get the path of the compiled parrot binary from parrot_config 18:07
cotto dukeleto, it can run the built parrot just fine, but the language won't built
You can easily repro by making a dummy language and trying to run setup.pir with a parrot from the build tree. 18:08
dukeleto cotto: i think that is what I have been doing 18:09
cotto: what kind of error are you getting? are you using --with-pmc ?
cotto yes 18:11
18:12 plobsing left
dukeleto cotto: have you tried the update_patch at trac.parrot.org/parrot/ticket/1819 ? 18:12
cotto: i didin't want to apply that patch unless I could show that it actually works with the patch 18:13
cotto: if that patch makes your test work, please apply
dalek rrot: r49483 | cotto++ | trunk/src/pmc/default.pmc:
[pmc] add missing VTABLE to a vtable declaration noticed by ellefu++
18:14
cotto looking now 18:15
also, todo'd tests were just committed
How do you spell >/dev/null on windows? The tests I just added are pretty noisy. 18:18
> NUL seems to be the answer 18:21
18:21 brianwisti left
cotto Is anyone on window to test something? 18:22
dukeleto cotto: you can look at the windows taptinder runs 18:25
cotto This is true. 18:27
dalek rrot: r49484 | cotto++ | trunk/t/tools/mk_language_shell.t:
[t] add a couple TODO'd tests to make sure generated languages build and pass their tests
18:29
dukeleto cotto++ 18:32
18:39 mj41 left
dukeleto cotto: those TODO's pass on my machine (64bit linux). 18:44
18:44 mj41 joined
dalek rrot: r49485 | cotto++ | trunk/t/tools/mk_language_shell.t:
[t] make language build and test tests less noisy
18:45
dukeleto cotto: do they fail on your machine? 18:47
cotto: or were you just being defensive with the TODO?
cotto They fail on my machine. 18:49
Testing create_language may have similar problems. 18:54
it does 18:56
18:58 bluescreen left 18:59 bluescreen joined
cotto Assuming an installed parrot is reasonable for language creation scripts, but it does make testing tricky. 19:02
19:17 particle left 19:18 particle joined 19:42 cogno joined 19:48 ruoso joined 20:01 whiteknight left 20:03 he left 20:10 davidfetter joined 20:15 M_o_C left
dukeleto cotto: can you paste what errors you get with your mk_lang_shell tests? 20:18
20:18 M_o_C joined
cotto sure 20:23
it boils down to setup.pir expecting /usr/local/include/parrot/2.8.0-devel to exist when I use the parrot executable from the build tree. 20:25
nopaste "cotto" at 192.168.1.3 pasted "output of failed built (including docs, pmcs and ops) for mk_language_shell" (45 lines) at nopaste.snit.ch/24109 20:26
20:27 cogno left
dukeleto cotto: that dir doesn't exist on my machine, but the tests pass 20:36
cotto: are you using a --prefix when you compile parrot? 20:37
cotto: or are you using the non-installed version of parrot in the build dir?
cotto: perhaps the tests only pass now when --prefix is used
cotto I'm using a non-installed version 20:46
dukeleto, do we want to require --prefix for those tests to pass? 20:47
davidfetter hai dukeleto 20:49
20:54 cogno joined
dukeleto davidfetter: hola 20:58
davidfetter hoping dukeleto's been expired to blog
dukeleto cotto: those test require an "installed" parrot, but not the system install of parrot. Those tests require that parrot be "installed" somewhere to properly work. 21:01
cotto: so, i think they need to be TODO'ed in the case where "make install" has not yet been run. which is kind of crappy. But better than nothing, I guess.
cotto I guess 21:02
Better would be to make them work both ways, though I don't know how feasible that'd be. 21:03
21:05 cogno left
dukeleto cotto: compiling parrot extensions and HLLs doesn't work with a non-installed parrot, methinks 21:09
cotto: it would be nice if that worked, but I don't know about the feasibility of that. Perhaps somebody on parrot-dev can enlighten 21:10
cotto One problem with the mk_language_shell tests right now is that if they depend on an installed parrot, there's no guarantee that the installed parrot is what the user intended to test. 21:12
dukeleto cotto: those tests should only run on the local build of parrot, which is installed "somewhere", which is why I say that those tests require "make install" 21:14
cotto: but installing into a temp dir in the parrot build tree seems to run those tests seems ....
cotto: a bit much. But perhaps that is the best way. It would require running Configure.pl again with a --prefix 21:15
cotto They need to be tested one way or another. 21:16
If it's hacky but can be run as part of make test, I'd call it ok. 21:18
If it can be made non-hacky, even better.
dukeleto cotto: i think it would be workable if those tests were under a different target than "test", but included in "fulltest" 21:19
cotto: like make devtests or something
cotto Do tt machines run fulltest? 21:20
dukeleto cotto: not sure. but mikehh definitely does :) 21:21
cotto Those tests don't need to be run every time we run make test, as long as they're run regularly. 21:22
dukeleto does "make smoke" run fulltest ?
cotto not sure
21:29 bluescreen left 21:33 ruoso left 22:05 whiteknight joined
cotto hio whiteknight 22:13
sorear hello whiteknight 22:15
mikehh cotto: AFAIK smoke can run coretest and test but not fulltest 22:25
22:28 kid51 joined
mikehh cotto: I don't know how it would handle multiple tests of the same name, maybe it could run testb, testf and testr separately 22:28
sorear whiteknight: any chance I could get another fix of PDD review soon? :) 22:29
cotto Is there any reason not to have smolder run fulltest by default? 22:30
s/smolder/make smolder/
mikehh cotto: I don't know how it would handle the archive if there were multiple tests of the same name 22:34
cotto There's not need for the tests to have the same name. 22:45
dukeleto cotto: when does that even happen? 22:47
we should definitely add a smoke_fulltest target
and then ask parrot-dev whether make smoke should run fulltest by default
cotto I don't see where that idea came from.
mikehh cotto, dukeleto: testb, testf and testr run the coretests so you have 3 instances of say t/op/*.t, t/pmc/*.t etc 22:49
cotto Ah. That's what you're talking about. 22:51
23:07 M_o_C left
dukeleto mikehh: we can add a smoke_fulltest target and see how smolder deals with getting that kind of data 23:08
mikehh let me try and see what happens if i try a make fulltest with --archive 23:09
dukeleto mikehh++ 23:10
mikehh dukeleto: after I have finished this test run 23:12
23:18 whiteknight left
kid51 Wow, even if I can't get purl here, I can get her on #pdx.pm! 23:19
23:25 kid51 is now known as kid51_at_dinner 23:32 davidfetter_ joined
sorear you can get purl here, ask #purl 23:34
23:37 davidfetter left, davidfetter_ is now known as davidfetter
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#505) fulltest) at r49485 - Ubuntu 10.10 RC amd64 (g++-4.5 with --optimize) 23:39
t/tools/mk_language_shell.t - TODO passed: 6-7. in smoke and fulltest (library_tests)
dukeleto mikehh: those TODOs are expected, they don't pass in all configurations, yet, so they are TODOed 23:43
mikehh dukeleto: we need to set the TODO's to be platform specific - what platforms are they failing on 23:45
cotto mikehh, it depends on whether you have an installed parrot 23:48
dukeleto mikehh: which makes it tricky to TODO 23:49
cotto if ($user_has_installed_parrot_that_happens_to_work) {...}
mikehh cotto: I don't have parrot installed here 23:52
I remove the installation after I have tested rakudo, partcl etc. 23:53
I haven't insatalled yet 23:54
dukeleto mikehh: we mean those tests depend on using --prefix and running "make install"
mikehh: extensions and compiling HLLs doesn't work on non-installed parrots
mikehh yeah, but I haven't done that yet (well --prefix=/usr/local), but no make install yet 23:55
23:55 bluescreen joined
dukeleto mikehh: and you get rakudo to work with that? are you using --gen-parrot ? 23:56
mikehh I haven't run rakudo tests yet - I do make install before that and use perl Configure.pl --parrot-config=/usr/local/bin/parrot_config when I do 23:57
but, I have not yet run make install, well sudo make install 23:58
dukeleto mikehh: then I don't quite understand when those tests need to be TODOed. They fail for cotto 23:59