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.
whiteknight that or NQP are the preferred languages for this project, I think 00:00
so if you like Perlish stuff more, do NQP
soh_cah_toa yeah, i've been skimming through it in the parrot-instrument source 00:01
whiteknight Rosella is a library project I wrote that's all written in Winxed 00:02
you can check that out for information about syntax
soh_cah_toa library for what?
whiteknight all sorts of stuff 00:03
actually, it's lots of little libraries
ttbot Parrot 6ee33b49 MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/58885
whiteknight Now that I think about it, Rosella has one or two features which might be useful in a debugger 00:04
but that's all for you to decide, once you know what your design is
soh_cah_toa what would you suggest w/ rosella? 00:05
whiteknight it has libraries for writing unit tests, but is also has a proxy library which allows you to create a fake object to replace a real object 00:06
sort of abstract, we can worry about that kind of stuff later 00:07
soh_cah_toa okay
forgive me is this is a little confusing: is there some sort of lexical analysis/parsing api in parrot that i could use for the debugger? i think it would be kinda dumb to have a rakudo and winxed and ruby etc. interpreter in the debugger. then it just turns into a parrot clone 00:08
whiteknight parsing API? No. You wouldn't have a language interpreter in the debugger. All languages would be compiled down to PBC. All you would need to do is load PBC files and just call functions in them 00:09
soh_cah_toa i thought you wanted hll support though?
whiteknight hold on, let me show you an example
soh_cah_toa sure 00:10
whiteknight ah damnit, I uninstalled parrot 00:11
in any case, PBC files have annotations which tell information about the HLL code used to write it 00:12
think about #line and #file directives in the C preprocessor 00:13
soh_cah_toa right
whiteknight so I can read in the PBC, then look at the annotations to figure out information about the HLL code
soh_cah_toa oh great 00:14
whiteknight so if I set a break point on line 5 of file foo.whatever, All I need to do is run code until I find that set of annotations
soh_cah_toa i actually wanted to ask about annotations but forgot. i thought they were just like a little note or comment
whiteknight annotations are arbitrary metadata that can be inserted into the bytecode. They are mostly used for filename/line number info 00:15
At any point in the code, we can ask "what annotations are in effect here"
and we get back an array
or maybe it's a hash
soh_cah_toa okay. inserted by default by the compiler or w/ a switch? 00:16
whiteknight annotations are inserted by our existing compiler tools, although there are usually options to omit them
it's like stripping debugging info from a normal executable
but if they aren't removed, most compilers will add them by default, or at least provide an option to use them 00:17
soh_cah_toa okay. that's what confused me. there was debug info and annotations and i couldn't tell the difference
if that's the case i don't think it'd be very hard to implement hll's 00:18
whiteknight right, that's the point. It's all supposed to be easy on Parrot
soh_cah_toa wow, this project just got a whole lot easier
whiteknight you don't need to care if I wrote my code in JavaScript, Perl6, Ruby, or whatever. Hell, I could write the bits on a piece of paper with a crayon and Parrot should just work 00:19
soh_cah_toa a crayon debugger...nice
damnit, i hate to have to split but my dinner has been getting cold for the past 10 minutes 00:20
whiteknight okay, we'll be here later to chat
soh_cah_toa i'll be back though
whiteknight awesome
00:37 woosley joined
ttbot Parrot 4c3f92ed i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/58906 00:41
Parrot 4c3f92ed i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/58899
Parrot 4c3f92ed i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/58925 00:46
whiteknight plobsing: ping
plobsing: unping 01:11
01:14 M_o_C left
whiteknight bacek: ping 01:20
soh_cah_toa alright, back 01:24
whiteknight: so anyway, i feel a lot better about this project. i was becoming worried that i'd need to worry about the lexical analysis of each language i'd need to debug 01:27
whiteknight oh hell no. We wouldn't do anything mean like that
by the time any of your code gets called, everything has been compiled down to PIR
or PBC
soh_cah_toa okay, that i can definetely handle 01:28
as part of my student application i need to give a rough timeline of the project. however, i've never really collaborated w/ a team of developers before. how long do you think it would take to implement support for, say, one language? 01:31
whiteknight soh_cah_toa: don't think about it in terms of languages. Like I said, all your tools are going to work with PBC and you don't need to care about what language that code was originally written in 01:34
ideally, you should never need to care
soh_cah_toa right b/c they're all compiled into pir then pbc. makes sense 01:36
whiteknight let me sketch out a basic tasklist as I see it in my mind. Give me a min 01:37
soh_cah_toa sure, that'd be great
nopaste "Whiteknight" at 192.168.1.3 pasted "basic checklist for soh_cah_toa++" (18 lines) at nopaste.snit.ch/38756 01:45
whiteknight so basically what you need to do is create a PMC type for the debugger base functionality. This PMC takes a "target" interpreter to debug 01:46
Using Parrot-Instrument, it should be trivial to set that interp up with a custom runloop, and be able to execute one op at a time 01:47
or, you could set up your own custom runloop too. That would not be hard
check out src/runcore/cores.c:runops_slow_core for our current default runcore. It's just a while loop 01:48
soh_cah_toa okay
this is definitely do-able
whiteknight so your runcore would be that same runloop, but in the middle you would insert a check. If necessary, you stop and ask the user for an instruction
once you have a tool to own an interp and run ops one at a time, you find a way to read annotations. This should be easy 01:49
At that point, you're done writing C. Everything else can be written in a language on top of Parrot
actually, that's not true. You need to write some hooks for executing commands. That should be easy. A hash of command names mapping to Sub PMCs 01:50
so all you need to do is add a new Sub to that hash, and you magically have a new command
soh_cah_toa right, a dispatch table
whiteknight right 01:51
at that point, everything can be done in something better than C
All the commands can be written in Winxed or NQP or whatever you like
And if you set things up with a nice OO interface, we can subclass things in HLLs
soh_cah_toa oh yeah, it would definitely be easier to use winxed or nqp for that 01:52
ahhhh...now i see the purpose of nqp!
whiteknight The benefit is that winxed and nqp are low level and very portable. They are the lowest-common denominator. Any higher-level language can use code written in those two 01:53
winxed doesn't have a runtime library, so the compiler itself doesn't pollute any namespaces or make any incompatible assumptions
NQP has a very small runtime library, for the same reason
soh_cah_toa in other words, no ___variables___ 01:54
those excesive underscores drive me nuts 01:55
whiteknight right
think about C. C is a very small language. To do anything that isn't stupid, you need to #include libraries 01:56
winxed and NQP are to Parrot what C is to the machine
PIR is like the assembly language
Everything else is higher-level 01:57
soh_cah_toa right
you know, i initially didn't take much interest in winxed but now i think it could really help me in this project
or npq for that matter
*nqp
whiteknight some people are perl people and like nqp. Some people don't like perl and prefer winxed
plobsing I consider myself a perl person, but I prefer nqp 01:58
s/nqp/winxed/
soh_cah_toa i may end up w/ nqp being a perl-guy but whatever turns out to be the most resourceful is what i'll use
whiteknight the two have different design considerations too. Winxed is focused on Parrot, nqp is focused on Perl6
soh_cah_toa makes sense 01:59
i feel better now that i have some sense of direction. i've been wanting to get involved w/ foss for so long. i think i'm gonna really enjoy this 02:01
02:01 theory joined
whiteknight ENODALEK 02:01
soh_cah_toa: I am already enjoying talking to you. This summer could be a lot of fun
soh_cah_toa: if you haven't already, sign up for an account on github, and start drafting a proposal in gist 02:02
that way we can make comments and stuff
soh_cah_toa good idea, i'll take care of that tomorrow afternoon
whiteknight awesome, send me your username when you sign up, so we can follow along 02:03
soh_cah_toa okay, i'll probably keep it soh_cah_toa to avoid confusion
so what's this nopaste? i've never seen that before 02:04
whiteknight it's just a server set up that you can use to write big blocks of text to show people
nopaste.snit.ch. Go there, fill out the form. Click paste 02:05
Gist is the same kind of thing, but on github instead
gist is interactive, I think nopaste is a little faster and easier
soh_cah_toa oh i thought that was a git typo, haha
whiteknight haha, yeah
okay, it is officially past my bed time. 02:06
I'll talk to you gentlemen tomorrow
soh_cah_toa sure thing, see you tomorrow
whiteknight later
02:06 whiteknight left 02:26 simcop2387 left
kid51 msg dukeleto Do you know who can reboot dalek? 02:29
aloha OK. I'll deliver the message.
02:40 cotto joined
cotto ~~ 02:40
02:41 soh_cah_toa left
mikehh ok how dowe get dalek back? 02:46
sorear step 1. remove the ban that dukeleto set 02:48
step 2. tell me to restart dalek
actually I have ops so I could do both 02:49
(if you want)
kid51 What was dukeleto's ban? 02:56
sorear 13:35 -!- mode/#parrot [+b dalek!*@*] by dukeleto 02:57
13:35 -!- dalek was kicked from #parrot by dukeleto [dalek]
dukeleto kid51: no, i don't 03:03
is the trac spam issue fixed?
that is why I banned dalek
mikehh sorear: is there another way to re-start a bot, I seem to reemember an opbot type instruction 03:07
03:12 petdance joined 03:17 contingencyplan left
kid51 dukeleto: No, the spam issue is not fixed ... 03:19
... and we probably can't do anything until OSU OSL admins come back on Monday ...
... but I would argue that having those spam tickets announced by dalek is the *least* of our problems ...
... at least it alerts us to when it's happening. 03:20
03:20 bubaflub left
kid51 The worst aspect, IMO, is that the parrot-tickets list and its archive get permanently clogged. 03:20
By banning dalek, we also ban all announcements of work being done on github. 03:21
sorear: Since dukeleto has unbanned dalek, can you restart? Thanks. 03:26
03:36 theory left 04:08 simcop2387 joined, dalek joined
sorear mikehh: dalek cannot be restarted in any other way except ssh/sudo control. diakopter@freenode can get you an account if you want. 04:10
04:18 kid51 left
dalek rrot: d8e4d67 | mikehh++ | t/steps/auto/llvm-01.t:
changed number of tests
04:53
rrot: b795b68 | mikehh++ | config/auto/llvm.pm:
fix codetest/perlcritic failures - trailing whitespace
rrot: 5e3c885 | mikehh++ | t/configure/018-revision_to_cache.t:
fix codetest/perlcritic failures - trailing whitespace
rrot: 7e9553d | mikehh++ | t/steps/auto/infnan-01.t:
fix codetest failure - trailing whitespace
05:05 petdance left
cotto ~~ 05:42
in the future, we should just take voice from a noisy (but otherwise welcome) bot
moderator 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 05:45
cotto dukeleto, are you around? 06:03
dukeleto++ for the gsoc responses in parrot-dev 06:09
cotto goes to bed 06:14
sorear cotto: unfortunately, MAGnet doesn't let you selectively devoice a single user without moderating the channel 06:23
that's a freenode thing :/
06:42 Drossel joined, fperrad joined 06:43 Kulag left 07:11 rurban left 07:12 rurban joined
dalek p/ctmo: 2f75d22 | jonathan++ | build/PARROT_REVISION:
Actually bump the PARROT_REVISION.
07:38
08:16 contingencyplan joined 09:10 jsut joined 09:14 Eduardow left, jsut_ left
Tene qinsb.blogspot.com/2011/03/unladen-...ctive.html -- interesting comments on llvm; I don't know if it's already been discussed here. 09:55
Tene goes to bed.
10:17 rohit_nsit08 joined
rohit_nsit08 hello #parrot 10:17
dukeleto: how can i test jaspers on my system? 10:24
10:41 bacek left 10:54 bacek joined
dalek rrot/jit_prototype: 6a582f8 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Create lookup hash of declared functions.
10:54
rrot/jit_prototype: 70c4d2d | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Store declared variables in %jit_context.
rrot/jit_prototype: c9fc22d | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Start jitting actual PAST::*:

