|
Parrot 4.4.0 "Banana Fanna Fo Ferret" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 3 June 2012. |
|||
|
01:12
particle joined
|
|||
| dalek | kudo/nom: 6ab416b | pmichaud++ | src/ (4 files): Get binder to recognize QRPAs; let nqp::istype and nqp::islsit inherit from nqp. |
01:54 | |
| : 80ebf9c | jimmy++ | t/while.m1: fixed t/while.m1 test |
02:09 | ||
| rrot/m0: 78d1d89 | jimmy++ | src/m0/perl5/m0_interp.pl: fixed Sha-Bang |
02:26 | ||
| : e9b889d | jimmy++ | / (2 files): fixed run_m1.sh, so it won't ouput warning, also removed unneeded hello.m1 |
02:46 | ||
| : a7248e6 | jimmy++ | / (3 files): add small fix to make test output |
03:08 | ||
| p: 6be8ad9 | pmichaud++ | / (2 files): Fix count overrun bug in QRPA.splice. |
04:43 | ||
|
05:26
dalek joined
06:07
dngor joined
06:28
fperrad joined
06:54
he joined
07:31
brrt joined
08:11
lucian joined
08:51
kjs joined
09:59
kjs joined
10:09
brrt1 joined
10:22
JimmyZ joined
|
|||
| JimmyZ | good morning, ksj | 10:25 | |
| err, kjs | |||
| kjs | hi JimmyZ | 10:29 | |
| JimmyZ | hello | ||
| kjs | how are things? | 10:30 | |
| JimmyZ | kjs: not good, don't know how to fix the segfault of m0/c :P | 10:33 | |
| kjs | perhaps there should be some assertions added to M0 | 10:36 | |
| I'm doing that a lot to M1, and they've caught several mistakes of mine | |||
| JimmyZ | kjs: I know where/why is segfault. just don't know to fix ;) | 10:37 | |
| kjs | where is it? | ||
| JimmyZ | kjs: for obj.m1: github.com/parrot/parrot/blob/m0/s...erp.c#L149 | 10:38 | |
| kjs: for func.m1: github.com/parrot/parrot/blob/m0/s...ps.c#L267, because of frame->registers[ops[1]] = "" | 10:39 | ||
| kjs | obj.m1 runs fine on my machine (mac) | ||
| on C-M0 | |||
| it's knwon that func won't work on C-M0 | 10:40 | ||
| since M0 is not as complete yet. See the mailing list | |||
| JimmyZ | kjs: obj.m1 runs fine, because you comment that line ? | ||
| kjs | which line? | ||
| JimmyZ | github.com/parrot/parrot/blob/m0/s...erp.c#L149 | 10:41 | |
| kjs | oh i might have. cant remember now | ||
| i thought you put in a fix for that | |||
| JimmyZ didn't :P | |||
| kjs | I don't have time to look into this now unfortunately | 10:43 | |
| but I think in general we should add more assert()s and set pointers to NULL after being free()d | |||
| JimmyZ | kjs: I heard Nathan Brown will fix it this weekend in the email | 10:44 | |
| kjs: aye | |||
| kjs | i dont think promises were made ;-) | ||
| I hope that a "complete" M1 implementation will motivate others to keep working on M0. | 10:45 | ||
| JimmyZ | kjs: me too. | 10:46 | |
| kjs++ :) | 10:48 | ||
|
11:18
brrt1 left
|
|||
| dalek | rrot/m0: 2f4959f | jimmy++ | src/m0/c/ (3 files): fixed the test t/obj.m1 and t/string.m1 in m1 repository |
11:30 | |
|
11:30
JimmyZ joined
|
|||
| JimmyZ | yeah, I fixed two sefault finally | 11:32 | |
| kjs | how did you find out how to fix it? | 11:34 | |
| JimmyZ: I wonder whether the fix in gc_alloc op is correct | 11:37 | ||
| JimmyZ | kjs: yeah | 11:38 | |
| kjs: that's the problem | |||
| kjs | the spec says it's a number of bytes (sizeof(char)) that is allocated | ||
| now it wiill allocate 8 times as much | |||
| JimmyZ | kjs: but I don't know whether it's correct or not. I'd like to make it work first | 11:39 | |
| kjs | but if it's not correct, then it's hiding the real cause... | ||
| JimmyZ | kjs: hmm, I need add comment 'XXX' again :P | 11:40 | |
| JimmyZ dinner& | |||
| kjs | because now it's "working" just because there's a whole bunch of memory around (allocated) | ||
| o | |||
| ok | |||
|
11:43
plobsing joined
12:12
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:13 | |
|
12:22
lucian joined
12:30
kjs joined
12:37
dngor joined
12:53
not_gerd joined
|
|||
| not_gerd | hello, #parrot | 12:53 | |
| whiteknight | hello not_gerd. How are you doing today? | 12:54 | |
| not_gerd | fine - the weather's unexpctedly good, so I might not stay around for much longer | ||
| cotto: ping | |||
| whiteknight | cotto is probably not awake yet | 12:55 | |
| it's probably 6AM there | 12:56 | ||
| not_gerd | 6am - best time of the day to do some m0 design ;) | 12:57 | |
| msg cotto currently, m0 string have 2 32-bit header fields (size and encoding) - I'm pondering adding a third for a hash code | 12:58 | ||
| aloha | OK. I'll deliver the message. | ||
| kjs | not_gerd: hi there. | ||
| not_gerd | kjs: hello | 12:59 | |
| kjs | did i remember correclty you were interested in doing a jit for M0? | ||
| not_gerd | kjs: a pseudo-jit - translation to a different in-memory representation for faster interpretation | 13:00 | |
| kjs | not something like libjit? | ||
| not_gerd | C is not the best target for writing interpreters, which is the reason why the luajit2 one is written in assembler | ||
| however, LLVM IR is powerful enough so you can do the same thing, but portable | |||
| that's what I'm planning to do | |||
| (luajit2 in interpreter mode used to outperform the V8 jit) | 13:01 | ||
| kjs | does that mean you'd reimplement M0 interpreter? | ||
| not_gerd | yes | 13:02 | |
| but I first want the C implementation to stanilize | |||
| kjs | which language would that be? | ||
| not_gerd | ^stabilize | ||
| kjs | I thought using existing components such as libjit for jit, and libffi for ffi would be quite handy. | ||
| the perl implementation is more stable :-) | 13:03 | ||
| not_gerd | kjs: $any-language - one just needs to generate LLVM IR at compile-time | ||
| kjs | as in, working. | ||
| not_gerd | kjs: not all issues have been solved | ||
| btw, I'mworking on the C implementation right now: github.com/parrot/parrot/pull/784 | |||
| kjs | ok, well obviously you're more knowledgable about those details than me :-) | 13:05 | |
| I think we should try to include things that have proven to be difficult in Parrot, such as threads, at an early stage | 13:06 | ||
|
13:08
Psyche^ joined
|
|||
| not_gerd | the current design has some unresolved issue (memory model/gc probably the most important one) and I'd like to have a working prototype before I start working on 'my' implementation | 13:08 | |
| kjs | sounds like a sound idea. as for the GC, i would expect that's just a subsystem that could be implemented instead of using malloc(). | 13:09 | |
| what do you need for M0 to stabilize? Are those the things on the list you sent the link for | 13:13 | ||
| not_gerd | sure, but you need to figure out how to flag PMC registers, how object metadata is stored, etc | ||
| I want to know what I need to optimize for before creating an optimized implementation ;) | |||
| kjs | it seems that these problems have been solved many times by existing VMs | 13:15 | |
| not_gerd | kjs: but never exactly the same way | ||
| kjs | lua for instance, python, ruby | ||
| not_gerd | the design of luajit and pypy is quite different | 13:16 | |
| just to name two prominent implementations | |||
| kjs | and both are quite fast i believe | 13:17 | |
| maybe i'm ignorant, but arent we trying to reinvent the wheel? | |||
| not_gerd | kjs: nothing wrong with that as long as the perfect wheel hasn't been found... | 13:24 | |
| kjs | not_gerd: that sounds as if you're confident you can find a faster wheel :-) | ||
| not_gerd | kjs: not really, but how would I know if I don't try | 13:25 | |
| alternatively, find some money and hire the guys who've been working on dynamic language vms for several decades | 13:26 | ||
| don't know how happy they are right now at Google ;) | |||
| kjs | ah but there's no fun in that! | ||
| not_gerd | msg cotto I'd also like to add CFG_SEED to CONFIG | 13:32 | |
| aloha | OK. I'll deliver the message. | ||
| not_gerd | ans with github.com/gerdr/parrot/commit/f5d...3d66a876e0 , I'm off for now | 13:51 | |
| ^and | |||
|
13:52
not_gerd left
13:53
brambles joined
|
|||
| JimmyZ | luajit2 is not portable? | 13:54 | |
|
13:58
brambles_ joined
|
|||
| dalek | rrot/m0: c74de6b | jimmy++ | src/m0/c/ops.c: add a comment so we're not hiding the real cause |
14:04 | |
|
14:13
jashwanth joined
14:17
PacoAir joined
14:51
JimmyZ joined
|
|||
| dalek | kudo/nom: 8bb2fad | pmichaud++ | src/core/MapIter.pm: Use QRPA for ListIter's $!rest in MapIter. |
15:06 | |
|
15:22
jashwanth joined
|
|||
| alvis | not_gerd++ # +1 on github.com/parrot/parrot/pull/784 | 15:26 | |
|
15:34
dmalcolm joined
16:25
bluescreen joined
16:42
not_gerd joined
|
|||
| not_gerd | msg JimmyZ luajit2 is portable insofar as Mike makes mone porting it | 16:48 | |
| aloha | OK. I'll deliver the message. | ||
| alvis | aloha: help | 16:52 | |
| aloha | alvis: Ask me for help about: status, insult, auth, chanop, seen, github::announce, infobot, xkcd, convert, msg, vars, karma, maths, translate, github::pullrequests, clock, loader (say 'help <modulename>'). | ||
| alvis | dalek: help | ||
| dalek is, me thinks, dead. Don't know how to check on it. :( | 16:54 | ||
| Coke | they're working on it. | 16:55 | |
| your commit to CREDITS borked it a bit. | |||
|
16:57
kjs joined
17:01
alvis left
|
|||
| Coke | sorear++ has likely fixed it. momentito. | 17:01 | |
|
17:02
alvis joined
|
|||
| dalek | : e1bebdf | kjs++ | src/ (5 files): work in progress. small code refactoring. plan for macro for generationg instructions. abstract away scope opening and closing. |
17:08 | |
| : 4dc64a2 | kjs++ | src/ (3 files): improve symbol handling |
17:22 | ||
|
17:31
zby_home joined
17:34
alvis_ joined
17:35
contingencyplan joined
|
|||
| not_gerd | msg cotto any thoughts on github.com/parrot/parrot/pull/784#...nt-6208779 ? | 17:45 | |
| aloha | OK. I'll deliver the message. | 17:46 | |
| moritz | anybody wants to make rakudo happy and implement foldcase? it's already in icu: icu-project.org/apiref/icu4c/ustrin...4934d9acce | 17:50 | |
| whiteknight | moritz: Create a ticket. You can assign it to me initially | 17:54 | |
| moritz | whiteknight: will do, thanks | ||
| whiteknight | moritz: What is case-folding? | 17:55 | |
| moritz | whiteknight: it's an operation that canonicalizes the case of a string so that you can compare two strings independently of case | 17:57 | |
| you can't use upper-caseing for that because then titlecase characters won't compare correctly | |||
| and you can't use lower-casing, because the German 'Ć' should compare equal to 'SS', but if you lower-case 'SS', then 'ss' is not equal to 'Ć' | 17:58 | ||
| whiteknight | ... | 17:59 | |
| languages and encodings are lolfail | |||
| If we're going to implement case-folding, we're going to have to do the same thing for ASCII, utf8, utf16, ucs2 and all the other formats we're supposed to supoort | 18:00 | ||
| support | |||
| moritz | huh? can't we delegate that to ICU? | 18:01 | |
| whiteknight | I don't know. Maybe? I don't know a lot about encodings | ||
| dalek | kudo/nom: 5a415c9 | moritz++ | src/core/Cool.pm: return Int type object from failed Str.index |
18:07 | |
| aloha | (parrot/parrot) Issues opened : 786 (Expose icu's FoldCase operation to user space) by moritz : github.com/parrot/parrot/issues/786 | ||
|
18:08
mtk joined
18:22
mtk joined
18:24
NotFound joined
|
|||
| NotFound | ~~ | 18:24 | |
| whiteknight | hello NotFound | ||
| NotFound | Hi | 18:25 | |
|
18:28
rindolf joined
|
|||
| rindolf | Hi all. Should I package parrot-4.4.0 for Mageia Linux or parrot-4.3.0? This page is a little confusing - www.parrot.org/download . | 18:29 | |
| whiteknight | 4.3.0, I think | ||
| That's the supported one | |||
| NotFound | (case-folding): don't need to do it for all encodings, just one. User can recode if they need to. | ||
| whiteknight | NotFound: So what happens if somebody calls the casefold op on an ASCII string? | 18:30 | |
| NotFound | whiteknight: one result. | ||
| source, any. | 18:31 | ||
| moritz | fc($ascii) does the same as lc($ascii) | 18:32 | |
| whiteknight | but still, somewhere we need to make that mapping | ||
| rindolf | whiteknight: Gentoo have already packaged 4.4.0. :-( | 18:33 | |
| So I'll have a false positive here - check.mageia.org/cauldron/shlomif/updates.html . | |||
| NotFound | Yes, but you just need source conevrsion, it will be simpler. | ||
| whiteknight | rindolf: They're both good releases. Well-tested and good quality | 18:34 | |
| rindolf | whiteknight: OK. | 18:35 | |
| whiteknight: I'll go with 4.3.0 for the time being. | |||
| whiteknight | rindolf: Thanks. Sorry about the confusion | 18:36 | |
| rindolf | whiteknight: no problem. | 18:37 | |
| whiteknight | rindolf: Out of curiosity, is there any documentation we could update to have cleared this up sooner? | ||
| rindolf | whiteknight: well, maybe the page there. | 18:38 | |
| whiteknight | link? | ||
| rindolf | whiteknight: www.parrot.org/download | 18:46 | |
| whiteknight | Okay, I'll look at it and make sure it is up to date with information for packagers | 18:47 | |
| rindolf++ | |||
| not_gerd | bye, #parrot | 19:08 | |
|
19:08
not_gerd left
|
|||
| rindolf | whiteknight: thanks. :-) | 19:20 | |
|
19:22
lucian joined
19:30
TonyC joined
19:38
nopaste joined
19:50
brrt joined
19:57
dmalcolm joined
20:08
preflex joined
20:14
preflex_ joined
|
|||
| dalek | nxed: 82ab077 | NotFound++ | t/medium/0 (3 files): update style and improve check in some tests |
20:16 | |
| brrt | i'm getting a segfault in winxed upon compreg('nqp'); | 20:23 | |
| NotFound | brrt: the compreg builtin just generates a compreg op, it must be a parrot initialization problem. | 20:31 | |
| brrt | i've loaded up gdb, but i'm not getting much wises | ||
| wiser | |||
| happens in Parrot_oo_find_vtable_override | 20:32 | ||
| benabik | brrt: Does $P0 = compreg 'nqp' also segfault? | ||
| In a PIr file. | |||
| moritz | it does not | 20:35 | |
| at least not here | |||
|
20:39
brrt joined
|
|||
| brrt | benabik: i'm checking it out | 20:40 | |
|
20:41
fperrad joined
|
|||
| brrt | nope, no segfault | 20:42 | |
| compreg is not the problem, load_language is | 20:43 | ||
| oh, whats more | 20:44 | ||
| it doesn't happen with pir | |||
| NotFound | brrt --verbose | 20:47 | |
| brrt | :-)... loading 'verbose' module | ||
| when I create a file that contains: function main[main]() { load_language("nqp"); } it segfaults in the aformentioned function | 20:48 | ||
| function main[main]() { compreg("nqp") } does not crash | 20:49 | ||
| NotFound | brrt: ugly. It can be a winxed driver problem. What happens if you compile it to pir and run the pir? | ||
| brrt | thats what i'm going to try out | ||
| no crash | |||
| NULL PMC access | |||
| but thats ok | |||
| NotFound | I need to talk with whiteknight, the winxed driver may need a change, or perhaps the pbc_to_exe generated startup code. | 20:51 | |
| brrt | yes, probably | ||
| and if so I'd probably want to know too | |||
| a propos.. do you know if nqp even registers a HLL compiler? | 20:52 | ||
| NotFound | brrt: the nqp bundled with parrot does not work with load_language, because it does not follow the rules about names an location. | 20:54 | |
| brrt | what about the nqp not bundled with parrot | ||
| or for that matter, rakudo | |||
| NotFound | brrt: I don't know its current state in that matter. | 20:55 | |
| brrt | hmm, it is of no great importance right now | ||
| rurban | brrt: Can you add a testcase for this bug? | 20:56 | |
| NotFound | For the bundled one, examples/nqp.winxed in the winxed source tree works. | ||
| rurban | brrt: sorry, forget it. | 21:00 | |
| brrt | oh, thats weird | ||
| NotFound: yes, that one works | 21:01 | ||
| rurban: why forget it? | |||
| rurban | When it's not supported and known not to work, why add a testcase | ||
| NotFound | brrt: I can't reproduce the problem in parrot master. It just throws "couldn't find a compiler..." for me. | 21:02 | |
| brrt | .. its really weird, and somewhat embarassing | ||
| but i can't reproduce it either anymore | |||
| NotFound | This was in a non optimized build, going to try again optimized. | 21:03 | |
| brrt | this is very frustrating indeed | ||
| NotFound | rurban: "not to work" can be fine, segfaulting is never fine. | 21:04 | |
| brrt | i'm wondering if my build was just corrupt now | ||
| NotFound | brrt: probably a missing dependency in the Makefile | 21:05 | |
| It happens sometimes. | |||
| brrt | yes, but rather stupid, still | ||
| strange as well, as I haven't been able... oh wait | |||
| i know | |||
| i've just cleaned my parrot directory, and parrot happens to look in the build_dir for its search path | 21:06 | ||
| which is now clean, and thus does not contain problematic files anymore | |||
| NotFound | brrt: Installed parrot looks in the build dir? | 21:07 | |
| brrt | i do believe so | ||
| src/library.c, Parrot_lib_update_paths_from_config_hash, line 245 | 21:09 | ||
| add $build_dir/runtime/parrot/include to include, library, lang, dynext | 21:10 | ||
| well, not include, but you get my point | |||
| NotFound | Looks like we have 4 config keys with references to the build tree; build_dir, coveragedir, libparrot_likflags and rpath_blib | 21:11 | |
| brrt | build_dir is the one that is used | 21:12 | |
| rurban | Installed parrot has a config logic to ignore build_dir | 21:16 | |
| brrt | .. that can't be it, then? | 21:21 | |
| ... i'll see if i can ever repeat it | |||
| but I'm going to sleep now | |||
| bye | 21:22 | ||
| rurban | I wrote it long ago, but cannot remember exactly | ||
| I looked, only prefix is changed on is_install. libparrot_linkflags should not be used, inst_libparrot_linkflags instead. rpath_blib is also not used, rpath_lib instead | 21:26 | ||
| In doubt check the config key installed | |||
| NotFound | rurban: yes, there is a check for the "installed" key, src/library.c:240 | 21:27 | |
| rurban | So builddir should be empty | 21:28 | |
| I forgot which parts of my make_install patches #3 were never applied. There was something on the wiki | 21:29 | ||
| Some stat optimizations if I remember | |||
| NotFound | Not empty, but is not inserted into the default search paths. | ||
| rurban | Well builddir=NULL is empty | 21:30 | |
| NotFound | No, is NULL ;) | 21:31 | |
| rurban | oki | 21:32 | |
| NotFound | It doesn't matter in that case, no difference between skipping when NULL and inserting an empty. | ||
| Uh, no, it does not insert, it adds paths. | 21:33 | ||
| Now I understand better the conflicts when rebuilding with the same prefix as one already installed. | 21:34 | ||
| rurban | You set manually --prefix to `pwd`? That should be forbidden | 21:35 | |
| NotFound | No, that must be even worse. | 21:36 | |
| rurban | in Configure.pl | ||
| dalek | : e859453 | dukeleto++ | README.md: Add note to the readme about running tests |
||
| p: dceb34b | jnthn++ | src/QRegex/Cursor.nqp: Simplify and improve performance of !alt a bit; creates less junk. ~4% improvement on CORE.setting parse time. |
21:39 | ||
| p: d738608 | jnthn++ | src/QRegex/Cursor.nqp: Similar simplification to !protoregex as just done to !alt; much less noticable difference, probably because we just pick the first answer much of the time and it works out. |
21:59 | ||
| rrot: 2c97f1c | NotFound++ | config/gen/makefiles/root.in: delete generated pbc_to_exe.pir in prog-clean target |
22:03 | ||
| p: ac5f5fc | jnthn++ | src/ops/nqp.ops: Re-use state arrays in NFA runner, saving roughly a million PMC allocations during CORE.setting parse. Another couple of percent off. |
22:31 | ||
|
22:32
kjs joined
|
|||
| kjs | make | 23:08 | |
| woops :-) | 23:09 | ||
| rurban | BTW: I use alias m=make | 23:15 | |
| kjs | saving your fingers to type the 3 letters eh ;-) | 23:19 | |
|
23:24
kjs joined
|
|||
| dalek | : 69f03a5 | kjs++ | src/ (3 files): fix a bug in symbol declaration. |
23:40 | |
| : 49e72cc | kjs++ | src/ (5 files): finish scopes the cheap way. |
|||
|
23:45
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 23:46 | |
| dalek | p: f60f402 | jnthn++ | src/ops/nqp.ops: Refactor to pull much of the NFA runner out of the op body. |
||
| p: ba8bf93 | jnthn++ | src/ (3 files): Refactor the NFA ops; we needn't get the ordering back and then push it onto the bstack in a loop, we can just do it right in an op; we've a few other ops that manipulate the bstack after all. Another little win. |
|||
| p: 35db044 | jnthn++ | src/stage0/ (8 files): Update bootstrap. |
|||
| p: 7176d14 | jnthn++ | src/ops/nqp.ops: Toss now-unused op. |
|||
| kudo/nom: 0fde4a1 | jnthn++ | tools/build/NQP_REVISION: Use latest NQP for some parsing performance improvements (roughly 8% improvement for CORE.setting). |
23:53 | ||
|
23:56
kid51 joined
|
|||