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 | Goals: Get more GSoC ideas on wiki; close tickets; stable 3.2 release; assess status of roadmap goals for 3/15 meeting.
Set by moderator on 18 March 2011.
00:07 sjn_ joined 00:08 theory joined, cosimo joined 00:16 soh_cah_toa joined, cosimo left 00:17 cosimo joined, cosimo left 00:18 cosimo joined
dalek rrot/opsc_llvm: f1a81ea | bacek++ | runtime/parrot/library/LLVM/BasicBlock.pm:
Add LLVM::BasicBlock.insert_before();
00:19
rrot/opsc_llvm: 1f4542e | bacek++ | runtime/parrot/library/LLVM/Value.pm:
Return self from Value.name for simplify chained calls.
rrot/opsc_llvm: b440a5c | bacek++ | runtime/parrot/library/LLVM/Type.pm:
Improve Type::PMC slightly.

LLVM doesn't like pointer(void). It should be replaced with pointer(int8()). Which makes sanse but still quite surprise.
rrot/opsc_llvm: a9482e2 | bacek++ | runtime/parrot/library/LLVM/Value.pm:
Fix typo
rrot/opsc_llvm: 25c884a | bacek++ | / (2 files):
Add Type::function for create FunctionType
rrot/opsc_llvm: 71d072f | bacek++ | runtime/parrot/library/LLVM/Module.pm:
Switch Module to use Type::function
rrot/opsc_llvm: 84952f9 | bacek++ | runtime/parrot/library/LLVM/Value.pm:
Fix bug with Value.name.

