Parrot 1.0 Released | parrot.org | Thanks to everyone who helped get 1.0 out the door!
Set by moderator on 18 March 2009.
00:09 AndyA joined
dalek tracwiki: v142 | allison++ | ParrotRoadmap 00:31
tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
shorten dalek's url is at xrl.us/bemcxk
00:37 tetragon_ joined 00:58 davidfetter_ joined 01:01 eternaleye joined
dalek rrot: r37658 | NotFound++ | trunk/src/debug.c:
[debugger] allow abreviation in all commands, simplify parsing
01:05
01:09 skv_ joined 01:11 tetragon joined 01:13 tetragon joined 01:33 tetragon joined
dalek rrot: r37659 | cotto++ | trunk/src/pmc (8 files):
[PMC] switch Hash-like PMCs to ATTRs
01:36
cotto Hmmm. That seems to have rather gloriously broken the build. 01:40
at least it was an easy fix 01:42
01:44 kid51 joined
dalek rrot: r37660 | cotto++ | trunk/src/pmc (2 files):
[PMC] unbreak the build and fix a warning
01:44
01:49 tetragon_ joined
Coke looks at the utility function 'open_file' and wonders how we ended up with a sub for that. 02:12
kid51 The one in lib/Parrot/Pmc2c/UtilFunctions.pm? 02:14
Coke ayup.
kid51 That was there when I refactored tools/build/pmc2c.pl -- the very first thing I ever did in the project! 02:15
So it predates me. 02:16
And there's also an open_file in compilers/pirc/src/pircapi.h 02:17
Coke pirc is C 02:18
kid51 AFAICT, the only place the Perl open_file is used is in 3 other utility functions in the same module. 02:19
Coke yes, that's all I was able to fid. 02:20
find.
kid51 slurp, spew and splat
... which are mostly tewk creations from his post-kid51 refactoring of that module 02:21
Note to all (a little bit OT): Early-bird registration for YAPC|10 ends tomorrow: yapc10.org/yn2009/ 02:26
Coke going to yapc10? 02:27
kid51 Yes.
Et tu?
Coke going to yapc10 is kid51
dalek rrot: r37661 | coke++ | trunk (4 files):
[cage] Remove (overkill) "open_file" utility method. 'open' works fine,
Coke I can't justify the cost atm.
kid51 $99 till tomorrow! 02:29
Coke plus travel costs, plus time off from work. :( 02:30
dalek rrot: r37662 | coke++ | trunk/lib/Parrot/Pmc2c/UtilFunctions.pm:
[cage] remove unused, untested 'splat' sub.
02:31
rg coke: since you're in "perl mode" ... any feedback to tt#477? 02:33
Coke rg;checking... 02:35
rg++ # applied 02:58
rg thanks :)
dalek rrot: r37663 | coke++ | trunk (3 files):
[docs] TT #477 - generate HTML for PASM/PIR targets in POD.
02:59
rg i'm not sure those are the only occurrences of <pre> tags, but i guess it'll look nice for any others that might be there 03:02
dalek rrot: r37664 | coke++ | trunk/docs/book/ch02_getting_started.pod:
[docs/t] add another PASM block to test.
03:03
Coke they're not the only occurrences. seems to look nicer anyway. 03:05
if we want to keep it separate, we can add a class to the pre block and specialize.
03:35 janus joined 03:37 samlh joined
dalek rrot: r37665 | cotto++ | trunk (7 files):
[PMC] remove PMC_num_val and PMC_int_val2, switch some other macros to VTABLE function calls
04:40
04:45 tuxdna joined 04:47 tetragon joined
dalek tracwiki: v1 | cotto++ | ConvertExistingTestsToPIR 04:47
tracwiki: initial import from TPF's wiki
tracwiki: trac.parrot.org/parrot/wiki/Conver...ction=diff
shorten dalek's url is at xrl.us/bemdvj
dalek tracwiki: v14 | cotto++ | NewParrotDeveloperGuide 04:51
tracwiki: added link to imported page
tracwiki: trac.parrot.org/parrot/wiki/NewPar...ction=diff
shorten dalek's url is at xrl.us/bemdvs
04:56 Fayland_logger joined
GeJ cotto: you may want to merge this with trac.parrot.org/parrot/wiki/Conver...tsToParrot 04:57
04:57 tuxdna joined
GeJ first link in trac.parrot.org/parrot/wiki/CageTasklist 04:58
cotto GeJ++ 05:00
I looked for something like that, but it didn't turn up where I expected.
05:20 eternaleye joined
dalek tracwiki: v15 | cotto++ | NewParrotDeveloperGuide 05:22
tracwiki: trac.parrot.org/parrot/wiki/NewPar...ction=diff
shorten dalek's url is at xrl.us/bemdx8
dalek rrot: r37666 | allison++ | trunk/ports/ubuntu/control.in:
[ubuntu] Description fixes for control template.
05:37
05:58 TiMBuS joined, tuxdna joined
dalek rrot: r37667 | cotto++ | trunk/DEPRECATED.pod:
[DEPRECATED] remove Slice and Bound_NCI from deprecation list
06:08
06:12 eternaleye joined 06:45 lucs joined 06:49 s1n joined 06:52 uniejo joined
dalek rrot: r37668 | cotto++ | trunk/src (6 files):
[PMC] replace a bunch of PMC_int_val instances and fix some correct-by-coincidence code in src/jit.c
07:09
GeJ cotto: out of curiosity, what are you doing? What's the big plan of yours? 07:14
cotto I'm really close to getting the UnionVal removed.
GeJ And it is a good thing because... ? 07:16
GeJ admits his total ignorance of the birdy's guts.
cotto trac.parrot.org/parrot/wiki/PMCUni...onTasklist (under "Why") 07:17
GeJ goes read
thanks
cotto ignorance? 07:18
purl ignorance is bliss
cotto purl++
It generally makes the code saner. 07:19
GeJ damn you, I was leaving in that warm fuzzy --and most importantly UnionVal-less-- world, and you just ruined it. 07:20
purl: you're darn right.
purl GeJ: what?
GeJ s/leaving/living/ 07:21
07:21 tuxdna joined
cotto Keys and imcc are considerably more fun. 07:21
dalek rrot: r37669 | cotto++ | trunk/src (3 files):
[PMC] fix/remove some obselete comments, remove more correct-by-coincidence code
GeJ Hum, tropical storm Jasper is coming our way. It's going to be an interesting week. 07:22
07:33 masak joined 07:36 eternaleye joined
dalek rrot: r37670 | allison++ | trunk (7 files):
[hll] Merging in the 'load_language' branch. Implements an opcode

