Parrot 0.9.0 "From Outer Space" Released | parrot.org/
Set by moderator on 21 January 2009.
00:08 kjs_ joined 00:09 AndyA joined
Whiteknight P[problems in libparrot] = 1 00:12
00:12 skv joined 00:37 dmajnem2 joined
dmajnem2 how does parrot use computed gotos and what does parrot do when it is compiled on compilers that do not support them? 00:37
chromatic The default runcore uses indirect threading.
You have to use a command-line switch to use an alternate runcore, such as computed goto. 00:38
Whiteknight dmajnem2: It uses computed gotos only for one of it's execution cores.
For compilers that don't support it, that core isn't available and you have to use one of the other choices
dmajnem2 I'm sorry, can you please explain what you mean by "execution core" ? 00:39
also, is parrot using a Boehm-Demers-Weiser GC or its own built from scratch? 00:41
Whiteknight the execution core is the opcode dispatcher. It takes a stream of instructions in, and for each instruction the core dispatches to the proper routine
NotFound dmajnem2: the engine that makes the virtual machine run
dmajnem2 thanks, I thnk I understand what you are saying then.
Whiteknight Parrot is using it's own custom GC right now, but it should be possible to plug the Boehm collector into it if somebody wanted to try
dmajnem2 I had just never heard been called that. 00:42
Whiteknight: coolness, I hope I will get a chance to take a significant look at it.
Whiteknight dmajnem2, you interested in hacking on Parrot? 00:43
dmajnem2 so if I understand you guys correctly, it will use computed gotos if it can, else it will go use indirect threading?
Whiteknight yes, basically
dmajnem2 Whiteknight: yep, I am interested in virtual machines and am trying to build my own. But parrot seems much more evolved than what I am trying to do. 00:44
NotFound If I remember well, the default runcore for each platform can be tuned via hints
Supposed that you chose one that can be compiled on that platform ;) 00:45
dmajnem2 where can I find a list of the different ways parrot can thread code? 00:47
00:47 tetragon joined
NotFound dmajnem2: docs/runnig.pod in the parrot tree 01:02
dmajnem2 sorry for my questions but what is the status of parrot on less mainstream compilers?
NotFound: thanks
Coke dmajnem2: define "less mainstream" ?
dmajnem2 Coke: icc
Coke we used to compile on icc; without a champion to keep us honest, we have probably backsld.
if you'd care to try, we can certainly work on any issues you find. 01:03
dmajnem2 Coke: cool, I will give that a shot
Coke: would you know why "perl Configure.pl" does not honor the CC and CXX variables? 01:11
Coke It should. 01:12
did you export them?
dmajnem2 let me double check
01:12 skv joined
dmajnem2 yes, I did. 01:12
01:13 Whiteknight joined
dmajnem2 is parrot not supposed to emit warnings during compilation? 01:20
also, it seems to have compiled just fine on icc 10 01:21
Coke that's the goal. a work in progress.
dmajnem2 Coke: what should I do with the warnings? Fix them myself? report them as a bug somewhere?
Coke check to see if they've already been reported, patch to fix them is good.
old bug system is rt.perl.org/rt3; current bug system is trac.parrot.org 01:22
dmajnem2 great, thanks
what does it mean when a test "UNEXPECTEDLY SUCCEEDED" ? 01:28
NotFound dmajnem2: usually that it was marked as TODO 01:30
dmajnem2 should the TODO be removed? is it a bug if it actually passed? 01:31
Coke in general, it means the TODO marker should be removed.
in some cases, it might make more sense to avoid the TODO just for your architecture. 01:32
01:32 skv joined
dmajnem2 oh dear, a failure. Is trunk never supposed to fail? 01:32
Coke we try, but it's not a guarantee. 01:33
(especially if you're using icc. =-)
NotFound Or maybe the test must be fixed because is flawed. That happened today.
Coke s/icc/something other than our core set of supported platforms and build chains/
Coke tries to figure out tcl's bizarre list quoting rules. :| 01:35
dmajnem2 So I failed two tests in two files, I suppose I should investigate
Coke [list "{ab}\\\\"] generates \\{ab\\}\\\\ 01:36
[list "{ab}x"] generates {{ab}x}
NotFound dmajnem2: what was the failure? 01:38
dmajnem2 NotFound: it was in t/pmc/sub, "Failed test ':outer with identical sub names'"
NotFound: the other was in t/op/pushaction, "Failed test 'pushaction as closure'" 01:39
01:42 Andy joined
NotFound dmajnem2: execute this: ./parrot t/op/pushaction_6.pir 01:43
dmajnem2 NotFound: where do you want me to display the results? I get three lines of output. 01:44
NotFound Copy here
dmajnem2 main
at popmark, flag = 0
a = 42
Coke dmajnem2: also, see nopaste.snit.ch for anything larger than a few lines.
Coke YAYs as he reclaims another partcl spec test. (64 individual passing tests.) 01:45
NotFound Strange, that is the expected result
dmajnem2 Coke: cool, thanks.
Coke NotFound: perhaps it printed out the right message but segfaulted or something 01:46
NotFound dmajnem2: try: prove -v t/op/pushaction.t 01:47
dmajnem2 NotFound: not ok 7 - pushaction: error while handling error # TODO runloop shenanigans
NotFound dmajnem2: the 6 is ok? 01:49
dmajnem2 NotFound: strangely, yes
NotFound dmajnem2: don't worry too much, the test systme sometimes fails, don't know why 01:50
Try the other: prove -v t/pmc/sub.t 01:51
dmajnem2 NotFound: two failed 01:53
not ok 44 - warn on in main # TODO RT #46819 core undef doesn't warn here. Should it?
not ok 46 - warn on in sub, turn off in f2 # TODO RT #46819 core undef doesn't warn here. Should it?
NotFound dmajnem2: yeah, those two are expected to fail 01:54
dmajnem2 nothing other than that
NotFound Then all is good
dmajnem2 what of the failures I encountered before?
NotFound That happens sometimes, maybe there is hidden bug inside our make system, or in prove, or whatever 01:57
dmajnem2 what do .ops files mean? I am looking at src/ops/core.ops, I am trying to get to the bottom of a "statement is unreachable" warning. 02:05
Coke .ops files contain definitions of opcodes. 02:06
those files are psuedo-C; make converts them into a few different .c files in the same dir.
02:12 Ademan joined
dmajnem2 where can I find the definition of set_integer_native? 02:15
particle do you use vim?
dmajnem2 yep
particle if so, install exuberant ctags and run make tags-vi
then you can do vim -t some_tag
function name, typedef, etc 02:16
02:19 Eevee joined
dmajnem2 I cannot seem to find the definition, I might be doing something wrong (or I might just plain not be able to understand what is happening) 02:20
Coke set_integer_native is a vtable entry. 02:21
where are you seeing it that you're trying to figure it out?
dmajnem2 Coke: the static analysis mechanism in icc says that a variable that is being passed into it is not defined. I wanted to know if this was OK. 02:22
Coke set_integer_native isn't a function by itself.
where are you seeing the error?
dmajnem2 the code in question is "VTABLE_set_integer_native(interp, user_array, 2);"
Coke ... so you want to look for the definition of VTABLE_set_integer_native 02:23
but I can tell you that it depends on the type of user_array.
user_array has a list of vtables. one of them corresponds to the slot set_integer_native
dmajnem2 it was at src/list.c at line 1417
Coke dmajnem2: when a PMC (src/pmc/foo.pmc) is compiled, the function pointer for that vtable is set based on whether or not it's being overridden in that PMC definition, inherited from a parent PMC... 02:25
for example, see line 175 of src/pmc/string.pmc 02:26
(and what that translated to in src/pmc/string.c)
the VTABLE* macros do the dispatch to the given PMCs entry for that function pointer slot.
dmajnem2 Coke: ah, thanks. I understand what is going on with this now. 02:29
pretty cool
hmm 02:51
according to what I understand, pmc can't be unset or else there will be major problems because VTABLE_set_* dereferences it.
no?
02:52 skv joined
Coke yup 02:52
dmajnem2 then I think I found something
Coke there's a null PMC, a singleton called PMCNULL that has a value specifically to avoid that sort of ugliness. 02:53
dmajnem2 line 1417 of list.c uses user_array as the pmc
Coke so if you try to use it, we generate a nice, catchable exception instead.
dmajnem2 it does not seem to be set
thats nice
Coke dmajnem2: yah, looks like it's declared and never initialized. 02:54
dmajnem2 wouldn't that function crash? 02:55
Coke yes, which makes me think it's not run.
dmajnem2 also, why don't you guys always set things to PMCNULL when you declare them? 02:56
Coke that's not a terrible idea, but I'm not a C programmer. =-)
I'd open a ticket on the null issue there. 02:57
(trac.parrot.org)
Coke kicks off a tcl spec test run and heads to bed. 03:03
kid51 must sleep 03:05
purl $kid51->sleep(8 * 3600);
dmajnem2 How do I make a ticket for parrot on Trac? It claims I am not privileged enough. 03:07
Coke did you create an account? 03:10
You might need to set an email and then verify it.
(if just logging in didn't do it)
dmajnem2 Coke: I created a new account 03:11
I will check my email
ah, I have to verify my email 03:12
Coke: I can create tickets now, thanks :)
Coke sehr gut. 03:14
kid51 dmajnem2 Beware of a bug in the Trac system. Other than what you have already done in Trac, don't Edit Preferences at all. It will freeze your account if you do. 03:18
Cf.: rt.perl.org/rt3/Ticket/Display.html?id=61870 03:19
dmajnem2 kid51: thanks, good to know
dalek r36012 | allison++ | trunk/languages (13 files): 03:21
: [languages] Adding a PGE-based POD parser.
review: www.parrotvm.org/svn/parrot/revision?rev=36012
r36013 | allison++ | trunk: 03:23
: [cage] Adding Pod parser to the manifest.
review: www.parrotvm.org/svn/parrot/revision?rev=36013
dmajnem2 if I want a very indepth overview of parrot, where should I go first? 03:26
dalek r36014 | allison++ | trunk/languages (2 files): 03:35
: [cage] Setting svn:ignore properties for Pod parser.
review: www.parrotvm.org/svn/parrot/revision?rev=36014
r36015 | allison++ | trunk: 03:39
: [cage] Adding ignored Pod parser files to manifest skips.
review: www.parrotvm.org/svn/parrot/revision?rev=36015
04:16 rhr joined
particle dmajnem2: try docs/pdds 04:32
04:32 skv joined
particle bedward & 04:32
04:36 skv joined
dmajnem2 NotFound: are you still around? 04:39
if so, I have been able to consistantly reproduce those two test failures from earlier using a different runcore.
dalek r36016 | allison++ | trunk/languages/pod: 05:11
: [pod] Remove included file that isn't generated.
review: www.parrotvm.org/svn/parrot/revision?rev=36016
r36017 | allison++ | trunk/languages/pod (2 files): 05:12
: [pod] Add literal paragraphs, some cleanup on whitespace handling.
review: www.parrotvm.org/svn/parrot/revision?rev=36017
05:14 particle joined 05:26 masak joined 05:31 Theory joined 06:02 skv joined
moderator Parrot 0.9.0 "From Outer Space" Released | parrot.org/ | migration to svn.parrot.org begins at 19:00 UTC on Thurs 06:09
06:11 ask_ joined 06:22 allison joined 06:30 Khisanth joined 06:51 dmajnem2 joined
dmajnem2 clear 06:52
dalek r36018 | chromatic++ | trunk/src (2 files): 06:53
: [src] Removed unused variables from list_new_init(), as well as documentation
: which incorrectly referred to this function. There's more to cut here, but
: this satisfies TT #226, reported by dmajnemer.
review: www.parrotvm.org/svn/parrot/revision?rev=36018
dmajnem2 oops, wrong screen. I apologize.
for what reason would the config decide that I am not jit capable? 06:58
chromatic Are you using a non-x86 and non-32 bit platform?
dmajnem2 chromatic: I am on x86-64 06:59
I just switched boxes
chromatic I don't know how the 64-bit JIT works.
dmajnem2 chromatic: I suppose the JITs for x86 would be quite different due to all sorts of architecture changes 07:00
chromatic If we're lucky... it'd be nice to take advantage of all of the registers on a 64-bit chip. 07:01
dmajnem2 other nice things like being able to take advantage of additional instructions would be pretty sweet. You can assume at least SSE2 IIRC 07:03
does parrot vectorize loops on its different JITs yet?
chromatic I'm not sure. 07:05
dmajnem2 Is it just me or is trac.parrot.org slow as heck? 07:13
chromatic It can be slow.
dmajnem2 oh dear, it looks like trac just ate it.. "OperationalError: database is locked"
it looks like it runs on sqlite, that cannot be too quick
hmm, that is not good. parrot just segfaulted during make when I asked it to build for 32 bit on x64 :/ 07:36
07:54 Tene_ joined 08:02 iblechbot joined
dalek r36019 | allison++ | trunk (4 files): 08:06
: [pod] Adding a set of PCT-based Pod node classes, to build a document tree from
: the raw Pod parse.
review: www.parrotvm.org/svn/parrot/revision?rev=36019
dmajnem2 why would I get "Error: PARROT_JIT_FLAG is set, but interpreter is not JIT_CAPABLE!" ? 08:16
08:25 Rahly2 joined 09:02 barney joined 09:07 Zaba joined 10:02 tomyan joined 10:12 kj joined 10:13 anio joined
dalek r36020 | bernhard++ | trunk/languages/pod (8 files): 10:32
: [codingstd] set svn properties
review: www.parrotvm.org/svn/parrot/revision?rev=36020
10:36 braceta joined 10:38 alvar joined 11:13 elmex joined 11:30 AndyA joined 12:14 Gerd joined 12:17 Gerd left 12:36 tetragon joined
dalek r36021 | fperrad++ | trunk: 12:41
: Ignore language checkouts 'lazy-k' and 'unlambda'
review: www.parrotvm.org/svn/parrot/revision?rev=36021
12:43 tetragon_ joined
dalek r36022 | bernhard++ | trunk/languages/pipp/t/php: 13:03
: [Pipp] Add TODO test for 'print'
review: www.parrotvm.org/svn/parrot/revision?rev=36022
r36023 | bernhard++ | trunk/languages/pipp (2 files):
: [Pipp] echo doesn't return a value
review: www.parrotvm.org/svn/parrot/revision?rev=36023
r36024 | bernhard++ | trunk/languages/pipp (4 files): 13:04
: [Pipp] Add support for 'print'
review: www.parrotvm.org/svn/parrot/revision?rev=36024
r36025 | bernhard++ | trunk/languages/pipp/t/php:
: [Pipp] saner test description
review: www.parrotvm.org/svn/parrot/revision?rev=36025
r36026 | bernhard++ | trunk/languages/pipp/t/php:
: [Pipp] simplify hello.1
review: www.parrotvm.org/svn/parrot/revision?rev=36026
r36027 | bernhard++ | trunk/languages/pipp/src/common:
: [Pipp] Fiddle with 'dirname'
review: www.parrotvm.org/svn/parrot/revision?rev=36027
barney A usable PIR lib for filepath manipulation would be nice. 13:07
13:39 bkuhn joined
dalek r36028 | cotto++ | trunk/lib/Parrot/Pmc2c: 13:57
: [pmc2c] allow UINTVAL ATTRs
review: www.parrotvm.org/svn/parrot/revision?rev=36028
13:59 tetragon joined 14:00 gryphon joined 14:03 gryphon joined 14:05 gryphon joined
dalek bernhard.schmalhofer@gmx.de | Pipp: 14:06
link: www.perlfoundation.org/parrot/index.cgi?pipp
Coke cotto: wouldn't U?INTVAL suffice?
14:07 gryphon joined
dalek bernhard.schmalhofer@gmx.de | Pipp: 14:07
link: www.perlfoundation.org/parrot/index.cgi?pipp
cotto Coke, yes. I guess I didn't have my brain in regex mode at the time. 14:08
dalek r36029 | cotto++ | trunk/lib/Parrot/Pmc2c: 14:10
: [pmc2c] simplify the previous commit (Coke++ for pointing out the obvious)
review: www.parrotvm.org/svn/parrot/revision?rev=36029
14:11 bacek joined
dalek r36030 | bernhard++ | trunk/languages/pipp (2 files): 14:12
: [Pipp] add 'chop' to strings extension
review: www.parrotvm.org/svn/parrot/revision?rev=36030
Coke cotto: failing 8 more math spec tests on this run, presumably due to the FV issue. 14:14
cotto Coke, which file has the failing tests? 14:22
(all this trouble, and Float was one of the easy PMCs)
the Sub family scares me 14:23
dalek r36031 | julianalbo++ | trunk/examples/pir:
: [pirric] add pipp to the interlang.bas example
review: www.parrotvm.org/svn/parrot/revision?rev=36031
NotFound Someone opposed to add the tcl/tk library from TT #86 ? 14:28
trac.parrot.org/parrot/ticket/86
Coke cotto: it's a spectest: t_tcl/mathop.test 14:34
but there are other failures too. It's just failing 8 more now than before. 14:35
If you fix the failure in t/cmd_expr*.t , that'll probably cover it.
2879-2693
purl 186
Coke yay, 186 more tests in 2 days.
moritz wow 14:39
moritz just sped up a program of his by a factor of 3 to 4, just by RTFM and playing with the library a bit (not parrot related) 14:42
parallel parrot build fails for me 14:48
/usr/bin/perl tools/build/ops2c.pl C --core
Can't exec parrot at t/op/annotate.t line 1.
dalek r36032 | julianalbo++ | trunk (6 files): 14:56
: [library] add tcl/tk library, TT #86 vkon++
review: www.parrotvm.org/svn/parrot/revision?rev=36032
15:06 PacoLinux joined 15:11 barney joined
Coke moritz: how did you built parrot? any options to configure? 15:22
moritz make realclean; perl Configure.pl --cc='ccache gcc' && make -j 2 test 15:23
15:25 rg joined
nopaste "NotFound" at 213.96.228.50 pasted "A trick for autoexecutable .pir files" (17 lines) at nopaste.snit.ch/15420 15:25
Coke moritz: that rule in the makefile corresponds to "make src/ops/core_ops.c" - if I run that after a config/clean, it builds. 15:27
(/usr/bin/perl tools/build/ops2c.pl C --core)
is that the line that failed?
moritz Coke: I'll re-check 15:29
Coke toyed with the idea at one point of generating a list of all the make targets, then building them one a time and recleaning to verify deps. 15:30
Coke thinks writing a 'make depend' for parrot would probably be a better use of time. 15:31
Coke hurls partcl.blogspot.com/2009/01/partcl-...-2009.html
dalek r36033 | julianalbo++ | trunk/languages/pipp/src/common: 15:34
: [codingstd] trailing spaces
review: www.parrotvm.org/svn/parrot/revision?rev=36033
moritz Coke: the problem seems to be that t/op/annotate.t tries to run ./parrot before it's built
Coke oh, is that the new test that was added by jonathan? 15:35
(the one that is outside of the existing test harness.)
I'd report that as a bug.
in the meantime, "make -j2 all test" will probably work. 15:36
moritz++ 15:37
moritz Coke++ # progress blogging 15:38
dalek r36034 | julianalbo++ | trunk (2 files): 15:40
: [library] delete a file added by mistake in r36032, TT #86
Coke little more infrequent than rakudo. =-)
dalek review: www.parrotvm.org/svn/parrot/revision?rev=36034
15:41 jq joined
Coke jonathan: happy birthday. 15:41
purl for (('to you', 'dear '.shift)[0,0,1,0]) { print "Happy birthday $_" }
Coke tries to download parrot 0.9.0 and gets a 404. 15:43
cotto The Phantom Parrot From Outer Space 15:44
15:51 rblackwe joined 15:56 frodwith joined 16:13 pjcj joined
dalek r36035 | julianalbo++ | trunk (3 files): 16:15
: [cage] fix a few warnings
review: www.parrotvm.org/svn/parrot/revision?rev=36035
16:15 Eevee joined 16:16 pjcj joined
Coke wonders if the RELEASE tag for 0.9.0 in svn corresponds to 0.9.0 or 0.9.0.1 16:26
particle forgets the languages/perl6 file that was changed to remove the 2nd =cut 16:28
Coke This makes it somewhat annoying in re: updating partcl's stable branch.
ah well. I'll just let it languish at 0.8.1 16:29
particle i believe it's the new one, as the tarball on parrot.org is corrected
Coke particle: there is no tarball on parrot.org =-)
I keep getting a 404.
particle 0.9.0.1 is cpan-only
ftp://ftp.parrot.org/pub/parrot/releases/devel/0.9.0/parrot-0.9.0.tar.gz 16:30
shorten particle's url is at xrl.us/bedb83
Coke Oops! This link appears broken.
DNS error - cannot find server.
Coke tries from elsewehre.
that's better. 16:31
however, the link on www.parrot.org/download to "current dev release" is mising.
rg the tag is for 0.9.0 and does *not* contain the =cut fix. 16:32
particle seems chromatic got lazy. sigh. 16:33
rg i think there were some other commits inbetween so he couldn't really redo the tag. 16:34
Coke rg: that's what branches are for.
heck, subversion even lets you commit to a tag. =-) 16:35
rg yes, for subversion a tag is the same as a branch
particle yep
Coke for partcl, I'll just ignore 0.9.0 and hope that 0.9.1 can be used for stable. 16:36
particle rather than create a 0.9.0.1 tag?
Coke yes. 16:39
per c, the .1 is only there because of cpan. The release itself still thinks it's 0.9.0
but I can see having both. sure. 16:40
(my point was that it was fixable.)
cotto: is there a ticket to track the FV change? 16:41
rg how is the rakudo failure relevant to partcl anyway?
Coke it's not. I only care that there are now multiple, confusingly named parrot releases. 16:42
particle yeah, that's teh sux 16:43
Coke (and I already spend enough time treading water with partcl.) 16:44
particle: the change to 'make test' breaks this: 16:53
'make -j2 test'
moritz discovered it. haven't seen a ticket go by yet.
particle i wonder why 16:54
Coke because deps are wrong. 16:57
the newly added test is listed as a separate dep of 'test', but it doesn't depend on parrot being built.
so -j2 tries to run it before the build is done.
the test then fails and the build is aborted. 16:58
particle ah, easy fix, then 17:05
17:11 hercynium joined 17:19 Theory joined 18:05 chromatic joined 18:07 Zaba joined 18:14 Zaba joined
dalek r36036 | cotto++ | trunk/src/pmc (2 files): 18:25
: [pmc] update *BooleanArray PMCs to use ATTRs
review: www.parrotvm.org/svn/parrot/revision?rev=36036
cotto Coke, I'm going to take a stab at fixing tcl now. I'll file a TT if I don't get anywhere. 18:30
Coke cotto: +1 18:32
purl 1
cotto Is there an easy test for the bug that doesn't involve counting 3's?
Coke prove t/cmd_exprOld.t 18:33
I can shorten that. moment. 18:34
18:34 frodwith joined
Coke $ ./tclsh -e "source lib/test_more.tcl; is [expr 1/3.0] 0.3333333333333333" 18:36
cotto shiny
Coke (there, now you only have to run one slow test)
and i will happily provide a commit bit if you want. 18:37
particle can i get a smolder failure report feed that doesn't include bsd? 18:38
we obviously don't support bsd well enough, there's ~50 failing reports a day from that platform. to me, it's just noise. 18:39
Coke if no one is fixing them, we should TODO them. 18:40
(as much as I dislike having more TODO tests.)
cotto Coke, can tcl easily be made to generate pir?
--target=pir doesn't work 18:41
Coke cotto: I don't use PCT.
so, not really.
cotto k
Coke you can use ../../parrot -D60 tcl.pbc foo.pir and troll through the several hundred EVAL_ files, though.
er, foo.tcl
I would also check out the "get_string" vtable override on float. 18:42
I'm pretty sure that's getting invoked
particle can you add file/line annotations to those eval files?
Coke particle: it's on my list. parrot only started supporting this on the order of days ago.
particle yes, i know that :)
Coke I don't think I can make good use of them unless i can get PGE to tell me what line number something is on, though. 18:43
particle that won't happen for a bit
even file might help, though, since there are so many eval files
cotto looks at amount of code generated and hopes the important stuff is near the end 18:44
Coke the annotations won't show up in the generated PIR of the eval_files, though. 18:45
cotto: there is a LOT of pir compilation going on in tcl. =-)
cotto I'm up to about 20M of generated PIR for that one expression.
chromatic has a theory as to Tcl's slowness. 18:46
Theory tcls chromatic
cotto 30M...
Coke I'm not sure there's much to be done about that, though. 18:49
chromatic One Partcl expression expands to megabytes of PIR? 18:50
Coke if I compile a tcl file to pir, I have to do the initial compilation. say that file includes a 'proc foo {args} { ... }' ; I have to /at runtime/ dispatch that proc to the proc.
that runtime dispatch means another invocation of the tcl -> pir compiler.
I had an idea of using a dynamic grammar with PCT, but ISTR pmichaud thought there would be issues with that approach. 18:51
er, "dispatch that proc to the proc" -> "dispatch the invocation of proc to the PIR subroutine that implements [proc]" 18:52
chromatic Pheme does something similar.
Coke since there's no builtins and the defaults are all overridable...
chromatic Invocation in Pheme first looks in a dynamic scoped dictionary, and then the global dictionary. 18:53
Coke there ya go.
chromatic That's... six PIR instructions? 18:54
Coke I have to do it /every time/ I invoke a command.
chromatic So does Pheme.
Coke k.
cotto: note that whenever you invoke tclsh, you're getting 'init.tcl' loaded implicitly. and that snippet did an explicit source of another file. 18:55
cotto I'm just running ../../parrot -t -- tcl.pbc -e "puts [expr 1/3.0]" 2>expr.pir 18:56
130M, btw. Is this going to stop anytime soon or should I go take a nap? ;) 18:57
Coke I get 124741 bytes for "puts [expr 1/3.0]"
cotto done
so I'm doing it wrong? 18:58
Coke I suspect the -t isn't helping.
but Iunno.
chromatic Can you nopaste the code for "puts [expr 1/3.0]"? 18:59
bricas anyone know of a current .deb for parrot? allison's ppa repository is currently out-of-date.
Coke which code. the generated EVAL_ ?
chromatic Yes, the 124741 byte version.
Coke it's in about 50 different chunks. moment. 19:00
nopaste "coke" at 72.228.52.192 pasted "evals in unhelpful order" (3346 lines) at nopaste.snit.ch/15421 19:02
NotFound Coke: Did you make different things for integer and decimal numbers in the source?
Coke NotFound: context?
chromatic .local pmc colons, split 19:03
colons = get_root_global ['_tcl'], 'colons'
split = get_root_global ['parrot'; 'PGE'; 'Util'], 'split'
.local pmc colons, split
colons = get_root_global ['_tcl'], 'colons'
split = get_root_global ['parrot'; 'PGE'; 'Util'], 'split'
NotFound Coke: replacing 1/3.0 with 1.0/3.0 gives a different result, one more '3'
Coke NotFound: yes. there's a TclInt pmc and a TclFloat one. 19:04
(and a multi on tclint's divide vtable)
so that [expr 1/3] generates the right thing. 19:05
chromatic 1/3.0 has to be parsed as a string at runtime?
Coke chromatic: basically.
at least, in the worst case. 19:06
lathos This line: my $c = $str.buffer[$index];
Is causing: too few arguments passed (0) - 1 params expected
current instr.: 'undef' pc 465 (EVAL_37:159)
chromatic What's with all the get_root_globals fetches?
Coke rename expr {}; proc expr {args} {puts $args}; expr 1/3.0
vs. expr 1/3.0 which could theoretically just "return 0.333333333" 19:07
chromatic Okay.
particle lathos: what does $str.buffer.PARROT return? 19:08
Coke (fetches) the duplicates are bugs.
chromatic Do you need to regenerate the PGE parser on every parse invocation?
lathos Perl6Array
Odd thing is, the same method works a bunch of times, then suddenly dies. 19:09
particle odd indeed
did you check the generated pir? 19:10
Coke lathos: gc bug!
lathos Coke: :/
Coke (or not. but trying with -G on odd failures can be instructive)
particle put "parrot_trace 1;" before that call (and if it's in a loop, put "parrot_trace 0;" afterward)
Coke chromatic: I don't think so; I think that regenerating it could let us be more clever, but I don't think I am right now.
chromatic Rule of thumb: generally anytime anyone says "Hey, that's a GC bug!", what they should have said is "I don't know what's going on." 19:11
Coke, it's in an EVAL, so it looks like you're regenerating it.
Coke perhaps I misunderstand what you're saying.
what's are you seeing in the EVAL?
lathos That produced *thousands* of lines of output. 19:12
chromatic ####### EVAL_2
.namespace ["PGE";"Grammar"]
lathos tries the -G thing instead.
chromatic If that's in an eval file, it's generated while your program runs.
particle lathos: it's the last line that fails, isn't it?
Coke chromatic: PGE is generating that. 19:13
lathos 465 get_params PC22 (1), P0 PC22=FixedIntegerArray=PMC(0x29f648) P0=PMCNULL
chromatic While parsing your program?
lathos too few arguments passed (0) - 1 params expected
Coke chromatic: yes.
chromatic There are four of them; one for each Tcl file loaded? 19:14
lathos It's not a GC bug. 19:15
particle yeah, didn't expect it was.
Coke lathos: chromatic would say that even if the behavior changes with -G, it's not necessarily a GC bug. I have no idea if the converse is true. 19:16
particle can you nopaste the last 25-50 lines of pir?
chromatic The last so-called GC bug I identified isn't a GC bug. 19:17
Coke chromatic: I added the caveat here. I will try to just not ever say "GC bug" anymore. =-) 19:18
however, 7 years of habits will die hard. =-)
Tene_ Hmm. Maybe I should start adding "This is a GC bug" to every ticket i file.
Coke chromatic: I only see 3 invocations of PGE;Grammar; it is possible that one == tcl, one == expr, and one == globbing 19:19
lathos Seems to be that I read off the end of an array that was an attribute.
particle brr 19:20
19:22 Zaba joined
lathos OK, this is just weird. 19:26
dalek r36037 | rurban++ | trunk: 19:27
: parrot.spec: fixed two issues from previosu change, detected by Gerd Pokorra
: - no now parrot-doc
: - $%{version} => %{version}
review: www.parrotvm.org/svn/parrot/revision?rev=36037
Coke chromatic: those global fetches might not even be necessary any more. they were at the top level rule, but that rule is apparently invoked multiple times occasionally for a single parrot sub. 19:28
certainly not running code will make us faster. 19:29
chromatic Modestly, yes.
particle depends on how much code
19:31 ask joined 19:32 ask_ joined
Coke those globals are occasionally used, so just ripping them out isn't an option. I can be more clever about when I include them, however. 19:34
though i suspect it's probably not worth it if we're ever going to switch to PCT.
(since that'll be a big rewrite of that area of the code.)
chromatic Could speed up the test suite until then though. 19:35
Coke a bigger win is probably converting to 'box' 19:37
chromatic Probably.
purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look harder.
Coke I do vaguely wish this worked: 19:38
parrot::PGE::Util::split('foo')
you know, because writing a compiler is haaaard 19:39
nopaste "coke" at 72.228.52.192 pasted "box" (9 lines) at nopaste.snit.ch/15422 19:41
"coke" at 72.228.52.192 pasted "not" (10 lines) at nopaste.snit.ch/15423
Coke using box drops that from ~1.4s to ~0.9s
dalek r36038 | julianalbo++ | trunk/examples/pir: 19:47
: [pirric] fix and simplify the comparaison operators
review: www.parrotvm.org/svn/parrot/revision?rev=36038
Coke times one of the spec tests with less assign. 19:50
1m52s to 1m50s. could be noise. 19:56
(60+50)/(60+52)
purl 0.982142857142857
19:56 tomyan left 19:58 rob joined 20:09 david_ joined
david_ make does not seem to compile on icc 11 20:10
dmajnem2_ for some reason, my LD_LIBRARY_PATH does not seem to be affecting the parrot build system
20:11 mberends joined
Coke where is the failure occuring? (shouldn't LD_LIBRARY_PATH only matter for a built parrot you're trying to run?) 20:11
dmajnem2_ Coke: it cannot find libimf when it is testing the compiler 20:12
Coke Configure.pl at one point ignored the settings you passed in when probing for such things. You can turn on verbose information for that probe to see what it's doing now. 20:14
particle how do i put a parrot string in the value of a #define? 20:15
Coke perl Configure.pl --verbose-step=auto::gcc, e.g.
dmajnem2_ Coke: ah, thanks 20:16
Coke particle: parrot strings have to be generated at runtime, don't they?
NotFound particle: other than with magic?
Coke you could define it as a function that returned a parrot string.
s/function/invocation/ 20:17
particle #define PARROT_STRING_INF_POSITIVE const_string(interp, PARROT_CSTRING_INF_POSITIVE)
isn't working
Coke is the extra define actually helpful there?
particle it leads to less typing later on 20:18
Coke how isn't it working?
particle printf("[[[%Ss]]]\\n", PARROT_STRING_INF_POSITIVE);
printf(">>>%s<<<\\n", PARROT_CSTRING_INF_POSITIVE);
[[[>>>Inf<<<
Coke printf takes parrot strings? 20:19
particle ah, perhaps i need Parrot_printf there
NotFound printf takes anything, but the result might not be the expected ;)
dmajnem2_ Coke: I manually modified the /etc/ld.so.conf file on my system. However, I think the parrot build system should have listened to LD_LIBRARY_PATH... 20:21
Is it possible that it does not listen at all to env variables? Because I do not think it listens to CC either
20:22 jan joined
NotFound dmajnem2_: LD_LIBRARY_PATH is used by the dynamc linker of the system, not by parrot 20:23
20:26 mberends joined
Coke but it is possible that we are blocking env vars from propagating to child processes. 20:31
NotFound Coke: I doubt that, giving that I have had several problems with the value of LANG interfering in the output expected by several tools. 20:35
20:36 Tene joined, tewk joined
NotFound Please remember to always set LANG to C when calling a program to parse his output ;) 20:37
The world will be a much better place.
20:41 Zaba joined
dmajnem2_ NotFound: if that is the case, then the configure system never uses CC at all instead of clobering it or something else. 20:42
NotFound dmajnem2_: use the Configure.pl options to set compiler, linker and flags. 20:43
Coke arguably Configure.pl should prefer env{CC}, but it probably doesn't atm. 20:45
NotFound Looks like not. 20:47
Coke chromatic: moved the global vars around a bit so they should only be pulled up when needed. (when they are needed, I make no effort to avoid using them more than once, but this is still an improvement.)
nopaste "coke" at 72.228.52.192 pasted "updated generated PIR" (2854 lines) at nopaste.snit.ch/15424 20:53
NotFound Looks like the value for 'cc' is taken from the perl used to run configure 20:56
dmajnem2_ IIRC, the README claims that it supports an env variable 20:57
Coke ack -i env README :: nothing 20:58
NotFound dmajnem2_: I don't see that 20:59
dmajnem2_ huh, I can't find it either, I guess I was mistaken. Sorry about that. 21:01
NotFound I don't see the usefulness of looking at the compiler used to build perl, we aren't going to link with perl libraries. 21:04
particle that will eventually be replaced, when parrot can detect everything it needs on its own 21:06
NotFound particle: maybe the universe collapse before that X-) 21:07
particle ok, $N0 = 'NaN' ; say $N0 # says: NaN 21:09
now, to get printf working... then commit! 21:10
NotFound Nantastic!
lathos Urgh.
particle actually, it says the platform-dependent value of NaN, which is why i need to get printf working... 21:11
Coke NotFound: I can't see anyone getting to it before 1.0 21:13
dalek r36039 | simon++ | branches/strings/pseudocode (3 files):
: Implement char-wise equality testing, and rework the way native encoding iterates over stuff.
review: www.parrotvm.org/svn/parrot/revision?rev=36039
21:17 cjfields joined
cjfields nopaste? 21:17
purl nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others)
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
Coke tries to think of a way to get a less annoying list. 21:20
(of nopaste)
21:20 mberends joined
NotFound paste? 21:20
purl paste is (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
nopaste "cjfields" at 128.174.127.121 pasted "pct crashes during make on Mac OS X" (39 lines) at nopaste.snit.ch/15425
cjfields pct is crashing on me : ( 21:21
specifically, src/io/api.c:205: failed assertion 'pmc'
(and I agree the nopaste noise is annoying) 21:22
chromatic Hm, is it trying to flush a PMC that doesn't exist yet? 21:23
cjfields Dunno. Anyone else seeing this? 21:24
Coke cjfields: I am not seeing that on osx/86 21:25
... why are you using gmake? 21:26
are you not using apple's build tools?
(vendor supplied gcc, make, etc.)
cjfields I'm using make, sorry
rg maybe because configure is telling us to?
You can now use `gmake' to build your Parrot.
cjfields exactly 21:27
dmajnem2_ hrm, where is Dl_info defined? I cannot seem to find it.
cjfields but the problem pops up either way
dmajnem2_ I only see it being used in exceptions.c
chromatic DL_info's part of the GNU backtrace library.
I think it's part of GCC.
Coke cjfields: I'm not seeing that. are you passing any options to Configure when running it? 21:28
cjfields No
Coke what version of osx and gcc?
cjfields I'll nopaste my configure output
Coke danke.
nopaste Someone at 128.174.127.121 pasted "output for 'perl Configure.pl'" (85 lines) at nopaste.snit.ch/15426 21:30
cjfields D'oh, that's me (forgot the nick)
osx = 10.5.6, gcc = 'gcc version 4.0.1 (Apple Inc. build 5465)' 21:33
Coke what does "gcc --version" give you?
danke.
21:33 rdice joined
Coke (10.5.6) I'm only on 10.4.11, myself. 21:33
cjfields That may be the difference. I've run into other issues w/ Leopard. 21:34
(and 10.6 is around the corner)
Coke leopard? 21:35
purl i heard leopard was a panther or not Panther or OS X 10.5 or at www.apple.com/macosx/leopard/
Coke purl++ 21:36
cjfields This did work until recently (post 0.9 release).
Coke your best bet is probably an svn bisect, then. 21:37
search.cpan.org/~infinoid/ 21:38
cjfields okay, will check that out and report back on the revision causing the problem. thanks! 21:40
Coke ayup. sorry I couldn't be of more help
cjfields s'okay 21:41
been busy lately working on perl5, just getting back up w/ parrot/Rakudo
dmajnem2_ what is the best way to set PARROT_HAS_BACKTRACE to false? 21:43
Coke Configure --ccflags=-DPARROT_HAS_BACKTRACE=0 # a guess 21:45
NotFound Bad idea. The usages check for definedness, not for true 21:51
Coke is there an opposite to -D ? 21:52
lathos -U
NotFound dmajnem2_: What is the problem? 21:55
purl well, the problem is likely to be in the pipes that feed the sink, so they run horizontally below the floor, I need to drain them below that
Coke purl, no, the problem is <reply> 21:57
purl okay, Coke.
dmajnem2_ NotFound: I wanted to see how the parrot source will react to compiling with icc's -ansi flag 22:01
I believe that extra dl* stuff is glibc specific so it freaks out.
NotFound dmajnem2_: try with -DBACKTRACE_VERBOSE 22:02
BTW that function uses mem_sys_free when free must be used. 22:06
dmajnem2_ NotFound: that lets me get past that one error and right into another 22:14
NotFound dmajnem2_: yes, I'm trying it and gives some ugliness
dmajnem2_ how 64 bit safe is parrot? 22:18
22:18 iblechbot joined
dmajnem2_ I tried the jit last night and it exploded on me pretty bad 22:19
also, -m=32 does not really work on my 64 bit machine
particle x64 jit is not fully supported
NotFound ... to say the least X-)
particle s/supported/implemented/
dmajnem2_ ah, ok. is there any way I can help whomever is working on it? 22:20
particle sure, help yourself. you're the only one working on it :) 22:21
dmajnem2_ I have never written a JIT before so I am pretty sure I should not start with the one in Parrot, but I would be more than willing to help test it.
ah, I see
particle svn log will show you the folks who have committed to those files
dmajnem2_ when I use --ccflags on configure, it replaces the default ccflags. Is there any way to just append to the ccflags that are set by default? 22:39
NotFound dmajnem2_: I'm working on a fix for the Dl_Info thing 22:53
dmajnem2_ NotFound: neat 22:56
dalek r36040 | julianalbo++ | trunk (3 files): 23:27
: check Dl_info availability
review: www.parrotvm.org/svn/parrot/revision?rev=36040
NotFound dmajnem2_: can you check if that solves your problem? 23:37
dmajnem2_ NotFound: at first glance, it does not 23:43
NotFound: it does not, but this could be due to how I use ccflags. 23:45
Let me try something else.
NotFound dmajnem2_: the fix is not for the ccflags issue, is just for the Dl_info 23:46
dmajnem2_ NotFound: seems to work with ansi 23:49
NotFound Good
dalek r36041 | julianalbo++ | trunk/src: 23:58
: fix some problems in Parrot_print_backtrace
review: www.parrotvm.org/svn/parrot/revision?rev=36041