We should actually return result of LLVM call.
00:21 theory left 00:23 whiteknight left 00:29 kid51_at_dinner left
soh_cah_toa sorry, but i got a noob question here: what are all these messages from dalek about that show up from time to time? 00:32
bubaflub soh_cah_toa: dalek is a bot that reports commits to parrot and related repo 00:34
bacek_at_work soh_cah_toa, commits into parrot and related repos
soh_cah_toa okay 00:35
plobsing soh_cah_toa: we have a number of bots. dalek reports commits, ttbot reports continuous integration failures, aloha delivers messages and factoids (but is quite shy), clunker3 is for kicking because we no longer need it and it keeps comming back 00:42
bacek_at_work plobsing++ :) 00:43
soh_cah_toa cool, i've never seen that before 00:44
dalek rrot/opsc_llvm: 0adf372 | bacek++ | / (2 files):
Add BasicBlock.prev
00:45
00:45 kid51 joined
kid51 bacek_at_work ping 00:49
bacek_at_work kid51, pong 00:50
bacek_at_work is here barely. 00:51
kid51 bacek_at_work: I just want to make sure you got my msg about t/library/llvm/.
bacek_at_work kid51, yes, thanks. I think we should enable recursive processing. Otherwise t/library will be stuffed with a lot of independent tests. 00:53
especially for any reasonable complex library.
00:57 bubaflub left, theory joined 00:59 mtk left 01:05 woosley joined 01:07 mtk joined
dalek rrot/opsc_llvm: c21ee4f | jkeenan++ | lib/Parrot/Harness/DefaultTests.pm:
Add t/library/*/*.t to list of globs included in \\@library_tests, hence run during 'make test'.
01:13
01:13 sjn left
nopaste "kid51" at 192.168.1.3 pasted "opsc_llvm branch: t/library/llvm/*.t: results when only older version of LLVM is available" (120 lines) at nopaste.snit.ch/38345 01:14
bacek_at_work kid51, can you replace libname on line 108 in runtime/parrot/library/LLVM.pm? 01:16
with probably libLLVM-2.2.so
hmm 01:18
It will not work. llvm-2.2 (at least in debian) doesn't have shared library.
dalek rrot/opsc_llvm: cf06776 | luben++ | runtime/parrot/library/LLVM/Builder.pm:
Add more Builder methods
01:19
rrot/opsc_llvm: a9403d6 | luben++ | / (7 files):
Merge branch 'opsc_llvm' of github.com:parrot/parrot into opsc_llvm
kid51 bacek_at_work: Perhaps we should search for a minimum version of LLVM in config/auto/llvm.pm (and adjust t/steps/auto/llvm-01.t accordingly)? 01:20
bacek_at_work kid51, sounds about all right. Something like "2.7+" will work.
actually, 2.7 is minimal required version. 01:21
01:27 dmalcolm left 01:33 hercynium joined 01:34 luben joined
bacek_at_work luben, ping 01:40
msg luben Can you add "A" record with your "git commits email" into CREDITS? Than dalek will properly give you karma for commits. 01:44
aloha OK. I'll deliver the message.
01:45 particle left 01:46 particle joined
luben bacek, thanks, it's OK now, I was not working from this laptop and the previous 2 commits I have not setup the git repo with my email 01:46
bacek_at_work luben, ok 01:47
luben the last commit seems OK
bacek, if I could help with llvm/jit branches, tell me where to hack, what is most important 01:51
cotto ~~ 02:04
02:09 robertpeters_WLS joined
robertpeters_WLS Hi everyone. 02:09
Does someone have a moment to assist me with a Parrot installation problem?
When I type "parrot setup.pir test" at the prompt, I get "load_bytecode" couldn't find file 'distutils.pbc' 02:11
I'm on a rather fresh install (haven't done anything with it yet), using Windows 7 64bit and ActiveState Perl (Strawberry gave me an error when I tried to install it)
I feel like Parrot isn't finding its own directories (like it doesn't know where to look for it's modules). I'm typing that code within the main Parrot directory. 02:12
dalek rrot/opsc_llvm: 79bb548 | luben++ | runtime/parrot/library/LLVM/ (2 files):
* Add list of all available optimizer passes
02:15
02:18 marcel_r joined
plobsing robertpeters_WLS: you could try using a tool that monitors a process for system calls to confirm this. 02:19
wikipedia suggests strace (presumably short for "system trace") is a debugging utility in Linux to monitor the system calls used by a program and all the signals it receives, similar to "truss" utility in other Unix systems. This is made possible by a kernel feature known as ptrace.
oops. sorry, paste-o 02:20
www.intellectualheaven.com/default....strace.htm
02:20 mikehh left
robertpeters_WLS Thanks, plobsing. I'm using Windows, unfortunately. 02:20
02:20 jsut joined
plobsing although I cannot personally vouch for this product, not having developed on windows in a while 02:20
cotto There's probably a sysinternals tool you can use. 02:21
robertpeters_WLS Ah. I see the link is for Windows, thanks.
cotto, can you elaborate? 02:22
cotto robertpeters_WLS, I'm digging to see what looks likely. Are you familiar with sysinternals? 02:23
robertpeters_WLS No. :(
kid51 msg bacek-at_work I will probably have a version of config/auto/llvm.pm that tests for min version in a day or two.
aloha OK. I'll deliver the message.
cotto They make a number of very useful windows-specific tools for digging into internals 02:24
kid51 robertpeters_WLS: Did you try: cd your_language_directory;../parrot.exe setup.pir 02:25
robertpeters_WLS I'm surprised the solution would be that involved. I haven't done anything but a basic install! :)
kid51: yes, but got the same error
02:25 jsut_ left
cotto process monitor and process explorer look likely 02:25
kid51 robertpeters_WLS: If it persists, this calls for filing a bug ticket in Trac. 02:26
cotto unfortunately I'm not near a windows machine (and mine at work has Strawberry Perl installed)
robertpeters_WLS Okay. Thanks, everyone. I'll try removing everything and starting over for starters. If that doesn't work, I'll poke around in sysinternals. Thanks! 02:27
plobsing robertpeters_WLS: do you have anything funny in your paths (spaces and/or non-ascii characters have given us problems in the past)?
bacek_at_work kid51, thanks!
kid51, can you try to implement something like --with-llvm-config=<foo> to forcefully set used llvm?
robertpeters_WLS plobsing: no, it's c:\\Users\\<<username>>\\Dropbox\\Parrot-3.2.0 02:28
bacek_at_work luben, most important things for now is LLVM memory management and IO.
robertpeters_WLS username has no spaces or special characters.
bacek_at_work luben, items 6 and 7 from blog.bacek.com/2011/03/finishing-of...ranch.html
luben ok, I will work on that 02:29
bacek_at_work luben, thanks!
luben, can you also set "git config branch.opsc_llvm.rebase true" to avoid merge commits? 02:30
dalek rrot/opsc_llvm: 0376785 | luben++ | runtime/parrot/library/LLVM/BasicBlock.pm:
Some more BasicBlock methods
kid51 bacek_at_work: Please check git status of runtime/parrot/library/LLVM.pir and runtime/parrot/library/LLVM/*.pir. Should they be in gitignore and/or MANIFEST.generated?
Or do they need to be added to MANIFEST? 02:31
bacek_at_work kid51, they should be in .gitignore and cleaned in "make clean" 02:32
kid51 must sleep
02:32 kid51 left 02:37 nwellnhof left 02:42 marcel_r_ joined
luben bacek, why we don't use LLVM::Opaque for LLVMMemoryBufferRef - it is just a pointer? 02:47
02:47 marcel_r left, marcel_r_ is now known as marcel_r
robertpeters_WLS plobsing: I had Parrot installed in my users directory. When I moved it to C:\\Parrot, everything now seems to be working fine. 02:52
02:52 petdance joined
robertpeters_WLS Dunno what the issue was. Thanks for your help. 02:52
bacek_at_work luben, it can probably work. I didn't have time to check it 02:53
02:53 robertpeters_WLS left 02:55 soh_cah_toa left
bacek_at_work luben, I think BasicBlock.as_value should return LLVM::Value, not BasicBlock 03:01
03:03 theory left
luben yes, my fault 03:03
bacek_at_work luben, not "a fault", just "typo" :) 03:04
luben yes , from copy/paste
dalek rrot/opsc_llvm: 0ac018a | luben++ | runtime/parrot/library/LLVM/BasicBlock.pm:
fix copy/paste error
03:05
bacek_at_work aloha, clock? 03:07
aloha bacek_at_work: LAX: Mon, 20:07 PDT / CHI: Mon, 22:07 CDT / NYC: Mon, 23:07 EDT / UTC: Tue, 03:07 UTC / LON: Tue, 03:07 GMT / BER: Tue, 04:07 CET / TOK: Tue, 12:07 JST / SYD: Tue, 14:07 EST
03:15 theory joined
luben bacek, couldn't we hide LLVMMemoryBufferRefs. My idea is to add read/write methods in LLVM::Module, because that's what BitWriter/Reader do: they serialize and deserialize modules 03:22
atrodo neat. doing a duckduckgo for lorito brings up my github repo 03:23
03:43 marcel_r left
cotto duckduckgo++ 03:44
atrodo aloha: karma duckduckgo
aloha atrodo: duckduckgo has karma of 2.
atrodo duckduckgo++
way too low
bacek_at_work luben, go for it. Any functional solution will help. 03:48
luben I'm writing files, working on reading them back 03:49
bacek_at_work luben, excellent! 03:50
luben++
It can be tricky to pass pointer-to-pointer into something like LLVMGetBitcodeModule without involving pure-C. 03:52
luben just a question, do you know how to handle **char types? bitReader uses it for passing parse messages
bacek_at_work luben, in C: const char *message;LLVMFoo(&message); <do something with message>; LLVMDisposeMessage(message); 03:53
in "PIR", some magic with ManagedStruct/PtrBuf.
luben I should figure out how to do it in PIR/NQP ... 03:54
bacek_at_work luben, looks like "B" is what we can use for char** 04:03
t/pmc/nci.t "nci_tB" test
"LLVMFooPtr *" is more... complex. 04:04
luben :) thanks, I will try 04:05
bacek_at_work luben, isn't it 3 o'clock at the morning? 04:07
luben 6 in the morning here
bacek_at_work aloha, clock?
aloha bacek_at_work: LAX: Mon, 21:07 PDT / CHI: Mon, 23:07 CDT / NYC: Tue, 00:07 EDT / UTC: Tue, 04:07 UTC / LON: Tue, 04:07 GMT / BER: Tue, 05:07 CET / TOK: Tue, 13:07 JST / SYD: Tue, 15:07 EST
04:07 hercynium left
bacek_at_work luben, oh-ho-ho. 04:08
luben :) I have slept yesterday till 19 o'clock 04:09
bacek_at_work yeah... I wish sometimes to sleep for few days.
luben haha, yes :) 04:10
bacek_at_work luben, actually you can add .load_module into LLVM_Engine. I think it will save time. We can figure out how to do it via Ptr/PtrBuf later. 04:13
src/dynpmc/llvm_engine.pmc
luben ok, I will do it there, it will save time, yes ) 04:14
:)
04:21 petdance left 04:44 ShaneC left 04:55 ShaneC joined
cotto atrodo, you around? 05:05
dalek rrot/opsc_llvm: 0998fee | bacek++ | src/dynpmc/llvm_engine.pmc:
[cage] Trailing whitespace.
05:22
05:24 kurahaupo_mobi left, kurahaupo joined 05:28 giwi joined 05:29 sjn_ is now known as sjn
luben bacek, ping 05:37
bacek_at_work luben, pong
luben I have it, write to file, read from file, execute 05:38
bacek_at_work luben, SHIP IT! 05:39
luben it is ugly but I have to go to work
bacek_at_work No worries. I'll polish it tonight.
dalek rrot/opsc_llvm: 424fb27 | luben++ | / (4 files):
serialize and deserialize LLVM bitcode to files
05:40
luben the basic problem now is that we have to create an engine in order to read bitcode 05:41
we could make another, very light dynpmc for purposes like these 05:42
bacek_at_work luben, it's not a big deal. We have to have to create it anyway
luben, dynop is better option I think. 05:43
but it will work for now.
luben yes
05:46 Psyche^ joined, Psyche^ is now known as Patterner
bacek_at_work luben++ # llvm bindings! 05:46
05:49 Drossel left, Kulag joined
tadzik duckduckgo++ # way to low indeed 05:52
they totally bought me when I tried "Star Wars Planets" 05:53
05:53 theory left 05:54 kurahaupo left, kurahaupo joined 05:59 contingencyplan left 06:09 luben left 06:14 mikehh joined 06:40 Eduardow left
dalek rrot/opsc_llvm: 203d726 | bacek++ | / (3 files):
Implement function fetching and navigation
06:41
rrot/opsc_llvm: e0e05e1 | bacek++ | src/dynpmc/llvm_engine.pmc:
Split LLVM_Engine.class_init function for initalize LLVM once only. Add empty .init. Fix memory leak in .load_module.
rrot/opsc_llvm: d2f863f | bacek++ | src/dynpmc/llvm_engine.pmc:
Fix loading of bitcode.
rrot/opsc_llvm: 656caea | bacek++ | runtime/parrot/library/LLVM/Module.pm:
Use empty LLVM_Engine to load bitcode
rrot/opsc_llvm: 13d22b9 | bacek++ | src/dynpmc/llvm_engine.pmc:
Rework bitcode loading slightly.
rrot/opsc_llvm: 856b74a | bacek++ | t/library/llvm/99-example.t:
Fix testing loaded module.

Fe have to find proper function from it to call.
06:56 kurahaupo left, kurahaupo joined
dalek Heuristic branch merge: pushed 24 commits to parrot/jit_prototype by bacek 07:05
07:05 rurban_ joined 07:07 rurban left, rurban_ is now known as rurban 07:25 cosimo left 07:28 simcop2387 left 07:29 fperrad joined 07:31 simcop2387 joined 07:53 fperrad left 08:09 mj41 joined 08:17 simcop2387_ joined 08:18 simcop2387 left, simcop2387_ is now known as simcop2387 08:21 kurahaupo left 08:26 simcop2387 left 08:36 simcop2387 joined
dalek rrot/jit_prototype: d2ecf13 | bacek++ | t/jit/test.t:
Actually load CUR_CTX.
08:43
rrot/jit_prototype: e740bad | bacek++ | t/jit/test.t:
Add proto for Parrot_io_printf.
rrot/jit_prototype: 73a5845 | bacek++ | runtime/parrot/library/LLVM/Type.pm:
Create complex parrot's types once only.
rrot/jit_prototype: a308bd8 | bacek++ | runtime/parrot/library/LLVM/Type.pm:
Add * variants of parrot types.
rrot/jit_prototype: 7003a3b | bacek++ | runtime/parrot/library/LLVM/Function.pm:
Add Function.return_type.
rrot/opsc_llvm: 67151ce | bacek++ | runtime/parrot/library/LLVM/Type.pm:
Create complex parrot's types once only.
08:45
rrot/opsc_llvm: ae04e65 | bacek++ | runtime/parrot/library/LLVM/Type.pm:
Add * variants of parrot types.
rrot/opsc_llvm: 1738a31 | bacek++ | runtime/parrot/library/LLVM/Function.pm:
Add Function.return_type.
08:48 mtk left 08:54 mtk joined
dalek rrot/opsc_llvm: d96afc5 | bacek++ | / (2 files):
Add Module type introspection.
08:59
09:18 alin joined
dalek rrot/opsc_llvm: 4430c2e | bacek++ | / (2 files):
Add Module.find_function
09:21
10:14 fperrad joined 10:17 woosley left
moritz fwiw a rakudo smolder submissions resulted in an internal error again 10:31
11:02 jsut_ joined 11:07 jsut left 11:08 whiteknight joined
whiteknight good morning, #parrot 11:12
moritz hello whiteknight 11:14
11:16 whiteknight left, whiteknight joined 11:56 lucian joined, ambs joined
bacek aloha, whiteknight 11:57
whiteknight hello bacek
atrodo cotto> ping 12:23
12:24 bluescreen joined
Coke notes reviewingly that parrot installs are not relocatable. 12:26
(so if you installed to parrot, and then moved to users, it wouldn't work. OP didn't say that's what happened, but something to keep in mind.)
12:40 mj41 left, lucian left, lucian joined 12:52 davidfetter joined 12:54 marcel_r joined
dalek sella/harness_refactor: 025117f | Whiteknight++ | src/tap_harness/ (5 files):
Line is a child of TestFile, so rename it appropriately. Several other fixes and doc updates
12:54
12:55 mj41 joined, mtk left, mtk joined
dalek Heuristic branch merge: pushed 17 commits to Rosella by Whiteknight 12:59
13:00 ambs left, ambs joined 13:08 woosley joined 13:15 contingencyplan joined
dalek sella: 0dd8c8f | Whiteknight++ | src/t (3 files):
Give TestContext a defined API for interacting with the Listeners, instead of using direct attribute access, which is troublesome from NQP. Fix a bug in the harness
13:17
13:21 giwi left 14:27 jsut joined 14:29 mtk left 14:32 jsut_ left 14:34 mtk joined
Andy_ Why am I cage cleaner? Why do I run splint and jack up the warnings in Parrot? 14:42
"We have fixed all the warnings in Drizzle. This is something that isn't sexy work, and the only way it is justified is because cleaning up warnings fixes bugs. If you are starting a new code base let me implore upon on you the necessity of doing this from the beginning." -- krow.livejournal.com/700783.html 14:43
14:48 mj41 left 14:55 plobsing left 15:06 rurban_ joined 15:09 rurban left, rurban_ is now known as rurban 15:12 mj41 joined 15:13 plobsing joined 15:14 Psyche^ joined 15:16 Patterner left, Psyche^ is now known as Patterner 15:19 davidfetter_ joined 15:23 davidfetter left, davidfetter_ is now known as davidfetter 15:52 davidfetter left 16:02 woosley left
cotto_work ~~ 16:05
atrodo: piiiiiiiiiiiiing 16:11
atrodo cotto_work> Have enough coffee this morning? Don't think you're excited enough
cotto_work atrodo: piiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiing
better?
atrodo Much better 16:12
cotto_work so, M0. You had some things to say about it, didn't you?
atrodo I think so, yes 16:13
I was trying last night to figure out which questions to ask and where I could help out
but I didn't get very far 16:16
cotto_work the metadata and variables segments are pretty underdefined
atrodo variables segment inside binary represntation? 16:22
cotto_work yes 16:25
16:28 Eduardow joined, hercynium joined 16:34 mtk left 16:41 bluescreen left 16:42 mtk joined 16:45 alin left
dukeleto ~~ 16:49
16:49 jsut_ joined 16:54 jsut left 17:18 bluescreen joined 17:24 mj41 left, samwho joined 17:25 samwho left 17:26 ShaneC left 17:29 dmalcolm joined 17:46 dodathome joined 17:49 alin joined 17:52 alin left, alin joined 17:54 PacoLinux_ joined 17:56 ShaneC joined 18:02 alin left
whiteknight is actually going to be at #ps toda 18:09
today
18:41 mj41 joined 18:51 marcel_r left 19:07 jevin joined 19:08 bluescreen left 19:17 bluescreen joined 19:27 mj41 left 19:29 bluescreen left
dalek sella: 9aff168 | Whiteknight++ | t/test1.t:
remove an unneeded file
19:30
sella: 2ae4455 | Whiteknight++ | / (6 files):
fix a big bug in TestFactory, it's a wonder it was working at all. Add tests to show that TestFactory can create subclasses of TestCase
sella: 49cbdba | Whiteknight++ | src/test/TestFactory.winxed:
more cleanups, remove debugging code
sella: c5205d7 | Whiteknight++ | t/test/TestCase.t:
more tests for TestContext
sella: e628e4a | Whiteknight++ | / (2 files):
tests for Builder
sella: c459716 | Whiteknight++ | / (3 files):
last few tests about Test
sella: 2974daa | Whiteknight++ | t/tap_harness/ (4 files):
+stub test files for harness
19:31
sella: bde5d67 | Whiteknight++ | / (7 files):
lots of tests for tap_harness, some incomplete
sella: 65ed7b6 | Whiteknight++ | t/tap_harness/TestFile/Factory.t:
+ test for TestFile::Factory
19:35 plobsing left 19:40 plobsing joined 19:44 bluescreen joined 19:46 kid51 joined
cotto_work #ps in 35 19:53
19:55 PacoLinux_ left 19:56 alin joined 19:59 marcel_r joined 20:03 alin left
plobsing whiteknight: have you had a look at www.sable.mcgill.ca/mclab/ for matrixy? they appear to have some interesting ideas. 20:06
20:19 alin joined 20:20 bluescreen left 20:21 dodathome left, samwho joined 20:24 samwho left
cotto_work #ps in 5 20:25
20:28 mj41 joined
whiteknight plobsing: no I haven't seen that project yet 20:30
kid51 #parrotsketch starting
plobsing whiteknight: they claim to have a frontend, IR, VM with JIT (including what appears to be trace-based optimization), and fortran translator. 20:31
whiteknight oh, nice
plobsing: What parts of the IMCC branchwork do you think need to be abandoned? 20:43
I didn't think there were too many changes in there which weren't necessary
plobsing I'm not entirely sure. But anything that occurred after the incorrect GC workaround is questionable. 20:44
whiteknight which incorrect GC workaround? You mean the TT #1990 stuff?
plobsing There are a number of whiteknight/imcc* branches lying around. I'm sure we can some of that back into master. 20:45
whiteknight most of those are useless and need to be deleted
I've just been lazy
plobsing whiteknight: yes. the TT #1990 workaround can be reduced to "turn of the GC for any program of consequence"
whiteknight none of them besides imcc_compreg_pmc are mergable
plobsing which is not an acceptable workaround
whiteknight I'm still convinced that the new PtrObj PMC I set up on that branch for the PackFile is the correct way to do 20:46
it's just a matter of figuring out why it doesn't seem to work. I may have messed something up 20:47
plobsing but they appear to represent logically separate points on the roadmap you outlined, and it would seem to me that, at some additional cost, could be merged into master giving some of the overall benefits immediately
dalek rrot: 7c16e69 | petdance++ | src/packfile/api.c:
Pass NULL instead of 0 for null pointer
whiteknight those branches weren't developed independently and set up to be merged. They're basically dumping grounds for me with several different parallel tasks I was working on
dalek rrot: 6e55eea | petdance++ | src/gc/gc_ms.c:
gc_ms_alloc_objects() actually does modify the mem_pools argument
whiteknight they are all interdependent
plobsing well they are blocking on a time sink 20:48
I'm looking to work around that
whiteknight what do you mean?
the imcc work is blocking mostly on a lack of motivation on my part, not for any other reason 20:49
what I need to do is get my sorry ass back into gear
plobsing the GC problem is undiagnosed. I can't seem to figure out where it goes wrong. without a diagnosis, we stand no chance of fixing it.
If you think you can get that branch in order, go ahead. I know I cannot do so at the current time, so my plans were based on what I *can* do. 20:52
whiteknight I think I can. I just need to sit down and do it
let's set up a timeline: If I can't make real progress on that branch by this weekend, we hammer out a plan B 20:53
plobsing OK 20:55
20:55 PacoLinux left, marcel_r_ joined 21:00 marcel_r left 21:01 soh_cah_toa joined, marcel_r_ is now known as marcel_r
whiteknight plobsing: while I dig, if you want to look through the code and see if you can tease apart subsets of changes to merge, that would be fine too 21:01
no reason we can't tackle it from both angles
soh_cah_toa marcel_r: so have you given anymore thought into what project you'd want to take on? 21:02
marcel_r: gsoc, i mean 21:03
21:03 mj41 left
marcel_r soh_cah_toa: I am really inclined to work on Python-on-Parrot. 21:03
soh_cah_toa: What about you?
plobsing whiteknight: I'll have a look at making imcc_info_struct mergeable. If we can get that, I'm confident we can argue at least partial success on the roadmap item. 21:04
whiteknight okay, that's a good goal
21:04 bluescreen joined
soh_cah_toa marcel_r: i'm thinking i'd like to work on the debugger 21:04
whiteknight debugger is a good project idea
soh_cah_toa yeah, it seems like it's one of the projects that need the most work 21:05
whiteknight marcel_r: get in touch with allison and lucian about python. Allison is a potential mentor. Lucian is another student with a similar project idea
marcel_r whiteknight: Lucian has great ideas. I didn't have the lucky to talk to Allison here yet. 21:07
whiteknight marcel_r: yeah, she is busy.
soh_cah_toa whiteknight: what about me? is there anyone in particular i should talk to about the debugger or are you the mentor? 21:08
whiteknight soh_cah_toa: nobody in particular. Obviously nobody has been working on the debugger yet
I suspect I'm a possible mentor for it. cotto too, maybe
lucian marcel_r: i wouldn't call them great
whiteknight lucian: than I shudder to think what your "great" ideas must be like 21:09
lucian whiteknight: :))
marcel_r :D
plobsing who mentored the parrot-instrument project last year? I'd wager they are probably the most qualified.
lucian but really, it's just what i know of compiler writing (which is very little)
whiteknight lucian: can the python-on-parrot realm support two independant GSoC projects for the summer? 21:10
plobsing: cotto did
lucian whiteknight: i don't really know
there are two main parts: compiler and object system
21:10 hudnix joined
marcel_r lucian: Do you plan to work on both parts? 21:11
lucian marcel_r: that was the plan initially
whiteknight I suspect that the two of those are too large to be done in a single summer by a single person 21:12
lucian by using the 'ast' module, the compiler ends up being rather simple
only a PIR codegen would have to be written
whiteknight the object model is going to be tricky, because Parrot's current object model is actively broken
lucian whiteknight: the idea was to ignore it entirely
whiteknight lucian: right, but then you'll have to plug in your own, and the interface there isn't always pretty 21:13
I'm just saying, there are some dragons inside Parrot that need to be killed as part of that project
lucian hmm. can pmc be written in just pir? 21:14
or winxed
NotFound Targeting what? C? 21:15
marcel_r Beside compiler and object model, there are also runtime library. Built-ins, standard modules.
lucian marcel_r: i was hoping to reuse someone else's 21:16
plobsing lucian: there is no mechanism in PIR to create non-Class pmclasses. If there were, you could. But as it stands, PIR traps you in Parrot's object system.
whiteknight lucian: that gives me a great idea for a project
lucian plobsing: i see
plobsing: that's sad 21:17
whiteknight a compiler that could convert a pmclass written in something like winxed into C for use in Parrot
21:17 PacoLinux joined
plobsing lucian: with enough work, you can add an op for that 21:17
whiteknight so we could remove Pmc2c, and rewrite our core PMC types in something nicer than C
plobsing Parrot's new motto "there's an op for that!"
lucian whiteknight: i've been saying that for a while
whiteknight lucian: you need to say it to me, not just to a wall somewhere
:)
lucian heh 21:18
you might've been lurking, dunno
roughly what i expressed was that i'd like to see a system language (winxed or similar) to target lorito, and have *everything* written in that
NotFound I prefer to write C than trying to figure what code in other language would generate the C that I want.
That seem more reasonable. 21:19
marcel_r NotFound: I agree.
21:20 kid51 left
lucian and lorito or M0 or w/e would be a textual mapping to the bytecode parrot used (pbc?) 21:20
since that's what all successful VMs do, why not?
cotto_work lucian: that's not far from the plan 21:21
lucian no what i think of it, i could implement python's object system with winxed classes, although not so efficiently
cotto_work: then i must've misunderstood the plan :) 21:22
i've seen a lot of focus on designing the assembly/bytecode, but none into designing the (what i believe to be vital) system langauge
whiteknight Winxed is still missing some features, like multis. It's still a hell of a great language to use for writing Parrotish stuff
NotFound lucian: that will help to know what features the parrot object system lacks. 21:23
cotto_work the plan is that once we know that M0 is viable, we'll build as much of Parrot as possible in something that compiles down to an m0 overlay
lucian right. but how do you know M0 is appropriate for that?
cotto_work turing-completeness and ffi 21:24
21:25 bluescreen left
lucian sure, but then you might as well use an existing assembly that is turing-complete and has a ffi 21:25
cotto_work (that's hyperbole, but it doesn't matter if the compiler has to generate code that'd be a pain for a human to write) 21:26
lucian no, but m0 might be at the (slightly) wrong abstraction level for efficiency
looking at jvm bytecode for example, the bytecode has objects as primitives 21:27
cotto_work does java support a meta-object model though? 21:28
er, jvm
lucian it mostly says "java objects are meta-objects"
dukeleto this looks like an interesting book: pragprog.com/titles/vspcon/programm...on-the-jvm 21:35
lucian interesting. also interesting are rich hickey's clojure talks 21:37
21:39 marcel_r left
cotto_work back 21:46
21:53 Andy_ left
allison marcel_r: I seem to be on an odd timezone at the moment 21:54
marcel_r: sorry to miss you so far
allison notes I missed him again 21:55
NotFound Odd timezones are the same as even timezones with DST applied? 21:56
PerlJam NotFound: not universally. 21:57
though I have to wonder what an "odd timezone" is :) 21:58
cotto_work the sun 21:59
PerlJam Maybe an odd timezone is one of those that aren't an integral number of hours from UTC? 22:00
22:06 plobsing left 22:13 ambs left
bacek_at_work ~~ 22:14
soh_cah_toa whiteknight: could you send me the link for parrot-instrument again? i forgot to bookmark it 22:22
whiteknight github.com/Whiteknight/parrot-instrument
soh_cah_toa thanks
22:24 plobsing joined
whiteknight no problems 22:25
22:27 minusnine left
soh_cah_toa so what's on the agenda for tonight's meeting? i've obviously never been to any before and am curious as to what goes on 22:28
cotto_work tonight's meeting? 22:30
You may be disappointed if you're referring to #parrotsketch.
soh_cah_toa yeah, why?
cotto_work it happened 3 hours ago 22:31
date --utc
soh_cah_toa whoops
cotto_work now you know 22:32
soh_cah_toa wow, what a noob mistake. i feel like a total idiot 22:35
lucian soh_cah_toa: don't feel too bad, it was a rather light meeting 22:36
Tene nah, s'fine. Most of us have done it before.
I've done it several times. :)
lucian that too 22:37
soh_cah_toa i forget that not everybody is in the eastern time zone 22:38
22:38 mtk left
dukeleto totally forgot about #ps today 22:40
22:43 Payne joined
Payne hi anybody 22:44
whiteknight soh_cah_toa: you're eastern? Where at?
hello Payne
Payne is here anybody from Parrot dev team?
soh_cah_toa whiteknight: new jersey 22:45
whiteknight soh_cah_toa: oh wow. I'm Philly. Where in NJ?
Payne: we all are. Welcome to #parrot
Payne ok nice
soh_cah_toa whiteknight: north haledon. small town in passaic county 22:46
Payne I want to ask about GSoC
soh_cah_toa whiteknight: i was thinking of coming out to philly for fosscon in july
whiteknight Payne: Awesome!
soh_cah_toa payne: me too
whiteknight soh_cah_toa: Yeah, I've been thinking about going to fosscon too. 22:47
Payne I participated last year and want to p[articipate this year too
I mean last year in different project
whiteknight Payne: oh really? What project did you work for last year? What kinds of things are you interested in?
Payne the question is is this first year Parrot participated in GSoC? 22:48
i worked on Gephi, gaphical visualization engine written in Java
addin support for Neo4j - graph database
I am interested in some Java stuff
and these days ANTLR seems like nice parser generator 22:49
ANTLR 3.0
first question is what languages uses Parrot?
because on wikipedia there was C language
but in some proposals there were some languages specific for Parrot 22:50
whiteknight This is the first year Parrot is doing GSoC individually
we used to work together with the Perl Foundation
The last few years, the Parrot Foundation and the Perl Foundation did GSoC together
Payne ok 22:51
22:51 plobsing left
whiteknight Payne: Perl6 is primarily on Parrot right now. We have other compilers too. Cardinal is a Ruby compiler, Pynie is a Python compiler, Partcl is a TCL compiler 22:51
Tene I've been so busy with work lately... I really need to carve out some time for cardinal. 22:53
soh_cah_toa payne: i'm a student too. if you look at the parrot gsoc wiki there are some projects that need java developers. trac.parrot.org/parrot/wiki/GSoc2011
Tene If I can get the metamodel working well, it will unblock a lot of other work.
Payne soh_cah_toa: really? 22:55
whiteknight Tene: is metamodel work something that could could, or would want to, pawn off onto a GSoC student?
Payne soh_cah_toa: I saw just one project
on java 22:56
soh_cah_toa payne: yeah, take a look
whiteknight Payne: that's not a limited list, it's just ideas. You can propose other projects too if you want
Tene whiteknight: Possibly. I don't know what's appropriate or not for gsoc. 22:57
whiteknight Payne: Anything in particular you're interested? Something Java related?
Payne I saw the Java project
but I am completely new to Parrot
so what does it mean to implement support for Java?
22:58 kid51 joined
Payne can you point me to some article, or write in in general? 22:58
soh_cah_toa payne: me too but i've found it very easy to learn. plenty of documentation
Payne and the language implementation have to be done in what language?
perl?
I mean the result of project will be java implementation, but in what language? 22:59
whiteknight Payne: let me look
Payne: ah, we want a Java compiler which targets Parrot
Payne which means?
sorry for stupid questions
whiteknight a "normal" java compiler would compile Java syntax down into java bytecode to run on the JVM
we want a compiler which could compile Java down to Parrot bytecode instead, and run on Parrot 23:00
Payne ok clear enough
whiteknight Payne: so there are a lot of options. You could write the compiler in one of our low-level languages (NQP, Winxed, PIR)
or, you could write the compiler in something you like, like Java. Then bootstrap
think about how a C compiler is written in C 23:01
Payne hm
whiteknight Payne: or, you could find an existing Java compiler, and create a Parrot backend to emit Parrot code instead of JVM code
lots of options, you get to pick what you think is best
the important part is this: I want to write Java code, and run it on Parrot 23:02
because then I can use Java libraries from Perl6, or vice-versa
23:02 dmalcolm left
Payne I made some very quick investigation and the languages don't seem like different ones 23:03
whiteknight what languages?
Payne is this true, or just seems to?
NQP, Winxed, PIR
23:04 plobsing joined
whiteknight NQP is a subset of Perl6. Winxed is similar to JavaScript. PIR is like assembly languge for Parrot 23:04
they are all similar scope (low-level), but very different syntax)
23:06 rurban_ joined
whiteknight and like I said, you can use any other language you want 23:06
hell, write a Java compiler in Ruby if you want
or JavaScript
or Java
or, use an existing compiler
23:09 rurban left, rurban_ is now known as rurban
Payne hm seems interesting, but I dont have much experience with implementing compilers like you write 23:10
and what about the ANTLR project?
maybe I shoudl first ask this question 23:11
plobsing there is a preference for something that is eventually parrot-hosted; either using a language that already works on Parrot, or bootstrapping $LANG in $LANG. But this is just a preference, not a rule.
Payne what are the requirements on students? 23:12
are there a need to have practical experience with compiler design or implementation?
or something else?
whiteknight Payne: practical experience is not needed, but it's nice if you're familiar with the theory of whatever you are working on 23:13
a code generator backend for a compiler does not need much theory
the ANTLR backend doesn't need much theory. All the hard work is done by ANTLER
ANTLR
plobsing Payne: IIUC, google's objective for GSoC is to get students into programming. From that perspective, experience is of neutral to negative value.
Payne ok definitely interested in Parrot, what documentation should I read to get more familiar with the concepts? maybe some high level description will be nice form the beginning 23:14
soh_cah_toa payne: there's lots of docs when you compile parrot 23:15
whiteknight Payne: the files in docs/pdds/ are the design documents
soh_cah_toa payne: also see docs.parrot.org 23:16
payne: i've been reading that non-stop for the past few days and i already feel pretty comfortable with parrot 23:17
lucian Payne: i would suggest you take an existing java compiler and change the backend to target parrot
Payne: think of parrot as the jvm, but more dynamic (and 10 years less mature) 23:18
plobsing lucian: but we've got DaVinci already
lucian plobsing: sure, but davinci doesn't let languages get away without interpretation
s/without/with not doing/
23:18 cognominal left
lucian plobsing: that's parrot's only real advantage 23:19
(offtopic - oddly enough the jvm object system (not java's) is more dynamic than parrot's Object)
plobsing only real current advantage.
lucian i doubt it'll ever be faster
23:20 hercynium left
lucian the other potential advantage is running more languages, and with better interop than on the jvm 23:20
re faster, perhaps it'll be faster if the luajit guy takes an interest :)
Payne soh_cah_toa : you participated last year too? 23:21
soh_cah_toa payne: no, this is my first gsoc
plobsing lucian: there are other aspects than speed. as for speed, we could make changes to get dynamic languages faster than on the JVM (eg: hintable JIT). 23:22
23:22 cognominal joined
lucian plobsing: sure there are, if that's all i cared about i wouldn't be here. or using python 23:22
i sort of doubt a dynamic lang jit will beat java's jit any time soon 23:23
running java, not a dynamic language that is
Tene I'd really love to spend a month or so hacking on 6model and getting it finished and imported into parrot core, etc. 23:24
Payne ok thanks for useful information 23:25
see you
soh_cah_toa payne: bye
Payne soh_cah_toa: and your interest<
?
soh_cah_toa payne: what do you mean?
lucian Payne: btw, harmony have been looking into language agnostic vms apparently 23:26
they might be interested in java-on-parrot
^ apache harmony
plobsing would also like to see a JS-Harmony-on-Parrot
lucian it would be awesome if harmony picked parrot as their main target 23:27
soh_cah_toa Payne: you mean which project i'd like to do?
Payne soh_cah_toa: in parrot I mean what kind of project
soh_cah_toa Payne: the parrot debugger. apparently, it needs a lot of work 23:28
plobsing lucian: probable not going to happen. they'd likely want some changes we'd be unlikely to want.
Payne lucian: any further information about harmony and parrot cooperation?
lucian plobsing: yeah, it's not quite realistic
Payne ok good to know 23:29
lucian Payne: www.infoq.com/news/2011/03/apache-harmony it's interesting to read the ml threads it links to
i mean it's realistic to implement java on parrot
but it's not realistic that apache harmony will target parrot primarily 23:30
Payne ok thanks for fast responses, most IRC I already connected were dead 23:32
dalek rrot/opsc_llvm: 9a0e222 | jkeenan++ | / (5 files):
Add generated files to .gitignore and MANIFEST.generated. Re-run mk_manifest_and_skip.pl. Add files as needed to FLUID_FILES_2 target in config/gen/makefiles/root.in.
Payne nice to see difference
I must go, see you all 23:33
23:33 Payne left 23:36 samwho joined, samwho left 23:38 cosimo joined 23:53 bubaflub joined 23:54 plobsing left 23:56 fperrad left 23:57 plobsing joined