|
Parrot 3.2.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Parrot is accepted for GSoC 2011! Student application deadline is Apr 8 Set by moderator on 27 March 2011. |
|||
|
00:01
bbatha_ left
00:02
bbatha joined
|
|||
| soh_cah_toa | i got a question about gsoc: how many hours a week should be spent dedicated to the project? the reason i ask is b/c i just got an offer for a paid intership at a previous employer and need to figure out if i can juggle both | 00:04 | |
| i figured that gsoc was a 40 hr/week project. is that about right? | 00:06 | ||
| bubaflub | soh_cah_toa: both previous GSoC's i've done either concurent with work or school, though i don't recommend it | ||
| tcurtis | That reminds me. Piece of advice for anyone applying to GSoC: when planning your schedule, don't forget that there are weekends. | 00:07 | |
| bubaflub | soh_cah_toa: according to the GSoC page it should be a full time job | ||
| soh_cah_toa: it's up to how much of a life do you want to have? and how fast can you do this stuff? | |||
| tcurtis | And that you will probably want to spend at least some of those weekends relaxing from the stresses of GSoC. | ||
| soh_cah_toa | hmmm...yeah that's the thing. this is my first gsoc and i really want to make it work | ||
| dalek | rrot/whiteknight/imcc_compreg_pmc: 3e3a89c | petdance++ | src/io/api.c: removed unused var |
00:08 | |
| rrot/whiteknight/imcc_compreg_pmc: 8345f96 | petdance++ | / (2 files): arg_sig and return_sig are both actually ARGOUT, not ARGMOD |
|||
| soh_cah_toa | i decided not to take any summer classes to i could dedicate as much time as necessary but now i have to consider this. ugh... | ||
| bubaflub | soh_cah_toa: my second GSoC i did not finish what i proposed but i still "passed" | 00:09 | |
| soh_cah_toa: sometimes the monster is bigger than you think | |||
| soh_cah_toa | yeah, i know. that's why i think it might be best to just focus on gsoc. it's very important to me. i've been waiting a year for this | 00:10 | |
| bubaflub | soh_cah_toa: just curious, what's the internship? | ||
| soh_cah_toa: also, most employers will understand working for Google > working for ____ | |||
| soh_cah_toa: and it looks great on a resume | 00:11 | ||
| soh_cah_toa | i don't even know. when i worked there i was a technician working on digital signage equipment. i assume that's what they want | ||
| but i did tell them last time they contacted me that i'm a computer science major and they do have an engineering dept. but i don't want to get my hopes up | |||
| bubaflub | soh_cah_toa: i'd say if you have to do only one, then do the GSoC - it's what you're more excited about | 00:12 | |
| soh_cah_toa: and it seems if they are contacting you they need you | |||
| soh_cah_toa: and will be around for a while | |||
| just my half pence | |||
| soh_cah_toa | that's true | ||
| plus you guys would be much more fun to work w/ :) | 00:13 | ||
| bubaflub | aw shucks. i've enjoyed GSoC, and if you aren't crunched on money, i'd say try it | 00:14 | |
| GSoC (and the code being public) does a lot to show a potential employer that you don't suck | |||
| soh_cah_toa | it's not even the money. it's the experience i want the most. my parents help out w/ school so i'm that poor | 00:15 | |
| bubaflub | soh_cah_toa: i meant if you can afford to not take the internship i'd recommend you skip it | ||
| soh_cah_toa | well, that is the case and you seem to be thinking the same thing i'm thinking | 00:16 | |
| i'd be so disappointed if i didn't finished my gsoc goals b/c of work | 00:17 | ||
| bubaflub | yes, like i said there is still redemption if you don't finish (i.e. continue working on it) but it'd be best to have it all wrapped up on time | 00:18 | |
| soh_cah_toa | of course. plus i definitely plan to stick around afterwards to maintain it among other parrot stuff | ||
| bubaflub | that's how i got started. i did my first GSoC on Perl and dukeleto introduced me to parrot | ||
| soh_cah_toa | neat | 00:19 | |
| how many gsoc's have you done? | |||
| bubaflub | 2, aiming for my 3rd | 00:20 | |
| first one was with Perl, wrote Math::Primality | |||
| second one was trying to port Parrot to RTEMS, a real-time embedded linux-esque OS | |||
| soh_cah_toa | oh, second one sounds pretty kick ass | 00:21 | |
| whiteknight | soh_cah_toa: when I was a GSoC student, I was working at a beer store part-time | ||
| it's not impossible to do, but it's a big project, and if you don't want to devote lots of time to it, you aren't having enough fun | 00:22 | ||
| soh_cah_toa | yeah, i'm so excited | ||
| i think it's cool that other people will get to use my code besides just me | 00:23 | ||
| tcurtis | Having other people actually use your code to try to do actual work is an awesome feeling. | 00:26 | |
| tcurtis discovered this last summer. | |||
| moritz++ | |||
| bubaflub | soh_cah_toa: i got an email about Math::Primality - some guy wanted me to clarify some of the docs and implement new stuff | ||
| soh_cah_toa: i was blown away. somebody uses this stuff? | |||
| soh_cah_toa | oh man, that's awesome! | ||
| that's the beauty of open source | |||
| bubaflub | soh_cah_toa: yep. i got started doing some of that when somebody had a blog post about helping out with CGI.pm | 00:27 | |
| soh_cah_toa: i submitted a couple patches via github and it was pretty cool | 00:28 | ||
| soh_cah_toa | that's cool. i have a book on that module "CGI Programming with Perl" | ||
| bubaflub | soh_cah_toa: yeah, it's pretty old but still used heavily. part of the core, too | 00:29 | |
| davidfetter | CGI.pm was fun | ||
| soh_cah_toa | davidfetter: you worked on it too? | 00:30 | |
| davidfetter | no. used it a lot, back in the day | ||
| petdance | whiteknight: I don't see any new warnings in here. | ||
| davidfetter | i think i may have found a bug or two, but don't recall reporting them. didn't quite understand how important that was at the time :P | ||
| whiteknight | petdance: that's...surprising. I wrote a lot of code, and I'm not so good as to avoid generating new warnings | 00:31 | |
| I can barely avoid debilitating errors | |||
| petdance | oh, wiat, here's one | ||
| src/extend.c:251:12: Null storage returned as non-null: ((PMC *)NUL | |||
| whiteknight | see? that's more my speed | 00:32 | |
| petdance | ok, there are a few | ||
| BUT | |||
| we're pretty crappy at defining what can be NULL and what can't | |||
| whiteknight | let me look at extend.c | ||
| petdance | I think we do checks for NULL pointers when we shouldn't, just out of laziness | ||
|
00:33
benabik joined
|
|||
| whiteknight | src/extend.c:251 is ot code I've touched, and doesn't look like it is returning null, or that it shouldn't be | 00:33 | |
| petdance | see, some could be stuff that I've fixed on origin/master since you branched | 00:34 | |
| when do you see merging back? | |||
| whiteknight | soon. I can update branch from master tonight maybe | ||
| dalek | rrot/whiteknight/imcc_compreg_pmc: 33cc337 | petdance++ | src/spf_render.c: Removed unused var. Consted a local var. |
00:35 | |
| whiteknight | blah. merge conflicts | 00:36 | |
| I'll update from master tomorrow | |||
|
00:37
kid51_at_dinner is now known as kid51
|
|||
| bubaflub | whiteknight: can you do rebase to avoid em? | 00:39 | |
| (merge conflicts, that is) | |||
|
00:39
davidfetter left
|
|||
| whiteknight | bubaflub: I can try. This branch is pretty big and convoluted. The last few times I've rebased things have gone very very badly | 00:40 | |
| petdance | I'm going to merge up some of my individual commits | 00:41 | |
| see how things go with splint warnigns | 00:42 | ||
| bubaflub | whiteknight: same... i rebased something pretty poorly at work and got a talking-to | ||
| petdance | OK, how do merge just one commit? | 00:43 | |
| benabik | whiteknight: What is the imcc_compreg_pmc branch? It sounds like turning IMCC into a HLL that can be called by anyone... And that would be awesome for my GSoC proposal. | ||
| cotto | ~~~~~ | 00:44 | |
| whiteknight | benabik: the branch does a lot of cleanups inside IMCC, improves encapsulation between libparrot and IMCC, and starts preparations for breaking IMCC out of libparrot entirely | ||
| benabik | whiteknight: Ah. Merging that sounds both awesome and painful. | 00:45 | |
| whiteknight | benabik: maybe. I've been keeping the branch up to date with master | 00:46 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#13871) fulltest) at 3_2_0-132-gf64d532 - Ubuntu 11.04 beta i386 (gcc --optimize --gc-gms) | 00:53 | |
| dalek | rrot/whiteknight/imcc_compreg_pmc: 3523252 | petdance++ | src/spf_render.c: Cleaned up canonicalize_exponent: * consted SpfInfo pointer arg * Reformatted POD docs * Normalized variable declarations. |
00:55 | |
| kid51 | whiteknight: Is there any reason to think one would get different testing results from imcc_compreg_pmc branch when using g++ versus gcc? | 00:56 | |
| whiteknight | kid51: I don't know. I would hope not | 00:57 | |
| I don't know if I've tested it with g++ in a while | |||
| dalek | rrot/whiteknight/imcc_compreg_pmc: 309e663 | petdance++ | src/hash.c: consted a pointer |
01:00 | |
| rrot/whiteknight/imcc_compreg_pmc: 12ec8e5 | petdance++ | / (2 files): flagging args as not nullable |
|||
| rrot/whiteknight/imcc_compreg_pmc: ab32727 | petdance++ | src/debug.c: Properly added headerizer annotations. Consted some vars. |
|||
| petdance | whiteknight: I ONLY build with g++ | ||
| I mean, I onnly do g++, not gcc | 01:03 | ||
| I do other compilers, too | |||
| whiteknight | my default compiler is clang. I do tests with other compilers, but maybe not as often as I should | 01:04 | |
| petdance | How do you install clang? | ||
| That's "how do you", not "how does one" | |||
| whiteknight | I just do the lazy way. apt-get install clang | 01:06 | |
| I don't have the patience to build my compilers from source. | |||
| petdance | yum doesnt' have one | ||
| whiteknight | you on redhat? | 01:07 | |
| petdance | centos, yes | ||
| whiteknight | oh, okay. Why centos, if you don't mind me asking? | 01:08 | |
| petdance | It's what we have at work. | ||
| whiteknight | okay | ||
| petdance | and I like to minmize cognitive dissonance. :-) | ||
| whiteknight | that's the reason I use win7 sometimes :) | ||
| petdance: I really appreciate you taking time to look at this branch | 01:11 | ||
| petdance++ | |||
| petdance | You're welcome. I'm sort of at a stopping point on master anyway | ||
| whiteknight | I shudder to think where we would be without your efforts | 01:14 | |
| petdance | oh my, i hadn't seen clang-analyzer.llvm.org/ | 01:15 | |
| whiteknight: I don't know that my work has found much. | |||
| whiteknight | not finding problems is a valuable result in itself. It's good for us to stay honest | 01:18 | |
| petdance | heh | 01:20 | |
| Tene | fwiw, fedora has clang packages. | 01:21 | |
| I expect if you wanted to obtain it, you could figure it out on your own, though. :) | |||
| petdance | I saw RHEL package, but it's for CentOS 6, and I'm on 5 | ||
| and i'm gonna build from source anyway | |||
| plus I want that clang-analyzer | |||
|
01:22
plobsing joined
01:23
contingencyplan joined
01:32
hercynium joined
01:35
spinclad joined
01:43
bubaflub left
|
|||
| petdance | aw shoot, I screwed up my splint history. :-( | 01:44 | |
| dalek | sella: bae72a8 | Whiteknight++ | t/event/Event (2 files): add in some stub tests for Event and EventManager |
01:58 | |
| sella: 6e300fe | Whiteknight++ | / (5 files): Refactor indirect method call logic to an invoke_method. Use this in Event to handle the case of String as method. Add tests for EventManager |
|||
| sella: 97d18fe | Whiteknight++ | t/core/Rosella.t: Add in a new stub test method for invoke_method. Also, add some not-implemented notices to empty test methods |
01:59 | ||
|
01:59
whiteknight left
|
|||
| dalek | rrot/whiteknight/imcc_compreg_pmc: 56ed7c5 | jkeenan++ | docs/ (4 files): [codingstd] Correct POD syntax errors. Example: '=begin PIR_INVALID' must be matched by '-end PIR_INVALID'. |
02:02 | |
|
02:16
hercynium left
02:24
bacek left
02:30
bbatha left
|
|||
| kid51 | msg whiteknight re whiteknight/imcc_compreg_pmc branch: 2 codingstd files still have fails (c_arg_assert & c_function_docs); otherwise make fulltest good on linux/i386; on Darwin/PPC: only fail is in t/perl/Parrot_Test.t as previously discussed | 02:31 | |
| aloha | OK. I'll deliver the message. | ||
| dalek | rrot/whiteknight/imcc_compreg_pmc: 38e5177 | petdance++ | src/embed/api.c: Use STREQ() for string comparisons, instead of incorrectly using strcmp as a boolean |
02:33 | |
| rrot/whiteknight/imcc_compreg_pmc: 8e097e4 | petdance++ | config/gen/makefiles/root.in: Don't use curly brackets |
|||
| rrot/whiteknight/imcc_compreg_pmc: 1acf5be | petdance++ | src/gc/gc_gms.c: Fixed PARROT_CAN_RETURN_NULL annotations |
02:34 | ||
|
02:39
kid51 left
02:56
simcop2387_ joined
02:57
soh_cah_toa left
02:58
simcop2387 left,
simcop2387_ is now known as simcop2387
|
|||
| dalek | rrot/whiteknight/imcc_compreg_pmc: c3686b8 | petdance++ | src/dynext.c: allow some STRING * to be NULLOK |
03:06 | |
| rrot/whiteknight/imcc_compreg_pmc: 0c08c8a | petdance++ | / (2 files): Fixing splint flags re: nulls |
|||
| rrot/whiteknight/imcc_compreg_pmc: 4cd9ae7 | petdance++ | / (8 files): added splint annotations and re-headerized |
|||
| rrot/whiteknight/imcc_compreg_pmc: 54cb25e | petdance++ | compilers/imcc/cfg. (2 files): Made blocks_are_connected be static, and localized a variable |
03:19 | ||
|
03:20
particle left
04:04
treed joined
04:05
treed left
|
|||
| dalek | rrot/whiteknight/imcc_compreg_pmc: 4146678 | util++ | MANIFEST.generated: Re-sort and add files to MANIFEST.generated |
04:36 | |
| rrot: d5248c2 | petdance++ | src/exceptions.c: note an unignorable result |
04:48 | ||
| rrot: fa331ee | petdance++ | frontend/parrot/main.c: removed unnecessary scope |
|||
|
04:51
treed joined,
treed left
05:08
particle joined
05:23
bacek joined
|
|||
| bacek_at_work | hmm... | 05:31 | |
| dalek | rrot/m0-spec: 87e98b7 | cotto++ | docs/pdds/draft/pdd32_m0.pod: change get_var to load_var |
05:41 | |
|
05:44
petdance left
06:09
theory left
|
|||
| dalek | rrot/lorito: b364ee2 | cotto++ | runtime/parrot/include/m0proto_names.pir: better macro name |
06:21 | |
| rrot/lorito: 85d4ed0 | cotto++ | / (2 files): switch to m0ctx, push ugliness there |
|||
| rrot/lorito: de2304e | cotto++ | / (4 files): use m0ctx's variables table for variables |
|||
| rrot/lorito: 146d730 | cotto++ | / (2 files): rename get_var to load_var |
|||
| rrot/lorito: 64379ad | cotto++ | / (3 files): add m0_alloc and m0_free, plus minimal test |
|||
|
06:29
Eduardow left
06:39
Eduardow joined
|
|||
| dalek | rrot/m0-spec: 753ee2f | cotto++ | docs/pdds/draft/pdd32_m0.pod: use $1-$3 instead of $0-$2 to be consistent with .ops files |
06:41 | |
|
06:42
NotFound left
06:46
UltraDM joined
|
|||
| dukeleto | ~~ | 06:48 | |
| dalek | spers: 54c019c | dukeleto++ | README.md: Add a link to Sputnik in the README |
06:52 | |
|
06:55
UltraDM left,
UltraDM joined
|
|||
| dukeleto | UltraDM: welcome to our corner of the interwebs | 06:56 | |
| UltraDM | :) | 06:57 | |
| dukeleto | UltraDM: are you interesting in GSoC? What brings you to these parts? | 06:59 | |
| dalek | rrot/lorito: 818c7ee | cotto++ | src/dynoplibs/m0proto.ops: add some ops whic may or may not prove useful for memory manipulation |
||
| cotto | dukeleto, feel free to poke around there and add to or comment on what's there in your cft. | 07:00 | |
| cotto sleeps | |||
| UltraDM | dukeleto, nope, just lurking, I'm watching parrot for quite some years | ||
| not doing anything active | |||
| cotto | UltraDM, it's seldom a bad time to start as far as we're concerned. | 07:01 | |
| cotto really sleeps | |||
| dukeleto | UltraDM: ok. I am the "community manager", so if you want guidance on how to get involved or anything like that, let me know | 07:02 | |
| UltraDM: what makes Parrot interesting to you? | 07:03 | ||
| UltraDM | cotto, true | ||
| dukeleto, thanks for the info | |||
| perl6 makes it interesting to me | |||
| I'm more into perl, less interested in C/C++, so I cannot code anything useful for parrot | 07:04 | ||
| dukeleto | UltraDM: yep, that is how I found Parrot too. I found bugs in the Perl 6 test suite that ended up being parrot bugs, and I have been here ever since :) | ||
| UltraDM | :) | ||
| dukeleto | UltraDM: a lot of parrot tasks can be written in higher level languages, such as NQP or Winxed, etc... | ||
| UltraDM | I've tried twice to do something in the past years, but always got borred in the maze of urls and links | 07:05 | |
| dukeleto | UltraDM: nqp is quite similar to Perl 6, without the really tasty syntax sugar | ||
| UltraDM: well, if you have a specific problem or question, definitely let me know | |||
| UltraDM | so, I only need a couple of free days and enough patience to follow all links and see if there's something I could really do | ||
| dukeleto | UltraDM: our docs are always straining to keep up with us :) | 07:06 | |
| UltraDM | I know, it's not easy | ||
| dukeleto | UltraDM: a good start is running our test suite on your machine to see if it passes | ||
| UltraDM: that is how I got involved. I started making things in "make fulltest" pass | |||
| UltraDM | :) last time I checked all tests passed on my machines - nothing fancy, opensuse | 07:07 | |
| dukeleto | UltraDM: "make test" should pass for you, and if it doesn't, that is a bug. "make fulltest" runs a lot more tests that sometimes fail because that test target takes a lot longer and people don't run it as often | ||
| UltraDM | mkay :) | 07:08 | |
| dukeleto | UltraDM: what kind of perl stuff do you usually hack on? | ||
| UltraDM: perhaps I can recommend something that you would like hacking on | |||
| UltraDM | catalyst/dbix::class and poe | ||
| dukeleto | UltraDM: i will keep a look out for things that would interest you | 07:09 | |
| UltraDM | dukeleto, thanks | 07:10 | |
| if there is a pointer on how to run perl5 code using parrot, I'd be happy to do that | |||
| I know that perl6 is the future, but p5 is what I'm doing right now | |||
| so, if it's possible to run p5 code with parrot, I could run my test/research code on it to see where it explodes and fill a bug/test case | 07:11 | ||
| dukeleto | UltraDM: there is something called blizkost | 07:16 | |
| UltraDM: which embeds both a perl 5 and rakudo perl 6 interpreter, and lets you talk between them | 07:17 | ||
| UltraDM: github.com/jnthn/blizkost | |||
| UltraDM: also, there is a Parrot::Embed CPAN module | |||
| UltraDM: which lets you embed Parrot in Perl 5 | |||
| UltraDM: it comes with the parrot source code | |||
| UltraDM: we need help updating Parrot::Embed and releasing it to CPAN as it's own module | 07:18 | ||
| UltraDM: also, you can always look at the tickets on trac.parrot.org for ideas of what to work on | |||
| UltraDM: trac.parrot.org/parrot/query?status...changetime | 07:19 | ||
| UltraDM: those are the most recently changed tickets | |||
| UltraDM: this is a recent Parrot::Embed ticket: trac.parrot.org/parrot/ticket/1869 | |||
| UltraDM: if you need wiki access, just ask. we had to disable editing by default because of dumb spammers | 07:20 | ||
| marc unidles | 07:27 | ||
| hi guys | |||
| dukeleto: interesting stuff (sorry, i've been lurking) | |||
| UltraDM | thanks dukeleto, as soon as I find a free time slot I'll have a look | 07:36 | |
|
07:53
jrtayloriv joined
08:12
contingencyplan left
08:30
alin joined
08:43
mikehh left,
dod joined
|
|||
| moritz | fwiw, make fulltest has a failure here | 09:35 | |
| $ t/src/extend_vtable.t (Wstat: 256 Tests: 89 Failed: 1) Failed test: 3 Non-zero exit status: 1 | 09:36 | ||
| nopaste | "moritz" at 192.168.1.3 pasted "test failure" (10 lines) at nopaste.snit.ch/39482 | 09:37 | |
| moritz | rakudo on newest parrot spectests cleanly | 10:06 | |
| (smolder #13907) | |||
|
10:36
jrtayloriv left
10:42
mtk left
10:43
alin left
11:41
lucian joined
11:55
Patterner left,
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
| lucian | good day | 12:04 | |
| if anyone's away, has anyone though of something like Managed C++ for parrot? | 12:25 | ||
| s/away/not away/ | |||
| cython takes a vaguely similar approach, and it works great | 12:28 | ||
|
12:38
whiteknight joined,
ambs joined
|
|||
| whiteknight | good morning, #parrot | 12:39 | |
| msg kid51 thanks for the report. I'll work on the codestd failures today | 12:45 | ||
| aloha | OK. I'll deliver the message. | ||
| lucian | whiteknight: hey, what's up? | 12:46 | |
| whiteknight | good morning lucian | 12:47 | |
|
12:48
bubaflub joined
|
|||
| lucian | whiteknight: i was thinking about C lib wrappers last night | 12:52 | |
| i was wondering if after M1 the system language starts getting designed, whether it might make sense to have something like Managed C++ or cython | 12:53 | ||
|
12:59
darbelo joined
|
|||
| atrodo | lucian> I'd like to see static languages be able to target parrot | 13:01 | |
| lucian | atrodo: they should be. there was this sparse backend to lua, jvm, etc | ||
| atrodo: cluecc.sourceforge.net/ | 13:02 | ||
| atrodo | lucian> It might be early, but I don't grok | ||
| oh, well that sounds cool | |||
| lucian | waiting is, for grokking in fullness | ||
| whiteknight | what really is the difference between a static language VM and a dynamic language VM? | 13:03 | |
| lucian | whiteknight: the static one is a subset of the dynamic one | ||
| whiteknight | built-in dynamic invoke, a dynamic object model, and a dynamic runtime | ||
| lucian | that's quite a few requirements | 13:04 | |
| especially the last two | |||
| whiteknight | well, parrot does have them. Even if they aren't great currently | ||
| lucian | atrodo: anyway, clue emulates a lot of C features, so it's slow | ||
| whiteknight: sure. jvm doesn't though | |||
| atrodo: i was thinking of something that isn't quite C/C++, but is close enough to share data structures and calling semantics | 13:05 | ||
| atrodo: and also has access to parrot | |||
| comfortable access | |||
| atrodo | whiteknight> Right, but there are no static languages (or compilers) targeting parrot | ||
| lucian> Yep, that's what I'd like to see too | |||
| lucian | atrodo: managed C++ is quite good in some ways, it's just that their implementation sucked | 13:06 | |
| cython is even closer | |||
| whiteknight | atrodo: a big part of that is because Parrot's object model and default runtime are dynamic. The implementation effort for a "good" static language is therefore significantly higher | 13:07 | |
| lucian | atrodo: in fact, even a clue parrot backend might be nice for a start | ||
| whiteknight: i don't see that | 13:08 | ||
| whiteknight: statically typed languages get static checks at compilation | |||
| atrodo | whiteknight> Right. That's the path I started but somehow got sidetracked | ||
| whiteknight> Although, with your new embed API, that should help my job since that was my biggest pain point | |||
| whiteknight | atrodo: I aim to please | 13:09 | |
|
13:11
rohit_nsit08 joined
|
|||
| rohit_nsit08 | hello #parrot ! | 13:12 | |
| Coke | good *. | 13:14 | |
| atrodo | whiteknight> It looked good when I skimmed over it. My current plan for draak when I get back to it is to switch to using your new API and winxed | 13:15 | |
|
13:15
JimmyZ joined
13:19
mtk joined
|
|||
| whiteknight | atrodo: I like that plan :) | 13:22 | |
| good morning rohit_nsit08 | |||
| rohit_nsit08 | whiteknight: good morning! . I saw winxed's emit functions today, helped me to think more about how i have to go for that in javascript. I had one doubt what are the predef_ functions there? | 13:25 | |
| whiteknight | rohit_nsit08: those are the built-in functions for Winxed. things like string() or typeof() | 13:26 | |
| lucian | rohit_nsit08: i can't remember if you did, have you looked at narcissus? | 13:27 | |
| rohit_nsit08 | lucian: no what is narcissus? | 13:28 | |
| lucian: looking at it | 13:29 | ||
| lucian | rohit_nsit08: mxr.mozilla.org/mozilla/source/js/narcissus/ | 13:30 | |
| rohit_nsit08: it's a js interpreter written in js | |||
| but it cheats, it uses native js objects directly | |||
| may be useful knowledge, though | 13:31 | ||
| rohit_nsit08 | lucian: hmm.. seems a good thing | 13:32 | |
|
13:41
mtk left
13:45
mtk joined
|
|||
| rohit_nsit08 | lucian: narcissus is using spidermonkey as its host environment and as u said using native js objects directly and leaves the actual work for the spidermonkey. Is there any advantage of using narcissus? | 13:47 | |
| besides it is written in js, which is cool :-) | |||
| lucian | rohit_nsit08: no, just educational | ||
| rohit_nsit08 | hmm.. nice implementation. | 13:48 | |
|
13:54
lucian_ joined,
lucian left
13:56
PacoLinux joined
|
|||
| dalek | rrot/whiteknight/imcc_compreg_pmc: d5248c2 | petdance++ | src/exceptions.c: note an unignorable result |
13:57 | |
| rrot/whiteknight/imcc_compreg_pmc: fa331ee | petdance++ | frontend/parrot/main.c: removed unnecessary scope |
|||
| rrot/whiteknight/imcc_compreg_pmc: dc1985e | Whiteknight++ | / (63 files): merge and fix conflicts |
|||
| rrot/whiteknight/imcc_compreg_pmc: 2a6b662 | Whiteknight++ | frontend/parrot/main.c: Changes to the frontend in master cause GC weirdness in this branch. I'm reverting those changes and will look through them in more detail |
|||
| whiteknight | msg NotFound are you planning any kind of release for Winxed following 3.3? | ||
| aloha | OK. I'll deliver the message. | ||
| ttbot | Parrot dc1985e5 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/63826 | 14:02 | |
| Parrot dc1985e5 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/63807 | |||
|
14:18
NotFound joined
|
|||
| NotFound | Hi | 14:20 | |
| whiteknight: pong | |||
| whiteknight | ping | ||
| NotFound | whiteknight: Winxed release? You mean a release number and a package? | 14:21 | |
| whiteknight | NotFound: something like that. I'm planning a stable Rosella release around that time, and wanted to know what version of winxed I should target | ||
| If you're doing something special, I'll coordinate. Otherwise it's no big deal | |||
| NotFound | I think I'm going to do a migration to github, and then use git tags. | 14:22 | |
| whiteknight | oh, okay. Is that going to happen around the 3.3 release? | ||
| NotFound | I don't do plans. When I do, I always break them ;) | 14:23 | |
| Probably yes, but don't take it for sure. | 14:24 | ||
| A doubt... There will be some way to target releases in plumage? | 14:25 | ||
| whiteknight | I don't know. Maybe not | 14:26 | |
| dalek | sella: d558437 | Whiteknight++ | / (2 files): Add several tests for Event |
||
| tadzik | Event, as in Event-driven programming? | 14:29 | |
| whiteknight | sort of | ||
| it's not a low-level event handling system like you would have in a GUI toolkit | |||
| it's a system for decoupling. Objects can anonymously subscribe to events, and other objects can anonymously publish to them | 14:30 | ||
| atrodo | whiteknight> Is it closer to something like POE? | ||
| tadzik | hmm, I think I alredy asked about that: does Select PMC gives us a bit of async IO? | ||
| whiteknight | no. The Event library doesn't have a runloop or anything like that | ||
| tadzik: yes, Select PMC is sort of async | 14:31 | ||
| atrodo: it's more like an implementation of the Observer pattern | |||
| tadzik | so one could implement async IO in Rakudo given Select PMC? | ||
| atrodo | okay, that makes sense | ||
| whiteknight | en.wikipedia.org/wiki/Publish/subscribe | ||
| PerlJam | tadzik: Are you formulating a gsoc project based on that? :-) | 14:32 | |
| tadzik | PerlJam: somewhere, at the back of my mind | ||
| . o O ( Port AnyEvent to Rakudo Perl 6 ) | |||
| whiteknight | tadzik: do tell! | ||
| PerlJam | tadzik: careful you don't overload yourself. | ||
| tadzik | well, when I finish my Physics, Signal Theory and MIPS assembly I may be able to code something out :) | ||
| whiteknight | Signal Theory was one of my favorite subjects | 14:33 | |
| tadzik | PerlJam: no, I'm not going to take two projects on GSoC | ||
| I wish I could afford having fun with that. So far I'm stuck with physics, since the last semester actually. But *. | 14:34 | ||
| I wish one day I'll remember my studies as "I had a few interesting subjects" rather than "I was stuck with some ridicolous &*!$% and didn't have time neither to appreciate the good things, nor to do all my plans after classes" | 14:36 | ||
| oh, don't listen, I'm just tired of this | 14:37 | ||
| moritz | tadzik: I can tell from experience that even without classes you don't hav enough time for all pet projects :-) | ||
| PerlJam | you *never* have enough time. | 14:38 | |
| atrodo | moritz> I can speak from experience that you never have time for pet projects | ||
| Yes, what PerlJam said | |||
| tadzik | moritz: well, that's correct :) | ||
| bubaflub | my mental demand always outpaces supply | ||
| moritz | sometimes you just have to *take* time to do things | ||
| PerlJam | get comfortable with not having enough time, never knowing enough and always being in a state of confusion and you're well on your way to enlightenment ;-) | 14:39 | |
| tadzik | I should look into some zen stuff as soon as I get enough ti... shit | ||
| moritz | :-) | 14:40 | |
| atrodo | tadzik> I multitask my zen time. It's usually done while i'm asleep | ||
| tadzik | sleep, that's the enlightenment I could practice every day | 14:41 | |
| atrodo | tadzik> Unfortunately I've reduced my zen time because of all the pet projects I work on at night | 14:45 | |
| tadzik | atrodo: fear not, for that's thy enlightenment | 14:48 | |
| atrodo | tadzik> You are wise beyond your years | ||
| tadzik | atrodo: and you're wise between your ears | 14:49 | |
| atrodo | tadzik++ | ||
| tadzik | (heh. That didn't sound very zen, but I couldn't resist from the moment I thought about this) | ||
| atrodo | I thought it was very zen | ||
| tadzik | it may be. Maybe that's unreachable for my wisdom | 14:51 | |
| dalek | nxed: r931 | NotFound++ | trunk/winxedst (2 files): improve constructor argument lists, allowing null in all stages and modifiers in |
15:02 | |
| tadzik | how come winxed code generator is so good and pct is not so awesome? | 15:03 | |
| is anyone working on that, or that's rather low-priority? | |||
| NotFound | Because Winxed needs to do it, in order to attract some users ;) | 15:05 | |
| moritz | tadzik: the PCT developers are hacking on nqp or rakudo :-) | 15:06 | |
| NotFound | I hate to say it, but that's a lame excuse for team being beaten by one developer }:) | 15:11 | |
| moritz | NotFound: depending on the team size (which is currently ~1) | 15:12 | |
| cotto_work | ~~ | ||
| NotFound | I think the number intersted in having nqp and rakudo get faster is high thatn that. | 15:13 | |
| whiteknight | PCT uses Perl6 semantics, which call for semantics like autovivification, etc | ||
| Winxed has no such semantics, so a large amount of autovivifying code can disappear | |||
| moritz | NotFound: the number of active developers these days that are interested in rakudo, and know PCT enough to hack it, is pretty much 1. | ||
| NotFound: if you know somebody apart from jnthn_, I'm very happy to hear about them | |||
| whiteknight | likewise, NQP follows Perl6 semantics to use exceptions for various bits of control flow. Winxed doesn't | ||
| PerlJam | moritz: who is the 1? :) | 15:14 | |
|
15:14
Eduardow left
|
|||
| moritz | PerlJam: jnthn_ | 15:14 | |
| NotFound | moritz: touchƩ | ||
| whiteknight | Winxed makes the tradeoff to have less high-level semantics in exchange for code that is closer to the VM | 15:15 | |
| it's hard to compare the two languages when they have such different goals | |||
| NotFound | The problem is that that situation gives me even less interest in trying to convert Winxed code generation from pir to past/post whatever. | 15:19 | |
| PerlJam | Rustle up a GSOC student to do it for you! :) | 15:22 | |
| whiteknight | NotFound: that's fine too. The only reason I like PAST/POST is because we're going to be getting PBC generation from POST eventually | 15:23 | |
| NotFound: What we want the most is to kill PIR. Kill it dead | |||
| kill it with a stick and fire | |||
| rohit_nsit08 | I think i just read "kill PIR" . | 15:24 | |
| whiteknight | rohit_nsit08: not today. | ||
| atrodo | whiteknight> I hope we have the ability to generate PBC from an API, and not just from POST | ||
| rohit_nsit08 | who is taking the place than? | ||
| NotFound | whiteknight: I'd like to be able to kill it, but having a good replacement before. | ||
| JimmyZ | and NQP abuses find_lex too much. | ||
| whiteknight | NotFound: right, we're working on the replacements | ||
| PerlJam | JimmyZ: I don't think that's a fair assessment. | 15:25 | |
| NotFound | whiteknight: just one person knowledgeable with PCT doen't look like too much working. | ||
| atrodo | "Coming soon to a theater near you, the whiteknight production of 'Kill PIR'. They thought it was dead, but they were wrong" | ||
| whiteknight | atrodo: :) | ||
| moritz | NQP/PCT doesn't inline any nested blocks | ||
| PerlJam | atrodo: as long as we don't have "Kill PIR vol. 2" | ||
| whiteknight | NotFound: other people are knowledgable about it. bacek and cotto seem to know it well | ||
| cotto_work | fsvo "well" | 15:26 | |
| NotFound | I stand corrected: just one person knowledgeable with PCT and the main HLL that uses it. | 15:29 | |
| atrodo would like to see a winxed based past/post like system | |||
| whiteknight | we've talked in the past about having a good, generalized compiler toolkit library | 15:30 | |
| PCT was assumed to take that mantle | |||
| PCT does do a hell of a lot of work to make compilers easy | |||
| JimmyZ | PerlJam: I don't know how to define fair assessment, but NQP really needs to be optimized. | ||
| NotFound | Except maybe document how to use it? | ||
|
15:31
Eduardow joined
|
|||
| PerlJam | JimmyZ: Sure. | 15:31 | |
| moritz | JimmyZ: your patches are very welcome | 15:32 | |
| JimmyZ | well, I must solve my problem of food and clothing first. | 15:33 | |
| PerlJam | JimmyZ: NQP needs to make more/better use of Parrot features, but by the same token, Parrot needs to have features that NQP is likely to use. Part of the "problem" with the current implementation is the impedance mismatch between Parrot's and NQP's respective feature sets. | ||
| JimmyZ: thus NQP "abuses" find_lex | |||
| whiteknight | Parrots implementation of lexical variables is known to be sub-optimal | 15:34 | |
| arguably we only need to use lexicals at all if we require nested closures, and arguably PCT generates too many nested closures | 15:35 | ||
| NotFound | PerlJam: There is no way to declare non lexical variables in nqp? | ||
| moritz | our $x; | 15:36 | |
| whiteknight | that's a global, not a non-lexical | 15:38 | |
| NotFound | Having function local variables that are promoted to lexical only if needed may be a useful optimization. This is what winxed does. | 15:39 | |
| whiteknight | NotFound: by the way, i've had problems with function parameters not auto-promoting to lexicals | ||
| I need to make a ticket for that | |||
| NotFound | I thought that kind of problem was fixed. | 15:40 | |
| Now that I think about that, there is no way to make the funcion parameter volatile. | 15:41 | ||
|
15:43
Eduardow left
|
|||
| dalek | sella/gh-pages: f9934a2 | Whiteknight++ | libraries/event.md: Add in stub documentation file for the Event library |
15:43 | |
| sella/gh-pages: 016e62c | Whiteknight++ | / (2 files): Event is a supported library now. Add it to the documentation in all the correct places |
|||
| sella/gh-pages: af64b6d | Whiteknight++ | libraries/future.md: Remove Event from the list of future libraries |
|||
| whiteknight | NotFound: I'll put together a ticket with examples | 15:44 | |
| NotFound | whiteknight: ok | ||
|
15:49
darbelo left,
contingencyplan joined,
UltraDM left
15:51
Eduardow joined
15:53
Andy_ joined
15:57
theory joined
|
|||
| Andy_ | whiteknight: I merged up a bunch of my changes, fixed some conflicts. | 15:59 | |
| whiteknight | Andy_: Thanks! | 16:00 | |
| Andy_: I merged from master this morning and had to revert some changes in frontends/parrot/main.c, some of which I think were from you. I am going to go back through the changes and make sure I didn't lose anything important | 16:01 | ||
| Andy_ | ok | ||
|
16:06
janus joined,
ambs left,
ambs joined
|
|||
| Andy_ | whiteknight: Have you pushed the changes back yet? | 16:11 | |
| dukeleto | ~~ | 16:17 | |
|
16:19
lucian joined,
lucian_ left,
JimmyZ left
|
|||
| tcurtis | ~~ | 16:20 | |
| dalek | nxed: r932 | NotFound++ | trunk/winxedst0.cpp: fix and improve null handling in stage 0 ArgumentList |
||
|
16:38
davidfetter joined
|
|||
| dalek | rrot/lorito: a13aab9 | cotto++ | src/dynoplibs/m0proto.ops: add op docs |
16:39 | |
| rrot/lorito: b525721 | cotto++ | / (2 files): add copy_bytes and set, test writing to allocated memory |
|||
| cotto_work | that should be a little more approachable now | 16:40 | |
| dalek | rrot/whiteknight/imcc_compreg_pmc: 526dfda | petdance++ | frontend/parrot/main.c: Avoid potential passing of NULL to strchr(). Use strcmp() as compare, not a boolean. |
16:41 | |
| Andy_ | whiteknight: There you go, re-applied my changes to main.c. | 16:42 | |
|
16:47
eternaleye left,
eternaleye joined
|
|||
| whiteknight | Andy_++ | 16:56 | |
| dalek | rrot/whiteknight/imcc_compreg_pmc: c25ef75 | petdance++ | frontend/parrot/main.c: Remove unused function write_bytecode_file. Remove an unused local pointer. consted some locals |
||
| Andy_ | whiteknight: gist.github.com/904007 | 17:00 | |
|
17:01
atagar joined
|
|||
| Andy_ | That gives you stuff to look ati. | 17:01 | |
|
17:04
atagar left
|
|||
| whiteknight | oh beautiful | 17:10 | |
| the vast majority of these don't seem like they would be specific to my branch | 17:11 | ||
|
17:11
darbelo joined
|
|||
| whiteknight | Andy_ We should pass that list along to prospective GSoC students. Easy pickings for submitting patches | 17:11 | |
| dalek | rrot/whiteknight/imcc_compreg_pmc: 8c984e0 | petdance++ | / (2 files): correctly annotate Parrot_set_config_hash_pmc input pointer |
||
| rrot: bcce1b3 | petdance++ | / (2 files): correctly annotate Parrot_set_config_hash_pmc input pointer |
17:12 | ||
| cotto_work | That's a nice way to get started. | ||
| Andy_ | whiteknight: If it was easy pickings, I'd have done them. :-( | ||
| Some of them are larger-scale questions | |||
| For instance: Should all our string_ fucntions handle NULL string pointers? Some do, some don't. We need to be consistent, I think. | 17:13 | ||
| whiteknight | Andy_: that's a good point. Consistency there seems warranted | ||
| I haven't dug into that system in a long time | 17:14 | ||
| Andy_ | splint is very good at tracking when things can and can't be NULL | ||
| That's why we have the PARROT_CANNOT_RETURN_NULL etc all over the place | |||
| So splint warns us, but it's not very useful if some can and some can't return NULL, and some can and some can't accept NULLs, etc | |||
| I also question whether we can get rid of the STRINGNULL variable. It's apparently a debugging hook, but I wonder if anyone actually uses it. | 17:15 | ||
| cotto_work | It was a fairly recent addition. | ||
| Andy_ | oooh lunch time. | 17:16 | |
| whiteknight | yeah, STRINGNULL is valuable | ||
| cotto_work | +1 | ||
| whiteknight | Actually, that's probably argument enough that string API functions should not accept NULL | ||
| STRINGNULL is the lowest we should ever go | |||
| dalek | nxed: r933 | NotFound++ | trunk/winxedst0.cpp: refactor ArgumentList and use it in call a new argument lists in stage 0 |
17:18 | |
| NotFound | whiteknight: I think it's a lot better to take NULL than to having to debug all wrong usages. | ||
|
17:18
rohit_nsit08 left
|
|||
| whiteknight | NotFound: What about all the wrong usages of NULL? | 17:18 | |
| We can't misuse either, and we can test for STRINGNULL as easily as we can test for NULL | |||
| NotFound | whiteknight: STRING_IS_NULL does both, as long as the function declaration doesn't confuse the compiler. | 17:19 | |
| Andy_ | whiteknight: But isn't STRINGNULL sometimes just a NULL? | 17:20 | |
| whiteknight | NotFound: Right, but we can give splint a lot of help if we are consistant about allowing NULL (which is not a valid STRING) or only allowing STRINGNULL (which is a valid string, and is safe from segfault) | ||
| Andy_: In general, it shouldn't be | |||
| Andy_ | How is STRINGNULL the var used? | ||
| NotFound: I'd rather catch the wrong usages now, and have the static analysis tools and the compiler find them. | 17:21 | ||
| NotFound | whiteknight: if functions that are supposed to be always called with values from parrot registers, not accepting NULL is fine for me. | ||
| Catching the internal wrong usages may be easy (...). | |||
| But external API usages, that's a different thing. | 17:22 | ||
| whiteknight | The STRING API functions should be consistant. Either they should take NULL or they all should NOT. Since we do have STRINGNULL, my suggestion is "they all should not" | ||
| Andy_ | whiteknight: but then we don't have splint's help in catching NULLs | ||
| whiteknight | Andy_: Arguably that's not a problem, since STRINGNULL is usable as a STRING and doesn't lead to segfaults | 17:23 | |
| and since strings are immutable, there's no real danger that STRINGNULL would become corrupted | |||
| or, there shouldn't be (I know the string system plays games internally) | |||
| NotFound | whiteknight: also, STRINGNULL is a local value in parrotlib. Not so easy to force its usage in all extern and embeding usages. | 17:24 | |
| whiteknight | NotFound: we do the same with PMCNULL. If we need to add new interface fucntions we can do that | ||
| Andy_ | whiteknight: My point is that if STRINGs that are NULL are actually NULL, then splint can help find the cases when a STRING *NULL gets passed around. If it's a STRINGNULL, then it can't. | ||
| NotFound | whiteknight: yes, and we already have problems with PMCNULL. | 17:25 | |
| whiteknight | Andy_: yeah, but if we make everything STRINGNULL, passing those around isn't a problem and doesn't need to be tracked in the first place | ||
| Andy_ | "Isn't a problem" from the compiler and runtime point of view. I'm talking semantically. | ||
| whiteknight | That is, let's make the guarantee that NULL isn't used by the string API, then everything is "safe" in that regard | ||
| STRINGNULL is just a 0-length string, and can be transparently used like other strings in all operations | 17:26 | ||
| it's a safe value at runtime | |||
| Andy_ | Yes, I realize | ||
|
17:26
dcolish left
|
|||
| Andy_ | If I call Parrot_string_length(NULL), that shouldn't happen, and splint can tell me that. | 17:26 | |
| If I call Parrot_string_length(STRINGNULL), that also shouldn't happen, but splint can't tell me that. | 17:27 | ||
| whiteknight | that second example can happen, and frequently does happen | ||
| Andy_ | Why? | ||
| NotFound | Andy_: catching NULL usages at compile time is good. Catching PMCNULL or STRINGNULL is not. It's usages are causes of exceptions, but they don't break the parrot VM. | ||
| whiteknight | it's maybe wasteful, because STRINGNULL has a length of 0. But it *is* a valid string and can be passed around like that | ||
| Andy_ | NotFound: OK, I like that distinction. | ||
| NotFound | Its wrong usages, I mean. | 17:28 | |
| Andy_ | Then STRING_IS_NULL need not check for NULL, only for equality with STRINGNULL | 17:29 | |
| whiteknight | eventually, once we've standardized the system, yes | ||
| NotFound | Andy_: the optimizer takes care of avoiding the comparaison with NULL when it knows is redundant. | 17:30 | |
| Andy_ | s/takes/can take/ | ||
| depending on compiler | |||
| NotFound | Andy_: we don't want to optimize for shit compilers. | ||
| Andy_ | Heck, STRING_IS_NULL() ought to assert(s != NULL) | 17:31 | |
| s/ought to/could/ | |||
| whiteknight | yes, that seems like a good idea | ||
| Andy_ | Really, STRINGNULL might better be called STRINGEMPTY | ||
| whiteknight | it's going to take us some time to get to that level of standardization | ||
| NotFound | Not at all. | ||
| An empty string is "" | |||
| whiteknight | "STRINGNULL" was chosen by analogy to "PMCNULL" | 17:32 | |
| Andy_ | Not that I understand PMCNULL | ||
| So educate me. | |||
| Because we need to do the same thing there. | |||
| THAT would be a huge win as far as splint and compiler. | |||
| whiteknight | what do you mean? | ||
| NotFound | null $S0 --> STRINGNULL | $S0 = '' --> Empty string | ||
| whiteknight | STRINGNULL is an empty string that is a singleton and might have some other special properties | 17:33 | |
| I don't know all the details about how it's implemented | |||
| Andy_ | ok | ||
| NotFound | For example, STRINGNULL has no encoding. | ||
| whiteknight | PMCNULL is a valid PMC type that throws exceptions when we access it instead of segfaulting | ||
| NotFound | Empty strings have,. | ||
| Andy_ | Then if we're always going to have STRINGNULL be a singleton, and PMCNULL, then I'm more than happy to plow through them. | 17:34 | |
| whiteknight | so VTABLE_invoke(interp, PMCNULL) is PMCNULL->vtable->invoke(interp, PMCNULL) | ||
| Andy_: that's what they are. They're immutable, global singletons | |||
| NotFound | Please don't use euphemism. They aren't singletons, they are fucking global vars. | ||
| whiteknight | NotFound: but there's only one of them, and they don't change after the interp is initialized | 17:35 | |
| Andy_ | whiteknight: MANY of the splint warnings are complaining of VTABLE_invoke(pmc) where we know not that the pmc is not NULL. | ||
| NotFound: It's not a euphemism. | |||
| NotFound | whiteknight: I have doubts about that. | ||
| whiteknight | NotFound: it's technically possible to twiddle PMCNULL, but we don't do it | 17:36 | |
| NotFound | Some people are claiming that we should be able to have independent interpreters and they must not share any data. That may lead to having a PMCNULL and a STRINGNULL for each interpreter. | ||
| whiteknight | if somebody did, they would get slapped | ||
| NotFound: that may be. We don't have a sane threading system right now to worry about | |||
| NotFound: and it really doesn't matter whether they be global singletons or interpreter-local singletons | 17:37 | ||
| Andy_ | OK, now I'm actually going to lunch. I've added the tasks for STRINGNULL. | ||
| whiteknight | thanks Andy_++ | ||
| Andy_ | and then, after than, splint flags for the vtable functions | ||
| whiteknight: when do you see merging back to master? | 17:38 | ||
| NotFound | In fact PMCNULL does not need to be a singleton, the only advantage of being unique is to be able to do something == PMCNULL instead of PMC_is_null(something) | 17:39 | |
| whiteknight | Andy_: I really don't know. I've got some codestd fixes to make still, and I would like to see more tests | ||
| Andy_ | Today? Next month? | ||
| whiteknight | Andy_: it will happen by Friday, or it won't happen until after the release | ||
| Andy_ | ok | ||
| whiteknight | My money is on sooner, rather than later | ||
| but there's a lot of code change in that branch and I don't doubt there are bugs hiding in it | 17:40 | ||
| NotFound | And the ability to do that is the reason that I don't think "singleton" is a good description for it, BTW. | 17:41 | |
| tadzik | seen chromatic | 17:42 | |
| aloha | chromatic was last seen in #parrot 52 days 23 hours ago saying "All of the core tests did pass for me, FWIW.". | ||
| NotFound | whiteknight: the practical reason of allowing NULL in the API is: say you want to call a function that takes an argument that can be STRINGNULL. With NULL you do: something(interp, NULL); Without it you must do something like: snull = Parrot_str_get_null(interp); something(interp, snull); | 17:48 | |
| whiteknight | NotFound: that extra function call doesn't impress me. STRINGNULL would be constant for an interpreter, and we would only need to get it once | 17:49 | |
| NotFound | whiteknight: Where, in a global variable? | ||
| whiteknight | wherever. I don't know how extensions or embedders will do it | ||
| but they can cache that result if they want | |||
| NotFound | Yes, they can do lot of things. But I don't think we must force them to do that kind of things. | 17:51 | |
| whiteknight | NotFound: so what's your argument? That we should allow people to pass NULL pointers around without regard? | 17:53 | |
| or that we shouldn't ask people to call interface functions the correct way? | |||
| NotFound | whiteknight: a C API should be friendly to C programmers. C programmers are not used to have several special purpose kinds of nulls. | 17:54 | |
| Passing them to the internals, of course not. Converting them to PMCNULL or STRINGNULL inside the api function. | 17:55 | ||
| whiteknight | NotFound: Parrot isn't C. Parrot has standards of it's own. Every library enforces standards on the interface | 18:05 | |
| NotFound | whiteknight: yes, and some of them enforce lack of happy users because of unfriendly standards. | 18:06 | |
| whiteknight | NotFound: For years Parrot has not had a defined API of any kind, and our users have been unhappy about that. Moving a little bit in the right direction isn't going to kill us | 18:07 | |
| NotFound | For example, perl XS has standards that I don't think nobody likes. | ||
| whiteknight | We have a long way to go before our APIs are too strict | ||
| Parrot is very very far away from XS | |||
| NotFound | whiteknight: yes, but I think that we are discusing what is the right direction in this item. | 18:09 | |
| I think that a policy of being liberal in what we accept and strict in what we give is the more friendly approach here. | 18:11 | ||
|
18:21
dodathome joined
|
|||
| Andy_ | back | 18:29 | |
| cotto_work | #ps in 120 | ||
| Andy_ | whiteknight: anything else you want me to look for? | 18:39 | |
| whiteknight | Andy_: No, you've been helpful enough already. Now I just need to plug through the remaining failures | 18:43 | |
| dalek | rrot/lorito: 40ebd35 | cotto++ | t/dynoplibs/m0proto.t: add test for copy_mem |
18:45 | |
| whiteknight | tcurtis: ping | 18:50 | |
| tcurtis | whiteknight: pong | ||
| whiteknight | tcurtis: I've been planning to add in a text tokenizer library to my Rosella project. If you provide the LALR parser generator, I can provide the lexer | 18:51 | |
| I can't guarantee a timeframe for it | |||
|
18:55
bubaflub left
|
|||
| tcurtis | whiteknight: Great. | 18:55 | |
| whiteknight: I'm considering moving the grammar specification parser part to later in the schedule so that I can use the parser generator to generate the parser. | 18:57 | ||
| atrodo | Parsers, all the way down | 18:58 | |
| tcurtis | whiteknight: The disadvantage would be that it would take a bit longer after the actual generation was implemented before it would be particularly convenient to use. | 18:59 | |
| (Although it might not actually be any later in actual time, since even if I wrote a grammar parser in NQP at the beginning, it wouldn't be capable of actually generating parsers for a while. | 19:01 | ||
|
19:02
Patterner left,
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
| whiteknight | tcurtis: A good design for the parser would enable new coders to get involved in the project after GSoC was over | 19:02 | |
| so separate out the front-end, which takes rules and things, from the backend which generates the parser | 19:03 | ||
| tcurtis: To start, you don't need a friendly DSL like yacc uses. All you need are method calls to add sequences | |||
| parser.add_rule("keyword_if", "if") | 19:04 | ||
| or, parser.add_rule("if_statement", "if", "(", "condition", ")", ...) | |||
| once you have method calls to add new rules to the parser, you can create your own little language for specifying them in an easy way | 19:05 | ||
| or, not. The fancy language isn't necessary | |||
| if we pretend that every "token" object is going to have a type string and the string of the actual contents (or, a list of sub-nodes in the case of a production), we can make matches based on named sequences of tokens | 19:07 | ||
| parser.add_rule(<output type name>, <input sequence of tokens>...) | 19:08 | ||
| (this is just one idea, you can design your own system that doesn't stink as badly) | |||
|
19:30
bubaflub joined
|
|||
| tcurtis | Right. So, friendly DSL becomes it-would-be-nice-if task for near the end. | 19:32 | |
| dalek | tracwiki: v17 | bbatha++ | ParrotGSoC2011Students | 19:33 | |
| tracwiki: trac.parrot.org/parrot/wiki/ParrotG...ction=diff | |||
| cotto_work | tcurtis: you should put your proposal on melange | 19:35 | |
| tcurtis++ | |||
| tcurtis | cotto_work: I need to rip out the lexer bits and flesh out the details of the schedule. So, hopefully I'll get it there sometime tonight. | 19:37 | |
| cotto_work | tcurtis: wfm | ||
| whiteknight | tcurtis++ | 19:40 | |
|
19:44
whiteknight left
|
|||
| tcurtis | Daylight Savings Time always ruins my expectations about the timing of #ps. | 19:45 | |
| bubaflub | tcurtis: same. i just had to run date -u | ||
|
19:45
whiteknight joined
|
|||
| cotto_work | #ps in 44 | 19:46 | |
| atrodo | I just wait for cotto_work to remind me | ||
| cotto_work | atrodo: me too | ||
| atrodo | cotto_work++ # Boosting confidence | ||
| cotto_work gets stuck in an infinite loop waiting for cotto_work | |||
| tcurtis | Does Winxed have gotos? | 19:47 | |
| whiteknight | yes | 19:48 | |
| dalek | tracwiki: v18 | bubaflub++ | ParrotGSoC2011Students | 19:49 | |
| tracwiki: trac.parrot.org/parrot/wiki/ParrotG...ction=diff | |||
| bubaflub | whiteknight: aren't gotos considered harmful? | ||
| cotto_work | bubaflub: isn't considering gotos harmful considered harmful? | 19:50 | |
| bubaflub | cotto_work: yo dawg, i heard you like considering things harmful, so i put a goto in your goto so you can goto while you goto while you goto while you... | 19:51 | |
| whiteknight | bubaflub: Winxed gives you plenty of rope to hurt yourself with, yes | ||
| winxed is a low-level system language. It doesn't protect the user behind too many high-level abstractions | 19:53 | ||
| with a few limited exceptions if PIR can do it, winxed can do it too | |||
| at the moment, there is no way to set up multisubs, but I hope that will come soon | |||
| tadzik | considering harmful is considered harmful | 19:56 | |
| I have not yet seen any "considered harmful" that didn't have even a tiny bit of fanatism in it | |||
| whiteknight | it's one thing to say that | 19:57 | |
| PerlJam | "Harmful considered harmful" | ||
| whiteknight | "goto" is not good practice. It's another thing to outright ban a particular coding construct | ||
| dalek | rrot: 9230099 | petdance++ | src/spf_render.c: Removed unused var. Consted a local var. |
||
| whiteknight | In almost all cases I would remove a "goto" statement if I found it in C code. It would have to be an extraordinary exceptional circumstance for me to leave it be | 19:58 | |
| tcurtis | If one has an acronym that begins with a vowel sounds, but which would begin with a consonant sound if expanded, should one use "a" or "an"? | ||
| atrodo | A goto should require a signed-in-blood contract stating you know what you're doing. Or a light compiler warning. | ||
| Andy_ | tcurtis: depends on if you pronounce it. | ||
| whiteknight | tcurtis: what acronym? | 19:59 | |
| tadzik | whiteknight: what about escaping nested loops? | 20:00 | |
| tcurtis | LALR. Although it actually also depends on whether you say each letter separately or not. | 20:01 | |
| whiteknight | tadzik: the first mistake is writing the nested loops in the first place. | ||
| cotto_work | "loller" | ||
| whiteknight | loller! | ||
| tadzik: a nested loop is just a disguised cry for refactoring help | 20:02 | ||
| tadzik | oh, I wouldn't be so sure. Say you are traversing a 3D array, willing to stop at a certain element | ||
| whiteknight | tadzik: Again, there are cases where it's permissible if we imagine hard enough | 20:03 | |
| tadzik | that's what I'm saying :) | ||
|
20:03
soh_cah_toa joined
|
|||
| whiteknight | tadzik: and what I'm saying is that those situations are vanishingly rare | 20:03 | |
| tadzik | oh, maybe | ||
| whiteknight | I've never run into a case where I used a goto, or even considered that a goto might be the best solution to the problem at hand | 20:04 | |
| soh_cah_toa | haha, you guys are still talking about goto's? | ||
| whiteknight | well, that's not true. I have used them in some cases, especially in parrot-land where higher-level constructs might not always be available | ||
| but if there are alternatives, those alternatives are almost always better than goto | 20:05 | ||
| tcurtis | soh_cah_toa: I don't think it's related to the previous discussion. | ||
| whiteknight: How do you feel about using gotos for cleanup on error in C? | |||
| whiteknight | tcurtis: what error? what cleanup? | 20:06 | |
| We do lots of cleanup of variables in Parrot, yet we have extremely few gotos in the whole codebase | |||
| soh_cah_toa | good | ||
| whiteknight | (and those that we do have are highly indicative of larger code problems) | ||
| soh_cah_toa | i avoid goto like the plague | 20:07 | |
|
20:07
kid51 joined
|
|||
| whiteknight | for instance, the sprintf implementation has a goto or two in it, but that code is a godforsaken mess | 20:07 | |
| so it's hard to say "see?!?! it works here!" | |||
| benabik | I avoid the plague like I avoid goto. | ||
| soh_cah_toa | the associative property of goto and the plague | 20:08 | |
| commutive, sorry | |||
| tcurtis | whiteknight: for a content-less example of what I mean, gist.github.com/902605 | ||
| benabik | Well, I find they both tend to distribute too far if you're not careful. | ||
| soh_cah_toa | *commutitive | ||
| whiteknight | tcurtis: Look at the API calls in frontend/main/parrot.c:main | ||
| same situation. Each API call might have an error. We cleanup without goto | 20:09 | ||
| I would rewrite that code snippet to not use goto | 20:10 | ||
| tcurtis: gist.github.com/904441 | 20:15 | ||
| kid51 | #parrotsketch in 15 | ||
| whiteknight | tcurtis: using the "inline" or "static" keywords on those functions would cause the compiler to inline aggressively too | ||
| tcurtis: breaking the complicated bits out into named functions increases readability | 20:16 | ||
| tcurtis: That said, I've read the code generated by bison, and I know it makes heavy use of goto. You're going to have to duplicate much of that whether we like it or not | |||
|
20:20
mikehh joined
|
|||
| tcurtis | whiteknight: that example is cleaner. And that it doesn't do the same thing as the original further proves your point about readability. | 20:21 | |
| dalek | rrot/m0-spec: 23ad887 | cotto++ | docs/pdds/draft/pdd32_m0.pod: update m0 spec to match prototype, note outdatedness |
20:22 | |
| whiteknight | tcurtis: it was a quick translation. I probably got something wrong | 20:23 | |
| Ah, I'm not calling foo_bar_cleanup when foo_bar_do_it succeeds | 20:24 | ||
| tcurtis: improved: gist.github.com/904441 | 20:26 | ||
| the last of the three gotos is completely unneeded, but I left in the branch behavior anyway | 20:27 | ||
| a fill-in the blank situation | |||
| tcurtis | the last goto was just there so that adding further behavior after foo_bar_do_it() wouldn't require adding it. | 20:29 | |
| mikehh | #ps time | 20:30 | |
| cotto_work | so it would seem | ||
| tcurtis | The only bug now is that foo_cleanup() gets called even if foo_init() fails. | ||
|
20:31
whiteknight left
20:34
frodwith left,
frodwith joined
20:38
lucian left
20:40
dodathome left,
lucian joined
|
|||
| benabik | For those not in #ps, I just updated my GSoC proposal for getting PCT to talk PBC: gist.github.com/899867 (Yes, I updated it on Melange too.) | 20:53 | |
| tadzik | oh, I didn't know you can update proposals alredy submitted | ||
| benabik | I used the button labeled "update". I hope it worked. :-D | 20:54 | |
| lucian | it does work. i've given up the gist version | 20:57 | |
| benabik | lucian: I'm updating the gist version so people not on melange can see it. | ||
| lucian | benabik: if you make it public, anyone can see it | 20:58 | |
| benabik | lucian: Oh. :-/ | ||
| Well, I'm writing it in Markdown on my machine anyway so I don't see a reason not to copy-pasta into gist as well as melange. | 20:59 | ||
| tadzik | benabik: hehe, your PCT slides look really similar to my Parrot slides :) | ||
| lucian | benabik: sure, your proposal | ||
| benabik | tadzik: Which Parrot slides? I was thinking about doing a presentation on Parrot as a whole for a local conference, so a starting point would be useful. | 21:01 | |
| bacek | benabik, I like your updated proposal. | 21:02 | |
| cotto_work | that's a good sign | ||
| bacek | aloha, melange? | ||
| aloha | bacek: melange is crapping out | ||
| bacek | good girl... | 21:03 | |
| cotto_work | aloha: melange is also socghop.appspot.com | ||
| aloha | cotto_work: Okay. | ||
| benabik | Crapping out? | ||
| cotto_work | benabik: historically it hasn't run on the best of hardware. | 21:04 | |
| tadzik | benabik: I hid them somewhere, hold on. They're in Polish though | ||
| benabik | tadzik: Ah. Polish not so useful to me. I'm a dirty unilingual American. ;) | ||
| tadzik | benabik: feather.perl6.nl/~tjs/static/#1 | 21:05 | |
| lucian | aloha: melange is /google-melange.com | ||
| aloha | lucian: ... but melange is crapping out or socghop.appspot.com ... | ||
| lucian | aloha: melange is also /google-melange.com | ||
| aloha | lucian: Okay. | ||
| lucian | aloha: botsnack | ||
| tadzik | benabik: the funniest part was presenting the lolcode compiler | ||
|
21:11
davidfetter_ joined
|
|||
| benabik | tadzik: I should consider that. Something entertaining to show it off instead of just "look, rakudo". | 21:15 | |
|
21:15
davidfetter left,
davidfetter_ is now known as davidfetter
21:16
soh_cah_toa left
21:17
soh_cah_toa joined
|
|||
| lucian | benabik: brainfuck should get a few giggles too | 21:19 | |
| benabik | Can either of those use random PBCs? It'd be funny to write a class in LOLCODE and run it with BF or similar. :-D | 21:21 | |
| lucian | yeah! and then write unit tests for it in whitespace | ||
| NotFound | I think BF isn't too oriented to external linkage. | 21:22 | |
| lucian | NotFound: that's a nice way of saying it's very deep in the tarpit | ||
|
21:23
ambs left
|
|||
| lucian | have you seen hello world in bf? you could generate the lolcode source code from bf | 21:23 | |
| dalek | nxed: r934 | NotFound++ | trunk/winxedst1.winxed: fix a problem in empty argument lists |
||
| nxed: r935 | NotFound++ | trunk/winxedst1.winxed: a hard tab |
|||
| benabik | Use rakudo's eval to run BF to generate LOLCODE and then run it? | 21:24 | |
| NotFound | I'm already enough brain damage, no need exposure to bf. | ||
|
21:24
mikehh left
|
|||
| benabik | This way lies madness. | 21:24 | |
| lucian | benabik: yeah, like that | ||
| H.P. Lovecraft would be proud | |||
| NotFound | benabik: It's called BF for some reason. | ||
| lucian | i have a warm place in my heart for whitespace | 21:25 | |
| NotFound | lucian: have you seen the proposal for whitespace overriding in C++? | ||
| lucian | NotFound: no, but it sounds insane already | 21:26 | |
| NotFound | Well, some parts even looks reasonable at the start... | ||
| benabik | You can write a program that is both valid whitespace and BF, I think. | ||
| lucian | benabik: hmm | ||
| cotto_work | lucian: you should get a doctor to look at that. It sounds dangerous. | 21:27 | |
| lucian | after seeing how C++ parsers work (7 passes!) i want nothing to do with it | ||
|
21:27
ligne joined
|
|||
| NotFound | If I remember well, in whitespace all non white is ignored, so you should be able to be a program that is valid in whitespace and in X for any free format X- | 21:27 | |
| lucian | NotFound: yep. sounds as an opportunity for much evil | 21:28 | |
|
21:28
kid51 left
|
|||
| NotFound | But with python, that should be fun. | 21:29 | |
| lucian | NotFound: the whitespace propaganda says you could print out a program and no-one would know it's there | ||
| but they fail to point out that they can be hidden in existing programming languages | |||
| NotFound: yeah, much harder | 21:30 | ||
| NotFound | lucian: I can signal an exception. In an old zx-81 computer you can see the difference between whites and nothing. | ||
| lucian | NotFound: as in many editors. but on paper? | 21:31 | |
| NotFound | On screen, but without software aid, just its hardware. | ||
| lucian | i see | ||
| NotFound | Its screen let empty lines empty to avoid wasting memory (it has 1K in the base version), and in the TV output the difference was viewable. | 21:32 | |
| lucian | i see. interesting "laziness" | 21:33 | |
| i've always wondered if haskell-like laziness could be pushed very, very far | |||
| NotFound | The amazing thing is there are people programming for that beast even today. | ||
| benabik | Hm. If lolcode ignores +-<>[],., then it could be lolcode, ws, and bf at the same time. | ||
| I should stop. | |||
| lucian | benabik: no, no. you're on your way to great evil | 21:34 | |
| a funny polyglot on parrot would be interesting | |||
| NotFound | lucian: megatokyo.com/strip/1161 | 21:35 | |
| lucian | NotFound: i don't quite get it. sorry | 21:38 | |
| dalek | nxed: r936 | NotFound++ | trunk/pir/winxed_compiler.pir: update installable compiler |
21:39 | |
| NotFound | lucian: that's how you'll look like if you do more BF. | ||
| lucian | i see. possible, i guess | ||
| NotFound | Note that I don't say is bad ;) | 21:40 | |
|
22:04
whiteknight joined
22:07
davidfetter_ joined
22:11
davidfetter left,
davidfetter_ is now known as davidfetter
22:20
bubaflub left
22:28
lucian left
|
|||
| whiteknight misses #ps | 22:36 | ||
| whiteknight is happy to see GSoC students participating in it | 22:37 | ||
| hate t/pmc/threads.t | 22:46 | ||
|
22:50
ligne left
|
|||
| atrodo | aloha, insult t/pmc/threads.t | 22:52 | |
| aloha | atrodo: t/pmc/threads.t is nothing but a clapper-clawed thimbleful of unintelligent cold sores. | ||
| dukeleto | ~~ | 23:11 | |
| dukeleto backlogs to see what happened in #ps | |||
| whiteknight | I'm seeing a sane test situation in the imcc_compreg_pmc branch | 23:14 | |
| I'm not sure I ever believed it would happen | |||
| I may attempt a merge as early as tomorrow | 23:15 | ||
| dukeleto | whiteknight++ | 23:16 | |
| cotto_work | whiteknight++ | 23:17 | |
| dukeleto | cotto_work: how many GSoC students do you think we can realistically mentor this summer? | 23:18 | |
| whiteknight: i am building and testing a g++ build of your imcc_compreg_pmc branch right now | 23:19 | ||
| cotto_work | "we" being who all? | ||
| whiteknight | awesome | ||
| dukeleto | cotto_work: we, the Parrot community | 23:20 | |
| cotto_work | It depends on who's mentoring. Not everyone will be comfortable mentoring every project. | 23:21 | |
|
23:21
bubaflub joined
|
|||
| whiteknight | right, that's the kicker. It's about matching good mentors to the right projects | 23:21 | |
| cotto_work | My guess would be 6-8, but that's largely pulling a number out of the air. | ||
| whiteknight | is it permissible for a mentor to have multiple students? | 23:22 | |
| cotto_work | I'm pretty sure that Google's fine with that. | ||
| Tene | I expect to be able to provide intermittent or task-specific support to students, but I can't provide reliable or regular support. | 23:23 | |
| whiteknight | I would be willing to do two projects, if necessary | ||
| Tene: if you keep offering, we're going to take you up on it :) | |||
| Tene | :) | 23:25 | |
| dukeleto | mentors can mentor any number of students, but having more than 2 or 3 students is not productive | ||
| i think we have roughly 10-15 people that can mentor part-time, so I think we could support roughtly that number of students | |||
| whiteknight | dukeleto: okay, I wouldn't want more than 2. And I would do 2 under the realization that I would have less time for working on other things | ||
| dukeleto | whiteknight: some students need very little help. Other require a lot of help. | 23:26 | |
| whiteknight | right | ||
| dukeleto | whiteknight: it is uneven across mentors and orgs | ||
| whiteknight: we have some repeat gsoc students this year. We know they are capable and they have their dev environment under control, and they are more likely to produce good stuff with little help | 23:27 | ||
| whiteknight: it is just something to keep in mind | |||
|
23:28
darbelo left
|
|||
| whiteknight | Right. I don't advocate multiple students per mentor in general. I'm just saying that if we have more students than available/willing mentors, I'll spend more time on it | 23:28 | |
| dukeleto | the reason I ask the question is because Google will award a number of slots soon, based on how many proposals we get | ||
| whiteknight: thanks :) | 23:29 | ||
| so if they give us N slots, we then see that we have M good proposals. If M < N, we give slots back, if N > M then we have to make hard decisions (more likely) | 23:30 | ||
| cotto_work | dukeleto: do you know when google will start making that decision? | ||
| dukeleto | my best guess is that we will be awarded somewhere between 5 and 20 slots. it's hard to say. I think there algorithm changes every year. | ||
| cotto_work: it is all on their timeline | 23:31 | ||
| cotto_work: i think the week after student proposals are due, roughly | |||
| cotto_work | All I see is "mentor slots are announced..." on the 12th | ||
| dukeleto | cotto_work: they base slot assignments on the number of student applications to each org | ||
| cotto_work: yes, on the 12th then :) | |||
| cotto_work: and, *very* roughly, orgs, on average, seem to get roughly half the number of slots than the number of student applications | 23:33 | ||
| cotto_work: but there is a lot of variability. non-deterministic flavinoids | |||
| benabik: i commented on the proposal on Github | 23:34 | ||
| benabik: it looks very good. Just need to add some detail to the timeline to replace "Continue working" and "bugfixes" weeks | 23:35 | ||
| davidfetter | dukeleto, are you sure you can't make it to pgcon in ottawa next month? | 23:40 | |
| dukeleto | davidfetter: my talks were not accepted, and have been making other travel plans. why do you ask? | 23:42 | |
| davidfetter | dukeleto, i was hoping for your contribution at the PL summit on 5/17 | ||
| dukeleto, and if you can't make it in person, i'd like to see what i can do to get your concerns addressed | |||
| dukeleto | davidfetter: what contribution? does the postgresql community want to hear about PL/Parrot or PL/Perl6? From the talks they chose to accept, it doesn't seem like they want to hear about what I have to talk about. | 23:48 | |
| cotto_work | dukeleto: did your linuxfestnw talks get accepted? | 23:49 | |
| whiteknight | last year google put out a preliminary count of slots early in the process, then refined to an actual count | 23:51 | |
| dukeleto | cotto_work: didn't submit them yet. hopefully, i am not too late | 23:52 | |
| cotto_work: i will go even if i missed the talk deadline | |||
| cotto_work | dukeleto: It's getting pretty close if the deadline hasn't passed. It's at the end of the month iirc | 23:53 | |
| davidfetter | dukeleto, don't take it so hard. it's cutting-edge stuff. the PL summit is about looking over the PL infrastructure and seeing what common concerns PL writers and users have, and how to address same | 23:55 | |
| benabik | dukeleto: Thanks for comments. Not sure what to replace those lines with yet, but I have a couple days to think. The "keep working" is because I expect the conversion I'm doing there to take more than a week and I'm not sure of a good mid-task goal. | 23:56 | |
| davidfetter | so the answer is, the community wants to hear about all kinds of PLs. heck, my talk got bounced on the first round, and i only got grandfathered in because somebody couldn't make it and they wanted to hear about this new SQL feature | ||
| dukeleto | davidfetter: that sounds fine. I can send an email with my concerns about the PL infrastructure | 23:58 | |
| davidfetter: is there some actual document that describes what will happen at the PL summit? | |||