|
Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Parrot Developer Summit: 2200 UTC 29 Jan | Goals: Fix ipv6-related failures | Test imcc_interfaces and annotations-tree branches Set by moderator on 26 January 2011. |
|||
| allison | lucian: oh, we're both right hugunin.net/story_of_jython.html | 00:00 | |
| lucian: I guess it doesn't surprise me that people would give more credit to Guido, it kind of boosts the "validity" of Jython as a "true" Python | |||
|
00:02
bacek_ joined
00:20
bacek_ left
00:26
bacek joined
|
|||
| chromatic | pmichaud, I'm comfortable implementing some/much/all of 6model in Parrot. Replacing the existing object model makes sense. | 00:27 | |
| pmichaud | I think that's all that we're looking for at the moment. | ||
| I'm also pleased that Parrot has been able to use nqp in the past for some of its internals, and I think it makes sense going forward, but I'm completely understanding if that's not the case. | 00:28 | ||
| sorear | chromatic: What is the status of the sixperl minutes backlog? | ||
| chromatic | You know my reservations there, especially given Pugs. | 00:29 | |
| pmichaud | absolutely. | ||
| they are still noted, and if/when I see multi-backendness causing us issues I plan to put a stop to it. | |||
| chromatic | sorear, I have minimally formatted notes. I could forward them to you for publishing if you volunteer. | ||
| pmichaud | at least as far as "core goals" goes. | ||
| sorear | allison: I've spoken to people deeply involved in the IronLanguages project | ||
| chromatic | It's not just the cost of supporting them (and the question of whether anyone's going to take advantage of that feature). | ||
| sorear | allison: what I've heard from them is that the main reason people are interested is interop with other libraries, and the main reason people don't follow through is because Iron* starts up way too slow, due to compulsory JIT and bad handling of dynamism | 00:30 | |
| chromatic | The further NQP diverges from Parrot's semantics (and, as I realized five minutes ago, the less it makes demands of Parrot so we can improve Parrot's semantics), the less competitive Parrot *can* be with regard to NQP. | ||
| That's always Parrot's advantage for Rakudo, that we *can* change what Parrot does to improve Rakudo. | 00:31 | ||
| pmichaud | I think that's a useful insight. It'll take me a bit to digest it. | ||
| chromatic | That's the source of a lot of my frustration, that it hasn't happened enough. | ||
| pmichaud | That was the source of my frustration for much of Parrot development :-) | 00:32 | |
| chromatic | I should have said something earlier, but it didn't coalesce in my mind until a few minutes ago. | ||
| There are a lot of places in Rakudo where I want to optimize things, but run into spots where it's doing things Parrot should be doing. | 00:33 | ||
| There have been a lot of crashes, bottlenecks, and memory leaks in those places too. | |||
| pmichaud | I totally understand. I remarked privately to jnthn that I thought you were just having difficulty formulating/discovering what needed to be said. | ||
| chromatic | Hence the "big wad of code" mentions. | ||
| I understand the desire for immediate action, especially considering deprecation policies and other design review. | 00:34 | ||
| pmichaud | I'm also the first to admit that I've not been as open or good about publishing plans and descriptions as I need to be... I keep trying to improve | ||
|
00:34
bacek left
|
|||
| pmichaud | so, I'll keep working on it until someone finds a better way (or person) to do it :) | 00:34 | |
| chromatic | But for every place a HLL needs to work around a core API or semantic, we should at least weigh design alternatives. | 00:35 | |
| pmichaud | Yes. Rakudo guts (and NQP guts) are full of places where we've had to work around Parrot semantics. (more) | ||
| P6object was the first layer to work around Parrot core semantics, but it ultimately didn't go far enough. | |||
| chromatic | That's probably the point we should have started to revise the design of the core semantics. | 00:36 | |
| pmichaud | Ultimately the nqp says largely "here are the core PMCs we think we need to begin to get Rakudo to run reasonably well" | ||
| *the new nqp | |||
| in some sense that's entirely keeping with the way HLLs were originally envisioned to work with Parrot -- that each would provide its own core PMCs to use and be dynamically loaded | 00:37 | ||
| if that's the way that nqp ends up being -- it's just another Parrot HLL used as the foundation for Rakudo -- that's pretty much okay with Rakudo devs for now | |||
| chromatic | For something as fundamental as an object model though, that's a lot to reimplement. | ||
| pmichaud | right | 00:38 | |
| chromatic | I really do see the value of NQP and PCT as part of Parrot though. | ||
| With two caveats. | |||
| 1) The deprecation policy may constrain them too much, which is a shame. | |||
| pmichaud | I agree totally. As jnthn++ can tell you, I gave up the notion of "no extra runtime for NQP" _very_ reluctantly and took a bit of time to come around to that conclusion. | 00:39 | |
| chromatic | 2) Backend portability is not of value to Parrot to support there. | ||
| pmichaud | I agree with #1 and #2 both. | ||
| chromatic | (Given complexity, the usage question, et cetera... and believe me, I understand sunk costs.) | ||
| pmichaud | Indeed, this is why Rakudo is expecting to start targeting NQP_REVISION (where most changes will be taking place) instead of PARROT_REVISION over the near future.) | 00:40 | |
| chromatic | Is it possible for Parrot core to provide a PCT/NQP which other languages can customize as they need more features? Would that be useful to Rakudo and other HLLs? | ||
| pmichaud | I think it's possible and possibly useful, yes. | ||
| Right now we haven't focused much on that. | |||
| chromatic | That way if Rakudo wants more abstractions to make other backends possible, it can have them, but Parrot doesn't have to pay for that complexity? | 00:41 | |
| pmichaud | NQP is still intended to be extremely lightweight, yes. | ||
| we just had to move our notion of "lightweight" a bit. | |||
| chromatic | NQP and Parrot both benefit from a tight but well-defined coupling. | 00:42 | |
| pmichaud | there's also a part of me that wonders if/when someday NQP will disappear entirely, and we just have Perl 6. | ||
| chromatic | Within Rakudo? | ||
| jnthn | Not until we write a *really* good optimizer. | ||
| :) | |||
| pmichaud | right | 00:43 | |
| chromatic | I have to switch hats to think about that. | ||
| pmichaud | right | ||
| at some point NQP might be not lightweight enough to deserve its own implementation separate from Perl 6. But I see that as being far in the future, if ever (more) | |||
| allison | sorear: I've talked to the Iron* folks too, agreed | ||
| chromatic | From Parrot's perspective (I haven't managed to remove that hat yet), we still need PCT with some minimal language. | ||
| pmichaud | I do see the value of NQP as being a fairly minimal language for writing low-level stuff-ish | 00:44 | |
| allison | sorear: but, as much as people *say* they want interop, I know very few real-world projects that really go for multi-language implementation | ||
| chromatic | How about this plan then. | ||
| * Port as much of 6model as makes sense to Parrot as dynpmcs | 00:45 | ||
| jnthn | I'm dismayed that having spent a bunch of time carefully working out how to factor things in 6model, there's some automatic assumption that I've done stuff in it that inherently makes it worse than on Parrot than if I was only ever going to implement it on Parrot. | ||
| allison | sorear: projects even go so far as using really inappropriate languages to solve some piece of their problem, just so they can stick to one language | ||
| chromatic | * Port NQP to those dynpmcs | ||
| allison | sorear: for example, java as a command-line language, major suck! | ||
| chromatic | * Figure out separation points in NQP/PCT where some things make sense as parts of the Parrot core and other parts are extensions | ||
| mikehh | chromatic: that sounds like an excellent plan | 00:46 | |
| chromatic | * Migrate features of extensions to Parrot where they make the most sense | ||
| jnthn, I don't make that assumption and I apologize for giving you that impression. | |||
|
00:46
bacek joined
|
|||
| allison | chromatic: aye, "migrate features" is key, as opposed to "swallow huge wodges of code that might not be a good fit" | 00:46 | |
| chromatic | allison, but also avoiding the "never try new dishes, because they might have a strange taste/texture at first" | 00:47 | |
| pmichaud | chromatic: that plan seems entirely reasonable to me | ||
| it's pretty much what I've been hoping for. I'm fine with there being readjustments of the nqp/parrot demarcation -- that's really what all of this has been about anyway | |||
| jnthn | Especially as the first two steps kinda pretty much already happened. ;) | 00:48 | |
| allison | chromatic: I'm not even sure what that means | ||
| chromatic: fear of new features? | |||
| chromatic | allison, or just never thinking about merging them for whatever reason. | ||
| allison | chromatic: new features == good, implementations of new features might be good or bad, no prejudice | ||
| chromatic | jnthn, how's that plan sound to you? | ||
| jnthn | chromatic: It's mostly the path I've been following. The 6model core is pretty small. Parrot actually has the *best* implementation of it already today. It's exposed as 3 (though may drop to 2 later) dynpmcs and some dynops. Migrating that into Parrot where it makes sense works fine for me. | 00:50 | |
| pmichaud | chromatic: just keep in mind that for the next couple of months jnthn and I will have most of our energies digesting nqp and rakudo migration | ||
| as opposed to "how do we get this into core Parrot". I'm sure we'll advise and help where we can. | 00:51 | ||
| dukeleto | jnthn: i think there was some miscommunication and I assure you that I am glad you are trying multiple backends to get the spec nice | ||
|
00:51
bacek left
|
|||
| pmichaud | Also, to ease migration I asked jnthn to prefix all of our custom dynops and other items with nqp_, so that there's no big naming issue with migrating to Parrot | 00:51 | |
| i.e., so Parrot can claim the non-nqp_ prefixed names when they are adopted | 00:52 | ||
| jnthn | Yes, will do that. | ||
| I think trying to get it into core Parrot until it runs Rakudo would be too early, fwiw. | 00:54 | ||
| Things *will* end up changing here and there. | |||
| chromatic | Right, but the fewer flag days the better. | ||
| jnthn | *nod* | 00:55 | |
|
00:55
bacek_ joined
|
|||
| pmichaud | I have to head off to dinner; I'm comfortable with where the discussion has led and is heading. | 00:57 | |
| jnthn should sleep too - need to travel to Stockholm tomorrow. | |||
| pmichaud | chromatic: thanks for your comments, as always. | ||
| (and suggestions) | |||
| chromatic | Thanks for letting me fumble through vague thoughts. | 00:58 | |
| pmichaud | No problem -- I know I have to do it a lot. Not used to seeing you have to go through the process though. :-) | ||
| chromatic | My office is usually quieter. | ||
| allison heads to the airport | 00:59 | ||
|
00:59
allison left
|
|||
| chromatic | Also I have bleadperl code on another desktop, so I wasn't in a great mood to start. | 00:59 | |
|
01:01
nwellnhof left
|
|||
| Hackbinary | hello | 01:07 | |
| Tene | hi | 01:09 | |
|
01:10
whiteknight joined
01:17
sjn joined
|
|||
| whiteknight | sorry I'm so late to the meeting. Other parts of my schedule overflowed | 01:24 | |
| cotto | whiteknight, it happens. Knowing what you think about Parrot, I'm sure you couldn't help it. | ||
| whiteknight | I do think it's the bee's knees | 01:25 | |
|
01:25
kid51 is now known as kid51_at_dinner
01:28
chromatic left
|
|||
| cotto | bacek_, I like Lua's minimalist philosophy. | 01:31 | |
| whiteknight | chromatic: ping | 01:39 | |
| some of this conversation looks like it got pretty heated. | 01:42 | ||
| cotto | I'm still backscrolling too, but I think it ended well. | 01:43 | |
|
01:44
snarkyboojum left
|
|||
| mikehh | whiteknight: I think it got resolved amicably at the end here | 01:47 | |
| whiteknight | yeah, I'm slowly getting there | ||
| mikehh | once chromatic worked out what he wanted to say it was much clearer | 01:48 | |
| chromatic++ | |||
| whiteknight | basically finished backlogging now. Seems I have a hell of a lot to write about | 01:55 | |
| does anybody here have any questions about the IMCC work? | |||
| cotto | brain numb. no think good | 01:56 | |
| whiteknight | okay. I'm always around if questions materialize | ||
|
02:11
bacek_ left
02:34
lucian left
02:37
bacek joined
|
|||
| dalek | TT #462 closed by pmichaud++: [TODO] Refactor handling of 'stages' in PCT::HLLCompiler | 02:39 | |
| TT #462: trac.parrot.org/parrot/ticket/462 | |||
| rrot: 0e83c3b | bacek++ | DEPRECATED.yaml: Remove deprecated item which will not be implemented. |
|||
|
02:46
snarkyboojum joined
|
|||
| bacek | cotto, ping | 02:48 | |
| kid51_at_dinner | /nick kid51 | 02:49 | |
|
02:49
kid51_at_dinner is now known as kid51
|
|||
| bacek | ETOOMANYSPACES | 02:49 | |
| msg cotto Should M0 be CPS based? Or we are going to implement CPS on top of it? | |||
| aloha | OK. I'll deliver the message. | ||
| cotto | bacek, pong | 03:05 | |
| on top | 03:06 | ||
| why do you ask | |||
| bacek | cotto, ok than | ||
| cotto, thinking about M0 in background | |||
| cotto | that's a good sign | 03:07 | |
| bacek | cotto, not really nowdays... | ||
| sorear | CPS is a framework of thinking | 03:10 | |
| cotto | bacek, what makes you suggest lua's vm? | ||
| kid51 | msg mikehh Your comments on TT #1954 would be welcome | ||
| aloha | OK. I'll deliver the message. | ||
| sorear | there's no decision procedure for "does this language use CPS?" | ||
| bacek | cotto, because it's really small VM | ||
| cotto | interesting that it has three ops out of 35 related to for loops | 03:11 | |
| bacek | sorear, hmmm. Not all HLLs will target M0 directly. | ||
| cotto, it's just for optimization of most commonly used Lua loops | |||
| sorear | if you want to avoid being laughed at, you need to make function calls possible | ||
| cotto | I like the size of the op set. | ||
| sorear | so you need to offer some way for code to record "where was I before I entered this sub?" | 03:12 | |
| dalek | TT #1454 closed by jkeenan++: make failing for parrot when rakudo git repo path in $PATH environment ... | ||
| TT #1454: trac.parrot.org/parrot/ticket/1454 | |||
| TT #1739 closed by jkeenan++: Latest CPAN Module Test::Builder caused test failure | |||
| TT #1739: trac.parrot.org/parrot/ticket/1739 | |||
| TT #1775 closed by jkeenan++: Inline hash key_hash and compare functions | |||
| TT #1775: trac.parrot.org/parrot/ticket/1775 | |||
| cotto | bacek, are you suggesting using luavm directly or adoping heavily from its ideas? | 03:13 | |
| sorear | that information is called a "continuation" | ||
| bacek | cotto, for now - just take a closer look at it. | ||
| sorear | many languages only allow a single continuation per thread, and have a very specialized variable called a "stack" to hold it | ||
| cotto continues doing that | |||
| bacek | sorear, yes. E.g. "atrodo's lorito" and "LuaVM" | 03:14 | |
| sorear, and it was my question to cotto: Stack vs CPS | |||
| cotto | It's times like this that I wish I knew Lua a little btter. | ||
| bacek | cotto, you don't have to. LuaVM is quite generic. Lua's Table ~~ PMC. | 03:15 | |
| cotto | Whatever else you say, you can't call Lua's object model heavy. | ||
| bacek | cotto, it's very lightweight, indeed. | 03:16 | |
| plobsing | Lua has some key differences from Parrot in how it interacts with C. Lua embraces C for all its worth (this is why people claim it is "easy to embed"). Parrot, seeing some of the shortcommings of C, tries to avoid it wherever possible (see for example complaints about inferior runloops). | 03:17 | |
| IMHO, a wholesale shift directly to Lua would take a similar shift in the mindset of many parrot developers regarding the purpose of a VM. | 03:18 | ||
| that's not to say we can't plunder all the good ideas | |||
| cotto | plobsing, I don't think anyone's suggesting we switch to Lua. | 03:19 | |
| plobsing | the wording was sufficiently ambiguous to me | ||
| cotto | just explore their VM and plunder the awesome bits | ||
| bacek, nice job finding that paper | 03:24 | ||
| Coke | What's the name of the book in "docs/book/draft" ? | 03:26 | |
| kid51 | I think it was the PIR book that allison and whiteknight wrote | 03:29 | |
| Coke | you mean allison and dan? | 03:32 | |
| (and leo) | |||
| kid51 | tinyurl.com/45d3mv2 | 03:35 | |
| mikehh | kid51: just saw your message, was going to work on that a couple of days ago, but somehow missed doing it, will have to look later, need sleep now | 03:37 | |
| kid51 | night, night! | ||
| mikehh sleep - cu | 03:38 | ||
| Coke | kid51: I think that's the one in book/pir | ||
|
03:40
whiteknight left
|
|||
| kid51 | git blame suggests it was something allison and chromatic were working on in 2009 | 03:40 | |
| bacek | cotto, github.com/bacek/YAML--Tiny. Can we use JSON for DEPRECATED?... | 03:42 | |
| Coke | bacek: Ha! I already registered my preference to json >> yaml and was shot down. gluck. | 03:45 | |
| er, "good luck" | |||
| dukeleto | ~~ | ||
| bacek: my plan is to make Lorito CPS-based | 03:47 | ||
| bacek: also, i don't know that any language will target M0. Only parrot internals will target M0 | 03:48 | ||
| bacek: HLLs might want to target M1, though, which will have a MOP | |||
| bacek | dukeleto, question was "Should be M0 be CPS based" :) | 03:49 | |
| dukeleto | bacek: ah. the answer is "yes" | 03:50 | |
| bacek: at least that is what i am going for | |||
| bacek | dukeleto, ok | ||
| cotto | bacek, afk for a while. will look when I get back | 03:52 | |
| dukeleto | bacek: i am reading the Smalltalk-80 blue book as we speak :) | ||
| bacek | dukeleto, is SmalltalkVM CPS based??? | ||
| sorear | What's the smallest Mx with memory safety? | ||
|
04:02
kid51 left
|
|||
| dalek | TT #910 closed by coke++: macport/ installing on OS X | 04:02 | |
| TT #910: trac.parrot.org/parrot/ticket/910 | |||
| TT #932 closed by coke++: Warnings in compiling bignum.pmc | |||
| TT #932: trac.parrot.org/parrot/ticket/932 | |||
| TT #930 closed by coke++: build fails when sandbox path contains whitespace | |||
| TT #930: trac.parrot.org/parrot/ticket/930 | |||
| dukeleto | sorear: probably M1 | 04:04 | |
| bacek: as far as I can see, the idea of a "Context" and calling it that comes from Smalltalk | |||
| sorear: M0 is bare metal for parrot internals | 04:05 | ||
| bacek | dukeleto, hmm. I'll try to squeeze some time to read it. | ||
| dukeleto | bacek: i have been enjoying it. you can find them very cheap online, used. | ||
| bacek: much of the language of parrot internals seems to come from smalltalk | 04:07 | ||
| bacek | dukeleto, I know that chromatic was pushing parrot into smalltalk direction. But I didn't realize how similar are two VMs. | ||
| dukeleto | bacek: from what I see, pretty similar | 04:08 | |
|
04:13
JimmyZ joined
|
|||
| dalek | TT #682 closed by coke++: Dynpmcs Don't Depend on Parrot::Pmc2c::* | 04:18 | |
| TT #682: trac.parrot.org/parrot/ticket/682 | |||
| TT #414 closed by coke++: [BUG] t/codingstd/c_cppcomments.t reports spurious error at hyperlinks | |||
| TT #414: trac.parrot.org/parrot/ticket/414 | |||
| Coke | msg pmichaud can you respond to TT#1198? Danke. | 04:50 | |
| aloha | OK. I'll deliver the message. | ||
| Coke | msg cotto didn't you reject TT#1175? | ||
| aloha | OK. I'll deliver the message. | ||
| dukeleto | bacek: turns out smalltalk-80 is stack based, but also continuation-based. But it doesn't do CPS | 05:12 | |
| bacek: it stores interp contexts in a stack | |||
| 05:13 | |||
| JimmyZ | seems that cotto want CPS is on top of M0 and dukeleto wants M0 is CPS based. | 05:14 | |
| bacek | dukeleto, yeah... | 05:17 | |
| dukeleto, speaking of yaml. Can we change current format slightly? | 05:19 | ||
| nopaste | "bacek" at 192.168.1.3 pasted "Proposed change to DEPRECATED.yaml" (11 lines) at nopaste.snit.ch/29487 | 05:20 | |
| bacek | dukeleto, see nopaste | ||
| dukeleto | bacek: can you make that change in my branch? | 05:23 | |
| bacek: you will see that i cleaned up the YAML considerably | |||
| bacek: leto/deprecations_as_data | |||
| bacek | dukeleto, ok. | 05:24 | |
| dalek | rrot/leto/deprecations_as_data: 56c3abc | bacek++ | docs/changes/api.yaml: Change format of api.yaml to be list of hashes |
05:29 | |
| bacek | dukeleto, done | ||
| nopaste | "bacek" at 192.168.1.3 pasted "Eat own dog food with nqp-based port of YAML::Tiny :)" (23 lines) at nopaste.snit.ch/29488 | 05:30 | |
| bacek | dukeleto, see nopaste.snit.ch/29488 "good enough" for me :) | 05:31 | |
| dukeleto, we can switch off from Perl5 for "api.yaml-handling-tools" | 05:32 | ||
| dukeleto | good lord | 05:34 | |
| dukeleto looks | |||
| bacek hate YAML even more now. | 05:35 | ||
| dukeleto, github.com/bacek/YAML--Tiny | 05:37 | ||
| dukeleto | bacek: you are hilarious :) | 05:38 | |
| bacek | dukeleto, it was kind of funny, actually. | 05:39 | |
| To port YAML::Tiny to nqp. | |||
| dukeleto | bacek: why so? | ||
| bacek | But my point about YAML still stand. YAML suck big time. | ||
| dukeleto, I didn't write any "high level code" in about last 6 month :) | 05:40 | ||
| cotto gets back and looks | 05:44 | ||
| dukeleto | bacek: looks like you still can :) | 05:46 | |
| cotto | bacek, what format wouldn't you hate? | 05:47 | |
| dukeleto | bacek: not ok 1 - Parse failed 'Could not find sub split' | ||
| bacek: most of the test suite fails for me. Does this require a very new NQP? | 05:48 | ||
| bacek | dukeleto, on your branch? | ||
| dukeleto | bacek: no, in the YAML--Tiny repo | ||
| bacek | dukeleto, yes, I fixed nqp-setting slightly. Better to use master parrot :) | ||
| or update your branch to master. | |||
| dukeleto | bacek: hokey dokey | 05:53 | |
| sorear | Why -- ? | ||
| plobsing | github converts punct to - by default | 05:54 | |
|
05:54
rurban_ joined
|
|||
| cotto | bacek, thanks for working on that | 05:55 | |
| plobsing | also non-ascii. Ωη;)XD had this issue in spades. came out as ----XD | ||
| bacek | dukeleto, ? | ||
| dukeleto | bacek: yes? | ||
| cotto | How long does it take to parse DEP.yaml? | ||
| bacek | cotto, it's already parsable in leto/deprecations_as_data :) | 05:56 | |
| dukeleto, "<dukeleto> bacek: hokey dokey" | |||
| dukeleto, success? | |||
| dukeleto | bacek: that means "ok i will do that" | ||
|
05:57
rurban left,
rurban_ is now known as rurban
|
|||
| cotto | I somehow haven't installed Parrot since 2.11.something | 06:00 | |
| time to fix that | |||
| wheee | 06:02 | ||
| /usr/bin/ld: BFD (GNU Binutils for Ubuntu) 2.20.51-system.20100908 internal error, aborting at ../../bfd/merge.c line 872 in _bfd_merged_section_offset | |||
| /usr/bin/ld: Please report this bug. | |||
| I love parallel builds | 06:03 | ||
| dukeleto | bacek: you need a 'clean' target in YAML::Tiny's makefile | 06:11 | |
| bacek | dukeleto, can you create repo in /parrot? I'll just push it in and everyone can cleanup/finish it | 06:12 | |
| dukeleto | bacek: yep, one sec | ||
| cotto | and insall too | 06:14 | |
| dukeleto | bacek: github.com/parrot/yaml-tiny | 06:15 | |
|
06:15
theory left
|
|||
| cotto | why not just put it in parrot.git? | 06:16 | |
| dukeleto | cotto: we can do that too, and will need to at some point | ||
| bacek | dukeleto, pushed | ||
| cotto, I want to polish it little bit more before including into parrot. | |||
| cotto | sure | 06:17 | |
| bacek | afk # | ||
| dukeleto | cotto: also, we can try using it as a git submodule | 06:19 | |
| cotto | dukeleto, why not | ||
| dukeleto | cotto: quite a PDS, today | 06:25 | |
| cotto | dukeleto, yeah really | ||
| dukeleto | cotto: what is your take? | ||
| cotto | I need some time to digest it, but it seemed to be more positive than negative | 06:26 | |
| I was unprepared for how active it'd be. | 06:27 | ||
| sorear | YAML::Tiny seems almost ... simple | 06:28 | |
| I'd love to see something like it replace yaml.org as the de facto spec | |||
|
06:50
allison joined
07:05
allison left
07:07
allison joined
|
|||
| dalek | ml-tiny: e5358e7 | dukeleto++ | Makefile: Add a clean Makefile target |
07:38 | |
| ml-tiny: ab874e1 | dukeleto++ | .gitignore: Add a .gitignore |
07:39 | ||
| ml-tiny: 911eeaa | cotto++ | Makefile: make clean less picky, add an install target |
08:12 | ||
| cotto | 5.4 seconds to parse api.yaml | 08:23 | |
| usable, but I'm looking forward to when it's .54 seconds | 08:24 | ||
| JimmyZ | cotto, I'd like see your comment on trac.parrot.org/parrot/ticket/1992 | 08:28 | |
| dalek | TT #1992 created by jimmy++: [NCI] callback sub parameter definition isn't unified with callback ... | 08:32 | |
| TT #1992: trac.parrot.org/parrot/ticket/1992 | |||
|
08:32
Psyche^ joined
08:35
Patterner left,
Psyche^ is now known as Patterner
|
|||
| JimmyZ | msg plobsing I'd like see your comment on trac.parrot.org/parrot/ticket/1992 | 08:35 | |
| aloha | OK. I'll deliver the message. | ||
| cotto | JimmyZ, ok. I need to plow through the backlog of tickets. I'll make sure to address that one. | 08:54 | |
| cotto sleeps | |||
| JimmyZ | thanks , night | ||
|
09:04
allison_ joined,
allison left
|
|||
| dalek | ml-tiny: 3ce229f | bacek++ | / (2 files): Fix handling of 'inline nested hashes' |
09:05 | |
|
09:05
JimmyZ left
09:48
contingencyplan left
10:28
fperrad joined
|
|||
| dalek | ml-tiny: 487589a | bacek++ | t/11_meta_yaml.t: Copy test from Perl5 YAML::Tiny |
10:37 | |
| ml-tiny: ef664df | bacek++ | t/02_basic.t: Untodo test |
|||
| p-cl-parser: 0e62a62 | moritz++ | do.pl: fix attribute name, masak++ |
10:39 | ||
| moritz | oops, that should have gone to #perl6 | ||
|
10:45
sheant joined
|
|||
| dalek | ml-tiny: 5a55e2b | bacek++ | / (4 files): Generate Undef instead of Nulls. Reclaim few more tests |
11:13 | |
| ml-tiny: 4d712bc | bacek++ | / (2 files): Fix parsing YAML header |
11:21 | ||
|
11:47
whiteknight joined
|
|||
| dalek | p-rx/nom: 29337fb | moritz++ | src/metamodel/reprs/P6opaque.c: distinguish "P6opaque attributes" error messages (no additional value for the user) |
11:59 | |
| nopaste | "mikehh" at 192.168.1.3 pasted "problems with tt1954_eliminate_make_docs branch" (40 lines) at nopaste.snit.ch/29545 | 12:08 | |
|
12:27
Eclesia joined
|
|||
| Eclesia | hi | 12:27 | |
|
12:38
Eclesia left
12:43
sheant left
|
|||
| whiteknight | good morning, #parrot | 12:46 | |
|
13:35
kid51 joined
13:52
sheant joined
13:54
rurban_ joined
13:56
whiteknight left
13:57
rurban left,
rurban_ is now known as rurban
14:01
kid51 left
14:04
ambs joined
|
|||
| szabgab | anyone coming to FOSDEM ? fosdem.org/2011/interview/david-fetter-2011 | 14:05 | |
| sjn wishes he could :-( | 14:31 | ||
| I _really_ wanted, but alas, I can't afford it | |||
|
14:40
Kristaba joined
|
|||
| Coke | someone on the board should point OSUOSL at TT #1838 | 15:53 | |
| (git submodule--) | 16:05 | ||
| msg cotto someone on the board should point OSUOSL at TT #1838 - not much we can do about it. | 16:06 | ||
| aloha | OK. I'll deliver the message. | ||
| cotto | ~~ | 16:43 | |
|
17:00
ambs left
17:25
kid51 joined
17:34
NotFound left
17:42
tadzik left
17:43
tadzik joined
17:54
theory joined
|
|||
| Hackbinary | hello | 18:17 | |
| is there a library that I have to include in an actions.pm file to able to use say() to print messages to the console, or is there another print funciton that I should .. just for debugging. | 18:18 | ||
| cotto | It's nice to see tickets going away. | 18:19 | |
| Hackbinary, nqp-setting.pm or something similar | |||
| arnsholt | There's also pir::say() | 18:20 | |
| cotto | pir::load_bytecode("nqp-setting.pbc"); | ||
| arnsholt | Which does pretty much the same thing IIRC | ||
| cotto | but you have to type "pir::", which is less lazy than necessary | 18:21 | |
| ;) | |||
| arnsholt | True. But pir::load_bytecode is kinda long as well ;) | ||
| Depends on how much say()ing is required I guess =) | |||
| cotto | your call | 18:22 | |
| there's some other functions that it also provides that make life a little nicer | |||
| Hackbinary | cool :) | ||
|
18:45
contingencyplan joined
|
|||
| dukeleto | ~~ | 19:03 | |
| cotto | hi dukeleto | 19:04 | |
| dukeleto | cotto: how do you feel about the leto/deprecations_as_data_branch? | ||
| cotto: also, hello :) | |||
| bacek: you changed the format of the api.yaml in my branch, which I like, but you didn't change the scripts that use it => -1 | 19:06 | ||
| dukeleto goes outside for a change | 19:07 | ||
| cotto | dukeleto, reviewing now | 19:08 | |
| thanks for cleaning up the file | 19:09 | ||
|
19:19
fperrad left
19:20
kid51 left
19:21
jan left
|
|||
| cotto | I'm still not a fan of the name "api.yaml" and the location in docs. | 19:31 | |
| I don't like having something we expect to change frequently in docs/ | 19:32 | ||
| dukeleto had to take out the recycling | 19:37 | ||
| cotto: where do you want it to live? | |||
| cotto: what do you want it called? | |||
| cotto: API.yaml in the root directory ? | 19:38 | ||
| cotto: i really don't care | |||
| cotto | dukeleto, I'm trying to figure that out. | ||
| bacek's change looks like a good idea. Indexing an array by deprecation name struck me as an unusual choice. | 19:39 | ||
| dukeleto | cotto: i have updated the scripts to use that format | 19:41 | |
| cotto | beat me to it | ||
| dukeleto | incoming | 19:43 | |
| dalek | rrot/leto/deprecations_as_data: 52cf771 | dukeleto++ | / (5 files): Make api.yaml scripts use the new format that makes bacek++ and cotto++ happy |
||
| dukeleto | cotto: the name isn't that important. I hear that you want it in /, is that correct ? | 19:44 | |
| cotto: i think API.yaml works for now, we can always change it | |||
| cotto: our scripts provide the layer of abstraction between the name and end-users | |||
| cotto: so our end-users just go ahead and use the scripts, which know where to look. Only parrot devs manually edit that file | |||
| Hackbinary | hello | ||
| dukeleto | Hackbinary: howdy | ||
| cotto | dukeleto, I'd prefer / and I agree about the details | 19:45 | |
| dukeleto | cotto: what about API.yaml in / ? Shall I do that? | ||
| Hackbinary | where is the best place to lookup information on PAST structure information | ||
| ? | |||
| cotto | "API.yaml" isn't a perfect fit, but I don't care to bikehsed it any further. | ||
| Hackbinary | :D | ||
| cotto | dukeleto, +1 | ||
| dukeleto | cotto: do you want it to be a SHOUTING file? or api.yaml ? | ||
| cotto | EBIKESHED | ||
| dukeleto | cotto: ok, i will make it happen | ||
| cotto | dukeleto++ | 19:46 | |
| dukeleto | Hackbinary: parrot/tree-optimization is probably a good place | ||
| Hackbinary: look at it's test suite | |||
| Hackbinary: github.com/parrot/tree-optimization | |||
| Hackbinary: that library will also help you optimize your PAST | |||
| cotto: one other issue | 19:47 | ||
| cotto | ok | ||
| dukeleto | cotto: i want something like api.yaml and old_api.yaml, where, instead of deleting stuff from api.yaml, we put it into a historical file | ||
| cotto: instead of that, we could give stuff in api.yaml the tag of "historical" or something | 19:48 | ||
| cotto | dukeleto, why not just mark it as "old" and stick it at the bottom of the file? | ||
| dukeleto | cotto: what thinks you? | ||
| cotto: sure, we will have a tag called "old", that is reasonable | |||
| cotto | a single file appeals to my laziness | ||
| dukeleto | cotto: i like that too | ||
| cotto: where should i put docs relating to api.yaml ? | |||
| cotto | dukeleto, if they're short they could go inline as comments at the beginning of the file | 19:49 | |
| dukeleto | cotto: was thinking that as well. is there something like a YAML comment ? | ||
| cotto | if not, maybe README.api.yaml or something suitaly obvious | ||
| *suitably | 19:50 | ||
| wfm | |||
| dalek | rrot/leto/deprecations_as_data: b7c3ab4 | dukeleto++ | / (10 files): docs/changes/api.yaml is now api.yaml |
19:54 | |
| rrot/leto/deprecations_as_data: b67a954 | dukeleto++ | t (4 files): Tell scripts that api.yaml has moved |
|||
| dukeleto | cotto: ok, i gonna merge this | ||
| cotto: we are not using yaml-tiny yet, still using my perl 5 tools | 19:55 | ||
| cotto: others can bikeshed that | |||
| cotto: i just want this data in a usuable format | |||
| cotto: i am sure we will have many tools to interface with it, in various languages | |||
| cotto | dukeleto, go for it! | ||
| I'd like to revert a3f6638ef39 and mark the changes it removes as "completed", but there's no rush. | 19:57 | ||
| dukeleto | cotto: i think i will deal with that in my merge | 19:58 | |
| cotto | great | 19:59 | |
| dukeleto | lots of dumb conflicts | ||
| cotto | yeah | 20:00 | |
| looks like a couple others got removed too | |||
| dukeleto | cotto: can you look at docs/stability.pod ? | 20:02 | |
| cotto: it is severely out of touch with reality | |||
| cotto: it has terms we never use | |||
| cotto | dukeleto, sure | 20:04 | |
| I remember when particle introduced that idea. | |||
| There's nothing wrong with it but it never really caught on. | |||
| dalek | rrot: 56c3abc | bacek++ | docs/changes/api.yaml: Change format of api.yaml to be list of hashes |
20:05 | |
| rrot: 52cf771 | dukeleto++ | / (5 files): Make api.yaml scripts use the new format that makes bacek++ and cotto++ happy |
|||
| rrot: b7c3ab4 | dukeleto++ | / (10 files): docs/changes/api.yaml is now api.yaml |
|||
| rrot: b67a954 | dukeleto++ | t (4 files): Tell scripts that api.yaml has moved |
|||
| rrot: f4fcd0e | dukeleto++ | / (11 files): Merge branch 'leto/deprecations_as_data' Conflicts: \tMANIFEST \tdocs/project/cage_cleaners_guide.pod \tdocs/project/release_manager_guide.pod \tdocs/project/support_policy.pod \tdocs/stability.pod \tsrc/pmc/object.pmc |
|||
| dukeleto | cotto: it has terms like "Private" and "Evolving" that we never use | ||
| cotto | The TODO item is telling. | 20:07 | |
| dukeleto, did you add a tag to the completed items? | 20:09 | ||
| looks like not | 20:10 | ||
| the nice thing about having this be data is that can (semi) automatically check to see if the relevant tickets have been closed. | 20:11 | ||
| It's times like this that I wish trac had an api. | 20:13 | ||
| I guess we can resort to screen scraping. | 20:16 | ||
| dalek | rrot: 3f45e06 | dukeleto++ | api.yaml: Mark recently removed deprecations as 'done' in api.yaml |
20:17 | |
| rrot: 947fb07 | dukeleto++ | DEPRECATED.yaml: Remove DEPRECATED.yaml, which is now called api.yaml |
|||
| rrot: e23d5c7 | dukeleto++ | tools/dev/show_ (2 files): Make show_(deprecated|experimental).pl skip things tagged as 'old' |
|||
| dukeleto | cotto: there ya go | ||
| cotto: we are now in the era of deprecations as data | 20:18 | ||
| cotto | looking good | 20:20 | |
|
20:24
zby_home left
|
|||
| dalek | TT #1888 closed by dukeleto++: Deprecations as data | 20:25 | |
| TT #1888: trac.parrot.org/parrot/ticket/1888 | |||
| dukeleto goes afk | 20:26 | ||
| cotto: we have completed 1/3 goals for 3.3 | |||
| cotto: time to focus on Lorito, for me | |||
| cotto | dukeleto, did you see bacek's link to the Lua VM intro? | 20:31 | |
| I've got a printed copy sitting by me and am planning on going through it as soon as I can concentrate. | |||
| dukeleto | cotto: i bookmarked it, but haven't read it yet | 20:32 | |
| moritz | through the -w switch i learned that rakudo relies on Undef stringification, which is deprecated. Now... what I can about that? | ||
| dukeleto | cotto: it looks good | ||
| moritz: we should have a TT and wiki entry for it | |||
| moritz: and if we don't, we will make them | |||
| cotto | what dukeleto said | 20:33 | |
| dukeleto | moritz: also, take a look at tools/dev/show_deprecated.pl and api.yaml in the parrot repo | ||
| moritz: if you have any suggestions for making it easer for Rakudo devs to learn about experimental/deprecated features, i would love to hear them | 20:34 | ||
| moritz: there is also a tools/dev/show_experimental.pl | |||
| moritz | $ perl tools/dev/show_deprecated.pl|grep Undef | ||
| Use of uninitialized value $eligible in concatenation (.) or string at tools/dev/show_deprecated.pl line 39. | |||
| dukeleto | moritz: yep, that is a bug in our data which needs to be fixed | ||
| moritz: some items are missing tickets and/or eligible versions | 20:35 | ||
| moritz | neither of them mentions Undef | ||
| so... does this mean the Undef stringification deprecation is gone? | |||
| or do I just misremember? | |||
| dukeleto | moritz: perhaps that deprecation is not in our data, or it was removed before we switched to our new system | ||
| cotto | moritz, if it's not implemented and it's not mentioned, you're clear | ||
| dukeleto | moritz: not sure, the code that -w uses and api.yaml could very well be out of sync | ||
| jnthn | moritz: What does Undef stringify to, ooc? | ||
| dukeleto | moritz: can you gist the errors warnings that you get? | 20:36 | |
| moritz | rakudo: say ~pir::new('Undef') | ||
| p6eval | rakudo 549d2a: OUTPUT«» | ||
| moritz | jnthn: empty string | ||
| cotto | github.com/parrot/parrot/commit/3be8a9cee is all I can find | ||
| jnthn | moritz: If pmichaud++ agrees, we could s/Undef/NQPMu/ | ||
| moritz | $ ./parrot_install/bin/parrot -w perl6.pbc -e '' | ||
| Stringifying an Undef PMC | |||
| current instr.: 'perl6;PAST;Compiler;as_post' pc 4510 (compilers/pct/src/PAST/Compiler.pir:1084) | |||
| that's with RELEASE_3_0_0-289-gbb69595 | 20:37 | ||
| jnthn | moritz: Undef really doesn't exist in Perl 6, so I'm not sure NQP using the notion of Undef is so wise. | ||
| moritz | jnthn: seems to be from the PAST/POST compilers | 20:38 | |
| jnthn | Oh. | ||
| OK, guess that's harder to deal with in a hurry. | |||
|
20:49
zby_home joined
20:51
tadzik left,
tadzik joined
20:52
zby_home left
|
|||
| moritz | jnthn: no hurry, since it's not in api.yaml as a deprecation :-) | 20:56 | |
| jnthn | :) | ||
| nopaste | "bacek" at 192.168.1.3 pasted "show_expetimental.nqp for cotto and dukeleto :)" (46 lines) at nopaste.snit.ch/29613 | 21:02 | |
| bacek | cotto, it works :) | 21:03 | |
| tadzik | nqp is quite nice | 21:05 | |
|
21:05
nwellnhof joined
|
|||
| tadzik | (to read, to look at) | 21:05 | |
| bacek | tadzik, it's subset of Perl6 :) | 21:06 | |
| nwellnhof | bacek: how did you get the impression that atrodo's lorito is stack-based or has single byte opcodes? | ||
| bacek | nwellnhof, rtfs and docs | ||
| nwellnhof | yes, i did. it definitely hasn't single byte opcodes and the stack is only used for argument passing. | 21:07 | |
| bacek | "stack used for argument passing" is description of "stack-based VM" | 21:08 | |
| nwellnhof | well, it isn't really a stack. the opcodes are called push and pop, that's all. | ||
| lua vm is much more stack based. | 21:09 | ||
|
21:10
Eclesia joined
|
|||
| Eclesia | hi | 21:11 | |
| bacek | nwellnhof, yes, Lua's calling convention even more awful :) | ||
| nwellnhof | but very efficient | ||
| bacek | nwellnhof, yes, single memcpy to pass args. Little bit more work for RETURN. | 21:13 | |
| and with smart register allocator allows interesting optimizations | 21:14 | ||
| cotto | bacek, nice nqp script | 21:15 | |
| bacek | cotto, direct port of dukeleto++ show_experimental.pl :) | ||
| cotto | bacek, do you know if Lua is used for any large project or if it's just for embedding? | 21:16 | |
| bacek | cotto, it's quite popular in gamedev as scripting language. I embedded it into some webframework few years ago. | 21:17 | |
| cotto, not sure about "standalone big lua app" | |||
| nwellnhof | en.wikipedia.org/wiki/Lua_%28progra...plications | ||
| cotto | Yeah. The tool-assisted speedrun people do cool things embedding it into emulators. | ||
| bacek | cotto, if someone (including you) can finish multiline scalars parsing in yaml-tiny it's ready. | 21:19 | |
| either as ext/yaml-tiny or runtime/parrot/library/YAML/TIny | 21:20 | ||
| I'm not going to implement serialization in it anyway | |||
| afk # $dayjob | |||
| cotto | looks like Prosody is ~20kloc of Lua | 21:21 | |
| Hackbinary | cotto, bacek I've seen lua used on linksys, dlink and netgear routers | ||
| cotto | Yeah. I'm looking for applications where it's not used as an embedding language. | 21:22 | |
| I'm wondering if its high suitability for embedding means it's lta for larger apps. | |||
| though the counterargument to any mention of language suitability is PHP | 21:23 | ||
| bacek | cotto, Lua language - probably no. Lua VM - is kind of good enough :) | ||
|
21:26
cognominal left
21:29
cognominal joined
|
|||
| atrodo has a lot of backscrolling to do | 21:34 | ||
| cotto | atrodo, indeed. | 21:35 | |
|
21:55
rurban_ joined
21:59
rurban left,
rurban_ is now known as rurban
|
|||
| atrodo | I hope someone has a chance to write a tl;dr version | 21:59 | |
|
22:10
PacoLinux left
22:13
Eclesia left
22:46
whiteknight joined
|
|||
| pmichaud | draft of nqp plan for comment/improvement before I publish it to parrot-dev | 22:47 | |
| pmichaud.com/sandbox/nqp.txt | |||
|
22:50
Kristaba left
|
|||
| dalek | rrot: e731419 | bacek++ | src/nci/libffi.c: Pacify compiler about absense on default case in switch. |
22:52 | |
| rrot: a00d590 | bacek++ | src/nci/libffi.c: Avoid (useless) cast INTVAL to size_t |
|||
| rrot: 01fabfb | bacek++ | config/auto/warnings.pm: Remove -Wbad-function-cast. According to gcc info it's kust helps to catch undeclared functions error. We do have special -Wimplicit to catch it. |
|||
| rrot: e19f32b | bacek++ | src/runcore/main.c: Use explicit const_cast to pacify compiler. |
|||
| rrot: 2709a45 | bacek++ | MANIFEST: mk_manifest_and_skip |
|||
| cotto | pmichaud, reading now | 23:03 | |
| and for the next several minutes, apparently | |||
| glad to see that "nqp" is being defined as separate from the current nqp-rx | 23:05 | ||
|
23:08
sheant left
|
|||
| cotto | pmichaud, thank you for spelling that out. | 23:09 | |
| mikehh | cotto: what are your thouhts on this? | 23:11 | |
| cotto | It's a natural move for the Rakudo hackers to make. Parrot's use of nqp-rx in core does seem less than optimal now, though. | 23:12 | |
| mikehh | I think we should use whatever tools are available (maybe modified) but I don't see a major problem with "nqp" | 23:14 | |
| cotto | It's been useful as a higher-level abstraction over Parrot guts, and nqp explicitly will be less guts-oriented. | 23:15 | |
|
23:15
hudnix left
|
|||
| cotto | (from a Parrot core dev pov) | 23:15 | |
|
23:16
AzureSto_ joined
|
|||
| mikehh | as I see it we can use it to develop other interfaces as necessary | 23:16 | |
|
23:17
hudnix joined
23:18
AzureStone left
|
|||
| mikehh | bacek: g++ don't like the cast in src/runcore/main.c | 23:21 | |
| cotto | I wondered about that. | 23:22 | |
| mikehh | src/runcore/main.c: In function ‘void parrot_hash_oplib(parrot_interp_t*, op_lib_t*)’: | 23:24 | |
| src/runcore/main.c:347:50: error: invalid const_cast from type ‘const char*’ to type ‘void*’ | |||
| src/runcore/main.c:350:58: error: invalid const_cast from type ‘const char*’ to type ‘void*’ | |||
| src/runcore/main.c:351:54: error: invalid const_cast from type ‘const char*’ to type ‘void*’ | |||
|
23:30
hudnix left
23:48
kid51 joined
|
|||
| kid51 | "And yes, the new NQP is explicitly designed to enable and other languages ..." -- the 'and' is superfluous. | 23:58 | |
| "... we may increase of efforts in this area." s/of/our/ | 23:59 | ||