Parrot 4.4.0 "Banana Fanna Fo Ferret" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 15 May 2012.
dalek : 5935b68 | kjs++ | m1_gencode.c:
some documentation in gencode.c
00:13
00:33 Jashwanth joined
whiteknight success! sort of 00:38
dalek rrot/whiteknight/io_cleanup1: 2d6ffa6 | Whiteknight++ | / (17 files):
Several fixes so the code compiles and miniparrot builds. miniparrot fails spectacularly, but at least it builds
rrot/whiteknight/io_cleanup1: 49cd136 | Whiteknight++ | / (5 files):
Some build fixes so miniparrot runs, at least some of the necessary steps.
00:58
whiteknight The majority of errors I'm seeing now are bad assertions, especially using ARGMOD instead of ARGMOD_NULLOK 01:14
01:19 jashwanth joined 01:32 alvis joined 01:47 plobsing joined 02:58 kurahaupo joined 03:30 particle joined
dukeleto jashwanth: ping 03:54
04:11 jashwanth joined 04:40 jashwanth joined 06:04 crab2313 joined 06:18 japhb joined
dalek kudo/nom: 9cd99ac | moritz++ | src/core/operators.pm:
in sequence operator, avoid over-eager munching of elements. diakopter++
06:41
06:51 woosley joined 07:22 brrt joined 08:36 timo joined
timo good day 08:36
brrt morning 08:37
timo i was just trying to build rakudo on my linux64 laptop and i'm getting an error. i'm just waiting for the paste to go through my rather unstable wifi connection. 08:38
well, first, ld spews a few errors like /usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/Scrt1.o(.debug_info): relocation $foo has invalid symbol index $bar 08:39
and finally it errors out with Scrt1.o: In function `_start': (.text+0x20): undefined reference to `main' 08:40
brrt ... i don't think i can help you much with that
:-)
what distribution do you use?
timo it's a debian sid 08:42
brrt pff
i have debian squeeze here, it seems to build fine
timo where should/could i look next? 08:45
brrt ... try #perl6 on freenode 08:46
most rakudo hackers are there
although i think its most likely your build is borked
moritz timo: if you have upgraded some packages (like libc, linker or compiler) recently, you should try a 'git clean -xdf' in your parrot tree, then reconfigure and try again
brrt build-system
moritz brrt: I sent timo over from #perl6 :-)
brrt oh, lol
ignore that statement then
08:46 kjs joined
timo ah. i tried make clean, that was probably not enough 08:48
brrt no, git clean is the golden standard
moritz it should be, but it's not as reliable as git's flame throwser
well, it's more like the proverbial Low Orbit Ion Canon :-) 08:49
timo cleaning didn't help, i'm afraid 08:51
brrt same error?
are you building parrot or rakudo? or nqp? 08:52
i'm going to try and repeat it
what is your checkout?
timo this is configure.pl with --gen-parrot and --gen-nqp 08:53
my parrot branch is on 210ad264c4e3e, a commit from Tue May 15 08:54
not branch, sorry, checkout
brrt that will do 08:55
timo sorry, i'll be AFK for 30-45 minutes now 08:57
brrt i'm checking it out 08:58
i'll report further
builds for me 09:11
but again, i'm on squeeze 09:12
and i don't know what packages i have installed
timo i could transitively strace all opens that happen during that process and dpkg -S each file i find ;) 09:29
brrt ... of course :-) but it would still help me very little in helping you, as i do not have - nor can i get - sid 09:30
timo right, i wouldn't expect you to go that far 09:31
i suppose i'll just live without rakudo for a bit
brrt what happens with a more recent checkout from parrot?
as in, git checkout master 09:32
09:32 kurahaupo joined
brrt with the whole cleaning dance 09:32
dalek kudo/nom: 8ecf6da | moritz++ | docs/ROADMAP:
[ROADMAP] add regex Null pattern detection
09:35
timo i'll see
i get the same error there, too 09:41
brrt ...
its odd 09:42
timo gist.github.com/2842279 - here's a paste of the errors
it seems i didn't get the pmc2c.pl lines before the ld errors the last time, though
may be caused by make -j3 perhaps. 09:44
yes, that is indeed the case
brrt ... 09:46
:-) nice
so, it works without?
brrt has never tried parallel builds 09:47
timo no, that was just the cause of the error re-ordering
brrt o 09:48
timo well, output re-ordering actually, there was only one error, so no change of error order
brrt my gut feeling is that the 'debug' build of whatever library that is does not contain symbols 09:49
09:50 mtk joined
timo well, that Scrt1.o file belongs to libc6-dbg 09:50
brrt oh, thats a one, not an oh 09:51
'my' squeeze has libc6-2.11.3-3 09:57
timo i have 2.13-32 09:58
brrt thats even stranger 09:59
ill try to get that version
09:59 Timbus joined
timo have you considered setting up a sid chroot with debootstrap? 09:59
instead of poisoning your system with newer versions?
brrt euh 10:00
that is a sensible idea
better yet would be a true virtual machine 10:04
10:05 Hunger joined
timo i've heard good things about lxc, but i haven't used it. it may be lightweighter than a "true" VM, but more accurate than a chroot - but that's all i know 10:09
brrt i'll check it out 10:10
moritz lxc looks interesting 10:11
though for just testing parrot, a chroot will be enough 10:12
brrt hey, ive heard of that
running debootstrap as we speak :-) 10:14
so, sid is 'running' 10:31
lets see
10:37 kjs joined
brrt parrot builds like a thing of beauty 10:46
timo this parrot wouldn't build if you put a thousand volts .. err 10:48
brrt :-) nqp builds 11:15
that leaves rakudo
dalek : bb2de1a | jimmy++ | Makefile:
added debug CFLAGS to Makefile
11:20
11:20 JimmyZ joined
brrt well, can't build rakudo, either 11:43
on sid
no idea why
oh, memory probably 11:44
11:49 JimmyZ joined 12:08 whiteknight joined
whiteknight good morning, #parrot 12:09
brrt good morning for you, daypart for me 12:14
whiteknight hello brrt, how are things going?
We didn't really have a dedicated meeting yesterday, which is okay because I've been following along with your commits 12:15
brrt bit swamped right now, actually, but ive gotten 'building' working on more systems :-)
whiteknight awesome!
brrt no, thats true
whiteknight Add a README file if you haven't already with notes about how to build and on what system
brrt oh, good point
i'm working on getting the winxed part to run a file 12:16
whiteknight okay
brrt is there a way that i can take a hash and set is as the enviroment?
whiteknight What do you mean? 12:17
brrt i have a hash that contains all of cgi's 'variables'
they usually go into $ENV
(in perl)
whiteknight There is an Env PMC that gives access to environment variables
var env = new 'Env'
brrt that will do 12:18
whiteknight but it's just a thin wrapper around environment variables, you can overwrite them
brrt and i really really need to fixup error handling 12:21
whiteknight ...not that I recommend it
brrt recommend what?
File.is_file gets me a Null access in invoke() error 12:26
moritz you might need to create an instance first
f = new File; f.is_file 12:27
brrt will try
can't find the file pmc though
moritz or whatever the examples in the docs say, if they say anything :-) 12:28
ah, beause there is none
brrt nice
:-)
moritz wait, there's not a pmc, but a dynpmc 12:29
I wonder if they need to be loaded explicitly
brrt loadlib('File')?
moritz probably lower case
the PIR tests use loadlib 'file'
brrt yay, that works 12:31
moritz (fwiw the way I found out was ack -w is_file parrot/t and then opening the most promising test file, parrot/t/dynpmc/file.t)
brrt i did 'find -iname file.pmc' 12:32
its funny, i used to believe that is was impossible for mere mortals to join open source software 12:33
because reading source code would be to hard
too
moritz :-)
the truth is that every sufficiently advanced project has both parts that are easy to read and parts that are hard to read 12:34
brrt the truth also is that reading source code takes a load of experience that i did not have at the time 12:35
12:35 kjs joined
dalek kudo/nom: b2068e9 | pmichaud++ | src/core/List.pm:
Typo fix.
12:41
whiteknight We have a File PMC? 12:44
moritz a dynpmc, yes 12:45
whiteknight clearly, I've never used it
moritz in rakudo, we use it for copying, and for checking if something is a symbolic link 12:46
whiteknight Hmm, all those functions seem to also be available in the OS pmc, which is what I use instead
moritz (for checking existence we use stat) 12:47
those two uses cases seem to be not covered by the OS pmc
brrt os is a dynmpc, too 12:48
whiteknight OS.exists() and OS.stat() methods
moritz I was talking about copying files and determine if something is a symlink 12:49
whiteknight oh yes, OS doesn't seem to cover those two
12:50 isBEKaml joined
isBEKaml ~.~ 12:51
whiteknight good morning isBEKaml
isBEKaml good morning, whiteknight. :)
apparently, opcode_t has several lives. 12:52
whiteknight isBEKaml: what do you mean?
isBEKaml well, a grep on opcode_t threw up several typedefs.
and, one in particular looks to be long. Parrot_Opcode. 12:53
whiteknight hmm... I guess I have no idea where opcode_t would be defined. I thought it was a config-time thing 12:54
isBEKaml in the same file: typedef Parrot_Opcode opcode_t; typedef long Parrot_Opcode;
whiteknight which file is this?
isBEKaml config.h
whiteknight oh yeah, That file is created by Configure.pl based on system settings 12:56
you can override it on the commandline with --opcode="whatever"
isBEKaml I thought "foo_t"s were typedefs (mostly what I saw were all structs), so wanted to look what's in them. :| 12:58
brrt loading dynpmcs does not seem to make apache happy or something
whiteknight isBEKaml: it is a typedef, but it's system dependent
opcode_t is selected to be something that's about the size of an integer or pointer on the system 12:59
brrt: what's wrong with it?
brrt seeminlgy good code does not run under apache 13:01
hmm 13:02
13:02 contingencyplan joined
brrt its basically me just having lazily not implemented decent error reporting 13:02
13:04 PacoAir joined 13:08 Psyche^ joined
whiteknight Throw everything into a big try/catch block 13:09
isBEKaml whiteknight: ok, makes sense. 13:10
brrt will do that, to
whiteknight try { ... } catch (e) { say(e.message); for (string bt in e.backtrace_strings()) say(bt); } 13:11
That should be more than enough to get you started
brrt ... 13:12
that is of course an option too :-) i was busy in C
13:12 particle joined
whiteknight oh yes, C is a slightly different beast 13:12
brrt where 'slightly' stands for 'nothing alike' 13:14
i'll try your method first
class 'OS' not found 13:15
awesome
whiteknight yes, it's definitely better to catch exceptions from inside libparrot than to try and do a postmortem after libparrot exits
brrt but it does confirm my fear 13:16
which is, it cannot find 'OS'
but, it can find FileHandle 13:17
isBEKaml brrt: did you do "loadlib 'os'"?
brrt: files under t/ has a few examples.
whiteknight isBEKaml++ 13:18
isBEKaml ack is awesome in locating stuff. ack++
brrt i used loadlib('os') in winxed 13:19
it actually works outside of apache
whiteknight brrt: yes, that should be the same thing 13:20
brrt: are you setting up a config hash in your C code for libparrot to use? 13:21
isBEKaml brrt: I have _never_ worked with apache - does apache see $PATHs differently?
whiteknight The config hash contains most of the search path information
github.com/parrot/parrot/blob/mast...ain.c#L150 13:23
That calls the routine in the generated file somewhere
blah, I don't have a usable repo anywhere to find it 13:24
13:25 crab2313 joined
whiteknight src/parrot_config.c 13:25
During the build of Parrot, miniparrot generates the config.fpmc file, which another program serializes into a C char* literal and links into Parrot 13:26
so either you need to do something similarly ugly or you need to load the config hash some other way
runtime/parrot/include/config.fpmc, I think 13:27
isBEKaml whiteknight: can't we just use parrot_config executable directly?
whiteknight isBEKaml: yes, that's the other place where the config hash is linked automatically
isBEKaml parrot_config --dump throws up a lot of information
whiteknight yeah, it's the same thing. parrot_config is just a simple program with a simple accessor around the config hash 13:28
isBEKaml yeah, I was saying he can use that to load the config hash, if nothing else works out. :) 13:30
whiteknight Here's now winxed loads in custom search paths: github.com/NotFound/winxed/blob/ma...inxed#L236 13:31
brrt no, i have not setup a config hash
13:32 bluescreen joined
brrt i'm sorry, i did not read all of that 13:32
but it might be what i need
whiteknight Get the interp. From the interp, we can get the paths array, and then you can add in your search paths to that array
Or, I think we can get a reference to src/parrot_config.c and link to that. I don't know if that file is included anywhere in the install or not 13:33
if not, it probably should be
or, We can try to serialize the config hash to C during your build and link that way
or, read from parrot_config during your build and dump those strings into a file somewhere during the build 13:34
or, just hardcode the damn thing for now and worry about it later
brrt that is all hilariously ugly
the last option probably least of all
whiteknight Clearly, doing this in a better way is something we need to put effort into.
so far, there hasn't been enough of a use-case 13:35
brrt we'll figure something out :-) summer is still long enough, after all
brrt also has no idea why OS would be a dynpmc and imageio would not 13:37
whiteknight A case can certainly be made for OS to be included more centrally 13:38
Make a note, ask the question next week at #ps. Or, grab cotto sometime and ask him directly
To sweeten the deal, make sure to mention that "whiteknight promised to do all the work"
:)
brrt lol 13:39
13:40 plobsing joined
whiteknight moving OS into core is basically a file move and an update for the makefile. Then we have to go through all the places that are doing "loadlib('os')" and update those. That's tedious but not difficult 13:40
brrt if thats it, i can do it 13:41
i know i'll make a branch for its 13:42
it
doesn't solve the bigger problem of having no config hash, but still
whiteknight no, it doesn't
but, it eliminates one place where you need it
pull requests are always taken much more seriously than a change request 13:43
brrt theres something to be said for not having the exact same config hash as parrot normally does
whiteknight the one parrot normally uses is far far too big 13:45
and contains all the data you would need to build Parrot from the commandline with a compiler, which you certainly don't want to do from mod_parrot 13:46
brrt no, i just need the load paths
which i could get during build 13:47
i already call parrot_config for various things
whiteknight okay, so you're familiar with it 13:48
once you set load paths at build time, you probably wont want to be changing them anyway
"probably"
brrt if somebody wantst that, they can set a configuration option 13:49
wants
typo party here
and yes, i'm refering to my magic configration options in the sky which do not exist yet
whiteknight those are my favorite kind 13:51
brrt oh, you wouldnt perhaps know where and howthe makefile is generated? 13:57
whiteknight the parrot makefile?
brrt yes 13:58
whiteknight config/gen/makefiles/root.in
brrt has it anything to do with Manifest?
whiteknight not really, no. Configure.pl checks the Manifest to make sure all files are present, then it constructs the makefile
basically, it takes that config/gen/makefiles/root.in file and performs a little bit of variable substitution on it 13:59
brrt is manifest autogenerated? 14:01
14:01 bluescreen joined
whiteknight no, it's maintained by hand 14:01
Basically, it's a tool to make sure the repo is complete, and it's also used to help build the installation packages 14:02
brrt can't find where I should update the Makefile 14:08
oh, Rules.in probably 14:09
that makes sense
ah, its not that simple 14:14
its not very simple at all 14:18
dalek nxed: 669383b | NotFound++ | winxedst (2 files):
cage: subid is a string
14:26
brrt is there an overview of how Makefile is generated in parrot? 14:39
ping whiteknight 14:44
whiteknight pong
PerlJam brrt: you mean the steps that Configure.pl goes through?
brrt yeah, pretty much
it tries to build dynpmc/os.so, which it cant if i moved that file
and try as i might, i cannot find wherre it says it wants to build that file 14:45
also, just putting the file in src/pmc/ makes it build 'all by itself'
whiteknight src/dynpmc/Rules.in, I think 15:00
brrt where i removed it
but i've found another reference to it in config/gen/makesfiles/root.in 15:01
so, trying again
whiteknight okay
if this is turning into a monumental waste of your time, make a ticket for it and I can try it tonight
brrt this is turning into an educative exercise really :-) 15:02
what would be good to know, is what parrot_config option gives me the library paths for parrot 15:03
well, i seem to be much further than earlier in my build
whiteknight github.com/parrot/parrot/blob/mast...ary.c#L134
That's the function that sets up paths, it probably has the info you need
no, wait. Try this one: github.com/parrot/parrot/blob/mast...ary.c#L218 15:04
brrt building now works 15:05
and i'll be checking those functions out
.. this is a reeaaally good thing to move to parrot_api one day :-) 15:07
whiteknight what is?
brrt setting paths
whiteknight ...we might have that somewhere. Let me look
github.com/parrot/parrot/blob/mast...api.c#L365
so that's another option 15:08
github.com/parrot/parrot/blob/mast...api.c#L415 That too
I can't remember which one is used for dynpmcs and which one is used for .pbc libraries
brrt .. i can recall having seen that method 15:09
s/method/function/
yay, my parrot can create ['OS'] w/o loadlib 15:15
all small things count :- 15:17
15:22 plobsing joined, particle joined, contingencyplan joined, whiteknight joined, Hunger joined, mtk joined, kurahaupo joined, woosley joined, dukeleto joined, jsut joined, PerlJam joined, nopaste joined, perlite joined, Infinoid joined, jlaire joined, ttbot joined, awwaiid joined, dalek joined, tadzik joined, atrodo joined, dadada joined 15:23 jashwanth joined 15:40 jashwanth joined 15:45 bluescreen joined 15:58 brrt left 15:59 kurahaupo joined
cotto ~~ 16:20
whiteknight hello cotto
atrodo cotto> Going to YAPC::NA this year? 16:23
16:26 kurahaupo joined 16:30 crab2313 joined
cotto atrodo, nope 16:31
too much crazy here 16:32
atrodo I saw you're at a startup now? 16:33
cotto as we chat
that's the source of most of the crazy
It's so stealth, even I don't know what I'm building. ;) 16:34
atrodo That's both awesome, and scary
cotto I think it's some kind of laser or hostel management system or something. ;)
atrodo Oh! Is it lasers on top of friggin sharks? 16:35
cotto If I told you, I'd have to kill you.
but no 16:36
atrodo As long as it was with sharks with lasers on their heads, i'm okay with that
oh, that's a shame
17:03 Jashwanth joined 17:08 dngor joined
nine FUCK Windows! Just fuck it! Stab it dead and let it rot! 17:45
whiteknight that good, huh?
nine: What do you need? My time shouldn't be as limited this weekend 17:46
nine This system is fighting me every single step of the way. Even when I got some gdb installed on this thing it's useless since crtl+c just kills the debugger. Or one can start it from the completely useless builtin shell but then it just shows the backtrace of whatever, not parrot. 17:49
cotto nine, I appreciate the sentiment but please make an effort to keep the channel clean.
17:49 PacoAir_ joined
nine cotto: sorry 17:49
Now I'm trying to compile a program which is supposed to emulate crtl+c, but suddenly mingw's shell doesn't accept any keyboard input anymore. Even after restarting it 17:50
moritz wow, that's really retarded
nine oh, now it suddenly works again after pressing random keys 17:51
moritz you didn't happen to press Ctrl+S somwhere?
nine moritz: no, crtl+s doesn't even do anything
And why can I resize a terminal window vertically but for horizontal I have to go to some settings and guess how many columns I want? 17:52
whiteknight nine: I've got visual studio here. I can try to run some simple debugging if you need me to
cotto: by the way, I suspect we're going to need to have a serious discussion eventually about whether and how we're going to support windows 8 17:54
17:54 kjs joined
whiteknight since it appears microsoft will not be offering a free C compiler on that platform 17:54
mingw and icc should still be available, of course
kjs lcc too
whiteknight (and, if we don't have a crippled microsoft C compiler to contend with, that slowly opens the door to us picking a more modern C variant) 17:55
once winxp, vista and win7 all disappear, which might never happen 18:02
18:09 fperrad joined
cotto vs2010 express edition will be around for a while longer, but I think you're right that we'll need to figure out where to go on that front 18:11
it's an amazing move on ms' part, and by "amazing" I mean "stupid"
18:21 pmichaud joined, dalek joined 18:22 Coke_ joined 18:24 p6eval joined 18:25 dalek joined, Util joined
whiteknight depending on which pundit's blog you're reading, just about every detail of the new OS is either "Amazing" or "stupid" 18:27
benabik Or amazingly stupid 18:28
whiteknight that's like a middle ground, right? 18:29
benabik Right
whiteknight I don't really have much of an opinion, because I probably won't be using it anyway. Though I do shudder a little bit thinking about how some of my less computer-saavy relatives will fare with it 18:30
cotto the middle ground doesn't usually generate as many ad impressions 18:34
18:34 bluescreen joined 18:35 d4l3k_ joined 18:51 whiteknight joined
whiteknight blah, today is just one of those days 18:56
I keep asking my computer "What the heck was this guy thinking?" And not getting any reply
I don't suspect there are any answers to that question which would satisfy me 18:57
sorear hello, whiteknight 18:59
whiteknight hello sorear. How are you doing? 19:00
dukeleto ~~ 19:06
whiteknight hello dukeleto
dukeleto Jashwanth: ping
Jashwanth: how goes the github homework? 19:07
whiteknight: top of the localtime() to ya
19:44 alvis joined
Jashwanth dukeleto:had some doubts 19:53
20:06 travis-ci joined
travis-ci [travis-ci] parrot/parrot#393 (master - 481a115 : NotFound): The build was broken. 20:06
[travis-ci] Change view : github.com/parrot/parrot/compare/5......481a115
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/1491077
20:06 travis-ci left
benabik 3 errors, all appear to be network problems, not test failures. 20:08
20:19 preflex_ joined
dukeleto Jashwanth: i am answering your git questions in the privmsg 20:50
Jashwanth: also, this might be helpful byte.kde.org/~zrusin/git/git-cheat-...medium.png 20:52
Jashwanth: although, 90% of the time, you just need add, commit, push and pull
20:53 plobsing joined
benabik ndpsoftware.com/git-cheatsheet.html is perhaps a more useful cheat sheet. Has tons of detail, but you can limit it to the section you're interested in. 20:54
dukeleto benabik: that is very shiny, but hard to print :) 20:55
benabik True. But if you have have it open, it's a good way to find the command you're looking for. 20:56
Especially with the more detailed information at the bottom. The git-scm.org page seems to indicate there's a .svg and .png at that site, but I can't find it. 20:57
21:07 p6eval joined 21:08 dalek joined 21:11 tadzik joined 21:13 Util joined, pmichaud joined, Coke joined 21:14 PerlJam joined
dalek kudo/qrpa: a262cc4 | pmichaud++ | / (3 files):
Add initial QRPA (RPA with better queueing) PMC.
22:11
kudo/qrpa: 818a180 | pmichaud++ | / (2 files):
Add pop_pmc, push_pmc, shift_pmc, shift_integer.
22:12 benabik joined 23:07 particle1 joined 23:24 whiteknight joined
whiteknight good evening, #parrot 23:32
dalek rrot/notfound/pbc_to_exe_winxed: b02bb48 | NotFound++ | tools/dev/pbc_to_exe.winxed:
pbc_to_exe converted to winxed - quick start
23:34
NotFound Someone can test that beast in a non-gcc system? 23:35
whiteknight I can try to test it later 23:46
We really need a test on windows
that's the only system where it's substantially different
Actually, I'll load up my windows vm right now 23:47
NotFound No infrastructure yet, you need to generate the pir by hand. 23:48
whiteknight oh, okay 23:51