and sets up its search paths.
07:48
Tene allison: any plans for fixing the HLL issues with PMCs? 07:49
allison Tene: yes 07:50
Tene what's the schedule look like for that?
allison Tene: though, I thought someone else had taken on that task (that's why I haven't done it yet)
tewk, IIRC? though, I could be misremembering 07:51
Tene: it's part of HLL interop, so will be done for the May release certainly 07:52
Tene :)
07:52 alvar joined
allison Tene: do we have a ticket for it yet? 07:52
Tene Um, dunno. :( 07:53
I was going to investigate, and possibly make one, but never did. 07:54
allison Tene: I don't see one searching Trac...
07:58 eternaleye joined
Tene I'll work on getting rakudo and cardinal using load_language tomorrow 07:58
and possibly investigate HLL PMC issues while I'm at it.
The one specific item that I remember was that there needed to be a way to get them put in the right HLL namespace. 07:59
in rakudo, when migrating to .HLL 'perl6', things like "new 'Perl6String'" or whatever just failed 08:00
dalek rrot: r37671 | allison++ | branches/load_language:
Removing HLL 'load_language' development branch from the repository
Tene Would it be helpful to get a rakudo patch that migrated it far enough to start failing because of PMC issues?
moritz hey, you could use branches for that ;-) 08:01
Tene You're a very clever man, moritz.
allison Tene: or a simple test to add to Parrot that demonstrates the problem
Tene: that way we can verify "test fails before, test passes after" the fix 08:02
Tene I don't know enough about what the correct behavior would be or how to deal with PMCs to generate one. :)
I'll look into it, though.
allison Tene: I guess it would be tough to put into a simple test, since it requires defining two low-level PMCs with the same name but different namespaces 08:03
dalek rrot: r37672 | allison++ | trunk/ports/debian (3 files):
[debian] Move manfiles to new packages. Add some additional notations

