|
Parrot 2.10.1 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Onward and upward with Google Code-In | Please test rakudo with bleeding edge parrot! | Remove deprecations | close tickets | merge html_cleanup and embed_api2 Set by moderator on 14 December 2010. |
|||
| Yuki`N | Ugh. | 00:00 | |
| Another perl-test one. | |||
| dukeleto | Yuki`N: if you can convert Perl tests to PIR tests, feel free. | ||
| Yuki`N: some tests need to be in Perl, but many can be converted to PIR | |||
|
00:01
ok22 left
|
|||
| cotto_work | the perl tests shouldn't be much harder to modify than the pir ones. Just copy/paste for new tests and make sure to update the plan. | 00:01 | |
| dukeleto | cotto_work: Yuki`N prefers C and PIR tasks | 00:03 | |
| cotto_work: Yuki`N likes a challenge | |||
| Yuki`N | I like PIR tests though | ||
| No need to switch constantly between perl and PIR | |||
| Plus the test harness is nicer | 00:04 | ||
| Well, Test::More is nicer in PIR than in Perl. | |||
| cotto_work | dukeleto: how's the vacation? | 00:05 | |
| dukeleto | cotto_work: having fun. Saw a whole lot of manatees today | 00:06 | |
| Yuki`N | Oh god. | 00:11 | |
| That's a lot of todo failures. | |||
| ;-; | |||
|
00:15
pukku joined
|
|||
| dukeleto | atrodo: i just read your blog post, nice work | 00:16 | |
| atrodo: i think you are conflating MOP and Lorito. There is no "Lorito MOP". There *will be* a reimplementation of an improved version of our MOP written in Lorito | 00:17 | ||
| mikehh | kid51: ping | ||
| kid51 | mikehh pong | ||
| mikehh | kid51: I was just updatinh html_cleanup branch and I am getting a failure in t/postconfigure/05-trace.t - Failed test: 7 | 00:19 | |
| kid51 | Try: make realclean; then: perl Configure.pl --test=build | ||
| Yuki`N | Oh I see. | 00:22 | |
| BigInt strings don't work properly. | |||
|
00:22
pukku left
|
|||
| mikehh | I thought I had done thaty, but I think I re-generated MANIFEST after | 00:23 | |
| dukeleto | Yuki`N: are they broke? | ||
| Yuki`N | Yes. | 00:24 | |
| They are absolutely broke. | |||
| All trailing zeros disappear. | |||
| So 40000 -> 4 | |||
| etc | |||
| Oh, I mean BigNum. | |||
| Sorry. | |||
| dalek | Some 'mikehh' person just gave me a 526636 byte commit packet. They need to be more careful in the future. | 00:26 | |
|
00:28
hercynium joined
|
|||
| dukeleto | Yuki`N: that sounds like a horrific bug | 00:28 | |
| Yuki`N | And apparently decimals work great. | ||
| mikehh | hmmnn, I just updated html_cleanup branch | ||
| cotto_work | mikehh uses Huge Commit Message on Outlook | 00:30 | |
| It's super effective! | |||
| Outlook has fainted. | |||
|
00:31
lucian left
|
|||
| mikehh | hey I just merged master into html_cleanup, fixed a couple of conflicts, re-generated MANIFEST, tested, then pushed it | 00:35 | |
| Yuki`N | xD | ||
| cotto_work | mikehh: no worries. | ||
| Yuki`N | socghop.appspot.com/gci/task/show/g...9228510453 can someone approve? | 00:36 | |
| mikehh | should I have done something different? | ||
| cotto_work | Yuki`N: done | ||
| mikehh | or maybe differently | ||
| Yuki`N | thanks. | ||
| cotto_work | mikehh: unless dukeleto knows of a different way, don't worry about it. | 00:37 | |
| dukeleto knows many ways to do nothing | |||
| mikehh: you did it correctly :) | 00:38 | ||
| cotto_work | I find it more amusing than anything else when outlook faints | ||
| Yuki`N | t/codingstd/pod_description.t (Wstat: 512 Tests: 1 Failed: 0) | 00:43 | |
| Parse errors: Bad plan. You planned 2 tests but ran 1. | |||
| t/codingstd/pod_syntax.t (Wstat: 512 Tests: 1 Failed: 0) | |||
| Parse errors: Bad plan. You planned 2 tests but ran 1. | |||
| just fyi | |||
|
00:46
kid51 is now known as kid51_at_dinner
|
|||
| Yuki`N | also, some of these bignum c functions aren't used in the PMC class at all. | 00:47 | |
| Hence 100% coverage is impossible. :< | |||
| cotto_work | You assume that deleting code isn't an option. | 00:52 | |
| It's actually more of a passtime. | |||
| Yuki`N | cotto_work, well perhaps you can look over the bignum class. :/ | 01:18 | |
|
01:19
muixirt left
|
|||
| cotto_work | Yuki`N: sure | 01:24 | |
| Yuki`N | I think I found another bug. | 01:27 | |
| Again in the i_ functions. | |||
|
01:28
kid51_at_dinner is now known as kid51
|
|||
| cotto_work | chromatic: ping | 01:29 | |
| chromatic | pong | 01:32 | |
| cotto_work | chromatic: is there a strategy for getting nice backtraces from CPS code? | ||
| nopaste | "Yuki`N" at 192.168.1.3 pasted "possible bug" (10 lines) at nopaste.snit.ch/27127 | ||
| chromatic | Seems straightforward to me; you walk the pointers. | ||
| Is it more difficult than that? | 01:33 | ||
| plobsing | if you've fully tailcall optimized, you won't necessarily get an intuitive backtrace | ||
| chromatic | Oh right, the Guido Conundrum. | 01:34 | |
| In the case where you have a tail-recursive algorithm (such as optimizing recursion into iteration), I've seen a strategy where you keep a counter of how many tail recursions you've performed. | 01:35 | ||
| plobsing | strategies I can see are (a) not tailcall optimize, (b) shut up and deal, or (c) maintain a separate stack for backtraces | 01:36 | |
| whiteknight | cotto_work: src/debug.c has some stuff | ||
| chromatic | I've most often seen (b). | ||
| plobsing | I'm a big fan of b | ||
| whiteknight | in the embed_api2 branch I had to rewrite one of the functions to take an arbitrary context PMC | ||
| chromatic | I'm trying to think of control flow scenarios besides within-a-function recursion where (c) is tricky. | 01:37 | |
| whiteknight | the new function takes a context PMC and a current sub (if available), and returns a STRING | ||
| plobsing | chromatic: are you saying (c) is tricky within a function, or that (c) is tricky on arbitrary control flow? | 01:38 | |
| chromatic | It may be tricky with arbitrary control flow. | 01:39 | |
| Yuki`N | If I set a bignum to 2 | 01:40 | |
| And then call `mul P0, 2.5' | |||
| It gives me 6.25 | |||
| What. | |||
| cotto_work | Yuki`N: welcome to "mountain bike" programming. | 01:41 | |
| plobsing | it can be done. you need to build management of the backtrace-stack into whatever genrates the tailcalls. | ||
| Yuki`N: 25% error isn't too bad :p | |||
| chromatic | Yeah, but do you need it if all of your tailcalls are ... well, tail calls. | 01:42 | |
| How many backtraces do you know of where you need to know where you returned FROM? | |||
| outside of INTERCAL that is | |||
| plobsing | whuh? now I'm confused. | 01:43 | |
| chromatic | No, I'm confused. | 01:44 | |
| Ignore all that, I wrote two lines of code and figured out that I was wrong. | |||
| plobsing | we could ask scheme people how their backtraces work. they've been dealing with tco'd code for forever now. | 01:46 | |
| chromatic | True. | ||
| cotto_work | chromatic: do you recall why we decided to have string be PMCs but retain separate registers? | 01:51 | |
| in M0 | |||
| emphasis on "separate registers" | 01:52 | ||
|
01:53
hercynium left,
chromatic left
|
|||
| plobsing suspects STRING* => PMC* could be made to work in current parrot without too much effort (leaving IMCC to paper-over the discrepancy) | 01:54 | ||
|
02:03
Carter joined
|
|||
| atrodo | cotto_work> pong | 02:07 | |
| atrodo enjoys being popular while I'm away | |||
| whiteknight | plobsing: any more papering over in IMCC is going to create a fire hazard | 02:10 | |
| atrodo | can't we only hope? | 02:11 | |
| plobsing | whiteknight: I'm pointing out the weak point. But mostly it would only need to convert $S0 => $P0 and 'string' => 'pmc' | 02:20 | |
| that can be done in the (relatively simple) lexer | |||
| atrodo | dukeleto> When you say it that way, that sounds reasonable. But the notes I saw made it sound like security, register allocation and most of lorito would explicitly depend on the new MOP, which is concerning to me | 02:22 | |
|
02:23
fbrito joined
|
|||
| plobsing | atrodo: those are all things that have been lumped in with lorito in the past (a la Py3k circa y2k) | 02:24 | |
| lorito would be impossible if it actually encompased all of those things however | 02:25 | ||
| Yuki`N | plobsing, lol, i guess not. :P | 02:26 | |
| Up to 73%. | |||
| Not bad. | |||
| I'm a little fazed by the amount of error that the BigNum class has. ;-; | 02:27 | ||
| Between bad stringifying and odd calculations. | |||
|
02:28
whiteknight left
|
|||
| cotto | atrodo, do you have the tuits to do a review of yalp? Your pov as a Lorito prototyper would be especially interesting. | 02:30 | |
| atrodo | yalp? | ||
| cotto | alternate lorito implementation prototype by tcurtis | ||
| github.com/ekiru/yalp-asm | 02:31 | ||
| atrodo | oh, right | ||
| sure, I'll look at it now | |||
| cotto | thanks | 02:32 | |
| plobsing | do we have a good way to implement superclass method calls in parrot? | 02:33 | |
| fbrito | tadzik: ping | ||
| cotto | plobsing, kakapo did something like that | ||
| Kapace | fperrad, you rang? (from yesterday or something?) | 02:36 | |
| plobsing | kakapo-parrot.googlecode.com/svn/trunk/ is empty. what gives? | 02:37 | |
| cotto | It's on gitorious | ||
| plobsing | ddg & goog don't seem to think so. or is gitorious not indexed? | 02:38 | |
| cotto | gitorious.org/kakapo/kakapo | ||
| www.google.com/search?hl=en&q=k...p;gs_rfai= | |||
| nice to know there's another ddg user around | 02:39 | ||
| atrodo | cotto> I also use ddg. That and blekko | ||
| fbrito | am I the only one having problems with "make cover"? I am probably missing something | 02:58 | |
| kid51 | State your problems. | 02:59 | |
| fbrito | pastebin.com/nXJVMPaY | 03:01 | |
| take a look on the last lines | |||
| it only generated the testing coverage for like 7 files | 03:02 | ||
| kid51 | fbrito: Side point: You can use our tools/dev/nopaste.pl to paste. It produces more compact, plain-text-y output than pastebin.com | 03:03 | |
| fbrito | ah, thank you :) | ||
| kid51 | This web page output is a bit unwieldy, IMHO. | 03:04 | |
| fbrito | I used to use pastie.org, but it has a limit of 100kb per paste | ||
| kid51 | Well, what do you get when you browse your own disk: /home/brito/gci/working/parrot/cover_db/coverage.html | 03:05 | |
| nopaste | "fbrito" at 192.168.1.3 pasted "cover_db ls" (13 lines) at nopaste.snit.ch/27128 | 03:07 | |
| fbrito | oh, interesting | ||
| I get the same as this: tapir2.ro.vutbr.cz/cover/cover-resu...2/c_cover/ but only with 7 files | 03:08 | ||
| Yuki`N | fbrito, I ran into the same problem a while back. | ||
| You need some perl modules. | |||
| make sure tests aren't failing. | |||
| kid51 | fbrito: say: perldoc Devel::Cover | 03:09 | |
| If no output, install Devel::Cover from CPAN | 03:10 | ||
| Yuki`N | the i_divide VTABLE method for BigNum has this as the body: bignum_div_bignum_float(INTERP, SELF, VTABLE_get_integer(INTERP, value), SELF); | ||
| It's calling the float div function, but truncating the float to an int. I'm confused. | |||
| kid51 | disclosure: I only ran 'make cover' for the first time this week ... probably in response to an earlier post by fbrito. | ||
| fbrito | I installed it yesterday (Devel::Cover) | 03:11 | |
| kid51 | and do you have: man gcov | ||
| fbrito | yes, I do | 03:12 | |
| and also gcov2perl | |||
| kid51 | ok, so it looks like you have prereqs | 03:13 | |
| Are you trying this in master? | |||
| Yuki`N | Run make test, see if they all pass. | 03:14 | |
| fbrito | make fulltest is passing | ||
| but I have only tried on my branch. let me try again on master | |||
| kid51 | In passing, I notice something puzzling about our 'cover' target. | 03:15 | |
| It includes as its first sub-target 'cover.dummy', whose text is: | |||
| $(PERL) Configure.pl --ccflags="$(CC_FLAGS) $(COVER_FLAGS)" \\ | 03:16 | ||
| --linkflags="$(COVER_FLAGS)" --ldflags="$(COVER_FLAGS)" | |||
| ... from which you might infer: I can type 'make cover' and that will initiate *both* configuration and build (with coverage) | |||
| ... but that would be false. | |||
| You need to have run Configure.pl to get a Makefile which contains this (or any other) 'make' target. | 03:17 | ||
| So our 'make cover' in effect requires you to reconfigure. | |||
| Since Configure.pl is largely Perl 5 code, there's no great benefit to trying to get coverage stats about it *in the same program in which we try to get coverage stats about PMCs and C code* | 03:18 | ||
| Same thing for cover-codingstd, cover-manifest, cover-distro, cover-perl | 03:20 | ||
| Yuki`N | cotto, floor divide in the bignum class doesn't work for some reason. :/ | ||
| kid51 | Leave the coverage of the Perl 5 components to me! ;-) | ||
|
03:20
Carter left
03:26
bacek joined
|
|||
| kid51 | fbrito: I was successfully able to run 'make cover' | 03:30 | |
| And, after completion, I was able to get a plain-text version of the output with: | 03:31 | ||
| cover -report=text 2>errors_coverage.txt 1> coverage.txt | |||
| fbrito | I am running it again on master | ||
| kid51 | (but I think I'll write a less comprehensive coverage target which runs more quickly and is therefore of better use to people trying to increase code coverage.) | ||
| fbrito | but thank you for your help :) | ||
| what is the best way to get a list of all perl modules installed? | 03:32 | ||
| kid51 | To learn more about Devel::Cover, consult links in the perldoc or google for Paul Johnson | ||
| fbrito: I believe search.cpan.org/~coke/Task-Parrot-0.01/ is supposed to give you all the Perl 5 modules you'll need for Parrot. | 03:34 | ||
| But consult more with Coke about that. | |||
| As for getting a list of *all* perl modules installed ... I don't know. That's better asked in perlmonks.org | 03:35 | ||
| Also: search.cpan.org/~smpeters/Bundle-Pa...moke-0.01/ for submitting Smolder reports | 03:36 | ||
| atrodo | cotto> ping | 03:39 | |
| Yuki`N | I have the feeling that even though I covered all the VTABLE functions for BigNum I'm not going to get full coverage. | 03:42 | |
| rfw | could someone approve www.google-melange.com/gci/task/sho...9228633715 for me | 03:48 | |
| plobsing | perldoc perllocal # lists all perl modules installed on a machine | 03:49 | |
| kid51 | rfw: approved | 03:54 | |
| rfw | thanks | ||
| now to figure out how to actually do this | |||
| Yuki`N | Lol. | ||
| I'm the expansion of test coverage master. | |||
| rfw | lol | ||
| kid51 | Perhaps the two of you could collaborate on a parrot-dev post about how you go about expanding coverage | 03:55 | |
| rfw | 0 [main] pbc_to_exe 15036 C:\\Users\\Tony\\Documents\\google-code-in\\parrot\\parrot-goddammit\\pbc_to_exe.exe: *** fatal error - unable to remap \\\\?\\C:\\Users\\Tony\\Documents\\google-code-in\\parrot\\parrot-goddammit\\runtime\\parrot\\dynext\\os.dll to same address as parent: 0x210000 != 0xCA0000 | 03:56 | |
| dang cygwin | |||
| kid51 must sleep | 03:58 | ||
|
03:58
kid51 left
|
|||
| Yuki`N | Lol I | 04:01 | |
| Am running in a Linux VM. :3 | |||
| fbrito | Yuki`N: can you please tell me what do you see when you type "perldoc perllocal"? | 04:09 | |
| Yuki`N | [nlum@yukiko parrot]$ perldoc perllocal | 04:11 | |
| No documentation found for "perllocal". | |||
| lol | |||
| fbrito | whaaaat?! no modules?! lol | 04:15 | |
| plobsing | Yuki`N: many distros strip that as "unecessary garbage" | ||
| fbrito | Yuki`N: I am still having problems with "make cover", so I would like to see which modules you have installed | 04:16 | |
| plobsing | you could write a short script to iterate @INC and then treewalk the paths | 04:17 | |
| Yuki`N | nopaste? | ||
| Where is that again? | |||
| nopaste | "Yuki`N" at 192.168.1.3 pasted "Installed Perl Packages" (42 lines) at nopaste.snit.ch/27129 | 04:18 | |
| Yuki`N | Here. | ||
| You figure it out yourself. xD | |||
| fbrito | ahha, very nice :D thank you | 04:20 | |
| atrodo | cotto> unping. I'll catch you tomorrow | ||
| fbrito | I probably installed modules as sudo or something like that :( | 04:24 | |
| Yuki`N | 26% up for the BigNum class. | 04:33 | |
| Hopefully it'll go past 90 tomorrow. | 04:34 | ||
|
04:34
Yuki`N left
|
|||
| rfw | hm how do you run a single test? | 04:38 | |
| fbrito | you can use "cover t/pmc/complex.t" for example | ||
| ops | |||
| lol | |||
| i mean "prove" | |||
| rfw | oh | 04:39 | |
| ah i see | |||
| thanks fbrito | |||
| fbrito | some nice params are "-v" for verbosity and "-f" for failures | ||
| rfw | and to check coverage? | ||
| fbrito | "make cover" should generate something like this: tapir2.ro.vutbr.cz/cover/cover-resu...2/c_cover/ | 04:40 | |
| rfw | ah okay | ||
| fbrito | I don't know if its possible to do that for just 1 file | ||
| "make cover" takes really long | |||
| rfw | huh it's recompiling parrot | ||
| yeah i can see why it would | |||
| lol | |||
| fbrito | it has to recompile with some testing flags | 04:41 | |
| and then run all tests | |||
| (btw, I am having problems with that right now. "make cover" is only showing 7 files for me, instead of all source files) | |||
| (and when I ran it for the first time, after waiting really long, it said that there were some perl modules missing, so I had to install them) | 04:43 | ||
| rfw | mine's still running | 04:46 | |
| fbrito | it takes really long | 04:47 | |
| rfw | and now it tells me i'm missing gcov2perl | 04:52 | |
| fbrito | see? ahhahahha | 04:55 | |
| its so sad :( | |||
| rfw: and? were you able to run "make cover"? | 05:09 | ||
| rfw | still trying to find gcov2perl | ||
| lol | |||
| fbrito | are you on windows? :s | 05:10 | |
| rfw | no | ||
| linux | |||
| i installed Devel::Cover from cpan | 05:11 | ||
| but i don't have a gcov2perl | |||
|
05:11
ascent left
|
|||
| fbrito | if you are on Ubuntu/Debian, try installing "libdevel-cover-perl" | 05:11 | |
| rfw | i already did | ||
| also i'm on arch lol | 05:12 | ||
| cotto | atrodo, pong | ||
| hi bacek | 05:15 | ||
|
05:25
Kulag left
|
|||
| fbrito | rfw: any progress? | 05:26 | |
| rfw | i think i'll write the tests first | ||
| instead of messing around with cover | |||
| fbrito | you can always look them here: tapir2.ro.vutbr.cz/cover/cover-resu...2/c_cover/ | 05:27 | |
| hm | |||
| tapir2.ro.vutbr.cz/cover/cover-resu...8/c_cover/ is more up to date | |||
| rfw | ahaha did i just put semicolons everywhere | 05:28 | |
| fbrito | hahahah | ||
|
05:29
Kulag joined,
rurban_ joined
|
|||
| rfw | ohi Kulag | 05:29 | |
| fbrito | rfw: I will play a little bit with Makefile to see if it is possible to remove procedures in "make cover" that we won't need | 05:31 | |
|
05:32
rurban left,
rurban_ is now known as rurban
|
|||
| Kulag | rfw: Don't tell me you have that on a script. :P | 05:33 | |
| rfw | Kulag: would you like me to | ||
| Kulag | Not particularly. | ||
| fbrito | rfw: yes, it worked :) | 05:38 | |
| rfw | still trying to figure out how to write tests | 05:39 | |
| fbrito | rfw: on line 3761 of Makefile you can remove dirs that you won't need to see the cover result | ||
| and after that there are the methods that it run. you will only need cover-dummy, cover-src and cover-run | 05:40 | ||
| that will speed "make cover" up a loooot | |||
| rfw | yay i managed to write a test | 05:41 | |
| i get how to do this now :D | 05:42 | ||
| fbrito | it is really interesting | 05:44 | |
| (writing tests) | |||
|
05:49
fbrito1 joined
05:52
fbrito left
|
|||
| fbrito1 | rfw: do you have a US visa (document)? :o | 06:08 | |
|
06:10
fbrito1 is now known as fbrito
|
|||
| fbrito | I have to say that I still didn't understand how those i_* functions works. When i_add is called? | 06:24 | |
| when is* | |||
| cotto | $I0 += 3 | 06:26 | |
| i in in-place | |||
| fbrito | Ahhh, so simple :) | ||
| Thank you :) | 06:33 | ||
| cotto | you're welcome | 06:34 | |
| I like making Parrot less mysterious. | |||
| there's enough innate mystery already | 06:35 | ||
| and inane mystery too | 06:36 | ||
| rfw | fbrito: no but i could probably get one | 06:57 | |
| lol | |||
| fbrito | in the black market? hahah | 06:58 | |
| rfw | hurr >_> | ||
| cotto | don't get yourself in trouble | 07:00 | |
| fbrito | just kidding :) | ||
| cotto | that's what they all say | 07:01 | |
| ;] | |||
| rfw | cotto: is there no multiply for bigint, float | ||
| fbrito | that and "I am innocent" | 07:02 | |
| cotto | all kinds of awesome | 07:03 | |
| fbrito | rfw: hm, did you notice there is a 1-month gap between GCI's end (10th January) and Grand Prize Winners announce (14th February)? | 07:09 | |
| rfw | fbrito: yeah i wonder why | ||
| fbrito | I think they will "investigate" the tasks we did (searching for cheaters?), or something like that | 07:10 | |
| cotto | It only makes sense. gci is a very new program. | 07:11 | |
| I wonder how it'll work out for jumpyshoes. | 07:12 | ||
| sorear | jumpyshoes? | 07:15 | |
| fbrito | I think he is doing just fine | ||
| cotto | sorear, www.google-melange.com/gci/student_...jumpyshoes | 07:16 | |
| fbrito | only weird thing is that sometimes he does a lot of work before actually claiming the tasks and then he claims lots of tasks in a really short period of time | 07:17 | |
| like if you click on the "Completed on" column you will see that he got 6 tasks (24 points) in 20 minutes | |||
| cotto | I'm sure he's contributing. | ||
| rfw | yeah | ||
| jumpyshoes takes a whole bunch of tasks | |||
| does them | |||
| and makes dark_shikari approve them in 20 minutes | |||
| lol | |||
| fbrito | ahahha | ||
| rfw | it's because x264 takes a week | 07:18 | |
| before commiting anything to the repo | |||
| so he has to wait a week before getting all the stuff | |||
| so yeah cotto he's legit :p | |||
| fbrito | his moves really scares me | ||
| rfw | yeah | ||
| poor nolan | |||
| he thought he was second then suddenly, jumpyshoes | 07:19 | ||
| beat him by 22 points too | |||
| rfw waits for make cover | 07:20 | ||
| fbrito | rfw: did you try to clean the Makefile? | 07:21 | |
| it helped me a lot | |||
| rfw | mm not yet | ||
| i'm just doing it normally for n--did something just segfault | |||
| oh | 07:23 | ||
| arck | |||
| cannot open graph phile | |||
| file* | |||
| cotto | Mmmmm. philes. | 07:24 | |
| fbrito | BBS jargon? :P | 07:26 | |
| rfw | arrrgh forgot to make clean | 07:28 | |
| time to run make cover again :( | |||
| i was wondering why i was missing graph files | |||
| fbrito | on README it says something about running tests in parallel... does it really improve the performance? | 07:30 | |
| s/it says/there is/ | 07:31 | ||
| sorear | fbrito: how many CPUs do you have? | 07:38 | |
| fbrito | 2 :( | ||
| sorear | then running tests in parallel will double performance | ||
| fbrito | interesting | ||
| sorear | testing is what is known in the jargon as an "embarrassingly parallel" problem | ||
| like raytracing and brute-force codebreaking | 07:39 | ||
| the kind of problem that will go a million times faster if you throw a million CPUs at it | |||
| rfw | wow did i just DECREASE the coverage of bigint.pmc | ||
| fbrito | HAHAHA | ||
| no way | |||
| rfw | it went from 78 77.17 | ||
| +to | 07:40 | ||
| either that or i did something wrong | |||
| fbrito | sorear: hm, interesting. I have only tried brute-force 2 or 3 times (WEP breaking) | ||
| rfw | fbrito: stealing your neighbor's internet? :D | ||
| fbrito | rfw: did you remove any test or added new functions? | ||
| rfw | i added new functions | 07:41 | |
| >_> | |||
| fbrito | I have managed to improve Complex coverage from 76% to 93.3% :) | ||
| tadzik: ping | |||
|
07:51
bacek left
|
|||
| fbrito | (and here comes the sun) | 07:51 | |
|
07:55
fbrito1 joined
|
|||
| cotto | reparrot.blogspot.com/2010/12/notes...texts.html | 07:57 | |
| 'night | 07:58 | ||
|
08:00
fbrito left
08:03
bacek joined
08:04
theory left
|
|||
| sorear | bacek is back! | 08:06 | |
|
08:18
cosimo joined
|
|||
| rfw | i can't figure out how the hell my coverage decreased | 08:29 | |
| fbrito1 | you wrote new functions, right? | 08:34 | |
| did you also write new tests? :D | 08:35 | ||
| rfw | i wrote new tests | 08:36 | |
| do you have to write new functions? | 08:37 | ||
| fbrito1 | no, I didn't | ||
| rfw | hm odd | ||
| fbrito1 | wait | 08:38 | |
| rfw | i've written 4 new tests | ||
| fbrito1 | I have written new test functions (on t/...) but I didn't touch on the source files (src/...) | ||
| rfw | same | ||
| but | |||
| make cover tells me i only have ~75% coverage | |||
| fbrito1 | did you also notice that you have to "call" the new function, right? | 08:39 | |
| rfw | yes | ||
| i also changed plan to 40 | |||
| fbrito1 | and change the "plan(x)" on the top of the file | ||
| rfw | from 36 | ||
| yeah | |||
| fbrito1 | ah, ok :D | ||
| rfw | so i really don't know what's wrong | ||
| fbrito1 | how much it decreased? | 08:40 | |
| rfw | like, 3% | ||
| fbrito1 | that's really weird | 08:41 | |
| are you checking on .c or on .pmc file? | |||
| rfw | both | ||
| fbrito1 | it would be nice if you still have the old files on cover_db folder, so you could check which lines are not covered anymore | 08:43 | |
| if you still had* | |||
|
08:43
fbrito1 is now known as fbrito
|
|||
| fbrito | have you already pushed it to your github fork? I am really curious to see what happened :D | 08:44 | |
| rfw | not yet | ||
| fbrito | I can have a look if you push it or paste a diff somewhere | 08:46 | |
| we should really learn how to run "make cover" on just 1 file... I am starting to get tired of waiting the whole process :P | 08:51 | ||
| rfw | i think you can just run gcov manualy | ||
| pastebin.com/JtjaeH36 | |||
| this is all i did ._. | |||
| fbrito | :o | 08:52 | |
|
08:55
wagle left
08:58
wagle joined
|
|||
| fbrito | rfw: I can't understand how this decreased the test coverage | 08:58 | |
| rfw | fbrito: now you know how i'm confused :D | 08:59 | |
| fbrito | have you ran "make cover" on master and then on your branch again? | ||
| or you could check from here: tapir2.ro.vutbr.cz/cover/cover-resu...2/c_cover/ | 09:00 | ||
| i mean: tapir2.ro.vutbr.cz/cover/cover-resu...8/c_cover/ | |||
| how can I run gcov manualy? | 09:12 | ||
| rfw | gcov sourcefile.c | ||
| i think | |||
| but you have to do some testy stuff beforehan | |||
| oh man my laptop is heavy | 09:15 | ||
| yeah fbrito i have honestly no idea why nothing is happening with code coverage | 09:19 | ||
| sorear | did you remember to save before testing? | 09:24 | |
| that always gets me | |||
| rfw | sorear: yes | 09:31 | |
| fbrito | how to regenerate the manifest file? | 09:32 | |
| rfw | fbrito: isn't there a tool for that | ||
| tools/dev/mk_manifest_and_skip.pl | |||
| fbrito | hm, I will take a look. thank you | 09:34 | |
| sorear | fbrito: you don't | ||
| the manifest is a source file | 09:35 | ||
| you edit it, and stuff is generated from it | |||
| not the other way around | |||
| fbrito | ah | ||
| sorear | the manifest can probably die soon | ||
| it was only really *needed* back when we were using CPAN to distribute Parrot | 09:36 | ||
| fbrito | ah, I see | 09:37 | |
| sorear | opbots names | ||
| fbrito | rfw: I had a task to increase testing coverage in 10%, but I was able to increase it in 20%. do you think I should ask them to create another task, or would that be wrong? | 09:39 | |
| moritz thinks that giving double points for double work would be fine | 09:40 | ||
|
09:42
rfw left
|
|||
| fbrito | moritz: true... but asking to Parrot to create a task *just to me* make me fell weird | 09:44 | |
| moritz | fbrito: see it as a workaround for a limitation in the point system | 09:46 | |
|
09:51
cotto left
10:01
perlite left,
perlite joined
10:14
fbrito left,
fbrito joined
|
|||
| fbrito | tadzik: ping | 10:26 | |
|
10:44
redicaps joined
|
|||
| fbrito | tadzik: ping | 10:52 | |
|
10:57
fbrito1 joined
11:01
fbrito left
|
|||
| dalek | rrot: 7a4629e | fperrad++ | / (2 files): [LWP] refactor protocol http with a buffered socket emulation |
11:04 | |
|
11:06
fbrito1 left
|
|||
| tadzik | o/ | 11:54 | |
|
12:03
redicaps1 joined,
cognominal left
12:05
cognominal joined
12:06
redicaps left
|
|||
| tadzik | ...why am I assigned to www.google-melange.com/gci/task/sho...9186887930 ? | 12:06 | |
|
12:27
mtk joined
13:23
bacek left
13:29
rurban_ joined
|
|||
| dalek | TT #1893 created by jkeenan++: Define a 'quickcover' make target | 13:29 | |
| TT #1893: trac.parrot.org/parrot/ticket/1893 | |||
|
13:32
rurban left,
rurban_ is now known as rurban
13:39
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 13:55 | |
| mikehh | hi there whiteknight | ||
| whiteknight | good morning mikehh, how are you today? | 13:56 | |
| mikehh | whiteknight: passable, passable, actually doing quite good | 13:57 | |
| hoiw's the release oriented stuff going? | 13:58 | ||
| merged latest master into html_cleanup, just need to set up indexes | 13:59 | ||
| whiteknight | yeah, I saw some work on that last night, it looks good | 14:00 | |
| I would really like to see that merged soon | |||
| I should really send out an email to the list today about the release. I'll work on that now | 14:02 | ||
|
14:24
particle left
|
|||
| whiteknight | I think we should have turned the release into a GCI task | 14:26 | |
| dalek | rrot: 04e8af1 | Whiteknight++ | DEPRECATED.pod: remove GzipHandle from DEPRECATED.pod. It is not experimental after a vote at #ps on November 20, 2010 |
14:28 | |
|
14:29
particle joined
|
|||
| tadzik | the mainly exciting thing about 3.0 will be the new GC? | 14:36 | |
| whiteknight | if we get a new GC | ||
| tadzik | mhm | ||
| whiteknight | that project needs volunteers right now | ||
| moritz | I thought we already had a new-ish gc in master? | 14:37 | |
| whiteknight | no, just a cleanup of the old one. No algorithmic differences | ||
| tadzik | whiteknight: what is to be done? | ||
| whiteknight | tadzik: Good question. bacek was working on a system, but he didn't like it and was thinking about a new algorithm | ||
| tadzik | ah | 14:38 | |
| whiteknight | so he has the old one partially implemented which we could try to complete, and he has a new algorithm written out that we could try to implement | ||
| After 2.11 maybe we need to put together a task force and get into that code | |||
| moritz | github.com/parrot/parrot/commit/ca...0609188724 is the getpid function exposed to PIR? if yes, how? | 14:48 | |
| plobsing | $P0 = getinterp; $I0 = $P0.getpid(); | 14:50 | |
| moritz | hm | 14:51 | |
| that method is deprecated :( | |||
| plobsing | it is *experimental* | 14:52 | |
| we have too many similar but distinct notions of "this might go away", some of which we lump together in DEPRECATED.pod | |||
| deprecated, experimental, internal | |||
| moritz | hm, ok | 14:53 | |
|
14:53
redicaps1 left
|
|||
| moritz | I'll let my macos x minions test that :-) | 14:54 | |
|
14:59
JimmyZ joined,
davidfetter left
|
|||
| plobsing | \\o/ Ωη;)XD stage0 emits syntactically valid winxed code for all bootstrap files! 450 lines of ometa => 20_000 lines of PIR oO | 15:03 | |
|
15:03
JimmyZ left
|
|||
| whiteknight | wow | 15:11 | |
| wow that it works, and wow that there is so much output | |||
| we *really* need gsoc_past_optimization to try and pare that down | 15:12 | ||
| plobsing | how would PAST help? | ||
| it is implemented mostly in itself. it compiles down to winxed, which doesn't make use of PAST. | |||
| and works is such a strong term | 15:13 | ||
| not all syntactically valid winxed is actually runnable. the winxed parser is *very* lax and admits many strings that generate invalid PIR or cause the emitter to choke. | |||
| Coke | isparrotfastyet.com dies with a JS error in IE8. | 15:15 | |
| looks like it's in the flot jquery plugin. | 15:16 | ||
| whiteknight | plobsing: ah, that's true. I forget that Winxed is not PAST-based | 15:17 | |
| PIRATE would convert PIR to PAST, which could then be optimized | |||
| plobsing | whiteknight: I doubt very much that PIRATE would be able to infer sufficient information to make a significant dent. | 15:18 | |
| I can see it doing roughly 3 optimizations - register-allocation and op-selection-optimization | 15:19 | ||
| and maybe something else | |||
| I do think that the naive OMeta optimizer can do better. function () { return; } is just silly. | 15:20 | ||
| atrodo | Coke> Thanks, I'll take a quick look at that | 15:21 | |
| dalek | rrot: 2a7f952 | mikehh++ | runtime/parrot/library/LWP/Protocol.pir: fix codetest failure - trailing whitespace |
15:22 | |
| whiteknight | plobsing: gsoc_past_optimizations is just a framework, if we wrote more optimizations it would have the power to affect more change. Of course you are right, the OMeta optimizer is probably best in this case, at least at the macro- level | 15:25 | |
| plobsing | whiteknight: I'm saying that the information has either been erased or obfuscated by the time things get to the PIR level. A PIR-level static optimizer is of little utility. | 15:26 | |
| whiteknight | ok | ||
| plobsing | the effort that would go into such an optimizer would be better spent making a packfile optimizer, which could be hinted with runtime information, and used for both AOT, JIT, and profile-guided optimizations | 15:27 | |
| and by both, I mean all three of | 15:28 | ||
|
15:28
dmalcolm joined
|
|||
| atrodo | Coke> Yep, it was broken. I've added the JS it needs. Thanks | 15:29 | |
| whiteknight | plobsing: good point. We need working and sane packfiles first | 15:33 | |
| plobsing | yep. all roads lead to packfiles. | ||
| whiteknight | We need to fix the PackFile PMCs first to work as they previously did | 15:34 | |
| then we need a better API for them. Then we can redo the internals to make them more clean and workable | 15:35 | ||
| Finally we start adding fancy new features | |||
| atrodo | Fancy! | 15:36 | |
| plobsing | whiteknight: I dissagree with the outside-in approach. I prefer inside-out. Make packfile PMCs suitable to internals, switch internals over to packfile PMCs, iterate API. | ||
| whiteknight | plobsing: Packfile PMCs represent an API that users are relying on now. To change that requires a deprecation cycle. | 15:37 | |
| plobsing | they are experimental | 15:38 | |
| whiteknight | they still are? Well that changes things | ||
| plobsing | and they should remain so indefinitely. they are too critical to internals. | ||
| or will be, once the internals uses them | 15:39 | ||
| we can provide a user-friendly, supported API as a layer over top | |||
| whiteknight | okay, yes, that does change things. We can do the internals now and fore-go the API | ||
|
15:40
Patterner left
|
|||
| whiteknight | one thing we will want to do early-on is make sure nobody outside src/packfile/ and a select few other subsystems is accessing those structures directly | 15:40 | |
| if we limit the amount of code that needs to change when we modify the internals, we are doing ourselves a great service | |||
| dalek | TT #1817 closed by moritz++: Cannot get the PID on Mac OS X | 15:41 | |
| TT #1817: trac.parrot.org/parrot/ticket/1817 | |||
|
15:42
Kristaba joined
|
|||
| Kristaba | Hi everyone | 15:43 | |
| whiteknight | good morning Kristaba | ||
| Kristaba | whiteknight: In France, it's afternoon now :p | 15:44 | |
| whiteknight | Kristaba: Good afternoon | 15:45 | |
| Kristaba | No problem, just kidding ^^ | ||
| whiteknight | So what are you up to this afternoon? Any good GCI tasks? | 15:46 | |
| Kristaba | I worked on the Apertium project, and now I see a french translation task to Parrot, so I propose to do it ;) | 15:49 | |
|
15:50
Psyche^ joined,
Psyche^ is now known as Patterner
16:00
cosimo left,
cosimo joined
|
|||
| whiteknight | .NET's native call interface won't let me expose variadic functions directly | 16:17 | |
| so I can't just expose Parrot_api_call_sub, I need to provide explicit overloads for each combination I want to call | 16:18 | ||
| plobsing | varargs suck. but we won't get rid of them because we hate our embedders. | 16:19 | |
| whiteknight | I guess an alternative is to create a Parrot_api_call_sub_array function that takes an array of parameters and array of pointers for returns | ||
| that would get around the need for varargs, though the implementation might get a little messy | 16:20 | ||
| plobsing | I did that, submitted a patch, but it got rejected. | ||
| whiteknight | plobsing: I would love to see that patch. It got rejected at a time when I wasn't working on this new embedding API, and when I wasn't acting like Product Manager | 16:21 | |
| plobsing searches for ticket | 16:22 | ||
| trac.parrot.org/parrot/ticket/1477 | 16:23 | ||
| allison provides an explanation of the "approved" way of doing things | |||
| Coke | atrodo++ | 16:24 | |
| plobsing | hmmm... my patch isn't there | ||
| whiteknight | ah, okay. I see what she is saying | ||
| I can expose that functionality through the embedding API pretty easily, and then use it from C# | 16:25 | ||
| plobsing | I'm not a big fan of that approach. An array would be a lot more intuitive. | ||
| whiteknight | plobsing: in the ticket description you did say we could calculate a "Parrot-ish" aggregate, and that's what a CallSignature is | 16:26 | |
| Arrays would be fine too | |||
| it would be easy to provide an array-based frontend over that kind of mechanism. I could easily add an API function that takes arrays and uses them to create a CallSignature internally | 16:27 | ||
| the flattening approach might be nice too | 16:28 | ||
| I'll have to see what works best and put together a nice interface for it | |||
| plobsing | is there a git-grep-commits ? | 16:30 | |
|
16:30
theory joined
|
|||
| whiteknight | i have no idea | 16:31 | |
|
16:31
rurban left
16:35
fbrito joined
|
|||
| plobsing | whiteknight: my patch was in the tt1477 svn branch. the issue was also discussed on parrot-dev (groups.google.com/group/parrot-dev/...a1dc84f64) | 16:39 | |
| whiteknight | plobsing: is your issue that you don't like the underlying mechanism of using CallSignature PMCs, or whatever they are called now? Or, is your issue that the Parrot_ext_call interface we expose is too ugly for embedders to use? | 16:41 | |
| plobsing | my issue is that embedders have an ugly interface, and that varargs gets an optimized path through PCC | 16:43 | |
| if varargs got translated to callcontext too, I'd be happy with a wrapper that made a callcontext from an array | |||
| but if that is too slow for varargs, it is too slow for array | |||
| and anywhere you are using varargs, you could *easily* be using an array in stead | 16:44 | ||
| also, I do have irrational hate towards varargs, due to its repeated assaults on my sanity | 16:45 | ||
| whiteknight | in PCC, everything is translated to CallContext | 16:46 | |
| and varargs is no faster than any other approach | |||
| Okay, so here is what I am going to do. I'm going to rip out the current Parrot_api_call_sub routine, which uses varargs. I'm going to replace it with an invoke routine that takes a CallContext | 16:47 | ||
| Then we will have routines for creating a CallContext, populating args in it, and pulling returns from it | 16:48 | ||
| From there, we can add any other interfaces that people want to see: an array-based one, a varargs-based one, etc | 16:49 | ||
| plobsing | whiteknight: hmm... things have changed in pcc since last I looked. used to be things used indirection unless it was calling from varargs. | 16:50 | |
| whiteknight | no, after the last big round of refactors everything is CallContext now | 16:51 | |
| much cleaner | |||
| so, since that is the basic unit of a call, the basic interface should use a CallContext PMC | |||
| plobsing | you may want to look at Parrot_pcc_build_call_from_varargs for your pretty callcontext wrappers | ||
| whiteknight | that's what Parrot_ext_call uses, I think | 16:52 | |
|
16:56
Andy joined
|
|||
| whiteknight | In terms of the embedding API, I'm really trying to keep everything high-level and PMC-based where possible | 16:58 | |
| so I don't want to expose a million little variants on the same operations unless specifically necessary | 16:59 | ||
| I think this exposes plenty of power, even if the embedder has to write some extra code to get down to the little details | |||
| and it helps insulate libparrot, so devs can make changes to the internals without breaking user code | 17:00 | ||
| NotFound | PIR is an assembler, even if a higher level than most assemblers. I don't find such amount of lines unusual. | 17:02 | |
| whiteknight | NotFound: I'm not talking about PIR. I'm talking about embedding libparrot from C | 17:03 | |
| or, in my most recent case, embedding libparrot from C# | 17:04 | ||
| plobsing | whiteknight: my one concern about using CallContext is: does PARROT_ARG_CALL_SIG flag nest properly? | 17:05 | |
| can I pass a callcontext which delegates to yet another callcontext? | |||
| NotFound | whiteknight: is a comment about what you and plobsine were talking apropos winxed pir output, | 17:07 | |
| plobsing | NotFound: it is kinda big. but it's not winxed's fault. 0.5k LOC ometa => 5k LOC winxed => 20k LOC PIR. | 17:09 | |
| 4x isn't that bad | |||
| 5k LOC does stress the compiler a bit though | 17:10 | ||
|
17:10
sjn left
|
|||
| NotFound | And BTW winxed does optimizations that can hardly be doable at PIR level, such as knowing when prefef functions usages can be evaluated at compile time. | 17:10 | |
| plobsing hates to think how long it would take pirate to compile 20k of PIR | |||
| NotFound: isn't that constant-propagation? | 17:11 | ||
| whiteknight | plobsing: I'm not sure what you mean by CallContext nesting properly | ||
| plobsing | If I'm an embedder, and I expose "full parrot PCC" to users, they should reasonably expect to be able to pass that on to their users. | 17:12 | |
|
17:12
cotto joined
|
|||
| NotFound | plobsing: mostly that, yes, | 17:13 | |
| cotto | ~~ | ||
| plobsing | CallContext{ CallContext { CallContext { CallContext { ... } | ARG_CALL_SIG } | ARG_CALL_SIG } | ARG_CALL_SIG | 17:14 | |
| should use the inner-most callcontext (because each flags the next-inner one as its "true" callcontext) | |||
| that's what I mean by "nesting properly" | 17:15 | ||
| NotFound | plobsing: about the ometa part, parser generators usually emit lots of code. | 17:17 | |
| plobsing | that's what they're for after all :p | ||
| NotFound | Yeah | ||
| Better than handcode and debug a lot of repetitive code and tables. | 17:18 | ||
| plobsing | NotFound: btw, my bootstrap efforts have flushed out some new winxed bugs. | 17:20 | |
| NotFound | plobsing: that's the problem of being an advanced user ;) | 17:21 | |
| Mmmm... constant in void context, never thought about that, | 17:22 | ||
| plobsing | yes, that's the one I'm more concerned about | ||
| they're a result of the way the optimizer works, and eliminating them would be tricky | 17:23 | ||
| NotFound | The null one I was aware of. Also in funtion args. Should be easy to fix. | ||
| plobsing: no problem, I'll fix it. | 17:24 | ||
| "Now Rakudo has switched to ParrotInterpreter.getpid(), and works like a charm" | 17:27 | ||
| Uh... the getpid method is experimental. | |||
| I thought rakudo was going to call Parrot_getpid from C. | 17:29 | ||
| plobsing | and? is there anything that says users aren't allowed to make informed decisions about using experimental features? | ||
| NotFound | If the method is going to be used, it should be blessed. | ||
| whiteknight | NotFound: bless it | ||
| NotFound | ok | 17:30 | |
| whiteknight | Parrot_getpid in C is experimental too. Bless that also | 17:32 | |
| NotFound | whiteknight: if we make the method the official way, we can keep the C level as an internal detail subject to change for a now. | 17:37 | |
| whiteknight | okay, that's fine by me too. I would really like to close 2 tickets if possible | 17:39 | |
| fbrito | Complex PMC is going to be deprecated? :o | 17:50 | |
| whiteknight | fbrito: yes. We're going to move it out of core into it's own project | ||
|
17:52
mtk left
17:53
mtk joined
|
|||
| fbrito | ah, ok :D | 17:53 | |
| I am still waiting tadzik review my GCI work that increased Complex test coverage in 20% | |||
|
18:00
mtk left
|
|||
| whiteknight | fbrito: deprecations take a long time. 3 months at least | 18:00 | |
| plobsing | and at least some of those tests will help the newly spawned project | 18:02 | |
| fbrito | ah, good to know | 18:03 | |
|
18:05
mtk joined
18:07
kapace_school joined
|
|||
| kapace_school | how do you check what the current code coverage of a PMC is? | 18:10 | |
| cotto_work | kapace_school: pick the latest results at tapir2.ro.vutbr.cz/cover/cover-results/ and look for the .pmc file. | 18:12 | |
| whiteknight | cotto_work: how often is that updated? | ||
| fbrito | kapace_school: those are the last ones: tapir2.ro.vutbr.cz/cover/cover-resu...1/c_cover/ | ||
| from today | |||
| cotto_work | whiteknight: looks pretty frequent | 18:13 | |
| fbrito | kapace_school: you can also generate them your own running "make cover", but it takes quite long to run (and you will have to install some dependencies first) | ||
| dalek | rrot: c257faa | fperrad++ | / (3 files): [socket] put the buffer in Socket PMC, |
18:14 | |
| kapace_school | fbrito: ok, yeah i need to do that if i want to do the code coverage tasks | 18:15 | |
| whiteknight | fperrad++ | ||
| fbrito | kapace_school: if you really take them, let me know. I can probably help you with them | 18:16 | |
| kapace_school | fbrito: ah, thanks | 18:17 | |
| which dependencies do I need? | |||
| fbrito | kapace_school: are you on ubuntu/debian-based distro? | 18:18 | |
| kapace_school | fbrito: yes | 18:19 | |
| fbrito | kapace_school: I had to install "libdevel-cover-perl" package | 18:20 | |
| and I think I also had to install a CPAN module, but I am not sure... running "make cover" will tell you if you miss anything | 18:23 | ||
| kapace_school | right, this isn't in the documentation somewhere? | ||
| whiteknight | documentation? | 18:24 | |
| whiteknight writes a new GCI task to document make cover | |||
| kapace_school claims it :P | 18:25 | ||
| whiteknight | :) | 18:26 | |
| NotFound | The coverage report is updated twice a day | 18:28 | |
|
18:28
bluescreen left
|
|||
| NotFound | (if the revision it picks builds fine) | 18:28 | |
|
18:29
bluescreen joined
|
|||
| whiteknight | Do we have any French-speaking developers? | 18:31 | |
| NotFound | Thinking better about Parrot_getpid, the function is so simple that there is no good reason to keep as experimental. Let's bless it. | 18:32 | |
| moritz | +1 | ||
| whiteknight | +1 | ||
| moritz | whiteknight: fperrad maybe? | ||
| whiteknight | +A BAJILLION | ||
| moritz | (just guessing based on the name) | ||
| whiteknight | moritz: ah, good idea | ||
| moritz | je parle un petit peux francais aussi | 18:33 | |
| NotFound | I can read French, but I'm unable to judge quality. | ||
| whiteknight | fperrad: ping | ||
| NotFound | (I'm also unable to judge English quality but I write some docs using it, sigh) | 18:34 | |
| Kristaba | moritz: -peux +peu* | 18:35 | |
| ('peux' is the verb 'pouvoir', not the adverb ^^) | 18:36 | ||
| NotFound | Je peux parler un peu. | ||
| Kristaba | :p | 18:37 | |
| plobsing | google translate rearranges the verb so that moritz' sentence means the same thing | ||
| manglage for the win | |||
|
18:38
theory left
|
|||
| NotFound | Ils sont fous, ces googles. | 18:38 | |
| Coke | I question the need for the readme translations and ponder a button on docs.parrot.org that just takes you to google translate for that page. | 18:40 | |
| plobsing | Coke: have you ever tried google translate? | 18:41 | |
| Kristaba | plobsing: +1 | ||
| Coke | ¿Qué es el loro? | ||
| plobsing | I speak enough french to know it does a splendidly horrid job. (at least last time I checked) | ||
| the german => english is pretty bad too | 18:42 | ||
| whiteknight | Coke: there may be no "need" for it | ||
| Coke | plobsing: yes. I find it's quality enough to get the gist across, usually. | 18:43 | |
| GAH its | |||
| plobsing | my hovercraft is full of eels | ||
| Kristaba | Read a human-written document is more easy (and really less tiring) than a google translation ;) | 18:44 | |
| kapace_school | fbrito: ok, I make'd cover, but I don't see src/eventhandler in the coverage report... | ||
| erm, i don't see any /pmc/ in the report | |||
| Coke | i'm more concerned about the lack of quality control and maintenance cost of the translations. | ||
| we can't even keep our code or english docs up to date. | 18:45 | ||
| whiteknight | Coke: in general, no. But README does not change much | ||
| NotFound | Coke: so I am | ||
| kapace_school | it says "t/pmc/eventhandler.t ................ ok" in the test log... | ||
| Coke | note: let's at least use locales instead of languages on the README extensions. | ||
| Kristaba | Coke: I'm asking the same question... The README documents maintenance will be very complicated | 18:46 | |
| whiteknight | Many other open source projects maintain translations of both user interface messages and documentation | 18:47 | |
| it's not undoable, but we need to be open to it and search for best practices | |||
| This GCI translation work is, if nothing else, a testbed for figuring out how we want to go about handling this | 18:48 | ||
| Coke | I'd rather spend tuits on code, but fair enough. | 18:49 | |
| whiteknight | We don't pick what tasks the students take. They pick | ||
| the tuits aren't fungible for us to spend wherever we want them | |||
| Coke | whiteknight: ? those tasks are coming from you and dukeleto, no? | ||
| whiteknight | We create the tasks, yes. We have several dozen of them. Students pick which to take | ||
| we have many code-related tasks in the queue that nobody is taking | 18:50 | ||
|
18:50
zaur joined
|
|||
| Coke | whiteknight: I understand how that works in the general case, thanks. Our job is to encourage people to work on things that will help the project. | 18:50 | |
| whiteknight | and if we don't offer the translation tasks at all, other projects will and the students will go there instead | ||
| fbrito | kapace_school: sorry... I was away | ||
| Kristaba | About that... Someone know when cotto come back? My translation is already finished :o | ||
| zaur | Hi all | 18:51 | |
| whiteknight | Kristaba: cotto probably can't evaluate it. We need to find a French speaking developer to proof-read it | ||
| hello zaur | |||
| zaur | i would like to help parrot project | ||
| whiteknight | zaur: Awesome! What are you interested in doing? | 18:52 | |
| zaur | i could translate from english to russian | ||
|
18:52
gg411 joined
|
|||
| whiteknight | zaur: Okay, are you a GCI student? | 18:52 | |
| Coke pings someone he knows who is french-canadian... | 18:53 | ||
| cotto_work | I'm not reliable to review anything but English. | ||
| fbrito | kapace_school: have you run "make cover"? | ||
| kapace_school | fbrito: yes, I ran make cover | 18:54 | |
| and no errors, but the report doesn't have any /pmc/'s | |||
| zaur | GCI ?? | ||
| NotFound | plobsing: hash literals in void context are not possible, the open bracket is parsed as begin of block. You need it for some reason? | ||
| Kristaba | cotto_work: Ok :) | ||
| cotto_work | atrodo: ping | ||
| whiteknight | zaur: GCI is a program where students perform tasks, like translations | 18:55 | |
| fbrito | kapace_school: hm, I have the same problem on my environment (Ubuntu 10.10) :(. actually, I am running make covre on a Ubuntu 9.10 virtual machine | 18:56 | |
| Coke | whiteknight: I have a french speaker who's willing to check it, as it's only one file. | ||
| plobsing | NotFound: ATM, not really. my patch works around my immediate issues. | ||
| Coke | where's the translation at? | ||
| zaur | whiteknight no) | ||
| NotFound | plobsing: I'm about to commit a more complet fix. | ||
| Coke | Kristaba: URL to the translation? | 18:57 | |
| plobsing | NotFound: but hash literals in void ctx are possible: ({ 'a': 'b'}; | ||
| whiteknight | cotto_work: did we have a Russian translation submission? | ||
| NotFound | plobsing: oh, yes, don't figured that. | ||
| whiteknight | Coke: github.com/Kristaba/parrot/blob/76...E.francais | ||
| Kristaba | Thank you whiteknight and Coke ;) | ||
| NotFound | Also, I may provide a void casting pseudofunc some day. | ||
| kapace_school | fbrito: yeah, I'm on ubuntu 10.10 live | 18:58 | |
| fbrito | kapace_school: when I run make cover on my box, it only generates the report for 7 files | ||
| kapace_school | oh, thats worse than mine, it does most, just not the pmc ones :( | ||
| Coke | comment: "the license blurb has to have been translated officially somewhere. I recommend you use that." | 18:59 | |
| cotto_work | whiteknight: we do seem to have a Russian translation | 19:00 | |
| fbrito | kapace_school: are you testing on master or on your modified branch? is make test passing? | ||
| kapace_school | fbrito: master, make test passes i think | ||
| fbrito | kapace_school: hm, that's weird. if you want you can work on the task and when you think you have finished it I can run the "make cover" for you | 19:02 | |
| cotto_work | can someone review the iterator test coverage increase? The pull request is at github.com/parrot/parrot/pull/33 . | ||
| fbrito | wait, that's actually complex pmc :) | ||
| the GCI task title is wrong | |||
| cotto_work | ah | 19:03 | |
|
19:03
theory joined
|
|||
| kapace_school | fbrito: nvm, it fails | 19:03 | |
| fbrito | kapace_school: are you aware of the "prove" command? you can test single .t files with it (also check -vf params) | 19:04 | |
| kapace_school | ah useful | ||
| dpaste.org/tSZ0/ <-- failure | |||
| plobsing | NotFound: I also have a fix for the nulls problem. Should I post it, or do you already have somethign in the works? | ||
| NotFound | plobsing: I was about to start looking at it, please post it. | 19:05 | |
| kapace_school | can i skip or ignore the io tests? | ||
| fbrito | kapace_school: try running prove t/pmc/io.t -vf | 19:06 | |
| dalek | nxed: r717 | NotFound++ | trunk/winxedst1.winxed: fix code generation for several types of expressions when used in void context, |
||
| kapace_school | fbrito: want the output, confuses me :| | 19:07 | |
| fbrito | kapace_school: also make sure you are working on the parrot master branch, and not on an old tree... as far as I remember, all tests are passing on master | ||
| nopaste | "plobsing" at 192.168.1.3 pasted "[winxed] nulls in arrays" (17 lines) at nopaste.snit.ch/27160 | 19:08 | |
| plobsing | NotFound: ^^ | ||
| kapace_school | fbrito: i did git clone github.com/parrot/parrot.git today.. no modifications | ||
|
19:09
adu joined
|
|||
| adu | does anyone here know about the c99 module? | 19:09 | |
| NotFound | plobsing: looks fine, thanks. | ||
| kapace_school | im on a live system, maybe thats the problem | ||
| ill try at home | |||
| adu | pastebin.com/DiRLxcL3 | 19:10 | |
| i have no idea where this c99_group library is supposed to be | |||
| fbrito | kapace_school: yes, that may be a problem. let me know if you still have problems on your home environment :D | 19:11 | |
| kapace_school | ok thanks for your help fbrito | ||
| and good job on GCI! | |||
| fperrad | whiteknight pong | 19:12 | |
| plobsing | adu: c99_group.{so,dll} dynlib should be created under dynext/ by the makefile | ||
|
19:12
kapace_school left
|
|||
| whiteknight | fperrad: we had a GCI student submit a french translation of README. We were looking for people to review it | 19:12 | |
| Somebody suggested you might speak french | |||
| fperrad | yes, it's my native language | 19:13 | |
| plobsing | adu: have you run 'perl Configure.pl; make'? or just 'parrot c99.pir'? | ||
| adu | yes, I had to change NQP=parrot-nqp.pbc to get it configured | 19:14 | |
| then that pastebin was for "make" | 19:15 | ||
| Coke | fperrad: I did just have a french canadian friend of mine review it, but another pair of eyes wouldn't hoit. | ||
| whiteknight | adu: c99 is very old. Can probably be fixed with some effort. What are you planning to use it for>? | ||
| adu | plobsing: should I run parrot c99.pir? | 19:16 | |
| whiteknight: experiments | |||
| plobsing | adu: no. but that is the result you would get if you had. | ||
| I was hoping the makefile wasn't borked | |||
| it is | |||
| it never got updated after it left the nest. | |||
| adu | it is | ||
| well I can hack away at it, but i have no idea what I'm doing | 19:17 | ||
| plobsing | if you want to fix it, it is generated from files in config/makefiles/ | ||
| 2 things you might want to fix: c99.pbc depends on $(C99_GROUP), $(C99_GROUP) is mis-named $(C_GROUP) | 19:18 | ||
| adu | ok | 19:19 | |
| I don't see any rules for that in the makefile | |||
| plobsing | lines 36 and 46 stick out to me | 19:20 | |
| of root.in | |||
| adu | plobsing: right | 19:21 | |
| plobsing | > du -h stage1.pbc | ||
| 1.1M stage1.pbc | |||
| \\o/ | |||
| adu | but neither of those build c99_group.bundle | ||
| plobsing | .bundle? what OS uses that for their shared object extension? | ||
| adu | macosx | 19:22 | |
| plobsing | I thought it used .dynext | ||
| adu | its actually .dylib on macosx, but the configure script chooses .bundle for some reason | ||
| plobsing | or dynlib | ||
| adu | don't know why | ||
|
19:22
bacek joined
|
|||
| adu | its ok, because all the libs in parrot/runtime/dynext are named .bundle too | 19:22 | |
| plobsing | thats... weird | 19:23 | |
| adu | technically speaking .bundle is used for directories which contain lots of shared libraries | ||
| and .dylib is for the shared libraries themselves | |||
| plobsing | that's all parrot-configure's business, and I'm no expert on the subject | 19:25 | |
| adu | anyways i'm not worried about it | ||
| what I'm worried about is what files are supposed to be compiled into c99_group? | |||
| I don't see any .c files anywhere | 19:26 | ||
| plobsing | by convention, x_group libraries are libraries of all PMC classes for language or package x. | ||
| adu | so would that be stuff in C99.pm? | ||
| plobsing | probably not | 19:27 | |
| look for *.pmc files | |||
| if the dependancies worked properly, the appropriate .c files should get generated properly | |||
| adu | c99_PGE.pir? | 19:28 | |
| plobsing | nope. that's a PIR (script) file | 19:29 | |
|
19:29
rfw joined
|
|||
| plobsing | there appear to be no PMCs in c99. c99_group will not exist until there are some. | 19:29 | |
| if c99 doesn't need the PMCs, you should comment out that line | 19:30 | ||
| adu | ok | ||
| also, I know nothing about Perl6Grammar language, so I was thinking of writing a language frontend to Parrot, but I've already written it in Haskell, do you know of any other languages written in Haskell? | 19:31 | ||
| plobsing | adu: that target parrot, or in general? | 19:32 | |
| adu | yeah, well I've already written the lexer and parser | ||
| but I have yet to write the compiler, which I plan on writing to target Parrot | |||
| I'm just wondering if there are any "gotchas" in writing in something OTHER than Perl6Grammar | 19:33 | ||
| plobsing | I think pugs toyed with the idea of targetting parrot at one point, but beyond that, I am not aware of any Haskell-impelemted frontends | ||
| adu | i see | ||
| plobsing | adu: I am currently working on a self-hosing OMeta implementation on parrot | ||
| adu | well, pir is just text, that shouldn't be too hard | ||
| what's OMeta? | |||
| plobsing | that makes no use of perl6 | 19:34 | |
| adu | the language I'm working on is Go | ||
| I know Go is supposed to be systems, not dynamic, but I think its logical | 19:35 | ||
| plobsing | OMeta is a "parasitic" language for stream processing (sort of like list processing) | ||
| adu | parasitic? how so? | ||
| plobsing | the designer refers to it as "parasitic" because it never exists in isolation. it always sits inside of another language (the "host" language) | 19:36 | |
| adu | lol | ||
| sounds like Scala | |||
| NotFound | plobsing: that fix doesn't work for me, I'm testing another way. | 19:37 | |
| adu | plobsing: have you heard of Go? | ||
| plobsing | sort of like scala, in the sense that it is has a very functional feel to it | ||
| NotFound | adu: you mean golang? | ||
| plobsing | adu: I have. I am unimpressed given the big names behind it. | ||
| adu | NotFound: yes | ||
| NotFound | adu: I refuse to call it "Go" because of code.google.com/p/go/issues/detail?id=9 | 19:38 | |
| adu | plobsing: I am very impressed with the literal syntax, so much so that I'm thinking of switching from JSON to GoSON | 19:39 | |
| plobsing | the world doesn't need "Yet another sop to programmers that want to think they are programming in assembly when they really shouldn't be" | ||
| adu | plobsing: but my biggest peeve about it is that all the builtins are lowercase (but global) and the only way to define your own globals is to make them uppercase | ||
| plobsing: i.e. if you wanted to define your own int128 type, you can't... you have to define Int128 and pretend the i is lowercase | 19:40 | ||
| sop? | 19:41 | ||
| plobsing | www.thefreedictionary.com/SOP | ||
| adu | standard operating procedure? | 19:42 | |
| plobsing | n. Something yielded to placate or soothe. | 19:43 | |
| adu | NotFound: I know of at least 3 D programming languages, and you don't see Digital budging | 19:45 | |
| plobsing | adu: I'm lost. what does your goog-go implementation for parrot in haskell have anything to do with an ancient c99 implementation for parrot in perl 6? | 19:46 | |
| NotFound | adu: I have no problem with that, I never name none of them. | ||
| adu | not much | ||
| fbrito | tadzik: ping | 19:47 | |
| adu | plobsing: as I said, the only reason I'm interested in the c99 module is "experiments" | ||
| plobsing | adu: my advice is that you not base your insights about parrot on something that hasn't been touched in 2 years (during which time parrot has changed significantly) | 19:48 | |
| adu | ok | ||
| then f*** c99 | |||
| :) | |||
| plobsing | the valid only reason to look at c99 would be to revive it | ||
| and, while interesting, would probably not be that rewarding | 19:49 | ||
| adu | i mean i like c, so its one of those things that "would be nice" | ||
| but as i said, i know nothing about P6G | |||
| plobsing | P6G is pretty self-explanatory for people familiar with yacc and its ilk | 19:50 | |
| adu | if i were to revive c99 then it would end up being written in Haskell (which already has C99 lexer and parser libraries) | ||
| and I don't think Parrot people want that | |||
| dalek | nxed: r718 | NotFound++ | trunk/winxedst1.winxed: fix code generated for null values in array and hash expressions, Issue 9, |
19:51 | |
| adu | i might as well start a new project called c99hs or something | ||
| plobsing | adu: why would we not want that? | ||
| parrot isn't *just* about perl 6 | |||
| adu | i dunno, seems like every Parrot language is written in P6G | ||
|
19:51
zaur left
|
|||
| plobsing | adu: that was the first tool written for compilers on parrot. it was the only available tool for a long time. | 19:52 | |
| there are a number of efforts to change that (monoculture is dangerous) | |||
| adu: although we do have preference for self-hosted implementations | |||
| adu | well, then here I go, er uhm i mean here I c99! | ||
| lol | 19:53 | ||
| NotFound | adu: when I started writing winxed the situation were like you describe, but I didn't care. | ||
| adu | plobsing: by self-hosting do you mean a go-compiler in go, or a c99-compiler in c99? | ||
| or do you mean no dependancies on Haskell? | 19:54 | ||
| plobsing | both. the reason is that a self-hosted compiler to parrot is by definition parrot-hosted | ||
| a direct Haskell -> parrot compiler would not be parrot-hosted (we have no haskell implementation yet, interested?) | 19:55 | ||
| however, a Haskell -> parrot compiler could be used to bootstrap a parrot-hosted implementation | |||
| adu | right, but Haskell is incredibly complex | 19:56 | |
| perhaps a GHCCore -> parrot compiler would be easier | |||
| GHCCore is basically Haskell minus syntax sugar | 19:57 | ||
| plobsing | bootstrapping examples I know of are: winxed (which bootstraps off of C++), and my ometa implementation (which bootstraps off of node.js) | ||
| adu | interesting | ||
| plobsing | adu: is that like STG? | ||
| adu | i think STG is the runtime library for Haskell | ||
|
19:58
gg411 left
|
|||
| TimToady | Perl 6 is not intended to be a monoculture :P | 19:58 | |
| plobsing | (IIUC) STG is GHC's VM abstraction | ||
| adu | ah, ok | ||
|
19:59
AndChat| joined
|
|||
| plobsing | also TLA OMGWTFBBQ | 19:59 | |
| adu | anyways, I'm not sure if writing a Haskell compiler, just so I can write C99/Go compilers would be worthwhile | ||
| plobsing | adu: it's not a requirement. just a preference. | ||
| TimToady | phone? | ||
| NotFound | There is more than one way to write parsers ;) | 20:00 | |
| adu | but once C99 is a hosted language, then parsers can be written in lex/yacc for Go... | 20:01 | |
| that is certainly an option | |||
| anyways, thanks for the culture | |||
| i mean what's wrong with "apt-get install ghc"? | 20:02 | ||
| plobsing | ubuntu packages are perpetually 6 months out of date. that's what. | ||
| adu | o yeah | ||
| i've noticed that | 20:03 | ||
| TimToady: phone? | 20:04 | ||
|
20:07
AndChat| left
|
|||
| atrodo | cotto_work> pong | 20:07 | |
| cotto_work | atrodo: My writeup of the context-related parts of the braindump is at reparrot.blogspot.com/2010/12/notes...texts.html . | 20:08 | |
| atrodo | cotto_work> Saw that. Read it once. Probably going to read it again | ||
| adu | what is lorito? | ||
| cotto_work | I have between one and three more of those coming up. | ||
| adu | COW is evil | 20:09 | |
| cotto_work | trac.parrot.org/parrot/wiki/Lorito | ||
| unfortunately you'll have to dig around a bit to get a complete-ish picture | |||
| adu: what do you mean? | 20:10 | ||
|
20:11
hercynium joined
|
|||
| atrodo | cotto_work> I looked at yalp last night. Looks neat, but it's only a parser at this point | 20:14 | |
| Coke | tartley.com/?p=1267 | ||
| cotto_work | atrodo: ok. | 20:15 | |
| adu | cotto_work: www.gotw.ca/publications/optimizations.htm | 20:16 | |
| cotto_work: what does the trac page mean by "pretty much"? | 20:17 | ||
| cotto_work | PIR will be be reimplemented in M0 (a.k.a. Lorito ops). We expect full compatibility for existing PIR code, but we won't know if it's possible until we get there. | 20:18 | |
| Coke | whiteknight: You probably want to close #1580. | 20:22 | |
| fbrito | tadzik: ping | 20:25 | |
| adu | cotto_work: so M0 is going to be a minimal VM kinda like microcode for Parrot? | 20:29 | |
|
20:29
perlite left
|
|||
| adu | cotto_work: have you considered using another VM without changes? like LLVM or MMIX? | 20:30 | |
| plobsing | LLVM is a target under consideration (although the nomenclature about it being a VM is a bit misleading. it's more of a compiler kit) | 20:31 | |
|
20:31
perlite joined
|
|||
| dalek | rrot: c8c15cc | NotFound++ | t/pmc/namespace.t: some more test for exception conditions in Namespace PMC methods |
20:32 | |
| PerlJam | adu: MMIX? Like Knuth's thing? | 20:33 | |
| cotto_work | adu: Yes. Microcode is a fairly good analogy to understand M0. | ||
| adu | PerlJam: yes, that thing | 20:34 | |
| MMIX has a beautiful microcode format: 32-bits separated out into (8, 8, 8, 8). | |||
| PerlJam | adu: This is the first time I've ever seen someone suggest it to be used for something "serious" | ||
| adu | why not? | 20:35 | |
| whiteknight | Exactly what it is, is not nearly as important as the fact that it's better than PIR | 20:37 | |
| I would lean towards LLVM code over anything like MMIX | |||
| adu | doesn't LLVM have a variety of representations? like bytecode/assembly? | ||
| whiteknight | that I am aware of, it has an assembly language and a bytecode | 20:38 | |
|
20:38
theory left
|
|||
| adu | also, one downside of MMIX is that it requires a 64-bit memory model | 20:38 | |
| atrodo | that's a big downside | 20:39 | |
| adu | Knuth's simulator for it works on 32-bit | 20:40 | |
| whiteknight | LLVM assembly language makes the most sense if we're planning to use LLVM for our JIT engine | ||
| dalek | TT #1580 closed by whiteknight++: gziphandle PMC | 20:41 | |
| TT #1580: trac.parrot.org/parrot/ticket/1580 | |||
| adu | yes | ||
| atrodo | But then we're tied to LLVM and cannot use anything else | ||
| whiteknight | although in reality, we don't want to use any particular assembly language. Far better is to add an abstraction which can be easily translated to any other assembly language we want | ||
| we doing want to tie to LLVM, but we want to be able to quickly and efficiently translate to it | |||
| adu | perhaps you could reimplement LLVMAsm in PIR! | ||
| plobsing | PIR operates at a higher level than LLVM. Explicit pointers are something we'd like to avoid exposing to users (except when they ask really nice for them). | 20:42 | |
| whiteknight | PIR is something we would like to avoid exposing to users | 20:43 | |
| plobsing | layers upon layers... | ||
| whiteknight | turtles all the way down | ||
| plobsing | I *do* like turtles | ||
| atrodo | whiteknight++ | ||
| NotFound | One Logo to rule them all | ||
| atrodo | All your basic are belong to us | 20:44 | |
| NotFound | May the Fortran be with you. | ||
| adu | Fortran is amazing, its practically the oldest programming language in the universe | 20:45 | |
| rfw | how does fdiv in pir work? | 20:48 | |
| does it floor divide if i put it into an Integer or something? | 20:49 | ||
| PerlJam | fortran is the oldest programming language still in use, isn't it? | 20:50 | |
| atrodo | That's what wikipedia says | 20:52 | |
| adu | PerlJam: I think it's a tie between Fortran and Lisp | ||
| iirc, there are some lambda papers from before Fortran | 20:53 | ||
| NotFound | A paper is not a language in use. | 20:54 | |
| adu | true | 20:55 | |
| in that case Fortran wins | |||
| NotFound | Well, maybe if you have an origami-made computer... | ||
| plobsing | the Fortran still in use hardly resembles the original FORTRAN II | ||
| adu | 1975 was the first lambda paper n/m | ||
| plobsing | i'd argue they are different languages | ||
| adu wants an origami computer | 20:57 | ||
| plobsing | is origami turing-complete? | ||
| adu | yes... it better me | ||
| Coke | PIR is not something I would like to avoid exposing to users, but YMVV. | ||
| (YMMV) | |||
| adu | if not, then let it fear my scissors! | ||
| atrodo | Coke> I agree. It's a better option to expose than pasm | 20:58 | |
| Coke | (having written an insane amount of handrolled PIR, I am probably not a reliable source) | ||
| adu | atrodo: why? | ||
| cotto_work | atrodo: It's better than bf too. That doesn't make it a good idea. | 20:59 | |
| atrodo | adu> I like the magic at that level | ||
| cotto_work> touche | |||
| adu | atrodo: magic? i thought PIR was magick-less | ||
| cotto_work | M0 will be magic-less. PIR has plenty of magic. | ||
| cotto_work goes off to hunt the wild sandwich | 21:00 | ||
| dalek | rrot: aaf8008 | NotFound++ | / (3 files): remove experimental status from Parrot_getpid function and ParrotInterpreter getpid method, TT #1564 |
||
| adu | so M0 has no malloc/argument polymorphism or anything? | ||
| plobsing | polymorphism is a form of magic | 21:01 | |
| NotFound | Any sufficiently advanced polymorphism is indistinguishable from magic. | 21:03 | |
| adu | any sufficiently advanced magic is indistinguishable from technology | 21:06 | |
|
21:07
adu left
|
|||
| NotFound | plobsing: what's the winxed file you talked about with whiteknight? ometa-base.winxed ? | 21:10 | |
| plobsing | stage1.winxed | 21:11 | |
| it's the catenation of all the winxed sources | |||
| NotFound | It is in the repo, or must be generated? | ||
| plobsing | generated | 21:12 | |
| NotFound | Executing Ωη.coda.winxed on the bootstrap dir is enough? | 21:13 | |
| plobsing | no. that's the coda (thing that comes at the end) | ||
| whiteknight | PIR is PASM. We aren't trying to get rid of one and keep the other | 21:14 | |
| and I don't want to get rid of PIR and expose lower-level Lorito to the users either | |||
| plobsing | NotFound: run make in src/bootstrap (recently moved to just src/) | ||
| whiteknight | Users should not be programming anything in assembly language. Not our assembly language, not any assembly language | ||
| plobsing | the default target builds stage1 (because I haven't gotten past there yet) | ||
| whiteknight | C programmers have known this for several decades | ||
| PIR is assembly language in the same way that MASM and HLA are assembly languages | 21:15 | ||
| PIR is no different from PASM and is not an alternative to it | |||
| NotFound | Ah, yes, no bootstrap dir now. | ||
| nopaste | "plobsing" at 192.168.1.3 pasted "[â¦Î·] stage1.winxed (indented)" (6145 lines) at nopaste.snit.ch/27164 | ||
| whiteknight | syntactical bullshit on top of the same underlying deathtrap | ||
| If we get rid of PIR, the replacement will be *higher* level, not lower | 21:16 | ||
| at least in terms of the user experience | |||
| plobsing | gnu indent is a godsend for this kind of C-like-language generation | ||
| dalek | TT #1564 closed by NotFound++: expose a getpid library function for Rakudo $*PID and other languages | 21:17 | |
| TT #1564: trac.parrot.org/parrot/ticket/1564 | |||
| NotFound | plobsing: what should I install to build it? rhino? | 21:18 | |
| plobsing | node.js | ||
| also git submodule init | |||
| (to fetch OMeta/JS) | 21:19 | ||
| Coke | PIR Ain't PASM. | ||
| plobsing | PAP ain't PIR | ||
| sorear | whiteknight++ # Parrot# is awesome | 21:20 | |
| fbrito | tadzik: ping | 21:22 | |
| whiteknight | sorear: thanks! Much nicer to implement on top of the new API | ||
| Coke: PIR is PASM with a preprocessor. It's all the same thing. The same exact units of execution. The same exact level of abstraction. All the same operations. Same operands. | 21:23 | ||
| a few syntactic niceties for the coder, but it's the same thing | |||
| Whether I write $P0 = foo $P1, or foo $P0, $P1 is an organization change, not a language change | 21:24 | ||
|
21:25
theory joined
|
|||
| plobsing | whiteknight: that's not quite true. at first it was, and it intended to stay that way. but our wholesale adoption of PIR and abandonment of PASM led to several discrepancies being introduces without being identified until much later. | 21:25 | |
| whiteknight | plobsing: all those discrepancies are things that IMCC does at lex and parse time | ||
| and those thigns are typically only turned off because IMCC enters into different modes | |||
| plobsing | whiteknight: not quite. all those nice "declarative" syntaxes for things don't work from PASM and never should. | 21:26 | |
| the problem is that we don't have imperative syntax for accomplishing the same leading to "you can't get there from here" | |||
| whiteknight | plobsing: right, that's just a readability enhancement, not a change in the conceptual language | ||
| and if anything, PASM isn't a thing because it's not complete. It's just a mode in IMCC | 21:27 | ||
| it's a subset of PIR | |||
| NotFound | plobsing: looks like I should change 'node' to 'nodejs' in the Makefile to work with the ubuntu package | 21:29 | |
| whiteknight | I'm dispelling the argument that without PIR we would be stuck with PASM | ||
| I say we bundle the two of them up with tape and throw them both out the window | |||
|
21:30
whiteknight left
|
|||
| Coke | *sigh* | 21:30 | |
| plobsing | NotFound: yes, sorry. I'm not really good with this whole configuration thing. | ||
| NotFound | plobsing: stage1.winxed lacks a newline before eof | 21:34 | |
| plobsing | NotFound: is that a problem? | 21:35 | |
| NotFound | plobsing: not for winxed, but it may fool some tool. | ||
| plobsing | it will have a newline at the end of the file once I implement the coda | 21:36 | |
| NotFound | In a quick look, generated pir looks good, I don't see obvious targets for optimizations. | 21:38 | |
| plobsing | yeah, it looks pretty sweet. other than the massive amount and depth of closures generated | 21:39 | |
| (closures are serialized *very* inefficiently in PBC ATM) | |||
| | Sub1 | Sub2 -> Sub1 | Sub3 -> Sub1 | Sub2 and Sub3 each store their own complete copy of Sub1 | 21:40 | ||
| as depth of these trees increases, this becomes quite costly | 21:41 | ||
| NotFound | Having code that makes deep use of them may motivate someone to improve it. | 21:42 | |
| plobsing | nqp and rakudo already do that. | 21:43 | |
| the result was we spent a lot of time making those deserializations really fast | |||
| NotFound | But nqp generated pir is harder to read ;) | ||
| plobsing | in stead of addressing the underlying problem | 21:44 | |
| NotFound: that's why we had no idea what the problem was | |||
| NotFound | stage1.winxed has 448 lines, You didn't said soemthing about 4.000? | 21:45 | |
| plobsing | run gnu indent | ||
| many of those lines are *very* long | |||
| and impossible to read | |||
| indent does a decent job, although it mangles some of it (eg: ===) | 21:46 | ||
| NotFound | Oh, the last line has 66244 characters :o | ||
| 66224 | |||
| plobsing | how much can you get done in a single line of winxed? depends on how long the line is. | 21:47 | |
| NotFound | That's the beauty of free-format languages ;) | ||
|
21:56
Yuki`N joined
|
|||
| rfw | how do i test set_pmc? | 22:00 | |
| plobsing | IIRC, setref and deref make use of them | 22:02 | |
| Yuki`N | Protip: grep -r set_pmc src/ops | 22:08 | |
|
22:08
fperrad left
|
|||
| NotFound | I like the trick ecmascript 5 is going to use for the "use strict" pragma: a string in void context. Maybe I can use that trick for some winxed thing. | 22:09 | |
| plobsing | it is cute. However, you aren't bound by strict backwards compatability yet. You can add whatever syntax you like for a while yet. | 22:10 | |
| and you just got strings working in void context today, so arguably, they aren't even backwards compatible yet | 22:11 | ||
| NotFound | plobsing: yes, but I prefer to borrow familiar looking ways when possible. | ||
| sorear | NotFound: "going to use"? It's already in the published standard | 22:12 | |
| Yuki`N: grep -r wastes a lot of time if you have object files or generated .c files lying around | 22:13 | ||
| NotFound | sorear: yeah, but until web programmers get used to it, decades may pass. | ||
| sorear | Yuki`N: you're better off using git-grep or ack | ||
| plobsing | we even have an explicit tool to search the ops in tools/dev | 22:14 | |
| Yuki`N | Lol really. | 22:18 | |
| Coke | plobsing: yah, that always seemed like a waste to me. | ||
| plobsing | what's the point of good tools if nobody knows about them, can't remember about them when they could use it, or could just cook something up on the spot quickly to replace it? | 22:20 | |
| Yuki`N | There's a bunch of unused C functions in the BigNum PMC. | 22:22 | |
| What do I do? | |||
| It's technically impossible to cover them. | |||
| plobsing | do I hear a chainsaw? | 22:24 | |
| NotFound | Yuki`N: that's one of the points of improving coverage: identifying unused code. | ||
| Yuki`N | Ah. | 22:25 | |
| NotFound | My first contributions to parrot were code deletions X-) | 22:26 | |
| Yuki`N | I'll submit a pull request without the code deletions. | ||
| Up exactly 30%, from 59.9% to 89.9% | |||
| rfw | how do i test the i_ functions? | 22:27 | |
| like i_add | |||
| Yuki`N | P0 = new ['Integer'] | 22:28 | |
| $P0 = 0 | |||
| add $P0, 5 | |||
| That's i_add | |||
| There should be a $ in the first line; I'm still in PASM mode. | |||
| NotFound | Better use .local instead of PIR registers. | 22:29 | |
|
22:29
Kristaba left
22:31
Tene left
|
|||
| Yuki`N | True. | 22:31 | |
| github.com/parrot/parrot/pull/35 my pull request | |||
|
22:31
Tene joined
|
|||
| Yuki`N | I wonder why stringifying BigNums is such a broken thing. ;-; | 22:34 | |
| sorear | because nobody uses BigNum | 22:38 | |
| NotFound | Yuki`N: usually uncovered by tests => no one has used it => lots of undiscovered bugs | 22:39 | |
| Yuki`N | Oh. | ||
| sorear | also, BigNum is only semi-randomly present in Parrot | ||
| so nobody *can* rely on it | |||
| NotFound | This week I fixed a segfault bug in Namespace, no less. | ||
| sorear | (it depends on whether the End User installed libgmp-dev before Parrot, which is something HLL devs can't control at all) | 22:40 | |
|
22:40
Tene left
|
|||
| plobsing | plumage would be able to take care of these things | 22:41 | |
| HLLs put a dependancy on BigNum, then plumage tries to get it, BigNum fails to build informing user of how and why. | 22:42 | ||
| NotFound | Yuki`N: we looks for slaves^h^h^h^h^h^hvolunteers to improve coverage because of that. | ||
| Talking about plumage: "Failed to parse metadata file 'metdata/winxed.json': Invalid character in ASCII string" | 22:49 | ||
| dalek | nxed: r719 | NotFound++ | trunk/ (3 files): update installable files |
22:50 | |
| NotFound | plumage fails to set ut8 encoding for reading json files. | 22:51 | |
| plobsing | seriously? | 22:52 | |
| NotFound | And my name is Julián, with aacute | ||
| plobsing: yes, I've seen it right now with parrot master | |||
| plobsing | looks like Ωη;)XD isn't getting into current plumage then | 22:53 | |
| NotFound | Probably the changes in charset/encoding handling broke it recently. | ||
|
23:01
Yuki`N left
23:07
Tene joined
|
|||
| cotto_work | I love that gists can be used as git repos. | 23:22 | |
| Tene: ping | 23:24 | ||
| Tene | cotto_work: pong | 23:25 | |
| cotto_work | Tene: do you know about how Scheme people get nice backtraces with tailcall optimization? | ||
| Tene | cotto_work: I know absolutely nothing about scheme implementations. All I've ever done with scheme is write a Parrot compiler for it. | 23:26 | |
| cotto_work | ok | ||
| Tene | Sorry. :) | ||
| cotto_work | np | ||
| Kapace_ | fbrito: at home now, brand new clone of master, make test -> passes. make cover... make test now fails | 23:28 | |
|
23:29
rfw left,
dmalcolm left,
particle left,
Coke left,
ingy left,
ttbot left,
slavorg left,
edenc left,
perlite left,
hercynium left,
bacek left,
cosimo left,
cognominal left,
wagle left,
Kulag left,
jsut_ left,
TonyC left,
nopaste left,
spinclad left,
cotto_work left,
frodwith left,
dukeleto left,
treed left,
Maddingue left,
jnthn left,
athomason left,
sri left,
mikegrb left,
Tene left,
theory left,
mtk left,
mikehh left,
dip left,
Kapace_ left,
preflex left,
pmichaud left,
atrodo left,
janus left,
szabgab left,
szbalint left,
jasonmay left,
PacoLinux left,
PerlJam left,
moritz left,
mj41 left,
zostay left,
knewt left,
cxreg left,
cotto left,
fbrito left,
Khisanth left,
slavorgn left,
he_ left,
sorear left,
Util left,
tadzik left,
krunen left,
TimToady left,
TiMBuS left,
dalek left,
p6eval left,
Kapace left,
Hunger left,
jhelwig left,
NotFound left,
arnsholt left,
GeJ left,
rblackwe left,
autark left,
elmex left
23:34
bluescreen left
23:36
bluescreen joined,
Tene joined,
theory joined,
perlite joined,
hercynium joined,
rfw joined,
bacek joined,
mtk joined,
cotto joined,
fbrito joined,
cosimo joined,
dmalcolm joined,
particle joined,
cognominal joined,
wagle joined,
Kulag joined,
mikehh joined,
Coke joined,
jsut_ joined,
dip joined,
Khisanth joined,
Kapace_ joined,
TonyC joined,
nopaste joined,
ingy joined,
slavorgn joined,
preflex joined,
he_ joined,
pmichaud joined,
ttbot joined,
slavorg joined,
sorear joined,
Util joined,
edenc joined,
atrodo joined,
tadzik joined,
krunen joined,
spinclad joined,
janus joined,
szabgab joined,
TimToady joined,
szbalint joined,
jasonmay joined,
cotto_work joined,
TiMBuS joined,
dalek joined,
p6eval joined,
PacoLinux joined,
Kapace joined,
Hunger joined,
jhelwig joined,
PerlJam joined,
moritz joined,
frodwith joined,
mj41 joined,
treed joined,
zostay joined,
NotFound joined,
arnsholt joined,
GeJ joined,
rblackwe joined,
autark joined,
dukeleto joined,
elmex joined,
Maddingue joined,
jnthn joined,
knewt joined,
cxreg joined,
sri joined,
athomason joined,
mikegrb joined
23:38
whiteknight joined
23:42
sjn joined
|
|||
| NotFound | Tene: But if you are saving some reference to the object you want to optimize out to in order to preserve it, what's the point? | 23:45 | |
| Tene | NotFound: If the backtrace includes that information, then the information obviously is saved somewhere. | 23:46 | |
|
23:47
rfw left
|
|||
| NotFound | Maybe it only saves references up to some maximum value. | 23:49 | |
| Tene | Given that I don't know what information is actually presented in the backtrace, I can't really guess further. :) | 23:50 | |
| Kapace_ | whiteknight: I need some help, make test passes fine on clean master clone. make cover; make test now fails. | 23:52 | |
| dpaste.com/287166/ failure, I can't figure out why these pass fine on first make test, but not after make cover | |||
|
23:57
kid51 joined
|
|||