|
Parrot 3.4.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today Set by moderator on 17 May 2011. |
|||
|
00:10
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 00:21 | |
| mikehh | hi whiteknight | 00:28 | |
| in c is ux & (1 << n) - 1 the same as ux & ((1 << n) - 1) | 00:30 | ||
| sorear | yes | 00:32 | |
| mikehh | sorear: just trying to fix warnings in structview.pmc | 00:33 | |
| it's horrendous | 00:34 | ||
| 8 of the warnings come from -> BEGIN_KEYED(interp, _self, k) a 43 line macro (I think I got it though | 00:37 | ||
|
00:44
davidfetter joined
|
|||
| mikehh | what is the standard return for a Null PMC * | 00:53 | |
| sorear | NULLPMC | 00:54 | |
| whiteknight | blah, pbc_merge is still not doing what it should | 00:56 | |
| annotations are a pain | |||
|
01:04
mtk left
|
|||
| dalek | rrot: 618b825 | mikehh++ | src/pmc/structview.pmc: quiet compiler warnings in structview.pmc |
01:23 | |
|
01:26
whiteknight left
01:53
kid51 joined
|
|||
| kid51 | mikehh: ping | 01:53 | |
| mikehh | kid51: pong | 01:54 | |
| kid51 | Mike: Were you able to look at what I pasted earlier today to fix some build warnings? | ||
| nopaste.snit.ch/51399 | 01:56 | ||
| mikehh | yes - it is the type of thing needed either casting to size-t to int or in to size_t | ||
| s/in/int/ | |||
| kid51 | I've never done enough C to get to type-casting, so this was just monkey-patching. | ||
| But it's passing tests so I wonder if this is applicable. | 01:57 | ||
| mikehh | yes it is | ||
| kid51 | okay. Am testing now on darwin, and if that looks good, I will commit | 01:58 | |
| mikehh | you might want to look at what I did with src/pmc/structview.pmc -> github.com/parrot/parrot/commit/618b8252f9 | ||
| I think that got most of the warnings for it | 01:59 | ||
| there were a couple of int/size_t casts to get rid of signed/unsigned comparrison warnings | 02:00 | ||
| kid51 | Do you understand what structview.pmc is all about? | 02:01 | |
| mikehh | in general, I have a good idea, it took me a while to work out the bits and peices | 02:02 | |
| kid51 | What is it "for"? | ||
| mikehh | the thing that caused me a lot of problems were the macros which threw out the line number correspondance | 02:03 | |
| 8 of the warnings were caused by BEGIN_KEYED(interp, _self, k) a 43 line macro on one line of the PMC | 02:04 | ||
| kid51 | heh | ||
| mikehh | which was caused by a size_t/int comparisson in tyhe macro | 02:05 | |
| kid51 | So, did doing a proper comparison in the macro eliminate all 8 of those warnings? | 02:06 | |
| mikehh | yup | ||
| kid51 | nice | ||
| mikehh | it took me ages to track it down though - I eventually configured with --no-line-directives and then compared the generated c file to the pmc | 02:08 | |
| dalek | rrot: 3ff579a | petdance++ | frontend/pbc_merge/main.c: annotated a couple of functions, and do not compare opcodes to pointers |
||
| mikehh | kid51: as to what it is for - it gives methods to map PMC pointers to C structs, not 100% sure what it is used for though | 02:15 | |
| kid51 | Hmm, I wonder if petdance's commit will fix fails in t/codingstd/c_arg_assert.t | ||
| mikehh | kid51: probably not, I will look at that a bit later | ||
| probably needs aanother run of make hearerizer and then fix any missing ASSERT_ARGS | 02:16 | ||
| kid51 | I just ran make codetest for first time today. | ||
| But that was on the next-to-last commit | 02:17 | ||
| Can you fix a linelength fail at line 518 of frontend/pbc_merge/main.c? | 02:18 | ||
| mikehh | I ran it a lttle while ago and got a bunch of failures mainly with various pbc_merge stuff, but was working on structview.pmc | ||
|
02:20
kid51_ joined
|
|||
| mikehh | kid51: yeah - will try and fix the codetest failures | 02:21 | |
|
02:24
kid51 left
|
|||
| dalek | rrot: f2f32f8 | jkeenan++ | src/ (3 files): Add typecasts to correct 'comparison between signed and unsigned' warnings during build with both gcc and g++. |
02:25 | |
| kid51_ | I'll nail some of them. | 02:31 | |
| dalek | rrot: 4158916 | jkeenan++ | frontend/pbc_merge/main.c: [codingstd] Correct 3 lines too long for standard. |
02:35 | |
| rrot: 17d97e8 | jkeenan++ | frontend/pbc_merge/main.c: [codingstd] No space before close paren. |
|||
| kid51_ | That leaves some c_args_assert and c_function_docs codingstd errors. | 02:39 | |
| There are certain warnings thrown during a g++ build which, if corrected, violate our c_parens codingstd :-( | 02:40 | ||
| Namely: | 02:41 | ||
| warning: suggest a space before ';' or explicit braces around empty body in 'for' statement | |||
| But now we're down to only 8 warnings during a gcc build. | |||
| dalek | rrot: d5eec7a | jkeenan++ | frontend/pbc_merge/main.c: Amplify TODO comment with notation of warning being generated at that point. |
02:45 | |
| mikehh | kid51_: will try and clear those up over the next day or so | ||
| kid51_ | 3 of them are: no previous prototype | 02:47 | |
| 2 are: ignoring return value of '<function>', declared with attribute warn_unused_result | 02:48 | ||
| soh_cah_toa | one of those is from a function i wrote a while ago before i knew how to use headerizer ;) | ||
| Parrot_new_from_type() or something like that | 02:49 | ||
| kid51_ | Corrections welcome! | ||
| soh_cah_toa | yeah, why not. i think i'll take care of that tomorrow afternoon | 02:50 | |
| kid51_ | thx | ||
| mikehh | kid51_: will fix the remaining codetest failures after I have had some sleep, it's nearly 4 am for me (again) | 02:56 | |
| soh_cah_toa | you're nuts, man | 02:57 | |
| dalek | website: soh_cah_toa++ | Progress at Last! | 03:00 | |
| website: www.parrot.org/content/progress-last | |||
|
03:25
kid51_ left
03:35
hudnix left
03:38
bubaflub joined
03:43
cotto left
|
|||
| dalek | rrot/soh-cah-toa/hbdb: 16a9177 | soh_cah_toa++ | src/runcore/cores.c: Removed code for retrieving line numbers because it didn't work |
03:45 | |
| rrot/soh-cah-toa/hbdb: fc40dc7 | soh_cah_toa++ | / (3 files): Defined INTERP_ATTR as a temporary fix for accessing Parrot_Interp fields |
|||
|
04:04
bubaflub left
04:14
bubaflub joined
04:37
soh_cah_toa left
04:41
bubaflub left
04:55
rohit_nsit08 joined
04:56
JimmyZ joined
04:57
rohit_nsit08 left
05:04
contingencyplan left
05:07
contingencyplan joined
05:18
plobsing joined
05:23
contingencyplan left
05:25
cotto joined
|
|||
| cotto | ~~ | 05:25 | |
| dukeleto | cotto: exactly how much padding is there in the m0 bytecode header? | 05:30 | |
| cotto: i want to store a sha256 sum in the m0 bytecode header, which is the sha256 of everything after the m0b header | 05:31 | ||
| cotto: that way, it will detect a mangled constant table, metadata or bytecode, which is better than only storing a checksum of the bytecode | |||
| cotto: does that sound reasonable to you? | 05:32 | ||
| sorear | um, why only AFTER the header? | ||
| dukeleto | sorear: where else do you store it? | ||
| sorear | well it can't checksum itself, but there's no reason not to check the rest of the header | 05:34 | |
| perhaps zero out the "checksum" byte range before passing the header to sha256sum | |||
| cotto | dukeleto: on the phone. will respond in a bit | ||
| dukeleto | sorear: sure, i can see some value in that. | 05:36 | |
| cotto: the sha256 can be the first element in the header (after the magic number) and will contain the sha256 of the rest of the m0b file, for extra paranoidness | 05:37 | ||
| cotto: that will add 32 bytes to the header. Should we say that the m0b header will be 64 bytes, for definiteness? 32 for sha256, 6 more for version, register sizes + endianess, and the rest will be padding for now | 05:39 | ||
| cotto | and back | 05:48 | |
| dukeleto: I don't like hard-coding the hashing algorithm, and using something like sha256 can only protect against transmission errors. | 05:49 | ||
| dukeleto | cotto: yes. | 05:50 | |
| cotto | dukeleto: what about a distinct checksum segment with a variable-sized checksum | ||
| ? | |||
| also, I need to do some weeding in the header. I think m0b will always be little-endian unless there's a strong reason for it not to be,. | 05:51 | ||
| dukeleto | cotto: what does a variable-sized checksum buy us? | ||
| cotto: i figure, we can change the m0b version if we want to change checksum algorithms | |||
| cotto | dukeleto: different algorithms | ||
| dukeleto | cotto: i don't see us needing to change algorithms. SHA256 being "broken" doesn't make it less useful as a checksum | 05:52 | |
| cotto: if we wanted to digitally sign bytecode, then I can see the value of flexibility. But digitally signing stuff is a huge vat of worms. | 05:53 | ||
| cotto | dukeleto: If we're trying to protect against transmission errors, we might as well use something really simple like crc. | ||
| dukeleto: agreed | |||
| dukeleto | cotto: i forsee sha256 being useful for checksumming in the foreseeable future | 05:54 | |
| cotto: i guess. we already have a pure-parrot sha256 | |||
| cotto | dukeleto: I don't care all that much. Having a single algorithm does have the advantage of guaranteed compatibility. | 05:55 | |
| dukeleto | cotto: yes. arbitrary algorithms sounds nice, but what is the point? Users just want to run the damn bytecode and not have it catch their computer on fire | ||
| cotto | catching things on fire is generally underrated | 05:56 | |
| dukeleto | cotto: i am ambivalent to the algorithm. sha256 is just the most sofisticated checksum algorithm that we have currently, in a native parrot language | ||
| cotto: it is only computed once per bytecode generation | 05:57 | ||
| cotto: which isn't too often. So the performance of sha256 vs crc doesn't really come into play | |||
| cotto | dukeleto: my point is that sophistication doesn't matter for the purpose we're proposing. If we use something really simple, nobody will get the impression that we're trying to provide security at that leve. | ||
| *level | |||
| dukeleto: quite true | 05:58 | ||
| dukeleto | cotto: if you are going to rarely compute 1 checksum, it seems like sha256 is more future-proof | ||
| cotto | dukeleto: what does "future-proof" mean? | ||
| dukeleto | cotto: we can very loudly tell them that checksumming does not protect against maliciously crafted bytecode | ||
| cotto: sha256 has way fewer collisions than crc for large bytecodes | 05:59 | ||
| cotto | dukeleto: do we care about collisions? | ||
| dukeleto | cotto: well, a collision means that the m0 interp will think invalid bytecode is valid | 06:00 | |
| cotto: and then run mangled bytecode | 06:01 | ||
| cotto: i want to make running mangled bytecode whilst thinking it is unmangled an extremely unlikely prospect | |||
| cotto: sha256 makes it many orders of magnitude less likely than crc | |||
| cotto | dukeleto: in my mind, any checksum will do that. | ||
| dukeleto | cotto: all checksums are not created equal | 06:03 | |
| cotto | dukeleto: I don't see this as being worth half the thought we're giving it. sha256 will work, let's go with it | 06:04 | |
| though a pure-pir implementation doesn't mean that we won't need to find a separate C implementation between now and when we have a self-hosted M0 generator. | 06:06 | ||
| sorear | dukeleto: I do not think it would be a good idea to "always verify", it would interact badly with OS lazy loading | 06:07 | |
| dukeleto | cotto: actually, verifying the checksum will require calculating it and verifying it once per bytecode load | 06:09 | |
| cotto | www.google.com/codesearch#xsttHqg0w...c/SHA256.c is in the public domain sha256 implementation we could use | ||
| dukeleto: either that or some smart laziness | 06:10 | ||
| dukeleto | sorear: why so? lazy loading of bytecode? do we support that now? | ||
| cotto | dukeleto: it's a nice feature. We shouldn't make it impossible. | 06:11 | |
| dukeleto | cotto: what does lazy bytecode loading mean? Only actually loading the bc when it is run? | 06:12 | |
| cotto | dukeleto: I interpret it as being akin to mmapped bytecode files | 06:13 | |
| so yes | |||
| dukeleto | cotto: when do you verify then? If not always, then you run the risk of running mangle bytecode, right? | 06:14 | |
| cotto: "always" meaning once per bc load | |||
|
06:15
davidfetter left
|
|||
| cotto | dukeleto: Hmmm. Having mmapped files would let the OS solve the problem for us by allowing it to swap out unused pages after the checksum was calculated. | 06:16 | |
| dalek | rrot/m0-spec: 0eb454e | dukeleto++ | docs/pdds/draft/pdd32_m0.pod: Add some updates about checksums |
||
| cotto | If M0 code is run php-style, it'd be a meaningful cost. | ||
| (checksumming always) | |||
| maybe turn it on by default but allow it to be disabled | 06:17 | ||
| dukeleto | cotto: sure. what is the use case for disabling? "trusting" your own bytecode doesn't mean your harddrive or a neutrino won't flip a bit | ||
| cotto | dukeleto: it's an optimization with a minor cost for the case where you're running M0 on a heavily-loaded machine. | 06:19 | |
| dukeleto | cotto: sure. how to disable? command-line? | 06:25 | |
| cotto | dukeleto: it depends on how the M0 is run. | 06:27 | |
| dukeleto: probably either that or an argument passed to the function that loads the m0b | |||
| dukeleto: can you think of any reason not to make the checksum optional in m0b? | 06:35 | ||
| sorear | dukeleto: your harddrive already checksums every sector | 06:40 | |
| dukeleto: IMO demand loading is the one way to get Rakudo startup times competitive with Perl5 (anything under 100ms won't be noticed by a casual user) | 06:43 | ||
| we can't reasonably expect to load 30MiB of bytecode in 1/10 of a second | 06:44 | ||
| dalek | rrot/leto/embed_grant: 10e42d3 | dukeleto++ | t/src/extend.t: Add coverage to Parrot_printf |
06:46 | |
| dukeleto | cotto: git occasionally finds bugs in my encrypted filesystem layer. There are often many layers between the drive checksum and the end user | 06:50 | |
| sorear: ^^^ | 06:51 | ||
| cotto: if the checksum is optional, will it be defaulted to on? | |||
| cotto: if it defaults to on, i am fine with it being optional. Otherwise, it will never get run. | 06:52 | ||
| cotto | dukeleto: yes | ||
| I agree. People are rightly lazy. | |||
|
06:54
dodathome joined
|
|||
| cotto | dukeleto: consider yourself free to add the right Perl module dependency to the assembler and make it start calculating checksums. I don't have any pending changes atm. | 07:03 | |
|
07:21
fperrad joined
07:23
contingencyplan joined
|
|||
| cotto | time for sleep | 07:32 | |
|
07:43
mj41 joined
07:59
mj41 left
08:01
mj41 joined
|
|||
| dalek | rrot: 5d77384 | pmichaud++ | compilers/pct/src/PAST/ (2 files): [pct]: Add a "childorder" property to PAST::Node to allow children |
08:27 | |
|
09:12
jsut_ joined
09:17
jsut left
09:34
mj41 left
09:49
ligne joined
09:59
whiteknight joined
|
|||
| dalek | p: 6a0f778 | pmichaud++ | / (3 files): Make a common set of pir constants available. |
10:18 | |
| p: ce077cd | pmichaud++ | src/stage0/ (6 files): Update bootstrap to get built-in includes. |
|||
| p: 9d5b199 | pmichaud++ | src/PAST/Compiler-Regex.pir: Convert first set of .CCLASS_* constants to remain symbolic in generated PIR. |
|||
| p: c1aa27f | pmichaud++ | src/PAST/Compiler-Regex.pir: Eliminate final .CCLASS_* non-symbol constants in regex code gen. |
|||
| p: 67d1c79 | pmichaud++ | src/NQP/ (2 files): Add pir::const::CONSTANT to NQP. |
|||
| p: 285bf9f | pmichaud++ | src/stage0/ (6 files): Update bootstrap to enable pir::const:: constants in NQP sources. |
|||
| p: 8adbe89 | pmichaud++ | src/HLL/Compiler.pm: Update some pir constants to use pir::const:: instead of Q:PIR. |
|||
| p: c4d0afb | pmichaud++ | src/HLL/Grammar.pm: Remove more extraneous .include's. |
|||
| rrot: 6949470 | mikehh++ | compilers/pct/src/PAST/Node.pir: fix codetest failure - trailing space and update copyright |
10:35 | ||
| rrot: 25f7097 | mikehh++ | frontend/pbc_merge/main.c: add missing c_function_docs (this could be expanded) |
|||
| rrot: d2b5dcb | mikehh++ | frontend/pbc_merge/main.c: add missing ASSERT_ARGS |
|||
|
11:24
fperrad left
|
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_4_0-227-gd2b5dcb | 11:40 | |
| Ubuntu 11.04 i386 (g++) | |||
| JimmyZ | parrot never passes all tests here, because my windows username is chinese :( | 11:42 | |
| moritz | have you submitted a bug report? | ||
| JimmyZ | yes | 11:43 | |
| two years ago | 11:44 | ||
| moritz | ah | ||
| JimmyZ | TT #888 | 11:45 | |
| moritz | even a three-digit track ticket | 11:47 | |
| mikehh | JimmyZ: you should try a Linux implementation, Ubuntu can be installed under Windoze | ||
| moritz | that's totally the wrong approach | ||
| mikehh | moritz: just to compare :-} | 11:48 | |
|
11:49
klavs joined
|
|||
| mikehh | I know that we need to get the bugs out of our M$ implementations | 11:49 | |
| I just don't have access to the platform | 11:50 | ||
| I gave up on it a few years back, and never regretted it | |||
| moritz | trac.parrot.org/parrot/ticket/757 another all-time favorite | 11:51 | |
| mikehh | moritz: we seriously need work on out threads implementation, I keep getting intermittent failures in t/pmc/threads.t (not often, but it keeps happening) | 11:55 | |
|
11:58
klavs left
12:07
Eclesia joined
|
|||
| Eclesia | hi | 12:07 | |
| whiteknight | hello Eclesia | 12:08 | |
| ligne | mikehh> that's what's so fun about concurrency bugs :-/ | 12:10 | |
| i tried running parrot through helgrind and drd last week, which reported a load of "errors" | 12:11 | ||
| i've not had a chance to properly look through them to work out which are the root problems, which are just symptoms, and which are false positives | 12:12 | ||
|
12:23
kid51 joined
|
|||
| Eclesia | I update the source code, looks like the 'make reconfig' doesn't exist anymore | 12:24 | |
| has it been renamed ? | |||
|
12:25
mj41 joined
|
|||
| kid51 | It does exist (line 2417 config/gen/makefiles/root.in), but its function may have changed. | 12:27 | |
| What are you attempting to do? | |||
| Eclesia | kid51: update and build everything | 12:28 | |
| I noted thoses commands before : | |||
| git pull make realclean make reconfig sudo make install | |||
| kid51 | If you haven't built in some time, I recommend: | 12:29 | |
| make realclean;git pull;perl Configure.pl;make;make test;sudo make install | |||
| Eclesia | so it has changed ^^ | 12:30 | |
| thanks I'll try that | |||
|
12:33
mj41 left
|
|||
| Eclesia | what is the git command for : hg revert --all --no-backup ? | 12:35 | |
|
12:35
ambs joined
12:42
hudnix joined
|
|||
| whiteknight | Eclesia: "make realclean" deletes the makefile | 12:42 | |
| Eclesia: so you won't be able to make anything after that | 12:43 | ||
| Eclesia: you can try "make clean", which does not delete the makefile, or you can realclean and then "perl Configure.pl" | |||
| kid51 | But if you haven't built recently, then you probably should run Configure.pl anew in order to capture changes in the source code that creates the Makefile. | 12:44 | |
| Eclesia | ok thanks | 12:45 | |
|
12:58
preflex left
13:02
preflex joined
|
|||
| cotto | msg soh_cah_toa Did you delete the line number code because it didn't ever work or because line numbers aren't reliable? | 13:07 | |
| aloha | OK. I'll deliver the message. | ||
|
13:20
lucian joined
13:27
contingencyplan left
13:29
lucian left
13:30
lucian joined
13:48
Eclesia left
13:50
hudnix left
|
|||
| dalek | sella: 76df310 | Whiteknight++ | src/include/FileSystem.winxed: Quick include file for Filesystem |
14:03 | |
| sella: 3aa9f50 | Whiteknight++ | s (2 files): Harness now relies on FileSystem for walking directories |
|||
| whiteknight | Eclesia: you can try "make clean", which does not delete the makefile, or you can realclean and then "perl Configure.pl" | 14:26 | |
| ....lolwat? | |||
| jnthn__ | whiteknight: I seem to have caused a complexity explosion with the IMCC register allocator... | 14:31 | |
| whiteknight | jnthn__: doesn't surprise me | ||
| jnthn__: what's up? | |||
| jnthn__ | whiteknight: Turns out generating an extremely large sub with loads of registers with very short lifetimes is...bad. | ||
| whiteknight | how bad? what does it do? How many registers are we talking about? | ||
| jnthn__ | Like, it takes more time for Parrot to compile PIR to PBC than it does for Rakudo to do Perl 6 => PIR :) | 14:32 | |
| whiteknight | ouch. how many registers? Can you replace it with either a single register or an array? | ||
| jnthn__ | It's basically the "deserialization" code | ||
| whiteknight | I'm pretty sure the register allocator runs in quadratic time or higher. It's not a "performance" algorithm | 14:33 | |
| jnthn__ | Rather than having load init blocks all over the place (as we do in master) we have one central block which builds up the environment. | ||
| whiteknight | ok | ||
| jnthn__ | Yes, it's quadratic...I read through what it's doing. | ||
| whiteknight | I have to go afk for a bit. I'll be back later | 14:34 | |
| jnthn__ | Not quite sure what to do, anyway... | ||
| ok :) | |||
|
14:35
bubaflub joined
14:45
rohit_nsit08 joined
|
|||
| rohit_nsit08 | Coke_: hello, just read your mail | 14:45 | |
|
14:46
klavspr joined
14:50
bubaflub left
14:53
kid51 left
15:12
klavspr left
15:22
Coke_ is now known as Coke
|
|||
| Coke | rohit_nsit08: are we both here at the same time? ;) | 15:23 | |
| rohit_nsit08 | Coke: hmm.. almost. | ||
| I'm here from last 1 hour I guess | |||
| Coke | (I had sent the email from my mobile and was waiting for the beep back, and didn't get one. | ||
| rohit_nsit08 | :-) | ||
| Coke | so, I know you had some questions on Friday - anything left that still needs sorting out? | 15:24 | |
| rohit_nsit08 | Coke: ya, most of them were doubts in the confusing syntax of javascript and now resolved. | 15:25 | |
| Coke: can u suggest me which features to proceed in starting and features that can take time so that I can do side work in studying them | 15:26 | ||
| Coke | so all I had to do was be on travel? ;) | 15:27 | |
| rohit_nsit08 | I am writing a blog post on current situation and will post it tomorrow that will bring both of us in sync of what to expect in coming week | ||
| Coke | (fyi, will@coleda.com is a google-hosted account. I'm also at wcoleda@gmail.com) | ||
| (just got your invite) | |||
| digging up email from friday. | |||
| rohit_nsit08 | loll | 15:28 | |
| corellascript parser is based on lalr(1) parsing algorithm. I have read about it from wiki ( very good description) do I need to go in details or that will do the job | 15:29 | ||
| basically it is a bottom up parsing with lookahead | |||
| Coke | that's fine. | ||
| rohit_nsit08: there was talk at the beginning of doing blog posts at parrot.org - I see you have one at blogspot.com - is that your ``official'' blog for GSOC? | 15:30 | ||
| (if so, I can aggregate it to planet parrot) | |||
| rohit_nsit08 | Coke: well that's my personal blog . If that can be the "official blog" I will be happy to do so | 15:32 | |
| Coke | will prevent you from having to re-post to parrot.org | ||
| rohit_nsit08 | Coke: that will be good . thanks | 15:33 | |
| I usually give brief information on parrot.org and a link to full post at blogspot | |||
| Coke | ah, you do? then that's fine. | 15:34 | |
| rohit_nsit08 | actually it seems easy for me to post code snippets there | ||
| Coke | (getting blogspot to give me a feed of just "parrot" label'd posts is a pain anyway.) | ||
| rohit_nsit08 | Coke: I was getting into slight confusion by the use of "this" . I'm reading several sources and trying test codes on node to get it clear . can u suggest something ? | 15:36 | |
| I know "this" refers to the object who own that function | |||
| Coke | more the context that function is executed in, as i understand it; | 15:37 | |
| let me see if I can find you a good reference on that (this) is hard to search in google... | |||
| rohit_nsit08 | ya "this" property is defined in the functions context | ||
| usually at the end | |||
| Coke | developer.mozilla.org/en/JavaScrip...ecial/this | 15:38 | |
| which looks not at all helpful from an implementor POV, I guess. | 15:39 | ||
| rohit_nsit08 | have a look at this. github.com/rohit-nsit08/corellaScr.../js.js#L18 . can u tell me what "this" is referring here to? | 15:40 | |
| Compiler is a constructor function here and we are extending Compiler.prototype | |||
| my guess after analysing its working is that , "this" is referring to the object created from the Compiler constructor function | 15:43 | ||
| Coke | hurm. that seems reasonable - I'm trying to parse it in my head right now. ;) | 15:44 | |
| rohit_nsit08 | ok | ||
| Coke | yah, that looks correct. | 15:52 | |
| do you have a JS test suite you're going to target? | 15:53 | ||
| (ugh. mozilla is still using cvs?) | 15:54 | ||
| rohit_nsit08 | I am still searching for one. | 15:55 | |
| btw Is there any way to debug code in nodejs? | |||
| Coke | dunno - I've never used nodejs - but I can definitely check. | 15:56 | |
| rohit_nsit08 | nodejs provide one utility but that gave errors on my system | 15:57 | |
| that was node-inspector | |||
| Coke | building node now, but found this: stackoverflow.com/questions/1911015...plications | 15:58 | |
| which points to the chrome developer tools. | |||
| rohit_nsit08 | was on the same link ;-) | 15:59 | |
| Coke | ;() | ||
| er, ;) | |||
| ugh. wish I could still ssh into my home machine - makes it easier to decide where to install stuff for GSOC so I can run it all the time. | 16:00 | ||
| rohit_nsit08 | hmm that will be good. btw I've found an eclipse plugin for v8 which can be used to debug scripts | 16:01 | |
| Coke | excellent. | ||
| rohit_nsit08 | seems a good one , have a look github.com/joyent/node/wiki/using-...s-debugger | 16:02 | |
| Coke | aye. | ||
|
16:05
hudnix joined
|
|||
| rohit_nsit08 | this is the current codegenerator that compiles javascript to javascript itself. I went through winxed's source to see how it emit PIR code as winxed is similar in syntax to javascript. basic things like variable declarations and comments and arithmetic operations are easy to go with. My doubt is regarding functions and scopes. Is my Approach correct or I should follow any other way round? | 16:08 | |
| github.com/rohit-nsit08/corellaScr...codegen.js | |||
| Coke | reading | 16:09 | |
| rohit_nsit08 | ya, sure. | ||
| Coke | er, I see no PIR there - can you describe what's going on? | 16:10 | |
| rohit_nsit08 | well I didn't updated it from sometime . rightnow the code u are seeing is converting javascript to javascript following the usual procedure of parsing , forming AST and then emitting code in new language which happens to be javascript in this case | 16:12 | |
| Coke | ah. so (per the TODO), need to change that to emit PIR instead? | 16:13 | |
| rohit_nsit08 | yup | ||
| that is the first part of project all about, getting PIR from it | 16:14 | ||
| and than compile whole compiler into pir and run that on parrot | |||
| Coke | ok - there's 2 basic options I see here - either emit PIR directly, or emit PAST, and then use one of parrot's builtin tools to convert that (standard) format to PIR --- but I think generating PIR directly is more in line with winxed and with, e.g. partcl(-old). | 16:15 | |
| rohit_nsit08 | ya, winxed is directly generating PIR code, So I am trying to follow similar approach here as well | ||
| Coke | I think that's reasonable, yah. | 16:16 | |
| dalek | rrot/leto/embed_grant: 43b575e | dukeleto++ | t/src/extend.t: [t] Parrot_fprintf |
||
| rohit_nsit08 | for getting PAST, I think I'll have to go through some 1000 lines of parser's code , I have gone through all of it. still learning something new everyday :-) | 16:17 | |
| getting PIR seems to be a slightly better as I have separate codegenerator functions for eveery node, | 16:18 | ||
| rightnow I'm trying to see how the functions and scopes are being implemented | 16:19 | ||
| Coke | there are some things that past->pir step would take care of for you, but no showstoppers. | ||
| rohit_nsit08 | I have less idea about past, which things? | 16:20 | |
| I'll keep them in mind for possible problems in getting direct PIR . | 16:21 | ||
|
16:23
lucian left
|
|||
| Coke | well, if you're doing, e.g. a loop that executes code, past will handle serializing inner code blocks into ``anonymous'' sub blocks for you. | 16:25 | |
| since in PIR, there isn't a block, just a sub. | |||
| but a most of it just convenience - winxed and partcl do fine without it, so can you. | |||
| rohit_nsit08 | ya, I was thinking about the advanced features of javascript. hope they won't pose any problem. One more thing I wanted to ask was that like winxed runs on parrot and takes input from the file. winxed has a frontend for that file handling . and I think corellaScript also needs to have that feature so will that be implemented in PIR itself later or do I need to do that in current stage? | 16:28 | |
| Coke | I think you can do it in PIR for now, and perhaps move it to JS later. | 16:30 | |
| rakudo does that a lot - start with stuff in PIR (maybe wrapped in a little NQP), and move it to Perl 6 when more of the work is done. | |||
| rohit_nsit08 | ok. I think that was all to be discussed for now. and It will be great if u can pull and test any code pushed by me so that I can improve further. did u setup nodejs and pulled corellascript from github ? I can post all the details of corellascript on a blog post to have better collaboration | 16:35 | |
| Coke | I have grabbed both from git. a quick and dirty "here is how you run corellascript" will be great for not only me but other interested parrot folks. | ||
| even just in the top level README (though a blog post will get you more visibility) | 16:36 | ||
| rohit_nsit08 | ya I'll do it tomorrow morning for sure | 16:37 | |
| Coke | dahnyawaad. (pardon my horrible transliteration) | 16:39 | |
| rohit_nsit08 | loll that's fyn | 16:40 | |
| dhanyawaad | |||
| Coke | ;) | ||
| one of the things they talked about in our big global tax meeting was cultural awareness - since I am horrible on the timezones, apparently, trying to make up for it in language. ;) | 16:41 | ||
| rohit_nsit08 | hmm... nice | 16:42 | |
| Coke | good luck this week - I'll be at my office, so on a much more regular schedule, and able to respond to email/irc much faster. | 16:43 | |
| (plus I was in a big rush this last month to get stuff done for the con last week, which is now over.) | 16:44 | ||
| rohit_nsit08 | thanks for the meeting.. I will read some more about "this" from the source u gave . cheers ;-) | ||
| bye | |||
| Coke | cheers! | ||
|
16:45
rohit_nsit08 left
16:54
fperrad joined
17:02
bubaflub joined,
kid51 joined
17:05
JimmyZ left
|
|||
| benabik | Ack! Changes in PAST in master! | 17:15 | |
| sorear | benabik: bind_6model & company? | 17:27 | |
| kid51 | Referring to ?: git show 5d77384daf09 | ||
|
17:28
benabik left
|
|||
| kid51 | msg pmichaud Are there any tests which ought to accompany commit 5d77384daf09? | 17:28 | |
| aloha | OK. I'll deliver the message. | ||
|
17:30
klavspr joined,
benabik joined
|
|||
| benabik | sorear, kid51: There's a set of them: f2c7baf, 197f878 and 5d77384 | 17:38 | |
|
17:38
whiteknight left
|
|||
| benabik | I don't mind it too much, just wasn't expecting it. Will put porting the changes over on top of my TODO list. | 17:38 | |
| kid51 | msg pmichaud Also, should there be tests for f2c7baf and 197f878? Pls. touch base with benabik, whose GSOC project touches this area. Thanks. | 17:42 | |
| aloha | OK. I'll deliver the message. | ||
|
17:44
klavspr left
|
|||
| dalek | rrot/leto/embed_grant: 5983b8d | dukeleto++ | t/src/extend.t: Add coverage to Parrot_eprintf |
17:48 | |
| rrot/leto/embed_grant: 9b318f4 | dukeleto++ | t/src/e (2 files): Properly add coverage to Parrot_free_cstring |
|||
|
17:48
bubaflub left
|
|||
| dalek | rrot: 43b575e | dukeleto++ | t/src/extend.t: [t] Parrot_fprintf |
17:50 | |
| rrot: 5983b8d | dukeleto++ | t/src/extend.t: Add coverage to Parrot_eprintf |
|||
| rrot: 9b318f4 | dukeleto++ | t/src/e (2 files): Properly add coverage to Parrot_free_cstring |
|||
| rrot: 5915303 | dukeleto++ | t/src/e (3 files): Merge branch 'leto/embed_grant' |
|||
|
17:57
lichtkind joined
|
|||
| lichtkind | greetinings | 17:57 | |
| dukeleto | lichtkind: howdy | 17:59 | |
| lichtkind | is the parrot logo under a free license? | ||
| i would like to include it in a article about perl | |||
| is there anyone that maybe know an answer? | 18:03 | ||
| i would like to write a mail to parrot org, but cant find an adress on the site | 18:19 | ||
| dalek | rrot/nqp_pct: 099bc50 | benabik++ | compilers/pct/src/PAST/Compiler.pm: War on Q:PIR - PAST::Compiler.call Once again, kept the PIR for the multiple returns. |
18:22 | |
| kid51 | lichtkind: See LICENSE in the Parrot distribution. | 18:42 | |
| Artistic License v2.0 | 18:43 | ||
| github.com/parrot/parrot/blob/master/LICENSE | 18:44 | ||
| lichtkind: You can post more extensive questions to parrot-dev@lists.parrot.org | 18:46 | ||
| dukeleto | lichtkind: i am pretty sure it is under a free license | 18:53 | |
| lichtkind: where will the article appear? | |||
| lichtkind | thank you thats what I need | 18:54 | |
| dukeleto | lichtkind: you can send an email to legal@parrot.org for questions, if needed | ||
| lichtkind: and cc parrot-directors@lists.parrot.org too | 18:55 | ||
| lichtkind: are you using the new parrot logo, or the older? | |||
| lichtkind | dukeleto: maybe you write these adreses also on the page | ||
| i dont know an difference | |||
| i would just grab that from parrot.org/foundation | 18:56 | ||
| dukeleto | lichtkind: sounds fine. Please send an email to parrot-dev with a link to your completed article :) What language will the article be in? | 19:01 | |
| kid51 | dukeleto: legal@ aliases to parrot-directors@, so sending a message to legal@ suffices for both (and means less work for the list moderator ;-) ) | 19:03 | |
| dukeleto | kid51: sounds good. I forgot that they were the same | 19:12 | |
|
19:40
klavs joined
19:45
klavs left
|
|||
| cotto | ~~ | 19:49 | |
| seen soh_cah_toa | 19:50 | ||
| aloha | soh_cah_toa was last seen in #parrot 16 hours 53 mins ago saying "you're nuts, man". | ||
| lichtkind | dukeleto: its in german and mostly about history community and philosophy of perl, its just a section about perl 6 where is parrot mentioned with 2,3 sentences | 19:59 | |
| dukeleto: it will be in next month issue of freiesmagazin.de | |||
| does enyone know the author of that image? | 20:01 | ||
|
20:01
klavs joined
|
|||
| lichtkind | (oft he parrot logo) | 20:01 | |
|
20:03
klavs left
|
|||
| cotto | lichtkind: good question | 20:05 | |
| lichtkind | also good answer? :) | 20:13 | |
| cotto | don't have one of those | 20:14 | |
| allison: ping | |||
|
20:42
pjcj left
20:43
kid51 left,
soh_cah_toa joined
20:44
dodathome left
|
|||
| soh_cah_toa | ~~ | 20:45 | |
| cotto: i deleted the line number code b/c line numbers were unreliable | 20:48 | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_4_0-236-g5915303 | 20:49 | |
| Ubuntu 11.04 i386 (g++ --optimize) | |||
| cotto | soh_cah_toa: ok. I think you should keep it. It's unreliable now, but you're not the only one who's annoyed by that problem. | ||
| mikehh | especially if there are macros involved | 20:50 | |
|
20:50
contingencyplan joined
|
|||
| cotto | mikehh: especially if imcc's involved | 20:51 | |
| soh_cah_toa | to be honest...with the problems i was facing, i don't see how i could ever break at line numbers | ||
| cotto | I can see why you'd think that. | 20:52 | |
| mikehh | cotto: well of course, that too, but that's not just line numbers :-} | ||
| dalek | p: c0d2879 | jonathan++ | src/NQP/SymbolTable.pm: Add extra PAST::Stmts nodes to better delimit steps, to allow better code generation. |
20:53 | |
| cotto | soh_cah_toa: I'm looking at hbdb.h atm. I think you'd get better laziness and the same amount of documentation if you put comments about enum/struct members inline instead of duplicating them before the definition. | 20:54 | |
| it'd also be more consistent with the rest of Parrot | 20:55 | ||
| I'm glad you've got them there. | |||
| soh_cah_toa | yeah, you're right | 20:56 | |
| i just have a patch i need to take care of first i promised kid51 last night | |||
| cotto | soh_cah_toa: you should delete t/hbdb/main_*c and add that to .gitignore. Those files are leftovers from t/hbdb/main.t and shouldn't be left around. | 20:57 | |
|
20:57
pjcj joined
|
|||
| soh_cah_toa | i forgot that was even there | 20:58 | |
| sure | |||
| cotto | soh_cah_toa: is the build working for you? | 20:59 | |
| soh_cah_toa | i still have that issue w/ Parrot_Interp/Parrot_PMC | 21:00 | |
| that assignment that was causing the error...i'd actually like to most it into hbdb_init() and have it take an hbdb_t argument | |||
| cotto | ok. | ||
| soh_cah_toa | but that was causing serious errors | 21:01 | |
| something about imcc. way off | |||
| but it may be b/c of the Parrot_Interp/Parrot_PMC thing again | |||
| cotto | soh_cah_toa: if you're depending on a particular PMC's header, you need to add that dependency to root.in | 21:02 | |
| soh_cah_toa | a pmc's header? | 21:03 | |
| cotto | include/pmc/pmc_foo.h | 21:04 | |
| soh_cah_toa | oh, header file. yeah ok | ||
|
21:07
ambs left
|
|||
| dalek | p: c7bf530 | jonathan++ | src/HLL/SerializationContextBuilder.pm: Detect whether we're in pre-compilation or run-right-away mode and only code-gen the things we need. Quite a notable speedup for NQP tests; can always put it back if we need to debug it, but problems with this have been pretty rare. |
21:09 | |
| cotto | soh_cah_toa: a missing semicolon on src/hbdb.c +288 is breaking the build atm | 21:10 | |
| with that it completes | |||
| soh_cah_toa | really? let me look | ||
|
21:11
fperrad left
|
|||
| soh_cah_toa | cotto: something's wrong. line 288 is just a while statement | 21:12 | |
| cotto | soh_cah_toa: those need to end in semicolons too. | 21:13 | |
| soh_cah_toa | ah, damn. i always forget that w/ do-while's | 21:14 | |
|
21:41
PurityControl joined
|
|||
| dalek | rrot: c4fc9f8 | soh_cah_toa++ | / (4 files): Fix for compiler warning that parrot_pmc_new_from_type() did not have a prototype |
21:41 | |
| rrot/soh-cah-toa/hbdb: db323dd | soh_cah_toa++ | src/hbdb.c: Added a missing semicolon that was breaking the build |
21:43 | ||
|
21:46
Patterner left,
PurityControl is now known as Patterner
|
|||
| soh_cah_toa | msg kid51 i took care of that compiler warning about parrot_pmc_new_from_type(). see commit c4fc9f8 | 21:48 | |
| aloha | OK. I'll deliver the message. | ||
|
21:57
PacoLinux left
22:11
kid51 joined
22:22
whiteknight joined
|
|||
| nopaste | "kid51" at 192.168.1.3 pasted "We're down to 8 warnings during gcc build" (8 lines) at nopaste.snit.ch/51545 | 22:23 | |
| soh_cah_toa | great | ||
| some of those seem like an easy fix too | 22:24 | ||
| lichtkind | cotto: allright so I write a mail | 22:28 | |
| dalek | TT #1979 closed by jkeenan++: Configure.pl --without-extra-nci-thunks fails tests. | 22:29 | |
| TT #1979: trac.parrot.org/parrot/ticket/1979 | |||
| TT #2116 closed by jkeenan++: t/library/nciutils.t fails on a plain parrot | |||
| TT #2116: trac.parrot.org/parrot/ticket/2116 | |||
| TT #2118 closed by jkeenan++: t/src/checkdepend.t fails when extra nci tthunks are disabled | |||
| TT #2118: trac.parrot.org/parrot/ticket/2118 | |||
| cotto | lichtkind: ok. I suspect that it's allison but I don't know for sure. | ||
| lichtkind: why do you ask? | |||
| lichtkind | because the editor says we need author and license to publish | 22:30 | |
| cotto | ah | ||
| benabik | If it's in parrot.git, isn't it owned by PaFo? | 22:42 | |
| lichtkind | benabik: therotically yes :) | 22:44 | |
| whiteknight | if it's in parrot.git, PaFo has certain rights to the content | 22:53 | |
| but PaFo doesn't "own". PaFo isn't the author | 22:54 | ||
| PaFo has the right to use, to distribute, to sublicense, and a few other rights for the content. It's all in the CLA | |||
| ligne | kid51> i think the warning about undefined data_cursor is because it's getting post-incremented twice in a single logical line. | 22:56 | |
| whiteknight | oh, I thought I pushed my fix for that | 23:07 | |
| I guess not | |||
| all that code probably needs to just be deleted at this point, I can't make it work | 23:08 | ||
| dalek | rrot: 338f2a8 | jkeenan++ | src/platform/generic/file.c: Name of file in POD NAME section was incorrect; fixed. |
23:10 | |
| benabik | whiteknight: Your work on pbc_merge? | ||
| lichtkind | good night | 23:39 | |
|
23:41
contingencyplan left
|
|||