of existing packages. Thanks to David Nusinow for the patch.
08:47
rrot: r37673 | allison++ | trunk/ports/debian (2 files):
[debian] Removed useless libparrot-dev.dirs (which referenced a path
09:19
rrot: r37674 | allison++ | trunk/ports/debian/control.in:
[debian] The parrot-devel package also needs the header files installed
09:23
rrot: r37675 | cotto++ | trunk/src/inter_cb.c:
[PMC] a couple more unionval->vtable fixes
09:27
szabgab in Inline::Rakudo I have to chdir to the chcked out directory of parrot in order to load PCT.pbc 09:40
I opened a ticket with a test script attached: trac.parrot.org/parrot/ticket/488
09:46 eternaleye joined 09:47 samlh joined, tuxdna joined 10:00 bacek joined 10:13 contingencyplan joined
dalek rrot: r37676 | allison++ | trunk/ports/debian/watch:
[debian] Adding a watch file. (Thanks to David Nusinow for the patch.)
10:26
10:26 bacek joined 10:50 Counterspell joined 10:56 tuxdna joined 11:44 namenlos joined 11:51 ruoso joined 12:25 donaldh joined 12:27 tuxdna joined 12:30 donaldh joined 12:35 rg1 joined 12:38 amoc joined
mikehh parrot r37676 is failing some post-config tests 13:20
make codetest failures as well 13:22
13:22 tuxdna joined
Coke_afk selenium++ 13:28
Coke mikehh: checking.
13:33 donaldh left
mikehh one of the files failing codetest is examples/library/acorn.l which is dated March 8 - it was there yesterday BUT not tested 13:34
Coke ah. that's no doubt because of the change that assumed we had no more lisp files in core. 13:36
I will probably just change the file extension on that one file. 13:37
did anyone run opsrenumber yet?
(I don't see a commit after kid51's suggestion)
mikehh smolder and rakudo PASS 13:39
Coke k. 13:41
Coke ponders adding a 'make codtest',but it seems fishy. 13:44
dalek rrot: r37677 | coke++ | trunk/NEWS:
[docs] update news with recent add/rm's
Coke ah. buildtools_tests isn't run by default, hence the green. I'll see about running the renumber once my other fix is done. 13:46
dalek rrot: r37678 | coke++ | trunk (2 files):
Rename a conway LIFE file from .l to .life
13:52
mikehh I generally run Perl Configure with --test and run make codetest after make smoke, sometimes make fulltest but not every build 13:53
dalek rrot: r37679 | coke++ | trunk/src (2 files):
Pass some codingstd tests.
14:01
rrot: r37680 | coke++ | trunk (2 files):
ran 'make headerizer'
14:05
Coke pretty sure I have the assert args fixed, also. 14:06
I hate cleanup work. :|
14:12 particle joined
dalek rrot: r37681 | coke++ | trunk/src (2 files):
codingstd fixes: use ASSERT_ARGS macros, no hard tabs.
14:18
14:19 NordQ joined
Infinoid Yeah, but codetest keeps us honest. :) 14:19
Coke Just frustrating how many times i've run codetest to fix other people's issues in the past month. =-) 14:20
mikehh moral of the story - run codetest before committing :-} 14:21
Infinoid Or bribe Infinoid to run codetest more often :)
I've done a lot of that stuff in the past... I got distracted by website stuff last month and still haven't gotten back on track with it 14:22
Coke mikehh: I added a comment to TT #489; I'm not convinced the tests are correct. 14:27
14:28 davidfetter joined
Coke all the codetest failures should be fixed now, though. 14:29
davidfetter HAI
Coke FAIL
davidfetter rpmlint parrot-docs-1.0.0-3.fc10.i386.rpm
[much stuff later]
1 packages and 0 specfiles checked; 114 errors, 6 warnings.
looks like a whole new area of endeavor :) 14:30
allison davidfetter: where did those rpms come from? 14:31
davidfetter i made them using a spec i've been playing with from redhat's site. the one that produced all that is at fetter.org/~shackle/parrot.spec 14:32
i ran rpmlint on the actual packages per a gripe in redhat's bugzilla 14:33
bugzilla.redhat.com/show_bug.cgi?id=486302
Coke allison: do we want to support --gc=libc ?
(or need to)
I ponder a codetest smolder. 14:38
allison Coke: no, we don 14:43
't
need to, that is
davidfetter: sigh 14:44
davidfetter what'd i do?
Coke easy enough: smolder.plusthree.com/app/public_pr...ails/19347 14:45
shorten Coke's url is at xrl.us/bemexk
Coke allison: ok. since it's currently broken (there's an RT for it), can we remove it? Or at least schedule it for removal in 1.5?
allison davidfetter: sighing at the RPM errors (nothing you did)
davidfetter ah, ok :)
allison Coke: yes, I would have entered a deprecation notice before 1.0 if I remembered 14:46
Coke allison: ok. 14:47
added a code-test smoke to my daily smolder test run. 14:50
cotto coke++ #cleanup 14:51
Coke allison: you want to rule on any of the other --gc options config currently supports? 15:00
(gc: the default), libc, malloc, malloc-trace 15:01
heh. comment after listing those options "So, for the time being, only the default value works.
allison malloc and malloc-trace can both die
we'll be adding new ones
particle eg. llvm
allison well, the default 'gc' needs to change its name 15:02
it's "marksweep" or something like that
moritz stoptheworldslowgc 15:03
allison moritz: yes
particle --gc=meltwithyou
Coke I'll put it all in the same ticket. Since none of them work, do we still need a deprecation notice? 15:04
(at least, they're all documented as not working) 15:05
put all the /removals/ in the same ticket, anyway. 15:08
particle anyone here want to be a mentor for gsoc2009, who hasn't signed up yet? i can help you with that. 15:09
Coke I can.
if you want another warm body.
... well, slightly above room temp 15:10
particle that counts.
moritz particle: me
particle: and ask on #perl6, I think ruoso, masak and others would volunteer as well
Coke particle: I'm only volunteer for parrot. =-)
masak has already signed up
particle wilco, wanted to test the procedure here, first
moritz ok
Coke *ing 15:11
allison: peeeng.
masak or was this specifically for Parrot?
moritz so, what should I do?
masak if so, I'm ready to sign up.
particle you need to create an id on melange, google's new soc management app
Coke particle: done.
ruoso particle, moritz, yes... I'm a mentor volunteer
particle socghop.appspot.com
give me the "linkid" aka username you used
allison Coke?
purl hmmm... Coke is mailto:will@coleda.com or annoyed that the test program -fails- when run via valgrind, but one thing at a time. =-)
Coke allison: do the (currently broken) --gc options need a deprecation cycle? or are we safe since they are documented as failing in the config docs to just remove them. 15:12
particle: wcoleda
allison Coke: technically we do need a deprecation cycle. there may be parts of the API that are used somewhere by something
Coke allison: fair enough. 15:13
moritz particle: I'm logged in with my google ID (moritz.lenz), is that sufficient?
particle coke: actually, you're listed as coke, not wcoleda
moritz: you need to create a profile or something 15:14
moritz particle: ok, I'm 'moritz' 15:15
particle sent! 15:16
masak particle: I'm 'masak'.
particle okie 15:17
15:17 fperrad joined
particle also sent! 15:17
we need some help on the ideas page. the student application period is already open
Coke particle: that's the public name, not the account.
davidfetter waves to fperrad 15:18
Coke particle: how about a GC project that actually gets committed to trunk!
<duck>
particle <goose> 15:19
scnr
15:20 donaldh joined
Coke You have been invited to become a mentor for dukeleto. 15:20
dalek rrot: r37682 | coke++ | trunk/DEPRECATED.pod:
Note removal of some config options
15:21
davidfetter fperrad, my spies tell me you may be working on getting rakudo working with a preinstalled parrot. have they misinformed me? 15:22
Coke our org id is 'dukeleto' and not 'tpf'? nifty. 15:23
particle: submitted. 15:24
fperrad I 've packaged Parrot 1.0.0 & Rakudo 15 on Windows
Coke is there a way to pass along arbitrary attributes to smolder?
davidfetter fperrad, interesting. how did you get rakudo to build atop parrot 1.0.0? 15:26
fperrad So, the official Rakudo tar.gz needs some minor modif 15:27
davidfetter what modifications? 15:28
cotto cool. I haven't seen fperrad here before. Hi. 15:30
and bye 15:31
davidfetter l8r, cotto
rg coke: it seems you can just put them in the hash, like the submitter info
Coke in what hash?
you mean, "modify t/harness", neh? 15:32
rg no, lib/Parrot/Harness/Smoke.pm 15:34
Coke ... that's a lib used by t/harness.
so, close enough. =-)
ok. nothing I can use OOTB, then.
pmichaud good morning #parrot 15:36
dalek tpfwiki: will@coleda.com | Parrot
tpfwiki: www.perlfoundation.org/parrot/index.cgi?parrot
Coke pmichaud: allo 15:37
davidfetter mornin', pmichaud 15:38
15:38 rdice joined
mikehh pmichaud: and a good afternoon from me :-} 15:39
dalek tpfwiki: will@coleda.com | Parrot 15:40
tpfwiki: www.perlfoundation.org/parrot/index.cgi?parrot
fperrad In fact, I build Rakudo in the Parrot build tree. 15:41
I just add a missing target installable_perl6.exe,
which produces an executable compatible with an installed Parrot.
davidfetter fperrad, got a diff? 15:44
particle moritz, Coke: could you fill out spreadsheets.google.com/viewform?fo...1aU3c6MA..
shorten particle's url is at xrl.us/beme5z
15:45 Gerd joined
Gerd Allison: Hello, are you listen? 15:45
davidfetter waves to Gerd :) 15:46
allison hi Gerd
Gerd The first problem I have to build a langauge from an installed rpm is the BUILDDIR 15:47
davidfetter Gerd, have you tried with the new .spec i posted to redhat bugzilla?
Coke particle: ... annoying that you can't just take the info I already entered in melange. =-) 15:49
particle coke: maybe i can... lemme talk to leto
i just saw his post, too late, maybe it's the same info
15:50 Santtu joined
allison Gerd: languages that use BUILD_DIR aren't set up to run on an installed Parrot 15:51
Gerd: you can skip those for now
Gerd By building an langauge from an install parrot-rpm and using parrot_config the BUILDIR has an prefix from the source
allison (and talk to the maintainer)
moritz particle: filled out
allison that's not a problem with parrot_config, it's a problem with the language's Makefile template
particle ok, looks like you don't have to, after all. won't do any harm, though. thanks! 15:52
allison Gerd: (parrot_config provides the paths to the build directories and the installed directories, it's up to the language to decide which to use)
gravity is a little bewildered by the rpath discussion
davidfetter rpath is some pretty bewildering stuff 15:53
Gerd would setting the BUILD_DIR to /usr solve the problem
particle coke, moritz: you should join tpf-gsoc@groups.google.com
gravity davidfetter: Well, I think I get it, I'm just confused about some of the debate. It sounds like people are in violent agreement. 15:54
gravity is missing something
Coke particle: we're not reusing last years list?
alrightee.
Gerd I try different thing with rpath but noting works
davidfetter rpath is a perennial source of confusion
allison Gerd: no, because the paths for BUILD_DIR are completely different than the installed directories
davidfetter not just in parrot
particle nope, apparently we're using a real google list, rather than outside-volunteer-hosted
Santtu Hi. I tried to compile parrot 1.0.0 and SVN HEAD on FC9, but got segfault while building compilers/pge. I checked trac and didn't see any mention of the problem. Has anyone ran into that? BTW, is this the correct place for this question?
Coke Santtu: yes, this is the right channel. 15:55
(segfault) that sounds familar, but not for 1.0
do you have a copy of parrot already installed?
Infinoid hi Santtu, it would be great if you could run svn HEAD under gdb and get us a backtrace
NotFound The problem of installing libraries in places where the dynamic linker can't find them has no solution. It's up to package builders or people that install and build from sources to solve it.
Santtu Funnily though running the offending part under valgrind does not cause a segfault.
moritz particle: request sent 15:56
Santtu infinoid: Stacktrace to here on channel or to trac?
allison NotFound: except that we have to provide them the tools to solve it
NotFound allison: What tools? ldconfig?
particle nopaste?
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/
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)
Infinoid Santtu: trac or nopaste.snit.ch/ (which puts a url here)
allison NotFound: a --disable-rpath option
Santtu ok, just a sec
Gerd I have to go home, in the evening I will look in my email, bye
davidfetter n8, Gerd
allison Gerd: okay, bye 15:57
15:57 Gerd left
Coke (up to packagers to solve it) right now config (for me) prevents me from solving it. =-) 15:57
NotFound I don't understand why that must be an option, and not just the normal behavior
allison NotFound: and yes, they'll have to set up LD_LIBRARY_PATH during the build, but since they explicitly added the flag, presumably they can manage 15:58
NotFound: because parrot also has to be fully functional running within the build directory
NotFound: without any special action on the part of the user 15:59
Coke allison: those are two different parrots, neh?
nopaste "Santtu" at 82.181.84.132 pasted "parrot svn head compilation fails under fc9" (83 lines) at nopaste.snit.ch/15952
Santtu There.
Coke ./parrot vs. ./installable_parrot
NotFound allison: yes, but we have different targets for installables, isn't it?
allison Coke: they are indeed, and, in fact the installed parrot is setting a different rpath than the build parrot
Coke: it's setting /usr/lib/parrot, which is parrot's default install location
Coke: but, it's not changing for the install prefix (which it should), and there's not currently a way to completely disable it 16:00
Coke config is like that in a lot of places (unable to override)
allison Coke: aye, so that's what needs to change 16:01
dalek rkdown: 3e40d5f | (Francois Perrad)++ | src/Compiler.pir:
handle reference link without finding reference
16:02
rkdown: 04293ed | (Francois Perrad)++ | src/Compiler.pir:
refactor Link & RefLink
rkdown: 6ebcba4 | (Francois Perrad)++ | (2 files):
fix reference link with embedded bracket
shorten dalek's url is at xrl.us/beme9a
shorten dalek's url is at xrl.us/beme9c
dalek's url is at xrl.us/beme9e
dalek rkdown: 6c33c05 | (Francois Perrad)++ | src/ (2 files):
fix reflink without ref
rkdown: 7d8afac | (Francois Perrad)++ | src/Compiler.pir:
fix reflink : escape_xml only once time
shorten dalek's url is at xrl.us/beme9g
shorten dalek's url is at xrl.us/beme9i
dalek rkdown: 0b4492a | (Francois Perrad)++ | src/Compiler.pir:
escape quote in attribute
shorten dalek's url is at xrl.us/beme9k
dalek rkdown: 0ff6b01 | (Francois Perrad)++ | (6 files):
check smart extensions
Coke GAH!
shorten dalek's url is at xrl.us/beme9r
Infinoid hmm, Santtu's backtrace looks a lot like TT #261 (which was supposedly fixed)
Santtu: do you still have gdb open or can get back to that point? on nci.pmc line 320, it would help to make sure nci_info and nci_info->pcc_params_signature are valid pointers 16:05
Santtu infinoid: They're valid -- they're already in the bottom of the nopaste. 16:07
Infinoid ah, you're right, thanks
odd. the last time I saw a crash here, gdb reported another (erroneous) stack frame from when nci.pmc tried to call the function pointer 16:08
Santtu Yeah, I couldn't myself figure out directly where's the segfault coming from. Is jit_func a macro? Or do INTERP or SELF do dereferencing?
Infinoid jit_func is a pointer to some autogenerated code from the JIT engine. nci.pmc is trying to execute it
Santtu I'll put a breakpoint earlier and step through to see if it is clobbering the stack. 16:09
davidfetter fperrad, sorry, was afk. could you put it on parrot.privatepaste.com/ ?
Santtu jit_func seems to be valid too
davidfetter fperrad, there's a file upload thingy there :)
Infinoid the crash in TT #261 was caused because the platform's has_exec_protect flag (in config_lib.pasm) was mis-detected, and thus parrot didn't set the right flags on the JIT memory before trying to execute it 16:10
I think.
Coke (paste file upload) see also tools/dev/no*
Infinoid so the CPU tossed a segfault exception when trying to execute a page which didn't have the executable flag set
Santtu Well, I breakpointed at nci.pmc:317 (previous statement from jni_func) and single-stepped through, the stack is ok. 16:11
particle data execution prevention
Santtu infinoid: Ah..
Infinoid ok. can you print the location of jit_func, and then go find the relevant map in /proc/<pid>/maps and make sure the executable bit is set?
where <pid> is the pid of parrot running under gdb :) 16:12
Santtu infinoid: AVC denial, "SELinux is preventing test_29184 from changing the access protection of memory on the heap."
Coke aha!
Infinoid That looks very likely the cause
Coke some place where we're not getting executable memory.
fperrad Your paste has been added with url parrot.privatepaste.com/7b1f1NuGQ3
Infinoid Santtu: Good find, that will prevent JIT from working at all. 16:13
davidfetter fperrad, thanks :)
Coke hopefully that's a post-1.0 thing, then.
Infinoid I think it's an FC9 thing
and should probably be reproducable in every version of parrot that uses JIT 16:14
Santtu I re-ran Configure.pl, the AVC denial comes during it. It says.. "auto::jit - Determine JIT capability............................yes."
I guess that should be "no" in this case.
Infinoid probably. unless there's a way to tell selinux to trust us
Santtu Is there --without-jit for configure or something similar? 16:15
Infinoid there is something similar, I think its --jitcapable=0
let me make sure
Ok, I think that's right. Try it?
Santtu Yeah, not auto:jit = no. Rebuilding.. 16:16
s/not/now/
mikehh r37682 build tests same failure, smolder PASS, codetest PASS
Infinoid Santtu: is this SELinux restriction enabled by default in FC9, or is this something you enabled locally?
davidfetter fperrad, why did you remove the check for closing $PARROT_CONFIG ? 16:17
Santtu With --jitcapable=0 compilers/pge passes, everything builds ok.
NotFound The way to avoid the need of changing access protection of the heap is usually to use a mmapped region. 16:18
Infinoid Great. PGE was probably just the first thing that used JIT
Santtu Stock FC9, quite recent selinux-policy update (via yum). But I do not think I have customized the policy..
Infinoid NotFound: I tried that, and I have a patch. It doesn't quite work
Sounds like it was the recent selinux-policy update, then. We'll probably be hearing a lot of reports of this soon :) 16:19
Santtu "Mar 24 10:51:15 vesta yum: Updated: selinux-policy-targeted-3.3.1-127.fc9.noarch", updated just today actually :-)
NotFound Well, if selinux forbids that, there is no other solution than change selinux config.
Santtu Probably then better to reopen #261?
Infinoid NotFound: trac.parrot.org/parrot/attachment/....patch.txt 16:20
shorten Infinoid's url is at xrl.us/bemfcm
Santtu Well I think Configure shouldn't be enabling JIT if it doesn't work..
Infinoid Santtu: I agree with that, the detection needs some work. But #261 was specifically caused by a renamed file, which we fixed
rg so is there a java vm for selinux? with jit?
NotFound Infinoid: I think that setting both WRITE and EXEC permissions is an error. 16:21
Infinoid JIT needs to write to the region when it's generating the code, doesn't it?
fperrad davidfetter, as parrot is not in my PATH, with die, I obtain :
C:\\fperrad\\Parrot\\trunk\\languages\\rakudo>perl Configure.pl
Reading configuration information from parrot/parrot_config
'parrot' is not recognized as an internal or external command,
operable program or batch file.
NotFound Yes, but not at the same time-
fperrad Died at Configure.pl line 97.
Infinoid NotFound: any help you can provide would be very useful. I've been trying to act as a contact point for this issue, but I don't actually know much about JIT :) 16:22
Coke (config detection of JIT) seems like it should be possible to have a test that tries to use the same memory tricks that JIT does and remove it as an option if that test fails.
Infinoid Yeah. The test should segfault in the same way building pge was, and the segfault should mean "no"
NotFound: So a dropin replacement for mem_alloc_executable() is wrong, and that JIT should use a 2-stage allocation model. First stage, allocate something writable, second stage, wave the magic wand and make it executable instead of writable? 16:24
Do you think that will work correctly? 16:25
NotFound Infinoid: I'm not sure, to test that hypotesis we need a way to change permissions after writing the jit code... or find someone with a good knowledge of selinux
Infinoid I initially created this patch in an attempt to get parrot+jit building on feather3, because the execute bit was disabled by default in feather3's heap under certain cases I couldn't figure out 16:26
selinux may have been causing that, too.
Santtu Quick-and-dirty trick would be to check the allow_execheap (I guess) value with getsebool. 16:27
NotFound I've taken a look at my old basic interpreter, and it does the same than your patch, PROT_READ | PROT_WRITE | PROT_EXE. Don't know if someone has used it with selinux, though 16:28
Coke seems saner to use the same code we use in the app and see if it works, rather than do something linux specific.
Santtu The allow_execmem (mmap with write+exec) selinux boolean is in true (allowed) in the default fc9 targeted policy. 16:29
Coke (though I bow in advance to the argument that jit only works on linux anyway)
Infinoid That doesn't mean we want it to continue only working on linux
NotFound If someone wants to try: blassic.org and run the example program: machinecode.bas 16:30
Infinoid I think mmap() with MAP_ANONYMOUS should be portable enough to use as a general allocator
it's not c89, but it is posix and svr4 16:31
Santtu You could take a look on how Sun's JVM does JIT, since it clearly works on selinux systems.. 16:32
(I'd assume it does mmap -- execing on stack or heap is so 80s!)
Infinoid heh. We're working on using mmap :) 16:33
NotFound Santtu: distro people take care to make sure java works in your system. They don't do that for parrot (yet)
Santtu I once did a AST->ASM JIT using mmap pages, but that was on solaris so I don't really know how it'd play with selinux.
notfound: true 16:34
Grepping /etc/selinux for jvm and java throws up quite a lot of matches. 16:36
Infinoid yep, jvm is high profile nfpboc 16:38
Coke nfpboc? 16:39
purl i guess nfpboc is non-free proprietary binary-only crap
Coke that's a little harsh. =-)
Infinoid it gets enough attention to get selinux exceptions by default, is all I'm saying.
NotFound Maybe depending too much on jitted nci is not a good idea. A little assembler function to push parameters on the heap and call the function can be a simpler solution, and even help diagnose jitted nci problems. 16:40
s/heap/stack
Infinoid hmm. selinux should hate gcc stack trampolines for the same reason 16:41
16:41 Theory joined
NotFound Pushing parameters and calling addresses is not a trampoline, is the same the c compiler does. 16:41
Santtu Do all supported platforms have computed call instruction? 16:43
NotFound Santtu: all platforms that have a C compiler must be able to call a function pointer. 16:44
Santtu ... unless it is implemented as a trampoline by the compiler on platforms that don't have a computable call instruction :-)
(not relevant nowadays, though) 16:45
NotFound Santtu: we don't even support CHAR_BIT != 8, please don't talk me about exotic platforms ;)
Santtu *chuckle* I could tell you about platforms where sizeof((void*)() 0) != sizeof((char*)0) :-( 16:46
Infinoid heh
davidfetter well, you just did ;)
Infinoid gcc does use trampolines to call lexical functions (when you declare one function within another one)
Santtu Anyway. I can confirm that setting allow_execheap=on allows compilers/pge to compile successfully in selinux set to enforcing mode.
16:46 rdice_ joined
Infinoid parrot doesn't do that. but I'm wondering if FC9's selinux policy breaks other things which do use that 16:46
Santtu davidfetter: I could tell you more :-) 16:47
davidfetter feel free :)
Santtu telco *cough* harvard *cough* architecture *cough* 16:48
not funny at all, really, steer clear
davidfetter k
particle i work with the author of selinux, maybe i could get a ruling on whether that's the right way around... 16:49
NotFound Allowing heap execution surely is not the recommended way.
Infinoid votes for switching exec memory allocation to mmap()
NotFound +1 16:50
purl 1
particle wonders how that affects our psp compile
Santtu I think configure should be fixed to behave like pge, it'll catch the most obvious problem of "wtf doesn't this compile".. 16:51
NotFound particle: I don't use psp, nds has more games ;)
particle santtu: yeah, we should have a probe for executable data
*prevention
Infinoid nds++ 16:52
NotFound: Feel free to take TT #18 and run with it, if it helps. One other thing: the "#ifdef WIN32" stuff should probably become "#ifndef PARROT_HAS_MMAP" or whatever 16:53
NotFound BTW I think our naming conventions for HAS_ and has_ things in parrot_config need some review 16:56
Infinoid I don't know what our naming convention is, I just made that up. 16:57
NotFound The first step of the review is to look if we have one ;)
16:57 donaldh left
Infinoid NotFound++ 16:57
16:58 slavorg joined
Coke 413 RTs left. 17:10
parrotsketch?
purl parrotsketch is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
Coke clock?
purl Coke: LAX: Tue 10:10am PDT / CHI: Tue 12:10pm CDT / NYC: Tue 1:10pm EDT / LON: Tue 5:10pm GMT / BER: Tue 6:10pm CET / IND: Tue 10:40pm IST / TOK: Wed 2:10am JST / SYD: Wed 4:10am EST /
NotFound Coke: that count is after or before the closing of #31150 I've done right now? 17:14
Coke after 17:15
jonathan will try and actually join #parrotsketch this week :-| 17:17
Coke ps in 1? 17:29
dalek rrot: r37683 | coke++ | trunk (2 files):
This ticket was resolved.
17:30 eternaleye joined
Coke grabs a cuppa joe 17:30
hurm. with DST, ps is really in :57, innit. 17:33
clock?
purl Coke: LAX: Tue 10:33am PDT / CHI: Tue 12:33pm CDT / NYC: Tue 1:33pm EDT / LON: Tue 5:33pm GMT / BER: Tue 6:33pm CET / IND: Tue 11:03pm IST / TOK: Wed 2:33am JST / SYD: Wed 4:33am EST /
NotFound utc?
purl utc is date -u or "Coordinated Universal Time"
NotFound utc clock?
Coke time? 17:34
purl time is, like, 17:33:24 2009 and (did you mean "clock"?) or flowing like a river
Coke I'm guessing time is utc.
NotFound Yeah
dalek rrot: r37684 | coke++ | trunk/NEWS:
Follow existing list style.
17:38
17:39 tuxdna joined
Util Scheduled meeting *is* in UTC. #ps in 47. 17:43
davidfetter not in utc ;)
NotFound Are you out of the universe? 17:44
davidfetter well, there's the whole "there is no simulaneous anything" thing from einstein 17:45
Infinoid it's all emulated on a single core processor 17:46
xkcd.com/505/
17:48 cognominal joined
Util Einstein be-dragged; I want unix-time-epoch to be changed to seconds-since-Big_Bang! 17:49
Coke etoobig. 17:50
Infinoid "seconds" is too earth-specific too
maybe count of revolutions of an electron around a hydrogen nucleus since the big bang 17:51
NotFound "Universal" is a little exageration
17:52 fperrad left
NotFound Infinoid: there was no atoms in the BB 17:52
Infinoid I know. But as a basis for a metric standard measurement it should be a hypothetical atom moving at N speed and X temperature 17:53
Util Also, electrons don't really "revolve" around a nucleus; another lie^Wover-simplification from high-school physics. 17:54
Infinoid it was just a thought. anything simpler / cleaner than "the duration of 9,192,631,770 periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the caesium-133 atom" would make me happy 17:55
most of the metric measurements are very nicely defined, I think. but time is still horribly culture-bound 17:57
17:57 barney joined
NotFound Time is on our side. 17:58
davidfetter yes it is 18:00
18:01 Util left
dalek rrot: r37685 | NotFound++ | trunk/src/debug.c:
[debugger] add a command to list breakpoints, RT #31163
18:04
18:06 Util joined 18:16 PerlJam joined
Coke NotFound++ 18:21
I had no desire to touch the debugger. =-)
NotFound You are not alone, judging by svn log src/debug.c ;-) 18:24
Infinoid #ps in 2 18:28
nice timing, feather. 18:30
PerlJam hey, It's been broadcast at least twice since 30 minutes ago that it was going down.
Infinoid ah, I didn't know, sorry. 18:31
Util Yes, but many Parrot devels use feather for IRC, and the #parrotsketch meeting is *now*
18:32 chromatic joined
PerlJam Util: sure ... and they should have switched which machine they were using for a client (as I did) 18:32
Util And as I did. True.
Coke chromatic++ 18:34
chromatic For leading?
18:35 cognominal joined
cotto barney, let me know if any of my changes break Eclectus or Pipp. It'll probably be an easy fix. 18:36
18:36 kj joined
Tene Huh... rakudo fails pretty badly on dealing with unicode. 18:36
Didn't remember that.
barney cotto: k 18:40
NotFound Tene: utf8, utf16, ucs2, whatever...? 18:51
18:55 alvar joined
Tene particle: what's involved in being a mentor? 19:23
particle tene: shepherding a student throughout the summer, if you are lucky enough to get one
at least weekly meetings with the student, make sure they're on the proper schedule 19:24
Infinoid which means what? pinging them on some time interval and answering questions?
particle answer questions, etc
then there are mid-term and end-of-term reviews to write, in a webapp
that determines if the students are paid for their work (if they've met the goals/are worthy of payment) 19:25
depending on the student, it could be <5 hours a week, to >10
last year, parrot students (tewk, whiteknight) reported status in #parrotsketch 19:26
the lone perl6 student had a separate meeting
with me (backup mentor), moritz (primary mentor), timtoady, and pmichaud 19:27
Coke chromatic++ 19:33
szabgab chromatic, could you take a look at trac.parrot.org/parrot/ticket/488 please ? 19:34
chromatic Looking. 19:36
Coke szabgab: why are you doing load_bytecode with a relative path? 19:37
why not just do load_bytecode 'library/PCT.pbc' ? 19:38
with the ../../, I imagine parrot assumes you know what you were asking for.
szabgab I think it would not find PCT.pbc
Coke did you try?
szabgab but I am trying now
Coke =-)
ISTR allison provided a patch to partcl to strip off all the relative pathing for that reason. 19:39
szabgab though actually I came up with this as a test case for why I cannot load perl6.pcb in any directory except in parrot dir
NotFound I think paths starting with ./ and ../ are still not taking into account in src/library.c 19:40
Coke it's possible rakudo's doing it wrong too.
szabgab "load_bytecode" couldn't find file 'library/PCT.pbc'
Coke are you running off an installed parrot? 19:41
szabgab not
built in svn by rakudo
Coke ok. I'll get back to you once I resolve partcl's issues, then, I'm out of bright ideas. =-) 19:42
szabgab in the end what I'd like to have is load_bytecode 'path/to/perl6.pbc' to just work
19:42 dalek joined
Coke szabgab: Should, yes. 19:42
szabgab now in order for that to work I have to cd to parrot dir
19:42 jonathan joined
szabgab ok, thanks 19:42
davidfetter anybody seen allison's sandbox stuff yet? 19:44
Coke I've already let the partcl patches allison supplied sit for a month, btw, so don't pin your hopes on me. =-)
szabgab for now Inline::Rakudo works, it just has this nasty chdir in it 19:45
at a minimum I think I should chdir back to where I was before :-)
NotFound szabgab: Have you tryied -L path/to/rakudo ? 19:46
szabgab where do I put the -L ? 19:47
NotFound parrot command line
szabgab oh, no I am using Parrot::Embed
NotFound See examples/pir/interlangs.pir
szabgab looking 19:48
NotFound I don't know if Parrot::Embed has an equivalent functionality 19:49
szabgab oh so -L is like -I in perl 5, enlarging @INC, right ?
can I do that via pir ? 19:50
NotFound szabgab: more or less, yes.
szabgab though actually I think that would be just another workaround
chromatic Parrot::Embed could add a library path to an interpreter. I'm not sure we have a good API for that in libparrot though. 19:51
NotFound I think the load_language opcode can be used now
19:51 gerd joined
NotFound chromatic: no api, but can be done via an Interpreter object. 19:51
chromatic Is there an Interpreter method? 19:52
NotFound There was an example somewhere... let me check
19:53 desertmax joined
NotFound interp[.IGLOBALS_PBC_LIBS] maybe 19:54
chromatic Yeah, but that means the constant has to be accessible outside of libparrot. 19:55
NotFound include/iglobals.pasm
19:55 jan joined
chromatic I have to do this from C/XS. 19:56
NotFound t/library/pcre.t does a similar thing with IGLOBALS_LIB_PATHS
chromatic: Parrot_add_library_path_from_cstring 19:57
chromatic That's what I thought. 19:58
NotFound Maybe we need an extend version of that function, with a better name.
chromatic I thought man who run behind car is cdr. 20:03
20:04 particle joined
NotFound chromatic: A method in the Interpreter PMC will be a good solution? 20:05
20:05 cognominal joined
chromatic These are per-interpreter paths, right? 20:05
NotFound Yes
barney cotto: Is github.com/bschmalhofer/pipp/commit...2c65328c77 correct ? 20:06
shorten barney's url is at xrl.us/bemgdb
chromatic I prefer methods to global functions.
NotFound Interpreter methods are available from pir and from C, also. 20:07
chromatic Right. I *could* do this from a PBC shim always installed alongside Parrot::Embed, but it's a lot easier to do from XS through the C API. 20:08
dalek pp: 536d3c1 | (Bernhard Schmalhofer)++ | src/pmc/phpstring.pmc:
PMC_num_val() is gone
20:09
shorten dalek's url is at xrl.us/bemgdb
NotFound A method just for the PBC library, or add a parameter to specify -I, -L and maybe others?
chromatic -L definitely. 20:10
NotFound interp.'add_library_path'('L', '/path/toRakudo') ? 20:11
chromatic Why 'L'?
For "Language"?
NotFound Just to mimic the -L cmd line option. 20:12
chromatic Doesn't 'add_library_path' imply that already?
NotFound In the current codebase the related functions are more generic. 20:13
But we can start to chnage that now.
dalek pp: 39013da | (Bernhard Schmalhofer)++ | src/pmc/php (7 files):
add a couple of VTABLE declarations
shorten dalek's url is at xrl.us/bemgec
NotFound In library.h we have PARROT_LIB_PATH_ for INCLUDE, LIBRARY, DYNEXT, LANG and EXTS 20:16
chromatic Do we use all of those?
NotFound INCLUDE, LIBRARY and DYNEXT, sure. The others, don't know 20:17
szabgab the problem I saw is that parrot - without installation does not know where its own files are 20:18
dalek pp: 77600a6 | (Bernhard Schmalhofer)++ | src/pmc/phpstring.pmc:
FLOATVAL means native
shorten dalek's url is at xrl.us/bemget
szabgab or rather it only knows from its own directory
NotFound szabgab: just need to now where parrot_config is, the other things are inside it.
chromatic I suppose if you load that with an absolute path, the rest of the job is easier. 20:20
szabgab and when I load Parrot::Embed it does not know it?
NotFound But the parrot_config things are in an object file that must be linked in addition to libparrot, don't know why
chromatic Maybe we should link parrot_config.o into libparrot. 20:21
NotFound chromatic: I think so, but I wanted to know why we wasn't not doing that way right now 20:22
chromatic There's probably no good reason.
NotFound An .o can't be dynamically linked, so for a perl5 extension is a big NO 20:24
20:28 alvar joined 20:30 Util joined 20:32 Andy joined
dalek pp: 6ccd57e | (Bernhard Schmalhofer)++ | t/pmc/ (2 files):
add a couple of PMC tests
20:35
shorten dalek's url is at xrl.us/bemghb
Coke make codetest runs some but not all tests in t/codingstd; would it not make sense to run them all and todo the known failures? 20:38
chromatic: one of the remaining copyright issues is with one of your modules, btw. 20:39
NotFound Coke: will be too funny to see things like: TODO: no TODO comments
Coke I can deal with that if it means ripping out more code. =-) 20:40
chromatic Coke, I'm not sure how to deal with that. 20:41
Coke also wish to kill tools/docs/func_boilerplate.pl
chromatic: you could cede the copyright to the pafo. =-)
but if that's not reasonable, then you could just put parrot:embed on the cpan only. no? 20:42
those are the two paths I see. perhaps others exist. (like adjusting the test to not care.)
chromatic They're tightly intertwined, but Parrot::Embed is Perl 5 code, so it seems a little odd to give copyright to Pafo. 20:43
Coke yet someone already did!
(it's listed a dual copyright)
we have copyrighted lots of perl5 code in the repo, fwiw.
chromatic None of it intended for reuse though. 20:44
Coke a fair cop.
chromatic I'm also not entirely pleased with the existing copyright notices, as they tend to imply something about the code that the CLA explicitly forbids... but I'm all about the implications these days. 20:46
In particular, the CLA gives Pafo a perpetual license to the copyright provided that Pafo makes the code available under an appropriate license. It's not a copyright transfer. 20:47
Coke chromatic: I think our current approach to copyright notices is driven by allison. No?
chromatic Yes. 20:48
Coke I have no clue what the legal issues are. =-) 20:49
chromatic Like most legal issues, they vary, depending on jurisdiction, counsel, and (most importantly) judge.
It just seems wrong to claim that Pafo holds the copyright on code when I explicitly licensed the copyright to them instead of transferring it. 20:50
NotFound The reason the FSF gives to ask for copyright transfer to them in projects under the 'GNU' label is that in some countries you must ne the copyright owner to be able to defend it in court. 20:51
Coke perhaps we should update our clas if we're not saying what we meant. 20:52
(that raising a whole other host of issues)
chromatic For Parrot itself I don't believe it's an issue.
There are so many authors it's impractical to do things any other way.
NotFound Well, if Parrot::Embed is not part of parrot the easy and clean solution is to put it out of the parrot repo. 20:53
dalek pp: fa40af7 | (Bernhard Schmalhofer)++ | t/pmc/ (2 files):
fix test plans
Coke so is it just for parrot::embed that you have concerns?
shorten dalek's url is at xrl.us/bemgke
chromatic Yes.
Coke then i would do what notfound said; update it on release boundaries. 20:54
(or give it the same version as the parrot it corresponds to.)
or pull a language trick and put it in a slightly different repo on parrot.org
chromatic I'm warming to that idea. 20:56
NotFound Easy and clean from the legal point of view, of course.
Coke not that we don't like your code, man. It's us, not you. =-)
chromatic Okay, but I want my CDs back.
Coke You can everything but TMBG. 20:57
*have
NotFound Be modern, upload it to an mp3
dalek rrot: r37688 | coke++ | trunk (5 files):
[t] run all the codingstd tests when running 'make codetest'

