|
Parrot 0.6.2 "Reverse Sublimation" Released | parrotcode.org/ | 18/672 new/open tix | logged in irclog.perlgeek.de/parrot/today Set by moderator on 6 June 2008. |
|||
| Whiteknight | there were 60 commits this weekend, it looks like | 00:06 | |
| that is, if you don't mind my technical jargon, a crapload | 00:07 | ||
|
00:09
AndyA joined
|
|||
| kid51 | I think it's good for a summer weekend where most of the USA is in a sweltering heatwave. | 00:09 | |
|
00:12
Zero_Yao joined
00:17
bacek joined
00:25
tetragon joined
|
|||
| Whiteknight | yeah, i guess you're right. I spent much of the weekend indoors myself | 00:30 | |
| although i didn't do any coding | |||
| dalek | r28187 | Whiteknight++ | gsoc_pdd09: | 00:31 | |
| : [gsoc_pdd09] updating to trunk 28186 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28187 | |||
| confound | seen chromatic | 00:43 | |
| whoops | |||
| kid51 | Yes, purl has taken a leave of absence. | ||
| Whiteknight | is RT down? | ||
| for that matter, is all of perl.org down? | 00:44 | ||
| kid51 | No I just got a refresh at rt.perl.org | 00:45 | |
| And I can ping www.perl.org | |||
| I don't think purl is on perl.org, anyway. It's more likely on feather. | |||
| confound | I think purl's on hachi's machine. | 00:46 | |
| Whiteknight | okay, i just got in to RT | ||
| confound | I'm pretty sure purl isn't on feather. | ||
| Juerd | purl's not on feather. | 00:47 | |
|
00:50
TonyC joined
|
|||
| dalek | r28188 | jkeenan++ | trunk: | 00:56 | |
| : Applying slightly edited version of patch submitted by Andy Bach in | |||
| : rt.perl.org/rt3/Ticket/Display.html?id=52894: utilize File::Temp to | |||
| : create tmp file for testing presence of perldoc. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28188 | |||
|
01:00
TiMBuS joined,
tetragon joined
|
|||
| Whiteknight | How do I use headerizer to copy all function prototypes to a header file? | 01:10 | |
| or is that supposed to happen automatically, from the build? | 01:11 | ||
|
01:13
Zaba_ joined
|
|||
| Whiteknight | anybody here know anything about Configure.pl or the makefile? | 01:18 | |
| kid51 | Whiteknight: I am more or less a maintainer of Configure.pl. makefile is area I know only a little about. Questions? | 01:49 | |
|
01:55
jimk joined
|
|||
| jimk was disconnected by heat lightning! | 01:58 | ||
| jimk nods at #parrot and gives him a small kipper | |||
|
02:00
kid51 joined
|
|||
| dalek | r28189 | chromatic++ | trunk: | 02:02 | |
| : [encodings] Documented all functions in src/encodings/*.c. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28189 | |||
|
02:02
jimk joined
|
|||
| dalek | r28190 | chromatic++ | trunk: | 02:03 | |
| : [src] Improved parameter passing documentation, especially for interpreter data | |||
| : structures (Bram Geron, RT #46593). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28190 | |||
|
02:10
tetragon joined
|
|||
| Tene | I almost have class definition working in cardinal. | 02:11 | |
| I'm just running into some weird problems with instantiating classes. | |||
| I'm now checking online to try to figure out what exactly the semantics are that I need. | 02:16 | ||
| Looks like there's something weird about assigning to attribute vars, too that I should work out. | 02:19 | ||
|
02:23
teknomunk joined
|
|||
| Tene | pmichaud: ping | 02:34 | |
|
02:36
teknomunk joined
02:42
teknomunk joined
02:59
teknomunk joined
|
|||
| dalek | r28191 | tene++ | trunk: | 03:01 | |
| : [cardinal] | |||
| : * Beginning of class definition support | |||
| : * 'self' implemented | |||
| : * attribute vars work inside of methods | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28191 | |||
| Tene | That was a fun commit to build. | 03:05 | |
| dalek | r28192 | tene++ | trunk: | ||
| : Fix svn metadata. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28192 | |||
|
03:15
teknomunk_ joined
03:23
Theory joined
03:28
teknomunk_ joined
|
|||
| pmichaud | tene: pong | 03:57 | |
| afk # sleep | 04:14 | ||
|
04:35
Ademan joined
|
|||
| Tene | pmichaud: figured it out. | 04:37 | |
|
04:40
masak joined
05:01
Zaba joined
|
|||
| bacek | perl6: my Int $foo; say (try{$foo='xyz'}) ~~ undef; | 05:37 | |
| WW | |||
|
05:39
grim_fandango joined
|
|||
| cizra | Hey, I downloaded Parrot for the first time today. | 05:50 | |
| Is it OK to have failed tests? | |||
| moritz | shouldn't occur | 05:52 | |
| which OS and architecture are you on? | |||
| cizra | Umm.. lemme check | 05:53 | |
| Ubuntu on x86_64 | |||
| moritz | seems fairly standard | ||
| please report test failures to parrotbug@perl.org | |||
| cizra | Lemme paste the error. | ||
| pastie.org/211340 | 05:54 | ||
| How? Just send a mail? | |||
| moritz | there's a "parrotbug" utility in the parrot tree | 05:55 | |
| at top level | |||
| oh wait, no need to report that | |||
| it's "only" a coding standard test | |||
| cizra | Indeed there is. | ||
| moritz | which means it will probably be fixed anyway | 05:56 | |
| nothing platform dependant | |||
| and shouldn't affect parrot's stability on your system either | |||
| bacek | moritz, no, it isn't. It's 'spawn' faileru | ||
| failure | |||
| cizra | So, do I report it or not? | ||
| moritz | bacek: oh, you're right | 05:57 | |
| moritz doesn't have his wits together | |||
| cizra: yes, please. | |||
| cizra | *nod* | ||
| moritz | cizra: and ignore everything else I might say today ;) | ||
| cizra | OK | ||
| moritz has a huge test in 3hrs, can't get any sleep anymore, and is totally nervous | |||
| cizra | Umm.. The category is "core", right? | 05:58 | |
| moritz | thinks so | ||
| cizra | Severity? | ||
| critical high medium low wishlist none | |||
| moritz | medium | ||
| bacek send moritz bottle of vodka for relaxation | 05:59 | ||
| moritz | good idea: relaxing prior to exams. Bad idea: being drunk during exam. | 06:00 | |
| bacek: anyway, I apreciate your care for me ;) | 06:01 | ||
| cizra | How do I figure out which version of glibc I have? | ||
| bacek | moritz, sometime I've just drink with teachers instead of exams :) | 06:02 | |
| dpkg -i libc6 | |||
| moritz | (debian based distributions)++ | ||
| bacek | cizra, sorry, wrong command | ||
| cizra | *nod* | ||
| I got it | |||
| So, what else? | |||
| bacek | apt-cache show libc6 | 06:03 | |
| cizra, drink vodka with moritz :) | |||
| moritz | cizra: output of the test itself... | 06:04 | |
| cizra | I don't drink. | ||
| bacek | cizra, can you run 'prove --verbose t/op/spawnw.t'? It will output more info | ||
| cizra, moritz doesn't drikn too. At least now :) | |||
| moritz | bacek: actually I only drink very seldom at all ;) | 06:05 | |
| cizra | All tests successful. | ||
| I don't drink, ever and ever. | |||
| Aha | |||
| I think I nailed the bug. | |||
| How do I update my bug report? | 06:06 | ||
| The test fails when LC_ALL and/or LANG are set. | |||
| moritz | did you sent it already? | ||
| cizra | yep | ||
| moritz | you'll get an email shortly with a bug id | ||
| just reply to that email | |||
| cizra | Right. | 06:07 | |
| moritz | cizra++ # investing time in bug reports | ||
| cizra | \\o/ | ||
| karma cizra | |||
| (where's that karma bot when you need it?) | 06:08 | ||
| moritz | purl-- # being absent | ||
| masak | cizra++ # we might not know the position, but we sure know the momentum | 06:09 | |
| bacek | mmd-- # it suck all the time... | ||
| masak | bacek: please explain | 06:10 | |
| if it's so bad, don't use it | |||
| moritz | masak: see #perl6. rakudo fails to smartmatch because of mmd issues | ||
| masak | I see | 06:11 | |
| bacek | masak, I can't stop use it... | ||
| masak | isn't that just rakudo being bad atm? | ||
| moritz | ISTR that smartmatch is one of the few cases that shouldn't use MMD at all | ||
| masak: I think that parrot and perl 6 partly disagree on how MMD should behave | 06:12 | ||
| masak | that sounds very strange | ||
| cizra | masak: I didn't understand the second one. | ||
| masak | moritz: wouldn't smartmatch be the most benefitting operator for smartmatch there ever was? | ||
| cizra: the one about momentum? just trying to make an oblique reference to Scrodinger's uncertainty principle | 06:13 | ||
| cizra | Oh. | ||
| Also, it's Schrƶdinger (= | |||
| masak | Scrƶdinger. right | ||
| moritz | masak: dunno. Just reed S03:2771 ff | ||
| masak | moritz: oki | 06:14 | |
| cizra | You still missed the 'h' :-p | ||
| masak | cizra: sorry it's early in the morning :) | ||
| Schrƶdinger | |||
| ...of course | 06:15 | ||
| moritz | actually I got it wrong - it does seem to use mmd, but it's allowed to assume that no aditional candidates will be defined at run time | ||
| masak | that's a relief | ||
| otherwise I would have lost a sizeable bit of faith in mmd, actually | |||
| cizra | Hmm. I think I replied to that bug, but nothing happened on the perlbug tracker. | ||
| masak | "yeah, well, we decided not to use it for smartmatch" | ||
| moritz | cizra: perl.org mail server are a bit slow sometimes | 06:16 | |
| cizra | OK | ||
| Tene glad to see cizra hanging out here | |||
| cizra | \\o/ | 06:17 | |
|
06:17
barney joined
06:18
Psyche^ joined
|
|||
| cizra hangs out here.. hangs.. sways slightly with the wind.. gets a post-hanging erection.. | 06:23 | ||
|
06:33
uniejo joined
06:41
Zaba_ joined
|
|||
| cizra | Tene: Ooh. Cardinal has an irb mockup. | 06:45 | |
| It doesn't apparently support readline, though. | |||
| Tene | eh? | 06:46 | |
| howso? | |||
| cizra | ../../parrot cardinal.pbc, then type in some code and hit enetr. | ||
| Then press up arrow on keyboard. | |||
| Tene | works for me | 06:47 | |
| cizra | Real irb gets the previous command. This one shows some escape characters. | ||
| Tene | you maybe compiled parrot without readline support | ||
| cizra | Perhaps. | ||
| Hmm, no support for blocks.. | 06:48 | ||
| Tene | hm? blocks? | ||
| cizra | {|i| puts i} | ||
| Tene | is that the same as do ... end? | ||
| cizra | no | 06:49 | |
| Hm, yes | |||
| Yes, it is | |||
| Tene | identical? | ||
| no semantic difference? | |||
| cizra | there is | ||
| Tene | What's the difference? | ||
| cizra | Blocks can be passed into functions | ||
| lemme give you an example | 06:50 | ||
| 0.upto(5) {|i| | |||
| puts i } | |||
| .. which also can be written as | |||
| 0.upto(5) do |i| | |||
| puts i | |||
| done | |||
| whoops, end | |||
| moritz | so it's a lambda? | 06:51 | |
| looks a lot like perl 6 pointy blocks | |||
| cizra | I'm not sure. Sure sounds similar. | ||
| masak | yes, they are the same. | 06:53 | |
| cizra | Beware of samdanielson.com/2007/3/19/proc-new...da-in-ruby this distinction | ||
| shorten | cizra's url is at xrl.us/bmqa6 | ||
| Tene | Hm. | 06:55 | |
| moritz | ah, that's very similar to perl 6 again ;) | ||
| return() returns from something which a 'sub' or 'method' or 'marcro' keyword | |||
| dalek | r28193 | tene++ | trunk: | 06:56 | |
| : [cardinal] | |||
| : * add {} syntax for blocks # cizra++ | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28193 | |||
| masak | speaking of which, does rakudo implement return yet? | ||
| moritz | masak: no. | 06:57 | |
| masak | :/ | ||
| Tene | masak: blocking on exceptions implementation | 06:59 | |
| masak | oh. | ||
| I thought exceptions were implemented in parrot | |||
| Tene | masak: there are "working" exceptions, but they're not compliant with the current spec | ||
| masak | aha | 07:00 | |
| Tene | allison++ is working on that in a branch | ||
| masak | return() will make some things much simpler | 07:01 | |
| Tene | cizra: since I actually don't use ruby, the most helpful thing you could do for me would be to complain about things not working as you'd like, provide tests, open tickets, whatever medium you prefer. | 07:03 | |
| Of course, patches are always nice too. | |||
| cizra | *nod* | 07:04 | |
| Waah. I ought to be working on the work work. | |||
| 0.upto(5) {|i| puts i} | 07:08 | ||
| Syntax error at line 1, near "0.upto(5) " | |||
| Tene | there's something weird about line endings required in places they shouldn't be. | ||
| I need to track it down. | |||
| also... | 07:09 | ||
|
07:10
iblechbot joined
|
|||
| dalek | r28194 | tene++ | trunk: | 07:11 | |
| : [cardinal] | |||
| : * upto() builtin for Ints (cizra++) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28194 | |||
| cizra | 0.upto(5) | 07:14 | |
| Syntax error at line 1, near "0.upto(5)\\n" | |||
| Tene | Hm. Try assigning to a variable and calling upto() on that. | 07:15 | |
| Oh, right, I know why that's happening. | |||
| There's some issues in the grammar there that I haven't worked out yet, so I restricted it to only allow method calls on variables for now to work around it. | 07:16 | ||
|
07:17
baest joined
|
|||
| Tene | Wow, I should have tested that. | 07:17 | |
| I forgot to switch decrement to increment. | |||
| cizra | irb(main):001:0>i = 5 | 07:18 | |
| irb(main):001:0>i.upto(10) | |||
| Lexical 'i' not found | |||
| Also, that irb prompt has a space after it. | |||
| Should have, that is | |||
| Tene | Right now, the interactive interpreter makes a new lexical environment for each line it compiles. | ||
| pmichaud has plans to fix that, but has been too busy on other things to do it yet. | 07:19 | ||
| cizra | OK, so how do I interpret whole files? | ||
| Tene | just use a filename as an argument | ||
| cizra | OK | 07:20 | |
| Tene | parrot cardinal.pbc file.rb | ||
| cizra | Syntax error at line 2, near "i.upto(5) " | ||
| Tene | a = 1; a.upto(5) { |i| puts i; } | ||
| works for me | |||
| cizra | That ; shouldn't be necessary. | 07:21 | |
| Tene | I'm trying to see if I can get it to parse without that required terminator | ||
| right | |||
| cizra | the second one | ||
| Muhaha, upto counds downwards | |||
| Tene | Another easy thing would be adding builtins. | 07:28 | |
| cizra | What are those? | ||
| Tene | Almost as easy would be reworking the class hierarchy | ||
| like upto() | |||
| cizra | Hmm.. Are you aware that Ruby treats 5 as a full-blown object of the Fixnum class? | 07:29 | |
| Also, who's pmichaud? | |||
| Tene | He's the main developer of the grammar engine and much of the compiler tools. | 07:30 | |
| cizra | OK. Who else is involved in this Ruby compiler? | ||
| (Carrot would have been a nicer name) | |||
| Tene | kjs wrote the first draft of the grammar, but that's it. | ||
| cizra | OK | 07:31 | |
| Uh. Sure seems complicated. | 07:36 | ||
| Tene | What seems complicated? | ||
| dalek | r28195 | tene++ | trunk: | ||
| : [cardinal] | |||
| : * upto() should increment, not decrement (tene--) | |||
| cizra | the compiler code | ||
| dalek | : * allow a statement to lack a trailing terminator at the end of a block | ||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28195 | |||
| Tene | The grammar? It is. I've cleaned it up a bit, but ruby's grammar is complicated in general. | 07:37 | |
| cizra | alias carrot='parrot cardinal.pbc' | 07:38 | |
| Tene | why 'carrot'? | ||
| cizra | It sounds fine and rhymes with parrot. | ||
| Tene | 'kay | ||
| cizra | Umm.. Do I need the SVN access yet? | 07:39 | |
| dalek | r28196 | fperrad++ | trunk: | 07:40 | |
| : [Lua] | |||
| : - more robust | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28196 | |||
| cizra | Ruby's initialize methods don't need that "self" in 08-class-t | 07:41 | |
|
07:41
cosimo joined
|
|||
| Tene | Huh. I wasn't sure whether they did or not. I was just copying from the examples I could find on my system. | 07:41 | |
| Is the return value of initialize used for anything ever? | 07:42 | ||
| cizra | I don't think so. | ||
| Tene | Okay, I'll fix that. | ||
| cizra | Also, why is running make test so damn slow? | ||
| moritz | first make it run, then make it right, then make it fast ;) | 07:43 | |
| Tene | Parsing. The grammar engine hasn't been optimized much at all yet. | ||
| cizra | Well, 10 lines of Ruby code shouldn't take like 10 seconds to run. | ||
| By the way, the 08-class-t runs without the self. | 07:44 | ||
| dalek | r28197 | tene++ | trunk: | 07:46 | |
| : [cardinal] | |||
| : * The return value of initialize() isn't used. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28197 | |||
| Tene | cizra++ | 07:47 | |
| cizra: Parrot is a bit strict about commit access to their svn repo. If you want in, send in a few patches, then you'll have to sign a licensing agreement. | 07:48 | ||
| cizra | Gosh. | 07:49 | |
| Tene | I'd also be open to the idea of moving cardinal to a separate repository, if you have objections to that paperwork and plan to pay a lot of attention to working on cardinal. | ||
| It has to do with their sponsorhip by the perl foundation and other legal issues. The license agreement basically says "You give the perl foundation the right to release all code you commit under an open source license, it's actually your code so you can give us copyright of it, you're not under any other weird legal agreements, etc." | 07:51 | ||
| Time for me to sleep now. | 07:57 | ||
| g'night. | |||
| cizra | ciao | 07:58 | |
|
09:05
Zero_Yao joined
09:09
ruoso joined
|
|||
| cizra | Weird stuff. I replied by mail to my bug report AGES ago, but it hasn't shown up in the tracker. | 09:31 | |
| Does Parrot optimize away tail recursion? | 09:35 | ||
| moritz | I think it's trivial with cps | 09:42 | |
| cizra | What's cps? | 09:43 | |
| moritz | continuation passing style | 09:46 | |
| actually not 100% correct | |||
| but sub calls are done through continuations, not stack | |||
| so to do tail recursion optimatzion, you just have to re-use the current continuation | |||
| cizra | OK | 09:48 | |
| Sounds like I'll learn a bunch. | |||
| Is there any difference between using registers or local variables? | 09:50 | ||
| (performance, I meant) | 09:52 | ||
| Yay! I just wrote my very own Fibonacci numbers calculator, using only registers and register operations! | 09:54 | ||
| \\o/ | |||
| moritz | re performance, dunno | 10:00 | |
| YaY, exam passed. 2/4 done. | 10:02 | ||
| cizra | Mine are all done :-p | 10:05 | |
| moritz envies cizra | 10:06 | ||
|
10:19
ank joined
10:22
nopaste joined
10:45
tetragon joined
10:57
TonyC joined
11:18
AndyA joined
11:35
bacek joined
|
|||
| TiMBuS | is there any reason why i cant seem to pass a 'package' declared pmcarray to a function? | 12:04 | |
| pmichaud | ...package declared pmcarray? in PIR or ... ? | 12:05 | |
| TiMBuS | i get "Null PMC access in find_method()" | ||
| yes, pir | |||
| bacek | mmd-- # For referencing NULL PMC in dispatch | 12:06 | |
| for dereferencing. | |||
| pmichaud | I'm not sure what a 'package declared pmcarray' is. | ||
| TiMBuS | get_global $P12, "funstack" | ||
| unless_null $P12, vivify_10 | |||
| new $P12, "ResizablePMCArray" | |||
| that | |||
| pmichaud | okay, got that. Where is it being used? | 12:07 | |
| TiMBuS | im just pushing a pmc onto it | ||
| get_global $P14, "funstack" | |||
| $P14."push"($P13) | |||
| pmichaud | the first set of lines didn't actually create funstack as a ResizablePMCArray | 12:08 | |
| TiMBuS | oh.. | ||
| pmichaud | it did a lookup for funstack, and if no value was found it uses a (temporary) ResizablePMCArray in its place. | ||
| TiMBuS | im using the compiler toolkit here so | ||
| pmichaud | you may need to set 'isdecl' somewhere | ||
| TiMBuS | =/ its set | ||
| works when i change it to lexical | 12:09 | ||
| pmichaud | can I see the code that is creating the past structure? | 12:10 | |
| cizra | A friend asked me: | ||
| how could parrot be as fast as for instance ruby, if it needs to translate the ruby source into pir and then/or directly into parrot assembler and run that then? | |||
| What's a good answer? | |||
| TiMBuS | ruby does that as well? | ||
| pmichaud | ruby does translation also, just not into PIR | ||
| cizra | no | ||
| moritz | cizra: tell him that compile time normally doesn't really matter compared to run time | ||
| cizra | Well, we were talking about Ruby-on-Parrot | ||
| TiMBuS | unless you had a 'ruby machine' heh | 12:11 | |
| pmichaud | at some point I hope/expect that we'll be translating PAST to bytecode and skipping the PIR intermediate step. | ||
| cizra | I know a Haskell machine was build at some point. | ||
| TiMBuS | lisp machine as well | ||
| moritz | cizra: and that once parrot does very good optimizations all high level languages will profit from it, so there's more incentive to do it | ||
| TiMBuS | how long till we have a parrot machine? | ||
| :D | |||
| cizra | TiMBuS: That was one-of-a-kind fun project. | ||
| moritz: sounds fun | 12:12 | ||
| TiMBuS | oh, pmichaud | ||
|
12:12
iblechbot joined
|
|||
| TiMBuS | the code creating the stack is just: | 12:12 | |
| PAST::Var.new( | |||
| :name('funstack'), | |||
| :viviself('ResizablePMCArray'), | |||
| :scope('package'), | |||
| i bet im missing something arent i | |||
| D: | |||
| pmichaud | :isdecl(1) | ||
| TiMBuS | its there.. or is the comma a problem? | 12:13 | |
| pmichaud | :isdecl(1) isn't in what you just pasted... | 12:14 | |
| TiMBuS | did it mispaste =/ | ||
| cizra | What are "stack machines" and "register machines"? Are stack machines just with the stack like Forth, without any registers? Is a stack available in register machines? | ||
| TiMBuS | im no expert but i would think a stack machine would have registers, probably less registers though. | 12:18 | |
| the intel arch would be a stack machine, right? | |||
| pmichaud | oh no, intel is definitely a register machine. | 12:19 | |
| TiMBuS | really? | ||
| pmichaud | en.wikipedia.org/wiki/Stack_machine # reasonable explanation | ||
|
12:20
tetragon joined
|
|||
| pmichaud | in a stack machine, there's not really an 'add dest, src1, src2' instruction | 12:20 | |
| instead, it would be | |||
| push s1 | |||
| push s2 | |||
| add | |||
| moritz | like forth does | ||
| and postscript | |||
| pmichaud | and the result of the 'add' would be left on the top of the stack | 12:21 | |
| TiMBuS | well there you go. | ||
| cizra | OK | 12:22 | |
| So the main difference lies in the opcode arguments. | |||
| pmichaud | in the way operations obtain their arguments and store results, yes. | ||
| cizra | Thanks | 12:23 | |
| TiMBuS | pmichaud, heres the code again, on one line so it isnt cut off: | 12:27 | |
| PAST::Var.new(:name('funstack'),:viviself('ResizablePMCArray'),:scope('package'),:isdecl(1)) | |||
| see im not crazy its totally there | |||
| pmichaud | the code for that should be | ||
| get_global $P12, "funstack" | |||
| unless_null vivify_10 | 12:28 | ||
| $P12 = new "ResizablePMCArray" | |||
| set_global "funstack", $P12 | |||
| vivify_10: | |||
| is it not generating the set_global? | |||
| TiMBuS | nope | ||
| pmichaud | sounds like a bug then. :-| | ||
| checking... | 12:29 | ||
| oh, try :lvalue(1) | |||
| TiMBuS | that does it | 12:30 | |
| wait what. | |||
|
12:34
Zaba joined
12:38
Whiteknight joined
|
|||
| bacek | summon pmichaud | 12:49 | |
|
12:50
Whiteknight joined
|
|||
| DietCoke | yapc:eu is looking less and less likely. | 12:53 | |
| pmichaud | pong | 12:55 | |
| bacek | pmichaud, #55506. I'm very tired of NULL pmc access in type()... | 12:56 | |
| pmichaud | patching Parrot to ignore NULL probably isn't the answer, though. | 12:57 | |
| bacek | pmichaud, ok. I'll try to find more info what happens... | 12:59 | |
| pmichaud | the problem here is that the assignment is returning a NULL value. | 13:00 | |
| wait, that's not quite it. | |||
| $a=' | 13:01 | ||
|
13:01
gryphon joined
|
|||
| pmichaud | $a='foo'; generates an exception | 13:01 | |
| which try {...} catches | |||
| ...so then what's the return value of C<try>? | 13:02 | ||
| bacek | Non initialised $P<n> | 13:03 | |
| $P60 = 'foo'() | 13:04 | ||
| pop_eh: | |||
| ... | |||
| 'is'($P60,...) | |||
| pmichaud | what should the value of try { ... } be if an exception occurs? | ||
| bacek reading spec | 13:05 | ||
|
13:06
acmoore joined
|
|||
| bacek | pmichaud, probably 'undef' | 13:12 | |
| I can't find it in spec. | |||
| But in S02-builtin_data_types/type.t: is((try{$foo = 'xyz'}), undef, 'Int restricts to integers'); | 13:13 | ||
| jonathan | Is has $.a, $.b even valid? | ||
| I guess syntax error... | |||
| bacek | Anyway, returning NULL is bad idea for me. | ||
| BTW, is I have sub foo(_) and sub foo(_,_) I should able to call it with NULL or two NULLs... | 13:21 | ||
| Getting type of argument not always required for MMD | 13:22 | ||
| DietCoke | As I recall, there was at one point a dispatch problem with NULL and _ | ||
| bacek | s/is/if | ||
|
13:25
paco joined
13:31
Andy joined
|
|||
| pmichaud | I'm guessing that has $.a, $.b should generate something like "$.b not found in scope" | 13:33 | |
|
13:37
jhorwitz joined
13:46
cognominal joined
|
|||
| Whiteknight | Does C89 allow bitfields? I mean, I assume it does, bitfields were even present in K&R | 13:54 | |
| I dont think I've seen any bitfields in use so far in Parrot | 13:56 | ||
| Tene | pmichaud: ran into a repeated zero-length match last night with: rule stmts { [ <stmt> <term>+ ]+ }; token term { ';' | \\n | <before <endofblock>> } | 13:58 | |
|
13:58
Limbic_Region joined
|
|||
| Tene | pmichaud: I found a workaround, but you asked me to let you know whenever I see it. | 13:59 | |
|
14:15
rdice joined
|
|||
| pmichaud | Tene: got it, thanks! | 14:19 | |
|
14:20
Zero_Yao joined
|
|||
| pmichaud | my $b = try { die 'xyz'; }; say $b; | 14:20 | |
| wrong chan, sorry | |||
| Zero_Yao | hi, guys, I want to set break point at static funtion such as 'compile_to_bytecode' in IMCC, but I got: ''compile_to_bytecode has no debugger info'. What is wrong? I have '-g' option to CC. | 14:37 | |
| pmichaud | does gdb normally allow breakpoints to static functions? | 14:38 | |
| Zero_Yao | pmichaud, I use dbx on solaris, and I can set break point at static funciton before. | ||
| jhorwitz | i don't remember ever having a problem with that with gdb | 14:39 | |
| pmichaud | then I don't know. :-) | 14:40 | |
| DietCoke | Zero_Yao: what options did you use for Configure.pl ? | ||
| Zero_Yao | DietCoke, I tried both 'perl Configure.pl' and 'perl Configure.pl --inline' | ||
| and I just write a simple test function, and dbx can stop at static function correctly. | 14:41 | ||
|
14:59
davidfetter joined
|
|||
| DietCoke | odd | 15:19 | |
| I'd throw it at the list and see if anyone can help. | |||
| davidfetter missed the context | 15:20 | ||
|
15:22
sjansen joined
|
|||
| DietCoke | ... check the logs, man. =-) | 15:28 | |
| logs? | |||
| parrot logs? | |||
| irc log? | |||
| purl? | |||
| moritz | parrot logs are at irclog.perlgeek.de/parrot/today | ||
| moritz acts as dipspurl | 15:29 | ||
| DietCoke yawns | 15:34 | ||
| davidfetter peeks at /topic and blushes | 15:35 | ||
|
15:49
Zaba_ joined
|
|||
| dalek | Jeff Horwitz | mod_parrot: | 16:01 | |
| link: www.perlfoundation.org/parrot/index...mod_parrot | |||
|
16:14
Zaba joined
16:22
pdcawley joined
16:24
cosimo joined
16:32
clunker3 joined
|
|||
| dalek | r28198 | Whiteknight++ | gsoc_pdd09: | 16:33 | |
| : [gsoc_pdd09] adding some details about flags, both internal and external | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28198 | |||
|
16:34
Theory joined
16:35
IllvilJa joined
|
|||
| davidfetter wonders whether oracle's using parrot somewhere | 16:36 | ||
| IllvilJa, any hints? | 16:37 | ||
| IllvilJa | Not AFAIK, but that does not necessary mean "no" :-). | 16:38 | |
| davidfetter | heh | 16:39 | |
| davidfetter hoping to make parrot part of postgres at some point | |||
| well, get pg to use parrot in some intelligent way | |||
|
16:40
kj joined
|
|||
| dalek | r28199 | kjs++ | trunk: | 16:52 | |
| : [tutorial] add solution to exercise in ep 5 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28199 | |||
|
16:54
purl joined
|
|||
| Tene | I've worked with oracle-the-company a few times, and I'm very confident saying "no chance at all". | 16:58 | |
| DietCoke | I know of one place that ever used parrot in production, and we pretty much broke it with backwards incompatible changes (not unsurprising given our version #s) | 17:01 | |
| dalek | r28200 | kjs++ | trunk: | ||
| : [tutorial] add solution to ex in ep 5 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28200 | |||
| r28201 | kjs++ | trunk: | 17:07 | ||
| : [tutorial] add solution to ex in ep 7. (and whoops: previous commit should have said 'ep 6' , not 'ep 5') | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28201 | |||
| r28202 | Whiteknight++ | gsoc_pdd09: | 17:09 | ||
| : [gsoc_pdd09] changes to structure | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28202 | |||
| r28203 | kjs++ | trunk: | 17:10 | ||
| : [tutorial] add solution to ex in ep 8 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28203 | |||
| DietCoke | (was dan's workplace, btw.) | 17:14 | |
|
17:24
particle joined
17:26
barney joined
|
|||
| dalek | r28204 | chromatic++ | trunk: | 17:32 | |
| : [PMC] Changed isa_str member of the vtable to a hash. This allows more reuse | |||
| : of constant strings within the system and simplifies isa checks to a hash | |||
| : lookup, not repeated string manipulation. MRO setup has changed slightly too, | |||
| : and there's an opportunity for refactoring here by calling a new function to | |||
| : initialize MRO and the isa hash from the PMC class initializer. | |||
| : Note that you need to reconfigure Parrot and probably make realclean after | |||
| : applying this patch. If you see segfaults in dynpmcs (especially in | |||
| : languages/), you didn't make realclean. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28204 | |||
| r28205 | chromatic++ | trunk: | 17:40 | ||
| : [src] Copied some logic from string_equal into STRING_compare; the latter can | |||
| : make a few assumptions that the former cannot, and this plus the isa_hash | |||
| : commit speed up the Rakudo-building benchmark by 4.89%. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28205 | |||
| cotto-work | the latest build for perl6 explodes, even with make realclean | 17:47 | |
| looks like a fakecutable issue | 17:48 | ||
| barney, ping | 17:51 | ||
| barney | hi cotto | ||
| cotto-work | do you know of a good example of a language spec that I could use as a basis for the PHP spec I'm writing? | 17:52 | |
| barney | Not really. Perl 6 ? | 17:53 | |
| cotto-work | heh | ||
| perl6 is a whole different class of language | |||
| particle | there's a spec for lolcode... | 17:54 | |
| is that the same class as php? ;) | |||
| cotto-work | I can haz languidge spek? | ||
| barney | In spirit, HQ9+ might be closer. | 17:55 | |
| particle | are you thinking of a syntax spec, or full language including semantics? | ||
| for syntax, i'd use ebnf | |||
| cotto-work | a full spec, although there are a lot of places where "do the obvious thing" would be sufficient | 17:56 | |
| barney | You could ask Whiteknight whether he can recomment a Wikibook as a template | 17:57 | |
| cotto-work | vim + POD seems to be working | 17:58 | |
| barney | I meant as a template for content | 17:59 | |
| Funny. In PHP $ref1 = &$var; seems to be the same as $ref1 =& $var; | 18:01 | ||
| cotto-work | The more I read the code, the more I find wacky stuff like that. | 18:02 | |
| I'm not quite desensitized yet, though. | |||
| barney | Do you mean that this might not have been a sound a design decision? =:) | 18:03 | |
| pmichaud | Funny. In Perl $ref1 =- $var; seems to be the same as $ref1 = -$var; | 18:04 | |
| Whiteknight | what about wikibooks? | ||
| cotto-work | wouldn' | ||
| it wouldn't hurt | |||
| I've only got about 7KB of documentation written, so reformatting it wouldn't be too painful. | 18:08 | ||
|
18:08
grim_fandango joined
|
|||
| pmichaud | jonathan: I just thought of a potential lazy-list blocker -- it will be difficult to overload set_pmc_keyed from ResizablePMCArray. Our alternative would be that List has an RPA attribute instead of inheriting from RPA. | 18:14 | |
| and we'd have to get the various RPAs that occur to magically morph themselves into Lists at every opportunity. | 18:15 | ||
| I guess that's not too bad, all things considered. | 18:16 | ||
|
18:23
rdice joined
|
|||
| DietCoke | pmichaud: that's what HLL mapping is for, neh? | 18:26 | |
| well, to avoid RPAs from occuring the first place. | |||
| pmichaud | does HLL mapping also map :slurpy's ? | 18:27 | |
| DietCoke | ISTR it used to, at least. if it doesn't, it should. | ||
| pmichaud | at any rate, we still end up with RPA's coming from PGE and/or PCT. | ||
| DietCoke | any place where parrot is creating a PMC for you, you can expect it to use the right mapping. | ||
| ;(if it doesn't it's a bug) | |||
| PCT/PGE, perhaps you can have them do a lookup on the HLL mapping before instantiating. | 18:28 | ||
| pmichaud | that sounds a bit tricker. We have to know who the hll caller actually is. | ||
| *trickier | |||
| anyway, while I think we can get most RPAs to HLL map to List, I'm not convinced we can reliably get all of them. | 18:29 | ||
| and if we want to call Parrot libraries, we probably need to be able to handle RPAs anyway. | 18:30 | ||
| DietCoke | (parrot libraries) that is a whole missing parrot of parrot HLL interop, I think. | ||
| "missing part" | |||
| pmichaud | based on what was done with P6object I don't think getting RPA to work will be a bit issue -- it's just something we have to be aware of. | 18:31 | |
| s/bit/big/ # can't type anymore :-( | |||
| jonathan | pmichaud: I was pondering that lists would separately maintain an evaluated an unevaluated portion, as separate arrays. So it's cheaper if you have an iterator of some kind in there. | 18:32 | |
| Otherwise you have to splice all of the time. | |||
| Which is probably costly. | |||
| pmichaud | I didn't think we needed to separately maintain it, though | 18:35 | |
| unless you're thinking that push would be a lot faster than splice | |||
| jonathan | I think so; isn't a splice a case of, copy the iterator and all after it along some elements? | 18:36 | |
| pmichaud | I was thinking that it can just be a list of mixed evaluated and unevaluated portions, where we keep track of the initial evaluated portion | ||
| but having it as separate lists makes sense, I guess | |||
| jonathan | We can do. But splicing just feels a tad expensive. Unless we work out a way to make splicing cheat under the hood and be fast. | ||
| pmichaud | I think I'll go with the two list approach first | 18:37 | |
| one nice thing about the single list approach is that adding/removing generators is still a simple pop/push | |||
| and I think that we build lists far more often than we index them | |||
| jonathan | Hmm, true. | 18:38 | |
| Well, maybe. :-) | |||
| pmichaud | also, we get the right semantics from :slurpy for "free" | ||
| and I'm pretty sure we'll have a lot of :slurpy | |||
|
18:39
Ivatar joined
|
|||
| jonathan | True. Hmmm. Will think on it some. :-) | 18:41 | |
| pmichaud | well, once we have the basics in place we can try different models and see what works. | ||
| Wouldn't surprise me if we ultimately end up with PMCs for a lot of these :-) | |||
| jonathan | I think having an implementation that *works* is more a priority than one that's fast. | 18:42 | |
| pmichaud | exactly. | ||
| jonathan | And I guess benchmarks are the way to work out what is fast. | ||
| DietCoke | can always throw someone at the conversion of PIR to PMC later. | ||
| jonathan | There's a few too many factors, to be able to just guess what will be fastest. :-) | ||
| OK, going to grab some food. | 18:44 | ||
| dalek | r28206 | fperrad++ | trunk: | ||
| : [configure] | |||
| : fix on Windows | |||
| : patch of kid51++ | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28206 | |||
| r28207 | Whiteknight++ | gsoc_pdd09: | 18:50 | ||
| : [gsoc_pdd09] moving stuff around, fixing my big mess. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28207 | |||
|
19:01
jisom joined
19:03
jan joined
19:08
NotFound joined
|
|||
| NotFound | Hello. | 19:08 | |
| dalek | r28208 | bernhard++ | trunk: | 19:09 | |
| : [Plumhead] | |||
| : Mention --run-nqp in the synopsis. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28208 | 19:10 | ||
| Jeff Horwitz | Parrot: | 19:12 | ||
| link: www.perlfoundation.org/parrot/index.cgi?parrot | |||
| Jeff Horwitz | Articles of Incorporation: | 19:16 | ||
| link: www.perlfoundation.org/parrot/index...orporation | |||
| shorten | dalek's url is at xrl.us/bkyfj | ||
| dalek | will@coleda.com | Articles of Incorporation: | 19:22 | |
| link: www.perlfoundation.org/parrot/index...orporation | |||
| shorten | dalek's url is at xrl.us/bkyfj | ||
| dalek | r28209 | bernhard++ | trunk: | 19:24 | |
| : [Plumhead PHC] | |||
| : Try to add variable name binding, but not succeeding. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28209 | |||
|
19:36
purl joined
|
|||
| Auzon | hi purl! | 19:36 | |
|
19:45
Zaba joined
19:47
AndyA joined
|
|||
| tewk | pmichaud: inside a pge closure {{ }} is there any way to print the current match object for debug reasons? | 19:59 | |
| pmichaud | _dumper(match) | 20:00 | |
| (assuming dumper is loaded.) | |||
| tewk | so I need to load dumper inside the closuer {{ }} | 20:02 | |
| pmichaud | oh, it can be loaded outside of the closure, too. | 20:03 | |
| (e.g.,as part of the HLLCompiler initialization) | |||
| tewk | and match will be a lexical in the closure. | ||
| pmichaud | yes, 'match' is a pmc register pointing to the current match object in the closure | ||
| tewk | Would you happen to have a file:line reference to a HLLCompiler initialization example? | 20:04 | |
| pmichaud | what are you invoking the match from? | ||
| the best examples for HLLCompiler initialization are probably in languages/abc, languages/lolcode, compilers/nqp, etc. | 20:05 | ||
| but if you're just wanting to get to "I can dump a match object" and aren't already doing HLLCompiler stuff, then you don't need HLLCompiler | |||
| the load_bytecode '_dumper.pbc' can be done from, e.g., main | 20:06 | ||
| tewk | I'm putting {{ print "HERE1" }} statements into my grammar.pg file as debug statments. | 20:09 | |
| pmichaud | that works too :-) | 20:10 | |
| tewk | But I'm going to add {{ _dumper(match) }} in a couple of places | 20:11 | |
|
20:36
grim_fandango joined
|
|||
| cognominal | why the glossary is missing from www.parrotcode.org/docs/? | 20:38 | |
| moritz | who stole it? | 20:39 | |
| NotFound | t/pmc/orderedhash test is failing in --optimize build. | ||
| pmichaud | NotFound: Might be a known issue. | 20:40 | |
| NotFound: don't know if there's an RT ticket for it yet. | |||
|
20:42
Zaba joined
|
|||
| cotto-work | NotFound, I think you forgot to attach your patch for #44499 | 20:50 | |
| NotFound | Ooopppsss. Again! | ||
| Done now, thanks. | 20:52 | ||
| cotto-work | np | 20:53 | |
| DietCoke | the glossary is available here: www.parrotcode.org/glossary.html | 21:12 | |
| DietCoke will update the docs index. | |||
| done. | 21:25 | ||
| cotto-work | I'm curious about the Parrot/Perl6 workshop at yapc::na | 21:30 | |
| It doesn't seem like it'll take 2h to get people set up with a working rakudo build | 21:31 | ||
| DietCoke | it's not just about getting them to a build. | 21:35 | |
| -> | 21:36 | ||
| NotFound | Do you take into account the time required to install cpan, a lot of modules, and several fails while building some of these? | ||
| pmichaud | I think we want to do a build, but also give an orientation as to where things are | 21:41 | |
| e.g., for those who want to extend it | |||
| cotto-work | i.e. encourage budding hackers | ||
| pmichaud | exactly. | ||
| cotto-work | I can definitely see the value in that. | ||
| pmichaud | I guess that means that by the workshop I should make sure rakudo has the ability to accept code written in p6 :-) | 21:42 | |
| cotto-work | might be good to make sure the fakecutable works by that time | ||
| pmichaud | that's somewhat out of my hands, unfortunately. | ||
| I think we can say "the fakecutable works sometimes, but if not, use ./parrot perl6.pbc" | |||
| most people don't have trouble with that. | 21:43 | ||
|
21:46
donaldh joined
|
|||
| cotto-work | True. It's nice to assume that we'll have smart users. | 21:49 | |
|
21:49
bacek joined
|
|||
| moritz has a shellscript for that, just calls ../../parrot perl6.pbc "$@" | 21:51 | ||
|
21:58
donaldh_ joined
21:59
sjansen joined
|
|||
| NotFound | What fails in the executable perl6? | 22:00 | |
| cotto-work | hello world | ||
| purl | hello world is, like, www.roesler-ac.de/wolfram/hello.htm | ||
| Infinoid | NotFound: *** glibc detected *** ./perl6: double free or corruption (!prev): 0x00000000008cc470 *** | ||
| NotFound | Works for me. | 22:01 | |
| Infinoid | r28205 fails for me on amd64 | 22:02 | |
| Infinoid updates | |||
| NotFound | Mmmmm.... I was testing in a build with my last patch, looks like a cleaner version fails. | 22:08 | |
|
22:10
Limbic_Region joined
|
|||
| Infinoid | r28209 fails too | 22:12 | |
| NotFound | I'm starting to agree with the "woks sometimes" | 22:20 | |
| Limbic_Region | oooh, making perl6.exe in Cygwin errors out while core dumping | 22:27 | |
| now that's a new one | |||
| ;-) | |||
| anyone interested in the output? | |||
| Infinoid | Limbic_Region: sounds like probably the same error we're seeing on linux | 22:29 | |
| Limbic_Region | ok then | ||
| Infinoid | over here the C library barfs saying something about double free | ||
| what's it look like over there? :) | |||
| Limbic_Region | running it again now to see | ||
| Infinoid | the crash occurs while trying to do the "hello world" bit | ||
| Limbic_Region | 312 [main] parrot 192 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack) | 22:30 | |
| apparently, it can't dump core to even tell me what the error might be | |||
| Infinoid | awesome | 22:31 | |
| Limbic_Region will check back in after the linux issue is resolved to see if the cygwin is still there | |||
| ../../parrot.exe -o perl6.pbc perl6.pir | |||
| that's the line right before the failed core dump | |||
| dalek | r28210 | Whiteknight++ | gsoc_pdd09: | 22:42 | |
| : [gsoc_pdd09] some fixes and a placeholder for GC-related tomfoolery | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28210 | |||
|
22:44
kid51 joined
|
|||
| dalek | r28211 | jkeenan++ | trunk: | 23:14 | |
| : Correct error in call to File::Temp. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28211 | |||
|
23:14
ank joined
|
|||