Parrot 3.2.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Parrot is accepted for GSoC 2011! Student application deadline is Apr 8
Set by moderator on 27 March 2011.
benabik_ NotFound: Exactly. It's the human HLL version of PIR that performs very simple alterations before handing it to PIRCompiler (or pirate or whatever) 00:01
NotFound: I called it a pre-processor because it doesn't actually try to compile it to code, just perform conversions of things like macros and heredocs. 00:02
00:02 dmalcolm joined
sorear pirate should not be used for machine-generated pir 00:02
pirate's strengths are ease of adding features, especially to the parser 00:03
it only makes sense to use pirate for HumanPIR
NotFound Then it doesn't make any sense to me.
benabik_ sorear: Access to a level lower than "file of PIR" is useful for things like PAST nodes with inline PIR
00:04 davidfetter left
sorear well after forking HumanPIR and using pirate to implement it, we can take a hacksaw to the InhumanPIR spec and IMCC's accumulated cruft 00:04
benabik_: that's very easy to do with an NQP-based parser
benabik_: use the HumanPIR compreg to turn an inline PIR chunk into a bunch of NewPOST nodes, which can then be inserted into PCT's output 00:05
NotFound What will be the advantage over directly generating that nodes? 00:07
benabik_ sorear: I would think that compregs returning POST woyld be odd, but I think I grok your general direction. 00:08
NotFound: It would be ideal if HLLs didn't use inline PIR, but they're already in regular use in NQP at least. 00:09
sorear in particular, the source syntax uses inline PIR
Q:PIR { ... };
benabik_ Maybe we need an "inline POST" PAST node. :-)
sorear so it's not just fixing the HLLs, it's also fixing the HLL users 00:10
benabik_ sorear: It gets used directly a couple of times too.
sorear benabik_: with a PCT-based compreg you can already say stuff like my $post := $cr.compile('foo', target => 'post')
this is not perfect because it requires a syntactically valid compilation unit 00:11
NotFound No offence, but I'll probably prefer to binary write the PBCs rather than such schemes. 00:12
benabik_ NotFound: Perfectly valid. My GSoC is about trying to get PCT to do just that, after all. :) 00:13
Anyway, GTG, TTYL 00:14
00:15 benabik_ left 00:31 dmalcolm left
cotto ~ 00:49
00:53 Eduardow joined
KaeseEs .tv weed 01:07
wrong channel ._.
01:10 bubaflub joined 01:15 elmex left, elmex joined 01:44 woosley joined 01:56 ShaneC left 02:18 kid51 left 02:19 bubaflub left 02:25 whiteknight left 03:05 soh_cah_toa left
cotto Looks like I'll be talking at LinuxFestNW. 03:08
dukeleto, ping 03:17
03:19 hudnix left 03:46 mtk left 03:52 mtk joined
atrodo cotto> ping 04:18
04:19 ShaneC joined
sorear cotto: cool, parrot related? 04:23
atrodo cotto> unping 04:30
04:43 woosley left 04:50 jsut left 04:55 jsut joined
cotto sorear, yes 05:22
atrodo, pong 05:23
atrodo, unpong 05:24
05:45 woosley joined 06:00 theory left 06:08 fperrad joined 06:37 Herat joined
nopaste "fperrad" at 192.168.1.3 pasted "forth error (since imcc_compreg_pmc merge)" (9 lines) at nopaste.snit.ch/39744 06:51
fperrad msg whiteknight forth is broken since imcc_compreg_pmc merge, see nopaste.snit.ch/39744 06:53
aloha OK. I'll deliver the message.
07:08 Herat left 07:37 fperrad_ joined 07:39 fperrad left, fperrad_ is now known as fperrad 07:40 utsl left, utsl joined 07:54 dodathome joined 08:06 pjcj left 08:07 pjcj joined 08:35 TonyC left 08:39 jaffa4 joined
jaffa4 hi 08:39
08:39 TonyC joined
jaffa4 What is the state of jit in parrot? 08:39
tadzik ask bacek 08:40
bacek appear from flame and smoke 08:41
jaffa4, it's in prototyping mode
cotto jaffa4, we used to have a jit, but it wasn't maintainable and we ripped it out. bacek is working on jitting our ops with llvm, but our ops need to be rewritten in a more restrictive subset of C before they can be parsed well enough to be translated into llvm (or anything else).
jaffa4 what is ops? 08:42
how long will it take to do the jit? 08:45
cotto basic operations that Parrot knows how to do
jaffa4, we don't know but it will happen eventually 08:46
jaffa4 is current prototype in repository already? 08:47
cotto it's in the opsc_llvm branch, iirc 08:48
jaffa4, what's your interest in Parrot? 08:49
also, welcome
jaffa4 mainly as end user 08:50
cotto jaffa4, what kind of use?
jaffa4 through perl 6 08:51
cotto ]ok
ok
jaffa4 I also made a small language that generates pir.
I also made a small language that is compiled into pir.
very small
parrot is not very fast, right?
Compared to Java? 08:52
cotto Parrot needs to be faster, among other things.
jaffa4 what else does it need? 08:53
08:53 JimmyZ joined
jaffa4 another questino 08:53
What do you need to produce a more restrictive C? 08:54
cotto direct POST->pbc translation, jittable ops, improved calling conventions, better separation between imcc and everything else, ...
jaffa4 improved calling conventions? 08:55
cotto jaffa4, bacek will go through our ops code and figure out which C constructs make the code difficult to jit. Once we have a list of those, we'll write up some documentation on what ops can and can't include.
they do more work than they need to
jaffa4 what about just producing C and compiling it? 08:56
cotto that's what we do now, but it's not workable if we want to generate something other than C
jaffa4 WHat does not it work?
I cannot see any problem with that
C looks like a good idea 08:57
to me at least.
cotto It works fine, but we can't jit from there.
jaffa4 what about using an external compiler?
I am sure that they can handle C.
Sorry what works fine? 08:58
JimmyZ thinks explanation is expensive.
jaffa4 then do not get involved, JimmyZ 08:59
cotto The system we have now (using C + magic) outputs C code that's compiled to an executable. We can't use the current system in a different way because we don't have sufficient semantic knowledge of the C code at build time. 09:00
jaffa4 you tell me a lot of new things. 09:01
1. bytecode can be converted into C code now, Is it what you are writing? 09:02
cotto Bytecode can't currently be converted to C code. It's executed by compiled C code.
jaffa4 What outputs C code then?
cotto ops2c
compiling .ops files to C code is part of the build 09:04
jaffa4 pir becames pasm
if I remember correctly 09:05
What is the connection between pasm and ops?
Is it the same thing?
cotto pir and pasm are compiled directly to pbc
or executed
jaffa4 What does ops appear?
pbc is executed through ops right? 09:06
cotto what do you mean?
jaffa4 pbc is executed through translated opsin C right?
pbc is executed through translated ops in C right?
cotto I think what you're saying is correct. 09:07
jaffa4 but it would be possible that instread of calling those C routines
they would be printed into a file. 09:08
generating a C file
JimmyZ I guess that what JIT does?
jaffa4 Is this difficult? 09:09
which file interprets the byte code?
cotto we used to have something like that, but it wasn't reliable
jaffa4 Why? 09:10
cotto not usre
*sure
TiMBuS i think just unrolling the core runtime would only barely increase speed though..
cotto jaffa4, it depends on what you mean by "interpret" 09:11
TiMBuS i mean all you're doing is getting rid of a big switch statement. switch statements are pretty darn fast?
jaffa4 I gues bytecode is interpreted
cotto What any given op does is defined by its .ops file
jaffa4 TiMBuS: who are you asking?
TiMBuS well, you i guess. im assuming that's your current idea 09:12
jaffa4 cotto, interpret means going through the byte as a stream, then using a case statement or an array that returns locations of functions that are called with arguments obtained from byteocde 09:13
TiMBuS remove the runtime loop by printing out each op in a big sequence, and then compiling it
jaffa4 that is what I mean too
cotto jaffa4, op dispatch and execution are different things. src/runcore/cores.c does the op dispatch and runloop 09:14
TiMBuS yeah but that's not enough. a jit would turn each op into much less than that
jaffa4 you mean some kind of optimisations 09:16
TiMBuS yes. 09:17
cotto the compiled C code form the .ops files has all the functions that are run when ops are executed
jaffa4 so?
cotto *from
You're asking about how ops are interpreted. That's part of it. 09:18
jaffa4 cores.c need to be modified 09:20
to product a C file
or jit 09:21
TiMBuS what im saying jaffa4, is to make a fast C compiler backend for parrot, youd probably need to rewrite every existing opcode into a more optimized 'template' form of C, which youd then copy and paste and fill in the blanks during the compilation step. only then would you really have something that you want,
and frankly its just easier to emit native machine bytecode at this point
jaffa4 what is native machine bytecode? 09:24
Do you mean the machine language of a computer?
TiMBuS yeah
cotto jaffa4, are you a gsoc student? 09:26
jaffa4 Ino
cotto ok 09:27
jaffa4 IS fast core workign now? 09:29
cotto yes 09:30
jaffa4 the todo says
in cores.c
that it fails in test suites
JimmyZ there are some failed test in fast core, that's why is not the default 09:34
09:35 mj41 joined
jaffa4 What could the old jit do? 09:38
cotto fast is the default. 09:39
that comment needs to go away
jaffa4 Where is the old jit? 09:40
cotto We ripped it out. You'd have to look at an old version of Parrot. I think it was still in 1.0. 09:41
jaffa4 it is not even in the reposiory
dalek rrot: 261dda2 | cotto++ | src/runcore/cores.c:
decide no, remove todo comment
09:42
cotto you could check out v1,0 09:43
.
It's not in a current version though.
It's getting early. I need to sleep. 09:44
'night
jaffa4 ok 09:47
09:54 JimmyZ left 11:26 whiteknight joined 11:33 mtk left
whiteknight good morning, #parrot 11:36
I didn't even know we had a forth compiler on Parrot
11:40 mtk joined 11:55 Patterner left 11:56 Psyche^ joined, Psyche^ is now known as Patterner
whiteknight not only do we have a forth compiler, but apparently it's been working 11:57
dalek nxed: r942 | NotFound++ | trunk/winxedst0.cpp:
diagnose operator exists not supported in stage 0
11:58
12:20 Kulag left, Kulag joined
jaffa4 are there different integer type under Parrot? 12:21
NotFound jaffa4: yes 12:24
jaffa4 I remember only integer tyoe under PIR
NotFound Where do you want to have it? 12:25
jaffa4 in PIR
code
NotFound You have int register and 'Integer' PMC. 12:26
jaffa4 but not int8
int 16
in32
int64
NotFound No
12:32 PacoLinux left 12:33 PacoLinux joined
dalek nxed: r943 | NotFound++ | trunk/winxedst1.winxed:
delete emit_get method in OpExistsExpr, using the inherited one is fine
12:35
12:37 dodathome left 12:42 kid51 joined 12:46 ambs joined 13:18 hudnix joined
whiteknight msg plobsing if you have a chance can you look at the forth failure? nopaste.snit.ch/39744 it's packfile related and I dont have time to examine it today 13:28
aloha OK. I'll deliver the message.
NotFound whiteknight: What forth? trac.parrot.org/languages/browser/forth/trunk ? 13:33
whiteknight github.com/parrot/forth
NotFound whiteknight: cannot reproduce 13:38
whiteknight really? weird
NotFound $ parrot forth.pbc hello.frt
Hello World!
This is Parrot version 3.2.0-devel built for amd64-linux.
whiteknight that parrot is after the imcc_compreg_pmc merge 13:39
NotFound Updating and rebuliding... 13:40
kid51 whiteknight: Re: trac.parrot.org/parrot/ticket/2088 Would there be anything in docs/user/pir/exceptions.pod that needs modification that could be causing this problem? 13:42
whiteknight kid51: I'm not sure. It's possible. I need to dig into the test and figure out where it's crapping
NotFound After updating, it doesn't pass its tests.
13:47 gbacon joined
whiteknight does it run that hello world example fperrad posed? 13:49
NotFound No 13:50
whiteknight okay, so that's the problem
kid51 Another POD file that might be causing that problem is: docs/user/pir/pmcs.pod
whiteknight kid51: what number is it skipping? 13:51
kid51: and is there any way to print out the snippet for that number?
kid51 I'm still not sure what is happening.
t/examples/pod.t prepares a list of files with POD to be analyzed 13:52
I'm trying to see at what point in that list it starts to generate that error.
lists.scsys.co.uk/pipermail/catalys...23006.html
NotFound whiteknight: the compile function tailcalls into compreg'ed PIR. Is that supposed to work? 13:53
whiteknight NotFound: Yes, it should 13:54
there is a test for that behavior in Parrot's suite
NotFound whiteknight: changing it to a call - return it works. 13:55
whiteknight damnit
okay, so that's the solution
tailcall into that compreg PMC is broken
NotFound Also, it will benefit from adding finalize to its exception handlers.
whiteknight :) 13:56
I thought this damn bug was fixed 14:01
NotFound Workaround commited
whiteknight thanks 14:02
14:10 dodathome joined 14:21 zby_home joined
dalek rrot: ade5602 | NotFound++ | src/pmc/opcode.pmc:
missing return in Opcode get_number vtable
14:30
rrot: b2ab0f3 | NotFound++ | src/multidispatch.c:
declaring something as const and immediately casting away constness is pointless and dangerous
14:41
NotFound (Ignoring warnings)-- 14:42
dalek rrot: abe179c | NotFound++ | src/pmc/packfileopmap.pmc:
missing return in PackfileOpMap get_pmc_keyed_int vtable
14:47
rth: 7d10105 | fperrad++ | / (2 files):
methos stdhandle is gone
14:50
rth: 354d176 | fperrad++ | forth/ (2 files):
CodeString is gone
rth: 5caedc1 | NotFound++ | forth/forth.pir:
workaround for .tailcall problem after imcc_compreg_pmc merge
whiteknight now forth is appearing in the dalek feed
not that I expect much traffic
mikehh kid51: ping 15:03
whiteknight: ping 15:05
15:13 preflex left 15:15 preflex joined 15:17 dodathome left
kid51 mikehh: pong 15:18
mikehh kid51: just added to TT #2088 - it looks as though the print is actually being executed 15:20
so that fragment with two print statements print 42 and print 43 seems to be the problem 15:22
so the changes brought in by the merge seems to be doing something different with print 15:23
kid51 Agreed. When I delete the 2'print' statements, test passes. 15:25
Can you post that to ticket? I have to go afk
mikehh that code fragment has not changer since 2008 15:27
15:35 woosley left
whiteknight pong 15:39
mikehh whiteknight: check out the last 3 comments on TT #2088
whiteknight I've been following along with the emails. Thanks mikehh++ and kid51++ for looking at this 15:40
mikehh it seems to me that the merge changed what the print is doing in the test as it passed before the merge 15:41
whiteknight is the test comparing what the output should be? 15:42
I mean, what is causing the test to fail?
or, what is the test expecting to happen?
mikehh what worries me (if the test is correct) it only gets picked up in one test that is not part of the regular tests 15:43
it seems that the test fragment actually puts '42' and '43' in the output stream, which somehow did not happen before 15:44
dalek tracwiki: v21 | tcurtis++ | ParrotGSoC2011Students
tracwiki: Add myself.
tracwiki: trac.parrot.org/parrot/wiki/ParrotG...ction=diff
whiteknight mikehh: Okay, that snippet by itself executes and does what I expect it to do when run directly 15:48
so the question is whether the behavior changed and, if so, if it's a bug
mikehh whiteknight: right you are 15:49
whiteknight okay, the test executes the snippet as "./parrot -o /dev/null <filename> 2> <errfile>" 15:52
and when I run that snippet with that command line, I get "4243" exactly as I expect
I don't know what would have happened prior to the merge, but if it *didn't* have that output before, i think it's a bug 15:53
er, I think it was abug
15:53 theory joined
mikehh there are some other print's in docs/pdds/pdd19.pir and they don't seem to cause a problem 15:54
whiteknight only :immediate and :postcomp would actually execute with that commandline sequence 15:56
mikehh so effectively you are saying that :immediate and :postcomp did not work correctly before and hence we need to cater to that in the test 15:58
15:59 ambs_ joined 16:01 ambs left, ambs_ is now known as ambs 16:04 fperrad left 16:08 fperrad joined
mikehh afk for a bit 16:11
16:11 ambs left 16:13 kid51 left 16:16 Eduardow left 16:20 bubaflub joined 16:30 ambs joined
whiteknight mikehh: I suspect not. I mean, this is the behavior I would expect to be "correct" 16:34
but then again, it's probably not specified anywhere
we can bring it up at #ps
It's not trivial to go back to the old behavior, but it is possible 16:36
16:47 ligne joined 16:50 Eduardow joined
cotto wtf. melange just published a comment as public that I marked as private. 16:51
melange-- melange-- melange-- 16:53
bubaflub cotto: you're not the first 16:57
cotto and now it works 16:58
melange-- melange-- melange--
I doubt the student will see the comment, but blech
seen justina 17:03
aloha Sorry, I haven't seen justina.
dalek rdinal: aa90763 | (Daehyub Kim)++ | src/parser/actions.pm:
modify coding miss
17:14
17:19 TimToady left 17:20 sorear left
bubaflub that last commit on cardinal was from lateau++ 17:22
17:35 rohit_nsit08 joined
rohit_nsit08 whiteknight: hello! 17:36
17:39 sorear joined 17:42 dodathome joined
whiteknight hello rohit_nsit08 17:43
cotto: I suggest we do not use melange for private comments 17:44
cotto: I suggest we just email them to each other
rohit_nsit08 whiteknight: Just watched a google tech talk on javascript engine v8 and i must say It was very cool :-) 17:45
whiteknight awesome
link?
rohit_nsit08 whiteknight: It's on youtube , i downloaded it yesterday wait a sec
dalek rrot: 76f626a | petdance++ | compilers/imcc/pbc.c:
consting, and cleaned up some splint warnings.
17:46
rohit_nsit08 whiteknight: www.youtube.com/watch?v=FrufJFBSoQY
whiteknight: i liked the inline caching concept
whiteknight yes 17:47
nopaste "NotFound" at 192.168.1.3 pasted "Yet another experiment with prototype based objects" (93 lines) at nopaste.snit.ch/39754
NotFound whiteknight: take a look at that. 17:48
bubaflub NotFound: i know i offered before, but i thought i'd put it out there again - if you need help migrating Winxed to GitHub let me know. i'm more than willing to help. 17:52
NotFound bubaflub: thanks, but I don't think I need it, the test I did some weeks ago had no problem. 17:53
bubaflub NotFound: ok, great.
dalek rrot: 7885632 | petdance++ | src/pmc/hashiterator.pmc:
removed unnecessary interp arg
17:54
17:54 gbacon left
whiteknight NotFound: Oh, nice. I may want to "borrow" some of this code for Rosella 18:01
or something like it
I'm not happy with my current prototype library
NotFound whiteknight: the key issue is the overriding of find_method to work around the method cache.
whiteknight does that avoid the method cache? I thought the cache was searched first before the vtable override 18:04
yeah, the cache is searched first 18:05
NotFound whiteknight: it does not avoid it, but returns to it a closure that does the real search when invoked.
whiteknight oh, right
okay, that makes much more sense
NotFound Not very efficient, but it may allow test implementations of javascript object model. 18:06
whiteknight I've never seen getattribute_p_p_s_s before
moritz are you looking at 6model?
whiteknight oh wait, nevermind
moritz: no, pure winxed
NotFound: yes, this is almost exactly what we will need 18:07
NotFound Impure winxed, it needs pirops for low level operations.
whiteknight NotFound: would you mind if I added some of this to Rosella?
NotFound whiteknight: sure, borrow what you want. 18:08
whiteknight NotFound++ 18:09
whiteknight has to go run errands. Will be back later tonight 18:10
18:12 whiteknight left
dalek rrot: 677969b | petdance++ | src/pmc/unmanagedstruct.pmc:
consting
18:14
18:25 gbacon joined, theory left
nopaste "NotFound" at 192.168.1.3 pasted "Yet another experiment with prototype based objects - more elaborated version" (133 lines) at nopaste.snit.ch/39755 18:30
19:10 zby_home left 19:19 TimToady joined
dalek rrot: 551242c | fperrad++ | tools/install/smoke_languages.pl:
[languages] add a smoke test for Winxed
19:21
19:33 gbacon left 19:34 rohit_nsit08 left
dalek rrot: 029a2cd | petdance++ | / (3 files):
Consting, and shimmed an interp arg
19:40
cotto dukeleto, ping 20:01
20:03 theory joined 20:14 jaffa4 left 20:25 fperrad left 20:49 soh_cah_toa joined 20:54 dodathome left 20:56 theory left 21:02 sirmacik joined
sirmacik hi there 21:02
I'm trying tu build parrot from git but I've got the following error while trying to use fakeroot:
ERROR: ld.so: object 'libfakeroot.so' from LD_PRELOAD cannot be preloaded: ignored. 21:03
maybe someone here know how to deal with it?
21:06 ambs left
moritz where are you using fakeroot? 21:09
and why?
tadzik building packages for Arch Linux 21:10
plobsing I run Arch and my libfakeroot.so is under /usr/lib/libfakeroot/. Perhaps you need to ldconfig. 21:12
sirmacik Mine also is in that directory 21:15
there is no difference after running ldconfig 21:22
21:26 kid51 joined
plobsing sirmacik: are you able to run 'fakeroot' from the command line? 22:00
sirmacik yes
it works fine on other packages
mikehh t/src/extend_vtable.t blows up completely with g++ build (coretest, smoke and src_tests) - see TT #2084 22:04
t/examples/pod.t fails - see TT #2088
all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#14253) fulltest) at 3_2_0-339-g029a2cd - Ubuntu 11.04 beta i386 (g++)
plobsing sirmacik: what package exactly are you trying to build from source? 22:11
and where can I find the script to replicate it?
sirmacik I'm trying to make parrot-git package. Here is my pkgbuild based on parrot from repository: paste.pocoo.org/show/368691/ 22:13
22:14 kid51 is now known as kid51_at_dinner 22:21 mj41 left 22:22 theory joined 22:46 particle1 joined 22:49 particle left 23:05 Coke left 23:07 kid51_at_dinner left 23:26 takadonet joined
plobsing sirmacik: I got the same problems when trying to build the package. I found a workaround by creating a symlink '/usr/lib/libfakeroot.so'. 23:29
23:29 Coke joined 23:34 takadonet left 23:37 mtk left 23:43 mtk joined
sirmacik thx for help plobsing (: 23:52