|
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. |
|||
| Kapace_ | io.t:474: $I0 = $P0.'tell'() seems to be the problem, it returns zero | 00:05 | |
|
00:06
rfw joined
|
|||
| Kapace_ | can anyone else make cover; make test? | 00:12 | |
| kid51 | Kapace_: Just coming on channel. Where is this code? What is the problem? | 00:15 | |
| kid51 is working on developing 'make quickcover' | |||
| Kapace_ | kid51: after I make cover; make test fails | 00:16 | |
| however, on clean clone, make test passes | |||
| kid51 | i.e, you are running 'make test' explicitly after running 'make test'? | ||
| sorry | |||
| i.e, you are running 'make test' explicitly after running 'make cover'? | |||
| Kapace_ | yes | 00:17 | |
| (the test fails in make cover as well, i believe) | |||
| kid51 | ok, this is what I think you should do first | ||
| 'make cover', as currently constructed, is more or less the same as 'make fulltest' | |||
| 'make fulltest', in turn, runs the standard test suite on various 'runcores': make testb; make testr; etc; | 00:18 | ||
| See Makefile or config/gen/makefiles/root.in for list of target subsumed in 'fulltest' | |||
| What is happening is that a test which is passing under our *regular* core is failing under one of the *alternate* cores. | 00:19 | ||
| This is not infrequent. | |||
| It was happening to whiteknight in embed_api2 branch earlier this week. | |||
| So, I think you should do: | |||
| make realclean | |||
| perl Configure.pl | |||
| script # to record your session | 00:20 | ||
| make fulltest | |||
| Ctrl-D to stop script | |||
| grep -n FAIL typescript | |||
| And identify the specific make target under which your file is failing. | 00:21 | ||
| Kapace_ | cool, never heard of script before.. learn somethig new | ||
| kid51 | The file is being run more than once. | ||
| man script | |||
| I've only started to use it extensively myself in the past weeks. | |||
| Kapace_ | i will | ||
| rfw | kid51: could you take a look at www.google-melange.com/gci/task/sho...9228633715 | 00:22 | |
| i increased coverage by 9.something% though | |||
| kid51 | rfw: I'd like to have cotto or another dev look at that | 00:24 | |
| rfw | ah okay | ||
| i'll wait for cotto | |||
| kid51 | Believe it or not, you probably now know more about writing tests in PIR than I do ... | ||
| rfw | haha | ||
| kid51 | ... so while I congratulate you on boosting the code coverage, I can't really QA the test code itself ... | 00:25 | |
| ... but there are many who can. | |||
| rfw | ah okay | ||
| kid51 | In short, diagnose the test failure before running coverage analysis | 00:31 | |
| (that was for Kapace_) | 00:32 | ||
| Kapace_ | heh, ok, running fulltest, taking forever... | 00:33 | |
| kid51 | Yes, it does. But in the week before a release (which is what we're in now), we try to run it on all platforms. | ||
| Kapace_ | you'll need that whole week :P | 00:34 | |
|
00:36
fbrito left,
hercynium left
00:41
Yuki`N joined
|
|||
| Kapace_ | kid51: :( script; make fulltest; CTRL-D script dies... grep -n FAIL typescript -> nothing | 00:52 | |
| i have a hunch that make cover fudges up the config for some reason, im going to try commenting that line out in the makefile. | 00:53 | ||
| cotto_work | Kapace_: it does. It adds some flags to gcc so that binaries will spit out profiling information. | 00:54 | |
| rfw | cotto_work! | ||
| are you free? | |||
| kid51 | cotto_work: Which makes this a very subtle bug! | ||
| cotto_work | fsvo free. I'll take a look at your pull request. | ||
| rfw | ah tnhanks | 00:55 | |
| cotto_work | rfw: why does your pull request have some of the frontend changes? | ||
| rfw | cotto_work: oh | ||
| i think that was from stuff that was left over in my fork | 00:56 | ||
| not sure why | |||
| Yuki`N | cotto_work, could you take a look ay my pull request as well? | 00:57 | |
|
00:57
theory left
|
|||
| cotto_work | I can't guarantee right now, but I'll get it before I go to bed. | 00:57 | |
| cotto_work wonders what get_string_keyed is doing in BigInt | 00:58 | ||
| headdesk | |||
| That's .... | 00:59 | ||
| no | |||
| That is not a valid way to return the base n representation of a string. | |||
| I can't fault the test though. | |||
| rfw | cotto_work: is that my fault? | ||
| oh | 01:00 | ||
| :D | |||
| yeah i thought that was really weird too | |||
|
01:00
adu joined
|
|||
| dalek | rrot/tt1893_quickcover: 82d7684 | jkeenan++ | config/gen/makefiles/root.in: Create branch to work on TT #1893: Define a 'quickcover' make target. Prepare |
01:01 | |
| cotto_work | rfw: if you want to indicate failure, use nok("...") | 01:05 | |
|
01:06
ascent joined
|
|||
| rfw | cotto_work: ah, i was just following the formats of the other tests | 01:06 | |
| cotto_work | for comments, use diag("...") | ||
| oh | |||
| I'll need to look at it when I get home. it won't be more than an hour or so. | 01:12 | ||
| rfw | alright | ||
| it should be fine | |||
|
01:18
Coke left
01:19
bluescreen left
|
|||
| Yuki`N | cotto_work, lol it's not my fault someone decided to implement it that way. :3 | 01:24 | |
|
01:26
bluescreen joined
|
|||
| cotto_work | Yuki`N: no. I wouldn't let something outside your control influence your status. | 01:29 | |
| Yuki`N | What shall we do about all that unused code, though? | ||
| Should someone else take a look at it and then chainsaw it out? | |||
| cotto_work | Is the code unreachable? | ||
| The chainsaw is always a possible option. | 01:30 | ||
| Yuki`N | The code is unreachable from PIR. | ||
| dalek | rrot/tt1893_quickcover: f013736 | jkeenan++ | config/gen/makefiles/root.in: More Makefile housekeeping. Name variables holding directories holding tests |
01:31 | |
| Yuki`N | And given they haven't been used I don't think they're referenced elsewhere. | ||
| cotto_work | the BigInt PMC? | ||
| Yuki`N | BigNum. | ||
| rfw is working on BigInt. | 01:32 | ||
| cotto_work | I'll add it to my todo list to look at that and possibly add a chainsaw gci task. | ||
| rfw | yeah i'm doing BigInt | ||
| all of the code is reachable in BigInt | |||
| i haven't written any tests with DEFAULT or FLOAT though | |||
|
01:34
mtk left
01:40
mtk joined
01:44
kid51 is now known as kid51_at_dinner
|
|||
| dalek | rrot/tt1893_quickcover: 9720330 | jkeenan++ | config/gen/makefiles/root.in: For now, remove t/perl/ from COVER_DIRS. |
02:02 | |
|
02:10
dmalcolm left
|
|||
| Yuki`N | Can someone do the task approvals for melange? socghop.appspot.com/gci/task/show/g...9228510453 | 02:11 | |
| cotto_work puts it on his todo list | 02:13 | ||
| Yuki`N | I'll claim and hopefully you can approve three such instances, since I brought it up 30% so far. | ||
| Hopefully by removing unnecessary code I can get the final 10.1% :D | |||
|
02:17
Coke joined
|
|||
| cotto | ~~ | 02:44 | |
| whiteknight, ping | 02:45 | ||
| whiteknight | pong | ||
| cotto | can you take care of a one or two gci task approvals? | ||
| I'll get the rest. | |||
| whiteknight | ok | 02:46 | |
| cotto | thanks | ||
| let me know which you do | |||
| whiteknight | I can't really do any until tomorrow | 02:47 | |
| I have a fussy baby to put down tonight | |||
| cotto | ok | 02:48 | |
|
02:53
whiteknight left
|
|||
| Kapace_ | :( nothing works still... | 03:02 | |
| Coke | Kapace_: what are you working on?\\ | 03:05 | |
| Kapace_ | Coke: I want to try the test coverage increase tasks | 03:06 | |
| but make cover fails to create reports for eventhandler.pmc | |||
|
03:15
adu left
03:22
adu joined
|
|||
| kid51_at_dinner | in the tt1893_quickcover, I, too, am having problems with t/pmc/*.t | 03:22 | |
|
03:22
kid51_at_dinner is now known as kid51
|
|||
| kid51 | t/pmc/io.t and t/pmc/packfile*.t | 03:23 | |
| I suspect some problem with respect to concept of $PWD | |||
| but it's getting late for me, so I won't be able to solve this tonight | 03:24 | ||
|
03:24
arnsholt_ joined
|
|||
| Kapace_ | maybe theres some earlier version that works? | 03:25 | |
| kid51 | But it may also have to do with what gets cleaned. | 03:26 | |
|
03:26
arnsholt left
|
|||
| Kapace_ | :S ? | 03:27 | |
| dalek | rrot/tt1893_quickcover: d017ffa | jkeenan++ | config/gen/makefiles/root.in: Trying to get 'quickcover' target to work. Problems with t/pmc/packfile*.t and |
03:34 | |
| Coke | Kapace_: WFM. | 03:35 | |
| I run make cover, go wait for a pot of water to boil, come back, I have: | |||
| /Users/coke/sandbox/parrot/cover_db/src-pmc-eventhandler-pmc.html | |||
| (which has zero coverage) | |||
| do you have cover_db/ ? | 03:36 | ||
| (and then, cover_db/coverage.html ?) | |||
| I also have: cover_db/src-pmc-eventhandler-c.html , which is probably more interesting. | 03:37 | ||
| Kapace_ | Coke: yes i have cover_db and coverage.html | ||
| but i don't have any info about /pmc/ in coverage.html | 03:38 | ||
|
03:38
TypeNameHere_____ joined
|
|||
| Coke | what OS, OOC? | 03:39 | |
| kid51 | Aha! The t/pmc/packfile*.t tests are failing even in 'master'! | ||
| So it's probably not my problem! | |||
| Kapace_ | Coke: i don't know what OOC is, but my OS is ubuntu 10.10 | 03:40 | |
|
03:40
khisanth_ joined
|
|||
| cotto | "out of curiosity" | 03:40 | |
| Kapace_ | ah | 03:41 | |
|
03:43
Khisanth left
|
|||
| kid51 | Getting inconsistent results; sometimes t/pmc/packfile*.t passing, sometimes not | 03:45 | |
| Kapace_ | hmmm | 03:46 | |
|
03:46
Yuki`N left
|
|||
| Coke | Kapace_: if I think of it, I'll try again on my ubuntu 10.10 laptop tomorrow. | 03:48 | |
| Kapace_ | ok, what OS are you running Coke ? | ||
| (maybe I should custom build some packages? (specifically libdevel-perl-tools or whatever)) | |||
| kid51 | This is very strange. When I say 'make clean;make test', the t/pmc/packfile*.t tests pass. | 03:56 | |
| But when I say 'make realclean;perl Configure.pl;make;prove t/pmc/packfile*.t', the tests fail. | |||
| Kapace_ | kid51: sounds similar to my problem | 03:57 | |
| ill try to reproduce ^ | |||
| kid51 | And this is independent of any attempts at make cover | ||
| Oh, wait a minute. | 03:59 | ||
| There's that weird target: pbctestfiles | |||
| That's probably what I'm missing. | |||
|
04:02
Andy left
|
|||
| kid51 | Yes, that's it: make pbctestfiles; prove t/pmc/packfile*.t | 04:03 | |
| Will implement that in the quickcover branch tomorrow. | |||
| kid51 must sleep | 04:04 | ||
| Kapace_ | night kid51 | ||
|
04:19
kid51 left
04:31
khisanth_ is now known as Khisanth
04:33
theory joined
04:59
fbrito joined
|
|||
| fbrito | tadzik: ping | 05:01 | |
| Kapace | hey fbrito, make cover works on your 9.10 install? | 05:05 | |
| fbrito | Kapace yes | 05:06 | |
| Kapace considers making a ubuntu 9.10 virtual machine | |||
| cotto | fbrito, if you're pinging tadzik about your pull request, I'm looking it over now. | ||
| fbrito | cotto: oh, thank you :) | ||
| Kapace do you want me to run them for you? | 05:07 | ||
| Kapace | I'm not sure, maybe I should first learn how to increase the code coverage :P | ||
| see how it goes | |||
|
05:09
fbrito1 joined
05:13
fbrito left
05:14
fbrito joined
05:16
fbrito1 left
|
|||
| cotto | fbrito, how did you get the numbers you used in the Complex tests? | 05:18 | |
| fbrito | cotto WolframAlpha. www.wolframalpha.com/input/?i=acosh(2-3i) | 05:19 | |
| cotto | Great. I just wanted to be sure you didn't use the implementation to verify itself. | 05:20 | |
| dalek | rrot: b7dbe46 | cotto++ | t/pmc/complex.t: Merge branch 'fernandobrito-gci_tests' |
05:21 | |
| cotto | gci task completed | 05:22 | |
| fbrito | yay! thank you! | 05:23 | |
| Kapace | where does one start for the code coverage tasks? | 05:24 | |
| fbrito | Kapace search for your file here: tapir2.ro.vutbr.cz/cover/cover-resu...1/c_cover/ | 05:25 | |
| look which lines/functions are not covered and write tests for them | |||
| cotto | fbrito, you're welcome. Sorry our response times are a bit slower than last week. | ||
| Kapace | ah, makes sense, thanks again fbrito | ||
| fbrito | what are you going to cover? bigint? | 05:27 | |
| Kapace | i plan to do eventhandler | ||
| fbrito | ah, ok | ||
| hm, interesting | 05:28 | ||
| there are some PMCs that have 2 or more test coverage tasks on GCI (like BigNum) | 05:30 | ||
| students are probably going to write duplicated tests while doing those different tasks at the same time | 05:31 | ||
| Kapace | yeah, thats what i was thinking | 05:32 | |
| dalek | rrot: 0f5d800 | cotto++ | / (2 files): Merge branch 'master' of github.com/nol888/parrot into nol888-master |
05:37 | |
|
05:44
TypeNameHere_____ left
|
|||
| dalek | rrot: 9c33e67 | cotto++ | / (2 files): Merge branch 'master' of github.com/rofflwaffls/parrot into rofflwaffls-master |
05:45 | |
| cotto | fbrito++ for taking on the parrot-commits task | 05:50 | |
| fbrito | cotto :D. I am still doing some research on that :) | 05:52 | |
| I saw that GitHub post-receive hook is actually just a POST request to some URL, right? | 05:53 | ||
| cotto | fbrito, yes | ||
| you can set up a dummy repo for testing or use any that you have an admin bit for | 05:54 | ||
| If your perl skills are ok, it shouldn't be too much effort. I don't think Tie::Function is actually required. You can delete that to cut down the dependencies. | |||
| fbrito | it seems like a interesting task :). I will let you know if I find any problem | 05:56 | |
| cotto | ok. | ||
| fbrito, do you know what I mean by an auth token? | 06:00 | ||
| fbrito | pass a random string as a parameter in the URL so "bots" won't be able to send POST requests? | 06:01 | |
| cotto | predetermined, but yes | ||
| fbrito | yes, that's what I tried to say :D | ||
| cotto | brain not want think | 06:05 | |
| sorear | fbrito: What are you doing with post-commit!? | 06:09 | |
| fbrito | sorear: a GCI task: www.google-melange.com/gci/task/sho...9202922193 | ||
|
06:09
theory left
|
|||
| cotto | jnthn, ping | 06:11 | |
| sorear | fbrito: why aren't you looking at github.com/sorear/dalek-poller/blo.../push.psgi ? | 06:12 | |
| fbrito | sorear: does it send the diff with the changes made on each line? | 06:13 | |
| sorear | no, but it does use the github API to get details | 06:14 | |
| fbrito | hm, interesting! I will take a look on it. thank you for the information :) | 06:16 | |
| Kapace_ | so I made a virtual machine called "ARGH!", boot to 9.10 live | 06:19 | |
| sudo apt-got git, and git clone parrot, only to have it fail... | |||
| i think some greater force is against me | 06:20 | ||
| or maybe i should use the git:// protocol on older git... | 06:22 | ||
| fbrito | "git clone github.com/parrot/parrot.git" is failing? | 06:24 | |
| Kapace_ | yeah | ||
| bad luck strikes again: make test fails out of the box... | 06:41 | ||
| Kapace_ offers free ssh access to a virtual box running 9.10 | 06:50 | ||
| the only catch is you have to get parrot make cover working :P | |||
| I have to be doing something wrong... I'm seeing the exact same failures... | 06:55 | ||
| sorear | gimme | 06:58 | |
| ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAntjvyZL0O5p5bwmeWL9kfaGsEb/J1BprShmo0q+nJ9XuaHjCQOj5+olJR4mYBEdhDvYpNooWe6Qg0TBqgGJN5OnrKnhdDPSBpv9mYmn3DDolbwr8yMvHTe22MaqjrXCD6Fsc7xfR9Tt5wzEMi+y+ZjdExxeCvXwL8GJp0APaqhtOUYyOsQQLzqrhYsnv5k4cZD0t2Uv1euedPR1x/cltPOTpplogZv7L12tF5+1wYq6U2HjtYbkqpJXSU3L0zdXOy8MEret4fCwOYIWEBHJgVCDMDJDlzNH3dLAH+1LLMqLB3Eo6xN5tHwKrvT3zxn1xIVMKEShdDMtwQP1LEB11Hw== stefan@stefans | |||
| Kapace_ | sorear: ok, give me some time to set this whole deal up | 06:59 | |
| (I wasn't really expecting someone to accept the offer) | 07:00 | ||
|
07:00
Khisanth left,
Khisanth joined
|
|||
| Kapace_ | erm, my ssh-fu is weak, how do I add that key? just cat > .ssh/authorized_keys? | 07:05 | |
|
07:10
fbrito left
|
|||
| sorear | yes | 07:11 | |
| you may also need to fiddle permissions on the file | |||
| also give me a publically routable IP address | |||
| also I don't guarantee success :p | 07:12 | ||
| Kapace_ | cool. good enough :P | 07:13 | |
|
07:17
fbrito joined
|
|||
| sorear | so I'm on Kapace_'s VM now | 07:32 | |
| Configure, make goes normally | |||
| but "make cover" triggers a reconfigure | |||
| sorear goes digging in the makefile | |||
| cotto | it should | ||
| sorear | why? | 07:33 | |
| Kapace_ | cotto said earlier that it makes gcc spit out code coverage information | ||
| cotto | it reconfigures with some extra gcc flags to enable profiling | ||
| sorear | also, killing make leaves configure running in the background, as if either make or Configure is calling setpgrp for some braindead reason | 07:34 | |
| Kapace_ | Ill be sure to write that in the make cover documentation (if such a task will exist) | 07:35 | |
| sorear | are you with gci? | ||
| Kapace_ | yes | ||
| that why i need this to work so badly | |||
| cotto | yeah. Configure.pl isn't very good at getting killed. | 07:36 | |
|
07:39
fbrito1 joined
|
|||
| sorear | "t/op/jit"? Really? | 07:39 | |
|
07:41
fbrito left
|
|||
| sorear | so apparently Kapace_ can't get cover output for ANY pmc | 07:47 | |
|
07:54
fperrad joined
08:11
fbrito joined
08:14
fbrito1 left
08:17
fbrito left
08:19
fbrito joined
08:26
fbrito1 joined
08:28
fbrito left
08:35
fbrito joined
|
|||
| Kapace | in end the sorear found that in the VM make cover does make reports for the pmc's, i still can't figure out why my real pc doesn't make cover for any pmcs, but works anyways.. | 08:36 | |
| night o/ | |||
|
08:37
fbrito1 left
08:38
Zaur joined
08:47
khisanth_ joined
08:51
fbrito1 joined
08:52
fbrito left
08:53
Khisanth left
09:03
khisanth_ is now known as Khisanth
09:07
adu left
09:14
rfw left
09:21
mtk left
09:25
mtk joined
09:40
fbrito1 left
09:47
GreenZED joined,
GreenZED left,
GreenZED joined
09:48
GreenZED left
09:52
Zaur left
|
|||
| dalek | rrot: a66db30 | NotFound++ | t/pmc/bigint.t: fix skipping of BigInt tests |
09:55 | |
| tadzik | bah, me and fbrito are always elsewhere | 10:32 | |
| dukeleto: ping | 10:46 | ||
| cotto: ping as well | 10:50 | ||
|
11:03
AzureSto_ joined
11:06
AzureStone left
11:33
contingencyplan left
11:58
janus left,
janus joined
|
|||
| dukeleto | ~~ | 12:58 | |
|
13:37
mtk left
13:39
smash joined
|
|||
| smash | hello everyone | 13:39 | |
| plobsing | <crickets> | 13:50 | |
| atrodo | Yay for snow day | 13:53 | |
|
14:01
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 14:03 | |
| tadzik | hello everyone | 14:10 | |
| dukeleto: is this www.google-melange.com/gci/task/sho...9193205977 task about Complex, or Iterator? | 14:11 | ||
| whiteknight | tadzik: that task was about Iterator | 14:12 | |
| tadzik | well, the description talks about Complex | 14:13 | |
| whiteknight | oh, probably a bad copy+paste job | 14:22 | |
| t/pmc/socket.t is aborting without an error message on Win64 | 14:52 | ||
| that makes me a sad panda | |||
| dalek | rrot/gci_french_readme: 8f5c32f | nwellnhof++ | src/string/encoding/ucs4.c: [str] Hopefully fix UCS-4 test failure discovered by whiteknight++ |
14:53 | |
| rrot/gci_french_readme: 17ce365 | (Lļæ½o Grange)++ | / (136 files): Merge remote branch 'parrot_origin/master' |
|||
| rrot/gci_french_readme: 764e225 | (Lļæ½o Grange)++ | README.francais: Add the french README translation |
|||
| rrot/gci_ptBR_readme: 0e4a95c | fbrito++ | README.pt-BR: [doc] Add pt-BR README translation |
14:55 | ||
| rrot/gci_ptBR_readme: 90f9db5 | fbrito++ | README.espanol: [doc] Fix mistakes README.espanol |
|||
| rrot/gci_ptBR_readme: 933635d | fbrito++ | README.deutsch: [doc] Fix mistakes README.deutsch |
|||
| rrot/gci_ptBR_readme: a0ed8fa | fbrito++ | README.pt-BR: [doc] Fix typo in README.pt-BR |
|||
| rrot: d2fad27 | NotFound++ | t/pmc/namespace.t: some tests for Namespace inspect_str vtable |
14:56 | ||
| whiteknight | I have no idea why that nwellnhof commit ended up on that branch | 14:58 | |
| NotFound | Merging from master? | 15:03 | |
|
15:04
Andy joined
|
|||
| dalek | rrot: 2b387fd | NotFound++ | runtime/parrot/library/Test/More.pir: make output of Test;More throws_type a bit cleaner |
15:05 | |
| plobsing | NotFound: I have more winxed issues for you. The only blocker for me is the exceptions one, which unfortunately is probably the hardest to solve. | 15:07 | |
| NotFound | plobsing: I've seen them, thanks. | 15:08 | |
|
15:08
mtk joined
|
|||
| NotFound | plobsing: the exception will be easy for simple usages (I hope you don't abuse goto) | 15:08 | |
| plobsing | no goto here. I do have return statements in try blocks though | 15:09 | |
| NotFound | No problem with return, the context handling take care,. | ||
| whiteknight | Winxed has goto? | 15:12 | |
| NotFound | Ofcoz | 15:14 | |
| plobsing | NotFound: what about tailcalls? I suspect that would break the context handling. | 15:15 | |
| NotFound | plobsing: a good question, don't know if parrot has some issue with that. | 15:16 | |
| whiteknight | in soviet russia, context handling breaks you | ||
|
15:16
fbrito joined
|
|||
| plobsing | btw, I'm not only finding winxed bugs. I also found a parrot bug, but have so far been unable to produce a paired down testcase. | 15:17 | |
| tailcalls into native PMC methods *sometimes* don't return properly | |||
|
15:18
JimmyZ joined
|
|||
| NotFound | There is also a ticket about tailcall to coroutines | 15:18 | |
|
15:19
JimmyZ left
|
|||
| moritz thought that the point of tailcalls was not to return | 15:20 | ||
| though you probably meant "invoke the next continuation" | 15:21 | ||
| plobsing | the point of tailcalls is not to return to the point of call, but rather to the caller of the point of call | 15:22 | |
| so there is a return | |||
| dalek | nxed: r720 | NotFound++ | trunk/winxedst1.winxed: code generation for Try blocks in stage 0 lacked a pop_eh in stage 1, Issue 10, |
15:23 | |
| NotFound | plobsing: See? Fairly easy :) | ||
| plobsing | NotFound: for the trivial cases (which mine are, modulo the tailcall case), yes. nicely done. | 15:24 | |
| btw, I'm fine with goto not playing nice with try-catch. if you play with fire... | 15:25 | ||
| NotFound | The commit message looks a lot less clear than I've tought. | ||
| The pop_eh was alredy present in stage 0, don't know why I forgot it in stage 1. | 15:26 | ||
| plobsing: Do you want to re-open classes? You risk to upset Stroustrup! ;) | 15:30 | ||
| plobsing | I think my views on the quality of that man's work or well known at this point. | 15:31 | |
| s/or/are/ | |||
| whiteknight | plobsing: you not a C++ fan? | ||
| NotFound | There is no "thinking about it" status in google code issues? | 15:33 | |
| plobsing | whiteknight: given how many times i've broken the C++ build, my cynical remarks in comments and commit messages, I would have hoped that much was clear. | ||
| moritz | plobsing: in all fairness one has to admit that stroustrup did admit later on that some of the design decisions were errors, or that others convinced him against his better judgement | 15:34 | |
| whiteknight | plobsing: Sorry. I'm very dense. I also don't read a whole hell of a lot of commit messages | 15:36 | |
| NotFound | "The Design And Evolution of C++" is a great book. | ||
| plobsing | C++ makes people do crazy things. Like the cast I removed in 5c746dba12f7d893e54db700ad2ef08b1f9ad925. | 15:37 | |
| NotFound | plobsing: yeah, crazy things like winxed. | 15:38 | |
| plobsing | NotFound: while I dislike your methods, I cannot argue with your results ;) | 15:39 | |
|
15:40
Patterner left
|
|||
| NotFound | Don't tell me you don't like my Infinite Memory GC ;) | 15:40 | |
| plobsing | NotFound: if I say I like it, will you supply me with a real turing machine so I can actually run it? | 15:42 | |
| NotFound | plobsing: I mean, the one winxed stage 0 uses. A GC implemented in 0 LOC | ||
| plobsing | there is some beauty in its simplicity | 15:43 | |
| whiteknight | Does anybody here have a feather account? | 15:44 | |
| moritz raises both tentakles | |||
| aka "yes" | |||
| whiteknight | moritz: privmsg | 15:45 | |
| NotFound | plobsing: how pressing is Issue 11? Do you expect noticeable speed or memory gains? | 15:46 | |
| For Ohm-eta..., I mean. | 15:47 | ||
| plobsing | NotFound: many Ωη-generated rules end in such statements, so it could conceivably speed it up. but its not pressing. | 15:48 | |
| the winxed version doesn't work for anything but the most trivial rules (I can recognize sequences without alternations) | 15:49 | ||
| NotFound | I'll take a look and see how hard it may be. | ||
| plobsing | I just logged it because I noticed it in the generated PIR | ||
|
15:49
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
| whiteknight | who do I talk to about getting a feather account, Juerd? | 15:50 | |
| plobsing | basically, at this point, Ωη is a very inefficient recursive equality evaluator. | ||
| moritz | whiteknight: yes | ||
| whiteknight: www.mail-archive.com/perl6-language...20060.html | |||
| whiteknight | moritz++ | 15:52 | |
| NotFound | plobsing: about Issue 12, I disagree with the example code. You are declaring a in a inner scope, so its meaning in some outer scope is overriden. | 15:56 | |
| plobsing | NotFound: what? where is the inner scope? | 15:58 | |
| NotFound | plobsing: the function body. | ||
| plobsing | NotFound: that's not the problem | ||
| result is never declared anywhere | 15:59 | ||
| NotFound | plobsing: yes, I said I disagree with the example, not with the problem. | ||
| plobsing | ok, so if I change the variable name to b, so it doesn't conflict with the function name, would that be acceptable? | ||
| NotFound | NM, I mentioned it just to clarify the intention. | 16:00 | |
| plobsing | the aliasing was not intentional | ||
| NotFound | The problem exists, is a remaining of the ultra-simplified way I used for the first versions. | 16:01 | |
| plobsing | all my tests with tailcalls in try actually work. I'm shocked. Someone actually thought this through apparently. | 16:03 | |
|
16:03
Zaur joined
|
|||
| NotFound | That may explain why tailcall is unable to do infinite recursion. | 16:03 | |
| plobsing | it's not a bug, it's a feature! | 16:05 | |
| moritz seems to recall that Tene++ did a lot of work on the exception system | |||
| NotFound | The exception system is working well... if you use finalize appropiately. | 16:06 | |
| plobsing | NotFound: speaking of which, what are your thoughts on finally blocks? | 16:07 | |
| whiteknight | we need to do a hell of a lot more work on the exceptions system | 16:09 | |
| NotFound | plobsing: I've not yet had an idea for a solid implementation. | ||
| whiteknight | I was hoping we could have fixed exceptions and exception handlers so they were subclassible by 2.11, but the merge on Tene's branch was way too messy | ||
| NotFound | whiteknight: I think that in order to solve subclassing PMC the attribute handling may need some reworking. | 16:10 | |
| plobsing | NotFound: (SFAICT) they aren't strictly necessary, being emulatble with catch blocks (unless you start getting into resumable exceptions) | 16:11 | |
| just nice sugar | |||
| NotFound | plobsing: not so esasy, if you want to take into account return inside try blocks. | 16:12 | |
| plobsing | ah. hadn't thought of that. trick, tricky. | 16:13 | |
| NotFound | Well, you can throw a control exception, but that's not the winxed way. | ||
| moritz again wonders why things are so hard that should be really easy in CPS | |||
| whiteknight | Notfound: yes, that's part of the reason why subclasses don't work. Need to use the GETATTR stuff to access them instead of pointers | 16:14 | |
| plobsing | moritz: why should exceptions be easy in CPS? most designs for such systems are for stack-based systems. | ||
| NotFound | whiteknight: thet GETATTR stuff, even if used pervasively, is not enough | 16:15 | |
| moritz | plobsing: because it's just an invoke | ||
| NotFound | whiteknight: it doesn't play nice with non pir'able types. | ||
| moritz | plobsing: and so is return() | ||
| plobsing | moritz: in theory / in practice | 16:16 | |
| moritz | I know that you have to find the continuation you want to invoke | ||
| if theory and practice differ much more than that, something smalls foul | 16:17 | ||
| plobsing | and therein lies the rub. those continuations exist on a side-stack (is it a tree in parrot?), which must be maintained separately. | ||
| NotFound | plobsing: each context has its own handlers. | 16:19 | |
| plobsing | oh. cool. | 16:20 | |
|
16:23
dmalcolm joined
16:25
Zaur left,
contingencyplan joined
16:30
fbrito left
16:31
kennym joined
|
|||
| kennym | can some please tell me what "PMC" stands for? | 16:35 | |
| s/some/someone | |||
| moritz | Parrot Magical Cookie | 16:36 | |
| basically an object | |||
| kennym | moritz: so is the documentation wrong? docs.parrot.org/parrot/latest/html/...o.pod.html | ||
| PMC stands for Polymorphic Container | 16:37 | ||
| whiteknight | moritz: we revised that | ||
| it's "Polymorphic Container" now | |||
| moritz | kennym: I'm just old fashioned | ||
| it used to be "parrot magical cookie", and I liked it | |||
| kennym | well, but it's basically just an object, right? | ||
| whiteknight | moritz: it was likable, but nobody understood it | ||
| moritz | then somebody decided that it doesn't sound coroporate-y enough | ||
| whiteknight | kennym: right, basically an object | ||
| moritz | so it was changed | ||
| kennym | thanks, you are great guys. | 16:38 | |
| moritz | but I like the cookie better :-) | ||
| whiteknight | moritz: we can create something else and call it a magic cookie | ||
| does Rakudo need magic cookies? | |||
| moritz | it sure does | 16:39 | |
| as long as they are fast | |||
| rakudo needs everything :-) | |||
| plobsing | wow. javascript has really weird order of operations | 16:40 | |
|
16:40
fbrito joined
|
|||
| plobsing | this.input.memo[rule] = memoRec = {ans: this[rule].call(this), nextInput: this.input} | 16:40 | |
| kennym | hi fbrito | 16:41 | |
| plobsing | if the call mutates the 'input' field of 'this', the assignment still operates on the *old* contents | ||
| fbrito | kennym: hello :D | ||
| plobsing | that was causing the packrat-ish stuff in Ωη a lot of grief (because winxed has *sane* order of operations) | 16:42 | |
| kennym | fbrito: how you are doing, you hard worker? | ||
| fbrito | kennym: I am really slow right now. Lots of other things to do | ||
| :( | |||
| plobsing | or am I missing something? | ||
| kennym | well, we will have to work far harder to catch up to you, so you don't have to worry atm. ;-) | 16:43 | |
| fbrito: ^^^ | |||
| NotFound | plobsing: I've heard that this is kinda magical in JS | 16:45 | |
| plobsing | OMeta/JS depends on it. Otherwise, failures propagate all the way to the toplevel due to the way the cacheing works. | 16:46 | |
| (a | b) // if a fails, b will fail because of cached failures in the 'anything' rule from which all rules descend | 16:47 | ||
| NotFound | plobsing: at one time I was considering trying to make winxed somewhat compatible with JS, but when I learnt some details about JS I quckly gave up. | 16:48 | |
| plobsing | yeah. its insane. | 16:49 | |
| NotFound | So don't let the syntactic familiarity fool you. | ||
|
16:56
theory joined
|
|||
| plobsing | NotFound: your recent installer changes break running using $WINXED_PATH | 17:00 | |
| NotFound | Uh? I think I tested that recently... | 17:02 | |
| plobsing | nevermind. I'm an idiot | ||
| NotFound | Doesn't work for --stage=0, though. I should fix that. | ||
| The env var usage, I mean, not the installed dreiver. | 17:04 | ||
| plobsing | paths not set up properly error messages are lta, but i guess winxed isn't quite at that point yet. | ||
| NotFound | Given that no one noticed the plumage problem, I wonder if the work already done pays. | 17:05 | |
| kennym | I just cloned parrot, checked out embed_api2, but there seems to be no src/embed/ folder | 17:08 | |
| have I missed something? | |||
| plobsing | kennym: are you on the right branch? git branch | 17:10 | |
| kennym | plobsing: git branch output: remotes/origin/embed_api2 | 17:11 | |
| I guess that's correct. | |||
| plobsing | wait, you are doing work in a remote branch? that doesn't seem like a good idea to me | ||
| kennym | plobsing: what would you recommend? | 17:12 | |
| plobsing | git checkout -b embed_api2 remotes/origin/embed_api2 | ||
| IIUC, remote branches act as a buffer space for your local branches. Bad Things (TM) happen when they are dirty or out of sync with the remote. | 17:13 | ||
| dalek | rrot: 60b8826 | (Gerd Pokorra)++ | README.deutsch: start of correction |
17:14 | |
| nopaste | "plobsing" at 192.168.1.3 pasted "[OhmEta] working letter or digit recognizer" (9 lines) at nopaste.snit.ch/27172 | ||
| kennym | plobsing: warning: refname 'remotes/origin/embed_api2' is ambiguous. | ||
| plobsing: I checked out master, and ran your command | 17:15 | ||
| plobsing: and that was my output | |||
| plobsing | I usually drop the remotes (but I'm not sure why it doesn't like that) | ||
| as in origin/emed_api2 over remotes/origin/embed_api2 | |||
| I thought the later was simply more explicit | 17:16 | ||
| whiteknight | git checkout git://github.com/parrot/parrot.git | 17:26 | |
| git checkout embed_api2 | |||
| er, the first one is git clone | |||
| dalek | nxed: r721 | NotFound++ | trunk/winxed.winxed: look for stage 0 in WINXED_PATH in non-installed driver |
17:28 | |
| kennym | whiteknight: ok, that worked, too, but I still don't see the src/embed | 17:31 | |
| whiteknight | kennym what does "git branch" output? | 17:32 | |
| should say "* embed_api2" somewhere | |||
| NotFound | git checkout origin/embed_api2 | 17:33 | |
| kennym | whiteknight: yeah it says that | 17:34 | |
| NotFound: that worked! thx | |||
| whiteknight | okay, you have the folder now? | ||
| kennym | whiteknight: yes, it's there | 17:35 | |
| NotFound | kennym: note that this way you are not tracking the remote branch | ||
| whiteknight | okay, let me know when you request a task and I will accept it | ||
| kennym | NotFound: this means `git pull' is worthless? | 17:36 | |
| whiteknight: are you a GCI mentor? | |||
| whiteknight | kennym: yes | ||
| NotFound | kennym: maybe you can still use it, but I'm far from a git expert | ||
|
17:39
fbrito left
|
|||
| kennym | whiteknight: I would like to work on this task : www.google-melange.com/gci/task/sho...9242595808 | 17:39 | |
| NotFound | kennym: www.gitready.com/beginner/2009/03/0...nches.html | ||
| kennym | whiteknight: but I am currently waiting for a review of my current almost finished task | 17:40 | |
| whiteknight | kennym: your current task, is it with Parrot? | ||
| kennym | whiteknight: can you tell me why you marked it as difficutl? | ||
| whiteknight: yes | |||
| whiteknight: "Write a new API function to get a Method from a PMC" | |||
| NotFound: thanks! | 17:41 | ||
| whiteknight | kennym: it might not be really difficult. | ||
| kennym: you're going to have to use pointers and stuff, and many people aren't good with those | |||
| writing a test for it may be tricky | |||
| but it's probably not difficult | |||
| my mistake is your gain :) | 17:42 | ||
| kennym | whiteknight: yeah, let's close one eye on this ;) | ||
|
17:42
hercynium joined
|
|||
| NotFound | This is probaly easy: stackoverflow.com/questions/67699/h...s-with-git | 17:43 | |
| git checkout -b experimental origin/experimental | |||
|
17:46
Util left
|
|||
| kennym | NotFound: that is the best solution, I guess | 17:46 | |
|
17:47
tadzik left
|
|||
| PerlJam | www.youtube.com/watch?v=uguXNL93fWg | 17:47 | |
| cotto | I like that parrot. | 17:48 | |
|
17:51
Util joined
|
|||
| NotFound | kennym: at least the simplest command | 17:53 | |
| Sigh... We don't have better things to do than debating a fucking README file? | 17:57 | ||
| I propos to make the official version in Very Rude Russian | 17:59 | ||
| plobsing | Very Rude Robotic Russian | 18:00 | |
| cotto_work | ~~ | 18:15 | |
|
18:19
smash left
|
|||
| cotto_work | anyone mind if we put a moratorium on new README translation gci tasks? | 18:21 | |
| NotFound | A tanatorium? | 18:23 | |
|
18:26
Kristaba joined
|
|||
| cotto_work | we need aloha back | 18:27 | |
| whiteknight: do you have the tuits to do that before the weekend? | |||
| Kristaba | Good morning/afternoon/evening :) | ||
| cotto_work | Kristaba: happy unbirthday! | 18:30 | |
| plobsing | Kristaba: good 93018161111043490 | ||
| erk. me never remembers how to get unix time. geekiness fail. | 18:31 | ||
| Kristaba | whiteknight: I saw this GCI task, can I ask you some questions about? www.google-melange.com/gci/task/sho...9242595808 ? | 18:38 | |
| whiteknight | Kristaba: sure | ||
| cotto_work: I sent a Juerd a request for a feather account earlier this morning. I'll get aloha set up post-haste when I get the account | 18:39 | ||
| cotto_work | whiteknight: thanks a bunch | 18:41 | |
| Kristaba | I remember of the using of VTABLE_xxx to access to a PMC object method (if my memory still working :p), so I'm asking of what do you would add exactly. 'Simply' a dynamic access to this VTABLE? Or I'm wrong? | 18:44 | |
| cotto_work | btw, I'm keeping my outline for writing about the lorito braindump at gist.github.com/740858 . Suggestions are welcome | ||
| atrodo | cotto_work> line 10 eases my worries a little | 18:45 | |
|
18:46
tadzik joined
|
|||
| cotto_work | keep in mind that it's a very rough draft | 18:46 | |
| whiteknight | Kristaba: VTABLEs are very low-level things. METHODs are different. METHODS are objects | ||
| you can find a method with VTABLE_find_method | 18:47 | ||
| Kristaba | whiteknight: Ok, so methods are the 'high level' PMC object that represent a function of this object? | 18:48 | |
| whiteknight | Kristaba: right. Methods are the thigns that users use. VTABLEs are the things that libparrot uses internally | 18:49 | |
| atrodo | cotto_work> some of it, like line 67, makes me wonder if I am completely off the lorito base | ||
| NotFound | plobsing: date +%s | ||
| atrodo | Also, completely unrelated, I had no idea "weekend at bernies" had a plot | ||
| cotto_work | atrodo: how so? | 18:50 | |
| Kristaba | Ok, it seems interesting, I'm going claim this task ;) | 18:51 | |
| whiteknight | Kristaba: okay, awesome! | ||
| atrodo | cotto_work> maybe not. Once i step back and think about it a different way I can see where you're coming from | 18:52 | |
| cotto_work> so is the idea to use the 6model mop instead of something like P&W? | 18:53 | ||
| cotto_work | atrodo: that's the plan | 18:54 | |
| whiteknight | Kristaba: claim accepted. Good luck! | ||
| atrodo | interesting | 18:55 | |
| whiteknight | atrodo: it's my understanding that the 6model MOP is not super duper different from P&W | ||
| at least, the code I saw was in the same ballpark | |||
| Kristaba | whiteknight: Thank you :) | 18:56 | |
| whiteknight | sorear: ping | 18:57 | |
| plobsing | cotto_work: I retract my statement that factor's alien uses libffi. I was mistaking it for lua's alien. After you look at enough NCI packages, they all start to blurr together. | 18:58 | |
| cotto_work | plobsing: good to know | ||
| plobsing | factor's alien uses their custom dsl/assembler/doohiky, which they also use to implement their core and their JIT | 18:59 | |
| they built their entire system from the ground up | |||
| whiteknight | where do I go to add a new project feed to dalek? | ||
| plobsing | no libffi, no llvm, no libjit, no nothing | ||
| cotto_work | whiteknight: perl6/mu in misc/dalek-config.json | ||
| plobsing | cotto_work: I don't think we're looking to follow in those footsteps | ||
| cotto_work | I don't think we have the expertise to try something like that. | 19:00 | |
| plobsing | they built on the shoulders of giants. forth has a long history of building up ASM using an internal DSL. | 19:02 | |
| however, we'd likely end up standing on the toes of midgets | |||
| whiteknight | poor midgets | 19:03 | |
| The big difference is that we don't have a hell of a lot of super high-quality groundwork to build on | 19:05 | ||
| some of our most basic, fundamental pieces really need to be ripped out and redone | |||
| plobsing | cotto_work: I thought libffi *could* do msvc. It is gcc-specific, but provides thunks to make msvc act like gcc. | ||
| whiteknight | we have to build on our strengths. If the rest of our house was in order, I would say we take the time and try to do our own JIT | 19:06 | |
|
19:06
mtk0 joined
|
|||
| whiteknight | but we just don't have the manpower for that, considering all the other tasks we have ahead of us | 19:06 | |
| cotto_work | Do we want to look at generated C thunks as a long-term solution? | ||
| plobsing | but I disagree that libffi should be in M0. M0 does need native calls, but I think they should be a limited-static version. | ||
| whiteknight | if M0 is based on LLVM, at least initially, let LLVM do the native call stuff for us | ||
| cotto_work | whiteknight: define "based on" | 19:07 | |
| plobsing | whiteknight: yes. and if M0 is compiled down to C, it should look like a C function call. | ||
| atrodo | cotto_work> no | ||
| that is, unless you want to be hostile to non-c libraries | |||
| whiteknight | cotto_work: based-on was the wrong term. "Translated to" is probably better | ||
| plobsing | generated thunks are the only 100% portable solution | 19:08 | |
| cotto_work | whiteknight: that makes me less apprehensive | ||
| whiteknight | if we start with an M0 parser and a backend that converts M0 into LLVM assembly, we're 90% of the way to a working Lorito AND a functioning JIT | ||
| because from there, LLVM can compile to machine code for the Parrot executable itself, or store the LLVM bytecode segments in a lookup table for JIT | |||
| plobsing | cotto_work: your blog post indicates that somehow M0 being of fixed width obsoletes PBC. I can think of at least 2 reasons why we would want to pass ops around at a higher level of abstraction than M0. | 19:11 | |
| whiteknight | M0 is going to have a bytecode format, right? | 19:12 | |
| cotto_work | plobsing: listening | ||
| plobsing | (1) M0 ops are low-level and there will consequently be many of them to perform a useful operation. frequently, the use for bytecode is to *decrease* the size of the program text. | ||
| if I want to only perform predefined sequences of operations, and I have only 255 of these, bytecode can be *very* space efficient. | 19:14 | ||
| this goes double for network transmission, but ram usage is also a concern. | |||
| whiteknight | that's like what PIR/PBC is now. Each PBC op represents a sequence of machine operations | 19:15 | |
| and a huge number of specialized ops makes for efficiently-packed bytecode files | |||
| plobsing | (2) M0 exists bellow the security layer. therefore, any loaded M0 is already trusted. how do you make eg: a browser plugin work with this? | 19:16 | |
| whiteknight | cotto_work: is M0 a human-readable assembly-like language, a machine-readable machinecode-like language, or a 1:1 pair of these? | ||
| cotto_work | in my head, a 1:1 pair | 19:17 | |
| whiteknight | okay, just making sure | ||
| so when we're talking about M0, there's a compiled machine code component | |||
| plobsing: I've been talking for a very long time about macro-like features in M0. A simple compression algorithm could detect repeated sequences of code and assign them to an empty macro-op slot | 19:18 | ||
| that keeps space efficient, and is variable | |||
| plobsing | cotto_work: the way I was envisioning it, we'd have an M1 interpreter in M0, possibly using M12M0+backend for JIT. | 19:19 | |
| cotto_work | whiteknight: I've been thinking about something like that | ||
|
19:19
mtk0 left
|
|||
| whiteknight | this comes in very handy during JIT when we can compile the macro-op as a single unit and store that in a lookup table | 19:19 | |
| atrodo | whiteknight> Actually, I had early on thought of having a lookup table system in place that would take one opcode and expand it into multipe m0 ops | ||
| whiteknight | atrodo: that's probably what the new PIR compiler is going to look like. For each PIR op, look it up in the table and output the sequence of M0 ops | 19:20 | |
| atrodo | And a current parrot-like table could be used by default | ||
| whiteknight> exactly | |||
| whiteknight | atrodo: The benefit to using a compression algorithm isntead of pre-defining the macro ops is that we can detect sequences after they've been generated, giving best characteristics to each generated M0 file | ||
|
19:21
rfw joined
|
|||
| atrodo | whiteknight> What about just compressing the file? The only benefit you lose would be in-memory | 19:21 | |
| cotto_work | whiteknight: that's what I'm thinking too. | ||
| whiteknight | although in the case of PIR, we obviously do want to have existing libraries of macro ops to use | ||
| cotto_work | atrodo: in-memory is important too. We want on-disk and in-memory efficiency we can get them. | 19:22 | |
| whiteknight | if we blow up in memory and eat huge amounts of RAM, we trash the cache | ||
| bye-bye performance | 19:23 | ||
| atrodo | Seems like you'd lose performance either way | ||
| plobsing | which is why I'm proposing interp+JIT. only JIT what you need, because JITted code is *way* larger. | 19:24 | |
| whiteknight | trace-based JIT works in the same kind of way: detect repeated sequences of operations, record them into a buffer, and JIT that buffer only | 19:25 | |
| that is a direction we should want to be moving in | |||
| sorear | whiteknight: pong | ||
| plobsing | trace-based or hotspot-style, both are good and avoid 'make world' scenarios at startup | ||
| whiteknight | sorear: I have a new project to add to dalek. I wasn't sure who I should talk to about it, so I picked you | 19:26 | |
| plobsing | ooh. I haz a project too. | ||
| sorear | whiteknight: is it on github? | ||
| whiteknight | sorear: yes. github.com/Whiteknight/parrotsharp | 19:27 | |
| once that gets added, I could start making GCI tasks to work on the bindings | |||
| sorear | whiteknight: the easy way is github.com/perl6/mu/blob/master/mi...k-push.txt | ||
| whiteknight | sorear: oh, that is easy | 19:28 | |
| plobsing | sorear: that says #perl6 on freenode, but I'd like mine to go to #parrot | 19:29 | |
| sorear | The less easy way involves adding an entry to dalek-conf.json in the same repository, committing, and waiting | ||
| plobsing: change freenode+perl6 to MAGnet+parrot | |||
| in the hook URL | 19:30 | ||
| whiteknight | okay, I just sent a test | ||
| atrodo | anyone have any objections to adding my lorito prototype to dalek? | ||
| whiteknight | atrodo: +1 | ||
| cotto_work | atrodo: go for it | 19:31 | |
| dalek | rrotsharp: abfb413 | Whiteknight++ | / (9 files): fixes and additions to the library so we have enough to run. Add a console output program to test. I can now run .pbc files from my C# wrapper program |
19:32 | |
| rrotsharp: bde24b7 | Whiteknight++ | src/Parrot (2 files): Parrot_api_string_import_ascii, and the ability to create a new Parrot_String from a C# String. |
|||
| rrotsharp: d9808b9 | Whiteknight++ | ParrotTest/Main.cs: add a quick top-level exception handler. This exposes an error message where libparrot prints to stderr directly when attempting to load a bytecode file that doesn't exist |
|||
| whiteknight | yay! | ||
| sorear | sorry, magnet, not MAGnet | 19:33 | |
| atrodo | Test sent | ||
| whiteknight | plobsing, atrodo: use this URL: host04.appflux.net:5000/dalek?t=magnet,parrot | ||
| sorear | somebody keeps sending broken pushes to ohm-eta-wink-kzd | ||
| plobsing | that would be me | 19:34 | |
| dalek | rito: 389c75b | (Jon Gentle)++ | internal_pmc.c: Fix the new data_block code. |
||
| rito: a99e827 | (Jon Gentle)++ | / (2 files): Add the "PMC" macro to cast quickly. |
|||
| rito: 7fd870d | (Jon Gentle)++ | / (4 files): Add an internal_pmc/context as the code path for contexts. |
|||
| m-eta-wink-kzd: 926a0a7 | plobsing++ | src/winxed-compiler.dual: FQNs in untyped using statements |
|||
| m-eta-wink-kzd: 63ec379 | plobsing++ | t/character-classifier.Ωη: first working test |
|||
| atrodo | Thanks whiteknight, had a small typo | ||
| sorear | yay! | ||
| m-eta-wink-kzd: 7dc5a63 | plobsing++ | src/ (2 files): low-level parrot variable type specifiers |
|||
| whiteknight | yay! more clutter! | ||
| atrodo | dalek swimming! | ||
| plobsing | the commits must flow | ||
| whiteknight | I love having this feature, but I do keep thinking that having a dedicated channel for news feeds would be best | 19:35 | |
| atrodo | sorear++ | ||
| cotto_work | whiteknight: interesting idea | ||
| whiteknight | #parrot-feed or something, where we could dump all sorts of automated commit reports, taptinder reports, etc | 19:36 | |
| we probably haven't hit critical mass yet where these reports are disrupting normal conversation, but add a few dozen more projects to dalek and we very well might be there | 19:41 | ||
| cotto_work | +1 to deal with it later | 19:42 | |
| plobsing | true. but the separate channel thing has problems too. it requires developers know about it and pay attention to it. the in-channel doesn't suffer from that. | ||
| atrodo | It could reduce the traffic in here to one line that indicates there's a new traffic in the other channel for a project | 19:43 | |
| cotto_work | atrodo: interesting idea | ||
| plobsing | I'd favour a user-side filtering or subscription model if it ever gets bad enough | 19:44 | |
| whiteknight | dalek> ZOMG STUFF HAPPENZ IN #parrot-feed | ||
| Tene | whiteknight: re-doing the work in my exceptions branch should be quite straightforward. It was primarily updating a few "type == exception" checks to "isa Exception", and working around some of the attribute storage with pmc subclass awkwardness. | 19:46 | |
| whiteknight: So, not much total change. | |||
| whiteknight | Tene: Okay, I was hoping it was very straight-forward | ||
|
19:46
dd070 joined
|
|||
| whiteknight | that's probably something that will have to wait until after 2.11 | 19:46 | |
| dd070 | is parrot better than jvm ? | 19:47 | |
| plobsing | yes. end of discussion | 19:48 | |
| cotto_work | plobsing++ | ||
| dd070 | is parrot better than CLR ? | 19:49 | |
| NotFound | Parrot is better than anything, period. | 19:50 | |
| dd070 | cool. when would get widely used ? | ||
| plobsing | it is too good for most people | ||
| they don't deserve it | 19:51 | ||
| Tene | whiteknight: I've been very busy since we last talked about it, but looks like I might have some downtime over the next few weeks | ||
| cotto_work | the snark is pretty thick in here | ||
| whiteknight | Tene: downtime you might be able to spend looking at Parrot? | 19:52 | |
| Tene | yes | ||
| whiteknight | dd070: Parrot is good and getting better. It is used for different things than JVM or CLR, so comparisons are hard to make | ||
| dd070: Parrot has known performance problems. We are working on those | |||
| dd070: but Parrot is much more fun to work on than JVM and CLR | 19:53 | ||
| plobsing | dd070: unqualified "is $a better than $b" questions are very hard to answer meaningfully. | ||
| NotFound | But fun to answer arbitrarily | 19:57 | |
| whiteknight | Tene: you know my opinion on that: More Tene == more better | 19:58 | |
|
20:00
cognominal left
20:09
bluescreen left
20:18
Kristabou joined
20:21
diofeher joined
20:22
rurban joined
20:23
Kristaba left
|
|||
| dd070 | cool | 20:27 | |
| is Parrot written in C ? | 20:28 | ||
| tadzik | mainly, yes | 20:30 | |
| dd070 | ok | 20:31 | |
| whiteknight | dd070: you know C? We're always looking for more good hackers | 20:34 | |
| dd070 | yes I do. c and c++ are my favorite. | 20:36 | |
| though I am not into systems programming. | |||
| whiteknight: i am not sure how much I can hack in depth. but I like C/C++ and I often code in it. I have developed cross platform app with wxWidgets too. | 20:38 | ||
| cotto_work | dd070: you're welcome to jump in. | 20:41 | |
| are you a gci student? | |||
| plobsing | you know wxWidgets? want to make a parrot language binding to parrot? | ||
| dd070 | cotto: thanks. what means by gci ? | 20:42 | |
| cotto_work | google code-in | ||
| plobsing | err s/parrot?/?/ | 20:43 | |
| cotto_work | www.google-melange.com/site/home/site | ||
| dd070 | cotto_work: nope. | ||
| plobsing: yes I know wxwidgets. have ported my app on both windows and ubuntu | |||
| plobsing: but developing binding to parrot may require some more learning. | 20:44 | ||
| cotto_work | dd070: as would anything else | ||
| Parrot has a couple flavors of C, depending on what you're looking at. | |||
| tadzik | who is working on pynie atm? | 20:45 | |
| dd070 | cotto_work: ok. | ||
| plobsing | tadzik: lucian is iirc | ||
|
20:45
sjn left,
sjn joined
|
|||
| cotto_work | tadzik: you pinged me earlier? | 20:45 | |
| dd070 | plobsing: can tell in brief about language binding to parrot ? | 20:46 | |
| plobsing | dd070: there are a few ways of providing bindings between C and parrot: nci, native pmcs, and native ops | ||
| tadzik | cotto_work: about the GCI task, yes. There was a task with Iterator PMC in the title, and Complex PMC in the description, which caused some confusion | 20:47 | |
| cotto_work | tadzik: right. That one's completed now. | ||
| plobsing | dd070: NCI involves grabbing a bunch of C functins using our FFI (which automatically wraps them) and then exposing them to users in some way | ||
| tadzik | cotto_work: yeah, I know it | ||
| plobsing | dd070: Native PMCs involves writting objects in a pre-processed C variant, which creates a primitive "class" | 20:48 | |
| dd070 | plobsing: i am feeling that I am novice to parrot related terms. | 20:49 | |
| plobsing | dd070: Native Ops exist as well, and work similar to native PMCs, but are harder for high-level languages to access, so of limited direct use. | ||
| dd070: sorry if I'm using jargon. NCI = Native Call Interface. FFI = Foreign Function Interface Library (libffi). PMC = PolyMorphic Container | 20:50 | ||
| Ops = virtual machine opcodes | |||
| my advice would be to try the NCI first and see how it goes. | 20:51 | ||
| dd070 | plobsing: thats ok. as I am new to parrot, these words sounds strange. althought my general fundas are not that bad. | ||
| i read about registers and PMC, PASM and PIR | 20:53 | ||
| i came to parrot page through surfing about Perl6 | |||
| sorear | dd070: when you say you want to bind to parrot, are you writing a library that you want Parrot to be able to use? | ||
| or are you writing an app and want to embed Parrot? | |||
| plobsing | dd070: the way you use NCI is (1) get a handle on the library using the loadlib op. (2) get a handle on the C functions from the library handle using the dlfunc op. (3) treat the function handles like ordinary parrot-level subroutines (they work the same through polymorphism) | 20:54 | |
| tadzik | is there a list of things we get for free from HLL::Compiler when writing a grammar? | ||
| dd070 | sorear: no I am not writing anything for parrot currently. | 20:55 | |
| plobsing: ok | |||
| whiteknight | dd070: this is what you get for asking questions! We help too much and give you too much information! | 20:57 | |
| dd070 | these all sounds interesting. since last few months I am thinking about contributing in some good open source project. | ||
| whiteknight: thx. its very helpful. | 20:59 | ||
| whiteknight | dd070: Tell us what kind of stuff you like to do, and we can help suggest fun projects to work on | ||
| dd070 | whiteknight: well, not sure right now. i have not explored in detail abt available projects. I am good in perl, php and c/c++ .and i have also coded simple firefox extension. | 21:01 | |
| cotto_work | dd070: interesting. If you're still around when Parrot is mature enough, I might recruit you for PHP on Parrot. It'll be a while though. | 21:03 | |
| whiteknight | dd070: Those are all good things. We have a Perl5 binding project, we have a PHP compiler project. Our core is written in C. We would like to embed Parrot in FireFox | ||
| dd070: There are lots of projects. Anything you can imagine | |||
| dd070 | cotto_work: ok | 21:04 | |
| whiteknight: what means by embeding parrot in firefox ? | |||
| whiteknight: making firefox run on parrot ? | |||
| cotto_work | dd070: vice versa | 21:06 | |
| dd070 | whiteknight: project of Perl5 binding and PHP compiler is not bad. specially if they become popular and get used after release. | 21:09 | |
| if we embed parrot in firefox, then any parrot byte code can be run by firefox . is it ?. | 21:12 | ||
| cotto_work | My dream of world domination involves replacing Zend's code as the default PHP implementation. | ||
| or at least being a reasonable alternative with some compelling improvements | |||
|
21:13
davidfetter joined
|
|||
| dd070 | cotto_work: hmm. | 21:13 | |
| cotto_work | that's a long-term vision though | 21:14 | |
| for now, we need to get performance up from "ouch" | |||
| dd070 | cotto_work: is someone solving it ?. | 21:20 | |
| cotto_work | That's what Lorito is all about. | ||
|
21:21
Kristabou left
|
|||
| whiteknight | cotto_work: where "compelling improvements" = "unicode support" | 21:24 | |
| or "namespacing" | |||
|
21:25
fperrad left
|
|||
| cotto_work | I'm thinking more along the lines of hll interop, but finding and fixing a couple major pain points in backwards-compatible way while offering competitive performance would get us mostly there. | 21:26 | |
| It's fortunate that PHP has so many pain points. | 21:27 | ||
| whiteknight | yay for us | ||
| other people's interpreters are far worse | |||
| cotto_work | all that remains is several thousand hacker-hours | 21:28 | |
|
21:28
ok22 joined
21:29
preflex left,
whiteknight left
|
|||
| plobsing | last time I worked in PHP, I would have given nearly anything for decent bignum language integration. bcmul($a, bcadd($b, $c)) just doesn't do it for me. | 21:29 | |
|
21:30
rurban_ joined
21:31
preflex joined
21:32
rurban left
21:33
rurban_ is now known as rurban
|
|||
| dd070 | have to sleep now. se ya | 21:33 | |
|
21:33
dd070 left
21:36
cognominal joined
21:44
kapace_school joined
|
|||
| cotto_work | dukeleto: when's your vacation over? | 21:44 | |
| kapace_school | if "$S0 = eh" works, then "get_string eh" should also work, correct? | 21:47 | |
|
21:48
diofeher left
|
|||
| sorear | I did not know get_string was a PIR op. | 21:48 | |
| kapace_school | vtable? | 21:49 | |
| sorear | $S0 = $P0 compiles to 000000000001-000000000003 000003: set_s_p S0,P0 | 21:50 | |
|
21:50
PerlJam left
|
|||
| sorear | op set(out STR, invar PMC) is defined as $1 = VTABLE_get_string(interp, $2); | 21:50 | |
| so, yes | |||
|
21:52
Tene_ joined,
Tene left
21:53
davidfetter left
21:56
davidfetter joined
22:11
PerlJam joined
22:18
perlite_ joined
22:21
perlite left,
perlite_ is now known as perlite
22:24
Tene_ left
22:29
Andy left
|
|||
| NotFound | After recent LWP improvements, getting json from a cgi on a we server and parsing it with data_json works fine. | 22:48 | |
| s/we/web | |||
|
22:49
ok22 left
|
|||
| NotFound | With a little help of ByteBuffer for utf8 encoding. | 22:49 | |
| World domination advances! | 22:50 | ||
|
22:50
janus left
22:51
janus joined,
kapace_school left
22:52
Yuki`N joined
|
|||
| Yuki`N | cotto, can I go ahead and claim the three other BigNum PMC tasks? | 22:53 | |
| cotto_work | sure, but you'll have to do so one at a time. | 23:06 | |
| Yuki`N | K. | ||
| I claimed the first one. | |||
| cotto_work | accepted | 23:08 | |
| Yuki`N | Submitted. | 23:09 | |
| cotto_work | done | ||
| Yuki`N | Ok, onto the second. | ||
| Claimed the second one. | 23:10 | ||
| cotto_work | accepted | 23:11 | |
| Yuki`N | And onto the third! | ||
| cotto_work | done | 23:12 | |
| Yuki`N | Ok. | 23:13 | |
| cotto_work | accepted | ||
| Yuki`N | Wooh. | 23:14 | |
| So I'm thinking on working on the embed_api2 branch. | |||
| cotto_work | done | 23:15 | |
| Great. That branch is doing some good things. | |||
| Yuki`N | I think it'd be more fun than trying to write more test cases. ;-; | ||
| cotto_work | fun is in the eye of the beholder | ||
| Competition for the #1 gci spot is fierce. | 23:17 | ||
|
23:18
jan left
|
|||
| dalek | rrot: caa0115 | NotFound++ | t/pmc/namespace.t: test Namespace get_sym method |
23:18 | |
| cotto_work | anyone know where we can find a Romanian speaker to verify the Romanian README? | 23:19 | |
|
23:19
kthakore joined
|
|||
| NotFound | Namespace's approching 100% coverage :) | 23:19 | |
| cotto_work | Now we need it to approach 100% sanity. | ||
| NotFound | cotto_work: in Romania | 23:20 | |
| kthakore | dukeleto: NotFound cotto_work EVERYONE gist.github.com/744192 | ||
| :D !!!!! | |||
| Coke | cotto_work: ask whiteknight? ;) | ||
| kthakore++ | |||
| kthakore | Coke: I didn't do anything! I just used it hhahah! | ||
| jnthn++ | |||
| NotFound | Gooood! | 23:21 | |
| Yuki`N | VMWare Unity mode is beautiful. | 23:23 | |
|
23:24
jan joined
|
|||
| davidfetter | :) | 23:27 | |
|
23:30
hercynium left
|
|||
| NotFound | Looks like plumage is not guilty of the ut8 problem. Config/JSON ins | 23:32 | |
| is | |||
|
23:33
dngor left,
dngor joined
23:36
kid51 joined
|
|||
| Yuki`N | In the embed_api2 branch, where are all the types declared. | 23:36 | |
| i.e. Parrot_Int, Parrot_Float | |||
| dalek | rrot: 96b00c1 | NotFound++ | runtime/parrot/library/Config/JSON.pir: set utf8 encoding to read file in Config/JSON |
23:38 | |
| kid51 | cotto_work: Provide me with links to Romanian and other non-Anglo READMEs | 23:41 | |
| I live in New York City. Therefore I know Romanian-speakers. | 23:42 | ||
| I live in New York City. Therefore I know Bulgarian-speakers. | |||
| I live in New York City. Therefore I know Spanish-speakers. | |||
| I live in New York City. Therefore I know Russian-speakers. | |||
| I live in New York City. Therefore I know Polish-speakers. | |||
| ... and so on to infinity. | |||
|
23:42
kennym left
|
|||
| sorear | The standard Perl 5 JSON module does not seem to provide any way to read JSON data from a character string. I find this very annoying | 23:43 | |
| cotto_work | Yuki`N: include/parrot/config.h | ||
| NotFound | It's ip to you, New York, New Yoooooork | 23:44 | |
| atrodo | sorear> That seems like I should be missing something subtle | 23:45 | |
| cotto_work | kid51: thanks. unfortunately the Romanian student needs help with pull requests. I'll send you a link when I have something. | 23:49 | |