Camelia, the Perl 6 bug

IRC log for #parrot, 2010-12-16

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:05 Kapace_ io.t:474: $I0 = $P0.'tell'() seems to be the problem, it returns zero
00:06 rfw joined #parrot
00:12 Kapace_ can anyone else make cover; make test?
00:15 kid51 Kapace_: Just coming on channel.  Where is this code? What is the problem?
00:15 * kid51 is working on developing 'make quickcover'
00:16 Kapace_ kid51: after I make cover; make test fails
00:16 Kapace_ however, on clean clone, make test passes
00:16 kid51 i.e, you are running 'make test' explicitly after running 'make test'?
00:16 kid51 sorry
00:16 kid51 i.e, you are running 'make test' explicitly after running 'make cover'?
00:17 Kapace_ yes
00:17 Kapace_ (the test fails in make cover as well, i believe)
00:17 kid51 ok, this is what I think you should do first
00:17 kid51 'make cover', as currently constructed, is more or less the same as 'make fulltest'
00:18 kid51 'make fulltest', in turn, runs the standard test suite on various 'runcores':  make testb; make testr; etc;
00:18 kid51 See Makefile or config/gen/makefiles/root.in for list of target subsumed in 'fulltest'
00:19 kid51 What is happening is that a test which is passing under our *regular* core is failing under one of the *alternate* cores.
00:19 kid51 This is not infrequent.
00:19 kid51 It was happening to whiteknight in embed_api2 branch earlier this week.
00:19 kid51 So, I think you should do:
00:19 kid51 make realclean
00:19 kid51 perl Configure.pl
00:20 kid51 script   # to record your session
00:20 kid51 make fulltest
00:20 kid51 Ctrl-D to stop script
00:20 kid51 grep -n FAIL typescript
00:21 kid51 And identify the specific make target under which your file is failing.
00:21 Kapace_ cool, never heard of script before.. learn somethig new
00:21 kid51 The file is being run more than once.
00:21 kid51 man script
00:21 kid51 I've only started to use it extensively myself in the past weeks.
00:21 Kapace_ i will
00:22 rfw kid51: could you take a look at http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129228633715
00:22 rfw i increased coverage by 9.something% though
00:24 kid51 rfw:  I'd like to have cotto or another dev look at that
00:24 rfw ah okay
00:24 rfw i'll wait for cotto
00:24 kid51 Believe it or not, you probably now know more about writing tests in PIR than I do ...
00:24 rfw haha
00:25 kid51 ... so while I congratulate you on boosting the code coverage, I can't really QA the test code itself ...
00:25 kid51 ... but there are many who can.
00:25 rfw ah okay
00:31 kid51 In short, diagnose the test failure before running coverage analysis
00:32 kid51 (that was for Kapace_)
00:33 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.
00:34 Kapace_ you'll need that whole week :P
00:36 fbrito left #parrot
00:36 hercynium left #parrot
00:41 Yuki`N joined #parrot
00:52 Kapace_ kid51: :( script; make fulltest; CTRL-D script dies... grep -n FAIL typescript -> nothing
00:53 Kapace_ 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:54 cotto_work Kapace_: it does.  It adds some flags to gcc so that binaries will spit out profiling information.
00:54 rfw cotto_work!
00:54 rfw are you free?
00:54 kid51 cotto_work:  Which makes this a very subtle bug!
00:54 cotto_work fsvo free.  I'll take a look at your pull request.
00:55 rfw ah tnhanks
00:55 cotto_work rfw: why does your pull request have some of the frontend changes?
00:55 rfw cotto_work: oh
00:56 rfw i think that was from stuff that was left over in my fork
00:56 rfw not sure why
00:57 Yuki`N cotto_work, could you take a look ay my pull request as well?
00:57 theory left #parrot
00:57 cotto_work I can't guarantee right now, but I'll get it before I go to bed.
00:58 * cotto_work wonders what get_string_keyed is doing in BigInt
00:58 cotto_work headdesk
00:59 cotto_work That's ....
00:59 cotto_work no
00:59 cotto_work That is not a valid way to return the base n representation of a string.
00:59 cotto_work I can't fault the test though.
00:59 rfw cotto_work: is that my fault?
01:00 rfw oh
01:00 rfw :D
01:00 rfw yeah i thought that was really weird too
01:00 adu joined #parrot
01:01 dalek parrot/tt1893_quickcover: 82d7684 | jkeenan++ | config/gen/makefiles/root.in:
01:01 dalek parrot/tt1893_quickcover: Create branch to work on TT #1893: Define a 'quickcover' make target.  Prepare
01:01 dalek parrot/tt1893_quickcover: the way with some tidying up of current testing targets.
01:01 dalek parrot/tt1893_quickcover: review: https://github.com/parrot/parrot/commit/82d76842c5
01:05 cotto_work rfw: if you want to indicate failure, use nok("...")
01:06 ascent joined #parrot
01:06 rfw cotto_work: ah, i was just following the formats of the other tests
01:06 cotto_work for comments, use diag("...")
01:06 cotto_work oh
01:12 cotto_work 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
01:12 rfw it should be fine
01:18 Coke left #parrot
01:19 bluescreen left #parrot
01:24 Yuki`N cotto_work, lol it's not my fault someone decided to implement it that way. :3
01:26 bluescreen joined #parrot
01:29 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?
01:29 Yuki`N Should someone else take a look at it and then chainsaw it out?
01:29 cotto_work Is the code unreachable?
01:30 cotto_work The chainsaw is always a possible option.
01:30 Yuki`N The code is unreachable from PIR.
01:31 dalek parrot/tt1893_quickcover: f013736 | jkeenan++ | config/gen/makefiles/root.in:
01:31 dalek parrot/tt1893_quickcover: More Makefile housekeeping.  Name variables holding directories holding tests
01:31 dalek parrot/tt1893_quickcover: 'x_TESTS_DIR' throughout.
01:31 dalek parrot/tt1893_quickcover: review: https://github.com/parrot/parrot/commit/f0137362cc
01:31 Yuki`N And given they haven't been used I don't think they're referenced elsewhere.
01:31 cotto_work the BigInt PMC?
01:31 Yuki`N BigNum.
01:32 Yuki`N 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.
01:32 rfw yeah i'm doing BigInt
01:32 rfw all of the code is reachable in BigInt
01:32 rfw i haven't written any tests with DEFAULT or FLOAT though
01:34 mtk left #parrot
01:40 mtk joined #parrot
01:44 kid51 is now known as kid51_at_dinner
02:02 dalek parrot/tt1893_quickcover: 9720330 | jkeenan++ | config/gen/makefiles/root.in:
02:02 dalek parrot/tt1893_quickcover: For now, remove t/perl/ from COVER_DIRS.
02:02 dalek parrot/tt1893_quickcover: review: https://github.com/parrot/parrot/commit/97203303ae
02:10 dmalcolm left #parrot
02:11 Yuki`N Can someone do the task approvals for melange? http://socghop.appspot.com/gci/task/show/google​/gci2010/parrot_perl_foundations/t129228510453
02:13 * 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.
02:13 Yuki`N Hopefully by removing unnecessary code I can get the final 10.1% :D
02:17 Coke joined #parrot
02:44 cotto ~~
02:45 cotto whiteknight, ping
02:45 whiteknight pong
02:45 cotto can you take care of a one or two gci task approvals?
02:45 cotto I'll get the rest.
02:46 whiteknight ok
02:46 cotto thanks
02:46 cotto let me know which you do
02:47 whiteknight I can't really do any until tomorrow
02:47 whiteknight I have a fussy baby to put down tonight
02:48 cotto ok
02:53 whiteknight left #parrot
03:02 Kapace_ :( nothing works still...
03:05 Coke Kapace_: what are you working on?\
03:06 Kapace_ Coke: I want to try the test coverage increase tasks
03:06 Kapace_ but make cover fails to create reports for eventhandler.pmc
03:15 adu left #parrot
03:22 adu joined #parrot
03:22 kid51_at_dinner in the tt1893_quickcover, I, too, am having problems with t/pmc/*.t
03:22 kid51_at_dinner is now known as kid51
03:23 kid51 t/pmc/io.t and t/pmc/packfile*.t
03:23 kid51 I suspect some problem with respect to concept of $PWD
03:24 kid51 but it's getting late for me, so I won't be able to solve this tonight
03:24 arnsholt_ joined #parrot
03:25 Kapace_ maybe theres some earlier version that works?
03:26 kid51 But it may also have to do with what gets cleaned.
03:26 arnsholt left #parrot
03:27 Kapace_ :S ?
03:34 dalek parrot/tt1893_quickcover: d017ffa | jkeenan++ | config/gen/makefiles/root.in:
03:34 dalek parrot/tt1893_quickcover: Trying to get 'quickcover' target to work.  Problems with t/pmc/packfile*.t and
03:34 dalek parrot/tt1893_quickcover: with cover-clean.
03:34 dalek parrot/tt1893_quickcover: review: https://github.com/parrot/parrot/commit/d017ffafaf
03:35 Coke Kapace_: WFM.
03:35 Coke I run make cover, go wait for a pot of water to boil, come back, I have:
03:35 Coke /Users/coke/sandbox/parrot/cover_​db/src-pmc-eventhandler-pmc.html
03:35 Coke (which has zero coverage)
03:36 Coke do you have cover_db/ ?
03:36 Coke (and then, cover_db/coverage.html ?)
03:37 Coke 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
03:38 Kapace_ but i don't have any info about /pmc/ in coverage.html
03:38 TypeNameHere_____ joined #parrot
03:39 Coke what OS, OOC?
03:39 kid51 Aha!  The t/pmc/packfile*.t tests are failing even in 'master'!
03:39 kid51 So it's probably not my problem!
03:40 Kapace_ Coke: i don't know what OOC is, but my OS is ubuntu 10.10
03:40 khisanth_ joined #parrot
03:40 cotto "out of curiosity"
03:41 Kapace_ ah
03:43 Khisanth left #parrot
03:45 kid51 Getting inconsistent results; sometimes t/pmc/packfile*.t passing, sometimes not
03:46 Kapace_ hmmm
03:46 Yuki`N left #parrot
03:48 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 ?
03:48 Kapace_ (maybe I should custom build some packages? (specifically libdevel-perl-tools or whatever))
03:56 kid51 This is very strange.  When I say 'make clean;make test', the t/pmc/packfile*.t tests pass.
03:56 kid51 But when I say 'make realclean;perl Configure.pl;make;prove t/pmc/packfile*.t', the tests fail.
03:57 Kapace_ kid51: sounds similar to my problem
03:57 Kapace_ ill try to reproduce ^
03:57 kid51 And this is independent of any attempts at make cover
03:59 kid51 Oh, wait a minute.
03:59 kid51 There's that weird target:  pbctestfiles
03:59 kid51 That's probably what I'm missing.
04:02 Andy left #parrot
04:03 kid51 Yes, that's it:  make pbctestfiles; prove t/pmc/packfile*.t
04:03 kid51 Will implement that in the quickcover branch tomorrow.
04:04 * kid51 must sleep
04:04 Kapace_ night kid51
04:19 kid51 left #parrot
04:31 khisanth_ is now known as Khisanth
04:33 theory joined #parrot
04:59 fbrito joined #parrot
05:01 fbrito tadzik: ping
05:05 Kapace hey fbrito, make cover works on your 9.10 install?
05:06 fbrito Kapace yes
05:06 * Kapace considers making a ubuntu 9.10 virtual machine
05:06 cotto fbrito, if you're pinging tadzik about your pull request, I'm looking it over now.
05:06 fbrito cotto: oh, thank you :)
05:07 fbrito 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
05:07 Kapace see how it goes
05:09 fbrito1 joined #parrot
05:13 fbrito left #parrot
05:14 fbrito joined #parrot
05:16 fbrito1 left #parrot
05:18 cotto fbrito, how did you get the numbers you used in the Complex tests?
05:19 fbrito cotto WolframAlpha. http://www.wolframalpha.com/input/?i=acosh(2-3i)
05:20 cotto Great.  I just wanted to be sure you didn't use the implementation to verify itself.
05:21 dalek parrot: b7dbe46 | cotto++ | t/pmc/complex.t:
05:21 dalek parrot: Merge branch 'fernandobrito-gci_tests'
05:21 dalek parrot: review: https://github.com/parrot/parrot/commit/b7dbe46df6
05:22 cotto gci task completed
05:23 fbrito yay! thank you!
05:24 Kapace where does one start for the code coverage tasks?
05:25 fbrito Kapace search for your file here: http://tapir2.ro.vutbr.cz/cover/cover-res​ults/2010-12/2010-12-15-04e8af1/c_cover/
05:25 fbrito look which lines/functions are not covered and write tests for them
05:25 cotto fbrito, you're welcome.  Sorry our response times are a bit slower than last week.
05:25 Kapace ah, makes sense, thanks again fbrito
05:27 fbrito what are you going to cover? bigint?
05:27 Kapace i plan to do eventhandler
05:27 fbrito ah, ok
05:28 fbrito hm, interesting
05:30 fbrito there are some PMCs that have 2 or more test coverage tasks on GCI (like BigNum)
05:31 fbrito students are probably going to write duplicated tests while doing those different tasks at the same time
05:32 Kapace yeah, thats what i was thinking
05:37 dalek parrot: 0f5d800 | cotto++ | / (2 files):
05:37 dalek parrot: Merge branch 'master' of https://github.com/nol888/parrot into nol888-master
05:37 dalek parrot: review: https://github.com/parrot/parrot/commit/0f5d800ef0
05:44 TypeNameHere_____ left #parrot
05:45 dalek parrot: 9c33e67 | cotto++ | / (2 files):
05:45 dalek parrot: Merge branch 'master' of https://github.com/rofflwaffls/parrot into rofflwaffls-master
05:45 dalek parrot: review: https://github.com/parrot/parrot/commit/9c33e67358
05:50 cotto fbrito++ for taking on the parrot-commits task
05:52 fbrito cotto :D. I am still doing some research on that :)
05:53 fbrito I saw that GitHub post-receive hook is actually just a POST request to some URL, right?
05:53 cotto fbrito, yes
05:54 cotto you can set up a dummy repo for testing or use any that you have an admin bit for
05:54 cotto 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.
05:56 fbrito it seems like a interesting task :). I will let you know if I find any problem
05:56 cotto ok.
06:00 cotto fbrito, do you know what I mean by an auth token?
06:01 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
06:01 fbrito yes, that's what I tried to say :D
06:05 cotto brain not want think
06:09 sorear fbrito: What are you doing with post-commit!?
06:09 fbrito sorear: a GCI task: http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129202922193
06:09 theory left #parrot
06:11 cotto jnthn, ping
06:12 sorear fbrito: why aren't you looking at https://github.com/sorear/dale​k-poller/blob/master/push.psgi ?
06:13 fbrito sorear: does it send the diff with the changes made on each line?
06:14 sorear no, but it does use the github API to get details
06:16 fbrito hm, interesting! I will take a look on it. thank you for the information :)
06:19 Kapace_ so I made a virtual machine called "ARGH!", boot to 9.10 live
06:19 Kapace_ sudo apt-got git, and git clone parrot, only to have it fail...
06:20 Kapace_ i think some greater force is against me
06:22 Kapace_ or maybe i should use the git:// protocol on older git...
06:24 fbrito "git clone https://github.com/parrot/parrot.git" is failing?
06:24 Kapace_ yeah
06:41 Kapace_ bad luck strikes again: make test fails out of the box...
06:50 * Kapace_ offers free ssh access to a virtual box running 9.10
06:50 Kapace_ the only catch is you have to get parrot make cover working :P
06:55 Kapace_ I have to be doing something wrong... I'm seeing the exact same failures...
06:58 sorear gimme
06:58 sorear ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAntjvyZL0O5p5bwmeWL9​kfaGsEb/J1BprShmo0q+nJ9XuaHjCQOj5+olJR4mYBEdhDv​YpNooWe6Qg0TBqgGJN5OnrKnhdDPSBpv9mYmn3DDolbwr8y​MvHTe22MaqjrXCD6Fsc7xfR9Tt5wzEMi+y+ZjdExxeCvXwL​8GJp0APaqhtOUYyOsQQLzqrhYsnv5k4cZD0t2Uv1euedPR1​x/cltPOTpplogZv7L12tF5+1wYq6U2HjtYbkqpJXSU3L0zd​XOy8MEret4fCwOYIWEBHJgVCDMDJDlzNH3dLAH+1LLMqLB3​Eo6xN5tHwKrvT3zxn1xIVMKEShdDMtwQP1LEB11Hw== stefan@stefans
06:59 Kapace_ sorear: ok, give me some time to set this whole deal up
07:00 Kapace_ (I wasn't really expecting someone to accept the offer)
07:00 Khisanth left #parrot
07:00 Khisanth joined #parrot
07:05 Kapace_ erm, my ssh-fu is weak, how do I add that key? just cat > .ssh/authorized_keys?
07:10 fbrito left #parrot
07:11 sorear yes
07:11 sorear you may also need to fiddle permissions on the file
07:11 sorear also give me a publically routable IP address
07:12 sorear also I don't guarantee success :p
07:13 Kapace_ cool. good enough :P
07:17 fbrito joined #parrot
07:32 sorear so I'm on Kapace_'s VM now
07:32 sorear Configure, make goes normally
07:32 sorear but "make cover" triggers a reconfigure
07:32 * sorear goes digging in the makefile
07:32 cotto it should
07:33 sorear why?
07:33 Kapace_ cotto said earlier that it makes gcc spit out code coverage information
07:33 cotto it reconfigures with some extra gcc flags to enable profiling
07:34 sorear also, killing make leaves configure running in the background, as if either make or Configure is calling setpgrp for some braindead reason
07:35 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?
07:35 Kapace_ yes
07:35 Kapace_ that why i need this to work so badly
07:36 cotto yeah.  Configure.pl isn't very good at getting killed.
07:39 fbrito1 joined #parrot
07:39 sorear "t/op/jit"? Really?
07:41 fbrito left #parrot
07:47 sorear so apparently Kapace_ can't get cover output for ANY pmc
07:54 fperrad joined #parrot
08:11 fbrito joined #parrot
08:14 fbrito1 left #parrot
08:17 fbrito left #parrot
08:19 fbrito joined #parrot
08:26 fbrito1 joined #parrot
08:28 fbrito left #parrot
08:35 fbrito joined #parrot
08:36 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 Kapace night o/
08:37 fbrito1 left #parrot
08:38 Zaur joined #parrot
08:47 khisanth_ joined #parrot
08:51 fbrito1 joined #parrot
08:52 fbrito left #parrot
08:53 Khisanth left #parrot
09:03 khisanth_ is now known as Khisanth
09:07 adu left #parrot
09:14 rfw left #parrot
09:21 mtk left #parrot
09:25 mtk joined #parrot
09:40 fbrito1 left #parrot
09:47 GreenZED joined #parrot
09:47 GreenZED left #parrot
09:47 GreenZED joined #parrot
09:48 GreenZED left #parrot
09:52 Zaur left #parrot
09:55 dalek parrot: a66db30 | NotFound++ | t/pmc/bigint.t:
09:55 dalek parrot: fix skipping of BigInt tests
09:55 dalek parrot: review: https://github.com/parrot/parrot/commit/a66db309b8
10:32 tadzik bah, me and fbrito are always elsewhere
10:46 tadzik dukeleto: ping
10:50 tadzik cotto: ping as well
11:03 AzureSto_ joined #parrot
11:06 AzureStone left #parrot
11:33 contingencyplan left #parrot
11:58 janus left #parrot
11:58 janus joined #parrot
12:58 dukeleto ~~
13:37 mtk left #parrot
13:39 smash joined #parrot
13:39 smash hello everyone
13:50 plobsing <crickets>
13:53 atrodo Yay for snow day
14:01 whiteknight joined #parrot
14:03 whiteknight good morning, #parrot
14:10 tadzik hello everyone
14:11 tadzik dukeleto: is this http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129193205977 task about Complex, or Iterator?
14:12 whiteknight tadzik: that task was about Iterator
14:13 tadzik well, the description talks about Complex
14:22 whiteknight oh, probably a bad copy+paste job
14:52 whiteknight t/pmc/socket.t is aborting without an error message on Win64
14:52 whiteknight that makes me a sad panda
14:53 dalek parrot/gci_french_readme: 8f5c32f | nwellnhof++ | src/string/encoding/ucs4.c:
14:53 dalek parrot/gci_french_readme: [str] Hopefully fix UCS-4 test failure discovered by whiteknight++
14:53 dalek parrot/gci_french_readme: review: https://github.com/parrot/parrot/commit/8f5c32f638
14:53 dalek parrot/gci_french_readme: 17ce365 | (L�o Grange)++ | / (136 files):
14:53 dalek parrot/gci_french_readme: Merge remote branch 'parrot_origin/master'
14:53 dalek parrot/gci_french_readme: review: https://github.com/parrot/parrot/commit/17ce365cab
14:53 dalek parrot/gci_french_readme: 764e225 | (L�o Grange)++ | README.francais:
14:53 dalek parrot/gci_french_readme: Add the french README translation
14:53 dalek parrot/gci_french_readme: review: https://github.com/parrot/parrot/commit/764e225c9b
14:55 dalek parrot/gci_ptBR_readme: 0e4a95c | fbrito++ | README.pt-BR:
14:55 dalek parrot/gci_ptBR_readme: [doc] Add pt-BR README translation
14:55 dalek parrot/gci_ptBR_readme: review: https://github.com/parrot/parrot/commit/0e4a95c6c1
14:55 dalek parrot/gci_ptBR_readme: 90f9db5 | fbrito++ | README.espanol:
14:55 dalek parrot/gci_ptBR_readme: [doc] Fix mistakes README.espanol
14:55 dalek parrot/gci_ptBR_readme: review: https://github.com/parrot/parrot/commit/90f9db59cb
14:55 dalek parrot/gci_ptBR_readme: 933635d | fbrito++ | README.deutsch:
14:55 dalek parrot/gci_ptBR_readme: [doc] Fix mistakes README.deutsch
14:55 dalek parrot/gci_ptBR_readme: review: https://github.com/parrot/parrot/commit/933635dcb9
14:55 dalek parrot/gci_ptBR_readme: a0ed8fa | fbrito++ | README.pt-BR:
14:55 dalek parrot/gci_ptBR_readme: [doc] Fix typo in README.pt-BR
14:55 dalek parrot/gci_ptBR_readme: review: https://github.com/parrot/parrot/commit/a0ed8fa2ec
14:56 dalek parrot: d2fad27 | NotFound++ | t/pmc/namespace.t:
14:56 dalek parrot: some tests for Namespace inspect_str vtable
14:56 dalek parrot: review: https://github.com/parrot/parrot/commit/d2fad27db8
14:58 whiteknight I have no idea why that nwellnhof commit ended up on that branch
15:03 NotFound Merging from master?
15:04 Andy joined #parrot
15:05 dalek parrot: 2b387fd | NotFound++ | runtime/parrot/library/Test/More.pir:
15:05 dalek parrot: make output of Test;More throws_type a bit cleaner
15:05 dalek parrot: review: https://github.com/parrot/parrot/commit/2b387fd40f
15:07 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:08 NotFound plobsing: I've seen them, thanks.
15:08 mtk joined #parrot
15:08 NotFound plobsing: the exception will be easy for simple usages (I hope you don't abuse goto)
15:09 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,.
15:12 whiteknight Winxed has goto?
15:14 NotFound Ofcoz
15:15 plobsing NotFound: what about tailcalls? I suspect that would break the context handling.
15:16 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 #parrot
15:17 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 plobsing tailcalls into native PMC methods *sometimes* don't return properly
15:18 JimmyZ joined #parrot
15:18 NotFound There is also a ticket about tailcall to coroutines
15:19 JimmyZ left #parrot
15:20 * moritz thought that the point of tailcalls was not to return
15:21 moritz though you probably meant "invoke the next continuation"
15:22 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 plobsing so there is a return
15:23 dalek winxed: r720 | NotFound++ | trunk/winxedst1.winxed:
15:23 dalek winxed: code generation for Try blocks in stage 0 lacked a pop_eh in stage 1, Issue 10,
15:23 dalek winxed: plobsing++
15:23 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=720
15:23 NotFound plobsing: See? Fairly easy :)
15:24 plobsing NotFound: for the trivial cases (which mine are, modulo the tailcall case), yes. nicely done.
15:25 plobsing 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.
15:26 NotFound The pop_eh was alredy present in stage 0, don't know why I forgot it in stage 1.
15:30 NotFound plobsing: Do you want to re-open classes? You risk to upset Stroustrup! ;)
15:31 plobsing I think my views on the quality of that man's work or well known at this point.
15:31 plobsing s/or/are/
15:31 whiteknight plobsing: you not a C++ fan?
15:33 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.
15:34 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:36 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.
15:37 plobsing C++ makes people do crazy things. Like the cast I removed in 5c746dba12f7d893e54db700ad2ef08b1f9ad925.
15:38 NotFound plobsing: yeah, crazy things like winxed.
15:39 plobsing NotFound: while I dislike your methods, I cannot argue with your results ;)
15:40 Patterner left #parrot
15:40 NotFound Don't tell me you don't like my Infinite Memory GC ;)
15:42 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
15:43 plobsing there is some beauty in its simplicity
15:44 whiteknight Does anybody here have a feather account?
15:44 * moritz raises both tentakles
15:44 moritz aka "yes"
15:45 whiteknight moritz: privmsg
15:46 NotFound plobsing: how pressing is Issue 11? Do you expect noticeable speed or memory gains?
15:47 NotFound For Ohm-eta..., I mean.
15:48 plobsing NotFound: many Ωη-generated rules end in such statements, so it could conceivably speed it up. but its not pressing.
15:49 plobsing 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.
15:49 plobsing I just logged it because I noticed it in the generated PIR
15:49 Psyche^ joined #parrot
15:49 Psyche^ is now known as Patterner
15:50 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.
15:50 moritz whiteknight: yes
15:50 moritz whiteknight: http://www.mail-archive.com/perl6​-language@perl.org/msg20060.html
15:52 whiteknight moritz++
15:56 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:58 plobsing NotFound: what? where is the inner scope?
15:58 NotFound plobsing: the function body.
15:58 plobsing NotFound: that's not the problem
15:59 plobsing result is never declared anywhere
15:59 NotFound plobsing: yes, I said I disagree with the example, not with the problem.
15:59 plobsing ok, so if I change the variable name to b, so it doesn't conflict with the function name, would that be acceptable?
16:00 NotFound NM, I mentioned it just to clarify the intention.
16:00 plobsing the aliasing was not intentional
16:01 NotFound The problem exists, is a remaining of the ultra-simplified way I used for the first versions.
16:03 plobsing all my tests with tailcalls in try actually work. I'm shocked. Someone actually thought this through apparently.
16:03 Zaur joined #parrot
16:03 NotFound That may explain why tailcall is unable to do infinite recursion.
16:05 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
16:06 NotFound The exception system is working well... if you use finalize appropiately.
16:07 plobsing NotFound: speaking of which, what are your thoughts on finally blocks?
16:09 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.
16:09 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
16:10 NotFound whiteknight: I think that in order to solve subclassing PMC the attribute handling may need some reworking.
16:11 plobsing NotFound: (SFAICT) they aren't strictly necessary, being emulatble with catch blocks (unless you start getting into resumable exceptions)
16:11 plobsing just nice sugar
16:12 NotFound plobsing: not so esasy, if you want to take into account return inside try blocks.
16:13 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.
16:13 * moritz again wonders why things are so hard that should be really easy in CPS
16:14 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.
16:15 NotFound whiteknight: thet GETATTR stuff, even if used pervasively, is not enough
16:15 moritz plobsing: because it's just an invoke
16:15 NotFound whiteknight: it doesn't play nice with non pir'able types.
16:15 moritz plobsing: and so is return()
16:16 plobsing moritz: in theory / in practice
16:16 moritz I know that you have to find the continuation you want to invoke
16:17 moritz 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.
16:19 NotFound plobsing: each context has its own handlers.
16:20 plobsing oh. cool.
16:23 dmalcolm joined #parrot
16:25 Zaur left #parrot
16:25 contingencyplan joined #parrot
16:30 fbrito left #parrot
16:31 kennym joined #parrot
16:35 kennym can some please tell me what "PMC" stands for?
16:35 kennym s/some/someone
16:36 moritz Parrot Magical Cookie
16:36 moritz basically an object
16:36 kennym moritz: so is the documentation wrong? http://docs.parrot.org/parrot/l​atest/html/docs/intro.pod.html
16:37 kennym PMC stands for Polymorphic Container
16:37 whiteknight moritz: we revised that
16:37 whiteknight it's "Polymorphic Container" now
16:37 moritz kennym: I'm just old fashioned
16:37 moritz it used to be "parrot magical cookie", and I liked it
16:37 kennym well, but it's basically just an object, right?
16:37 whiteknight moritz: it was likable, but nobody understood it
16:37 moritz then somebody decided that it doesn't sound coroporate-y enough
16:37 whiteknight kennym: right, basically an object
16:37 moritz so it was changed
16:38 kennym thanks, you are great guys.
16:38 moritz but I like the cookie better :-)
16:38 whiteknight moritz: we can create something else and call it a magic cookie
16:38 whiteknight does Rakudo need magic cookies?
16:39 moritz it sure does
16:39 moritz as long as they are fast
16:39 moritz rakudo needs everything :-)
16:40 plobsing wow. javascript has really weird order of operations
16:40 fbrito joined #parrot
16:40 plobsing this.input.memo[rule] = memoRec = {ans: this[rule].call(this), nextInput: this.input}
16:41 kennym hi fbrito
16:41 plobsing if the call mutates the 'input' field of 'this', the assignment still operates on the *old* contents
16:41 fbrito kennym: hello :D
16:42 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?
16:42 fbrito kennym: I am really slow right now. Lots of other things to do
16:42 fbrito :(
16:42 plobsing or am I missing something?
16:43 kennym well, we will have to work far harder to catch up to you, so you don't have to worry atm. ;-)
16:43 kennym fbrito: ^^^
16:45 NotFound plobsing: I've heard that this is kinda magical in JS
16:46 plobsing OMeta/JS depends on it. Otherwise, failures propagate all the way to the toplevel due to the way the cacheing works.
16:47 plobsing (a | b) // if a fails, b will fail because of cached failures in the 'anything' rule from which all rules descend
16:48 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:49 plobsing yeah. its insane.
16:49 NotFound So don't let the syntactic familiarity fool you.
16:56 theory joined #parrot
17:00 plobsing NotFound: your recent installer changes break running using $WINXED_PATH
17:02 NotFound Uh? I think I tested that recently...
17:02 plobsing nevermind. I'm an idiot
17:02 NotFound Doesn't work for --stage=0, though. I should fix that.
17:04 NotFound 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.
17:05 NotFound Given that no one noticed the plumage problem, I wonder if the work already done pays.
17:08 kennym I just cloned parrot, checked out embed_api2, but there seems to be no src/embed/ folder
17:08 kennym have I missed something?
17:10 plobsing kennym: are you on the right branch? git branch
17:11 kennym plobsing: git branch output: remotes/origin/embed_api2
17:11 kennym I guess that's correct.
17:11 plobsing wait, you are doing work in a remote branch? that doesn't seem like a good idea to me
17:12 kennym plobsing: what would you recommend?
17:12 plobsing git checkout -b embed_api2 remotes/origin/embed_api2
17:13 plobsing 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:14 dalek parrot: 60b8826 | (Gerd Pokorra)++ | README.deutsch:
17:14 dalek parrot: start of correction
17:14 dalek parrot: review: https://github.com/parrot/parrot/commit/60b8826b9f
17:14 nopaste "plobsing" at 192.168.1.3 pasted "[OhmEta] working letter or digit recognizer" (9 lines) at http://nopaste.snit.ch/27172
17:14 kennym plobsing: warning: refname 'remotes/origin/embed_api2' is ambiguous.
17:15 kennym plobsing: I checked out master, and ran your command
17:15 kennym plobsing: and that was my output
17:15 plobsing I usually drop the remotes (but I'm not sure why it doesn't like that)
17:15 plobsing as in origin/emed_api2 over remotes/origin/embed_api2
17:16 plobsing I thought the later was simply more explicit
17:26 whiteknight git checkout git://github.com/parrot/parrot.git
17:26 whiteknight git checkout embed_api2
17:26 whiteknight er, the first one is git clone
17:28 dalek winxed: r721 | NotFound++ | trunk/winxed.winxed:
17:28 dalek winxed: look for stage 0 in WINXED_PATH in non-installed driver
17:29 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=721
17:31 kennym whiteknight: ok, that worked, too, but I still don't see the src/embed
17:32 whiteknight kennym what does "git branch" output?
17:32 whiteknight should say "* embed_api2" somewhere
17:33 NotFound git checkout origin/embed_api2
17:34 kennym whiteknight: yeah it says that
17:34 kennym NotFound: that worked! thx
17:34 whiteknight okay, you have the folder now?
17:35 kennym whiteknight: yes, it's there
17:35 NotFound kennym: note that this way you are not tracking the remote branch
17:35 whiteknight okay, let me know when you request a task and I will accept it
17:36 kennym NotFound: this means `git pull' is worthless?
17:36 kennym whiteknight: are you a GCI mentor?
17:36 whiteknight kennym: yes
17:36 NotFound kennym: maybe you can still use it, but I'm far from a git expert
17:39 fbrito left #parrot
17:39 kennym whiteknight: I would like to work on this task : http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129242595808
17:39 NotFound kennym: http://www.gitready.com/beginner/2009​/03/09/remote-tracking-branches.html
17:40 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?
17:40 kennym whiteknight: can you tell me why you marked it as difficutl?
17:40 kennym whiteknight: yes
17:40 kennym whiteknight: "Write a new API function to get a Method from a PMC"
17:41 kennym NotFound: thanks!
17:41 whiteknight kennym: it might not be really difficult.
17:41 whiteknight kennym: you're going to have to use pointers and stuff, and many people aren't good with those
17:41 whiteknight writing a test for it may be tricky
17:41 whiteknight but it's probably not difficult
17:42 whiteknight my mistake is your gain :)
17:42 kennym whiteknight: yeah, let's close one eye on this ;)
17:42 hercynium joined #parrot
17:43 NotFound This is probaly easy: http://stackoverflow.com/questions/67699/h​ow-do-i-clone-all-remote-branches-with-git
17:43 NotFound git checkout -b experimental origin/experimental
17:46 Util left #parrot
17:46 kennym NotFound: that is the best solution, I guess
17:47 tadzik left #parrot
17:47 PerlJam http://www.youtube.com/watch?v=uguXNL93fWg
17:48 cotto I like that parrot.
17:51 Util joined #parrot
17:53 NotFound kennym: at least the simplest command
17:57 NotFound Sigh... We don't have better things to do than debating a fucking README file?
17:59 NotFound I propos to make the official version in Very Rude Russian
18:00 plobsing Very Rude Robotic Russian
18:15 cotto_work ~~
18:19 smash left #parrot
18:21 cotto_work anyone mind if we put a moratorium on new README translation gci tasks?
18:23 NotFound A tanatorium?
18:26 Kristaba joined #parrot
18:27 cotto_work we need aloha back
18:27 cotto_work whiteknight: do you have the tuits to do that before the weekend?
18:27 Kristaba Good morning/afternoon/evening :)
18:30 cotto_work Kristaba: happy unbirthday!
18:30 plobsing Kristaba: good 93018161111043490
18:31 plobsing erk. me never remembers how to get unix time. geekiness fail.
18:38 Kristaba whiteknight: I saw this GCI task, can I ask you some questions about? http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129242595808 ?
18:38 whiteknight Kristaba: sure
18:39 whiteknight 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:41 cotto_work whiteknight: thanks a bunch
18:44 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 https://gist.github.com/740858 .  Suggestions are welcome
18:45 atrodo cotto_work> line 10 eases my worries a little
18:46 tadzik joined #parrot
18:46 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
18:47 whiteknight you can find a method with VTABLE_find_method
18:48 Kristaba whiteknight: Ok, so methods are the 'high level' PMC object that represent a function of this object?
18:49 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
18:49 NotFound plobsing: date +%s
18:49 atrodo Also, completely unrelated, I had no idea "weekend at bernies" had a plot
18:50 cotto_work atrodo: how so?
18:51 Kristaba Ok, it seems interesting, I'm going claim this task ;)
18:51 whiteknight Kristaba: okay, awesome!
18:52 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:53 atrodo cotto_work> so is the idea to use the 6model mop instead of something like P&W?
18:54 cotto_work atrodo: that's the plan
18:54 whiteknight Kristaba: claim accepted. Good luck!
18:55 atrodo interesting
18:55 whiteknight atrodo: it's my understanding that the 6model MOP is not super duper different from P&W
18:55 whiteknight at least, the code I saw was in the same ballpark
18:56 Kristaba whiteknight: Thank you :)
18:57 whiteknight sorear: ping
18:58 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
18:59 plobsing factor's alien uses their custom dsl/assembler/doohiky, which they also use to implement their core and their JIT
18:59 plobsing they built their entire system from the ground up
18:59 whiteknight where do I go to add a new project feed to dalek?
18:59 plobsing no libffi, no llvm, no libjit, no nothing
18:59 cotto_work whiteknight: perl6/mu in misc/dalek-config.json
18:59 plobsing cotto_work: I don't think we're looking to follow in those footsteps
19:00 cotto_work I don't think we have the expertise to try something like that.
19:02 plobsing they built on the shoulders of giants. forth has a long history of building up ASM using an internal DSL.
19:02 plobsing however, we'd likely end up standing on the toes of midgets
19:03 whiteknight poor midgets
19:05 whiteknight The big difference is that we don't have a hell of a lot of super high-quality groundwork to build on
19:05 whiteknight some of our most basic, fundamental pieces really need to be ripped out and redone
19:05 plobsing cotto_work: I thought libffi *could* do msvc. It is gcc-specific, but provides thunks to make msvc act like gcc.
19:06 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 mtk0 joined #parrot
19:06 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?
19:06 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.
19:06 whiteknight if M0 is based on LLVM, at least initially, let LLVM do the native call stuff for us
19:07 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.
19:07 atrodo cotto_work> no
19:07 atrodo that is, unless you want to be hostile to non-c libraries
19:07 whiteknight cotto_work: based-on was the wrong term. "Translated to" is probably better
19:08 plobsing generated thunks are the only 100% portable solution
19:08 cotto_work whiteknight: that makes me less apprehensive
19:08 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
19:08 whiteknight 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
19:11 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:12 whiteknight M0 is going to have a bytecode format, right?
19:12 cotto_work plobsing: listening
19:12 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.
19:14 plobsing 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 plobsing this goes double for network transmission, but ram usage is also a concern.
19:15 whiteknight that's like what PIR/PBC is now. Each PBC op represents a sequence of machine operations
19:15 whiteknight and a huge number of specialized ops makes for efficiently-packed bytecode files
19:16 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?
19:17 cotto_work in my head, a 1:1 pair
19:17 whiteknight okay, just making sure
19:17 whiteknight so when we're talking about M0, there's a compiled machine code component
19:18 whiteknight 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 whiteknight that keeps space efficient, and is variable
19:19 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 #parrot
19:19 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
19:20 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
19:20 atrodo whiteknight> exactly
19:20 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 #parrot
19:21 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.
19:21 whiteknight although in the case of PIR, we obviously do want to have existing libraries of macro ops to use
19:22 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
19:23 whiteknight bye-bye performance
19:23 atrodo Seems like you'd lose performance either way
19:24 plobsing which is why I'm proposing interp+JIT. only JIT what you need, because JITted code is *way* larger.
19:25 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 whiteknight that is a direction we should want to be moving in
19:25 sorear whiteknight: pong
19:25 plobsing trace-based or hotspot-style, both are good and avoid 'make world' scenarios at startup
19:26 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.
19:26 sorear whiteknight: is it on github?
19:27 whiteknight sorear: yes. https://github.com/Whiteknight/parrotsharp
19:27 whiteknight once that gets added, I could start making GCI tasks to work on the bindings
19:27 sorear whiteknight: the easy way is https://github.com/perl6/mu/bl​ob/master/misc/dalek-push.txt
19:28 whiteknight sorear: oh, that is easy
19:29 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
19:29 sorear plobsing: change freenode+perl6 to MAGnet+parrot
19:30 sorear in the hook URL
19:30 whiteknight okay, I just sent a test
19:30 atrodo anyone have any objections to adding my lorito prototype to dalek?
19:30 whiteknight atrodo: +1
19:31 cotto_work atrodo: go for it
19:32 dalek parrotsharp: abfb413 | Whiteknight++ | / (9 files):
19:32 dalek parrotsharp: 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 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/abfb41382e
19:32 dalek parrotsharp: bde24b7 | Whiteknight++ | src/Parrot (2 files):
19:32 dalek parrotsharp: Parrot_api_string_import_ascii, and the ability to create a new Parrot_String from a C# String.
19:32 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/bde24b7d6c
19:32 dalek parrotsharp: d9808b9 | Whiteknight++ | ParrotTest/Main.cs:
19:32 dalek parrotsharp: 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
19:32 whiteknight yay!
19:32 dalek parrotsharp: review: https://github.com/Whiteknight​/parrotsharp/commit/d9808b9a5e
19:33 sorear sorry, magnet, not MAGnet
19:33 atrodo Test sent
19:33 whiteknight plobsing, atrodo: use this URL: http://host04.appflux.net:​5000/dalek?t=magnet,parrot
19:33 sorear somebody keeps sending broken pushes to ohm-eta-wink-kzd
19:34 plobsing that would be me
19:34 dalek lorito: 389c75b | (Jon Gentle)++ | internal_pmc.c:
19:34 dalek lorito: Fix the new data_block code.
19:34 dalek lorito: review: https://github.com/atrodo/lorito/commit/389c75b521
19:34 dalek lorito: a99e827 | (Jon Gentle)++ | / (2 files):
19:34 dalek lorito: Add the "PMC" macro to cast quickly.
19:34 dalek lorito: review: https://github.com/atrodo/lorito/commit/a99e827f77
19:34 dalek lorito: 7fd870d | (Jon Gentle)++ | / (4 files):
19:34 dalek lorito: Add an internal_pmc/context as the code path for contexts.
19:34 dalek lorito: review: https://github.com/atrodo/lorito/commit/7fd870d93d
19:34 dalek ohm-eta-wink-kzd: 926a0a7 | plobsing++ | src/winxed-compiler.dual:
19:34 dalek ohm-eta-wink-kzd: FQNs in untyped using statements
19:34 dalek ohm-eta-wink-kzd: review: https://github.com/plobsing/ohm​-eta-wink-kzd/commit/926a0a7a03
19:34 dalek ohm-eta-wink-kzd: 63ec379 | plobsing++ | t/character-classifier.Ωη:
19:34 atrodo Thanks whiteknight, had a small typo
19:34 dalek ohm-eta-wink-kzd: first working test
19:34 sorear yay!
19:34 dalek ohm-eta-wink-kzd: review: https://github.com/plobsing/ohm​-eta-wink-kzd/commit/63ec37980f
19:34 dalek ohm-eta-wink-kzd: 7dc5a63 | plobsing++ | src/ (2 files):
19:34 dalek ohm-eta-wink-kzd: low-level parrot variable type specifiers
19:34 dalek ohm-eta-wink-kzd: review: https://github.com/plobsing/ohm​-eta-wink-kzd/commit/7dc5a630a6
19:34 whiteknight yay! more clutter!
19:34 atrodo dalek swimming!
19:34 plobsing the commits must flow
19:35 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++
19:35 cotto_work whiteknight: interesting idea
19:36 whiteknight #parrot-feed or something, where we could dump all sorts of automated commit reports, taptinder reports, etc
19:41 whiteknight 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:42 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.
19:43 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
19:44 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
19:46 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 Tene whiteknight: So, not much total change.
19:46 whiteknight Tene: Okay, I was hoping it was very straight-forward
19:46 dd070 joined #parrot
19:46 whiteknight that's probably something that will have to wait until after 2.11
19:47 dd070 is parrot better than jvm ?
19:48 plobsing yes. end of discussion
19:48 cotto_work plobsing++
19:49 dd070 is parrot better than CLR ?
19:50 NotFound Parrot is better than anything, period.
19:50 dd070 cool. when would get widely used ?
19:50 plobsing it is too good for most people
19:51 plobsing 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
19:51 cotto_work the snark is pretty thick in here
19:52 whiteknight Tene: downtime you might be able to spend looking at Parrot?
19:52 Tene yes
19:52 whiteknight dd070: Parrot is good and getting better. It is used for different things than JVM or CLR, so comparisons are hard to make
19:52 whiteknight dd070: Parrot has known performance problems. We are working on those
19:53 whiteknight 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.
19:57 NotFound But fun to answer arbitrarily
19:58 whiteknight Tene: you know my opinion on that: More Tene == more better
20:00 cognominal left #parrot
20:09 bluescreen left #parrot
20:18 Kristabou joined #parrot
20:21 diofeher joined #parrot
20:22 rurban joined #parrot
20:23 Kristaba left #parrot
20:27 dd070 cool
20:28 dd070 is Parrot written in C ?
20:30 tadzik mainly, yes
20:31 dd070 ok
20:34 whiteknight dd070: you know C? We're always looking for more good hackers
20:36 dd070 yes I do. c and c++ are my favorite.
20:36 dd070 though I am not into systems programming.
20:38 dd070 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:41 cotto_work dd070: you're welcome to jump in.
20:41 cotto_work are you a gci student?
20:41 plobsing you know wxWidgets? want to make a parrot language binding to parrot?
20:42 dd070 cotto: thanks.  what means by gci ?
20:42 cotto_work google code-in
20:43 plobsing err s/parrot?/?/
20:43 cotto_work http://www.google-melange.com/site/home/site
20:43 dd070 cotto_work: nope.
20:43 dd070 plobsing: yes I know wxwidgets. have ported my app on both windows and ubuntu
20:44 dd070 plobsing: but developing binding to parrot may require some more learning.
20:44 cotto_work dd070: as would anything else
20:44 cotto_work Parrot has a couple flavors of C, depending on what you're looking at.
20:45 tadzik who is working on pynie atm?
20:45 dd070 cotto_work: ok.
20:45 plobsing tadzik: lucian is iirc
20:45 sjn left #parrot
20:45 sjn joined #parrot
20:45 cotto_work tadzik: you pinged me earlier?
20:46 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
20:47 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.
20:47 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
20:47 tadzik cotto_work: yeah, I know it
20:48 plobsing dd070: Native PMCs involves writting objects in a pre-processed C variant, which creates a primitive "class"
20:49 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.
20:50 plobsing dd070: sorry if I'm using jargon. NCI = Native Call Interface. FFI = Foreign Function Interface Library (libffi). PMC = PolyMorphic Container
20:50 plobsing Ops = virtual machine opcodes
20:51 plobsing 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.
20:53 dd070 i read about registers and PMC, PASM and PIR
20:53 dd070 i came to parrot page through surfing about Perl6
20:53 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?
20:53 sorear or are you writing an app and want to embed Parrot?
20:54 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?
20:55 dd070 sorear: no I am not writing anything for parrot currently.
20:55 dd070 plobsing: ok
20:57 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.
20:59 dd070 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
21:01 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:03 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
21:03 whiteknight dd070: There are lots of projects. Anything you can imagine
21:04 dd070 cotto_work: ok
21:04 dd070 whiteknight: what means by embeding parrot in firefox ?
21:04 dd070 whiteknight: making firefox run on parrot ?
21:06 cotto_work dd070: vice versa
21:09 dd070 whiteknight: project of Perl5 binding and PHP compiler is not bad. specially if they become popular and get used after release.
21:12 dd070 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.
21:12 cotto_work or at least being a reasonable alternative with some compelling improvements
21:13 davidfetter joined #parrot
21:13 dd070 cotto_work:  hmm.
21:14 cotto_work that's a long-term vision though
21:14 cotto_work for now, we need to get performance up from "ouch"
21:20 dd070 cotto_work: is someone solving it ?.
21:20 cotto_work That's what Lorito is all about.
21:21 Kristabou left #parrot
21:24 whiteknight cotto_work: where "compelling improvements" = "unicode support"
21:24 whiteknight or "namespacing"
21:25 fperrad left #parrot
21:26 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:27 cotto_work It's fortunate that PHP has so many pain points.
21:27 whiteknight yay for us
21:27 whiteknight other people's interpreters are far worse
21:28 cotto_work all that remains is several thousand hacker-hours
21:28 ok22 joined #parrot
21:29 preflex left #parrot
21:29 whiteknight left #parrot
21:29 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:30 rurban_ joined #parrot
21:31 preflex joined #parrot
21:32 rurban left #parrot
21:33 rurban_ is now known as rurban
21:33 dd070 have to sleep now. se ya
21:33 dd070 left #parrot
21:36 cognominal joined #parrot
21:44 kapace_school joined #parrot
21:44 cotto_work dukeleto: when's your vacation over?
21:47 kapace_school if "$S0 = eh" works, then "get_string eh" should also work, correct?
21:48 diofeher left #parrot
21:48 sorear I did not know get_string was a PIR op.
21:49 kapace_school vtable?
21:50 sorear $S0 = $P0 compiles to 000000000001-000000000003 000003:       set_s_p S0,P0
21:50 PerlJam left #parrot
21:50 sorear op set(out STR, invar PMC) is defined as $1 = VTABLE_get_string(interp, $2);
21:50 sorear so, yes
21:52 Tene_ joined #parrot
21:52 Tene left #parrot
21:53 davidfetter left #parrot
21:56 davidfetter joined #parrot
22:11 PerlJam joined #parrot
22:18 perlite_ joined #parrot
22:21 perlite left #parrot
22:21 perlite_ is now known as perlite
22:24 Tene_ left #parrot
22:29 Andy left #parrot
22:48 NotFound After recent LWP improvements, getting json from a cgi on a we server and parsing it with data_json works fine.
22:48 NotFound s/we/web
22:49 ok22 left #parrot
22:49 NotFound With a little help of ByteBuffer for utf8 encoding.
22:50 NotFound World domination advances!
22:50 janus left #parrot
22:51 janus joined #parrot
22:51 kapace_school left #parrot
22:52 Yuki`N joined #parrot
22:53 Yuki`N cotto, can I go ahead and claim the three other BigNum PMC tasks?
23:06 cotto_work sure, but you'll have to do so one at a time.
23:06 Yuki`N K.
23:06 Yuki`N I claimed the first one.
23:08 cotto_work accepted
23:09 Yuki`N Submitted.
23:09 cotto_work done
23:09 Yuki`N Ok, onto the second.
23:10 Yuki`N Claimed the second one.
23:11 cotto_work accepted
23:11 Yuki`N And onto the third!
23:12 cotto_work done
23:13 Yuki`N Ok.
23:13 cotto_work accepted
23:14 Yuki`N Wooh.
23:14 Yuki`N So I'm thinking on working on the embed_api2 branch.
23:15 cotto_work done
23:15 cotto_work Great.  That branch is doing some good things.
23:15 Yuki`N I think it'd be more fun than trying to write more test cases. ;-;
23:15 cotto_work fun is in the eye of the beholder
23:17 cotto_work Competition for the #1 gci spot is fierce.
23:18 jan left #parrot
23:18 dalek parrot: caa0115 | NotFound++ | t/pmc/namespace.t:
23:18 dalek parrot: test Namespace get_sym method
23:18 dalek parrot: review: https://github.com/parrot/parrot/commit/caa0115871
23:19 cotto_work anyone know where we can find a Romanian speaker to verify the Romanian README?
23:19 kthakore joined #parrot
23:19 NotFound Namespace's approching 100% coverage :)
23:19 cotto_work Now we need it to approach 100% sanity.
23:20 NotFound cotto_work: in Romania
23:20 kthakore dukeleto: NotFound cotto_work EVERYONE https://gist.github.com/744192
23:20 kthakore :D !!!!!
23:20 Coke cotto_work: ask whiteknight? ;)
23:20 Coke kthakore++
23:20 kthakore Coke: I didn't do anything! I just used it hhahah!
23:20 kthakore jnthn++
23:21 NotFound Gooood!
23:23 Yuki`N VMWare Unity mode is beautiful.
23:24 jan joined #parrot
23:27 davidfetter :)
23:30 hercynium left #parrot
23:32 NotFound Looks like plumage is not guilty of the ut8 problem. Config/JSON ins
23:32 NotFound is
23:33 dngor left #parrot
23:33 dngor joined #parrot
23:36 kid51 joined #parrot
23:36 Yuki`N In the embed_api2 branch, where are all the types declared.
23:36 Yuki`N i.e. Parrot_Int, Parrot_Float
23:38 dalek parrot: 96b00c1 | NotFound++ | runtime/parrot/library/Config/JSON.pir:
23:38 dalek parrot: set utf8 encoding to read file in Config/JSON
23:38 dalek parrot: review: https://github.com/parrot/parrot/commit/96b00c1871
23:41 kid51 cotto_work: Provide me with links to Romanian and other non-Anglo READMEs
23:42 kid51 I live in New York City.   Therefore I know Romanian-speakers.
23:42 kid51 I live in New York City.   Therefore I know Bulgarian-speakers.
23:42 kid51 I live in New York City.   Therefore I know Spanish-speakers.
23:42 kid51 I live in New York City.   Therefore I know Russian-speakers.
23:42 kid51 I live in New York City.   Therefore I know Polish-speakers.
23:42 kid51 ... and so on to infinity.
23:42 kennym left #parrot
23:43 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
23:44 NotFound It's ip to you, New York, New Yoooooork
23:45 atrodo sorear> That seems like I should be missing something subtle
23:49 cotto_work kid51: thanks.  unfortunately the Romanian student needs help with pull requests.  I'll send you a link when I have something.

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced