|
Parrot 2.10.1 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Parrot Developer Summit 2300 UTC today | Please test rakudo with bleeding edge parrot! Set by moderator on 5 December 2010. |
|||
| fbrito | whiteknight: I will push some code soon in my PLA fork and ask for feedback here :) | 00:00 | |
| Matt_ | whiteknight: I searched through the code and the path doesn't seem to be stored in PackFile, so I assign it after calling PackFile_new in functions that get passed the filename as a parameter | 00:02 | |
| kid51 | whiteknight: patches applied to the embed_api2 branch today do not fix the problem on Darwin, though they do reduce the volume of warnings somewhat | 00:04 | |
| nwellnhof | whiteknight: feel free to commit your Win64/MSVC changes to nwellnhof/compilerflags btw | 00:05 | |
| nopaste | "kid51" at 192.168.1.3 pasted "embed_api2: build failures persist on Darwin" (319 lines) at nopaste.snit.ch/26733 | ||
| NotFound | Matt_: Get a filename from the content of a packfile that can not be read? Awesome! | 00:07 | |
| About the Key thing: if we are planning to replace Key with RPA, as some people have suggested sometimes, a first step should be making its vtable more compatible. | 00:12 | ||
| nwellnhof | seems that headerizer needs to be run in branch embed_api2 | 00:13 | |
| kid51 | I will try that | 00:14 | |
| plobsing | looking for the error text in TT #1833, it appears only in ImageIOThaw on the arbitrary strings codepath. there is *no* file associated with that error. | 00:16 | |
| NotFound | plobsing: even more amazing! | 00:17 | |
| plobsing | I'd close it as invalid. | ||
| fbrito | whiteknight: sorry for the silly question, but if I have a 2x2 matrix and try to access a element using "matrix{Key.new(n)}", what should be returned? The n-th element on the 1st row, right? | 00:18 | |
| plobsing | I'd remove the arbitrary strings codepath entirely (it's not particularly useful), but testing ImageIO would get a whole lot more tricky. | ||
| Matt_ | Hmm ok! Should I withdraw from the task on the GCI site? | ||
| plobsing | Matt_: yes. sorry. we need better ticket triage it seems. | 00:19 | |
| kid51 | It looks like running headerizer.pl may have done the trick in the embed_api2 branch. | ||
| nwellnhof | dukeleto: ping | 00:23 | |
| dukeleto | nwellnhof: pong | 00:24 | |
| nwellnhof | in git_workflow.pod, we should document how to create a tracking branch. | 00:25 | |
| (git checkout --track -b ...) | |||
| dukeleto | nwellnhof: tracking is default for the versions of git that the workflow recommends | 00:26 | |
| nwellnhof: and the README mentions --track | |||
| nwellnhof: but yes, you are probably correct | |||
| dalek | rrot/embed_api2: c7def2f | jkeenan++ | / (2 files): Run 'perl tools/dev/headerizer.pl src/embed/api.o'. |
||
| dukeleto | nwellnhof: what version of git are you using? | ||
| dukeleto | 1.5.x is painfully old | ||
|
00:27
lucian left
|
|||
| nwellnhof | git version 1.7.2.3 | 00:27 | |
| plobsing | perhaps exceptions originating from c should inlucde __LINE__ and __FILE__, to make tracking them easier so we can avoid thinkos like TT #1833 in the future. | ||
| dukeleto | nwellnhof: then you don't need --track | ||
| kid51 | On 1.5.x, when you want to track a branch, the syntax is: git checkout --track -b <newbranch> <origin/newbranch> | ||
| nwellnhof | dukeleto: simply omit --track? | ||
| dukeleto | nwellnhof: yep | 00:28 | |
| kid51 | nwellnhof On 1.6 and 1.7, yes. Alas, not on 1.5 | ||
| dalek | rrot: 45523d2 | dukeleto++ | README: [doc] Tweak formatting in README |
||
| dukeleto | kid51: you can also use -t | ||
|
00:31
donaldh left
00:35
kid51 is now known as kid51_at_dinner
|
|||
| dalek | TT #1833 closed by plobsing++: Incompatible bytecode error lacks important information | 00:35 | |
| TT #1833: trac.parrot.org/parrot/ticket/1833 | |||
| whiteknight | fbrito: If you use 1 key, it treats the matrix like a normal C array | 00:37 | |
| fbrito | oh, totally forgot about that. thank you :) | ||
| whiteknight | fbrito: look at VTABLE get_pmc_keyed_int | ||
| dalek | rrot: df599f5 | dukeleto++ | docs/project/git_workflow.pod: [doc] Describe how to track remote branches in elderly Gits |
00:38 | |
| dukeleto | plobsing: that ticket you just rejected is a GCI task | 00:39 | |
| plobsing: and you are wrong that those errors only happen in ImageIO | |||
| plobsing: they happen whenever the PBC format changes and the wrong parrot is used to read bytecode | |||
| plobsing: which happens a lot | |||
| plobsing | dukeleto: grep the source. that's the only place it shows up. | 00:40 | |
| there are only 2 places that call PackFile_unpack. only one of them gives that error on failure. | 00:41 | ||
| dalek | rrot: 20ae439 | nwellnhof++ | docs/project/git_workflow.pod: [doc] Fix order of git command line options |
||
| plobsing | that error only happens when someone does the equivalent of '$P0 = thaw $S0'. how do you expect the packfile to know where the string came from? | 00:42 | |
| dukeleto | nwellnhof: danke for fixing that typo | 00:43 | |
| plobsing: i swear that error happens all the time in PL/Parrot when the wrong parrot version reads an incompatible bytecode file | |||
| plobsing | that may be so, but there is nothing that can be done at the packfile level. | 00:44 | |
| I suspect that some code may be slurping fpmc files (probably config hash) of the wrong format. | |||
| and not handling exceptions appropriately. | 00:45 | ||
| dukeleto | plobsing: now that sounds like it is possible | ||
| plobsing: is there *any* more info that we can give in the error? Perhaps a backtrace? | 00:46 | ||
| plobsing | dukeleto: did you relink with config.o after the parrot update? failure to do that would cause this problem. | ||
| dukeleto | plobsing: that error is really hard to debug for non-core devs | ||
| plobsing | dukeleto: I think Parrot_ex_throw_from_c_args should provide a trace somehow. | ||
| dukeleto | plobsing: it happens occasionally when i recompile a new parrot, but PL/Parrot finds my old parrot, and then Bad Things Happen | 00:47 | |
| plobsing | dukeleto: it is *trying* to save you from a segfault. although libparrot probably causes you to crash and burn anyhow. | ||
| dukeleto | plobsing: that error segfaults my postgres process every time, so it is failing to save me from a segfault | 00:48 | |
| plobsing | yes, but imageio code is not to blame. exceptions code is. hot potato | 00:49 | |
| dukeleto | plobsing: i still thing that error needs to give more debug info. It is an essentially useless error | 00:51 | |
| dalek | TT #1833 reopened by dukeleto++: Incompatible bytecode error lacks important information | 00:52 | |
| TT #1833: trac.parrot.org/parrot/ticket/1833 | |||
| dukeleto | plobsing: it doesn't tell the person getting the error how to fix it or what threw the error or anything | ||
| i remember getting stuck for weeks on that error and it driving me insane | 00:53 | ||
| plobsing | so make Parrot_ex_throw_from_c_args a macro that includes __FILE__ and __LINE__ | ||
| fire up gdb and break on Parrot_ex_throw_from_c_args | 00:54 | ||
| cotto | ~~ | ||
| plobsing | dukeleto: what I'm getting at is that there is no more info that can be included at the point of error. Our exceptions system is lacking when it comes to errors originating from C, and our API is lacking in handling those exceptions. | 00:57 | |
|
01:04
dmalcolm left
|
|||
| dukeleto | plobsing: i think i understand now | 01:09 | |
|
01:23
silug joined
|
|||
| nwellnhof | plobsing: but shouldn't it be possible to add some meta information to the Packfile struct? like the filename where the data came from? | 01:24 | |
| plobsing | nwellnhof: not at all. '.sub 'main' :main; $S0 = freeze $P0; say $S0; .end' what "file" does that come from? the program that created it, which has no way of knowing the frozen string will be output or that the string it is outputing is a frozen pmc, or the file I may or may not be piping the output to? | 01:26 | |
| or the c file that pmc gets mangled into? or the object file that c file compiles down to? | 01:27 | ||
| nwellnhof | only in case the data comes from a file, of course. | 01:28 | |
| plobsing | if the data comes from a PBC file, that codepath is not taken. | ||
| nwellnhof | but it seems that people are getting this error when running some files from an old Parrot installation. so it should be somehow traceable to a certain file. at least in theory. | 01:32 | |
| plobsing | it would be best if we got a C backtrace from C exceptions that never hit a runloop (such as is the case here) so we could easily identify the source | 01:34 | |
| I suspect a stale config-hash is the culprit | |||
| kid51_at_dinner | embed_api2 now PASS on Darwin: smolder.parrot.org/app/projects/rep...tails/1535 | 01:36 | |
| whiteknight | kid51_at_dinner: awesome | ||
| I was about to fix it, but I just saw your commit | |||
| cotto | kid51_at_dinner, nice work | 01:38 | |
| which ocx? | |||
| osx | 01:39 | ||
|
01:39
kid51_at_dinner is now known as kid51
|
|||
| kid51 | I'm on 10.4 | 01:39 | |
| old school | |||
| whiteknight | bluescreen++ fixed the underlying error earlier, kid51++ put on the finishing touches | ||
| kid51 | is bluescreen Mariano Wahlmann? | 01:40 | |
| cotto | yes | ||
| kid51 | cotto: I doubt /usr/include/stdin.h changes much between Darwin versions, so I suspect we would have gotten this problem on 10.5 or 10.6. | 01:41 | |
| And, for once, it has *nothing* to do with how much RAM I have. | |||
| cotto | I'm curious because I just closed an old ticket that was on 10.5 | 01:42 | |
|
01:42
Matt_ left
01:48
gg411 left
|
|||
| kid51 | Well, I don't think you have to worry too much about that ticket (TT #1247), cotto. | 01:50 | |
| allison knows how to file tickets ;-) | |||
| cotto | kid51, I suspect that she does | 01:51 | |
| nwellnhof | plobsing: afaics, the codepath *is* taken when reading a PBC with load_bytecode | 01:54 | |
| see Parrot_pbc_read in src/embed.c | |||
| allison | kid51: I really couldn't tell you, I haven't done any Mac development in a long time | 01:55 | |
| kid51: I would assume it's not an issue any more, as no one else has complained about it | |||
| plobsing | nwellnhof: look at the *second* line of the error message. now look at the error message in Parrot_pbc_read(). they are not the same. | 01:56 | |
| this is not the point of failure you are looking for | |||
| nwellnhof | plobsing: yes, scratch that | ||
| kid51 | Re trac.parrot.org/parrot/ticket/1883; does anyone understand what 'make bootstrap-ops' is really supposed to do? | 01:58 | |
| plobsing | kid51: it is supposed to rebuild the core ops library. it builds enough of parrot to run ./opsc --core | 01:59 | |
| then it runs ./opsc --core, and rebuilds. At least that's my understanding. | |||
| cotto | pretty much | 02:00 | |
| kid51 | So, why is it now DWIMming? | ||
| s/now/not | |||
| s/now/not/ | |||
| plobsing | looks like a non-default make target exposing a dependancy failure in our makefile. | 02:01 | |
| fbrito | hm, I really have to learn about pointers :P. can someone please take a quick look on this? pastie.org/1354231 | 02:03 | |
| I want to make it work, but without creating a new variable | 02:04 | ||
| plobsing | we need to list the dependency of nqp-rx on cclass.pasm | ||
| fbrito: (1) doesn't compile because you need to predeclare variables. 'INTVAL element1, element2;' above the code should fix the build error. | 02:07 | ||
| fbrito: not sure why (2) segfaults, but you are aliasing a variable with a variable of a different type which is just asking for trouble. | 02:09 | ||
| fbrito | I did what you suggested on (1) and it worked :o but I can't understand why it was working on (3) and not on (1) | 02:10 | |
| nwellnhof | plobsing: i think the problem with #1833 is thawing the config hash in Parrot_gbl_set_config_hash_interpreter in src/global_setup.c | ||
| plobsing | nwellnhof: I agree with that diagnosis. And the solution to making that error easier to debug would be (a) to have access to a C level backtrace or (b) for it to be possible to handle exceptions from c (so Parrot_gbl_set_config_hash_interpreter() could spit out something intelligent about the situation). | 02:12 | |
| bluescreen | fbrito (2) you are redefining "key" | ||
| not PMC *key and then PMC * const key | 02:13 | ||
| plobsing | fbrito: C makes the distinction between variable declarations and code. Declarations start with a type and may include statements as initializers. However, once a line of code (which does not start with a type) has been hit, you cannot put another declaration line. | ||
| cotto | whiteknight, ping | 02:14 | |
| whiteknight | pong | ||
| cotto | is it a good time to talk about roadmaps? | ||
| fbrito | plobsing: ahh, now I understand. thank you very much :) | ||
| cotto | fbrito, you should get a copy of k&r if you don't have one already | 02:15 | |
| en.wikipedia.org/wiki/The_C_Program...%28book%29 | |||
| whiteknight | cotto: sure | ||
| k&r is a good book, but a ripoff | 02:16 | ||
| same price now as it was 40 years ago | |||
| fbrito | cotto: I will take a look, thank you. Before CGI I (almost) only worked with high level languages, like Python and Ruby | 02:17 | |
| cotto | I've recently become a fan of a minimalist ticket queue, so I'm trying to think if tickets are the mechanism we should use for tracking roadmap items in the future. | ||
| whiteknight | I dont think so | 02:18 | |
| cotto | Integration with the rest of trac is nice, but if we continued to use them as we have been, most of the work would be pushing tickets back. | ||
| whiteknight | they end up too vague and open-ended | ||
| cotto | I want what we to do be transparent and accurate as much as possible. | ||
| whiteknight | right | 02:19 | |
| tickets in a huge queue are obuscated | |||
| obfuscated | |||
| cotto | I'm not sure if it's possible, but I'd love to see a 100 ticket queue. | 02:20 | |
| kid51 | For all but a handful of us (not including me), such tickets are untakeable and uncloseable | ||
| whiteknight | probably not.projects with queues that small are typically smaller and special-purposed | ||
| memcached, etc | |||
| cotto | kid51, that may be an innate problem | ||
| most people don't know all parts of parrot or have experience with all platforms | 02:21 | ||
| whiteknight | again, Parrot is big | 02:22 | |
| cotto | yes | ||
| whiteknight | a smaller ticket queue means smaller Parrot | ||
| rfw | oh, afternoon fbrito o/ | ||
| cotto | there's a correlation, though we're not near optimal yet | 02:23 | |
| whiteknight | no | ||
| cotto | anyway, if we want the roadmap to be on trac that implies it'll be in either tickets, the wiki or something else I'm missing.\\ | 02:24 | |
| fbrito | rfw: Hello! Good evening (23:23 here :P). We should talk in private. They are discussing some important parrot related things here | ||
| cotto | fbrito, rfw, no worries. The channel can handle two threads of conversation. | ||
| whiteknight | I like wiki | ||
| rfw | (secret: i don't really have anything to talk about, i just wanted to say hi) | ||
| cotto | whiteknight, me too. It has the issue that it gets stale, but that's more an indication of how we're using it (or not) | 02:25 | |
| whiteknight | tickets get as stale or worse because they get burried | 02:26 | |
| lost on page 9/12 | |||
| cotto | that's where I usually hunt for lhf for closing | 02:27 | |
| Do you have any thoughts on how we should structure the roadmap? | |||
| I guess that has a lot to do with the tuits of the volunteers working on its items. | |||
| whiteknight | by supported release | 02:28 | |
| thats a course enough granularity but still useful | |||
| cotto | I'm thinking that supported releases are the highest level of granularity we can reasonably say anything about | ||
| apart from talking about the next release or two | 02:29 | ||
| bluescreen | it is a pain in an company doing roadmap where you can count on heads... can't imagine in an OS project | ||
| but the good thing is that in most companies people is unhappy and do the least is expected from them.... here people is really passionated about what they're a doing | 02:30 | ||
| cotto | Yes. It's good to know that nobody's here because they have to be. | 02:31 | |
| plobsing | people at companies get to work on their projects 40 hours a week... | ||
| cotto | or more positively, everyone here wants to be here | ||
| whiteknight | right, monthlies are too close together, and too hard to manage | ||
| people work on what they want, it takes time to prepare a major goal | 02:33 | ||
| cotto | What about having a relatively solid per-quarter plan for the next year, a general plan for the n+1 year and a vague idea of after that | ||
| whiteknight | i like it | ||
| cotto | and at the post-x.0 PDS, we figure out the next yearly roadmap | ||
| whiteknight | good plan | 02:34 | |
| nwellnhof | plobsing: is there a way to get PARROT_PBC_MAJOR and PARROT_PBC_MINOR out of libparrot? | ||
| plobsing | nwellnhof: ack says no. | 02:36 | |
| and if it were possible, it put money on needing the config hash to get at it >< | |||
| s/it put/I'd put/ | |||
| cotto | whiteknight, ok. I should have enough time to blog on that. It's not a very complicated plan. | 02:37 | |
| whiteknight | cotto: general meta-plan out of the way, what are the goals for 2011 | ||
| ? | |||
| cotto | The next step is to figure out what'll go on the roadmap | ||
| plobsing | nwellnhof: do you want to compare the version you have versus the version expected? we can modify the error msg to include that info. | ||
| whiteknight | MOP? Lorito? GC? | 02:38 | |
| plobsing | roads? | ||
| nwellnhof | plobsing: forget it, it was a thinko. | ||
| cotto | MOP first | ||
| whiteknight | GC will happen concurrently methinks | ||
| cotto | It's insanity to try and move to Lorito and change the mop, and I don't want to have to reimplement the current mop | ||
| kid51 | What is the minimum set of improvements/feature additions you want to see in each of 3.0, 3.3, 3.6, 3.9? | 02:39 | |
| cotto | sure. it's pretty orthogonal | ||
| s/want/expect/ | |||
| whiteknight | jnthn and team have MOP. bacek and co have GC | 02:40 | |
| I'm sure plobsing and friends have packfile magic too | |||
| cotto | me and my team have lorito | ||
| whiteknight | right | ||
| and I'm going to be on a beach somewhere drinking mohitos | |||
| cotto | and there's no reason why we can't do Lorito and the MOP simultaneously | 02:41 | |
| whiteknight | in a secured location | ||
| right | |||
| kid51 | What do the architect and the project manager think they can deliver in each of the supported releases? | ||
| cotto | whiteknight, wfm as long as you have your laptop with you on the beach | ||
| whiteknight | :) | 02:42 | |
| as product manager, it probably makes most sense for me to focus on MOP, packfiles, and GC. in that order | 02:43 | ||
| kid51 | As you can tell, I'm recommending confining the roadmap to what the leadership thinks it can reasonably promise to deliver | ||
| cotto | kid51, absolutely | ||
| whiteknight | by 3.6 I would like HLLs to be able to output bytecode directly, instead of PIR | ||
| kid51 | Anything that happens above and beyond that is icing on cake. | ||
| cotto | I want to underpromise and overdeliver rather than what we've been doing. | 02:44 | |
| or at least promise accurately | |||
| whiteknight | MOP and packfile improvements can help to push HLLs to the next level | ||
| kid51 | Which implies: Nothing on the roadmap that the two of you aren't personally invested in -- even if others do most of the work. | ||
| whiteknight | nice strategy | ||
| kid51: fair | |||
| bluescreen | whiteknight: +50 to output bytecode... but you have to have a nice debugger | 02:45 | |
| whiteknight | that's ancillary | ||
| cotto | kid51, I'd say nothing goes in unless one of us or a known-reliable contributor is solidly invested in it | ||
| but I agree with the sentiment | 02:46 | ||
| not roadmaps without a champion | |||
| kid51 | If there are things that the architect and project manager are merely lukewarm about, let others work on them but don't put them on roadmap. | ||
| cotto | er, items | ||
| whiteknight | I want the three things I mentioned by 4.0, no exceptions | 02:47 | |
| cotto | We can have a separate wishlist for other items | ||
| whiteknight | so put my name down for those | ||
| a "general" wishlist and a smaller roadmap | 02:48 | ||
| kid51 | s/project manager/product manager/ | ||
| By June, I would like you guys to be capable of giving talks at conferences like YAPC or OSCON where you can say, "We promised to deliver these features/improvements in Parrot in these releases -- and we did." | 02:49 | ||
| cotto | A nice roadmap track record will give our community manager something nice to work with. | ||
| whiteknight | yes | ||
| kid51 | I want you to be capable of giving the kind of talk pmichaud gave at YAPC this year on Rakudo Start | ||
| Star | |||
| cotto | kid51, I'm planning on doing that kind of thing. It gives me a healthy fear atm. | 02:50 | |
| kid51 | Actually, if there are conferences/user groups in your local areas at which you guys could start doing presentations in, say, February, then that's when you should start doing them. | 02:51 | |
| cotto | kid51, good idea | 02:52 | |
| whiteknight | my availability for those kinds of things is low | ||
| kid51 | Start with local Perl/Python/Ruby groups | ||
| whiteknight | good idea, but hard to do | ||
| kid51 | whiteknight: For you (unlike the rest of us ;-) ), it's mainly a question of editing down what you've already written! | 02:53 | |
| whiteknight | :) | ||
| kid51 | phila.pm, abe.pm or PLUG would probably be good first audiences | ||
| whiteknight | PLUG? | 02:54 | |
| kid51 | Phila Linux users group | ||
| whiteknight | ah | 02:55 | |
| kid51 | Have never attended myself, but mjd and other Phila perlmongers have presented there | ||
| cotto | whiteknight, one concern I have is jnthn's uncertainty wrt the new MOP will be "ready". | ||
| fsvo ready, of course | |||
| whiteknight | of course | ||
| cotto | I'd love to hear mjd talk. I'd probably be lost after 5 minutes. It'd be great. | 02:56 | |
| If I search for "Seattle PHP user's group", the 3rd entry is for a Perl user's group. duckduckgo++ | 02:57 | ||
| I'm mostly curious what such a group would be like. | 02:58 | ||
| there's not much we can do about the MOP design, apart from providing jnthn with extra minions. | 02:59 | ||
| I trust him to get it right though. | 03:00 | ||
| whiteknight | yeah, that's one thing we don't need to worry about | ||
| What I really would like to do in 2011, is make a bootstrapped JavaScript compiler for Parrot | |||
| once we have something that cool in our ecosystem, I think we will be able to start getting devs for other languages interested | 03:01 | ||
| cotto | I saw some discussion about that fly by, but had to attend to other things at the time. | ||
|
03:01
Matt_ joined
|
|||
| whiteknight | python people, as an oft-cited example, don't want to make a Python compiler in Perl6 | 03:01 | |
| cotto | There's a crazy amount of innovation happing with js right now. | ||
| whiteknight | yes | ||
| There exist JavaScript parsers written in javascript. If we create a Parrot bytecode backend, we have a JavaScript-on-Parrot compiler | 03:03 | ||
| and then we can say to people like Python folks, or PHP folks, "hey, write your compiler for your language in your language. It's all cool with us" | 03:04 | ||
| NQP-RX/PCT is very powerful, but it's Perl. for some people, that's an immediate turnoff | |||
| cotto | That has potential to be a big draw. | ||
| whiteknight | not everybody is as open to multiple languages as Parrot folk | ||
| exactly | |||
| JavaScript devs know JavaScript. They don't necessarily know C or Perl6 | |||
| so, let them write it in JavaScript, etc | 03:05 | ||
| (repeat that statement for all X, where X is any programming language) | |||
| I would like to get at least 1 other bootstrapped compiler project off the ground in 2011, and I think that will be a spark for a lot of people | |||
| GSOC could provide us with several, if we play our cards right | 03:06 | ||
| Anyway, I have to get moving to bed nowish. Continue the conversation later? | |||
| cotto | a minimal bootstrappable language would be an interesting project | ||
| whiteknight | yes | ||
| cotto | sure | ||
| 'night | 03:07 | ||
| whiteknight | goodnight | ||
|
03:07
Matt_ left,
whiteknight left
03:19
bluescreen left
03:21
kid51_ joined
|
|||
| dalek | rrot: d922b8a | nwellnhof++ | src/global_setup.c: [src] Better error message when linking against incompatible libparrot This should fix TT #1833. |
03:23 | |
|
03:24
Matt_ joined
03:25
kid51 left
|
|||
| dalek | rrot: 7717682 | nwellnhof++ | src/global_setup.c: [codingstd] Fix line length |
03:29 | |
| kid51_ | nwellnhof: Is there any test we could write to verify the fix to TT #1833? | 03:32 | |
| nwellnhof | that's hard because one would have to link against a libparrot compiled with a different PBC_MAJOR or PBC_MINOR. | 03:33 | |
| kid51_ | I suspected as much, but I figured it wouldn't hurt to ask :-) | ||
| plobsing | likely steps to reproduce: (1) build a custom parrot with bumped pbc compat. (2) build rakudo with this custom parrot. (3) swap in normal libparrot into same location. | 03:34 | |
| kid51_ | mucho trabajo | ||
| plobsing | s/rakudo/any application that embeds libparrot/ | ||
| kid51_ must sleep | 03:35 | ||
| cotto | kid51_, 'night | ||
| nwellnhof | plobsing: i did something similar: ran an old rakudo build with a custom parrot. | ||
|
03:38
kid51_ left
|
|||
| plobsing | did it work? did you get the message? | 03:39 | |
| nwellnhof | yes, i did. | ||
| plobsing | \\o/ I'd say this case is closed (aside from broken encapsulation, which I don't know how to avoid in this instance) | 03:40 | |
| nwellnhof++ | |||
|
03:40
kthakore joined
|
|||
| kthakore | seen chromatic | 03:41 | |
| aloha | chromatic was last seen in #parrot 19 hours 34 mins ago saying "Me too, such as it's midnight.". | ||
| cotto | fbrito, after you're done with k&r, you can go on to the advanced lesson: www.bobhobbs.com/files/kr_lovecraft.html | ||
| nwellnhof | plobsing: yes, it's somewhat of a hack. but i think it's the best we can do for now. | 03:42 | |
| bacek_at_work | cotto, hey. What about resurrecting pmc_pct? :) | 03:45 | |
|
03:46
Matt_ left
|
|||
| cotto | bacek_at_work, would it be more valuable to do that or get the packfile PMCs working? | 03:47 | |
|
03:47
Matt_ joined
|
|||
| bacek_at_work | Packfiles are slightly more valuable. | 03:47 | |
| cotto | only slightly? | ||
| bacek_at_work | But pmc_pct is more fun. | ||
| cotto, we do need both at the end of they day. | 03:48 | ||
|
03:49
Matt_ left
|
|||
| cotto | bacek_at_work, what about irclog.perlgeek.de/parrot/2009-06-30#i_1275754 | 03:50 | |
| cotto gets purl flashbacks | |||
| nwellnhof | somehow, the whole idea of thawing the config hash seems flawed. if we have a stable embedding API, why shouldn't an executable be able work with libparrots that support different bytecode versions? | 03:51 | |
| bacek_at_work | cotto, yes. This idea still hold. But we need functional l1ops and Packfiles for it. | ||
| cotto | ok | 03:52 | |
| I'm inclined to work on packfiles, mostly because I want to finish the work. | 03:53 | ||
| but they're also nice and self-hosty | |||
| bacek_at_work, if you were updating the packfiles, would you have one PMC type per struct or would you wrap all the bytecode stuff into a single PMC? | 03:54 | ||
| plobsing | nwellnhof: agreed. thawing a config hash is extreme overkill for the ~4 values libparrot uses out of it. | ||
| bacek_at_work | cotto, I'll give a look at your packfiles branch tonight. May be we can crack it fast. | 03:55 | |
| afk # meetings | |||
|
04:28
gg411 joined
04:30
Matt_ joined
04:48
Matt_ left
04:49
Matt221 joined
04:51
Matt221 left
|
|||
| fbrito | msg whiteknight I have just updated my GCI task. Please take a look when you have some time: www.google-melange.com/gci/task/sho...9130043418 | 05:27 | |
| aloha | OK. I'll deliver the message. | ||
|
05:34
nwellnhof left
06:09
gg411 left
06:33
Kulag left
06:34
Kulag joined
06:42
Drossel joined
06:43
Kulag left
07:05
fbrito left
07:16
dalek left
07:17
dalek joined
|
|||
| cotto | reparrot.blogspot.com/2010/12/roadm...ction.html | 07:26 | |
|
07:52
bacek joined
08:02
jan left
|
|||
| cotto | hio bacek | 08:03 | |
| moritz | cotto++ # roadmap thoughts | 08:04 | |
| personally, I'd even go one step further | 08:05 | ||
| and decouple the development roadmap from the release roadmap completely | |||
| cotto | moritz, please elaborate | 08:06 | |
| moritz | a time based release schedule is great | ||
| but volunteer work doesn't tie well to schedules, in general | |||
| cotto | It's done wonders for Parrot. | ||
| moritz | so | ||
| I'd propose to only promise dates for parrot releases, not features | 08:07 | ||
| and have a separate development roadmap, which basically manages depencies among feature ideas | |||
| like "we need lorito for JIT compilation" | |||
| or "we need $thing for lorito first" | |||
| and that development roadmap can also have time estimates, but it doesn't really need to | 08:08 | ||
| cotto: does this make some kind of sense to you? | 08:09 | ||
| cotto | That's worth thinking about. A separate development roadmap would get daunting, but it'd also show us where to put effort to reach our goals. | ||
| very much | |||
| moritz | well | ||
| it would make the release roadmap basically just a list of dates, versions and an [X] for supported releases | 08:10 | ||
| so you'd have two lists to maintain, but one would be rather slim (and mostly autogenerated, if somebody steps up and writes a tool that generates it) | |||
| cotto | I like the general idea (though I want to have features tied to releases where we know we can get them done), but I don't know how managing that on the wiki would work. | 08:11 | |
| that being the dev roadmap | |||
| moritz | neither do I :-) | 08:12 | |
| I just made the experience that the only time you can plan is your own, and even that only in limits | |||
| cotto | very true | 08:13 | |
| btw, I'm loving the Perl 6 Advent Calendar this year. | |||
| moritz | good to hear, thanks | ||
|
08:17
jhelwig left
|
|||
| sorear | maybe I'll do something for it | 08:23 | |
| cotto | sorear, what do you mean? | ||
| moritz | like, a post? or two? :-) | 08:25 | |
|
08:31
fperrad joined
|
|||
| sorear | moritz: that sort of thing, yes | 08:33 | |
| I'm still trying to understand what it really *wants* | 08:34 | ||
| moritz | that's easy: something related to Perl 6 that outsiders might find interesting to read | 08:35 | |
| where "outsiders" mostly means "programmers who are familiar with other languages, and have heard a bit about Perl 6" | |||
| cotto sleeps | 08:44 | ||
| sorear | most of my familiarity with that kind of person involves them laughing at Perl 6 | 08:52 | |
| moritz | sorear: you've read too many reddit comments :-) | 08:54 | |
| sorear: but fact is that many of those posts attract more than 1k readers, and most comments are very positive | |||
| sorear | moritz: no, I just hang out on irc.perl.org a lot. | 08:55 | |
| moritz | and there's a considerable interest in non-empty Perl 6 talk in the Perl 5 community too, though some p5 people brag very loudly how much they don't care | ||
| sorear: don't let a loud minory discourage you | 08:56 | ||
|
09:00
lucian joined
09:31
rfw left
10:06
Drossel left,
Kulag joined
10:48
dalek left
10:49
dalek joined
11:04
AndChat| joined
11:12
AndChat| left
11:16
contingencyplan left
11:17
lucian2 joined
11:20
lucian2 left
11:21
AndChat| joined
11:25
AndChat| left
11:26
lucian2 joined
11:30
lucian2 left
|
|||
| dalek | rrot/nwellnhof/compiler_flags: b6eca53 | fperrad++ | config/auto/gcc.pm: [mingw] no -fPIC on Windows warning: -fPIC ignored for target (all code is position independent) |
11:35 | |
|
11:45
jan joined
13:11
bluescreen joined
|
|||
| dalek | rrot/nwellnhof/compiler_flags: 6d5fc62 | fperrad++ | config/init/hints/mswin32.pm: [mingw] lib msvcrt not needed |
13:19 | |
|
13:29
slavorgn left
13:35
smash joined
|
|||
| smash | hello everyone | 13:38 | |
|
13:42
whiteknight joined
13:43
Patterner left
|
|||
| whiteknight | good morning, #parrot | 13:44 | |
| smash | seen chromatic | ||
| aloha | chromatic was last seen in #parrot 1 days 5 hours ago saying "Me too, such as it's midnight.". | ||
|
13:45
bacek left
|
|||
| smash | chromatic ? | 13:46 | |
|
13:50
Kulag left
|
|||
| whiteknight | good morning, smash | 13:50 | |
| chromatic is probably still asleep | |||
| or, very recently awake | |||
| smash nods | |||
| i'll see if he pops in the next hours | 13:51 | ||
|
13:52
Kulag joined
13:53
Psyche^ joined,
Psyche^ is now known as Patterner
13:58
Kulag left,
Kulag joined
14:12
ligne joined
14:24
Kulag left,
Kulag joined
|
|||
| Coke | I'm not sure where he'll respawn. | 14:27 | |
| whiteknight | I think we're going to be able to put together a decent JavaScript on Parrot compiler, and I think we will be able to do it pretty quickly | 14:56 | |
| atrodo | Exciting | ||
| dukeleto | whiteknight: that sounds exciting | 14:57 | |
| whiteknight | I've been reading over zaach/cafe source all morning, and it looks like it should be pretty easy to add in a Parrot PIR backend | 15:00 | |
| that gives us a stage 0 pretty quickly | |||
| Once we can get the generated compiler to start building itself, we can remove the non-Parrot stuff, or make the Parrot stuff the default and keep everything else | 15:01 | ||
| it looks like he also has an Objective-J frontend, and a Harmony front-end, so we get those for cheap too, if we want | 15:02 | ||
| er, I guess Harmony is just a newer version of JavaScript | 15:03 | ||
|
15:05
bluescreen left
|
|||
| whiteknight | the hardest part of it is, I think, setting up a good prototype-based object model for the generated code to use so we can approximate JS semantics | 15:05 | |
| at the very least we will need a temp implementation until Parrot's new MOP_ is in | 15:06 | ||
| atrodo | It's sad that's the hardest part | ||
| whiteknight | atrodo: for a basic implementation I don't think it should be too hard. JavaScript objects are very Hash-like. We would need some kind of a ProtoFactory that we can put in a prototype and get out a new clone | 15:07 | |
| and then we need to create a bunch of Prototype objects for built-in types, and make sure they all have a .prototype field | |||
| atrodo | whiteknight> Aye. But I would have hoped that the problem would have already been solved in some regard for another language | 15:08 | |
| whiteknight | atrodo: yes, there just hasn't been much motivation yet. The older ecmascript compiler used the normal Parrot MOP and hacked together a working implementation | ||
| atrodo goes to read the cotto and whiteknight blogs | 15:11 | ||
|
15:17
dmalcolm joined
|
|||
| NotFound | whiteknight: for some value of working, las time I worked on it was only able to run very simple programs. | 15:17 | |
|
15:20
bluescreen joined
|
|||
| bluescreen | whiteknight, make sure you blog in a tutorial way about it... that will make it easier for others who want to do a similar task with ruby, python or any other HLL | 15:21 | |
| NotFound | bluescreen: anyone wanting to write a compiler targeting pir have already a good example to borrow: the two stages of winxed. | 15:23 | |
| bluescreen | NotFound, is there any tutorial in how to do it...? or just reading source code? | 15:24 | |
| NotFound | bluescreen: reading source, asking, working and thinking. | 15:25 | |
| I expect people wantning to write compilers to be able to do that. | 15:26 | ||
| atrodo | NotFound> When I'm working, last thing i want to do is think | ||
| bluescreen | but they have to learn winxed and pir | ||
| NotFound | bluescreen: poor guys. | 15:27 | |
| bluescreen | and know that winxed already does have a compiler written in winxed | ||
| NotFound | bluescreen: stage 0 is writen in C++, you don't need to learn winxed. | ||
|
15:28
plobsing left
|
|||
| NotFound | Anyway, if I should write a tutorial about writing a javascript compiler in order for someone to write it, I prefer to write the compiler. | 15:29 | |
| bluescreen | lol | ||
| NotFound | And about python and ruby, I think there are people in its comunitys able to write compilers. | 15:30 | |
| bluescreen | yeah but we have to give them a few pointers in how to build the gap between the AST and PIR | ||
| NotFound trying hard to not make the usual jokes about 'pointers'... | 15:31 | ||
| atrodo | NotFound> Actually, how easy/good is winxed at generating bytecode? | ||
| NotFound | atrodo: any comment about that from me will be highly subjective, | 15:33 | |
| atrodo | NotFound> I can appreciate that, but the question is also highly subjective as well | ||
| NotFound | About the "easy" part, I really don't know what to say. For me is good. | 15:35 | |
| atrodo | NotFound> When I was trying to write a bytecode generator I tried nqp, not sure if I liked it. But the more I hear about winxed, the more interested I am in it | ||
| NotFound | atrodo: the bytecode generator is not bad, the bad part is that is has a lot of special cases. | 15:36 | |
| atrodo | NotFound> What kind of special cases? | ||
|
15:36
Patterner left
|
|||
| NotFound | atrodo: maybe is easier to ask what cases are not special X-) | 15:37 | |
| atrodo | NotFound> hehe | ||
| NotFound | atrodo: a few examples: selecting what king of get/set_...._keyed_... should be intended depending on arguments and return or assign-to types. | 15:38 | |
| kind | |||
| That may be less problem with languages that doesn't use parrot native types. | 15:39 | ||
|
15:42
mtk joined
|
|||
| atrodo | NotFound> Good to know. When I get back around to that project, I'll probably check winxed out more | 15:42 | |
| NotFound | atrodo: feel free to ask, comment, and criticise. | ||
| atrodo | NotFound> I will remember that ;) | 15:43 | |
|
15:46
mtk left
|
|||
| NotFound | Now that I think about it, there is a sort of step-by-step tutorial: the stage 1 history in the winxed repository. | 15:48 | |
| I mean, the history of the changes of the winxedst1.winxed file. | 15:50 | ||
| whiteknight | creating a bootstrapped compiler is not too hard: Create a stage 0 compiler, in your language, and run it on an existing compiler | ||
| then, use the output result to compile itself | |||
| when you're doing development, always use the previous version to compile the new version | |||
|
15:51
mtk joined
|
|||
| NotFound | I wrote this post some months ago: notfound.posterous.com/self-hosted-...hy-and-how | 15:51 | |
| bluescreen is reading winxedst1.winxed | 15:52 | ||
|
15:53
mtk left,
mtk joined
|
|||
| whiteknight | the key is, write the compiler in language X as if you have a compiler for language X around already | 15:54 | |
| use an existing solution until yours is mature enough to host itself | 15:55 | ||
| no magic. C compilers have been doing it for decades | |||
| NotFound | And Pascal before it. | ||
| bluescreen | what should be the minimal features a compiler has to have to bootstrap itself ? string manipulation and io subsystem? | 15:56 | |
| moritz | "io subsystem" is a bit of a stretch :-) | 15:57 | |
| print() is usually enough | |||
| NotFound | Yeah | ||
| moritz | (you can print to STDOUT, and your build system redirects to a file) | 15:58 | |
| bluescreen | but you need at least read stdin | ||
|
15:58
mtk left
|
|||
| moritz | yeah, right | 15:58 | |
| ok, readline() and print() | |||
|
15:59
mtk joined
|
|||
| bluescreen | and some variables... :) | 15:59 | |
| atrodo | And sanitation! | ||
| (Now regrets attempting an obscure Life of Brian reference) | 16:00 | ||
| NotFound | If you use an existing language, you can do it step by step. Start with a compiler able to compile a helloworld program. | ||
| Then, improve it until is able to compile itself. Easy ;) | 16:01 | ||
| bluescreen | yeah... piece of cake! :D | 16:02 | |
| moritz | what people don't realize is that compilers are of the simplest kind of programs really | 16:04 | |
| they read a file as input, and write a file as output | |||
| no concurrency or IPC needed | |||
| no interaction with stupid users | 16:05 | ||
| no passwords to be stored | |||
| NotFound | No databases | 16:06 | |
| bluescreen | mortiz, you have to interact with the user and give them some feedback | ||
| moritz | bluescreen: you have to give error messages, or say that it compiled OK | 16:07 | |
| bluescreen: but that's not the same as asking the user "do you want to continue (y/n)?" | |||
| bluescreen | not at all... but still have to make user's life easier trying to understand what they are trying to do and help them finding the errors | 16:08 | |
| NotFound | bluescreen: people used to write compiler in a few KB in the heroic times of personal computers, with diagnoses like "error x at line y", and they survived. | ||
| bluescreen | or bare "Syntax error" | 16:09 | |
| moritz | most early bootstrapping stage compilers just have the "syntax error" error :-) | ||
| NotFound | Having nice messages is nice, of course, but you can live without it. | ||
| moritz | especially if you wrote the compiler yourself, and know it by heart | 16:10 | |
| NotFound | In fact, winxed stage 0 still sucks at some points... but you can try the chenges with stage 1 first. | ||
| bluescreen | it doesn't make much sense to give nice error messages in stage 0 | 16:11 | |
|
16:11
plobsing joined
|
|||
| bluescreen | its a throw away | 16:11 | |
| NotFound | bluescreen: it makes sense if it helps diagnosing. | 16:12 | |
| bluescreen | yourself..? | ||
| NotFound | Yeah | ||
| bluescreen | how about: "Something wrong... please check"? | 16:13 | |
| atrodo | Add the word "doofus" and you've got a winner | ||
| NotFound | bluescreen: sometimes is enough, sometimes is time wasting. | ||
| bluescreen | NotFound: how long did it take to you to cook stage 0? | 16:14 | |
| NotFound | In the current winxed way, I improve the stage 0 compiler in order to be able to use a better language in stage 1, so having better diagnoses in stage 0 is helpful. | ||
| Another way can be writing a stage 2 with the more complete language. | 16:15 | ||
| bluescreen: about two months | |||
| bluescreen: a primitive version, of course, not its actual state. | |||
| bluescreen | it's a shame you don't have the whole process blogged | 16:17 | |
| NotFound | bluescreen: the svn repo has almost the full process. | 16:19 | |
|
16:26
fbrito joined
|
|||
| lucian | NotFound: while I think winxed is awesome and you did a great job on it, i think you're underestimating the effort needed to map an existing language to parrot | 16:32 | |
| NotFound | lucian: I just try to avoid overestimating it. | ||
| lucian | NotFound: sure, it just takes a significant amount of work | 16:34 | |
| there are a lot of corner cases. I still have no idea how python's sys._getframe() would ever work on parrot | |||
| NotFound | Of course, writing a implementation compatible with existing ones and passing its test is harder than designing the language as you go. | 16:35 | |
| But you don't need to start with the full spec. | 16:36 | ||
| lucian | yeah | ||
| i do think however that parrot suggests new languages to use parrot's compiler tools, and it shouldn't | 16:37 | ||
| NotFound | As I said, you can start with something able to compile helloworlds and the like. | ||
| lucian | they can only be useful for new languages | ||
|
16:37
Kulag left
|
|||
| lucian | NotFound: if you have a new language. but existing languages have existing implementations | 16:37 | |
| pynie should be written in python, cardinal should be written in ruby, etc | 16:38 | ||
|
16:38
Kulag joined
|
|||
| NotFound | lucian: if you use an existing implementation to write the compiler, you can *use* the full language, but support only a minimal subset. | 16:38 | |
|
16:38
Patterner joined
|
|||
| lucian | NotFound: yes, initially | 16:38 | |
| i don't think it's important to bootstrap using parrot only | 16:39 | ||
| NotFound | For me, the important part is having something that works, and that people like to work with. | ||
| Even if 'people' is one person. | 16:40 | ||
| lucian | NotFound: for pynie, that would mean passing the Python test suite | 16:41 | |
| as I said, i think development of new languages is fundamentally different to existing languages | |||
| NotFound | I'll be hapy if proven wrong by having a working compiler developed by any other process. | 16:45 | |
| lucian | NotFound: :) | 16:46 | |
| i think i mentioned this before, i'd like to see pynie implemented in pure python, perhaps from PyPy's compiler | 16:47 | ||
| and stay that way, always require a full python implementation for building | |||
| whiteknight | bootstrapped compilers is probably an area where Parrot is going to shine | ||
| PCT/NQP-RX are awesome tools, but there are plenty of people who have a simple aversion to Perl | 16:48 | ||
| being able to write your compiler in your language is a big deal | |||
| lucian | whiteknight: not only that, but i don't see why you wouldn't self host | ||
| NotFound | lucian: yeah, but if you use a preexisting self compiler the process is completely different. | ||
| lucian | if you write a compiler for a language, you most likely like it enough to use it for the actual compiler | ||
| whiteknight: and there's the aversion to perl's syntax too, yes | 16:49 | ||
| NotFound | Or just lack of confidence and familiarity with that kind of syntax. | 16:50 | |
| lucian | NotFound: no, there's aversion too | ||
| NotFound | lucian: there is, but is not always such a strong position. | 16:51 | |
| lucian | NotFound: to just the syntax, there's not quite that much (but still significant) | ||
| but people hate perl5 and php so much, they associate their failings with the syntax, as well | |||
| atrodo | The problem with self hosting is you're not necessarily using high quality compiler tools | ||
| lucian | atrodo: depends on your language, of course | 16:52 | |
| PerlJam | Making Perl 6 regex/grammars available to other languages would help too. Even if people dislike Perl, they tend to see the power behind regex. | ||
| lucian | atrodo: pretty much all popular languages have good compiler tools | 16:53 | |
| PerlJam: again, you'll see people disagreeing there | |||
| NotFound | That depends... there is also people that hate regexes, or using them too much. | ||
| PerlJam | anyone writing a compiler is going to use regex (or something similiar) if they are sane | ||
| lucian | PerlJam: and i think regexes are misleading. they imply finite state machines, which suck at parsing | ||
| PerlJam: again, MANY people will disagree :) | 16:54 | ||
|
16:54
contingencyplan joined
|
|||
| NotFound | PerlJam: you can look at winxed sources for an exception ;) | 16:54 | |
| regexes are used only for including pasm constants, if I remember well. | 16:55 | ||
| moritz wants to point out that a typical p6 grammar for a programming language doesn't have much in common with regexes | |||
| NotFound | (maybe the "if they are sane" excludes me) | ||
| PerlJam | moritz: with traditional regex you mean? | 16:56 | |
| moritz | PerlJam: both with traditional regex, and with regex you'd write for an ad-hoc parsing problem in Perl 6 | ||
| PerlJam | Perhaps I'm just too steeped in my own history with using lex/yacc and their progeny so that that's mostly what I see | 16:58 | |
| NotFound | Remember, TIMTOWTDI | 16:59 | |
|
16:59
theory left
|
|||
| PerlJam | sure, but using grammars is funnest! :) | 17:00 | |
| NotFound | Fun is in the smile of the beholder | 17:01 | |
| fbrito | whiteknight: ping | 17:04 | |
| whiteknight | fbrito: pong | 17:05 | |
| cotto_work | ~~ | ||
| whiteknight | hello cotto_work | 17:07 | |
| fbrito | whiteknight: about my tests (github.com/fernandobrito/parrot-li...t/1f1e)... should I add/remove something? change their names? where should they be placed? in testlib/matrixtest.nqp or should I copy and paste in pmc/*matrix2d.t? | ||
| whiteknight | fbrito: let me look | 17:08 | |
| fbrito: t/testlib/matrixtest.nqp is probably right. The tests will get inherited for all types | 17:09 | ||
| and saves you from having to copy+paste :) | |||
| dukeleto | cotto_work: mornin' | 17:11 | |
| fbrito | whiteknight: and what about their names? I saw that there are some conventions, like test_MISC or test_VTABLE... but I can't figure out how should I name my tests | 17:12 | |
| whiteknight | fbrito: Those names all use stupid old conventions. Don't worry about them. Your names are good | 17:13 | |
| I think they need to start with "test_" | |||
| otherwise the harness can't find them, but I might be wrong | |||
| brb, lunch. back in a few minutes | |||
| cotto_work | seen chromatic | ||
| aloha | chromatic was last seen in #parrot 1 days 9 hours ago saying "Me too, such as it's midnight.". | ||
| fbrito | whiteknight: ok :D | 17:14 | |
| NotFound | whiteknight: what's the nick of the guy with the YCombinator task? | 17:27 | |
| Don't worry, a search in the irclog told me. | 17:30 | ||
| whiteknight | fbrito: I think the code all looks good. When you're ready submit it | 17:32 | |
| dalek | nxed: r701 | NotFound++ | trunk/winxedst1.winxed: generate internal names for arguments that are unique within the outermost |
17:36 | |
| whiteknight | NotFound++ | 17:37 | |
| Coke | NotFound: would you could original partcl as "working" ? | 17:41 | |
| (going back to your send earlier about a working implementation of an existing language) | |||
| NotFound | Coke: I don't know enough tcl to judge that, | 17:42 | |
| fbrito | whiteknight: have you seen those 2 tests that are failing in the "master" branch? inside methods/complexmatrix2d/ (conjugate and row_combine) | 17:43 | |
| whiteknight | fbrito: yes, those tests are marked TODO, but my test harness is not smart enough to ignore them | ||
| annoying, but OK | |||
| Coke | NotFound: we passed a substantial fraction of the official tcl test suite. | 17:44 | |
| NotFound | Coke: then yes | ||
|
17:44
theory joined
|
|||
| Coke | ok. that was written in PIR&PMCs. | 17:45 | |
| NotFound | Ah, you mean I'm already proven wrong. | ||
| Coke | I think so. I was scrolling pretty fast. ;) | ||
| NotFound | That's not fair. I mean doing it now. And fast! ;) | 17:46 | |
| Coke | I would never reimplement partcl using that method, agreed. ;) | ||
| whiteknight | what method? | ||
| Coke | "ok. that was written in PIR&PMCs." | 17:47 | |
| whiteknight | ok | ||
| NotFound | Any method that differs substantially from the things I talked about. | 17:48 | |
| Coke | that said, I'm not sure partcl would be a good candidate for bootstrapping. | 17:50 | |
| whiteknight | The reason I like bootstrapping is because it lets compiler devs write the compiler in whatever language they are most comfortable in | 17:51 | |
| if TCL doesn't lend itself to that, you pick a different implementation language that you like | |||
| Coke | like PERL? | 17:52 | |
| whiteknight | if that's what you're comfortable with, yes. We've got a great toolset available if you like Perl | ||
| Coke | ... I was snarkily pointing out that it's Tcl. | 17:53 | |
| NotFound | You, and preferably the people you like to join the project. | ||
| Coke | and I'm already using NQP. And I wouldn't call it a great toolset. | ||
| whiteknight | Coke: well, that's an issue outside of our control. I'm sure pmichaud and co would like any feedback you have | ||
| Coke | it is easier to develop in than PIR/TGE/PGE/PMCs, I'll grant you that. | 17:54 | |
| whiteknight: it's too slow and needs better docs. | 17:56 | ||
| (most of which is a parrot issue, as you're dealing with parrot objects most of the time, nqp is just syntax to get at them.) | |||
| whiteknight | fbrito: I need a few minutes. I have to reinstall Parrot for testing | 18:00 | |
| dukeleto | Coke: i agree with you. nqp-rx is more featureful than everything else, but you pay the price in lack of docs and speed | ||
| fbrito | whiteknight: ok, no problem | ||
| NotFound | whiteknight: Are you sure the man-boy program is correct? According to wikipedia: "value k; integer k;", wich I suppose mean k is passed by value. | 18:01 | |
| whiteknight | Notfound: I tried converting it to an int, and I tried making a copy. Maybe you can find a solution | 18:02 | |
| NotFound doesn't know ALGOL 60 | |||
| whiteknight | From what I gather, k should be pass-by-value, not reference | 18:03 | |
| so if you know how to change that | 18:04 | ||
| NotFound | Problem is, int can't be lexical in winxed. | ||
| I'll try some workaround. | 18:05 | ||
| whiteknight | could make a copy | 18:07 | |
| NotFound | A workaround seems to work, but runs out of stack at 10 | 18:12 | |
| whiteknight | yeah, that's expected | 18:13 | |
| that thing eats stack space | |||
| NotFound | Good, I'll elaborate a bit more and post in the issue. | ||
| whiteknight | Awesome! NotFound++ | 18:14 | |
| NotFound | So winxed is a man now? I tend to antropormorph it as a woman. | 18:16 | |
| whiteknight | a man? | 18:17 | |
| NotFound | man-boy test? | ||
| whiteknight | ha, okay | ||
| woman-girl test | |||
| fbrito | Woman-girl test? Ahahaha! We just have to test if it throws the BloodException every month. If it does, it is a woman! | 18:20 | |
| Coke | I suspect that send is not cool. | 18:21 | |
| cotto_work | +1 | ||
| NotFound | Fairy-pixie test if you prefer. | 18:23 | |
| atrodo | Perl-php? | ||
| whiteknight | fbrito: submission pushed. Accepted. Thanks. | 18:24 | |
| dalek | rrot-linear-algebra: 25966ce | fernandobrito++ | src/ (3 files): Update GET_KEY_INDICES_* macros to use new pmckey_to_coords() |
18:25 | |
| rrot-linear-algebra: 1f1e5c9 | fernandobrito++ | t/pmc/pmcmatrix2d.t: Add tests to new pmckey_to_coords() function |
|||
| rrot-linear-algebra: 25d9334 | fernandobrito++ | src/ (2 files): Update pmckey_to_coords() quantity of parameters |
|||
| rrot-linear-algebra: bd5a52c | fernandobrito++ | src/ (5 files): Update GET_KEY_INDICES_ROWMAJOR quantity of parameters |
|||
| rrot-linear-algebra: 66943d5 | fernandobrito++ | t/pmc/pmcmatrix2d.t: Add more tests to new pmckey_to_coords() function |
|||
| rrot-linear-algebra: 9a899cd | fernandobrito++ | t/ (2 files): Move new tests to a place where it will get inherited |
|||
| fbrito | whiteknight: yay! thank you | 18:29 | |
| tadzik wishes he was younger so he could get involved in funny stuff too :) | |||
| fbrito | tadzik: are you in university? there is always the Google Summer of Code :) | 18:31 | |
| tadzik | fbrito: yeah, I'm planning that :) | 18:32 | |
| (actually, it's today I become 2 years too old for GCI :)) | |||
|
18:33
bacek joined
|
|||
| fbrito | tadzik: today, like... really today? is today your b-day? :o | 18:34 | |
|
18:34
fperrad left
|
|||
| tadzik | fbrito: yep :) | 18:36 | |
| NotFound | No one picks the chunked encoding task? Sigh. | ||
| fbrito | tadzik: oh!... happy birthday! :) | 18:37 | |
| tadzik | (I even changed my gravatar from a dog to a pic, as if I were mature or something) | ||
| fbrito: thank you :) | |||
| smash | tadzik: happy birthday! | 18:38 | |
| tadzik | thanks smash :) | ||
| NotFound light some candles | 18:39 | ||
| tadzik pffffffffffffffffff! | 18:41 | ||
| fbrito | NotFound: the chunked encoding task seems really scary to me :( | ||
| NotFound | fbrito: for me too. That's what I want to pass it to other people ;) | 18:42 | |
|
18:44
jhelwig joined
18:45
whiteknight left,
ligne left
18:46
ligne joined
|
|||
| fbrito | NotFound: Ahahha, ok. I am going to try a task for another project and then, if no one have claimed the chunked task, I will do it :) | 18:46 | |
| NotFound | fbrito: thanks! | 18:47 | |
|
18:50
whiteknight joined
18:52
ligne left
18:54
wesjdj joined
19:09
theory left
19:13
wesjdj left
19:42
tcurtis joined
19:43
rfw joined
19:45
plobsing left
20:23
allison left,
allison joined
20:26
kid51 joined
|
|||
| allison | parrotsketch meeting now? | 20:31 | |
| kid51 | Yes | ||
| aloha, seen NotFound? | 20:38 | ||
| aloha | kid51: NotFound was last seen in #parrot 1 hours 51 mins ago saying "fbrito: thanks!". | ||
| kid51 | NotFound: available for parrotsketch? | 20:39 | |
| NotFound | Ups, got distracted, sorry. | ||
| PerlJam | whiteknight++ just read yesterday's blog entry | 21:04 | |
|
21:08
theory joined
|
|||
| bacek_at_work | ~~ | 21:12 | |
|
21:19
chromatic joined
|
|||
| chromatic | Oh, 20:30 UTC not 21:30 UTC. | 21:20 | |
|
21:56
mtk left
21:57
whiteknight left
|
|||
| cotto_work | Interesting. Google's new V8 thingy uses a linear-scan register allocator: blog.chromium.org/2010/12/new-crank...or-v8.html | 22:10 | |
|
22:11
Matt221 joined
|
|||
| dukeleto just got off the PaFo conf call and things look like they are changing for the better | 22:19 | ||
| cotto_work | dukeleto: good to hear. What's the upshot? | 22:20 | |
|
22:20
bluescreen left
|
|||
| atrodo | dukeleto> that was a long phone call | 22:21 | |
| dukeleto | Parrot Foundation is getting back on track and the Software Freedom Law Center is helping us get there | ||
| dukeleto learned a lot about how open source projects + nonprofits/taxes work | 22:22 | ||
|
22:24
plobsing joined
|
|||
| nopaste | "chromatic" at 192.168.1.3 pasted "Draft of Branch Merge Review Policy" (162 lines) at nopaste.snit.ch/26794 | 22:28 | |
| dukeleto gets popcorn | 22:31 | ||
| cotto_work | I like where this is going. | 22:33 | |
| chromatic | It gets speculative later. | 22:35 | |
| kid51 | What is a "shim"? | ||
| chromatic | Ever had a heavy piece of furniture which wobbled, so you took a small piece of wood or cardboard to make it fit better? | 22:36 | |
| This is the code version. | |||
|
22:36
dalek left
|
|||
| kid51 | A kludge? | 22:37 | |
| cotto_work | That's way easier to read as pod. | 22:38 | |
|
22:39
p6eval left
22:41
dalek joined
|
|||
| dukeleto | chromatic: If you've need any exclusions to the deprecation policy, have you asked for and | 22:42 | |
| chromatic: some wording need fixin' there | |||
| chromatic | Will do. | ||
| dukeleto | chromatic: you may want to mention that coding standard tests are run with "make codingstd" or whatever it is | 22:44 | |
| chromatic: or just say that all branches should pass "make fulltest" | |||
| chromatic | Done. | 22:45 | |
| cotto_work | chromatic: is this intended to be a more complete version of docs/project/core_inclusion.pod? | 22:46 | |
| dukeleto | chromatic: i really like what you wrote. a big +1 from me to put that in docs/project as a stand-alone doc | ||
|
22:46
p6eval joined
|
|||
| cotto_work | or a complement? | 22:46 | |
| dukeleto | chromatic: i think it is important enough to have it's own file | ||
| kid51 | dukeleto: Yes I like the idea of running 'make fulltest' at least once on each branch | ||
| dukeleto | chromatic: but if you feel it fits better into another already existing file, go for it. But please commit that sooner rather than later | 22:47 | |
| cotto_work | kid51: I think it's silly we're not doing that already. | ||
| dukeleto | cotto_work: it is, except that "make fulltest" takes an extraordinary amount of time for many people | ||
| cotto_work: not everyone has multiple cores and SSDs | |||
| chromatic | I have no preference for where this document goes. | ||
| dukeleto | cotto_work: "make fulltest" could take 30 minutes or hours depending on how old the machine is | 22:48 | |
| cotto_work | dukeleto: true. People on slow machines can ask for volunteers to run fulltest though. | ||
| dukeleto | cotto_work: of course | ||
| cotto_work: i wasn't defending not running it, but just documenting *why* people don't run it | |||
| kid51 | Note that I said: at least once per branch. i.e., I'm not expecting them to do more than once. | ||
| In point of fact, t/codingstd/perlcritic.t is the biggest time-sink there. | 22:49 | ||
| I used to dread 'make fulltest', but since we eliminated one core its something I just chuck into a screen session (on Linux -- it's still a multi-hour thing on my iBook) | 22:50 | ||
| cotto_work | I <3 screen. | ||
| atrodo | screen++ | 22:52 | |
| dukeleto | fulltest got a lot faster when me moved to Git, since I got to delete a lot of annoying svnprop tests | 22:53 | |
| cotto_work | Did those take long? | ||
| chromatic | Longer than you might think. | ||
| IO is a bottleneck there. | 22:56 | ||
| dukeleto | they took a really long time on non-SSD drives | 22:58 | |
|
22:58
rfw left
|
|||
| dukeleto | every file in the repo had to have it's svnprops read, which is time-consuming | 22:59 | |
|
22:59
rfw joined
|
|||
| kid51 | What's an SSD drive? | 23:20 | |
| cotto_work | solid state drive drive | 23:21 | |
| no moving parts, *really* good seek time, quite expensive atm | 23:22 | ||
| dukeleto | kid51: it makes git repos insanely faster | ||
| dukeleto used to wait 60seconds for a catalyst app to start, now it does it in 3s | 23:23 | ||
| the seek time of SSDs is way less than drives with moving parts | |||
| so if you are touching lots of files on the filesystem, they scream. | 23:24 | ||
|
23:24
Matt221 left
|
|||
| dukeleto | we could also setup a service for "fulltest" to be run on the GCC Compile Farm | 23:24 | |
| we haven't used the farm at all, mostly because I am the only one that can do stuff on it, and I have been busy with git migration and lots of other stuff | 23:25 | ||
| but we need to use it | |||
| also, we don't have coverage reports anymore | |||
| aloha, coverage? | |||
| aloha | dukeleto: coverage is cv.perl6.cz or tapir2.ro.vutbr.cz/cover/cover-results/ | ||
| dukeleto | wait, we do! | ||
| looks like the coverage reports are talking to git | |||
| tapir2.ro.vutbr.cz/cover/cover-resu...2/c_cover/ | 23:26 | ||
| that is good to know | |||
| getting coverage reports for certain branches would be pretty killer as well | |||
| the String PMC has 83% coverage. That seems a bit too low for such an important PMC | 23:27 | ||
| that would make a good GCI task, to increase the coverage by 5% or so | 23:28 | ||
| NotFound | Oh, is alive again? Hurrah! | ||
| dukeleto | String PMC doesn't have any coverage for "set_bool" | ||
| and a bunch of others | 23:29 | ||
| I am going to add that as a GCI task, no one fix it yet! | |||
| NotFound | dukeleto: set_bool is hard to cover, can't be done from pir | ||
| dukeleto | NotFound: o rly? | ||
| NotFound: we can add a test from the embed interface | |||
| NotFound: correct? | |||
| String.substr has no coverage either | 23:30 | ||
| and cmp_num. These seem important. | |||
| NotFound | dukeleto: there is a ticket about the substr vtable | 23:31 | |
| Surely we can find a way to add a test for set_bool, but I wonder if we should just delete it instead. | 23:32 | ||
| dukeleto | NotFound: do you think anybody outside of parrot uses it somehow? | 23:33 | |
| NotFound: the only way to use it is from embedding, no? | |||
| NotFound: i doubt if PL/Parrot uses it. If it does it is on accident. | |||
| NotFound | dukeleto: I fail to imagine why someone may be using it, but one never knows... | 23:34 | |
| dukeleto | NotFound: indeed. But now we can at least ack through github repos | ||
| NotFound: it would be nice to have a script that ack's through the repos of all known parrot projects and says "hey project X is using this thing that is on the chopping block" | 23:35 | ||
| that would be amazingly useful | |||
| NotFound | dukeleto: aye | ||
| dukeleto | perhaps that could live on the gcc compile farm. It wouldn't be very hard to do. | ||
| NotFound | This is the ticket for substr: trac.parrot.org/parrot/ticket/1682 | 23:37 | |
| dukeleto just approved 5 parrot gci tasks and kicked off 1 more task claim request | 23:39 | ||
| someone finally took the "compare Neko VM to Parrot VM" task. I am interested to see what they come up with. | |||
| NotFound | GCI is being very helpful, much more than I expected. | 23:41 | |
| cotto_work | dukeleto: that'd be amazingly useful. | 23:42 | |
| It's a bandaid until we finally get deprecations right, but it's a really nice bandaid. | |||
| bacek_at_work | dukeleto, Neko is stack based. Parrot is register. | ||
| One of Neko dev sitting just next to me ):) | |||
| cotto_work | That's a difference. | ||
| bacek_at_work: steal his brane | 23:43 | ||
| NotFound | bacek_at_work: you've failed the task, your report is too short ;) | ||
| bacek_at_work | cotto_work, he refuses to join parrot. And continue LLVM based backend for Neko... | ||
|
23:43
bluescreen joined
|
|||
| cotto_work | Neko isn't entirely unlike what we want from lorito. | 23:43 | |
| bacek_at_work: his loss ;] | |||
| bacek_at_work | I think Lorito should be stripped down of current parrot. Register based, CPS. | 23:44 | |
| May be without multi-dispatch. | |||
| lucian | bacek_at_work: noooooooo :) | ||
| bacek_at_work | Rakudo build own anyway. | ||
| lucian thinks single dispatch is a subset of multi dispatch, but not the other way around | |||
| cotto_work | bacek_at_work: the current plan is for CPS and MMD to live on top of lorito. Are you thinking of something else? | 23:45 | |
| bacek_at_work | cotto_work, why? | 23:46 | |
| I think CPS is core of VM. | |||
| MMD is not. | |||
| cotto_work | Well, anything that's not directly in Lorito will have to be on top of it. | 23:47 | |
| not necessarily at the same level | |||
| dukeleto | bacek_at_work: yes, but we are going to get a GCI student to write about it :) | 23:48 | |
| bacek_at_work | I thinks CPS is in. It's just our way of invoking subs. | ||
| dukeleto just added a parrot gci task for increasing String PMC code coverage | 23:49 | ||
| fbrito | wow, lots of new tasks :) | 23:50 | |
|
23:50
Matt221 joined
|
|||
| dukeleto | fbrito: indeed. To keep you busy! | 23:51 | |
| fbrito: just ping me if you are waiting on a claim request | |||
| fbrito: twitter is probably the fastest | 23:52 | ||
| dalek | rrot: 8c3a723 | NotFound++ | t/pmc/mappedbytearray.t: a bit more initial tests for MappedByteArray |
||
| dukeleto | new string task: socghop.appspot.com/gci/task/show/g...9176557195 | ||
| chromatic | multidispatch at the core makes vtables much nicer | ||
| fbrito | dukeleto: ok, but right now I am working on a task for Sahana Foundation :o | 23:55 | |
| dukeleto | fbrito: sounds good. I am going to create a huge backlog of tickets before I go on vacation :) | 23:56 | |
| fbrito | dukeleto: when are you going to vacations? if you are coming to Brazil, please let me know :P | 23:57 | |
| dukeleto | fbrito: i will definitely let you know if I am passing by :) | 23:58 | |
| fbrito: visiting family in the US, this time. But I am sure I will visit Brazil someday. | 23:59 | ||
| bluescreen | where are you fbrito? Buzios? | ||