Camelia, the Perl 6 bug

IRC log for #parrot, 2012-05-14

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:04 whiteknight joined #parrot
00:19 whiteknight good evening, #parrot
01:32 alester joined #parrot
01:37 kid51 alester: ping
01:37 alester i'm here
01:38 kid51 In #770, what is the "this" you want to merge to master?
01:38 alester the diff
01:38 alester that you wrote
01:39 kid51 Actually, I thought of that as just a first draft.  I thought you wanted to integrate it into headerizer more explicitly.
01:39 kid51 (In any event, we're in pre-release code freeze so I don't think we should do anything until after Tuesday.)
01:40 alester I do want to put it into the headerizer, AND I don't see any reason not to put your changes in the test.
01:40 kid51 I would probably want to refine it further to reflect what Whiteknight showed about PARROT_IS_NOT_NULL
01:40 alester So commit what you have.
01:40 alester And then add more later
01:40 kid51 I'm going to hold off committing until after release.
01:41 alester I can see that.  I just wouldn't hold off based on "I want to make one big patch."
01:41 kid51 The patch won't be any bigger; it just needs a less crude regex.
01:42 alester and you can use is_deeply()
01:43 alester oh, and bump up the copyright to -2012 in the header
01:43 kid51 Will do.
01:44 alester And i"m not going to think about the headerizer 'til later 'cause I'm working on ack 2.0
01:45 kid51 Ooh, I remember working on ack back at the hackathon in Chicago in Nov 2006.
01:56 davidfetter joined #parrot
02:26 dalek parrot/770/order: 141ccab | jkeenan++ | t/codingstd/c_function_docs.t:
02:26 dalek parrot/770/order: Refine regex to permit PARROT_CAN(NOT)?_RETURN_NULL to precede
02:26 dalek parrot/770/order: PARROT_EXPORT.
02:26 dalek parrot/770/order: review: https://github.com/parrot/parrot/commit/141ccab838
02:28 kid51 Enough for tonight.
02:50 wagle joined #parrot
02:56 benabik joined #parrot
04:23 adu joined #parrot
05:03 dalek parrot: fc23c71 | petdance++ | src/gc/gc_inf.c:
05:03 dalek parrot: removed unnecessary cast
05:03 dalek parrot: review: https://github.com/parrot/parrot/commit/fc23c71a4a
05:03 dalek parrot: c1882a7 | petdance++ | src/gc/fixed_allocator.c:
05:03 dalek parrot: adding a const
05:03 dalek parrot: review: https://github.com/parrot/parrot/commit/c1882a7f76
05:20 travis-ci joined #parrot
05:20 travis-ci [travis-ci] parrot/parrot#358 (master - c1882a7 : Andy Lester): The build was broken.
05:20 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/0c03d1f...c1882a7
05:20 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/1324303
05:20 travis-ci left #parrot
05:53 alin joined #parrot
06:04 Khisanth joined #parrot
06:46 fperrad joined #parrot
07:07 brrt joined #parrot
07:36 lucian joined #parrot
07:49 bacek joined #parrot
08:18 alin joined #parrot
08:25 lucian joined #parrot
08:59 dalek rakudo/nom: a144e29 | moritz++ | / (3 files):
08:59 dalek rakudo/nom: implement chmod as a function
08:59 dalek rakudo/nom:
08:59 dalek rakudo/nom: because a test file wants it that way :-). Run that test file
08:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a144e29b70
09:09 dalek rakudo/nom: 4ea6d60 | moritz++ | t/spectest.data:
09:09 dalek rakudo/nom: run another test file
09:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4ea6d60824
09:16 dalek rakudo/nom: 56e86dd | moritz++ | t/spectest.data:
09:16 dalek rakudo/nom: run method lvalue tests
09:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/56e86dd27c
09:19 kj joined #parrot
09:24 wagle joined #parrot
09:28 schm00ster joined #parrot
09:46 brambles joined #parrot
10:19 dalek rakudo/nom: abb8f3a | moritz++ | / (2 files):
10:19 dalek rakudo/nom: basic implementation of &roundrobin; tests
10:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/abb8f3ab03
10:26 wagle joined #parrot
10:40 bacek joined #parrot
10:58 bacek joined #parrot
10:58 JimmyZ joined #parrot
11:23 mtk joined #parrot
11:29 kid51 joined #parrot
12:35 arnsholt joined #parrot
12:44 kjs joined #parrot
12:49 PacoAir joined #parrot
13:01 whiteknight joined #parrot
13:01 whiteknight good morning, 3parrot
13:02 whiteknight msg nine I think I found the problem with miniparrot on windows. It looks like interp->sleep_sleep mutex (and possibly other mutexes) aren't being MUTEX_INIT'd before use on the main thread
13:02 aloha OK. I'll deliver the message.
13:11 Psyche^ joined #parrot
13:29 brrt morning
13:29 brrt noon, for me
13:29 whiteknight hello brrt
13:31 brrt how was this week?
13:32 whiteknight good. We've got a release tomorrow so we've been working on normal maintenance tasks
13:35 whiteknight after that though, things are going to be a bit messy
13:44 whiteknight brrt: We've got one week left until official coding starts. You feeling good about it?
13:46 hercynium joined #parrot
13:47 brrt yeah, have you heard about the -g option from apxs?
13:48 brrt it ehm... generates code
13:48 brrt pretty much exactly the code i was planning to write the first week
13:48 whiteknight ha!
13:48 brrt so instead, i was going to get the build system up and running and awesome
13:49 whiteknight yes, that would be good. Your timeline isn't set in stone, it's just an easy way to identify when people are getting behind
13:49 whiteknight you can always go faster :)
13:57 brrt true
13:58 brrt not something i have much experience with, though
13:58 Coke "faster. Faster! Faster would be better!"
13:58 brrt :-)
13:59 brrt also...
13:59 brrt apxs can actually build the module
13:59 brrt and install it, as well
14:00 brrt now, i'm actually wondering whether we should rely on it being there on machines that want to build it
14:04 whiteknight that seems like a good strategy to get started
14:04 whiteknight if it's not as available as we need it, we can revisit later
14:04 brrt it is actually supplied with most 'apache-dev' modules or similar
14:04 brrt anyway, its easy enough to check for its existance
14:05 whiteknight ok
14:05 brrt but yeah, fun
14:16 brrt also, it occured to me that i was looking for 'apache module api documentation' but that it doesn't exist; i apparently need the 'apache protability runtime' documentation
14:16 brrt whcih does exist
14:18 whiteknight ah, good to know
14:18 brrt :-)
14:19 whiteknight maybe the first thing you need to do is create a README file with these details
14:19 brrt and i wanted to ask, what does Parrot_api_load_compiler do?
14:19 whiteknight let me look at it
14:19 brrt not sure if that is its actual name
14:19 brrt but i can supply it a pmc, an interpreter, and a string "winxed" and it does not fail
14:20 brrt so i'm assuming i have a pmc for the compiler in my hand
14:20 whiteknight We have Parrot_api_load_language and Parrot_api_get_compiler
14:20 brrt last one
14:20 contingencyplan joined #parrot
14:20 whiteknight First you use Parrot_api_load_language to load in the compiler and runtime. Then you use Parrot_api_get_compiler. That returns the registered compiler if any
14:20 brrt i see
14:21 brrt is there a standard way to use the compiler?
14:21 whiteknight https://github.com/parrot/parrot/b​lob/master/docs/pdds/pdd31_hll.pod
14:21 whiteknight not all compilers do this exactly the same, but almost all of them support a .compile() and .compile_string() method
14:22 dalek parrot: 1cb3e41 | Whiteknight++ | docs/pdds/pdd31_hll.pod:
14:22 dalek parrot: PDD31 is not a draft anymore
14:22 dalek parrot: review: https://github.com/parrot/parrot/commit/1cb3e419ed
14:24 whiteknight brrt: many of these tasks are possible with the embed API, but are easy in PIR/Winxed. You'd probably do better to jump into a small driver .pbc program first, and do things like loading languages and getting compilers there
14:24 whiteknight look at frontend/parrot2/main.c and frontend/parrot2/prt0.winxed for an example of how the  parrot executable does that
14:25 whiteknight many command-line arguments, the compilers, .pbc output, program execution are all handled in prt0.winxecd
14:29 brrt ah, i see
14:29 * brrt looks it up
14:34 travis-ci joined #parrot
14:34 travis-ci [travis-ci] parrot/parrot#359 (master - 1cb3e41 : Andrew Whitworth): The build was fixed.
14:34 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/c1882a7...1cb3e41
14:34 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/1327387
14:34 travis-ci left #parrot
14:43 ttbot Parrot 1cb3e419 MSWin32-x86-multi-thread make error http://tt.taptinder.org/cmdinfo/85188
14:45 fperrad_ joined #parrot
14:56 dmalcolm joined #parrot
14:56 * Coke builds parrot with perl5.16.0-RC0
14:57 masak Coke++
15:00 Coke seems fine.
15:00 * Coke tries rakudo.
15:01 tadzik it doesn't bring too many changes, does it?
15:01 Justin joined #parrot
15:01 Justin good morning everyone
15:01 * Coke used to keep helper scripts in the top level git checkout to facilitate building, but git clean -xdf is so nice, I have to convert these to aliases.
15:04 * JimmyZ wonders how is coke/rm_pasm now
15:07 crab2313 joined #parrot
15:08 Coke needs more doc cleanup. needs to have PASM removed from IMCC. I hope to have more tuits for it this week.
15:09 moritz I don't think removing PASM from IMCC is critical for merging
15:09 Coke not critical, no. definitely nice to have.
15:10 Coke getting rid of any remaining PASM refrences (except for historical purposes) is critical though, I think.
15:10 Coke s/critical/major/, perhaps
15:11 whiteknight agreed
15:11 whiteknight Coke++
15:11 whiteknight If the coke/rm_pasm branch is passing tests again, I can try merging in my patch again and seeing what happens
15:12 whiteknight A lot more work after that, for full removal from IMCC, but that's the first step
15:14 * JimmyZ don't think removing PASM from IMCC is high priority
15:18 whiteknight it's not high priority, but it will make me very very very happy
15:18 isBEKaml joined #parrot
15:18 whiteknight and I like to do things that make me happy
15:19 JimmyZ I'm +1 to happy
15:19 whiteknight the whole time I'll be yelling "hulk smash!" and making my kid scared
15:22 * Coke hopes whiteknight went to see hulk smashing in the theater!
15:22 isBEKaml hi, I was just looking #276 and it no longer behaves as said in that issue. close or reopen a new one if still a bug?
15:22 whiteknight I haven't yet!
15:22 whiteknight isBEKaml: What is it doing now? Something better, worse, or just as bad?
15:22 * JimmyZ will be very very happy if the dream of M0 comes true. :P
15:23 isBEKaml whiteknight: in all probability, method signatures might have changed. I'm not sure if that still is a bug. :|
15:23 isBEKaml paste in a bit
15:23 Coke the behavior has already changed once. if it is still not functioning as I asked for, then just update the current behavior.
15:24 Coke still segfaults here.
15:25 isBEKaml https://gist.github.com/2694566
15:26 Coke isBEKaml: your heredoc is wrong.
15:27 isBEKaml Coke: ah, okay. Now it does nothing!
15:27 Coke heredoc terminators must be flush with the LHS
15:27 Coke isBEKaml: try the sample further down in the ticket that is well formatted. the one copied over from trac got garbled.
15:28 isBEKaml Coke: yes, segfaulted. :/
15:29 whiteknight What's the priority on that ticket?
15:29 isBEKaml whiteknight: mate, I'm new here. :)
15:29 whiteknight isBEKaml: I know! Welcome to Parrot
15:30 isBEKaml asking me about priorities don't make sense! :)
15:30 Coke whiteknight: pretty low, apparently. You can tell because I opened it. ;()
15:30 Coke er, ;)
15:30 whiteknight isBEKaml: I'm asking Coke about the priority.
15:30 Coke isBEKaml: I think he just means literally.
15:30 Coke whiteknight: segfaults are bad, mmkay?
15:30 Coke is it stopping me from using parrot? no. A dozen other things are.
15:30 Coke (most of which have tickets.)
15:31 whiteknight Coke: it was assigned to plobsing and he's not around. I can jam it into my queue if it's necessary
15:31 Coke <shrug> as you wish.
15:31 isBEKaml whiteknight: I was poking at the issue list to see which one of those is within my reach... rammed into #276. :)
15:31 Justin hello
15:32 whiteknight hello Justin
15:32 isBEKaml whiteknight: that's not to say it's _within_ my reach!
15:32 whiteknight isBEKaml: we have a few tickets tagged "Newbies". That might be a good place for you to start
15:32 whiteknight although, some of those might be below you too
15:33 isBEKaml whiteknight: yeah, saw that. I was looking by "updated" queue - so thought, they may well have been taken.
15:33 isBEKaml or completed.
15:33 whiteknight okay
15:34 Coke ugh. now that I am using a terminal that colorizes gcc warnings, I really want to get the ones in parrot cleaned up.
15:35 whiteknight so many of those warnings from from generated code. src/ops/core_ops.c is the worst offender
15:36 Coke it is possible to disable warnings by file.
15:36 whiteknight is it? That kind of stuff is above my pay grade
15:37 whiteknight somebody else tells me what warnings to use, I just do my best to fix them when I can
15:37 Coke yes, I hacked on the config warnings system some years ago to make that pretty easy to do.
15:37 isBEKaml I think some of those warnings stem from gcc attribute flags.
15:37 whiteknight a lot of them in src/ops/core_ops.c specifically are for unused parameters, I think
15:38 whiteknight A couple hundred generated functions, all with the same few arguments, many of which don't need to be used in each case
15:41 isBEKaml whiteknight: what about that sysinfo_s issue? you mentioned in the ticket that it needs discussion
15:42 isBEKaml whiteknight: #280
15:42 whiteknight isBEKaml We have a sysinfo_s opcode, which is used to return some important information about the system. The problem is that opcode is a dynamic library that isn't included by default, and the information there is important enough to always be available
15:42 Coke heh. rereading config/auto/warnings.pm, I'm thinking I should pull this out into a JSON file... "It is tempting to put this into a config file, but..."
15:43 whiteknight We have another opcode, interpinfo, which also returns important system information but is built into Parrot core.
15:43 whiteknight so my suggestion is to merge the options from sysinfo into interpinfo, and just make it always available
15:43 isBEKaml whiteknight: in effect making it a static call information?
15:44 whiteknight basically, yes
15:45 whiteknight The use case I have is that I'm doing some numerical algorithms, and I need to know what the Parrot equivalent of INT_MAX is, but that information is only available through sysinfo_s
15:45 isBEKaml was there any reason it was made a dyncall when compiled/build information would configure it into parrot binaries?
15:46 whiteknight Probably no reason
15:46 moritz at that time everything was made a dynop to keep parrot "small"
15:46 whiteknight right, some things were done sort of quickly because some features didn't seem necessary
15:46 whiteknight and for the most part, many of them are not
15:46 isBEKaml ah, I see
15:47 whiteknight but the sysinfo stuff does seem important to me, and trivial enough that we should be able to have it available. Either through that interface or through a new/better interface
15:51 isBEKaml whiteknight: Okay, what do _i and _ic suffixes stand for?
15:51 cotto ~~
15:54 kjs int and int_constant (isBEKaml
15:54 Tene isBEKaml: integer, and integer constant
15:54 isBEKaml whiteknight: nvm, I see they are int and const int reg.
15:54 kjs int=a register
15:54 isBEKaml Just as I figured out. :)
15:54 kjs ic is a constant value, like 42
15:55 isBEKaml kjs: thanks!
15:55 kjs np
15:57 kjs and to refresh my own memory, and explain the implications: the actual value of the arguments either points to a register number (i) or the integer constant itself (ic), whereas in the case of a fc (floating point constant, like 3.14) the actual value of the argument in bytecode is the index of the constant table for floats.
15:57 aloha (parrot/parrot) Issues opened : 771 (Squaak return statement doesn't control flow) by portmanteaufu : https://github.com/parrot/parrot/issues/771
15:58 kjs so ics are "special", since they can be represented directly rather indirectly through the constant table. (not sure what you're working on isBEKaml, but just so you know :-))
16:03 whiteknight isBEKaml: the actual op code is in src/ops/core.ops. The file src/ops/core_ops.c is the generated file that you shouldn't touch directly
16:04 isBEKaml whiteknight: Yes, I'm looking at these 2 files core.ops and sys.ops
16:04 whiteknight okay, just making sure :)
16:05 whiteknight I suspect the interpinfo op falls back to something in src/interp/api.c. Parrot_interp_info or something like that
16:06 isBEKaml whiteknight: there are several under that.
16:06 isBEKaml whiteknight: Parrot_interp_info{,_p,_s}
16:06 whiteknight oh, right. I think they're separated by return value. right
16:06 isBEKaml :)
16:07 benabik joined #parrot
16:09 NotFound whiteknight: ping
16:11 whiteknight pong
16:12 NotFound whiteknight: fixed the bug you told me. Do you want a snapshot update?
16:13 whiteknight yes, if you are able
16:13 fperrad joined #parrot
16:14 whiteknight Was it a difficult bug? I didn't have a chance to look at it
16:16 NotFound whiteknight: no, it was a mistake, a recent change broke a bad assumption that shold have been already fixed but wasn't.
16:17 whiteknight okay, that's good. Fixing mistakes is always good before a release
16:18 whiteknight This is the last "stable" release before GSOC and other big things happen, so I would like it to be a stable as possible
16:18 dalek winxed/version_1_8: 67ea88d | NotFound++ | winxedst2.winxed:
16:18 dalek winxed/version_1_8: fixed variable access in multi assign
16:18 dalek winxed/version_1_8: review: https://github.com/NotFoun​d/winxed/commit/67ea88d7a2
16:21 dalek winxed/version_1_8: 0e78241 | NotFound++ | NEWS:
16:21 dalek winxed/version_1_8: update news
16:21 dalek winxed/version_1_8: review: https://github.com/NotFoun​d/winxed/commit/0e78241988
16:21 dalek winxed/version_1_8: f578f72 | NotFound++ | pir/winxed_compiler.pir:
16:21 dalek winxed/version_1_8: update installable compiler
16:21 dalek winxed/version_1_8: review: https://github.com/NotFoun​d/winxed/commit/f578f725a0
16:24 dalek winxed/version_1_8: faada1f | NotFound++ | / (3 files):
16:24 dalek winxed/version_1_8: Ooops, forgot to update version number in code
16:24 dalek winxed/version_1_8: review: https://github.com/NotFoun​d/winxed/commit/faada1f0d8
16:31 adu joined #parrot
16:36 NotFound whiteknight: I'm getting some test failures in Rosella with parrot master and the fix. Is this expected?
16:36 whiteknight I don't know. I will have to look tonight
16:37 nopaste "NotFound" at 213.96.228.50 pasted "Rosella test fail" (14 lines) at http://nopaste.snit.ch/140892
16:37 NotFound There
16:48 PacoAir joined #parrot
16:48 dalek parrot: d6dfa2e | NotFound++ | ext/winxed/ (2 files):
16:48 dalek parrot: update winxed snapshot to 1.8.2 - Bug fixes
16:48 dalek parrot: review: https://github.com/parrot/parrot/commit/d6dfa2e97f
16:54 whiteknight hmmm...that test failure is weird
16:54 Coke aloha: tell alester http://bobby-tables.com/ru_RU/ is broken.
16:55 isBEKaml whiteknight: for now, I'm including sysinfo ops under *both* sysinfo and interpinfo. Can we deprecate them later or do you see any problems keeping them both now?
16:55 Coke aloha: msg alester http://bobby-tables.com/ru_RU/ is broken.
16:55 aloha Coke: OK. I'll deliver the message.
16:55 isBEKaml whiteknight: if so, I can delete sysinfo.
16:55 whiteknight isBEKaml: I see no problem with duplicate functionality. Some things are probably relying on sysinfo so best not to change it
16:56 isBEKaml whiteknight: right, I haven't fully searched to be sure, so asked for deprecation (if effective)
16:56 whiteknight isBEKaml++
17:07 dalek winxed: 11eca20 | NotFound++ | winxedst2.winxed:
17:07 dalek winxed: fixed variable access in multi assign
17:07 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/11eca20ac2
17:07 dalek winxed: e5dfca6 | NotFound++ | NEWS:
17:07 dalek winxed: update news
17:07 dalek winxed: review: https://github.com/NotFoun​d/winxed/commit/e5dfca6c8a
17:14 ttbot Parrot d6dfa2e9 MSWin32-x86-multi-thread make error http://tt.taptinder.org/cmdinfo/85216
17:20 isBEKaml whiteknight: okay, two files to modified as far as sources go: gc_api.h and api.c. the .ops files have doc changes.
17:20 isBEKaml whiteknight: how do I test these to make sure? (building right now)
17:21 whiteknight "make test"
17:21 isBEKaml whiteknight: sure, the specific test? sysinfo and interpinfo?
17:22 whiteknight I don't know what specific tests they would be, just run them all
17:22 isBEKaml nvm, interp.t
17:22 isBEKaml they need to be updated, I guess..
17:28 darbelo joined #parrot
17:59 dalek Rosella: f46feb9 | Whiteknight++ | src/path/Path.winxed:
17:59 dalek Rosella: [Path] Fix Path to account for changes to String.reverse_index() method in core
17:59 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/f46feb9d81
18:06 whiteknight NotFound++ for the report
18:14 crab23131 joined #parrot
18:21 fperrad joined #parrot
18:23 NotFound whiteknight: all test pass now
18:27 whiteknight awesome
18:30 dalek winxed/builtinexpr: 11eca20 | NotFound++ | winxedst2.winxed:
18:30 dalek winxed/builtinexpr: fixed variable access in multi assign
18:30 dalek winxed/builtinexpr: review: https://github.com/NotFoun​d/winxed/commit/11eca20ac2
18:30 dalek winxed/builtinexpr: e5dfca6 | NotFound++ | NEWS:
18:30 dalek winxed/builtinexpr: update news
18:30 dalek winxed/builtinexpr: review: https://github.com/NotFoun​d/winxed/commit/e5dfca6c8a
18:30 dalek winxed/builtinexpr: b8ad798 | NotFound++ | / (2 files):
18:30 dalek winxed/builtinexpr: Merge branch 'master' into builtinexpr
18:30 dalek winxed/builtinexpr: review: https://github.com/NotFoun​d/winxed/commit/b8ad79847d
18:44 adu hey
18:44 adu someone told me about an attempt long ago to compile pbc => llvm, does anyone know about this?
18:45 whiteknight a little bit
18:46 whiteknight hello adu, welcome to #parrot
18:50 adu hi whiteknight
18:50 adu I'm not exactly new
18:50 adu I used to hang out here like 3 years ago, but my interest was rekindled about a month ago
18:50 whiteknight oh good, we love rekindled interest
18:51 adu 3 years ago I was disappointed that you couldn't install parrot
18:51 adu but I see that's changed
18:51 whiteknight i'm not aware of a time when Parrot couldn't be installed. Must have been before me
18:51 adu well, there used to be an error message when you typed "make install"
18:51 adu it was a long time ago
18:52 adu anyways, I've been doing a lot of work with grammars
18:52 whiteknight aesome
18:52 whiteknight or awesome
18:53 adu so this time (the rekindling) I'm more interested in perl6 than parrot (last time it was more interest in parrot)
18:54 dalek winxed/builtinexpr: e51a492 | NotFound++ | winxedst2.winxed:
18:54 dalek winxed/builtinexpr: re-enable special case for index and calls in string cast
18:54 dalek winxed/builtinexpr: review: https://github.com/NotFoun​d/winxed/commit/e51a49269b
18:54 adu but anyways, I would like to see if there is anything I can do for parrot, testing, contributing, and the like
18:55 whiteknight adu: Certainly! We aren't quite at the LLVM integration stage yet if that's what you're interested in, but we have plenty of other work to go arouned
18:57 adu I was also wondering how the whole installable_$LANG works
18:58 adu it looks like it just calls Parrot_api_run_bytecode()
19:00 adu do you think there would be any performance gain if the bytecode were translated into Parrot_$OPCODE(…)? then compiled with LLVM?
19:01 adu I was just trying to think of a way of using LLVM that doesn't involve too much work
19:02 adu which would essentially be pbc => c
19:09 NotFound adu: I think it will be complicated and the performance gain will not be great, because you'll need to create Sub-alike objects, Parrot contexts, and lots of argument passing between C and parrot.
19:12 crab23131 left #parrot
19:17 whiteknight well, performance isn't the only reason to play with such a thing
19:17 whiteknight it could be a very valuable learning experience, especially for the M0 guys
19:17 adu what's M0?
19:18 whiteknight adu: It's re-design of the opcodes and bytecode to be simpler, more atomic, and easier for JIT
19:18 whiteknight basically, making parrot's opcode set look much more like the LLVM opcode set
19:19 sorear .oO( 50s parrot: our bytecode is atomic! )
19:19 adu interesting
19:20 PerlJam whiteknight: why's it called "m0" btw?  Everytime I see that I think of "ring 0" in kernel design, so that kind of evokes the right ideas, but I don't know if the "m" has some significance.
19:20 adu PerlJam: Magic Level 0 i think
19:20 whiteknight PerlJam: I seem to remember it being short for "magic-level 0", that is, no magic
19:21 PerlJam thanks.
19:24 adu I seem to remember magic talk a few years ago
19:28 adu http://leto.net/dukeleto.p​l/2011/05/what-is-m0.html
19:32 adu alright, I'll give it a try
19:42 whiteknight adu++
19:49 adu :)
20:23 dalek nqp: 3ab8ab1 | jnthn++ | / (2 files):
20:23 dalek nqp: Add an OwnedResizablePMCArray, along the same lines as OwnedHash.
20:23 dalek nqp: review: https://github.com/perl6/nqp/commit/3ab8ab1f00
20:23 dalek nqp: 5308279 | jnthn++ | src/6model/serialization.c:
20:23 dalek nqp: Deserialize RPAs with their object ownership. This seems to fix the leak that saw parametric roles and pre-comp sometimes interact badly.
20:23 dalek nqp: review: https://github.com/perl6/nqp/commit/530827945a
20:26 adu there seems to be current work on the M0 branch
20:27 cotto a bit, yes
20:28 adu cotto!
20:28 adu your name is all over M0
20:28 cotto I need to find some free time that coincides with benabik's free time to hash out a thing
20:28 adu need help?
20:28 cotto that and a lack of cft are the only reason more hasn't happened in the last week
20:29 cotto sure.  what's your interest?
20:29 adu well
20:29 adu in general, grammars, Perl6, Python, and Scheme all running on the same VM
20:30 adu specifically, not sure yet
20:30 adu maybe continuations
20:32 cotto I've got a gist going with my current TODO list
20:32 cotto https://gist.github.com/2581153
20:33 adu what is this spec?
20:33 adu where is it?
20:33 cotto the main spec is in the m0 branch, docs/pdds/draft/pdd32_m0.pod
20:34 dalek rakudo/nom: d1f5db2 | jnthn++ | / (2 files):
20:34 dalek rakudo/nom: Bump NQP_REVISION to get bs fixes; a small tweak in Rakudo to account for the change too.
20:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d1f5db2fa3
20:34 adu ah thanks
20:37 adu looks like you need help with the disassembler
20:37 dalek rakudo/nom: 570f2bb | jnthn++ | docs/ChangeLog:
20:37 dalek rakudo/nom: Few ChangeLog updates.
20:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/570f2bb599
20:38 cotto adu: that'll be needed but the debugger that nbrown++ is working on is also in a pretty immature state
20:40 cotto seen benabik
20:40 aloha benabik was last seen in #parrot 4 hours 33 mins ago joining the channel.
20:42 dalek rakudo/nom: 7d33ee1 | kboga++ | / (2 files):
20:42 dalek rakudo/nom: Adds a slightly adjusted but mostly copy pasted version of ng's pack & unpack
20:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7d33ee1c50
20:42 dalek rakudo/nom: f2e5c38 | jonathan++ | / (2 files):
20:42 dalek rakudo/nom: Merge pull request #66 from kboga/ng-pack-unpack
20:42 dalek rakudo/nom:
20:42 dalek rakudo/nom: Adds a slightly adjusted but mostly copy pasted version of ng's pack & unpack.
20:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f2e5c38f87
20:43 mdupont joined #parrot
20:51 dalek rakudo/nom: eb05804 | jnthn++ | docs/ChangeLog:
20:51 dalek rakudo/nom: Note pack and unpack in ChangeLog.
20:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/eb0580491d
21:14 lucian joined #parrot
21:40 alvis joined #parrot
21:45 perlite_ joined #parrot
21:51 benabik ~~
22:21 cotto hio benabik
22:47 benabik o/ cotto
22:56 whiteknight joined #parrot
23:01 whiteknight good evening, #parrot
23:07 cotto benabik: you had some concerns about untyped registers making life harder for the gc.
23:08 cotto benabik: what'd be necessary and sufficient for m0 to have a nice modern gc?
23:08 benabik cotto: Yup.  If you just have blank unorganized memory space, you have to make the GC guess which bits of it are pointers.  It's not impossible, but it definitely makes for more work.
23:12 Coke suggestion: make the gc live in m1 and write it in m0
23:13 Coke we want as little in C as possible, neh?
23:13 benabik I don't see that as the point.
23:13 benabik I see the point as "get into the VM as soon as possible".
23:15 Coke That actually sounds like the same point.
23:15 benabik If M0 shrinks down to a thin wrapper on top of x86, I don't see a point.
23:18 benabik Coke: We can write a "VM" that gives no features on top of the standard processor and then write Parrot on top of that...  We'd have basically no C, but don't really gain much.
23:22 benabik cotto: Really the question is having a sane root set.  I'd imagine that for a "no magic" VM, we'd want to say "these things here are pointers".  Untyped register space gives use "these things here might be pointers, go and see if they are and if so then start sweeping them"
23:23 cotto if gc-able things are allocated with a different op, it's easy for the interp to keep a list of pointers to them
23:24 whiteknight We want a clear set of registers set aside for GCable pointers. We're fighting to get to a precise GC, and throwing that all away is not a good idea
23:25 benabik The GC is probably going to have a global list of objects yes.  But having to iterate over that list for every _possible_ pointer is not going to be the bastion of efficency.
23:25 whiteknight stack walking or walking blocks of memory to find pointers is bad and we shouldn't plan to do more of it
23:34 cotto Is a copying/compacting gc too magical for m0?
23:35 benabik Possibly not but is even more difficult if we're not sure what is and isn't a pointer.
23:35 cotto agreed.  The tradeoffs need lots of thought.

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

Parrot | source cross referenced