Camelia, the Perl 6 bug

IRC log for #parrot, 2010-12-01

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 dalek parrot: ff53eff | mikehh++ | MANIFEST.generated:
00:00 dalek parrot: add files to MANIFEST.generated
00:00 dalek parrot: review: https://github.com/parrot/parrot/commit/ff53effe94
00:02 dalek parrot: bd48125 | NotFound++ | / (3 files):
00:02 dalek parrot: move Parrot_io_parse_open_flags from io/filehandle.c to io/api.c, TT #1639
00:02 dalek parrot: review: https://github.com/parrot/parrot/commit/bd48125bd9
00:02 dalek parrot/nwellnhof/string_unescape: 65c0d24 | nwellnhof++ | / (4 files):
00:02 dalek parrot/nwellnhof/string_unescape: [str] Switch Parrot_str_unescape to Parrot_str_unescape_string
00:02 dalek parrot/nwellnhof/string_unescape: review: https://github.com/parrot/parrot/commit/65c0d24a6b
00:02 dalek parrot/nwellnhof/string_unescape: 978a012 | nwellnhof++ | compilers/imcc/pbc.c:
00:02 dalek parrot/nwellnhof/string_unescape: [imcc] Switch IMCC back to Parrot_str_unescape
00:02 dalek parrot/nwellnhof/string_unescape: review: https://github.com/parrot/parrot/commit/978a012239
00:02 dalek parrot/nwellnhof/string_unescape: ae203c2 | nwellnhof++ | / (8 files):
00:02 dalek parrot/nwellnhof/string_unescape: [imcc] Don't strdup subid name
00:02 dalek parrot/nwellnhof/string_unescape: review: https://github.com/parrot/parrot/commit/ae203c27ff
00:02 dalek parrot/nwellnhof/string_unescape: 1377fe5 | nwellnhof++ | / (8 files):
00:02 dalek parrot/nwellnhof/string_unescape: [str] Nuke src/string/primitives.c
00:02 dalek parrot/nwellnhof/string_unescape: review: https://github.com/parrot/parrot/commit/1377fe5865
00:04 dukeleto Parrot.org has been updated to drupal 5.23. Please take a look and make sure nothing is broke, please.
00:10 nwellnhof NotFound: ping
00:19 NotFound nwellnhof: pong
00:21 nwellnhof NotFound: have a look at my string_unescape branch. i changed imcc to only use Parrot_str_unescape_string.
00:22 nwellnhof i think TT #1628 can be closed
00:22 NotFound nwellnhof: good!
00:23 nwellnhof i kept Parrot_str_unescape, but it now calls Parrot_str_unescape_string.
00:24 bluescreen dukeleto I can't see parrot's logo
00:24 bluescreen 404 - http://parrot.org/files/parrotify_logo.png
00:24 NotFound nwellnhof: the only problem was some differences with utf8 codepoint escapes, don't know if rakudo or some other HLL can still have problems with that.
00:25 bluescreen dukeleto: also news pages looks wider than the header
00:25 nwellnhof NotFound: the old unescape code was only used for charset:encoding:"..." escaped which are deprecated now.
00:25 nwellnhof *escapes
00:26 NotFound nwellnhof: ah, yes, I think it should be safe now.
00:27 NotFound nwellnhof: is too late for me now, I'll check the branch tomorrow.
00:32 whiteknight bluescreen: added as a committer to parrot/parrot
00:32 whiteknight congrats
00:33 bluescreen thanks!!! I hope I don't mess it up :)
00:34 kid51 joined #parrot
00:34 whiteknight bluescreen: We don't have to develop embed_api in my fork now. We can do it right in parrot/parrot:embed_api
00:35 bluescreen sure... btw it passes all tests now
00:35 bluescreen we now have to wrap it up
00:35 bluescreen but i believe you do now that :D
00:36 whiteknight we need to bring it up to date with trunk, add documentation, fix codestd tests, and ideally we should add tests for all the new api functions
00:37 whiteknight plus, we need to finish up the error message system so that it works correctly
00:37 kid51 is now known as kid51_at_dinner
00:37 whiteknight die_from_exception and PDB_backtrace should not be calling fprintf directly
00:37 bluescreen and don't forget about parrot debugger
00:39 NotFound whiteknight: fprintf is a last resource measure to try to emit some diagnose in worst cases.
00:40 bluescreen NotFound: we're leaving last resource measure to the embedders
00:40 bluescreen in most exes we will definitely do some printing
00:40 bluescreen but if you think on embedded devices... there might be no console
00:40 NotFound bluescreen: if the intepreter is completely fucked up, it may never be able to return.
00:42 NotFound bluescreen: but I have one, and I use it to diagnose and fix problems.
00:42 bluescreen all calls are wrapped, and Parrot_exit longjmps to the api calling funct meanwhile we store the error
00:42 bluescreen so if you use the api you get control back and can do whatever you want with the error
00:44 bluescreen parrot.exe parrot-nqp and most tools print's the error to the console
00:44 NotFound bluescreen: too optimistic view. I added that fprintf for real needs. Kill it, and we lose valuable debugging time.
00:44 Kristaba Hi whiteknight
00:44 whiteknight hello Kristaba
00:45 whiteknight NotFound: libparrot will call fprintf if there is *absolutely* nothing else to do. It will be the last resort
00:45 Kristaba whiteknight: I need some help for run PLA tests ;)
00:45 NotFound whiteknight: yes. And it is.
00:46 whiteknight Kristaba: sure thing. What do you need?
00:46 NotFound whiteknight: unless by last resort you mean to expect until the machine hangs up or segfault, that is.
00:46 Kristaba whiteknight: I have the "Contextual $*FileSystem not found" problem... Nobody here know exactly how to solve it
00:47 whiteknight Kristaba: you need to install a special version of Kakapo. http://github.com/Whiteknight/kakapo.git
00:47 whiteknight you can't use the version on gitorious
00:47 NotFound whiteknight: I used that fprintf to diagnose and fix some nasty bugs. It's here for a reason.
00:48 whiteknight NotFound: as a diagnostics tool is one thing. It shouldn't be part of normal production operation
00:48 whiteknight embedders don't want us calling fprintf all the time, they want to control the program output
00:48 Kristaba whiteknight: Ok, I'll try this, thank you :)
00:48 NotFound whiteknight: I don't consider throwing exceptions during parrot finalization to be part of normal product operation.
00:49 whiteknight NotFound: exceptions thrown anywhere should be handled the same and completely recoverable
00:50 NotFound Tryit.
00:50 lucian_ joined #parrot
00:50 whiteknight I am
00:50 whiteknight the embed_api branch solves a lot of problems
00:51 cotto_work whiteknight: how are the build issues working out?  Are you still seeing lots of segfaults?
00:51 NotFound whiteknight: I hope so, but that diagnose ir here for not yet solved and not yet known problems.
00:52 bluescreen even fprintf should go to a place embbeders can read...
00:53 bluescreen you should be able to specify what STDERR is... which now is hardcoded to the actual STDERR of parrot's proc
00:54 NotFound You can conditionally compile it depending on platform, non debug builds, whatever, but having it available when needed is useful.
00:55 whiteknight cotto_work: embed_api branch builds and passes all tests
00:55 lucian left #parrot
00:55 whiteknight cotto_work: needs docs, codestd fixes, new tests
00:55 cotto_work Nice.
00:57 cotto_work It'll be helpful to have options parsing separate from imcc.
00:57 cotto_work among a great many other things
00:58 NotFound And it may allow to build a nanoparrot at least.
00:58 cotto_work dukeleto: any idea what it'd take to move parrot.org to drupal 6.x?
00:59 Kristaba Hum... I need to sleep now, goodbye everyone, and thanks for the help and the welcome :)
00:59 Kristaba left #parrot
01:03 whiteknight Andy: ping
01:05 dukeleto cotto_work: converting themes from 5 to 6, which could be a great GCI task.
01:06 dalek parrot: eac768e | Whiteknight++ | include/parrot/hll.h:
01:06 dalek parrot: add a #define for Parrot_hll_get_ctx_HLL_namespace, to get rakudo building again. We can remove this one after 2.11, or later if needed
01:06 dalek parrot: review: https://github.com/parrot/parrot/commit/eac768ed19
01:06 dukeleto whiteknight++
01:10 whiteknight I'm still not sure I understand how this helps
01:10 whiteknight If we add in a macro for every function we need to remove, then the HLL just breaks when we remove the macro
01:11 whiteknight I mean, if people think it will help I'll gladly do it, but it doesn't strike me as a silver bullet
01:11 cotto_work but now Rakudo can switch to the new function name anytime
01:11 whiteknight cotto_work: right, but if we make these changes transparently, they don't necessarily know they need to change
01:11 whiteknight and there's no sense for them to change code that works
01:11 cotto_work after a while (e.g. 3.0), we can drop the macro
01:12 whiteknight like I said, I'm happy to put it in, but it smells to me like just delaying the inevitable breakage
01:12 dukeleto whiteknight: along with more work, to boot
01:12 cotto_work We can add a deprecation notice now and they'll know they need to fix it.
01:12 cotto_work (yes they already know now, but I'm talking about the general case)
01:13 whiteknight This TT #443 deprecation is really too large and too vague. It does need to be done, but if we listed every function that needs the treatment it would be larger than the whole DEPRECATED.pod file is now
01:14 dukeleto whiteknight: we need something like Package::DeprecationManager. We need to automate and standardize how we do deprecations and store metadata about them
01:14 Tommy joined #parrot
01:14 cotto_work alternate fix: run this (hypothetical) series of sed commands on your source, though that'll only work for direct renaming
01:14 cotto_work dukeleto: +1 if it's feasible
01:15 * cotto_work decommutes
01:15 dukeleto cotto_work: i think textual output of "these things are deprecated, here are the relevant links to fix them"
01:15 whiteknight I would definitely provide a list of sed commands if that's what people wanted
01:15 dukeleto cotto_work: is more feasible
01:15 whiteknight dukeleto: we have Parrot_warn_deprecated()
01:15 dukeleto whiteknight: i am talking about HLL code
01:16 dukeleto whiteknight: something that reads HLL code and then says "you are using these deprecated features"
01:17 dukeleto whiteknight: then we can generate the sed commands, if we want
01:17 whiteknight ok
01:17 dukeleto whiteknight: and sed commands will only work some of the time
01:17 dukeleto whiteknight: sometimes it is more than just a name change. It is a semantics change.
01:18 dukeleto but 80% of the time it seems to be a name change or perhaps additional argument to an already existing function
01:26 kid51_at_dinner is now known as kid51
01:26 dukeleto whiteknight: i would just like to say thanks for rocking as a GCI mentor
01:27 whiteknight I'm having fun with it
01:27 whiteknight there is a lot to learn though. Will get better as we go
01:27 dukeleto kid51: i added a section about pull requests to git_workflow.pod that you might like to read. Or you might want to ignore it. Up to you :)
01:27 dukeleto kid51: it has better docs now
01:27 dukeleto in any case.
01:31 kid51 Getting a failure in t/op/string_cs.t in master on Darwin/ppc.
01:32 kid51 nwellnhof ping
01:34 nwellnhof kid51: pong
01:34 nopaste "kid51" at 192.168.1.3 pasted "t/op/string_cs.t: test failures on Darwin/PPC at 5f23cc577ecfbbb25b3a6f50d4ce179128feefe4" (69 lines) at http://nopaste.snit.ch/26328
01:35 kid51 nwellnhof Can you take a look at that paste?
01:35 nwellnhof yes, probably related to non-ICU builds
01:36 kid51 Yes, this is a no-ICU-detected machine
01:36 whiteknight left #parrot
01:36 kid51 IIRC we've had to accommodate no ICU in other tests
01:38 nwellnhof ah, i forgot to adjust the skip count for non-ICU builds.
01:41 cotto dukeleto, wfm
01:43 dalek parrot: fe4a42f | nwellnhof++ | t/op/string_cs.t:
01:43 dalek parrot: [t] Fix skip count for non-ICU builds
01:43 dalek parrot: review: https://github.com/parrot/parrot/commit/fe4a42fb85
01:43 Tommy compiling with visual c++ 2010 and strawberry perl..."nmake" works smooth, but then i "nmake test" i get a fatal error, because of 2 failed tests....any help ?
01:44 Tommy t/library/stream.t , tests: 13 and 17
01:44 dalek parrot: 2231f2f | jkeenan++ | docs/project/git_workflow.pod:
01:44 dalek parrot: Correct spelling error.
01:44 dalek parrot: review: https://github.com/parrot/parrot/commit/2231f2f5d2
01:44 dalek parrot: 8c09a00 | jkeenan++ | / (2 files):
01:44 dalek parrot: Merge branch 'master' of git@github.com:parrot/parrot
01:44 dalek parrot: review: https://github.com/parrot/parrot/commit/8c09a001ae
01:44 kid51 dukeleto:  Yes, there is certainly a lot of documentation there.
01:45 Tommy any help ?
01:45 kid51 But I can tell it's going to be some time before I'm comfortable with that sequence of git commands to handle pull requests
01:45 dukeleto kid51: if you already have the patch, it is just 1 command to Sign-off on it
01:46 dukeleto Tommy: perhaps those are actual bugs on strawberry perl and msvc++
01:46 Tommy ok..thanks
01:46 dukeleto Tommy: can you do a "./parrot examples/io/post.pir" ?
01:47 dukeleto Tommy: that will pust your test results to our smoke server, without needing to install the perl deps
01:47 dukeleto s/pust/post/
01:47 dukeleto Tommy: it is kind of like "make smoke"
01:47 dukeleto Tommy: "make smoke" will probably stop at the very end and say "you need this Perl module", which is annoying
01:48 dukeleto Tommy: thanks for letting us know about the bug!
01:49 dukeleto Tommy: also, can you nopaste the output of "prove -v t/library/stream.t", if posting the report doesn't work?
01:49 dukeleto Tommy: that will show the full output of the test, which has more details
01:50 kid51 dukeleto:  Believe it or don't, that's the first time I ever saw: "./parrot examples/io/post.pir"
01:51 kid51 nwellnhof:  Thanks. That last commit makes t/op/string_cs.t PASS again on non-ICU-detected machine.
01:52 Tommy I`m...a little confused...I`m a student who applied for the google code-in contest...and had a task here about renaming some functions...it`s my first time compiling
01:52 fbrito left #parrot
01:52 Tommy what I need: if "nmake" works fine...does it mean that my edits are working fine?
01:53 kid51 Tommy: No, not necessarily.  It can mean different things.
01:54 kid51 'make' programs examine complex chains of dependencies among files which need compilation.
01:54 kid51 In the most typical case, 'make' determines which .c source code files need to be compiled/linked in what order.
01:54 Tommy oh...thanks
01:54 Tommy hmm...if I try and compile it on linux...does it have a better chance of passing the tests? someone said it could be because of the straberry perl i`m using
01:55 kid51 But 'make' (of which 'nmake' is an old Windows variant) is actually more general than that.
01:55 kid51 Tommy:  True, we generally have better results on Linux than on Win32.
01:55 kid51 But we are committed to getting Parrot built and passing all its tests on Windows.
01:56 kid51 And we certainly have contributors who are primarily Win32 and who use Strawberry Perl.
01:56 kid51 I myself am not among them, so I have no wisdom to offer on MSVC++ or Strawberry Perl, etc.
01:56 dukeleto Tommy: run the tests with and without your changes. If the streams tests still fail, then it is not your fault.
01:57 Tommy ok, thanks...I`ll also try on linux because I have 2 computers
01:57 kid51 Bi-systemal!
01:57 dukeleto Tommy: i don't use windows either. I imagine you will have fewer issues in general on linux, since more Parrot developers use linux than any other OS, from what I gather.
01:58 dukeleto kid51: yeah, examples/io/post.pir is a trick to get around stupid "make smoke" dependencies
01:59 kid51 Tommy:  You can also go to http://smolder.parrot.org/a​pp/projects/smoke_reports/1 and switch the Tag to "MSWin32" to see recent smoke tests submitted from Win32.
01:59 kid51 And what do I see?  All recent smoke tests from Win32 are reporting *some* failures.
01:59 dukeleto kid51: taptinder isn't around anymore, so no alarms go off
02:00 dukeleto kid51: i told mj41 how to use the svn mirror on github, but it hasn't been done yet
02:00 kid51 And the most recent failures are probably just due to the test bug that Nick just corrected.
02:00 Tommy I see..
02:02 kid51 We're actually getting many more smoke reports on Win32 than I would have thought
02:02 kid51 rblasch++
02:02 kid51 fperrad++
02:08 nwellnhof left #parrot
02:22 preflex left #parrot
02:25 preflex joined #parrot
02:32 fbrito joined #parrot
02:45 hercynium joined #parrot
02:48 plobsing kid51: (re: "GC for Dummies"). I found http://blogs.msdn.com/b/abhinaba/arc​hive/2009/01/25/back-to-basic-series​-on-dynamic-memory-management.aspx to be a pretty good overview of the concepts.
03:03 dmalcolm joined #parrot
03:03 Tommy tried compiling the original version on both linux and windows, not working..some tests are failing
03:07 Tommy left #parrot
03:08 fbrito left #parrot
03:08 fbrito joined #parrot
03:08 fbrito seen whiteknight
03:08 aloha whiteknight was last seen in #parrot 1 hours 41 mins ago saying "there is a lot to learn though. Will get better as we go".
03:12 hercynium left #parrot
03:13 fbrito hm
03:14 fbrito msg whiteknight I think have just finished another task. Please take a look when you have time. http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129062052689
03:14 aloha OK. I'll deliver the message.
03:14 preflex left #parrot
03:17 preflex joined #parrot
03:18 dmalcolm left #parrot
03:21 bluescreen left #parrot
03:21 dalek parrot/tt532_headerizer_refactor: 5195fb1 | jkeenan++ | / (3 files):
03:21 dalek parrot/tt532_headerizer_refactor: Refactor some code from Parrot::Headerizer::make_function_decls() into Parrot::Headerizer::Functio​ns::handle_modified_args().  Test the new function in 01_functions.t.
03:21 dalek parrot/tt532_headerizer_refactor: review: https://github.com/parrot/parrot/commit/5195fb148d
03:23 kid51 plobsing:  Thanks for the link; I will look it up.
03:24 kid51 Tommy:  If you can paste your 'make' and 'make test' output, someone may be able to help you.
03:24 kid51 Also, we'll need to see what changes you've made to the code.
03:40 fbrito msg whiteknight did you guys discuss how to fix the problem caused by my renaming function GCI task (breaking Rakudo build)? I saw that a MACRO was commited, but should I still write wrapper functions with deprecated warnings, right?
03:40 aloha OK. I'll deliver the message.
03:41 fbrito wow, today is already 1st December. last month of the year :o
03:43 fbrito Saturday I will be running a opendataday.org event here in my city and there is still so much to do :~
03:58 kid51 left #parrot
04:21 Coke joined #parrot
04:21 Coke mj41: ping
04:23 Coke do we have taptinder back yet?
04:47 preflex left #parrot
04:49 preflex joined #parrot
04:50 tcurtis left #parrot
05:17 dukeleto Coke: nope
05:21 dukeleto fbrito: is that codetest still failing?
05:22 fbrito yes
05:26 fbrito and I can't understand it. Parrot_warn_deprecated also has a assert macro and I can't find where it is being used. How come it doesn't fail on the same test?
05:26 dukeleto fbrito: is the test wrong? Should the assert be used somewhere?
05:26 dukeleto fbrito: good question
05:26 dukeleto fbrito: have you done "ack -a Parrot_warn_deprecated" ?
05:26 dukeleto fbrito: src/warnings.c
05:27 dukeleto fbrito: an assert is used on it on line 140
05:27 dukeleto fbrito: sudo aptitude install ack-grep
05:28 fbrito oh my god
05:31 fbrito ok, the pull request was updated
05:32 tcurtis joined #parrot
05:38 dukeleto fbrito: are you praying to the code elder gods?
05:39 fbrito hahaha, why?
05:39 dukeleto fbrito: you said "oh my god". But now I see why :)
05:39 dukeleto fbrito: this is why tests are good :)
05:39 dukeleto fbrito: does "make fulltest" pass for you now?
05:40 dukeleto fbrito: that runs "make tests and make codetest and a few others"
05:40 fbrito wait a second... it is still running
05:40 dukeleto fbrito: yeah, it takes a few minutes, at least
05:41 dukeleto fbrito: i would just like to say that I did not expect GCI students to be as talented as you and a few others have been. That is a very nice surprise.
05:41 dukeleto fbrito: i thougt we would need to make very easy non-code tasks, but obviously that was wrong. We need to give you a task that will actually give you a challenge ;)
05:43 dukeleto fbrito: if you run out of good tasks, just let me know :)
05:43 fbrito ahha, ok, thank you very much for your compliment
05:44 fbrito hm, weird
05:45 fbrito make test is failing on t/op/string_cs.t. I though that was fixed. I guess I need to pull some updates from parrot repository
05:50 dukeleto fbrito: git pull --rebase
05:51 dukeleto fbrito: then try again. Make sure you don't have uncommitted changes first
05:51 dukeleto fbrito: sometimes you need a "make realclean"
06:00 fbrito but git pull --rebase would pull from my fork, no?
06:03 dukeleto fbrito: yes
06:03 dukeleto fbrito: you have a fork, i forgot
06:03 dukeleto fbrito: you should add the main parrot repo as a remote
06:03 dukeleto fbrito: git remote add upstream URL
06:03 fbrito yes, I did that
06:03 dukeleto fbrito: where URL is the read-only git:// mirror of parrot
06:03 dukeleto fbrito: ok, then do a "git fetch"
06:04 dukeleto fbrito: git fetch --all
06:04 dukeleto fbrito: you have a recent git, right?
06:04 dukeleto --all need git 1.6.x and higher
06:04 fbrito yes, I also did that :D
06:04 fbrito but what later? I could solve my problem, but I think it was not a really nice solution
06:04 dukeleto fbrito: or you can do "git fetch upstream", i think
06:05 fbrito yes, thats what I run (git fetch upstream)
06:05 dukeleto fbrito: git checkout master && git rebase upstream/master
06:06 fbrito ah, you can do it with the rebase command? good to know!
06:07 dukeleto fbrito: git help rebase
06:07 dukeleto fbrito: it is a bit much at first, but then you will be enlightened :)
06:07 dukeleto fbrito: git pull --rebase = git fetch + git rebase, basically
06:08 fbrito wow, git rebase does exactly the same thing that I was doing manually
06:08 dukeleto fbrito: yep :)
06:08 fbrito "The current branch is reset to <upstream>" I was doing that
06:08 dukeleto fbrito: you now are an "expert git user"
06:08 fbrito "The commits that were previously saved into the temporary area are" and that
06:09 dukeleto fbrito: basically, "git fetch" gets the index of each remote you have, and stores it locally
06:09 fbrito "are then reapplied". I was doing that manually git cherry-pick, ahhaha
06:09 dukeleto fbrito: then rebase uses that to update your working copy and then replay your local commits
06:09 dukeleto fbrito: !!
06:09 dukeleto fbrito: cherry-pick is a good thing to know about
06:10 dukeleto fbrito: but mostly it you use it for "i want commit X on branch Y to be in branch Z too"
06:10 dukeleto fbrito: rebase is the git chainsaw :)
06:11 dukeleto fbrito: you can also reorder and change the commit messages + commits of your last N commits with : git rebase -i HEAD~N
06:11 fbrito thats the bad thing about using GUIs. you do not know what is happening behind the curtains
06:11 dukeleto fbrito: but remember "Only rebase private history"
06:11 fbrito dukeleto: wow!
06:12 dukeleto fbrito: that is, don't rebase stuff that other people have based stuff off of
06:12 dukeleto fbrito: because then everyone is sad
06:12 dukeleto fbrito: rebase your own personal branches, or rebase anything that you haven't pushed out yet
06:12 fbrito dukeleto: git rebase -i HEAD~N! I have to memorize that
06:12 fbrito I have done it manually lots of times
06:12 dukeleto fbrito: take a look at progit.org
06:13 dukeleto fbrito: git is all about doing the hard stuff for you, if you know how to tell it :)
06:13 dukeleto fbrito: that is one of the best git books around, and it is free online
06:13 dukeleto fbrito: https://github.com/leto/Util/​blob/master/config/.gitconfig
06:13 dukeleto fbrito: those are some of my git aliases
06:14 fbrito ok, make fulltest has passed
06:14 dukeleto fbrito: you will like "git plog", it gives you a fancy colored tree of history, in ASCII :)
06:14 dukeleto fbrito: sweet!
06:15 fbrito I have always used Git-Cola (GUI) to checking out branch trees
06:15 fbrito they look really nice there
06:15 dukeleto fbrito: i've never used that, but have used Gitk and GitX
06:17 fbrito I have also tried Gitg and Giggle, but preferred Git-Cola
06:18 fbrito wow, so many GUIs for Git, hahaha
06:20 fbrito I still remember when I used CVS for the first time
06:21 fbrito then SVN, and now Git
06:21 fbrito there is also Mercurial, but I have never used it (beside checking projects out)
06:28 dukeleto fbrito: it is good to know many version control systems. It will give you more job opportunities. Git is definitely something to put on your resume.
06:29 fbrito but the things that are on top of my "To-Learn" list are: regex and shell script
06:30 dukeleto fbrito: regexen are interesting things. There are many flavors of them. Most people use PCRE (perl compatible regular expressions), which are basically Perl 5 regexen
06:31 dukeleto fbrito: but bash and other shells have their own flavor
06:31 dukeleto fbrito: POSIXy regexen
06:31 dukeleto fbrito: then there are Perl 6 grammars, which are Regexen Done Right :)
06:33 dukeleto fbrito: you should learn about the theory of regexen though, then all those things are just little languages to represent the important ideas
06:34 dukeleto fbrito: there is an O'Reilly book called "Mastering Regular Expressions" that I remember reading a long time ago
06:34 fbrito dukeleto: I have learned the basics about regexen over and over again, but after some time without using it I always keep forgetting
06:34 dukeleto fbrito: yeah, that happens
06:35 cotto Friedl FTW
06:35 fbrito ouch. there is this guy with 32 points on GCI: http://www.google-melange.com/gci/p​rogram/show_ranking/google/gci2010
06:36 fbrito 9 tasks writing assembly functions! not bad
06:36 cotto if you need more than you find in Mastering Regular Expressions, you're either doing it wrong or maintaining a regex engine
06:38 dukeleto cotto: you made me laugh out loud. I already added it to ParrotQuotes :)
06:39 fbrito haha, this book must quite big
06:40 dukeleto fbrito: it actually is thin, but has some insane stuff
06:40 dukeleto the last page is a regex that matches an RFC-compliant email address, and takes up quite a large space :)
06:40 dalek tracwiki: v72 | dukeleto++ | ParrotQuotes
06:40 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Pa​rrotQuotes?version=72&amp;action=diff
06:40 cotto There's not that much to regexes as far as what you'll use day-to-day, but it gets really deep if you let it.
06:41 fbrito I will probably buy it. too bad books are so expensive here in Brazil. I always buy them at Amazon and then I have to wait like 25 days , ahhaha
06:42 cotto fbrito, could you get it from a library?
06:43 fbrito probably not. the only library here on my city with technical books is in an public university and it doesn't have books like those
06:44 fbrito and believe me or not, I live in a city with 1kk inhabitants
06:45 sorear 1kk = 1_000_000 ?
06:45 fbrito that's the bad thing about Brazil: education
06:45 fbrito there are a lot of other problems, but I believe that education is the root of all of them
06:45 fbrito sorear: yes
06:47 fbrito when I was an exchange student on Germany I lived in a city with just 30.000 inhabitants and the city library there was almost as good as what I have here -.-
06:48 dukeleto fbrito: you can read parts of books on books.google.com
06:50 fbrito or you can download it using P2P netwoorks, but that would be illegal :P
06:50 fbrito s/netwoorks/networks/
06:51 cotto I like having a paper copy.  I haven't met a PDF yet that I can't alt-tab away from.
06:51 fbrito haha, so true!
06:53 dukeleto fbrito: i didn't want to taint your young mind with such things, but that was what I was thinking :)
06:53 dukeleto fbrito: i did the same thing when I was your age :)
06:54 dukeleto what high-schooler can afford tech books?
06:55 fbrito the ones that have completed 15 tasks on GCI
06:56 sorear opbots trust fbrito
06:56 slavorg Ok
06:56 slavorgn Ok
06:57 fbrito oh :o
06:57 dukeleto fbrito++
06:57 dukeleto fbrito: i will merge your latest pull request soon, what is the link to your task again?
06:58 fbrito http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129062052689
06:59 fbrito I still can't believe that Google is going to pay a trip to Google Headquarter to the top 10 on GCI
07:00 dukeleto I lied in my recent Git docs! OH THE HUGE MANATEE
07:00 dukeleto fbrito: huh? I didn't hear that.
07:01 dukeleto fbrito: where did you read that?
07:01 fbrito http://www.google-melange.com/document​/show/gci_program/google/gci2010/rules
07:01 fbrito 9. PRIZES FOR GRAND PRIZE WINNERS:
07:01 sorear fbrito: how much money are we talking about here
07:02 cotto at least a million
07:02 fbrito oh, you guys didn't know about the prizes? :o
07:03 dukeleto sorear: GCI students get $USD 50 per task completed, up to 10 tasks, i think
07:03 fbrito actually it is U$ 100 for every three tasks
07:03 fbrito up to 15 ($ 500)
07:04 cotto so at this point you're just going for the gold
07:04 cotto nice
07:04 fbrito but the funny thing is: it doesn't matter if you solve a 1 point or a 4 point task
07:04 sorear fbrito: I haven't really looked at the GCI rules, it started too late for me
07:04 dukeleto fbrito: wow. I am very impressed by how hard you are working.
07:05 fbrito so please, i need more difficult tasks! :P
07:05 sorear round trip air travel from the parts of the world with Internet to California is... not *that* much
07:05 sorear I mean, the SoC program eats $5000 plus tax per student
07:05 dukeleto fbrito: i will sure to only assign you difficult tasks from now on :)
07:06 sorear 20 round trip plane tickets?  *coach*? nothing
07:06 dukeleto sorear: USD means very different things depending on your home currency
07:06 dukeleto Google makes $USD *4 billion* per quarter
07:06 fbrito please, don't think that I am doing that for the money... if it were true, I would just do 1 point tasks (because they are easier and faster)
07:07 dukeleto They don't know what to do with all the money they have. They could wallpaper google offices with money if they wanted.
07:07 fbrito and don't think that I will stop after the 15th task :)
07:07 cotto fbrito, no worries.  We can see that from your work.
07:07 dukeleto fbrito: we see what your motivations are, don't worry :)
07:08 fbrito actually sometimes I fell bad for receiving that much money on such "easy" tasks
07:08 fbrito s/fell/feel/
07:09 dukeleto fbrito: you are actually doing really cool stuff that i never expected someone your age to be able to do. It amazes me.
07:10 dukeleto fbrito: i can't seem to approve your task. Do you need to do a "NeedReview" action ?
07:10 fbrito ahaha, times are changing. I bet that if you were here on my situation you would probably be doing the same thing :P
07:11 * cotto clears out his gci queue
07:11 cotto tcurtis, ping
07:11 sorear dukeleto: um, google is a public company.  doesn't all their income - expenses automatically go to the stockholders?
07:12 fbrito dukeleto: done. I had to "SubmitWork"
07:13 cotto fbrito, can a student work on more than one task at a time?
07:13 fbrito not really
07:13 cotto i.e. does waiting for approval block claiming another task
07:13 fbrito yes
07:13 cotto ok.  I'll have to make sure I don't let that happen again.
07:13 fbrito no no, don't worry
07:13 dukeleto sorear: no, it doesn't work like that.
07:14 fbrito you guys are actually REALLY fast. there were some complains on gci-discuss list about projects that left students waiting for 5 days or so
07:15 dukeleto fbrito: that makes me feel better :)
07:15 dukeleto fbrito: another task under your belt now :)
07:16 fbrito wow! thank you guys!
07:16 dukeleto cotto: I almost question if Signed-Off-by lines are worth the effort. I need to write something in tools/dev that automates it
07:16 dukeleto cotto: it is many steps, but very easy to automate
07:16 cotto laziness is a great virute
07:16 cotto *virtue
07:17 dalek parrot: f9bb559 | dukeleto++ | / (13 files):
07:17 dalek parrot: [gci] Implement Parrot_warn_experimental fbrito++
07:17 dalek parrot: review: https://github.com/parrot/parrot/commit/f9bb559b3f
07:17 dukeleto fbrito: you are #2 now! Congrats
07:18 dukeleto fbrito: and tied at #1 in task count
07:18 sorear dukeleto: Signed-off-by was created by the lkml people as an alternative the CLAs.  They serve an administrative purpose primarily, not a technical one
07:18 dukeleto sorear: yes
07:20 fbrito hm, this task seems interesting: Add Read and Readline methods to Socket PMC
07:20 sorear dukeleto: so... how does the divident process work?
07:21 fbrito sorear: I don't know how it works on USA, but on Brazil you have 2 kind of shares
07:21 dalek parrot: 559ed82 | dukeleto++ | docs/project/git_workflow.pod:
07:21 dalek parrot: [docs] Get rid of lies and add a NOTE about unofficialness
07:21 dalek parrot: review: https://github.com/parrot/parrot/commit/559ed824a6
07:22 dukeleto sorear: it is so complicated that i couldn't explain it. Suffice it to say "the devil is in the details"
07:22 dukeleto sorear: every country and every corporation is different
07:22 fbrito sorear: one that will give you the right to vote on the meetings (what's the english word? assembly?)
07:22 dukeleto fbrito: meetings is correct
07:23 sorear dukeleto: ok :/
07:23 fbrito sorear: and another one that will give you the rights of dividends
07:23 dukeleto sorear: there are many tax books written about it. They are very boring :)
07:23 dukeleto sorear: you have the right idea, but companies can do various nefarious things to operate how they want
07:24 dukeleto sorear: like having branches in other countries to pay less taxes and all kinds of stuff
07:25 dukeleto and there are *many* different kinds of corporations, and they all have different rules, which depend on the phase of the moon and the number of roaches farting at any given time
07:25 dukeleto i.e. world methane production ;)
07:25 * dukeleto kids, but it isn't far from the truth
07:25 fbrito ahah
07:28 fbrito on Brazil the companies that are on the stock market have to share at least 25% of their profit
07:29 fbrito and usually they reinvest the other 75% on themselves
07:29 dukeleto fbrito: do you have tasks to work on? I need to think up some good ones for you :)
07:29 dukeleto fbrito: what programming languages do you know?
07:30 dukeleto fbrito: are you comfortable with C ?
07:30 dukeleto fbrito: would you like to learn some PIR ?
07:30 fbrito dukeleto: the language that I have more experience is Ruby
07:30 fbrito dukeleto: not very useful to you, huh? :P
07:31 cotto You get experience by trying.
07:31 dukeleto fbrito: there is the Ruby on Parrot project, Cardinal
07:31 dukeleto fbrito: it is somewhat dormant now, waiting for Parrot to improve
07:31 dukeleto fbrito: but maybe you can fix some stuff in it
07:31 dukeleto fbrito: i think you would like writing some tests in PIR
07:31 NordQ joined #parrot
07:31 Tene fbrito: We'd love to see work on Cardinal, but it's stalled until Parrot gets some improvements to its object model.
07:32 fbrito dukeleto: as long as the task you provide me has a good testing coverage, I think bad things won't happen :P
07:32 dukeleto Tene: sure, but does it need some simple stuff done? Is anything not blocked on a new object model?
07:32 dukeleto fbrito: adding tests is usually safe :)
07:32 Tene dukeleto: migration to nqp-rx away from PGE
07:32 cotto Tene, have you documented anywhere what Cardinal needs from the object model?
07:32 dukeleto Tene: now that sounds fun.
07:32 fbrito there is still this task here: http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129104923072
07:33 Tene cotto: There are several tickets treed opened about it that have not been addressed.
07:33 dukeleto fbrito: it is now yours :)
07:33 fbrito I think that I also have to fix something on Rakudo because it seems that my renaming function task broke something
07:33 dukeleto fbrito: i think we took care of it
07:34 fbrito adding the macro?
07:34 dukeleto fbrito: whiteknight added a macro with the old name
07:34 dukeleto fbrito: you are off the hook :)
07:34 dukeleto fbrito: but consider it a badge of honor (don't tell the Rakudo guys)
07:34 fbrito yes, but he also talked about deprecation warnings and wrappers
07:35 dukeleto We try really hard not to break Rakudo, but sometimes it happens. It rarely stays broke very long.
07:35 dukeleto fbrito: we will make another task for it, if it needs to get done.
07:35 fbrito or if it is something not very complicated, don't worry about creating tasks
07:36 plobsing left #parrot
07:36 fbrito sometimes I think that writing the task description takes longer than actually solving the task :P
07:37 sorear If the documentation doesn't take longer than the code, you're doing it wrong.
07:38 Tene cotto: Hmm, looks like all the tickets I can find opened by treed have been closed.
07:38 fbrito hm, very good point
07:38 Tene cotto: The big problem he ran into was that you can't instantiate a subclass of Class.
07:39 Tene He had a lot of trouble trying to implement ruby's class hierarchy, where each class his its own metaclass, basically.
07:39 fbrito I should probably go to bed. See you guys later :)
07:39 * dukeleto just approved 2 new gci tasks from whiteknight
07:39 dukeleto fbrito: night!
07:40 dukeleto Tene: singleton classes? i learned about that today
07:41 Tene dukeleto: I don't remember the details.  There were metaclasses, and eigenclasses, and something else.  You could have methods that were only on the class object, but not on instances of that class.
07:41 cotto fbrito, g'night
07:41 Tene So if you have class Foo, you can have Foo.frob, and there is not a corresponding Foo.new.frob
07:41 * sorear thought treed was nothing more than Tene's trac/svn name
07:42 Tene So the simple test in PIR is to subclass Class, instantiate it, and then pass that instance of a class subclass to new.
07:42 Tene sorear: o.O
07:42 Tene Heh, funny how names get mixed up in mediums like that.
07:43 Tene sorear: I happen to have known treed for a few years, and now work at the same company, but we're different people.  I'm 'tene' on trac.
07:43 Tene and on svn.
07:45 fbrito left #parrot
07:47 NordQ left #parrot
07:47 NordQ joined #parrot
07:48 NordQ left #parrot
07:48 dukeleto Tene: a great example of the shortcomings of our meta-object protocol. Whatever our new MOP is, it needs to support things like that
07:48 dukeleto Tene: which should be fun :)
07:49 dukeleto Tene: how hard do you think the conversion from PGE to nqp-rx will be?
07:49 dukeleto Tene: it would be good to document the process, since so many HLLs would like to do that
07:49 Tene dukeleto: I spent maybe 4-6 hours on it, and abandoned it, iirc.
07:49 Tene Maybe it was a lot less than that; I don't really recall.
07:49 dukeleto Tene: can you tell us what you learned? What sucks?
07:49 dukeleto Tene: is stuff documented enough?
07:49 dukeleto Tene: do we need extra tools to make things easier?
07:50 Tene https://gist.github.com/723135 is an example, showing the failure output
07:50 cotto Tene, have you talked with jnthn about Cardinal's object model needs?
07:50 Tene dukeleto: It was over a year ago.  I have no idea what problems I had.
07:51 Tene dukeleto: Cardinal *does* need to be updated to track a few deprecations.  There were some dropped vtables that it uses, iirc.  That would be a great simple task.
07:51 cotto He seems to be the originator of such things in the Parrot and Rakudo worlds.
07:51 Tene cotto: Maybe a little; I don't recall the extent.
07:51 Tene cotto: He's aware of the problems, at least.
07:52 Tene jnthn: https://gist.github.com/723135 is a minimal example of what Cardinal wanted to do, but couldn't.
07:57 dukeleto Tene: getting Cardinal to compile on parrot master by fixing deprecations would make a good GCI task
07:58 Tene dukeleto: agreed.  I think there were only 3-4 deprecations that affected it, and I think they were all fairly minor.
07:58 dukeleto Tene: i will add that. where is cardinals official home? github?
07:58 Tene I'd say maybe 4-5 hours, depending on whether they're familiar with parrot languages at all or not.
07:58 Tene dukeleto: yes
07:59 Tene dukeleto: would you like privs to the owning account?
07:59 dukeleto Tene: do you have an organization for it?
08:00 Tene dukeleto: No.  I think work was stopped before organizations were added.
08:00 dukeleto Tene: just wondering: Are you trying to keep cardinal out of the parrot organization? Would you like for cardinal to be in the parrot org?
08:01 Tene dukeleto: really, treed is the most-recent major committer.  It probably makes more sense to ask him.
08:01 Tene dukeleto: I very much expect that if you asked, he'd tell you that you can do whatever you like with it.
08:02 Tene It's probably polite to ask first, but it's OSS, so whatever.  I don't actually remember the license it ended up with, though, TBH.
08:03 Tene I don't see a license in the repo.
08:03 Sdu joined #parrot
08:04 Tene Anyway, I think you have treed's email address.  It's more been a "stewardship" than "ownership", as I've seen it.  I started work on it when it was still in the parrot repo.  Someone else laid the very initial bare bones, like two commits worth or something, and then I filled out most of the grammar and some little start of a stdlib.
08:05 Tene I never actually thought about adding a separate license.  pmichaud actually was the one who set up that github account, and moved cardinal out of the parrot repo onto github for me.
08:05 Sdu left #parrot
08:05 Tene treed started working on it a while after I stopped; there was never any formal handoff, I just gave him access as soon as he expressed interest in it.
08:07 Tene So that's as much as I've cared about ownership.  As far as I'm concerned, any and all contributions are welcome.
08:07 Tene I'll leave treed a note asking him about it.
08:09 dukeleto Tene: cool, thanks
08:10 dukeleto Tene: the benefit of adding cardinal to the parrot github org is that all parrot core devs will have a commit bit. Hopefully that makes it easier for people to hack on it
08:11 Tene dukeleto: What's involved with that?  Do we need to do anything with the cardinal account, or can you just pull in a fork of the repo?
08:11 Tene If the latter, I definitely approve of that.  That's as good a place as any to work on it.
08:11 dukeleto Tene: i saw that Rubinius tries to write most of their code so that it is reusable (in common/) . I wonder if we can take the Ruby part of Rubinius and slam it into Cardinal. Some parrot core changes will probably be needed, but it is a neat though.
08:12 dukeleto Tene: basically, i just press a few buttons and poof! Cardinal is the parrot org. It is dead simple.
08:12 Tene dukeleto: That was treed's hope, and mine too.  We can't do that without a good object model foundation first, though.
08:12 dukeleto Tene: awesome! Great minds think alike.
08:13 Tene dukeleto: Is that the cardinal repo, or the cardinal user, or what?  I haven't read up on github orgs yet.
08:13 dukeleto I see a new MOP for Parrot as even more important than Lorito, in the sense that we need a new MOP before Lorito.
08:13 dukeleto Tene: there is a button "convert this user to an organization"
08:13 dukeleto Tene: but you don't want that
08:14 Tene Yeah, I don't think we want that.
08:14 dukeleto Tene: you want to become part of an already existing org. I can make it happen.
08:14 cotto dukeleto, I'm eagerly reading through 6guts now
08:14 Tene I mean, when you say "Cardinal is in the parrot org", is that "the github user named 'cardinal'" or "the cardinal repository"?
08:14 dukeleto cotto: cool! Have any, "aha!" moments?
08:14 dukeleto Tene: the cardinal repo
08:15 Tene dukeleto: Yeah, go ahead, that's cool.
08:15 dukeleto Tene: the cardinal github user will not be changed at all
08:15 * dukeleto does it
08:15 dukeleto Tene: is there a cardinal website?
08:16 Tene dukeleto: No.
08:16 dukeleto Tene: we need to fix that. Another good GCI task.
08:16 Tene dukeleto: that doesn't sound like a good GCI task to me.
08:16 dukeleto Tene: we need some non-hardcore tasks, but i hear ya.
08:17 dukeleto Tene: what about a Cardinal logo?
08:17 cotto dukeleto, so far mostly "huh?" moments
08:17 Tene dukeleto: the closest you get to a website is the github wiki, https://github.com/cardinal/card​inal/wiki/Contributor-Guidelines
08:17 dukeleto cotto: those are good to.
08:18 Tene cotto, jnthn: Here's a good place to start for Cardinal object model issues: https://github.com/cardina​l/cardinal/issues#issue/33
08:19 Tene dukeleto: you might look here: https://github.com/cardinal/cardinal/issues
08:19 Tene https://github.com/cardina​l/cardinal/issues#issue/18 looks good
08:19 dukeleto Tene: https://github.com/parrot/cardinal
08:19 Tene once the deprecations are fixed, and the test suite can be run again, that is
08:20 dukeleto Tene: problem is wiki and issues are still in the old repo.
08:20 dukeleto Tene: we may be able to ask github to copy all that over.
08:20 dukeleto Tene: actually, the wiki is a git repo, so i can do that. But issues are different
08:21 Tene dukeleto: Yeah, I'm not sure how much sense it makes for cardinal issues to be tracked in the parrot github org.
08:21 dukeleto Tene: each repo gets their own issues
08:21 Tene Ah.
08:21 Tene dukeleto: I'd leave that alone for now, until treed expresses an opinion about it.
08:22 dukeleto Tene: gotcha. I will migrate the wiki now, tho
08:22 Tene I'd say for now it makes the most sense to consider that Parrot's fork of Cardinal, until treed expresses an opinion about whatever.
08:22 Tene That would make an appropriate amount of sense even if treed didn't want to migrate.
08:23 dukeleto Tene: wiki migrated.
08:23 dukeleto Tene: i agree.
08:24 Tene It's probably the most-polite solution, at least.
08:25 dukeleto Tene: https://github.com/parrot/cardinal/wiki
08:25 dukeleto Tene: i added a note that issues are still in the old repo
08:26 Tene dukeleto: issue 15 may work, issue 25 may work, 24 19 14 all may work
08:28 dukeleto Tene: i just sent a note to parrot-dev
08:31 tcurtis left #parrot
08:40 contingencyplan left #parrot
08:41 * dukeleto goes and does not-coding
08:43 Tene dukeleto: treed says go ahead on migrating fully into the parrot org;
08:43 Tene dukeleto: We just want to make sure to preserve the data in the issue tracker somehow.
08:44 dukeleto Tene: i will ask github to do it. awesome to hear!
08:44 Tene dukeleto: can issue tracker migration be automated, or does it need to happen manually, ticket by ticket?
08:45 Tene dukeleto: ideally, ticket numbers could be that same too; there are references int he tests and todo annotations referring to specific issue numbers.
08:48 treed joined #parrot
08:49 treed dukeleto: I'm on board with any plan to merge the cardinal repo into a parrot org.
08:50 Tene treed: any recommendations for CGI contributions?
08:50 treed What's CGI?
08:51 Tene google code-in.  Google is paying bounties on requests from open-source projects.
08:51 treed Ah.
08:51 Tene high-school students, iirc
08:51 treed So, Cardinal was in kind of a fucked position.
08:51 Tene http://code.google.com/opens​ource/gci/2010-11/index.html
08:52 treed There was a bunch of very low level stuff that needed to be done before the general work opened up.
08:52 treed The easily farmable work is implementind stdlib stuff.
08:52 treed Which is what I started out doing.
08:52 treed but I quickly realized that you needed a sane object model to do a lot of it right.
08:52 treed And Cardinal faltered at that point.
08:52 Tene srsly
08:53 treed And I feel like trying to do the farmable work prior to doing the object model and exceptions will be, at least partially, wasted effort.
08:53 Tene https://gist.github.com/723135 was my demonstration earlier of the basic fail
08:53 treed Yeah.
08:53 Tene Exceptions could be brought in pretty easily.  I have a branch that needs merging that lets you throw subclassed exceptions.
08:53 treed I think you and I have discussed my attempts at implementing a workaround for that.
08:53 treed And it was horrible.
08:53 Tene That might be a good GCI task.
08:53 treed Well, exceptions would still kinda rely just a little on the object model.
08:54 treed Not a lot.
08:54 treed But some.
08:55 Tene Yeah.
08:55 Tene necessary but not sufficient.
08:58 lucian_ treed: pynie is in a similar position, but probably worse. without objects, you can't write a stdlib in python
09:01 Tene lucian_: same position with ruby; you need an object model to have a stdlib at all.
09:01 treed Yeah.
09:01 lucian_ yep
09:01 treed We were kinda fudging things with cardinal.
09:01 treed But you couldn't really do correctly.
09:01 lucian_ treed: i don't know enough about ruby's object model, but python's isn't that hard to implement
09:01 treed You could have an Array class, but it couldn't derive properly.
09:01 treed Ruby's isn't that hard either, but you do need subclassing.
09:02 lucian_ if you have 'object' and a few hooks for creating them, it should just work
09:02 treed So, there are Class objects, which will have a method "new" which creates an object and returns it
09:02 treed etc
09:03 treed http://ruby-doc.org/ruby-1.9/classes/Class.html
09:03 treed has a diagram
09:04 treed Just implementing that would go a long way.
09:04 treed But you can't subclass parrot;Class
09:04 treed So shit gets weird.
09:05 lucian_ treed: hmm, ruby's objects look a bit more complicated than python's
09:05 lucian_ but either way, parrot's objects are crap
09:05 treed Agreed.
09:05 lucian_ treed: they should be just a set of metaclasses
09:05 lucian_ that you can use to implement other metaclasses
09:06 treed I think just being able to subclass Class would probably suffice, honestly.
09:07 lucian_ treed: i'm concerned there may be issues with that
09:07 lucian_ parrot's objects seem too specific
09:07 lucian_ for example, in python there are no methods as such
09:08 treed Heh.
09:08 lucian_ they're just attributes that happen to be callable and take self as the first argument
09:08 treed In Ruby, everything is methods.
09:08 lucian_ yeah, i know
09:08 treed Attributes are always private.
09:08 treed That'll be interesting for HLL interop.
09:09 lucian_ yep
09:09 lucian_ for example, this works fine in python https://gist.github.com/723217
09:10 Tene Not really.  You treat foreign objects according to their API.  If you want to wrap or convert them with/to something that looks like a native API, you do that explicitly.
09:10 lucian_ Tene: treed: i was thinking of something similar https://gist.github.com/720017
09:10 Tene All libraries have API requirements; libraries in foreign languages just differ a bit more than native libraries owuld.
09:11 treed Tene: But if your python object is 100% attributes, how do you call it from Ruby?
09:11 lucian_ and you could write a metaclass that made ruby objects act more pythonic
09:11 treed Ruby would expect a method.
09:11 Tene lucian_: I need to write a response to that; haven't had time yet.
09:11 lucian_ treed: you'd have obj.get_attr('name').call(bla, (a, b, c))
09:11 lucian_ Tene: or something
09:11 Tene treed: ruby does have non-method functions, yes?
09:11 treed It does, yeah.
09:12 lucian_ treed: that's what they'd be
09:12 treed But that's still not an attribute.
09:12 treed foo.stuff
09:12 lucian_ treed: you'd have to get the attribute specifically
09:12 treed It's going to say "Call a method on foo, which is called stuff"
09:12 Tene treed: In the worst interop cases, you eval foreign code to get a code reference that does something appropriate in the foreign language.
09:12 treed But there's no method.
09:12 lucian_ method = obj.get_attr('method_name')
09:12 lucian_ method.call(obj, a, b, c)
09:13 lucian_ Tene: i think that's a bit evil
09:13 lucian_ Tene: but it may be a necessary one
09:13 Tene get_python_attr = eval('sub foo($obj, $attr) { $obj.get_attr($attr) }', :lang('python')); # correct for appropriate syntax
09:13 Tene That works even in the worst language incompatibility cases, as long as you have invocable functions
09:14 Tene then write some sugar around get_python_attr.call(obj, 'foo')
09:14 lucian_ Tene: how would that work from a java-like language? wrap it in a singleton/static class?
09:14 Tene Realistically, you'd want to write a python compatibility library that wraps returning objects in something that DTRT
09:15 lucian_ Tene: whatever interop model there is, there should be a way to add hooks into it
09:15 lucian_ for python's case, foreign objects can be made quite native with metaclasses
09:15 Tene use method_missing or whatever introspection is appropriate, and generate accessor methods for attributes.
09:15 lucian_ Tene: yeah
09:16 Tene Or have a function that uses native parrot introspection to pull the atributes out, etc.
09:16 Tene There are a variety of varyingly-evil options.
09:16 lucian_ Tene: that might not work
09:16 lucian_ pynie might want to use a dict (hash) for attribute resolution
09:16 lucian_ at least that's what python does everywhere
09:17 Tene lucian_: Sure.
09:17 lucian_ on parrot it could perhaps use the pmc vtable and fake the __dict__ attribute
09:17 Tene lucian_: that would be the polite thing to do, yes.
09:17 lucian_ Tene: but you see how idiosyncrasies like this could blow up
09:17 lucian_ Tene: but obj.__dict__ is absolutely necessary for python, a lot of code needs it
09:18 lucian_ for speed and parrot compat, it might indeed be better to fake it
09:18 sorear I think in general all you can expect to pass across a language barrier are strings and closures
09:18 Tene lucian_: I disagree with that phrasing.  I see necessary complexity, but trying to push it down and hide it at the parrot level just spreads it out all over the place, as far as I'm able to tell.  Different languages are different, and trying to pretend they aren't is going to cause trouble.
09:18 lucian_ sorear: i don't think you can expect closures at all
09:18 * sorear puts on blizkost hat
09:19 lucian_ Tene: as I said, if pynie used a dict for finding attributes, it'd be rather slow on parrot
09:19 lucian_ Tene: and if another language got a python object and tried to inspect parrot-level attributes, they'd only find implementation details
09:20 Tene lucian_: That depends on the implementation of their object model.
09:20 sorear lucian_: objects are much worse than closures, ime
09:20 lucian_ sorear: i know. but unfortunately you can't even expect first-class functions everywhere
09:20 Tene lucian_: All you're really saying is "If they choose to do X, then X." which is really just a tautology.
09:20 sorear no, but you can wrap them in objects
09:20 lucian_ sorear: not quite everywhere
09:21 Tene and in places where you do have first-class functions but not objects, you can wrap them in closures.
09:21 sorear languages that support neither virtual calls nor function references are not worth my time
09:21 lucian_ Tene: are there places where you have neither? i bet we could find some examples
09:21 Tene And in places where you have neither, you just cheat, delegate to a language that does. ;)
09:21 sorear except for INTERCAL
09:21 lucian_ sorear: perhaps
09:21 Tene cheat, *or* delegate
09:22 Tene but, yes, what sorear said applies too.
09:22 lucian_ i'm trying to keep in mind interop with Forth, Lisp, Ocaml, C, Java
09:22 Tene If you want to work with a language like that, you're going to have some awkward API decisions
09:22 sorear Tene: there are deep semantic issues that make it difficult if not impossible to map Perl 6 and Perl 5 hashes, arrays, and objects
09:22 theory left #parrot
09:22 Tene Again, different languages are different, and that's complexity that you need to actually address.  Hiding it doesn't make it go away, just makes it more difficult to engage.
09:23 sorear just because they have the same features doesn't mean stuff can be shared
09:23 sorear functions work basically the same everywhere - put values in, get values out
09:23 lucian_ sorear: even strings are silly
09:23 lucian_ try to call 'is?' on a python object from ruby, see what happens
09:23 Tene sorear: the fact that they can't be mapped doesn't mean that you can't use both types of objects somehow.
09:23 lucian_ sorear: get value out
09:24 lucian_ that's the only thing you can count on
09:24 lucian_ sorear: but yeah, we can probably rely on something like a function in general
09:24 particle left #parrot
09:24 lucian_ sorear: what's a Forth word to other languages?
09:24 sorear lucian_: I am not talking about feature support
09:24 sorear At all.
09:24 Tene sorear: that's exactly the kind of issues I'm talking about; you *don't* try to transparently map it.  If you don't explicitly convert, you get a weird foreign object that behaves weirdly foreign.
09:25 lucian_ sorear: aren't you talking about what sort of things you can export from your language so that others can use it for interop?
09:25 Tene When engaging across language boundaries, it's your responsibility to address semantic mismatches.
09:25 lucian_ Tene: yeah, we've established that's a good idea
09:26 Tene lucian_: I seem to be failing to keep track of what points are under discussion here, and work is finally quiescient again, so I'm going to bed. :)
09:26 lucian_ Tene: but in this model, each language would have to export some primitives to make up the API
09:26 sorear lucian_: not really
09:26 lucian_ Tene: ok, good night :)
09:26 sorear Tene: we need to provide the *capability* to address semantic mismatches
09:26 lucian_ sorear: i think that's up to the languages that consume libraries
09:27 preflex left #parrot
09:27 sorear Tene: a weird foreign object that behaves weirdly foreign is one thing, but with anything more complicated than a string or a subref, it tends to turn into "uselessly foreign"
09:28 sorear unless I provide object handles a la B::SV
09:28 lucian_ sorear: B::SV?
09:29 Tene sorear: within parrot languages, at least, there's usually some amount of common ground.  The basic PMC vtables, method calls, etc.
09:29 lucian_ Tene: bzzzt! no method calls :)
09:29 sorear http://search.cpan.org/~jesse/per​l-5.12.2/ext/B/B.pm#B::SV_Methods
09:29 Tene In my (limited) experience with language interop between parrot languages, that's usually enough to get something useful.
09:29 sorear Tene: don't get me started on the joke that is "common vtables"
09:30 sorear no two PMCs implement get_pmc_keyed in quite the same way
09:30 lucian_ I've been thinking of CLR/JVM
09:31 Tene lucian_: You're saying that there are no method calls anywhere?  My point was that there's usually *some* accessible API to get useful information out of an object from another language.
09:31 lucian_ they have an established object model and a lot of languages manage to make do with that
09:31 preflex joined #parrot
09:31 lucian_ Tene: no, i'm saying that some languages don't have the concept of method calls
09:31 Tene sorear: Yes, but they can *respond* to get_pmc_keyed in a way meaningful to that object.
09:31 lucian_ Tene: but since this is a language compiler, you could hack that in the backwards languages i guess
09:31 sorear Tene: and to that object alone
09:31 lucian_ is now known as lucian
09:32 sorear there's no standardization on the correct way to use any vtable
09:32 sorear well
09:32 sorear get_str and invoke have a common interface
09:33 sorear which is why those are the only things implemented in blizkost's P5scalar
09:33 Tene sorear: Yes, and when you're using *any* API, it's your responsibility to understand what the API is.  Across language boundaries, the API just starts to look a little stranger.  I agree it's important to have standards of meaningfulness here, and that Parrot has some absurd examples of failure there, but that doesn't mean it's intractable.
09:34 Tene Within parrot, it's a bit difficult to put something in an object that another language *can't* get back out with at most a little cheating.
09:35 Tene It certainly could be that I'm misremembering a degree of trouble, or underestimating problems that I didn't actually face.
09:36 Tene My point was that vtables and methods exist, and can be accessed, even if they end up meaning something different to different languages or objects.
09:38 Tene I definitely agree that those are issues that need to be addressed, but after being the only person driving language interop work for a couple of years, I gave up hope that anyone else cared enough for these things to actually be addressed in a meaningful way.
09:39 lucian Tene: you're right about pmcs and methods, yeah
09:39 lucian a functional language can treat pmcs as the first argument of the method, like python
09:39 lucian not sure about something like forth
09:40 Tene lucian: If there's no possible way for you get a function to call a parrot method on its arguments in your language, there's something seriously wrong with your language.
09:40 Tene At worst, you add some pir to your project, implementing a 'call_method' function.
09:41 lucian Tene: you could probably implement call-method in many languages
09:41 Tene ... yes, I know, that was part of my point. :)
09:42 lucian Tene: but all interesting languages? i'm not sure
09:43 Tene lucian: If working with an object can't be construed as meaningful in some way in your language, that's certainly a *fascinating* language, but I question its utility, as well as what you're trying to do there.
09:44 Tene I mean, consider BF.  BF doesn't have objects, or methods, certainly.
09:44 Tene But it's also not a meaningful statement to try to import a foreign library in BF.
09:44 moritz neither has qbasic :-)
09:44 lucian Tene: sure, bf is esoteric
09:44 lucian Tene: but forth is quite useful
09:44 * moritz concludes that qbasic is just brainfuck :-)
09:45 lucian Tene: I think you could do something in Forth, but it'd probably be a hack
09:45 Tene lucian: You can put an object on the stack, and have a word that manipulates it, certainly.
09:45 lucian Tene: yeah, to some degree that would work
09:46 lucian Tene: don't get me wrong, i think your assumption is mostly corrent
09:46 Tene lucian: that's the equivalent in forth of functions
09:46 lucian Tene: i'm just trying to think of counterexamples
09:46 lucian s/corrent/correct/
09:46 Tene lucian: To whatever degree you can express a meaningful operation in a language, you can come up with an implementation to match whatever meaning you choose that expression to have.
09:48 Tene If your language has no concept or analogue of calling a function, then no, you're not going to be able to work with objects from foreign libraries, but how are you going to *get* them in the first place, and what would it even mean to *be* able to do anything with them?  What does the language do with its native data structures?  Can you do something like that instead?
09:49 Tene It's like asking "Are there languages where you can't express this idea?" and then asking what that idea means in that language.
09:49 lucian Tene: yeah, you're right
09:50 Tene The issue is in trying to make it useful and simple, and have reasonable non-abusive standards.  get_str and invoke and such vtables are good.  get_pmc_keyed is... less good.
09:50 Tene If we have reasonable standard interfaces, and languages actually *use* them, it makes the easy cases easier.
09:51 Tene We also have cases like rakudo that expect even stricter interfaces on objects, like having .WHAT and friends defined on them.
09:51 Tene Rakudo should either handle foreign objects more-closely, or it should wrap all foreign code invocations with guarding code that wraps the obejcts with the required interface.
09:52 Tene If we had actually followed through with the language interop we had in the past, we'd be in a much better situation today, possibly.
09:52 lucian Tene: i don't know enough about perl to comment
09:53 Tene lucian: You can certainly understand a language runtime that expects objects to conform to a particular interface, though, yes?
09:53 lucian Tene: sure
09:53 Tene That's all it is.
09:53 Tene Surely there are examples of universally-present methods in other languages you're more-familiar with.
09:54 lucian Tene: yeah, sure
09:56 luben left #parrot
09:58 lucian Tene: so what we need is a standard way for languages to export their libraries
09:58 lucian as an API of 'objects' and functions to operate on them
10:00 Tene lucian: That's exactly what I had working, and defined, in the past.
10:01 sorear Tene: wait, this used to work?
10:01 Tene sorear: Yes!  I got HLL interop working successfully three times, after it being broken by other committers.  Lemme find one of my blog posts...
10:01 Tene http://blogs.gurulabs.com/stephen/2009/​05/cross-language-library-loading.html
10:01 sorear Tene: define 'working'
10:02 Tene sorear: I could write a class in Rakudo, subclass it in Cardinal, and then call methods on it in scheme.
10:03 Tene And then load the scheme library that uses that Cardinal class from Rakudo, and call functions from that library.
10:03 Tene Etc.
10:04 jjore left #parrot
10:04 lucian Tene: that's pretty cool
10:06 sorear "cool", but does anyone actually care?
10:06 Tene sorear: Apparently not, no, nobody cared.
10:06 moritz Tene: the only way to make sure it's not broken constantly is to write tests
10:07 moritz people will only start to care once there's a significant body of useful libraries in at least one language
10:07 luben joined #parrot
10:09 Tene sorear: after the third time PCT or similar changes discarded my contributions, I stopped trying, and was bitter and grumpy about it for quite a while.
10:10 Tene moritz: Parrot has claimed that HLL interop is one of its significant goals, but that doesn't seem to actually be the case.
10:11 bacek left #parrot
10:11 moritz Tene: I agree
10:12 Tene That was one of my primary interests in Parrot, and without that, I've been much less interested in contributing anything.
10:15 Tene Hmm.  I've really tried to avoid being negative like this on the channel.  I do think you guys are doing some very great work, and I'm excited to see things coming together a bit nicer these days.
10:15 Tene Sorry for being so down.  Going to sleep now.
10:16 moritz Tene: sleep well. Dream of happy parrots :-)
10:21 lucian moritz: well, there is a significant body of useful libraries in several languages
10:21 lucian the only problem is the languages can't run them yet :)
10:21 moritz so they are not available to us
10:21 moritz which is what I meant
10:22 moritz "obviously" :-)
10:22 moritz re-implement p5 on top of parrot, make all of CPAN available to all languages implement on top of parrot => profit
10:23 moritz though the p5 community would be mad at you, because they'd lose their big killer argument for using Perl 5 :-)
10:23 lucian moritz: heh
10:23 lucian moritz: wouldn't big parts of rakudo be usable?
10:23 bacek joined #parrot
10:23 lucian you'd also solve the backwards compat argument between perl5 and perl6
10:23 lucian just treat perl5 as a foreign language that happens to be similar
10:24 moritz perl 6 has very different guts requirements than perl 5
10:25 moritz perl 6 is gradually typed, and built on a MOP and multi dispatch
10:25 moritz p5 is built on SVs and regexes :-)
10:26 lucian oh, multi-dispatch
10:26 lucian interesting
10:28 lucian moritz: you could still treat perl5 as a foreign language for sweet backwards compat
10:29 moritz lucian: that's what jnthn and sorear wrote blizkost for
10:29 moritz it turned out to be non-trivial :/
10:29 moritz it can currently marshal strings and closures
10:29 particle joined #parrot
10:30 lucian moritz: and wouldn't it be easier if perl5 was a parrot language?
10:31 fperrad joined #parrot
10:32 Tene lucian: Only in the sense that if it was a parrot language, a significant part of the work would already be done.
10:32 moritz lucian: it would, but while it's theoretically possible, it would be VERY HARD to do in practise
10:32 Tene An enormous amount of work, in the case of reimplementing.
10:32 moritz perl 5 has no specification
10:32 moritz it has a lot of ... idiosyncratic featuers
10:32 moritz and it has XS
10:32 moritz (which is the C extension)
10:32 Tene So, yes, in the sense of "If you already did most of the work, wouldn't it be easier to finish?"
10:32 * Tene really afk sleep now.
10:33 lucian moritz: oh. so perl5 really is a mess
10:33 lucian i always put that down to people hating it for the stupid syntax
10:34 moritz lucian: I love Perl 5. But reimplementing it is considered quasi impossible by everybody familiar with the internals
10:34 lucian moritz: i see
10:35 moritz these days there's a very comprehensive test suite that would help, but still no volunteer would do it
10:35 lucian moritz: i'd still love to see Tene's interop thing brough back to life
10:35 * moritz too
10:35 lucian it needs a few languages that work mostly ok for it to take off, i think
10:35 moritz but I'm too absorbed with p6 projects these days to take care of it
10:36 lucian rakudo, cardinal, pynie and the scheme thing would probably be enough
10:39 jjore joined #parrot
11:27 particle left #parrot
11:32 particle joined #parrot
11:41 jjore left #parrot
11:46 jjore joined #parrot
12:54 mj41_ joined #parrot
12:57 mj41 left #parrot
12:57 mj41_ is now known as mj41
13:08 Tommy joined #parrot
13:39 whiteknight joined #parrot
13:40 plobsing joined #parrot
13:42 Patterner left #parrot
13:52 Tommy left #parrot
13:52 Psyche^ joined #parrot
13:52 Psyche^ is now known as Patterner
13:52 xuan joined #parrot
13:53 xuan left #parrot
14:05 whiteknight good morning, #parrot
14:07 lucian i'm trying to figure out why pynie doesn't run
14:08 lucian I get this https://gist.github.com/723523
14:09 whiteknight what is on line 41 of include/gen_grammar.pir?
14:09 lucian whiteknight: reload the gist
14:09 lucian it's generated from http://bitbucket.org/allison/pynie/​src/fec1aec50472/Grammar/Grammar.pg
14:10 whiteknight lucian: the :unique_reg flag is gone. Remove all instances of that from the code
14:10 lucian whiteknight: but that's generated code. I have to figure out how it's generated first
14:11 whiteknight does pynie use NQP/PCT, or TGE?
14:11 JimmyZ joined #parrot
14:11 lucian whiteknight: there's Actions.npq and some PCT references in the code
14:12 whiteknight okay, PCT should not be generating :unique_reg. Do a search and see if it pops up anywhere
14:12 whiteknight at least, PCT should not be using :unique_reg
14:13 lucian whiteknight: nope, can't find any unique_reg outside generated files
14:13 whiteknight blah. can you do a search in the parrot repo?
14:14 lucian whiteknight: in a minute
14:15 whiteknight okay, thanks
14:15 whiteknight nothing should be generating it, that's a bug
14:16 whiteknight (and, IMCC should be ignoring it or something, so that's another bug)
14:16 lucian whiteknight: nope, nothing in parrot's repo
14:16 lucian whiteknight: oh, and pynie fails to build too apparently
14:16 lucian (now)
14:17 lucian whiteknight: https://gist.github.com/723535
14:18 lucian whiteknight: i can't find documentation on TGE
14:18 moritz lucian: it would be helpful to see the PIR around the line where the error is reported
14:19 moritz lucian: my guess is that there's an op used that has become a dynop in the mean time
14:19 lucian moritz: in here
14:19 lucian http://bitbucket.org/allison/pyni​e/src/fec1aec50472/src/builtins/
14:21 moritz lucian: yep, pow seems to be a dynop now
14:21 JimmyZ left #parrot
14:21 lucian for the record, the error message is really opaque
14:22 lucian or perhaps python spoilt me
14:22 moritz lucian: PIR is really an assembly language
14:22 moritz you can't apply the same standards as for high-level languages
14:22 moritz a
14:22 whiteknight but yes, the error messages IMCC produces are very bad
14:22 moritz .localdlib 'trans_ops'
14:22 moritz should help
14:22 lucian moritz: right, thanks
14:23 lucian i keep thinking that it doesn't seem right to be writing assembly
14:23 lucian i think there should be a C-like language instead of pir
14:23 lucian or something
14:23 moritz like winxed?
14:23 lucian moritz: that's close, yeah
14:23 lucian oh, and close too
14:23 moritz you can also use nqp-rx to write compilers :-)
14:23 lucian moritz: i'm not sure what's more maintanable
14:24 lucian moritz: for me, nqp isn't much help over pir, since I don't know perl
14:25 tadzik There's almost no Perl in NQP imho
14:25 tadzik it's just if, else, while and grammars + PIR
14:26 lucian tadzik: right. then it's probably ok, i'll take another look
14:30 lucian hmm, i think parrot gets line numbers wrong. i think it doesn't count doc lines
14:33 lucian moritz: with .localdlib 'trans_ops' i get https://gist.github.com/723557
14:33 plobsing lucian: imcc does get line numbers wrong, mostly in an odd contortion to get heredocs to work
14:33 lucian plobsing: right. it's quite confusing
14:33 moritz lucian: just to be clear, the .loadlib needs to be outside of subroutines
14:34 lucian moritz: it's just after the namespace declaration
14:34 moritz hm
14:34 lucian moritz: might've mispelled
14:35 lucian moritz: yay! works. thanks a lot
14:35 moritz \o/
14:35 lucian well, runs as in starts
14:35 moritz does the whole build work now?
14:35 lucian Method 'item' not found for invocant of class 'Pynie;Grammar'  for anything i type in the repl
14:35 lucian moritz: yeah, no errors
14:36 plobsing lucian: if you *want* to have a better compiler for this, you could work on pirc or pirate. or you could just consider it a lesson against growing a language organically optimizing for convenience.
14:37 lucian plobsing: right. so for the least effort towards getting pynie done, i have to live with it
14:37 plobsing I consider the effort to get something better to be herculean
14:38 lucian plobsing: i'm guessing deprecating pir isn't an option?
14:38 whiteknight it's already been done, I think
14:38 moritz not without alternatives.
14:38 plobsing I've proposed exactly that
14:38 whiteknight or, we're talking very strongly about it
14:38 lucian moritz: even winxed looks better to me
14:38 tadzik what about nqp?
14:38 lucian and that's not parrot-centric at all
14:39 moritz nqp compiles to pir
14:39 tadzik well, right
14:39 lucian tadzik: i guess i can't comment on that other than it may look too perlish to new parrot people
14:39 tadzik but it could compile to pasm, no?
14:39 whiteknight nqp compiles to a slightly bloated PIR, because it has to do things like account for lexicals and clostures
14:39 lucian moritz: wouldn't it be easier to retarget to pasm than to fix pir?
14:39 whiteknight if we had a language of similar level that didn't worry about lexicals and closures it would be much faster
14:39 moritz is pasm better than PIR in any substatial way?
14:40 tadzik lucian: maybe. I think Parrot may alredy look Perly to new people anyway. Look in what languages can you use the Compiler Toolkit
14:40 atrodo i think, if you seperate PIR from parrot, it has the possibility to be a decent asm-like language
14:40 whiteknight winxed seems to fit that bill, but winxed doesn't have built-in grammars
14:40 lucian tadzik: yeah, my point. C is as neutral as it gets
14:40 lucian tadzik: and "0" == false by default? really?
14:40 tadzik lucian: what do you mean?
14:40 plobsing whiteknight: do you think that's what winxed needs to become more widely used?
14:40 tadzik ah, I see
14:41 lucian tadzik: the default comparison for strings in parrot considers the string "0" false in a boolean context
14:41 plobsing lucian: 0 == false is C
14:41 tadzik yeah yeah, I got it
14:41 lucian tadzik: it can be overriden, but it's really weird
14:41 plobsing boolification of strings is a poorly defined operation
14:41 lucian and i'm assuming it's slower too
14:41 lucian plobsing: there are a few sane ways to do it, but none evaluate "0" to false
14:42 lucian plobsing: in python anything non-empty is true, so [], "", {} and 0 are false
14:42 lucian in ruby/java/clojure, everything not null/false is true
14:42 lucian anyway, that's a side-issue
14:43 plobsing lucian: "0" == false falls naturally out of C's "there are no bools, only ints" philosophy. boolification of strings is then logically atoi(). you may not agree with it, but it is simple and consistent.
14:43 lucian plobsing: as I said, it seems very silly to be, but it's non-important
14:44 lucian s/to be/to me/
14:45 lucian plobsing: what I do think is important is having a blessed language that's not assembly
14:46 plobsing what blessed language isn't assembly?
14:46 plobsing nqp?
14:46 lucian plobsing: nqp, close, winxed
14:46 lucian some system language for parrot
14:46 plobsing ok. so (choosing my favorite out of those) what are the barriers preventing you from using winxed?
14:47 plobsing and can I knock them down?
14:47 lucian plobsing: right now, legacy code
14:47 lucian plobsing: and the lack of a grammar/compiler toolkit for winxed
14:48 davidfetter joined #parrot
14:48 plobsing so if I hijacked a js compiler toolkit (probably js/cc, but i've been looking at ragel and ometa too), would that fit the bill?
14:49 lucian plobsing: i guess so
14:49 lucian it'd still require rewriting pynie, but its tiny so far anyway
14:49 lucian plobsing: perhaps even reuse Perl 6 Gramar?
14:49 moritz well, there are other non-tiny parrot based projects
14:49 lucian plobsing: since a lot of languages use PCT
14:49 moritz specifically rakudo
14:50 lucian moritz: of course. i'm assuming rakudo prefers npq to winxed
14:50 lucian moritz: but if I were to write a Qt binding for parrot languages, what would I write it in? certainly not pir
14:50 moritz though deprecating PIR might have the side effect of speeding up the adaption of other VMs as backends for rkaudo
14:51 lucian plobsing: i'm guessing if people could replace both PIR and NQP in their projects with winxed, they'd like it
14:51 moritz lucian: ideally you'd use whatever HLL you happen to like, and what's implemented on top of parrot
14:51 lucian moritz: that's a nice way of saying they'd dump parrot, right?
14:51 moritz lucian: no, that's not the plan at all
14:51 lucian moritz: oh, ok
14:52 moritz lucian: the plan is to support CLR and parrot, for a start
14:52 lucian i meant if PIR were to go away
14:52 lucian I see
14:52 moritz and the less PIR we use, the easier the support for other VMs becomes
14:52 lucian moritz: yep
14:52 lucian moritz: on that same note, RPython might be a good idea for pynie
14:53 lucian moritz: the only problem is that PyPy generates interpreters with a JIT, so pynie would be an interpreter + PBC jit
14:53 lucian moritz: and that's a bit silly
15:01 hercynium joined #parrot
15:02 hercynium left #parrot
15:11 whiteknight The low-level language to Parrot is going to become Lorito eventually
15:11 whiteknight There will be several middle-level languages that compile down to Lorito: PIR, NQP, Winxed, etc
15:12 whiteknight and HLL compilers will be able to use any of those if they want, or use something else and compile down to Lorito
15:12 tadzik Lorito is the new language-language?
15:12 lucian whiteknight: is there a draft design at least?
15:12 whiteknight I don't suspect many new projects are going to choose PIR as the middle-level language to build a compiler on, but that's just a guess. I think PIR will remain for backwards compatibility for HLLs that need it
15:13 whiteknight lucian: lots of ideas. December/January are supposed to be the time to nail down the design and get working on implementation
15:13 whiteknight tadzik: yes, Lorito will be the native "machine code" language of Parrot
15:13 lucian whiteknight: i see. good luck then :)
15:13 whiteknight everything else will compile down to Lorito
15:13 whiteknight I suspect that Lorito will not be too far different from CLR bytecode, at least not in terms of operations
15:13 whiteknight organization and metadata structures will be very different
15:15 atrodo whiteknight> how so?
15:15 whiteknight atrodo: what do you mean?
15:16 atrodo whiteknight> the Lorito/CLR comparision
15:19 lucian whiteknight: so is lorito supposed to be a bytecode representation?
15:23 whiteknight right. Lorito is the fancy name for our future asm/bytecode
15:23 whiteknight it's going to be much lower-level than PIR/PBC are now
15:23 whiteknight fewer ops
15:23 lucian whiteknight: so similar to PASM?
15:23 whiteknight each op is more primitive
15:23 whiteknight lower than PASM
15:23 lucian i see
15:23 whiteknight PASM has like 1300 ops, Lorito will have like ~50
15:23 moritz PASM is pretty close to PIR actually
15:23 whiteknight add, subtract, pointer dereference, etc
15:23 lucian whiteknight: then why not just use LLVM IR or something that already exists?
15:24 whiteknight yeah, PASM and PIR are just different syntaxes over the same idea
15:24 whiteknight lucian: good question. Lorito ops are intended to be at the same level as an LLVM op, and easy to translate into them for JIT
15:24 whiteknight so a Lorito op will probably be 1:1 with an LLVM op
15:24 whiteknight that's where JIT becomes insanely easy
15:24 plobsing lucian: every IR has an underlying set of assumptions. we are probably making slightly different assumptions.
15:25 whiteknight we are making slightly different assumptions, but keeping open the door that maybe LLVM won't be the only backend we ever support
15:25 atrodo Since Lorito still assumes PMCs at some level, that's the major differance
15:25 lucian right
15:25 whiteknight or that we may go to platforms where LLVM is not available (we could be interpreted there, but not JITed)
15:25 lucian whiteknight: good point
15:26 whiteknight I do hope that Lorito makes some operations available for easily working with PMCs, but it might be low-level structure access
15:26 whiteknight I really don't know what it will look like at this point
15:26 lucian whiteknight: right. nice to know more about it, anyway. thanks
15:27 lucian i can't figure this out https://gist.github.com/723623
15:27 whiteknight at that point, to implement a JIT we basically decide what we want to JIT, allocate memory, do a table lookup to convert our ops to LLVM ops, and compile
15:27 whiteknight (that's the *extremely simple* version, but not too far off)
15:27 dmalcolm joined #parrot
15:28 lucian whiteknight: have you looked at what ops other jits use? LuaJIT is really interesting
15:28 lucian and there are plenty. and some JVM assmeblers too
15:28 whiteknight yes, I've looked at LuaJIT. I've looked at smalltalk, CLR, JVM, etc
15:28 lucian whiteknight: ok. sorry, i'm not trying to be condescending. just making sure you're not missing somehting
15:30 NotFound whiteknight: winxed has lexicals and closures since about two months, and doesn't generated bloated pir.
15:34 whiteknight NotFound: oh, I didn't realize. My apologies
15:34 whiteknight lucian: not at all! Questions are always good
15:35 NotFound whiteknight: NM, I mention that just to signal that having closures and lexicals is not an excuse for bloating.
15:36 NotFound Surely the generatiion can be improved.
15:37 lucian fwiw, i consider lexicals vital for reliable code
15:38 NotFound I like the idea of having some sort of grammar engine in winxed, but haven't worked on such a plan myself. If someone wants to work on it, good!
15:40 lucian NotFound: I'd be fine with just writing PCT actions in winxed. I'll look into what's needed for that
15:40 NotFound lucian: Haven't looked at that, don't know much of PCT.
15:41 lucian NotFound: me neither :)
15:41 hercynium joined #parrot
15:42 moritz lucian: I don't think nqp requires the actions to be written in nqp
15:42 moritz lucian: it just calls them as methods
15:42 lucian moritz: afaict that's what happens, yes
15:46 whiteknight lucian: it's not just lexicals that's the issue. There are really two types of lexicals that need to be dealt with
15:46 whiteknight lexicals that operate at compile time, and those that operate at runtime
15:47 Coke dukeleto: partcl is copyright PaFO (both versions). if you think moving organization to parrot would help, lemme know.
15:48 NotFound Note that one can always use hand-coded lexer and parser, like winxed does. I know most people prefer grammar engines, but TIMTOWTDI
15:48 lucian NotFound: yeah, I'm thinking of using PyPy's
15:49 lucian NotFound: first I have to decide whether it's worth trying to save code from pynie
15:49 Infinoid left #parrot
15:51 Coke aloha, msg dukeleto: partcl is copyright PaFO (both versions). if you think moving organization to parrot would help, lemme know.
15:51 aloha Coke: OK. I'll deliver the message.
15:51 aloha Coke: Okay.
15:53 whiteknight I would really like to have an ANTLR backend that generates something that runs on Parrot
15:53 whiteknight an ANTLR backend that generates Winxed code would be amazing
15:53 whiteknight ANTLR backend to PIR would be good too
15:53 whiteknight an LALR parser generator that produces Parrotish code would be great too
15:53 NotFound Today is fashion writing compilers targeting javascript. Maybe some can be easily changed to target winxed.
15:54 whiteknight yes, that's true
15:54 * Coke would worry more about parrot running bytecode really fast.
15:54 atrodo Coke++
15:54 whiteknight Coke: there are many things to worry about
15:54 * Coke quotes airplane: "You've got to ... concentrate... concentrate... concentrate..."
15:54 NotFound Don't worry, be happy!
15:54 NotFound Do... do-do-do-dooo
15:58 dukeleto Coke: hokey dokey. It is up to you really.
15:58 plobsing left #parrot
15:58 plobsing joined #parrot
16:01 Infinoid joined #parrot
16:04 davidfetter left #parrot
16:12 NotFound What was the ticket about inheriting from 'Class'
16:13 fbrito joined #parrot
16:20 whiteknight i have no idea
16:20 dukeleto there was a lot of talk about Cardinal in here last night, after I went to bed
16:20 dukeleto I need to backlog
16:20 whiteknight really? Then I need to backlog too
16:26 Coke dukeleto: eh. happy to give out commit bits to people with CLAs already to get bugfixes.
16:26 dukeleto Coke: does partcl use github issues?
16:26 Andy joined #parrot
16:27 NotFound Ah, not a ticket. https://gist.github.com/723135
16:33 Coke dukeleto: there are some, yes. More at googlecode need to be migrated over.
16:34 dukeleto Coke: currently i don't know how to migrate github issues, but Github might be able to do it manually
16:34 lucian NotFound: I think i'll follow http://www.python.org/dev/peps/pep-0339/ closely for pynie
16:34 dukeleto Coke: there is an issue API, so we could write a script to do it
16:36 * whiteknight backlogs the Cardinal conversation from last night, becomes a little disheartened
16:36 whiteknight we really really need to upgrade our MOD
16:36 whiteknight MOP
16:36 dukeleto whiteknight: let's do it already
16:38 whiteknight Okay. We need a design. We could go with something like the Piumarta paper, which I think everybody liked
16:38 dukeleto whiteknight: link? I've never heard of that paper.
16:38 whiteknight or we could "borrow" what jnthn is doing for Rakudo
16:39 dukeleto whiteknight: chromatic has many ideas that he hasn't gotten written down yet, but I agree. We should probably use what jnthn++ has done as a baseline
16:39 whiteknight dukeleto: http://citeseerx.ist.psu.edu/viewdoc/download?​doi=10.1.1.132.7845&amp;rep=rep1&amp;type=pdf
16:39 dukeleto Roles are the atoms of a MOP, from what I see.
16:39 whiteknight reading through the code, jnthn's work is very similar to this Piumarta and Warth paper
16:40 lucian there's also The Art of the Metaobject Protocol
16:40 lucian I can't see a case where something CLOS-like wouldn't work
16:40 * whiteknight has to go for a meeting. back later
16:41 contingencyplan joined #parrot
16:42 NotFound I see two problems in that code: first, it doesn't set a namespace for the newly created Class. Then the logic for finding the namespace doesn't handle 'Object'.
16:43 NotFound For the first, a way of setting the Namespace for the class must be provided. The second, just add a check for the one provided in the first.
16:43 NotFound After doing that... who knows, maybe just works.
16:44 NotFound I'll give it a try.
16:44 Coke dukeleto: in the time it took to write the script, I could probably migrate the interesting ones by hand.
16:44 Coke but if such a conversion tool already exists, I won't complain.
16:45 dukeleto Coke: the tool doesn't exist yet. How many github issues do you have? Cardinal needs the same thing, and they have 33 issues.
16:46 Coke about that many
16:46 Coke many of which aren't worth bringing over, as they reflect the status of partcl-old, not partcl-new
16:48 fbrito left #parrot
16:48 fbrito joined #parrot
16:52 fbrito whiteknight: please, when you have some time take a look at the questions that I wrote on the GCI task: http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129104923072
16:54 dukeleto fbrito: interesting
16:55 dukeleto fbrito: i would do EXCEPTION_UNIMPLEMENTED for step 4
16:57 dukeleto fbrito: i don't think there is a recv test to copy. You will just have to write it, but the test is very similar to others in t/pmc/socket.t
16:58 dukeleto fbrito: add 2 functions to t/pmc/socket.t : test_read() and test_readline()
17:00 fbrito ok, thank you! :D
17:04 dukeleto fbrito: examples/pir/ might be helpful for you
17:17 NotFound I have a temptative patch for the subclassing Class problem working.
17:21 dukeleto NotFound: !!!
17:21 dukeleto NotFound: that sounds awesome
17:21 lucian NotFound: +1!
17:21 * dukeleto likes the sound of temptative. It has a nice ring to it.
17:22 lucian NotFound: btw, I'll probably take your approach and just use PyPy's parser. I'll only change the code generation
17:22 NotFound Let me clean debug proves and nopaste it....
17:26 nopaste "NotFound" at 192.168.1.3 pasted "subclass Class" (14 lines) at http://nopaste.snit.ch/26367
17:30 dukeleto NotFound: do you have a passing test for that?
17:30 NotFound dukeleto: https://gist.github.com/723135
17:31 dukeleto NotFound: that looks like it is failing
17:31 dukeleto NotFound: or do you need to add another conditional?
17:33 NotFound dukeleto: it works for me
17:35 NotFound Let me clean and recompile to be sure...
17:35 NotFound Yes, it works.
17:39 NotFound Well, it doesn't fail, but the result is not good. The Class object and its instance are somewhat mixed.
17:51 dukeleto NotFound: i assume that our object model is broken enough that the problem will pop up somewhere else
17:52 NotFound dukeleto: I think the problem, as ususal, is lack of encapsulation. Lots of parts 'know' how Class internals should be.
17:53 fbrito ok, I don't know how I am going to write tests for "read" on sockets :(
17:53 NotFound Surely some hacks can be added, but I think the result will be too fragile.
17:55 NotFound I'll give up for this time.
17:56 cotto_work ~~
17:58 NotFound fbrito: the task says : "The read method should work the same as recv (feel free to copy the test)."
17:58 fbrito but I couldn't find any recv test :)
17:58 NotFound Oh, nice.
17:59 fbrito I don't know much about sockets. if I am going to test "read", I need something to "send", right? and because I am dealing with sockets, I will need a server and a client, right?
18:00 NotFound fbrito: yes
18:00 fbrito (I am reading the documentation on sockets.pmc)
18:02 fbrito how can I make the server wait for a connection and make the client try to connect, without threads? the documentation says something about "asynchronous version", but is that working?
18:03 NotFound Nope
18:03 fbrito (I feel that I am talking non-sense stuff, ahhaha. definitely need to learn more about sockets)
18:04 NotFound fbrito: I think you need to use threads of fork, and none of that can be done in portable way right now.
18:08 fbrito hm, so any ideas on how should I test read on sockets? :D
18:09 moritz by writing to it
18:12 fbrito moritz: and for that I will need a client and a server, right? or is there a specific way to do it on tests? (faking a socket connect)
18:12 moritz fbrito: you need a client and a server, yes
18:13 NotFound fbrito: try to open 127.0.0.1 port 25, skip all if failed.
18:13 fbrito moritz: but how can I make the server wait for a connecting and make the client connect to it at the same time? as far as I know, waiting for connections blocks the process
18:14 NotFound Or you can try ports 7 and 13 for example.
18:14 moritz fbrito: you'll probably need to start a second process
18:14 moritz or use threads
18:15 fbrito ok, found some interesting things on t/pmc/threads.t
18:16 NotFound If you fix threading while doing socket tests will be awesome ;)
18:17 fbrito what? threading is broken? :S
18:18 NotFound I think soft threads are working, but that shouldn't be enough for this task.
18:19 whiteknight if creating tests for read and readline on sockets is too hard, we can ignore that
18:19 whiteknight I was hoping there were some tests available to model on
18:20 NotFound whiteknight: is not easy to find a portable and reliable way.
18:21 NotFound Other than lame ways like trying some well known ports and skip all if that fails.
18:21 whiteknight fbrito: skip the tests
18:22 NotFound In heroic times using the echo port was reliable, but no one runs that service these days.
18:23 NotFound I think killing the echo port was the 13 task of Hercules.
18:24 Tene fbrito: You could possibly do it by launching another process, but that's kind of a pain.
18:25 whiteknight The purpose was to write the new methods, not to implement a new and shakey mechanism for testing sockets
18:25 Tene whiteknight: Sorry about that.  I've tried to avoid griping in the channel, because I don't want to affect morale.
18:25 whiteknight Tene: Don't worry about it. Griping is fine and it's something we need to fix.
18:25 Tene Yeah.  Really async is the way to way to do it, but NYI.
18:25 whiteknight I just don't want to waste fbrito's GCI time trying to fix a problem that isn't his
18:26 whiteknight yes, async is it
18:28 NotFound Even in that case, we'll want to have a test for sync reads too.
18:30 Tene NotFound: For that, we want reasonable threading support, which we also don't have.
18:30 whiteknight I haven't wanted to start asynch IO until at least a little work gets done on threading
18:31 whiteknight I do think, if there were interest in it, that we could have a green threads implementation in before 3.0
18:31 dukeleto fbrito: you can still test the read method without forking or threads
18:31 Tene whiteknight: I dunno, as I've said, I haven't seen any evidence that Parrot actually cares about HLL interop.
18:31 dukeleto fbrito: you can test the error condition it returns
18:31 whiteknight Tene: we do care. We need to make a way to test it so we don't regress
18:32 Tene whiteknight: We could always run a simple echo server on parrot.org, and then use the tests as a means of tracking parrot users globally. ;)
18:32 dukeleto fbrito: but other than that, don't worry about forking a server in the tests. That it outside the scope of your gci task
18:32 NotFound Tene: can of problems: firewalls, proxies...
18:32 whiteknight Right now, we need to worry about making HLL projects succeed, because too many of them are not succeeding
18:32 dukeleto I am working on Socket tests in the ipv6 branch
18:32 fbrito dukeleto: ok, sure
18:32 whiteknight without HLLs, it doesn't matter if we have HLL interop
18:32 dukeleto I will fix this stuff, but not now and it isn't fbrito++'s job to do it
18:32 whiteknight dukeleto++
18:32 NotFound dukeleto: I think so
18:33 NotFound fbrito++ anyway
18:33 dukeleto fbrito: just add basic tests that read and readline and make sure you get the expected exception
18:34 dukeleto fbrito: use 'throws_like' or 'throws_substring' to test the error message
18:34 dukeleto fbrito: ack for them in t/ and you will get lots of examples
18:34 dukeleto fbrito: then you will be done with your task :)
18:34 fbrito yes, examples! thank you :)
18:35 NotFound dukeleto: we should add a 'throws_type' to avoid depending on messsage text.
18:36 dukeleto fbrito: perldoc ./runtime/parrot/library/Test/More.pir
18:36 dukeleto NotFound: you are right
18:37 Tene If we get my exceptions fixes branch merged, we could even add 'throws_isa'
18:37 NotFound Hey... that can be a GCI task.
18:37 cotto_work seen tcurtis
18:37 aloha tcurtis was last seen in #parrot 13 hours 5 mins ago joining the channel.
18:37 dukeleto Tene: what would be the difference between throws_isa and throws_type ?
18:38 whiteknight Tene: where is your exceptions fixes branch?
18:38 Tene dukeleto: parrot exceptions have an integer type code, but in parrot trunk, you can only throw 'Exception' objects, and that's it, no other classes.
18:38 NotFound Subclassing of Exception?
18:38 whiteknight Tene: I will merge your branch tonight if it's possible
18:39 Tene whiteknight: https://svn.parrot.org/parrot/​branches/exceptions_refactor/
18:39 Tene NotFound: yes
18:39 whiteknight (we have too many branches to keep track of all the important ones)
18:39 dukeleto Tene: a subclass of exception can't be thrown currently ?
18:39 Tene dukeleto: That's right.
18:39 whiteknight dukeleto: I doubt it
18:39 NotFound whiteknight: I ranted about that in a ticket yesterday.
18:39 dukeleto Tene: wow.
18:39 Tene I held off on merging it when I finished it, pending on adding more tests.
18:39 whiteknight NotFound: assign it to me
18:39 dukeleto We gonna fix that too. That is just insanity.
18:39 whiteknight Tene: do you know git?
18:40 NotFound whiteknight: no, ranted in a ticket unrelated to that.
18:40 Tene whiteknight: Oops, I forgot that we migrated.
18:40 Tene whiteknight: Yes, I do.
18:40 whiteknight Tene: I want to get that branch merged, and soon
18:40 whiteknight We need to bring it up to date with master and merge it
18:40 Tene https://github.com/parrot/par​rot/tree/exceptions_refactor
18:40 whiteknight I don't think a lot has changed since then
18:40 whiteknight but it's good to update it anyway
18:40 dukeleto Tene: does "make fulltest" pass in your branch?
18:41 dukeleto Tene: do you think anything you changed could break HLL code?
18:41 Tene dukeleto: It did pass, back when I wrote it.
18:42 Tene dukeleto: No, it only added capabilities, didn't change any existing behavior (except crashes if you tried to throw anything but a parrot;Exception)
18:42 Tene I may be able to work on it tonight.  Where are we in a release cycle?
18:43 dukeleto Tene: we have ~3 weeks until next release
18:43 moritz plenty of time to next release
18:43 Tene I had a second stage of that refactor to do, but I don't remember what it was anymore.
18:43 whiteknight Tene: I will be happy to help. I will do anything you need me to do
18:44 Tene jnthn wants a lexical throw variant
18:44 dukeleto Tene: do you have a failing test for throwing a child of Exception?
18:44 Tene dukeleto: I don't think there's one in Parrot right now.  I can write one for you, though.
18:44 whiteknight I'm not sure subclasses of ExceptionHandler could be used either
18:44 whiteknight I don't remember that far back
18:44 Tene They can't.
18:45 whiteknight awesome </sarcasm>
18:46 dukeleto i think we should concentrate on throwing children of Exception, then add ExceptionHandler in a different branch. That could be a lot more work.
18:46 Tene There are also problems with using a sub as an exception handler, in place of a label.
18:46 dukeleto Tene: really? Do those bugs have tickets?
18:47 Tene dukeleto: no idea
18:47 Tene too long ago
18:47 dalek parrot: 05ab1f5 | Coke++ | config/ (2 files):
18:47 dalek parrot: Allow spaces in install dir. TT #1716
18:47 dalek parrot: review: https://github.com/parrot/parrot/commit/05ab1f5a79
18:47 dalek parrot: a1f5f63 | Whiteknight++ | src/pmc/mappedbytearray.pmc:
18:47 dalek parrot: fix to mappedbytearray.pmc to make it build on my system
18:47 dalek parrot: review: https://github.com/parrot/parrot/commit/a1f5f6340e
18:51 dalek TT #1716 closed by whiteknight++: Parrot won't install when there's a space in the --prefix path
18:51 dalek TT #1716: http://trac.parrot.org/parrot/ticket/1716
18:58 Tene dukeleto: https://gist.github.com/724008
18:58 theory joined #parrot
18:59 Tene dukeleto: note the type and message of the second exception caught.
18:59 Tene parrot;Exception, and 'Not a throwable object'
19:00 dukeleto Tene: ok, that code can be turned into a nice test case
19:01 Tene dukeleto: Just make sure that you distinguish between the actual thrown object, and the exception thrown from trying to throw a non-throwable object.
19:01 dukeleto Tene: yeppers. I don't think i will have time today to work on that. Do you want to do it? Or should we make it a gci task to write some tests using that gist ?
19:01 * dukeleto has a date with the dentist today
19:02 Tene dukeleto: I can't do any work on it until tonight.  I'm going to work shortly.
19:04 Tene Oh, right, I kind of remember this... I ran into some really weird behavior with subclasses of PMCs, and where they stored their attributes.
19:05 Tene a subclass of Exception would have two different sets of attributes, depending on whether you used getattribute/setattribute, or the get_pmc_keyed_str vtable.
19:06 Tene haha, that test doesn't actually work under the branch, because it can't find a resume continuation, probably because that continuation was put in the wrong attribute store.
19:06 fbrito dukeleto: if you don't want to go to the medic you can always call them with an excuse... something like: sorry, I can't go today. I am feeling sick!
19:07 dukeleto Tene: i am actually adding the test now. Should be done in a minute.
19:08 Tene dukeleto: Look at the updated gist
19:08 dukeleto Tene: i am adding this test to master, is that ok? or do you want it on that branch?
19:08 Tene If you want to resume, you need to fetch ex['resume'], and not use getattribute to fetch the resume continuation.
19:08 Tene dukeleto: Master is fine.
19:08 dukeleto Tene: ok, will use updated gist.
19:09 dukeleto Tene: you can cherry-pick it over, if you want
19:09 Tene 'k
19:09 rurban joined #parrot
19:12 dalek parrot: e4e4eac | NotFound++ | src/pmc/mappedbytearray.pmc:
19:12 dalek parrot: delete a debug fprintf accidentaly included in the mappedbytearray merge
19:12 dalek parrot: review: https://github.com/parrot/parrot/commit/e4e4eacaf4
19:15 rurban left #parrot
19:19 dukeleto I hate the way tests are todo'ed in PIR
19:19 whiteknight dukeleto: AMEN
19:19 dukeleto I have my test, and now I have to change everything around to TODO it, and it is really pissing me off
19:20 dukeleto We need to just set a lexical variable, like in Perl 5.
19:20 dukeleto Tene: i am just going to add the test to your branch, so I don't have to TODO it
19:20 dukeleto Tene: and you can use it while fiddling with code
19:22 cotto_work dukeleto: also amen
19:23 dalek parrot: 6e99560 | luben++ | src/pmc/mappedbytearray.pmc:
19:23 dalek parrot: ISO C90 forbids mixed declarations and code
19:23 dalek parrot: review: https://github.com/parrot/parrot/commit/6e995609be
19:23 dalek parrot/luben/gc_threshold_adjust: ba88b03 | Whiteknight++ | NEWS:
19:23 dalek parrot/luben/gc_threshold_adjust: change the NEWS entry. Too many files are having their functions updated to list individually
19:23 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/ba88b03c6b
19:23 dalek parrot/luben/gc_threshold_adjust: 139944d | Whiteknight++ | / (28 files):
19:23 dalek parrot/luben/gc_threshold_adjust: Merge branch 'exit_func_rename'
19:23 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/139944dd36
19:23 dalek parrot/luben/gc_threshold_adjust: 3097140 | Whiteknight++ | docs/project/ (2 files):
19:23 dalek parrot/luben/gc_threshold_adjust: Merge branch 'master' of github.com:parrot/parrot
19:23 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/3097140a8b
19:23 dalek parrot/luben/gc_threshold_adjust: dcb1b5b | (Matt Rajca)++ | / (16 files):
19:23 dalek parrot/luben/gc_threshold_adjust: Rename public functions in src/utils.c
19:23 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/dcb1b5b6d1
19:23 dalek parrot/luben/gc_threshold_adjust: 153eb84 | mikehh++ | src/exit.c:
19:23 dalek parrot/luben/gc_threshold_adjust: fix item detail to pass c_function_docs.t
19:23 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/153eb8484e
19:23 dalek parrot/luben/gc_threshold_adjust: 88a1a0c | Whiteknight++ | /:
19:23 dalek parrot/luben/gc_threshold_adjust: Merge branch 'master' of github.com:parrot/parrot
19:23 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/88a1a0cc31
19:23 dalek parrot/luben/gc_threshold_adjust: 7ad73bd | dukeleto++ | / (2 files):
19:23 dalek parrot/luben/gc_threshold_adjust: [t] Add a basic test for the Addrinfo PMC
19:23 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/7ad73bd58c
19:23 dalek parrot/luben/gc_threshold_adjust: 61d023e | dukeleto++ | / (2 files):
19:23 dalek parrot/luben/gc_threshold_adjust: Revert "[t] Add a basic test for the Addrinfo PMC"
19:23 dalek parrot/luben/gc_threshold_adjust:
19:23 dalek parrot/luben/gc_threshold_adjust: This reverts commit 7ad73bd58ca2a092c67061891b8c4e7f91c1f9bc.
19:23 dalek parrot/luben/gc_threshold_adjust:
19:23 dalek parrot/luben/gc_threshold_adjust: This commit should have gone into the tt1798_ipv6 branch. I did
19:23 dalek parrot/luben/gc_threshold_adjust: not releaze that the Addrinfo PMC was added in that branch.
19:23 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/61d023e235
19:23 dukeleto oh boy.
19:23 dalek parrot/luben/gc_threshold_adjust: a34696c | mikehh++ | / (3 files):
19:23 dalek parrot/luben/gc_threshold_adjust: add patch (modified) from bacek++ to fix TT #1872
19:23 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/a34696c8d8
19:24 dalek parrot/luben/gc_threshold_adjust: 9a7cfab | bacek++ | include/parrot/pointer_array.h:
19:24 dalek parrot/luben/gc_threshold_adjust: Properly calculate CELL_PER_CHUNK.
19:24 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/9a7cfabd75
19:24 luben oooo
19:24 dalek parrot/luben/gc_threshold_adjust: be82239 | bacek++ | src/gc/gc_ms2.c:
19:24 cotto_work I thought dalek was detecting and avoid those now.
19:24 dalek parrot/luben/gc_threshold_adjust: One more fix of GC MS2 for tracing stack pointers. Strings are stored in different Pointer_Array
19:24 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/be8223984f
19:24 luben sorry
19:24 dalek parrot/luben/gc_threshold_adjust: 0753977 | mikehh++ | t/steps/auto/revision-01.t:
19:24 dalek parrot/luben/gc_threshold_adjust: fix test to aviod passing TODO's
19:24 dalek parrot/luben/gc_threshold_adjust:
19:24 dalek parrot/luben/gc_threshold_adjust: I think this test is redundant at present as it was svn related
19:24 dalek parrot/luben/gc_threshold_adjust: and should probably be removed from the repository
19:24 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/0753977ca4
19:24 dalek parrot/luben/gc_threshold_adjust: 4e441aa | allison++ | ports/debian/ (2 files):
19:24 dalek parrot/luben/gc_threshold_adjust: Updating Debian packaging files for 2.9.1 supported release.
19:24 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/4e441aab7f
19:24 dalek parrot/luben/gc_threshold_adjust: f8989dd | luben++ | / (48 files):
19:24 dalek parrot/luben/gc_threshold_adjust: Merge branch 'master' into luben/gc_threshold_adjust
19:24 dalek parrot/luben/gc_threshold_adjust: review: https://github.com/parrot/parrot/commit/f8989ddd8e
19:24 luben sorry guys
19:25 Coke whiteknight: thanks for applying that.
19:25 whiteknight Coke: No problem. Sorry it took me so long
19:27 whiteknight First I had local changes, then there was a bug because I had a bad rev and forgot to pull, then I used the wrong commands to Configure.pl...
19:27 dukeleto Tene: ug. Merging master into exceptions_refactor now. Ug.
19:27 whiteknight it was like a Three Stooges show, except it was just me being stupid at my keyboard
19:28 Tene dukeleto: You may do better by trying to rebase e-r on top of master.
19:29 fbrito and I am almost done with my task. just waiting for fulltest
19:29 whiteknight I am sincerely starting to believe that we need a new channel to just host commit feeds
19:29 whiteknight and trac change feeds, and other feeds
19:29 whiteknight fbrito++
19:29 Coke whiteknight: at that point, why bother? just subscribe to the feed via rss?
19:29 Coke (+1 from me on that. ;)
19:29 Coke dalek: give me an RSS feed.
19:30 whiteknight Coke: because the feed is too high-volume. Dalek's huge vomit list would overwhelm the rest of my content
19:30 whiteknight plus, if I go away from my computer for a day, I already come back to like 100+ RSS entries. I don't need dalek piling on more crap
19:31 Tene just commit less!
19:31 Tene ;)
19:31 Coke whiteknight: I had that commit already applied in my master. did a git pull --rebase, and it seems to have DTRT.
19:31 Coke yay.
19:33 fperrad left #parrot
19:34 fperrad joined #parrot
19:34 cotto_work luben: it's a shortcoming of dalek
19:35 luben yes. I was not expecting the merge to flood the channel
19:36 Coke anyone mind if I remove http://trac.parrot.org/parrot/report/30 ?
19:41 dukeleto Tene: ug. I can't go on with this merge.
19:42 Tene dukeleto: It's a pretty huge time difference; I last worked on this stuff over a year ago, iirc.
19:42 Tene It's only like six commits or something, though.
19:42 dalek parrot/exceptions_refactor_merge: 9073bda | dukeleto++ | / (2211 files):
19:42 dalek parrot/exceptions_refactor_merge: Attempt to merge branch 'master' into exceptions_refactor
19:42 dalek parrot/exceptions_refactor_merge:
19:43 dalek parrot/exceptions_refactor_merge: This doesn't compile yet.
19:43 dalek parrot/exceptions_refactor_merge:
19:43 dalek parrot/exceptions_refactor_merge: Conflicts:
19:43 dalek parrot/exceptions_refactor_merge: src/ops/core.ops
19:43 dalek parrot/exceptions_refactor_merge: src/pmc/exceptionhandler.pmc
19:43 dalek parrot/exceptions_refactor_merge: src/scheduler.c
19:43 dalek parrot/exceptions_refactor_merge: review: https://github.com/parrot/parrot/commit/9073bda22c
19:43 mikehh Coke: seems reasonable - did the tickets move out as well?
19:43 dukeleto I just created a branch for where I am stopping int the merge.
19:43 Coke mikehh: they've all been closed.
19:43 dukeleto Tene: perhaps I should have rebased, but i don't have more time to mess with it now.
19:43 Tene dukeleto: that's fine.  I might look at it tonight.
19:43 dukeleto Tene: the changes were nontrivial to sort out
19:43 * Coke kills the report.
19:44 dukeleto Tene: i probably resolved some stuff incorrectly, but it is close
19:44 Tene afk going to work
19:44 Coke is #650 worth keeping open?
19:44 sorear cotto_work: dalek's detection works by counting commits.  luben went under the threshold by... 1
19:47 dalek parrot/exceptions_refactor_merge: 416e564 | dukeleto++ | t/pmc/exception.t:
19:47 dalek parrot/exceptions_refactor_merge: [t] Add tests for throwing subclasses of Exception, tene++
19:47 dalek parrot/exceptions_refactor_merge: review: https://github.com/parrot/parrot/commit/416e5642aa
19:47 dukeleto Tene: there is a test for you ^^^
19:51 fbrito ok, I think I have something: https://github.com/parrot/parrot/pull/16
19:51 mikehh Coke: I think we did that didn't we?
19:51 whiteknight Coke: +1 (remove report #30)
19:52 whiteknight Coke: Assign ticket #650 to kid51
19:52 whiteknight he has a branch open now to refactor headerizer, so this probably works with that
19:53 Coke kid51 points out that we are dual-hosting perl5's Pod::Simple, but it became core in 5.9.3 - I'm going to open a ticket about bumping our min perl requirement.
19:53 whiteknight fbrito: I will look at it in a minute
19:56 dalek TT #1878 created by coke++: Increase minimum perl 5 version to 5.9.3
19:56 dalek TT #1878: http://trac.parrot.org/parrot/ticket/1878
19:56 fbrito whiteknight: sure! take your time
20:00 whiteknight fbrito: The code looks good. I don't think you needed to change src/pmc/socket.pmc:recv, since it was already calling the function it should be, but that's not a big deal
20:00 dukeleto Coke: that effectively makes most people use 5.10 to build parrot, since most people don't use odd-numbered Perls
20:01 dukeleto Coke: i don't know of a distro that comes with 5.9. It is usually either 5.8.x or 5.10.x
20:01 Coke dukeleto: whoops, yes. updating ticket.
20:02 whiteknight dukeleto: I have a copy of fbrito's parrot repo, and I want to push his changes into parrot/parrot
20:02 dukeleto while i think 5.8.x should be dead and buried, i realize that requiring 5.10.x will add another barrier to compiling parrot
20:02 whiteknight so I git remote add parrot ....parrot/parrot.git, and I had been doing "git push parrot <branch>:<remote branch>"
20:02 dukeleto whiteknight: ok
20:02 Coke dukeleto: ticket fixed.
20:02 tadzik people using 5.8 are probably not adventorous enough to build Parrot anyway
20:02 whiteknight dukeleto: is there a better way to do that? Is there a way to sign-off on it?
20:03 whiteknight or does sign-off only work with git am?
20:03 dukeleto whiteknight: blarg. don't worry about sign-off now. It is a pain.
20:03 Coke dukeleto: it's possible for us to build with an older perl, but IMO it's not worth our time.
20:03 whiteknight dukeleto: okay, no big deal. Is what I am doing a reasonable way of doing things?
20:03 dukeleto whiteknight: yes.
20:04 whiteknight dukeleto++ # That's all I needed to know!
20:04 dukeleto whiteknight: if branch = remote_branch, then you only need "git push parrot branch"
20:04 whiteknight ah, even better
20:04 dalek parrot/gci_read_socket: 93996b1 | fbrito++ | src/pmc/ (2 files):
20:04 dalek parrot/gci_read_socket: Move read and readline from FileHandle to Handle
20:04 dalek parrot/gci_read_socket: review: https://github.com/parrot/parrot/commit/93996b1b21
20:04 dalek parrot/gci_read_socket: da7f551 | fbrito++ | src/ (2 files):
20:04 dalek parrot/gci_read_socket: Make recv method call Parrot_io_reads
20:04 dalek parrot/gci_read_socket: review: https://github.com/parrot/parrot/commit/da7f551b2f
20:04 dalek parrot/gci_read_socket: 617ebe6 | fbrito++ | src/io/api.c:
20:04 dalek parrot/gci_read_socket: Make Parrot_io_readline throw exception on Socket
20:04 dalek parrot/gci_read_socket: review: https://github.com/parrot/parrot/commit/617ebe6d2a
20:04 dalek parrot/gci_read_socket: 4af637d | fbrito++ | src/pmc/ (2 files):
20:04 dalek parrot/gci_read_socket: Remove read and readline from FileHandle (should be inherited from Handle)
20:04 dalek parrot/gci_read_socket: review: https://github.com/parrot/parrot/commit/4af637d635
20:04 dalek parrot/gci_read_socket: 35efb35 | fbrito++ | t/pmc/socket.t:
20:04 dalek parrot/gci_read_socket: [t] Move socket get_fd test to its own method
20:04 dalek parrot/gci_read_socket: review: https://github.com/parrot/parrot/commit/35efb357d2
20:04 dalek parrot/gci_read_socket: d3bdb44 | fbrito++ | t/pmc/socket.t:
20:04 dalek parrot/gci_read_socket: [t] Add test to Socket readline (not implemented)
20:04 dalek parrot/gci_read_socket: review: https://github.com/parrot/parrot/commit/d3bdb44cc5
20:04 dalek parrot/gci_read_socket: 4a2f0c7 | fbrito++ | t/pmc/socket.t:
20:05 dalek parrot/gci_read_socket: [t] Add test to Socket read
20:05 dalek parrot/gci_read_socket: review: https://github.com/parrot/parrot/commit/4a2f0c7585
20:05 dukeleto whiteknight: and if you do a "[push] default = current" in your ~/.gitconfig, you only need "git push parrot"
20:05 dukeleto whiteknight: see https://github.com/leto/Util/​blob/master/config/.gitconfig for details
20:05 dukeleto whiteknight: that makes it so your current branch is the default thing to push
20:16 Coke the pirc_config branch can be deleted now.
20:18 whiteknight I'll do that in a minute, if nobody beats me to it
20:19 Coke what's the point of "mk_manifest_and_skip.pl" in a git world?
20:21 Coke (Still supposed to do the same thing? ISTR it was not doing anything when I edited .gitignore, and .gitignore is saying it was generated by mk_manifest, which it isn't anymore, issit?)
20:22 tadzik btw. I have a patch fixing hello world in bf optimizing compiler, but countdown still doesn't work. Moreover, I'm not sure how that actually works, and whether it's not a coincidence. Is it worth applying?
20:22 Coke MANIFEST.SKIP contains a ref to "lib/DumbLink.pm" which seems to be dead.
20:23 dalek winxed: r697 | NotFound++ | trunk/winxedst0.cpp:
20:23 dalek winxed: allow more usages of operator =: in stage 0
20:23 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=697
20:26 dukeleto Coke: mk_manifest_and_skip.pl regenerates MANIFEST{.SKIP}
20:26 dukeleto Coke: not sure how .gitignore is related
20:28 dalek parrot: 35efb35 | fbrito++ | t/pmc/socket.t:
20:28 dalek parrot: [t] Move socket get_fd test to its own method
20:28 dalek parrot: review: https://github.com/parrot/parrot/commit/35efb357d2
20:28 dalek parrot: d3bdb44 | fbrito++ | t/pmc/socket.t:
20:28 dalek parrot: [t] Add test to Socket readline (not implemented)
20:28 dalek parrot: review: https://github.com/parrot/parrot/commit/d3bdb44cc5
20:28 dalek parrot: 4a2f0c7 | fbrito++ | t/pmc/socket.t:
20:28 dalek parrot: [t] Add test to Socket read
20:28 dalek parrot: review: https://github.com/parrot/parrot/commit/4a2f0c7585
20:28 dalek parrot: 157ac28 | Whiteknight++ | / (6 files):
20:28 dalek parrot: Merge branch 'gci_read_socket'
20:28 dalek parrot: review: https://github.com/parrot/parrot/commit/157ac28240
20:33 whiteknight msg fbrito I have merged the sockets code. You need to change the state to NeedsReview on google-melange.com so I can close it. Thanks
20:33 aloha OK. I'll deliver the message.
20:33 dukeleto fbrito++
20:35 fbrito whiteknight: ops! Done! Already the 2nd time that I forget to change the state.
20:37 whiteknight fbrito: it's not showing up for me
20:38 fbrito really? here it is...
20:38 fbrito I think that GCI website doesn't scale very well :P
20:41 whiteknight I need to start making more tasks
20:42 theory left #parrot
20:47 dukeleto whiteknight++
20:47 fperrad left #parrot
20:55 dalek winxed: r698 | NotFound++ | trunk/winxedst1.winxed:
20:55 dalek winxed: mininal refactor and codingstd fixes of Emit and Tokenizer classes
20:55 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=698
20:59 bacek left #parrot
21:00 whiteknight We've mined all the low-hanging fruit from the IOTaskList
21:01 dalek winxed: r699 | NotFound++ | trunk/token.cpp:
21:01 dalek winxed: fix generated utf8 literals in stage 0
21:01 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=699
21:01 dalek tracwiki: v18 | whiteknight++ | IOTasklist
21:01 dalek tracwiki: +items which have been done for GCI
21:01 dalek tracwiki: http://trac.parrot.org/parrot/wiki/I​OTasklist?version=18&amp;action=diff
21:02 NotFound whiteknight: a task about adding throws_type to Test/More.pir will be nice.
21:04 NotFound Same as throws_like but checking the Exception type instead of the message.
21:04 dukeleto +1 to that
21:05 NotFound And bonus points for changing a bunch of test to use it.
21:05 dukeleto the task should include tests and docs for it, and mark it 'Difficult'
21:05 dukeleto NotFound: that can be a different task
21:05 NotFound Aye
21:06 dukeleto changing each test file that uses throw_like can actually be a seperate task
21:06 dukeleto some of them will be more challenging than others
21:07 NotFound And a few shouldn't be changing, if they look in the message for a class name or something.
21:11 * cotto_work wonders what a fruit mine looks like
21:13 NotFound I've tested a modified version of winxed stage 1 that uses MappedByteArray to read the source file and works fine. No speed gain, though, I think parsing time is several order of magnitude bigger than source reading.
21:17 dalek tracwiki: v35 | whiteknight++ | GCTasklist
21:17 dalek tracwiki: http://trac.parrot.org/parrot/wiki/G​CTasklist?version=35&amp;action=diff
21:25 theory joined #parrot
21:26 theory_ joined #parrot
21:26 theory left #parrot
21:26 theory_ is now known as theory
21:28 whiteknight and now it's time for me to leave. Laterz
21:28 whiteknight left #parrot
21:35 nwellnhof joined #parrot
21:37 nwellnhof Parrot_hsh_get?
21:37 nwellnhof why not Parrot_hash_get?
21:39 nwellnhof why ruin a perfectly good function name just to save one letter?
21:39 sorear typo?
21:40 NotFound Perfectly good? I can't imagine what it does just by the name.
21:40 Coke I assume it was to have consistent 3 letter names for the subsystem. -1 from me.
21:40 NotFound Is in the hash subsystem and get... something.
21:41 NotFound Coke: I think the convention is 3 or 4 letters.
21:41 nwellnhof https://github.com/parrot/parrot/pull/17
21:42 cotto_work nwellnhof: where's Parrot_hsh_get? That's ugly.
21:43 nwellnhof There seems to be a GCI task to rename parrot_hash_* to Parrot_hsh_*
21:57 fbrito another task completed (that was an easy one) :) https://github.com/parrot/parrot/pull/18
21:58 cotto_work -1 to renaming to Parrot_hsh_*
22:03 fbrito oh, wait
22:03 GeJ Bonjour porters.
22:03 cotto_work hi GeJ
22:06 dalek parrot: 3bb45c9 | nwellnhof++ | t/op/string (2 files):
22:06 dalek parrot: [t] Change tests to hopefully trigger UCS-4 to UCS-4 conversion
22:06 dalek parrot: review: https://github.com/parrot/parrot/commit/3bb45c9586
22:07 fbrito when I create a new Socket object
22:08 fbrito what should is_closed() return?
22:09 fbrito 1, right?
22:09 NotFound fbrito: if it's not open, is closed.
22:09 NotFound (Don't ask me why we use is_closed instead of is_open)
22:12 dalek parrot: 6cde374 | NotFound++ | src/ (6 files):
22:12 dalek parrot: fix a few warnings and standard violations
22:12 dalek parrot: review: https://github.com/parrot/parrot/commit/6cde374de0
22:24 NotFound bacek_at_work: ping
22:28 NotFound msg bacek_at_work Last line of fixed_allocator.c:allocate_new_pool_arena shouldn't have a (char *) cast like the previous line?
22:28 aloha OK. I'll deliver the message.
22:32 davidfetter joined #parrot
22:33 contingencyplan left #parrot
22:34 contingencyplan joined #parrot
22:37 dalek parrot: 5c760ac | NotFound++ | src/gc/fixed_allocator.c:
22:37 dalek parrot: fix a warning, const a var and simplify a bit in function pool_is_owned
22:37 dalek parrot: review: https://github.com/parrot/parrot/commit/5c760acc3a
22:39 bacek_at_work NotFound, pong.
22:40 NotFound bacek_at_work: see the msg
22:40 bacek_at_work NotFound, yes. Looks like
22:41 NotFound bacek_at_work: may be a waste of memory, if wrong.
22:41 bacek_at_work NotFound, actually, just waste of time on quick test in pool_is_owned
22:42 NotFound Ah, right.
22:45 fbrito1 joined #parrot
22:49 fbrito left #parrot
22:49 fbrito1 is now known as fbrito
22:50 fbrito msg whiteknight I have just finished another task: https://github.com/parrot/parrot/pull/19
22:50 aloha OK. I'll deliver the message.
22:54 dalek parrot: 4159775 | NotFound++ | src/gc/fixed_allocator.c:
22:54 dalek parrot: minor fix in allocate_new_pool_arena
22:55 dalek parrot: review: https://github.com/parrot/parrot/commit/4159775d7c
22:59 bluescreen joined #parrot
23:00 bluescreen greetings parroters
23:00 davidfetter is now known as parroters
23:00 parroters greetings bluescreen
23:00 parroters is now known as davidfetter
23:00 bluescreen lol
23:01 cotto_work hello bluescreen
23:04 bluescreen hello cotto_work
23:17 plobsing left #parrot
23:24 whiteknight joined #parrot
23:28 dalek TT #1059 closed by NotFound++: Run Parrot through cpplint.py
23:28 dalek TT #1059: http://trac.parrot.org/parrot/ticket/1059
23:32 lucian left #parrot
23:39 dalek parrot/gci_hash_func_rename: a8f3fb2 | (Daniel Toma)++ | / (35 files):
23:39 dalek parrot/gci_hash_func_rename: D
23:39 dalek parrot/gci_hash_func_rename: review: https://github.com/parrot/parrot/commit/a8f3fb2644
23:40 nwellnhof left #parrot
23:41 dalek parrot/gci_closed_socket: e4b8819 | fbrito++ | src/pmc/socket.pmc:
23:41 dalek parrot/gci_closed_socket: Add is_closed to Socket
23:41 dalek parrot/gci_closed_socket: review: https://github.com/parrot/parrot/commit/e4b8819f19
23:41 dalek parrot/gci_closed_socket: 2a3c7f8 | fbrito++ | t/pmc/socket.t:
23:41 dalek parrot/gci_closed_socket: [t] Add test to Socket is_closed()
23:41 dalek parrot/gci_closed_socket: review: https://github.com/parrot/parrot/commit/2a3c7f8f22
23:45 cotto_work whiteknight: -1 to renaming parrot_hash_* to Parrot_hsh_*.  Why not Parrot_hash_*?
23:46 whiteknight cotto_work: we can do that.
23:47 whiteknight Because of the Rakudo brouhaha, I'm not going to merge this branch until we have it right
23:50 whiteknight I didn't add that to the task description, so I'm going to add the backwards-compatibility macros myself
23:50 whiteknight and I can run a sed script over it to fix up the names too
23:50 whiteknight since the Parrot_hsh_ prefix is unique, it's easy to change
23:53 dalek parrot: aae1ea9 | Whiteknight++ | / (2 files):
23:53 dalek parrot: Merge branch 'gci_closed_socket'
23:53 dalek parrot: review: https://github.com/parrot/parrot/commit/aae1ea907a
23:54 whiteknight fbrito: Move that is_closed task to the NeedsReview state please.

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

Parrot | source cross referenced