1. Handle simple Vars/Vals. 2. Generate function calls.
11:10 whiteknight joined
whiteknight good morning, #parrot 11:15
11:21 rohit_nsit08 left 11:30 rohit_nsit08 joined 11:44 rohit_nsit08 left 11:45 rohit_nsit08 joined 11:55 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner 12:05 bacek left 12:22 ambs joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#13233) fulltest) at 3_2_0-68-g7e9553d - Ubuntu 10.10 i386 (gcc-4.5 --optimize --gc-gms) 12:22
12:24 bacek joined
mikehh whiteknight: my dear chap, how is life treating this fine day? 12:24
dalek rrot/jit_prototype: 7014b15 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Workaround for MMD "failure".

MMD fail to choose Ops::Op vs PAST::Block.
rrot/jit_prototype: 0eb0f3c | bacek++ | compilers/opsc/src/Ops/JIT.pm:
"Register constants" JITting.
rrot/jit_prototype: 5d96131 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Fallthrough for PAST::Op<undef>
rrot/jit_prototype: 81dd66b | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Fix JIT.jit and add .optimize method.
rrot/jit_prototype: a35c94e | bacek++ | src/pmc/sub.pmc:
Create ccont in Sub.invoke when it's null.

This is (temporary) workaround for jit prototype purpose.
rrot/jit_prototype: 4a04e0f | bacek++ | t/jit/test.t:
Rework test to be kind of real jit proto.
nopaste "bacek" at 192.168.1.3 pasted "IT WORKS!!! (Well, almost :)" (79 lines) at nopaste.snit.ch/38859 12:27
bacek aloha, humans
mikehh howdo bacek 12:28
bacek I've got my first jitted sub run :)
nopaste.snit.ch/38859
mikehh bacek: excellent 12:29
bacek mikehh, indeed :)
mikehh I know this is a prototype. but have you any idea if this improves performance significantly? 12:30
bacek mikehh, it will decrease it dramatically in first cut... 12:31
12:32 cgaertner joined
mikehh bacek: ah well, as long as there is scope for improvement there :-} 12:32
cgaertner hello #parrot 12:33
bacek mikehh, a _lot_ of :)
mikehh hi cgaertner
whiteknight mikehh: Life is treating me quite well, thankyou 12:34
mikehh: How are things on the other side of the pond?
cgaertner there are some problems with parrot on cygwin... 12:35
sent a smoke report for the test failures, but there's also something wrong with make install 12:36
mikehh whiteknight: well put us on BST early this morning, a week or so after you all, takes a bit of adjusting :-}
whiteknight: but I suppose we are now "officially" in summer (not that I noticed that much) 12:37
whiteknight mikehh: yeah, the new season has been less than spectacular over here. Still cold, rainy, miserable 12:38
cgaertner specifically, cygparrotXXX.dll and libparrot.dll.a won't be installed
mikehh cgaertner: I am afriad that I don't know anything about cygwin, I am sure we have other devs around who do 12:41
cgaertner: I work and test on various Ubuntu/Kubuntu versions 12:42
whiteknight cgaertner: cygwin has not been a popular platform among developers. I'm sure there are some rough edges
12:42 Hunger left
dalek Heuristic branch merge: pushed 157 commits to parrot/whiteknight/vtable_overrides by Whiteknight 12:45
cgaertner the failures are in pmc/socket.t and dynpmc/os.t, which one might expect, really, if no one tested the platform 12:46
however, pmc/eval.t also fails... 12:47
whiteknight cgaertner, can you nopaste the failures?
nopaste "cgaertner" at 192.168.1.3 pasted "eval.t failures on cygwin" (26 lines) at nopaste.snit.ch/38860 12:48
cgaertner ^ is that what you need?
whiteknight yes 12:52
okay, it looks like there's a problem with the tempfile 12:53
I seem to remember cygwin had a problem with tempfiles
dalek rrot: e6b8658 | Whiteknight++ | / (147 files):
Merge branch 'master' into whiteknight/vtable_overrides
rrot: 7282d98 | Whiteknight++ | / (2 files):
remove override ability for vtable can.
rohit_nsit08 whiteknight: hi ,
moritz : hi 12:54
whiteknight good morning, rohit_nsit08
dalek rrot: a37d7f0 | Whiteknight++ | NEWS:
update NEWS
rohit_nsit08 whiteknight: i have decided to go with nodejs , error that was coming previously with jison has been solved and , now cafe is failing on 1 or 2 tests , working on it , 12:56
whiteknight rohit_nsit08: Okay, it's awesome that you're making so much progress with it 12:57
rohit_nsit08 whiteknight: read nodejs api , today , and hey i played with pir today , it looks like a combination of assembly in C :-)
whiteknight: was first experience with PIR , awesome 12:58
whiteknight nice
rohit_nsit08 whiteknight: i also saw jasper and had some talk with dukeleto , right now it's able to parse the javascript but how can i see the output it's generating , there is a setup.pir file in it , but couldn't figure out how to use that 13:00
whiteknight I'm not very familiar with Jaspers right now. I have to play with it some 13:03
setup.pir is pretty easy to use "parrot setup.pir build"
"parrot setup.pir test"
"parrot setup.pir install"
etc
13:03 bacek left
rohit_nsit08 whiteknight: i did it , it executed normally , ohh i didn't used the last one "install " , there were no test files though 13:05
whiteknight it may not be installable
I don't know what state Jaspers is in. It might not do anything right now
it's a very young project
rohit_nsit08 whiteknight: it can be the case , there is parser and a javascript test file 13:06
whiteknight with Jaspers, you're probably going to have to read a lot of code to figure out what's going on 13:07
rohit_nsit08 whiteknight: i'll make minor changes in my proposal gist , tonight , u saw it ? 13:09
sorry connection got lost
whiteknight this one: gist.github.com/888952 13:10
rohit_nsit08 ya , this one
13:12 shell joined
whiteknight rohit_nsit08: it looks good 13:13
rohit_nsit08 i read jasper.js, it's using nodejs I/O api 'fs' to get the input file and parse the test javascript file ,i'm having confusion about the output , according to me, parser generates AST
whiteknight ok 13:14
rohit_nsit08 var ast = jsParser.parse(source); , generated ast is stored in ast variable
what's getting stored in it ?
whiteknight I don't know. Try printing it out 13:15
Create a fork of Jaspers on github, and start making changes to it to explore
rohit_nsit08 hmm.. but how can i test it ? still have to figure it out , is there anything i need to know about testing it on parrot? 13:16
whiteknight like I said, I don't know anything about Jaspers 13:19
rohit_nsit08 hmm.. will try to figure it out . 13:20
whiteknight I'll check out a copy of it later 13:21
rohit_nsit08 whiteknight: thanks
whiteknight no problem
13:21 ambs left
rohit_nsit08 whiteknight: i had one doubt, from tomorrow onwards students will be able to send their applications , which is the preffered time to send the application , in starting or in the end , ? as i think student won't be able to make any changes once they have applied , or am i wrong? 13:23
whiteknight I don't know. You might not be able to make a change after you submit 13:24
that's why it's a good idea to put the proposal on github
so we can make comments, and you can make changes
Send a link with your proposal gist to the parrot-dev mailing list to ask for input
cgaertner the cygwin installation problem doesn't seem to habe an easy fix: while the Makefile knows about cygparrotXXX.dll, install_files.pl doesn't 13:25
(Parrot's build system scares me)
^have
whiteknight yeah, the build system can be a little tricky
rohit_nsit08 hmmm, ok, than i'll apply only after we are able to make it suitable enough 13:26
whiteknight: is there any book , or site with concepts of compiler design similar to my work ? 13:29
13:32 kid51 joined
kid51 backscrolls 13:34
cgaertner: Yes, the Cygwin build had only one supporter and is not really currently maintained. 13:40
tinyurl.com/4cp26ud for Trac tickets with cygwin listed as platform
13:41 theory joined
cgaertner kid51: the test failures are all related to the filesystem (in addition to the socket test failures also present on windows builds) 13:44
no big deal, really
getting make install to work would have been nice, though
13:48 rohit_nsit08 left
cgaertner getting glib to build is far more challenging, sadly... 13:49
whiteknight rohit_nsit08: There are a few books on compiler design concepts, yes 13:54
13:59 rohit_nsit08 joined
kid51 cgaertner: Other things being equal, fixing test failures, TODOs, SKIPs on Win32 is more important than getting Cygwin to work. 14:03
14:07 bacek joined 14:15 theory left
kid51 tinyurl.com/4d299qt for Trac tickets where keywords contains 'debugger' 14:21
Any people testing on Win64? Can you take a look at trac.parrot.org/parrot/ticket/1046 ? 14:25
dalek tracwiki: v6 | jkeenan++ | DebuggerTaskList 14:32
tracwiki: Add link to search for TT with 'debugger' in keywords
tracwiki: trac.parrot.org/parrot/wiki/Debugge...ction=diff
TT #2081 created by yoqujjecgmlflt1++: Obtain Home Office furniture For the Well Planned Home Office
TT #2081: trac.parrot.org/parrot/ticket/2081
14:45 rohit_nsit08 left
dalek rrot: 69f3ae1 | jkeenan++ | t/steps/auto/llvm-01.t:
Correct number of tests in plan.
14:48
whiteknight Coke: ping 14:53
benabik G'morning, #parrot 14:55
whiteknight good morning benabik
benabik Anything interesting happen while I've been buried in schoolwork? Saw a lot of GSoC talk on -dev. 14:56
whiteknight that's the most of it. Lots of GSoC excitement 14:57
benabik Wow. The GSoC page got redesigned and fancy while I wasn't looking. Guess I should really get a proposal into shape. :-/ I would have sent something more than "hey, I want to work on a parser" to -dev, but projects and homework are really just getting started for the quarter. 15:01
15:02 bacek left
shell hey,whiteknight.would you please tell me which time zone you are in. 15:02
whiteknight shell: Eastern, US. I'm near Philadelphia 15:03
shell thanks
whiteknight shell: you?
shell +8
whiteknight benabik: Tell your professors to back off, you have more important things to do
benabik whiteknight: Hah. I'd love to, but I think they disagree. :-D 15:04
whiteknight shell: Oh wow. Which country?
benabik whiteknight: Although if I still had my prof from compilers, I might get away with it. 15:05
shell i am in china
recently,i am developing a Matlab compiler
whiteknight shell: Awesome. Parrot Dev JimmyZ is from China. I don't know where 15:06
shell: I wrote a matlab compiler for Parrot a long time ago, but it got broken and I stopped working on it
shell really?
whiteknight shell: Yeah. the project is called Matrixy. I created a library called Parrot-Linear-Algebra that adds matrices for Parrot. I wanted to use that for Matrixy 15:07
shell i have difficulies to do with the "'" operator
and i have to add a preprocessor
to solve this
whiteknight oh, that stinks. What kind of paser are you using?
parser
15:08 rurban_ joined
shell i use antlr to generate the parser 15:08
i've a lot experience on antlr
15:08 jsut left 15:09 jsut joined
whiteknight shell: okay. the parser I used for matrixy didn't have any troubles with the ' operator to do transposes. However, I was having a lot of problems with vector assignment 15:09
[a, b, c] = foo()
that is the syntax I was stuck on 15:10
and the related stuff (nargin, nargout, etc)
shell i treat the assignment as an expr
15:10 cgaertner left
shell in the grammar level 15:10
15:11 rurban left
shell and the ast walker has to deal with it 15:11
15:11 rurban_ is now known as rurban
whiteknight oh, okay 15:11
shell since my previous idea about the V8 benchmark migration was rejected,i think maybe i should try the "antlr on parrot" project 15:13
whiteknight antlr backend for Parrot would be a nice project 15:14
maybe you could use that to port Matlab to Parrot :)
shell i think so
benabik In my compiler projects, I've generally found using a very general grammar and letting semantic analysis take care of the tricky parts to work much better.
15:14 rohit_nsit08 joined
shell i did,too 15:15
whiteknight shell and benabik: Do you guys have github accounts? 15:16
you can use a Gist on github to start drafting proposals so we can make comments
shell i campus network has problem accessing the github 15:17
benabik Yuppers. github.com/benabik ... I wonder what I was working on that the forked parrot. Eh.
rohit_nsit08 whiteknight: hi, shall i post the link of my gist or the whole proposal on the mailing list?
shell i can download it from http
but not on git
whiteknight rohit_nsit08: yes, mailing list is a good place to get feedback
shell all right 15:18
rohit_nsit08 whiteknight: i'm posting my project details with a link to complete proposal on gist , as that ok?
whiteknight shell: if you can't do github, you can just send an email to parrot-dev.
rohit_nsit08: yes 15:19
rohit_nsit08 whiteknight: k, :-)
shell i can download it,with a little extra work
whiteknight shell: You don't need git to use a gist on github
it's just a web interface
shell right
i am sorry,sometime i am too hurry to spell correctly 15:21
which language is best supported on parrot? 15:22
if i develop a antlr backend,i need to choose one 15:23
whiteknight shell, you want a low-level language to target, so the parsers are portable 15:26
and so they don't require huge runtime libraries
rohit_nsit08 dukeleto: there? 15:27
whiteknight shell NQP (a subset of Perl6) and Winxed (similar to JavaScript and C++) are good choices
shell: Winxed is my favorite, but NQP has a lot of cool features too
shell actually,i found winexed looks a bit like javafx 15:28
in grammar
whiteknight yeah, it's all related.
shell i got wine 15:29
sorry
i got winxed frm googlecode
whiteknight yeah, that's where it lives 15:30
shell but it doesn't seem complete
whiteknight it doesnt?
shell i found little examples
sorry
i found few examples
whiteknight yeah, there are not a lot of examples, or tests 15:31
that's a problem
shell but i am able to handle that
it's ok
whiteknight If you want example code to look at, See Rosella (github.com/Whiteknight/Rosella). It's a library project written in winxed 15:32
thousands of lines of winxed code to explore
shell thanks
i'll try it
15:33 Eduardow joined
shell it looks nice 15:34
but would it be better to be based on a more popular language,such as lua? 15:36
so that the lua developers would be able to use that
whiteknight what do you mean? Generate Lua code from ANTLR? 15:37
shell yes
whiteknight that is interesting, but lua does have a runtime library 15:38
so to use your parser from Perl6, we would need to load all the lua libraries too
15:39 woosley left
shell but it's not too large 15:40
i dont't think it would cause problems if i can inline the functions used 15:42
the lua core lib is very small
whiteknight include your choice of language in your proposal
shell ok
it's possible too handle this drawback] 15:43
would you like to be my mentor? 15:44
you are very kind to me
whiteknight maybe. it depends on all the proposals 15:45
dalek rrot: 3264def | jkeenan++ | lib/Parrot/Pmc2c/PMC/RO.pm:
Make documentation less inaccurate.
whiteknight I'm not very good at Lua
shell i think i should provide a solution for language interoperation 15:46
let me see
ok,i would not use lua,since it's not as powerful as winxed 15:47
but i still have to solve the interoperation problem
whiteknight all languages are powerful. depends how you use them
interoperation is easy
shell i know
but it would be better to have OO 15:48
whiteknight what do you mean? Winxedhas OO
shell yes,i mean lua doesn't have that 15:49
see you tomorrow
here is 11:49 pm
whiteknight ok 15:50
goodnight
shell my school cut off the internet at 12:00 pm...........
rohit_nsit08 shell: hi, from which country?
shell china
benabik shell: G'night! 15:51
rohit_nsit08 shell: i'm from india , it's 9:20 here , good night
shell good night
BTW,do you use google wave
benabik And for me, on the other side of the world, it's nearly lunchtime so I'm going to go do that. :-)
whiteknight rohit_nsit08: I don't think we have any other parrot devs from india
rohit_nsit08: have you ever heard of Wikimedia India? 15:52
rohit_nsit08 whiteknight: i haven't seen any , so i guess yes
whiteknight: i've heard of wikemedia ,
shell if you like,call me from google wave 15:53
whiteknight I helped set up a chapter for wikimedia in india. I dont think they are very big
shell code.in.the.shell@gmail.com
15:53 particle left
rohit_nsit08 whiteknight: really? wow 15:54
whiteknight: can i have the link ?
whiteknight meta.wikimedia.org/wiki/Wikimedia_India 15:55
wikimedia.in/wiki/Main_Page
rohit_nsit08 whiteknight: u attended any of the events , they look great :-) 15:57
whiteknight no, I've never been to india
some day :) 15:58
rohit_nsit08 :-) sure, will have coffe together loll
whiteknight: lots of events and activities have happened in february this year , what is the major goal of this chapter? 15:59
whiteknight to spread open knowledge, promote wikipedia 16:00
did you know more indians contribute to en.wikipedia.org than hi.wikipedia.org? 16:01
I dont remember the exact numbers 16:03
rohit_nsit08 whiteknight: that can be possible , the people who have access to internet and who use it , english is their major language , and one more reason is that , all the developments of wikimedia india are in southern india , where english is the primary language
16:05 shell left 16:10 rohit_nsit08 left 16:19 autark left
mikehh kid51: ping 16:20
kid51 pong 16:21
mikehh you are obviously running one more test than I am with t/steps/auto/llvm-01.t 16:22
kid51 Don't understand? 16:24
nopaste "mikehh" at 192.168.1.3 pasted "results of prove -v t/steps/auto/llvm-01.t" (62 lines) at nopaste.snit.ch/38861 16:27
mikehh kid51: ^^^ 16:28
kid51: what other info do you need? 16:30
kid51 Try this: 16:31
dalek rrot: acc1ddb | jkeenan++ | lib/Parrot/Pmc2c/PMC/RO.pm:
Merge branch 'master' of git@github.com:parrot/parrot
rrot: 5a4b466 | jkeenan++ | t/steps/auto/llvm-01.t:
Correct number of tests to be SKIPped.
kid51 Appears that I deleted one test from inside a SKIP block without changing the number to be skipped 16:33
mikehh kid51: ok that works 16:35
16:42 rohit_nsit08 joined
rohit_nsit08 whiteknight: hi , had to run away, missed my station :-) 16:43
whiteknight: was on bus
whiteknight: there? 16:45
16:47 davidfetter joined
whiteknight rohit_nsit08: yes, I'm here 16:55
rohit_nsit08 whiteknight: just managed to deboard on time :-) , 16:56
whiteknight good :)
rohit_nsit08 whiteknight: how are the mentors decided for any project 16:57
whiteknight rohit_nsit08: it depends on the proposals we get. When we get all the proposals, we have a meeting and pick the mentors
there are lots of projects I like already, so I don't know which ones I will get 16:58
rohit_nsit08 whiteknight: i checked on google's site that google allots fixed slots to each organisation ,how much slots are there for the parrot btw?
whiteknight I don't know. I don't think Google has picked yet 16:59
I think the final number is determined by the number of good proposals we get.
more good proposals = more slots
16:59 davidfetter left
rohit_nsit08 rohit_nsit08: so slots are flexible 17:00
whiteknight: and who decides the student , as in is there google involved in the procedure or only the organisation and members?
whiteknight slots are sort of flexible. There are a fixed number of slots, spread out for all organizations 17:01
17:01 eternaleye left
whiteknight so if Parrot uses more, some other org has to use less 17:01
Parrot decides the students. We get the proposals and the number of slots, and we pick who is in
so the proposals have to be good, and we have to know the student 17:02
It's very good for students to chat with us on IRC, to submit patches, to ask questions, etc
We like proof that the student is capable
rohit_nsit08 whiteknight: hmm got it , what kind of details shall i add in the proposal
whiteknight rohit_nsit08: most important things: 17:03
1) Statement of what you want to do
2) Timeline
3) Backup plan (What to do if there are problems)
4) Extra items (What to do if you have extra time)
trac.parrot.org/parrot/wiki/GSoCStu...onTemplate
17:03 jsut_ joined
rohit_nsit08 whiteknight: it will help a lot , if u can see my proposal on gist , i have made my proposal as given in the template , pls see, and tell me how can i furthur improve it , i'm correcting some minor language mistakes right now 17:05
whiteknight okay. Send an email to parrot-dev with your gist. We want lots of people to read it
rohit_nsit08 whiteknight: sending :-) just a few editing 17:06
dukeleto ~~ 17:07
dalek TT #2082 created by evpumpcmgcny6++: Get Home Office furniture For the Nicely Planned Home Workplace
TT #2082: trac.parrot.org/parrot/ticket/2082
dukeleto rohit_nsit08: the parrot community picks which students get to fill the slots
dukeleto is not happy about this trac spam 17:08
can we make dalek not announce TT's?
otherwise, I will kickban dalek again
sorear: ^^^
17:08 jsut left
dukeleto rohit_nsit08: may I add that the list of deliverables is also very important 17:11
dukeleto made progress with Javascript on Parrot yesterday (Jaspers) 17:12
kid51 rohit_nsit08 (and other potential GSOCers): IMO, proposal quality is largely determined by "usefulness to the Parrot project" ... 17:13
... where a major component of that "usefulness" is the ability of a project to be completed and merged into master before end of GSOC.
dukeleto kid51++ # agreed 17:14
kid51: thanks for your ticket trolling, as well :)
kid51 dukeleto: I agree that the announcements of spam tickets are annoying, but I think that what we really have to do is require a Trac "authenticated" user's first TT to be moderated before posting. 17:15
dukeleto kid51: whatever the solution, i don't want to see spam in this IRC channel 17:17
kid51: so either dalek doesn't announce TT's until that is fixed, or dalek shouldn't be in here until it is fixed
kid51: i agree with your statement
kid51: do we know how to change that?
kid51: i haven't seen anything from OSL 17:18
kid51 dukeleto: As I said yesterday (email) I wouldn't expect to hear anything from OSL until Monday.
dukeleto kid51: yeah 17:19
rohit_nsit08: you asked about jaspers, do you still have that question?
kid51 But if you kick dalek, you stop all other commit announcements here as well. 17:20
dukeleto kid51: yes
kid51 If you want to discuss refining dalek's capabilities with diakopter, please do so.
But dalek is merely the symptom of the problem.
dukeleto kid51: it looks extremely bad to have spam announced in our IRC channel. Very Bad. Especially since we have an influx of GSoC people 17:21
kid51: i would rather have nothing announced than stuff + spam
kid51 Other possibility for Trac: Allow anyone to set up an account (as now); send email notifications of new accounts to admins (as has been the case for a few days now); but don't permit new accounts to create new tickets for 24 hours. 17:22
dukeleto: Well, I disagree with you on "no announcements being better". What people are committing to our repository is, for me, more important than what TTs are being created. 17:23
rohit_nsit08 dukeleto: coming in few minutes ,editing the proposal :-) 17:24
dukeleto kid51: all parrot commits are easily viewable at github.com/organizations/parrot 17:25
kid51 dukeleto: That would require me to continually go to that web page and constantly refresh it. github pages are relatively slow to refresh. And I like the sequential display that dalek provides. 17:26
17:27 eternaleye joined
dukeleto how does dalek find out there is a new TT? 17:32
i don't see anything in the trac admin
looks like github.com/Infinoid/dalek-plugins/...wikilog.pm needs to change 17:39
whiteknight I think dalek reads the RSS feed from trac at regular intervals
dukeleto whiteknight: yes, that is what the tracwikilog.pm does 17:41
whiteknight: how do you feel about spam being announced in here?
whiteknight dukeleto: dalek is too valuable to kickban outright. 17:43
if spam is really stuck in your craw, we could remove TT announcements from dalek
locking down permissions on trac is not something I particularly want to do, but if it stops spam from happening we can do that 17:44
I wonder if we can get IP address information, and block those?
dalek spers: 35595e0 | dukeleto++ | README.md:
Update readme with recent design decisions
17:45
whiteknight maybe we take all rights away from authenticated users, and require accounts to be "approved" before creating content
it sucks, but it will work in the shortterm
dukeleto whiteknight: blocking IP's is a losing game 17:46
rohit_nsit08 whiteknight: i have posted the link on the mail ,
dukeleto whiteknight: i am currently trying to remove TT announcements from dalek, but I don't have control over dalek
looks like diakopter++ and sorear++ are helping with this 17:47
rohit_nsit08 dukeleto: hi , i was studying jaspers today ,what is getting in ast in this line , "var ast = jsParser.parse(source);" what is the format of ast here?
dukeleto rohit_nsit08: good question
rohit_nsit08: it is an AST that PEG.js creates. You can think of it as JSON, basically 17:48
rohit_nsit08: gist.github.com/889410
rohit_nsit08 dukeleto: can i test jasper on my system , i couldn't build it with parrot nothing happened on "parrot setup.pir" 17:49
dukeleto rohit_nsit08: run "node jaspers.js"
rohit_nsit08: you need a recent nodeJS
rohit_nsit08: 0.1.x won't work
rohit_nsit08: 0.2.5 and higher should work
whiteknight dukeleto: I'm going to take TICKET_CREATE and TICKET_APPEND permissions from Authenticated users, for now
once we get some kind of real anti-spam solution in place, we can add those back in. 17:50
rohit_nsit08 dukeleto: i have installed a fresh one today
dukeleto: that should work
dalek spers: 4393bad | dukeleto++ | README.md:
Add a note about how to try Jaspers in the readme
rohit_nsit08 dukeleto: read nodejs api today , what is console.dir() doing , making some kind of log of object members? 17:51
dukeleto whiteknight: hokey dokey. Thanks.
rohit_nsit08: yes, it is the cousin of console.log() . console.log() takes a string, console.dir() takes an object
rohit_nsit08: but console.dir doesn't recurse and dump objects. we need something that does 17:52
whiteknight: i am now thinking about what the stage-0 compiler for Jaspers should target
rohit_nsit08 dukeleto: console.dir is missing from the current documentation , i'll check it's alternative 17:53
dukeleto whiteknight: should Jaspers emit PAST ? I don't fully understand the benefits/problems of emitting PIR/PAST/POST/PBC
rohit_nsit08: console.dir() is part of javascript, node may not have it in their docs 17:54
rohit_nsit08: just search for console.dir on the interwebs :)
dalek tracwiki: v3 | whiteknight++ | GSoCStudentApplicationTemplate
tracwiki: trac.parrot.org/parrot/wiki/GSoCStu...ction=diff
rohit_nsit08 dukeleto: hmm.. that's possible
dukeleto whiteknight: i basically have an AST as JSON (or the actual js object, take your pick) and I need to transform that into something parrot understands 17:55
whiteknight: i think tree-optimization will come in handy
whiteknight dukeleto: A stage-1 jaspers really can't emit PAST, but a stage-2 Jaspers could
dukeleto whiteknight: please explain
whiteknight PAST has the benefit of things like tree-optimization, alternate POST backends, etc
dukeleto whiteknight: why couldn't I write something that read in JSON and emitted PAST ? 17:56
whiteknight dukeleto: the compiler needs to be running on top of Parrot in order to create Parrot objects
dukeleto whiteknight: ok
whiteknight the first compiler stage will be running on node and will need to emit PIR
dukeleto whiteknight: ok, that is reasonable
rohit_nsit08 i'll suggest converting to PIR as a good option
whiteknight once you have your stage-1 running on Parrot, you can emit PAST and let the PCT infrastructure handle optimization and code generation
rohit_nsit08: As the first project, yes. That's what you should do. If that goes well, consider making PAST 17:57
if you have enough tme
dukeleto whiteknight: ok, i am concentrating on stage-0 for now. So I will write something that reads the JSON AST and emits PIR
rohit_nsit08 will i have to study language grammer to replace AST with PAST as parser generates syntax tree based on the language grammer given to it 17:58
dukeleto whiteknight: just to give you an idea, here is a dump of part of the AST: gist.github.com/889410
rohit_nsit08: please ask that question again, didn't quite understand you
whiteknight: we basically have a bunch of nodes with types and some attributes 17:59
rohit_nsit08 how can i approach to replace current AST with PAST? i have read that parser generates syntax tree based on grammer specified to it
parser parser the language and generates a syntax tree 18:00
parses the language
dukeleto rohit_nsit08: we won't replace it, we will tranform it
transform, rather
rohit_nsit08: i think that is what you mean
rohit_nsit08: for your gsoc proposal, you need to list each week of GSoC and have a description of what you plan to do 18:01
rohit_nsit08 dukeleto : ya sort of , i was not clear on how can we replace it
dukeleto: so i have to give , my schedule of whole 3 months from 22 may to august 22? 18:02
dukeleto: in my application
dukeleto rohit_nsit08: we will transform the JSON AST to some internal datastructure, then emit PIR from that datastructure
rohit_nsit08: yes, list every week and what you will do 18:03
rohit_nsit08: you mention cafe in your proposal, but jaspers currently uses PEG.js
rohit_nsit08: if you think cafe should be used, then you should describe what cafe can give us that PEG.js does not 18:04
rohit_nsit08: s/NPQ/NQP/ in your proposal
rohit_nsit08 dukeleto: ya jasper is using peg.js , actually i spent much of time on cafe and jison , and in contact with their author also , so i thought it will be a good option , i'll try to explain it further for sure
dukeleto rohit_nsit08: sounds fine 18:05
rohit_nsit08: this gsoc proposal is a good start, but it needs a bit more detail and research to make it "awesome" 18:06
rohit_nsit08: but you are definitely on the right track :)
rohit_nsit08 dukeleto: read about NPQ/NQP in whiteknight's blog post , that the current javascript compiler "ECMASCRIPT" is based on them , and it's having some performance issues , so i thought to mention it to explain why we need another one
dukeleto rohit_nsit08: i think your gsoc proposal should concentrate on how the stage-0 and stage-1 compiler will work. that is probably enough work
rohit_nsit08 dukeleto: thanks , will add more detail tomorrow
dukeleto rohit_nsit08: you mispelled NQP
rohit_nsit08: NQP = Not Quite Perl 18:07
rohit_nsit08: NPQ doesn't exist :)
rohit_nsit08 dukeleto: oops sorry ,
dukeleto rohit_nsit08: no worries, just giving you feedback
dukeleto is not offended :)
rohit_nsit08 dukeleto: thanks , will change that too :-)
dukeleto: how should i mention my schedule for weeks ,right now it will be based on assumptions on various stages ,pls explain what i should do to make it look better 18:10
dukeleto rohit_nsit08: also, in your proposal, you need to give details about how tests and docs will be written
rohit_nsit08: right now, your estimate of what you will do each week will be a guess, but it is still valuable. Come up with something for each week, then I will give feedback :) 18:11
18:11 bubaflub joined
dukeleto rohit_nsit08: we need to decide on a test framework, i.e. how will we write our tests? 18:11
rohit_nsit08: also, which format will we write docs?
bubaflub: werd up
rohit_nsit08 dukeleto: i thought about docs , there is a tool available that can generate documentation from javascript files from commented code
bubaflub dukeleto: yo
dukeleto rohit_nsit08: hmmm
rohit_nsit08 dukeleto: it generates docs in html
bubaflub dukeleto: i was thinking about doing the PL/Parrot upgrade for GSoC 18:12
dukeleto rohit_nsit08: sounds readonable, but if we write our docs in Markdown or something, we can export to any format we want
bubaflub dukeleto: which would be better, in your opinon? The GMP bindings or the PL/Parrot update?
dukeleto bubaflub: i saw your tweet :)
bubaflub: well, "better" in what respect? Better for you or better for me or better for the parrot community?
bubaflub dukeleto: i suppose the community
dukeleto bubaflub: what are your goals?
bubaflub dukeleto: kick ass, take names 18:13
dukeleto: not sure - the GMP stuff is much more familiar
dukeleto: and it's nice that any HLL would get that stuff for free
dukeleto: the PL/Parrot would be nice as it flushes out the embedding API
dukeleto bubaflub: my take is that PL/Parrot is sexy because it is a very unique project, but in the end, the set of potential users is much smaller than GMP 18:14
bubaflub: yes, PL/Parrot will be good for the embed API
bubaflub dukeleto: ok. my thought is that since i'm already around
dukeleto: i could do either at any time.
dukeleto: maybe i'll go GMP - there's always lots to do after i'm done with the basic GSoC
dukeleto bubaflub: GMP bindings will allow for efficient crypto and number theory libs, which I think has a much larger potential impact than PL/Parrot
bubaflub: also, you will be more efficient at GMP than any other gsoc students, since you know it very well from hacking on Math::Primality 18:15
bubaflub: so I guess my suggestion is to concentrate on GMP for GSoC, and hack on PL/Parrot on the side. But of course, you can write more than 1 gsoc app 18:17
bubaflub: i think you will be very productive at hacking on GMP and you will knock it out of the park
bubaflub: PL/Parrot is a minefield, and you might fall down a yak cave that someone else has been digging for a long time :)
18:18 ambs joined
bubaflub dukeleto: hahahaha 18:18
dukeleto bubaflub: i would be happy regardless of the gsoc project that you choose. This is just my perspective from my experience.
dukeleto has certainly fell down some very deep yak caverns 18:19
bubaflub: was my meta-plan for what to work on GMP clear enough for you to write your proposal? 18:21
bubaflub dukeleto: yeah
18:23 kid51 left
dukeleto bubaflub: do you think you can get some example code written? Just bind one single function and see if it works? 18:25
bubaflub: i think it will take you longer to write tests and docs than the actual implementation, since you can actually write code to write your implementation :) 18:26
bubaflub dukeleto: yeah, agreed
dukeleto: i'm thinking full docs and test suite isn't out of the question
esp. for just integer functions 18:27
rohit_nsit08 dukeleto: checked Markdown , what other formats we are targetting to export besides html ? 18:31
18:32 GodFather left 18:34 cotto left
dukeleto bubaflub: yes, I expect full test coverage :) 18:35
bubaflub dukeleto: nothing but the best
dukeleto rohit_nsit08: markdown can export to every format. Not sure which specific formats we care about exporting to
bubaflub: i want to see example code!
bubaflub dukeleto: sounds good... should help sell the proposal 18:36
18:36 cotto joined
cotto ohai 18:36
mikehh cotto: hi there 18:37
bubaflub, dukeleto: I am definately interested in helping out with GMP intergration 18:38
bubaflub mikehh: great 18:41
rohit_nsit08 duekeleto: we can surely use markdown , will do some more research on its benefits and add it in the proposal 18:42
dukeleto cotto: howdy 18:43
rohit_nsit08: awesome
rohit_nsit08: just add some details about docs and a test suite. we can flesh it out later
mikehh: that will surely be helpful
mikehh: we will need some testing across a few different GMP versions and OS versions to make sure stuff works for the most people 18:44
rohit_nsit08 dukeleto: pls suggest something for tests , don't have any practical experience of this scale
cotto dukeleto, do you have some time to talk about m0? 18:45
bubaflub dukeleto or mikehh: any ideas about a minimum version of gmp? 18:46
cotto bubaflub, check out what the major distros install by default. The last stable release was a little more than a year ago, so that may be reasonable. 18:47
whiteknight rohit_nsit08: I suggest you use Rosella for tests. Perl has some tools too. I don't know if there are any standard JavaScript tools for testing 18:49
at least, I don't think there are any standard tools for out-of-browser JavaScript testing
cotto whiteknight, wouldn't v8 have something like that? 18:53
whiteknight for out-of-browser JavaScript testing? I don't know
the "JavaScript at the commandline" world is hardly the most mature software development environment 18:54
mikehh The current stable release is 4.3.2, released 2010-01-08 and The current performance release is 5.0.1, released 2010-02-06.
bubaflub mikehh: ok, i have 5 on my system 18:56
cotto whiteknight, thanks for shutting out the spam. I hate that it was necessary, but it's better than letting it continue.
bubaflub but my understanding is that they are backwards compatible back to 3 or something
whiteknight yeah, I hate adding permissions stuff
rohit_nsit08 whiteknight: checking rosella will be back soon :-) 18:57
18:57 rohit_nsit08 left
mikehh Ubuntu 10.10 has 4.3.2 and it is installed on my system 18:58
cotto seen dukeleto 18:59
aloha dukeleto was last seen in #parrot 15 mins 37 seconds ago saying "mikehh: we will need some testing across a few different GMP versions and OS versions to make sure stuff works for the most people".
bubaflub dukeleto: i'm going to try and make a quick sample code 19:04
dukeleto: and throw it up on github 19:05
19:05 lucian joined
whiteknight bubaflub++ 19:06
bubaflub whiteknight: thanks. i've never written anything that interfaces with C libs. are there some examples somewhere i can steal from?
whiteknight: i've read the NCI docs and the function signature stuff seems straightforward 19:07
whiteknight bubaflub: plobsing had a "deep-clone" project on github which used NCI to call functions from inside libparrot
that might be a good thing to look at
NotFound had something for calling functions from libc too
plobsing bubaflub: there are a couple bindings in existance. we have some ncurses and opengl bindings in core for example. 19:08
there's some stuff in the winxed examples directory as well
I'm currently working on zeromq bindings for parrot that make extensive use of NCI 19:09
bubaflub plobsing and whiteknight: thanks. i'm thinking i'll need a PMC that represents a GMP Integer and then each function calls the corresponding library function
whiteknight yeah, that's a good method, I think 19:10
you can use the get_pointer vtable to get the pointer to the raw data structure for NCI
plobsing bubaflub: you might be able to get away without having to write a custom PMC for the GMP data. You could try inheriting or delegating PtrObj. 19:13
bubaflub plobsing: cool. i'll take a look at that 19:14
whiteknight PtrObj will just hold a pointer, it won't have things like methods or arithmetic operations 19:18
plobsing those can be overriden from HLL 19:20
whiteknight that's true 19:21
dukeleto cotto: wazzup? 19:27
bubaflub++ # example code 19:28
bubaflub: examples/nci/ls.pir
bubaflub: copy and tweak ls.pir to your needs
bubaflub dukeleto: yeah, i was looking at that. it does seg fault on my machine but i think it's enough to steal from
dukeleto bubaflub: it segfaults! 19:29
bubaflub: we should have a test for it
bubaflub: can you gist the output of ls.pir and create a TT for it?
dukeleto has to head out soon
bubaflub dukeleto: i think it is expecting to be called from a certain directory
dukeleto: when i run it from examples/nci it segfault 19:30
when i run it from parrot/
dukeleto bubaflub: yeah, it probably expects to be run from the root of the parrot checkout
bubaflub it does some output then complains about a non UTF-8 character
dukeleto cotto: did you want to ask me something? I will be heading out soon
bubaflub: GMP function calls shouldn't be routed through a PMC, that will be slow 19:31
cotto dukeleto, will you be around tonight? 19:32
It probably won't be a quick question.
dukeleto cotto: possibly. Email is the best way, then.
cotto wfm 19:33
also, mentor request sent.
not sure why I don't get to keep my account from the previous soc/gci events. 19:34
dukeleto bubaflub: the fastest way to do stuff is to call GMP functions directly through NCI, and pass them the actual GMP objects. then we can build a syntax-sugar layer on top of that, which is friendlier to use, but slower
bubaflub: very similar to how Math::GSL works
bubaflub dukeleto: ok. my example should be pretty similar to that then
dukeleto cotto: they don't assume that everyone will want to participate every year 19:35
cotto goes out for errands
ok
dukeleto interesting post about Unladen Swallow: qinsb.blogspot.com/2011/03/unladen-...ctive.html 19:36
bubaflub any reason i'm getting "invoke() not implemented in class 'Undef'" ? 19:38
i'm doing a very basic NCI call
dukeleto bubaflub: you are passing something an Undef PMC, which expects a non-Undef PMC
bubaflub: something you are calling to create an object is giving an Undef
bubaflub dukeleto: ok, that makes more sense
dukeleto bubaflub: gist your code
bubaflub dukeleto: 19:39
gist.github.com/889513
yeah, i'm not exactly sure about the signature
init should just make a GMP integer and set it to 0
19:43 M_o_C joined
dukeleto bubaflub: you didn't initialize i 19:44
bubaflub dukeleto: ah, of course
dukeleto bubaflub: you need to create a new PMC in it before you pass it along
bubaflub: you can use an UnManagedStruct
bubaflub: and possibly other things, like PtrBuf, but UnManageStruct should work 19:45
bubaflub: i suggest you create a branch of parrot.git for your GMP work
bubaflub dukeleto: okey dokey 19:46
dukeleto bubaflub: it will look very good on your proposal if you can say "i already have a branch in parrot.git with preliminary stuff working"
19:46 plobsing left
dukeleto bubaflub: i am very excited about this! 19:46
bubaflub: we can build very cool crypto+number theory stuff on top of this work
bubaflub dukeleto: yeah, and every HLL gets free BigNum stuff already
i wonder if rakudo will need this...
moritz it needs bigints built in 19:47
benabik Good afternoon, #parrot 19:49
whiteknight hello benabik 19:51
dukeleto moritz: bubaflub++'s work will allow stuff like Math::Primality to get ported to Rakudo (or Parrot) 19:55
moritz: and other stuff that requires more than just the basic BigInt operations
benabik: howdy 19:56
bubaflub dukeleto: ok, so i need an UnManagedStruct
dukeleto: what goes in there?
dukeleto: i'm seeing a lot of examples with hashes or arrays, but the GMP integer data type is a bit opaque - is it just a pointer?
dukeleto bubaflub: just do : i = new 'UnManageStruct'
bubaflub: yes, it will be pointerish
bubaflub: you may want to look into PtrBuf and ask plobsing++ how you should use it 19:57
bubaflub: it is the new hotness, but I haven't used it
bubaflub dukeleto: okey dokey
moritz dukeleto: we have quite different problems in rakudo 19:58
dukeleto: like, get_integer always returning a machine-size number 19:59
dukeleto moritz: please explain that more 20:00
moritz dukeleto: in Perl 6, the Int type is a bigint 20:01
dukeleto moritz: in Rakudo, or is that in the spec?
moritz spec
not yet in rakudo
so coercion to Int can't go through the vtable 20:02
dukeleto moritz: what behavior does rakudo want for get_integer?
moritz because that will fail for $n > 2**63 (or whatever)
dukeleto: something that will work for bigints too
not sure how a good design would look like 20:03
dukeleto moritz: hmmm. what are the design constraints? 20:04
moritz: using BigInts when not necessary is a huge performance hit
bubaflub dukeleto: ok, just a sanity check - on the NCI function signature the first letter should be the return type
moritz dukeleto: Perl 6 has native types (unsigned and signed integers), and the high-level Int type, which must support big integers transparently 20:05
bubaflub dukeleto: for example mpz_set_string returns an int and takes a mpz_t, string, and integer so the signature should be ipti, right?
dukeleto bubaflub: i believe that is true
moritz: do you want to be able to say, in a lexical scope, "turn on/off bigints" ? 20:06
moritz: and by that I mean, change the default datastructure for ints to be machine-sized or BigInts
moritz dukeleto: no, there are separate types for non-big ints 20:07
a uint32 is *always* what it sounds like, and an Int must *always* have the ability to store arbitrary sizes
maybe the solution is to only use the vtables for forein objects 20:08
where foreign = non-perl-6
bubaflub dukeleto: i've done the whole i = new 'UnManagedStruct' business but i'm still getting the same error... 20:09
dukeleto bubaflub: hmmmm
bubaflub dukeleto: yeah, i'm either not setting the function signature right or i'm not initializing that UnManagedStruct correctly
dukeleto bubaflub: gist the code you are using and the full output.
bubaflub: or both, or something else :) 20:10
bubaflub dukeleto: hahaha. yeah. could be anything at this point.
dukeleto False Dualities Are Dangerous To The Mind
dukeleto gets off soapbox
bubaflub: you will learn how to use gdb+parrot soon, I can tell :) 20:14
bubaflub dukeleto: gist.github.com/889513 20:15
dukeleto: do i need to turn on debugging for that or can i use just a vanilla build?
dukeleto bubaflub: use github.com/leto/Util/blob/master/bin/new_parrot 20:16
bubaflub: the important part is the -g, which are debug symbols
bubaflub ok
dukeleto bubaflub: look at t/pmc/umnanagedstruct.t 20:17
bubaflub: a new UMStruct has an undef in it 20:18
bubaflub: you need to put something there
bubaflub: you can try any PMC for now. You will probably get a more interesting error :)
bubaflub dukeleto: hahaha. that'll be nice for a change
dukeleto bubaflub: also, PIR has a "say" opcode, in case you forgot
bubaflub: shorter to type and often what you want
smolder is still barfing 20:19
mikehh dukeleto: probably needs re-starting, seemed to work for a while after a re-start 20:20
dukeleto mikehh: yes. memory leaks 20:21
20:23 M_o_C left
mikehh dukeleto: are you using Smolder-1.51 or has it been modified a lot 20:24
dukeleto mikehh: it is a stock smolder, but probably a few versions before 1.51
mikehh dukeleto: Smolder-1.51 - 16 Dec 2009 20:26
20:26 M_o_C joined
mikehh Let me do some tests on it 20:26
20:28 davidfetter joined, M_o_C left 20:29 M_o_C joined 20:39 M_o_C left
bubaflub dukeleto: so i think i get it - this UnManagedStruct will eventually have the exact same layout as the C struct in GMP 20:40
dukeleto: i'm still getting that same error, by the way
dukeleto: gist.github.com/889513 updated 20:41
cotto ~~ 20:51
tadzik ~ 20:52
21:01 bacek joined
bubaflub what's the best way to check if a file exists in PIR? 21:01
21:01 bbatha joined
bubaflub nevermind, figured it out 21:04
benabik Looking at PDD22, I'd guess: stat "file", 0. Although there does also appear to be os.'stat'('file')[0] 21:05
bbatha Because there are already a lot of students who want to do python for their GSoC projects, I began looking at Java for mine and had a couple of questions. 21:07
First, what is the scope of the project that was looking to be supported? Are java 7 features wanted/needed? What about generics? 21:09
benabik bbatha: I rather doubt they expect a complete Java implementation over a summer.
bbatha That's what I thought both of those things seemed rather large 21:10
21:10 bacek left
bbatha The other question was why isn't the focus of the project to translate java byte code? it seems to me that would be just as efficient and would have the benefit of adding JVM languages like Groovy and Scala. 21:11
benabik bbatha: I'm a student, not a mentor, but I'd expect they're looking for a reasonable subset of the language with a code structure that lets the expansion happen later. For Java, I'd implement all the basic structures and leave the pretty syntax for later.
bbatha: Because that's really inefficient, mostly.
bbatha benabik: that makes sense. 21:12
cotto We used to have a .net bytecode translator, though it bitrotted. 21:14
benabik Something that pre-translated and tried to do some optimizations wrt stack vs register usage might not be too horrible. Wouldn't want to use it alot though. Would almost be more worthwhile to embed Java in Parrot or vice versa. 21:15
(IMNSHO)
cotto benabik, I like the way you think. 21:16
benabik cotto: translating or embedding? 21:17
cotto embedding
benabik Parrot's supposed to be good a language interop, so... :-D 21:18
cotto that'd be a very interesting project
benabik Been quite a while since I was mucking around with Java internals. 21:19
cotto It's been NaN since I mucked around in Java guts.
21:20 bacek joined
benabik I think it wouldn't be too hard to expose the Parrot embedding API via JNI, but full interop might be... non-trivial 21:27
cotto that gets into the realm of interesting problems 21:30
benabik I almost wonder if it would be easier to do RPC-style communication over pipes or sockets. 21:32
21:35 PacoLinux left 21:41 ambs left 21:54 zby_home left
lucian points at rpyc 22:05
22:08 bacek left 22:18 plobsing joined
bubaflub plobsing: do you have a minute to help me with NCI and PtrBuf? 22:29
plobsing bubaflub: shoot 22:39
bubaflub plobsing: i guess just some basic information. i'd like to do some work with the GMP library for GSoC and am trying to get some NCI stuff going but am having trouble with UnManagedStruct 22:40
plobsing: i don't know a whole lot about PtrObj and PtrBuf but dukeleto said i shoulda ask you about them
plobsing: for example, i'd like to wrap GMP functions but i don't think i really need to setup an UnManagedStruct to examine the guts of GMP integer objects 22:45
22:46 fperrad left
bubaflub plobsing: could i use PtrObj just as an opaque reference and then pass that around? 22:46
22:48 soh_cah_toa joined 22:49 bbatha left
plobsing bubaflub: you can use *Struct and Ptr* as opaque pointers 22:56
I'd advise to use the new Ptr* types as the *Struct types are deprecated
bubaflub plobsing: ok, great. is there some example code i could look at or steal?
plobsing: i don't really ever need to access the guts of the object, just be able to pass around the pointer to different functions 22:57
22:57 cosimo_ joined
plobsing bubaflub: there isn't much atm. my relatively new parrot-zeromq project makes use of the Ptr* objects. 22:58
bubaflub plobsing: neat. do you have the source on github for me to peek at?
plobsing github.com/plobsing/parrot-zeromq 22:59
bubaflub haha. a most intuitive URL
plobsing bubaflub: you say you don't care about the structure of the objects, but how are you allocating them? 23:02
does libgmp allocate them?
or are you expected to allocate them (in which case, you need their structure to determine the allocate size)
bubaflub plobsing: i believe libgmp takes care of that - there are several init functions 23:03
also takes care of resizing in the event that calculations cause the number to exceed what's available
s/available/previously allocated/
23:04 cosimo_ left 23:05 bbatha joined 23:07 cosimo left, rurban_ joined 23:11 rurban left, rurban_ is now known as rurban 23:13 cosimo joined 23:15 theory joined 23:25 jsut joined 23:29 particle joined 23:30 jsut_ left
bubaflub plobsing: ok, i think i'm beginning to understand some of this stuff. i definitely need to figure out how this stuff is internally represented. 23:33
whiteknight the Ptr PMC types are very well designed and implemented 23:41
I suspect the API will be very stable too
bbatha: a JVM bytecode translator to Parrot would be a good project too 23:52
Groovy and Scala support would be nice things to get for free
bubaflub whiteknight: can you help me out here? i tried using a StructView class but am running into the same thing
whiteknight bubaflub: what same thing? 23:53
bubaflub whiteknight: i'm a bit confused by all the Un/ManagedStruct, StructView, and Ptr* objects
sorry, same thing = same problem i had before, something is still Undef
bbatha whiteknight: that's what I was thinking, but my feeling is the independent java compiler is probably useful to have
whiteknight UnmanagedStruct and ManagedStruct are old and maybe evil. Don't use them
Ptr, PtrBuf, and PtrObj are the new hotness
plobsing bubaflub: the error message you described is what happens when the NCI object is null 23:54
whiteknight bbatha: We've had a handful of users come to IRC in the past who have wanted Parrot to support existing Java software
some people are unhappy about the situation with Oracle
plobsing make sure your loadlib and dlfunc ops are returning values properly
bubaflub plobsing: oh, ok, lemme double check em 23:55
whiteknight does NCI.get_bool return whether the ptr is non-null? 23:56
bubaflub plobsing or whiteknight: gist.github.com/889513 is my code and output 23:58
bbatha whiteknight: I talked to benabik earlier about this as you probably saw do you know bad the performance hit would be versus say a more traditional compiler. and would it be more valuable to pursue that as a project over the java compiler 23:59