and runnable as part of 'make test' - since we don't do that anymore, just todo these tests as we would any other.
20:58
Coke ack: Not working here yet ?
wtf.
szabgab chromatic, will you put Embed::Parrot on CPAN ? 21:01
chromatic Sure thing. 21:02
NotFound "Use longopts to parse command line options in parrot_debugger.c" WTF?
Did he mean longopt.h ? 21:04
Coke he who?
purl he is saying "I am too smart for Moose"
Coke if it's me or ptc, we were probably blindly copying from a todo somewhere. 21:05
feedback on #493 appreciated.
NotFound TT #491
Coke did you lookat the patch?
rant: tt doesn't email you about attachments. 21:06
NotFound Oh, I don't figure it was a patch 21:07
21:09 donaldh joined 21:11 donaldh left 21:16 donaldh1 joined 21:18 Theory joined 21:20 Whiteknight joined 21:32 mikehh joined 21:48 Woody4286 joined 22:14 donaldh1 left, kid51 joined
dalek rrot: r37689 | NotFound++ | trunk/src/debug.c:
[debugger] remove unused static function GDB_B and static var gdb_bps, TT #46141 and TT #46143
22:16
22:17 tetragon joined 23:15 Fayland_logger joined 23:17 bsdz joined 23:28 eternaleye joined 23:30 Woody4286 joined 23:35 AndyA joined
dalek kudo: 1ef8919 | (Jonathan Leto)++ | (3 files):
Implement roots() builtins
23:43
kudo: 9a84c35 | (Moritz Lenz)++ | t/spectest.data:
add now passing roots.t to t/spectest.data
shorten dalek's url is at xrl.us/bemhcf
dalek's url is at xrl.us/bemhch
23:55 AndyA joined