Parrot 4.3.0 "In Which..." | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 25 April 2012.
NotFound At least compilers don't get upset or bored every time they deal with it. 00:00
Compiler writers do, but hopely only one time for each case. 00:01
whiteknight msg Justin I wrote some notes about IO-related security a few months ago. You might be interested: github.com/Whiteknight/whiteknight...ecurity.md 00:14
aloha OK. I'll deliver the message.
whiteknight nine: ping 00:18
msg nine which branch should I use for testing now? threads_playground and chameneos_performance branches look to be the furthest ahead 00:25
aloha OK. I'll deliver the message.
01:23 aloha joined, jlaire joined 01:53 bacek_at_work joined 02:00 wendar joined 02:02 dngor_ joined 02:11 benabik joined
benabik ~~ 02:14
whiteknight++ # don't worry, I'll let IMCC know 02:15
04:07 bacek_at_work joined 07:11 brrt joined 07:14 lucian joined 07:27 fperrad joined 07:43 c9s joined, c9s left 08:18 lucian joined 09:16 eternaleye joined
dalek kudo/nom: 256e1db | moritz++ | src/core/terms.pm:
support RAKUDOLIB env variable in addition to PERL6LIB

  fglock++ asked how sharing of PERL6LIB works between compilers in the presence of compiler-specific modules. I believe this should be part of the answer
09:17
09:20 he joined 10:09 brambles joined
dalek p/dyncall-wb: 480d22d | (Arne SkjƦrholt)++ | src/6model/reprs/CArray.c:
[CArray] Refactor bind_pos_boxed/at_pos_boxed.

Since we've added child_objs, we can cache the generated String objects as well, and eliminate the need for at/bind_pos_complex.
10:22
p/dyncall-wb: 3776cef | (Arne SkjƦrholt)++ | src/ (2 files):
Check argument objects for changes after a C language call.

Some refactoring of CArray to fit in with the write barriering.
11:04 lucian joined 11:42 benabik joined, prologic joined
benabik Good morning, #parrot 11:42
prologic heya all 11:43
just wondering if there happens to be a repository of useful parrot libraries/modules/etc for re-use by others
benabik There was a packaging system for libraries, but it isn't widely used yet... 11:44
prologic ah ok
just that I'm contemplating using either parrot or llvm for my toy language
and well parrot seems nicer tbh and well documented 11:45
but the thought of writing an object model in pir seems overwheleming :)
benabik I'd suggest you write your runtime support in Winxed instead. Much nicer to deal with.
prologic ok I'll check it out 11:53
thanks!
tadzik as for repository of libraries, look for Plumage 11:55
benabik Plumage, that was the name! 11:58
The current best winxed documentation is here: whiteknight.github.com/Rosella/winxed/index.html 11:59
12:25 whiteknight joined
moritz is there some option to make parrot more valgrind-friendl? 12:26
ie not have it spew out lots of "Conditional jump or move depends on uninitialised value(s)" from the GC?
whiteknight maybe 12:28
that sounds like a warning that we need to fix
do you know where it is happening? 12:29
Coke moritz: check out the tools directory.
moritz whiteknight: I can give you valgrinds backtraces, if that's any help 12:30
Coke tools/dev/vgp*
moritz seems to happen in all rakudo programs
Coke those should probably be renamed to "valgrind_parrot" to be less obfuscatory 12:31
whiteknight moritz: yeah, gist a few of them
moritz Coke: thanks
whiteknight: moritz.faui2k3.org/tmp/valgrind.log 12:32
whiteknight: ignore the invalid read and segfault at the end, the rest is pretty standard
whiteknight ah, trace_mem_block 12:39
yeah, that function is a huge pain
I can't think of any real way to prevent valgrind from crapping out about that
benabik Trickiest part so far of using Winxed: Trying to avoid it boxing and unboxing things. 12:42
It assumes var return for many thing.s
whiteknight moritz: The problem is that all the values in that function *are* initialized, so there's nothing really to fix 12:44
benabik Also: Good morning, whiteknight
whiteknight valgrind just doesn't seem to like the way we're doing it
moritz whiteknight: it's ok, I'll just use the suppression file 12:47
whiteknight yeah, that's the best strategy
12:49 nn joined
whiteknight benabik: yeah, I've noticed that too. I'm not sure what the solution is 12:49
I suspect he's working around problems where null returns don't unbox well 12:50
if I do a "return null;", then try to do an int foo = bar(), we'll get an exception 12:51
benabik Fortunitely, either :() or string() solve most of them. 12:58
string target = downcase(string(adverbs['target'])); 13:00
At this point I'm auditing all occurrences of /set \\$[INS]\\d+, \\$P/ 13:02
whiteknight hmm 13:03
this really seems like something the Winxed optimizers should take care of 13:04
13:05 slavorg joined 13:06 bluescreen joined
benabik That one's actually important because get_keyed_ss and get_keyed_ps may return different things. 13:08
Those sorry, get_keyed_string and get_keyed_pmc
It does, thankfully, DTRT for `string encoding = adverbs['encoding']`. 13:09
whiteknight yes
benabik But I do have to use `:(string foo) = bar()` if I really want to get a string back from a function. Just `string(bar())` doesn't cut it. 13:12
whiteknight yeah, I think that's definitely wrong 13:13
benabik Well, there's a weird one. 13:33
whiteknight ...?
benabik Method '!cursor_start' not found for invocant of class 'Regex;Match'
whiteknight weird 13:34
is it a method or an attribute
moritz benabik: '!cursor_start' is a method on a cursor, not on a match
benabik No idea. This is not code I've modified.
I'm guessing I've mis-set a variable somewhere. 13:35
Huh. Succeeded this time. :-/ 13:37
I'm guessing some PIR file was out of sync... I had just finished doing an editing pass on things.
whiteknight that is weird 13:38
13:40 prologic left 13:41 preflex_ joined 13:42 JimmyZ joined
moritz um, the valgrind suppression file for parrot doesn't seme to filter out those traces with trace_mem_block 13:46
benabik Awesome
14:11 prologic joined
prologic Hey is it possible to statically link the executable that pbc_to_exe produces? 14:11
whiteknight prologic: I don't think it exports any symbols 14:12
benabik We do provide a libparrot.a
whiteknight prologic: I think we could support that, but we've never taken the time to do it yet
prologic just wondering if it's possible at all
benabik Although parrot uses dynamically loaded libraries on a regular basis.
prologic ship the parrot vm statically along with your language 14:13
just curious
first time learning with parrot
so far I like it :)
whiteknight prologic: if it's something you want, open a ticket and we can work on it
we've just never had a use for that before
prologic k 14:14
PerlJam prologic: what are you using (will be using) parrot for? 14:16
14:18 smash joined
smash hello everyone 14:18
benabik Ah! There's a difference between ${ get_hll_global p0, 'TOP' } and ${ get_hll_global top, p0, 'TOP' } 14:19
o/ smash 14:20
prologic PerlJam, a toy language I'm working on (toy for now) based around some of the same/similar concepts to Io/Smalltalk 14:21
benabik I _think_ I have successfully ported PCT.HLLGrammar to winxed.
*HLLCompiler
PerlJam prologic: cool.
prologic I've already implemented the lexer/parser and a lot of the runtime, have only things like looping constructs and concurrency to implement
benabik I'm going to have to find a way to do the other Compilers stepwise. So far I've just been porting a full file at a time. P*ST.Compiler are far too complicated to do that with. 14:22
moritz benabik: can't you just do it method by method? 14:23
I mean, adding methods to existing classes isn't hard in parrot
benabik moritz: That probably would have been more sane. :-D 14:25
I'll probably just .include the generated PIR into the original PIR.
moritz in rakudo, we also monkey-patch HLL::Compiler (which is written in NQP) from within the setting (written in Perl 6) by calls to meta classes 14:26
whiteknight prologic: we have a big rewrite of our concurrency system should be landing in master in the next month or two
prologic oh good :)
because I'll need that 14:27
moritz testing of the branches would be very welcome, I think
prologic I hope it includes coroutines/lightweight-threads
benabik Oh, I certainly could do that in new programs. But it's easier (for me) to just muck around with the original files so that I can run all the existing tests and languages without changing them.
prologic yeah I'll consider fetching the HEAD at some point
14:28 PacoAir joined
prologic you guys decided on a jit library yet? 14:28
reading up on DynASM - seems nice and well suited ihmo
benabik We're looking at redoing some of our core to be more JIT friendly. 14:29
whiteknight prologic: we had been looking at LLVM, but a few people have not been enthusiastic about that choice
we can definitely look at DynASM too 14:30
We're probably about a year away from JIT at this point
prologic I've been looking at LLVM/Parrot extensively over the last few weeks
and I have to say, I picked Parrot over LVVM for a number of reasons - simplicity, good documentation, lightweight 14:31
moritz well, LLVM and parrot really fill different ecological niches
parrot is much more high-level
14:32 knewt joined
prologic hmm btw how do you go from pir -> pasm? 14:34
parrot -a -o hello.pasm hello.pir doesn't seem to do the trick
benabik prologic: You don't.
prologic oh
benabik PASM and PIR are essentially two different kinds of assembly.
prologic pbc -> pasm?
benabik PASM is not very well supported these days...
prologic oh ic 14:35
benabik There is a pbc_disassemble and `pbc_dump -d` to show the contents of PBC
prologic in that case I'll forget pasm :)
whiteknight prologic: PASM is basically deprecated. PIR is our assembly
benabik (And PACT/src/disasm.winxed, technicall)
prologic kk 14:36
so parrot, pbc and friends and winxed for javascript-like syntax
whiteknight yes
prologic k well g'night :)
whiteknight goodnight 14:37
Coke if PASM is "mostly" deprecated, is there any reason not to make it fully deprecated? 14:41
Do we really need MORE code to maintain slash tell people we don't really maintain? 14:42
benabik It's used for constants and few lingering tests at this point.
Coke starts a branch.
benabik And fully removing it involves hacking IMCC which is nobody's favorite task.
tadzik to say it gently 14:44
PerlJam easy! Just remove IMCC :)
benabik PerlJam: That's my plan.
dalek rrot/pct_winxed: a228fda | benabik++ | / (6 files):
PCT: Convert PCT/HLLCompiler to Winxed
14:46
rrot/pct_winxed: 07f1e60 | benabik++ | compilers/pct/src/PCT/Node.winxed:
PCT.Node: Avoid unneeded box/unbox

Just using int() isn't enough to avoid a PMC register in a function call, so use the :() binding syntax instead.
14:47
rrot/pct_winxed: 52b597f | benabik++ | compilers/pct/src/PCT/Grammar.winxed:
PCT.Grammar: Use built-in instead of unknown function

Winxed uses indexof() for the index op. Oops.
rrot/pct_winxed: fcb1cc0 | benabik++ | compilers/pct/src/PCT/Grammar.winxed:
PCT.Grammar: Fix null PMC access in onload

Error in translation, missed the get_class.
Coke how to push a local branch? 14:51
moritz git push origin <branchname> 14:52
Coke git push -u <name> <name> ?
14:52 bluescreen joined
moritz you can use -u too, yes 14:52
Coke moritz: will that version do tracking for future pushes?
PerlJam ${ ... } is how you execute PIR in winxed? 14:53
dalek rrot/coke/rm_pasm: dad33fd | coke++ | docs/pdds/draft/pdd06_pasm.pod:
Add a note about PASM deprecation
rrot/coke/rm_pasm: 6a9fc68 | coke++ | editor/ (6 files):
Remove pasm help/docs from editor
benabik PerlJam: More or less. The arguments get parsed as winxed expressions.
moritz Coke: with -u a 'git pull' in that local branch will DWYM
Coke moritz: I did your version, now "git pull --rebase" complains it doesn't know what to do.
benabik (Which notably means that .get_params () calls won't work in ${}) 14:54
Coke how to retro-fit it?
benabik can never remember the command line to set these things. He always edits .git/config
moritz Coke: edit your .git/config
Coke arglebargle. Danke.
benabik git-branch --set-upstream ?
moritz Coke: there's a section [branch "master"]. Copy-and-paste it, and replace "master" with your branch name 14:55
Coke moritz: ew!
benabik `git-branch --set-upstream <branch>` ?
Oops, s/-/ /
Coke but danke.
moritz Coke: sorry about that. I started git before the -u option was added :-) 14:56
PerlJam benabik: have you considered abstracting the PIRish parts out of PCT::HLLCompiler so that it's all winxed?
benabik PerlJam: I am deliberately attempting direct conversions at first. Making it more "natural" Winxed can come later. 14:57
PerlJam ok
benabik I did add some inlines for bits that were more natural as functions.
(mostly where I just wanted the result in a temporary) 14:58
PerlJam (I have to say from a non-winxed programmer and a used-to-write-PIR programmer perspective that the winxed code iw *much* more readable :)
s/iw/is/ 14:59
benabik cotto: ping 15:02
msg cotto Random thought for GSoC project: What do we want the new assembly to look like? PASM/PIR? nasm? gas? other? 15:05
aloha OK. I'll deliver the message.
NotFound ~~
benabik: I've been looking at your problem. I think I can add an special case for function calls to solve it without breaking anything. 15:07
benabik NotFound++
NotFound: The binding syntax works, but is somewhat kludgy.
NotFound Just like it does now for: int(a[b]) 15:08
15:14 bluescreen joined
dalek CT: eb98173 | benabik++ | TODO.mkd:
TODO: Update for GSoC

Now that I'm actually accepted, make note of what in the TODO I plan on doing.
15:15
JimmyZ benabik: Is there a public url for your 6model proposal ? 15:17
dalek nxed: b140bf9 | NotFound++ | winxedst2.winxed:
special case for call expressions in typecast builtins arguments
whiteknight JimmyZ: if there isn't, there should be 15:19
We'll make it public, or use it to create a public TODO list
benabik I didn't originally make it public.
whiteknight JimmyZ: Do you want to get involved with 6model? We could use lots of helpers
benabik If I can still edit it, I'll rip some personal details out of the timeline and make it public. 15:21
Can't edit it. Should I just post an edited version as a gist? 15:22
JimmyZ whiteknight: I'm not sure about my ability. But from your post, you said there were some good ideas in benabik's proposal, I think it's interesting
+1 to a gist
whiteknight benabike: yes a gist would be awesome 15:23
benabik I'm just twitchy about posting personal life details online. :-D It probably doesn't even matter in this case, but blah. 15:24
whiteknight benabik: filter out your personal info
NotFound whiteknight: winxed b140bf9 is potentially disruptive change, please notify me if you find any problem. 15:25
whiteknight NotFound: It shouldn't be. I'll give Rosella a test and make sure everything is fine 15:26
benabik JimmyZ, whiteknight: gist.github.com/2500370 15:28
15:31 hernan joined 15:32 hernan joined 15:33 hernan joined 15:34 hernan joined
JimmyZ benabik: thanks :) 15:34
15:35 hernan joined 15:36 hernan joined 15:37 hernan joined 15:38 hernan joined 15:55 contingencyplan joined 16:01 brrt left
Coke ... ok,that's weird. I rip out -a and --pasm from frontend/parrot, run make test... no failures. 16:06
benabik Yeah. 16:07
Our tests are awesome.
I think frontent/parrot is mini-parrot.
whiteknight yeah, that's just miniparrot 16:08
frontend/parrot2 is regular "parrot"
We can probably rename those at this point, when I originally made the change I was aiming for maximum backwards compatibility and a painless transition 16:09
Coke ok.
ARGLEBARGLE. any file that says "# THIS IS A GENERATED FILE! DO NOT EDIT! 16:15
" but does not refer to the generating file should be shot. 16:16
tadzik Oh yes
benabik GSoC Students: Don't forget to check your TODOs. 16:17
Coke whiteknight: also, why is there frontend/ and src/ and not src/frontend ? 16:19
aloha (parrot/parrot) Issues opened : 758 (frontend/parrot2/prt0.pir says "THIS IS A GENERATED FILE"...) by coke : github.com/parrot/parrot/issues/758 16:21
Coke further confustication: I didn't realize we'd adopted winxed as a /core/ language. like, it's part of the bootstrap for the build process now. 16:23
if we're going to do that, it'd be nice if there was some core docs, also, though a pointer to exterior docs would be a good start. 16:25
whiteknight That's a good point. We should update that file or add a readme or something 16:27
Coke whiteknight: as we're embedding PBC into our parrot library, we probably want to make sure that PBC is minified/optimized .
whiteknight how so? 16:28
Coke every parrot invocation has to pay the penalty for the bootstrapping there. we want to make it as smaller as possible, yah? 16:29
(not sure if there is a /way/ to generate optimized PBC from the command line versus the config time, but if so, we should use it.)
whiteknight I don't have my measurements handy, but parrot/frontend2 is already about 30% faster than the old version 16:30
so yes, we can probably optimize further, but it hasn't been an issue yet
dalek rrot/coke/rm_pasm: e00fb8a | coke++ | MANIFEST:
fix MANIFEST
16:31
rrot/coke/rm_pasm: 6046747 | coke++ | frontend/parrot/main.c:
remove -a/--pasm from miniparrot
rrot/coke/rm_pasm: 2954559 | coke++ | frontend/parrot2/ (3 files):
Remove -a --pasm from main parrot executable

  (NOW tests break: \\o/)
whiteknight The bootstrapping really doesn't add as much overhead as you might thing. The generated PIR is pretty decent
Coke also: if we /have/ a way to do that, by putting it in core usage, we ensure it's heavily tested. 16:32
*more heavily, anyway.
whiteknight have a way to do what, strip/optimize the pbc?
Coke yes, that. 16:33
not necessarily strip, I suppose, depending on debugging needs. (rakudo is doing something similar with their CORE setting, which is written in perl6) 16:34
the more we write in higher level langauges, the more important this would be.
nine Good evening, #parrot 16:35
whiteknight hello nine
Coke: Like I said, it hasn't really been a pain point yet. If it is a problem, we can definitely devote a few tuits towards optimization
nine whiteknight: threads and chameneos_performance are equal right now
Coke just noting it as a todo. 16:36
whiteknight Coke: Create a ticket or a page on the wiki or something with notes, so we don't lose them
nine: Okay, I wanted to do a little testing/playing last night, but I wasn't sure where to start and then my kid was crying 16:37
16:37 jashwanth joined, Timbus joined 16:40 Justin joined
Coke whiteknight: done 16:40
Justin good afternoon
Coke (wiki)
whiteknight Coke++
Does winxed get invoked during the actual build? I think you have to explicitly make that file 16:41
I'd be much more include towards improving the winxed code or improving the winxed optimizers/code-generators than hand-editing any PIR 16:43
much more inclined *
Coke whiteknight: it's invoked during the bootstrap. 16:45
whiteknight hmm, I thought we checked in that generated .pir file 16:46
I'd have to take a look at it all again, my memory is clearly very fuzzy
Coke whiteknight: yes.
hence "bootstrap" 16:47
dalek p/dyncall-wb: e99865a | (Arne SkjƦrholt)++ | src/ops/nqp_dyncall.ops:
No need to write barrier non-concrete objects.
Coke you don't need winxed to build parrot. You need winxed to change how parrot is built.
Coke heads out for some lunch
benabik finishes off his GSoC TODO list. 16:48
Does dalek still announce posts on parrot.org ?
whiteknight I don't know 16:52
I don't think I saw him do it yesterday
nine whiteknight: I'm much, much closer now to my random failures. Seems like there's a problem with setting a PMC which is allocated on a child thread as data for a task which is scheduled on the main thread. 17:05
whiteknight okay, that's good 17:06
nine Oh and while at it I finally found my memory leak :) 17:17
whiteknight memory leak?
nine moretasks.pir grew to 3 GB of memory within a minute. The reason is simple: the scheduler maintains a list of active tasks which are scheduled on other threads so it does not exit with tasks still running. I pruned the list on the main thread but did not do so on the child threads. 17:19
Another good reason for reducing differences between main and child threads. 17:21
whiteknight yes, a very good reason indeed 17:23
I frequently feel like we should have a total_size vtable on PMCs to return an [approximate] total size of memory allocated for that PMC and children 17:24
that would aide in debugging memory errors a huge amount
nine oh yeah
whiteknight plus it would aide in all sorts of caching tasks 17:25
nine Btw. the write barrier on shared PMCs thing which took me weeks to uncover was actually not even neccessary. It's just that the shift VTABLE call is used to iterate over namespaces. But shift on namespaces does not even write, so the write barrier is not needed at all. 17:29
Which is good: because writes to shared PMCs should simply not exist. I accepted those being shared exactly because they are (packfile) constants. 17:30
whiteknight ok
and vtable shift on namespaces does not write? Thats....terrible 17:31
nine It's misused as an iterator. Comment says so.
whiteknight hatehatehatehatehate
benabik OTOH, asking NSes to shift is probably not what you meant.
There should probably be a NameSpaceIterator
whiteknight we should probably delete namespaces 17:32
benabik And replace them with...?
aloha (parrot/parrot) Issues opened : 759 (sprintf error should be more awesome) by Benabik : github.com/parrot/parrot/issues/759
whiteknight the void
benabik is totally in favor of killing things we have reasonable replacements for.
17:35 alvis joined
atrodo I consider "the void" a reasonable replacement in some situations 17:37
17:37 lucian joined
benabik Oh. I noticed a subtle difference in my Winxed PCT code... The 'unload' functions aren't anonymous anymore. 17:38
Hm. Perhaps just [anon] works. D'oh. 17:39
alvis NotFound++ # for 'pirado.winxed' and his example use of continuations. 17:40
benabik NotFound++ # Including the obvious solutions in Winxed, even when I don't think of them 17:41
tadzik where is that?
alvis tadzik: are you asking about 'pirado.winxed'? 17:42
tadzik yes 17:43
benabik github.com/NotFound/winxed/blob/ma...ado.winxed
alvis yep
cotto ~~ 17:49
benabik: interesting question wrt how pact should look 17:50
I guess that a starting point would be to figure out what all it needs to support. There are all kinds of reasons why PIR is wacky, but the pact assembly should support most of the features even if the expression is differnt. 17:51
benabik Well, PACT assembly will deliberately be much simpler (at least to start) 17:52
moritz one thing we would like to do better is string constants without the need to escape them :-) 17:53
benabik But it would also have different things like explicit constant segments.
cotto if it'll be mostly generated, we can simplify a lot 17:54
moritz is there any reason to have literals outside of a constant segment?
I mean, our strings are notionally imutable anyway
benabik There will probably have to be some escaping, especially if the string constants aren't in the same encoding as the main file.
moritz: The only reason for literals outside a distinct constant segment is convenience. 17:55
cotto moritz: for a human-written language convenience is a good reason. For generated code, probably not.
yeah, that
moritz that's what I meant
NotFound ~~ 17:57
benabik I'm imagining there will be some nods to convenience, but all optional and default to off.
cotto just the kind of thing that makes testing easier?
NotFound Note that most programs in winxed examples/ are old, they are not a very good example on how to use the more recent features. 17:58
benabik Basically yes.
cotto NotFound: do you have the tuits to update them? 17:59
that and the test suite are where I go when I want to figure out how to do something
alvis NotFound: is there another source of winxed example code? (Other than whiteknight's docs of course.)
NotFound Yes, the test suite need improvement,
alvis: I think Rosella sources are good examples. 18:00
alvis NotFound: Yes, sorry. I forgot to add that in as well.
dalek rrot/pct_winxed: e782900 | benabik++ | / (6 files):
PCT: Convert PAST.Compiler.onload to Winxed

Rather than converting the entire compiler in one shot, make the main PIR file include a PIR file generated from winxed. That way we can convert one function at a time. This one just changes onload.
18:02
rrot/pct_winxed: f4c4bcc | benabik++ | compilers/pct/src/P (5 files):
PCT: Make onload functions anonymous again

This got left off of the conversion simply because I didn't try the
  anon modifier. It works, it's simple, and it's useful.
Coke notes that the only time he touches parrot internals is to rip stuff out.
benabik Parrot has a lot of cruft.
18:02 Timbus joined
benabik You can chart Rakudo's development through the strata of abandoned code left behind in Parrot. 18:03
cotto Coke: we have yet to reach the point where that's a bad thing. 18:04
NotFound I someone write a tool that allowed to delete dead code with a user interfaces like a game of killing zombies, all will disappear in less than a week. 18:05
s/I/If
cotto interesting implementation of -Ofire
alvis Should we consider expanding our 'examples/' to include winxed (and maybe nqp) code examples? 18:07
benabik cotto: Mostly my question is do we want the new assembly to look like the old, or just make a clean break? Obviously things will be different, but should we keep the general syntax like `.sub`, `$P0`, etc? 18:11
Coke if parrot doesn't own it, I wouldn't bother unless it's showcasing something about interacting with parrot guts.
(to avlis)
cotto benabik: if we expect to port a lot of PIR then maintaining similarity will reduce pain.
Coke *alvis
cotto Otherwise, I'm not picky
Coke cotto: we
cotto: on the other hand, if we have to port at all, let's not be constrained unduly by past mistkes. 18:12
*mistakes
cotto Coke: yes. That's much of the point of pact.
benabik has been pondering a mostly-bug-compatable port of IMCC onto PACT.
dalek rrot/coke/rm_pasm: a827975 | coke++ | config/gen/makefiles/root.in:
Allow "make test" to get past this PASM dep.
18:14
benabik I keep putting ; at the end of my PIR lines because I'm switching back and forth. 18:15
Coke there we go, now that branch can run "make test" and explode all sorts of things. 18:16
alvis Coke: Hmm, ok then. Well, what about some doc pointers somewhere? It can be a real challenge for someone new to parrot to find out where to go for good examples, let alone which examples are correct or current? 18:17
Coke alvis: winxed: See NotFound and whiteknight 18:18
alvis: nqp: see github.com/perl6/nqp 18:19
alvis Coke: Right, *I* know that, but someone new to parrot doesn't.
Coke ... I assume you're asking that so you can write it down somewhere.
whiteknight alvis: The most complete docs that exist so far are here: whiteknight.github.com/Rosella/winxed/
alvis Coke: Yep
whiteknight They probably need some updating, but they aren't bad
NotFound And in winxed.org/ there is a FAQ than no one reads ;) 18:20
benabik parrot.github.com should probably include a link to winxed.org 18:21
And maybe github.com/perl6/nqp-rx
Coke whoops. wrong nqp I pointed you at, even. 18:22
alvis Hmm, I'm not getting my point across very well. Someone new to parrot doesn't know about those. It can take a month or two just to figure out where to turn. Our docs are very crufty; we don't include example code, except PIR; and we have very poor references to all of the above. 18:23
whiteknight yes, yes, yes and yes
so what do you propose we do to fix it?
benabik Include links to main pages for included languages in our own documentation. 18:24
alvis benabik: yes. (something other than the one link on one html page.)
whiteknight: I'd also like to include some winxed example code in 'examples/'. 18:25
whiteknight oka,y good idea
alvis whiteknight: And, while I'm at it, I'd like to include a link to benabik's cish and coolname's babysteps.
benabik babysteps? 18:26
whiteknight okay then
alvis benabik: It's just a rather simple, but useful tutorial on PIR.
whiteknight: great! thanks.
Coke I don't think we should include winxed example code
I think we should point to winxed. 18:27
cotto I'm leaning toward that too.
Coke it's developed outside out of parrot - that's where the docs live.
cotto exactly
Suggestions on how to make the examples easier to find are great. 18:28
alvis ok, no winxed example code in the repo.
Coke that said, we can import any parts of winxed into ext/ we like.
cotto alvis: put on your newbie shoes. How would you try to find winxed documentation or examples?
alvis I'd google parrot and hope for the best and then start clicking on links. I say that because that's what I did. 18:29
cotto: you get taken to a lot of bad links, bad docs (or outdated docs) and misleading information. 18:30
Coke alvis: www.google.com/search?sourceid=chr...umentation
NotFound Well, examples on how to use parrot features can be written in winxed for clarity and brevity.
Coke first link is winxed.org/
cotto NotFound: could you link to examples from winxed.org more prominently? 18:31
alvis cotto: I had to ask here, in #parrot, just to know which language to work with: PIR, nqp-rx, nqp, winxed. I didn't even know (and think a'lot of folks don't) the difference between nqp, nqp-rx, parrot-nqp.
cotto putting them on the site with nice syntax highlighting would be ideal, but that probably violates laziness
alvis: quite 18:32
Coke alvis: Yup. no one is arguing with you.
NotFound I'm not a big fan of syntax highlighting.
Coke especially if there's no clearly defined syntax. 18:33
alvis Coke: Yes, if you *know* about winxed. If your just trying to develop an HLL and want to know the language to use, it's ... something of an ordeal. It's, imho, an unnecessary barrier.
NotFound alvis: in order to know the differences between nqp flavours you should study the Holy Trinity in a school of theology during 20 years. 18:34
alvis NotFound: LOL! You're soo right!
Coke alvis: yes. no one is arguing with you.
winxed is just one more layer on the 10 year cake here.
alvis Coke: :) 18:35
Coke the problem as I see is it parrot as a group wants to say "you can do whatever you want", instead of saying here is one really good way to do it"
* "here is 18:36
alvis Coke: And I don't disagree with that sentiment. In fact, I embrace it; I'm a fan and supporter, but ... there are facets of parrot that can be ... well, ... frustrating. 18:39
NotFound We can ask Status Quo permission to make "Whatever you want" our hymn.
Coke alvis: welcome to the club.
alvis gotta go. baby's up and fussing and mom's away.
Coke NotFound: I don't know what you mean.
alvis afk
Coke alvis: take care.
NotFound Coke: www.youtube.com/watch?v=5QNJXAHayTc 18:40
benabik WTH? I have `${ .lex '@*BLOCKPAST', blockpast }` in winxed and `blockpast = find_dynamic_lex '@*BLOCKPAST'` in PIR. and it's failling. :-(
Coke NotFound: ah, nifty. 18:41
PerlJam Coke: I don't think Parrot has been able to say "here's one really good way to do it". Mostly it's more like "well ... here's what we've got so far" 18:42
Coke PerlJam: more like "here's the 3 ways we've got so far."
PerlJam sure.
Coke let's at least cull the herd. 18:43
(which is what I'm doing with PASM at the moment.)
PerlJam once PCT is fully winxed, I think it'll be a no-brainer to come up with the one really good way to do it. :-) 18:44
benabik Oh.
Dynamic lexicals + tailcall = bad idea. 18:45
whiteknight Culling the herd is not a bad idea. We can do that by killing nqp-rx and migrating whole-hog to NQP proper 18:46
PerlJam btw, has anyone considered when Parrot's "birthday" is?
Coke wonders if anyone will volunteer to bring lua away from TGE/PGE
whiteknight and then jettisoning PIR, and switching most systems-related tasks to Winxed
that leaves us with two low-level systems-related languages: NQP and winxed, each with slightly different purposes 18:47
Coke whiteknight: why do we need both nqp* and winxed?
rakudo doesn't need nqp bundled into parrot.
(even the newer one.)
benabik Parrot needs nqp for ops2c.
nqp-rx, rather
whiteknight Rakudo doesn't need it, no. but we probably want it
Coke I'm sure someone can rewrite that into winxed. 18:48
whiteknight NQP is a great thing, and we want to make sure other compiler writers can use it seamlessly
Coke: so you're suggesting we don't move to the new NQP?
benabik Coke: Sure, if we can separate out the grammar engine from nqp-rx.
Coke whiteknight: so embrace the downstream project rather than bundle?
whiteknight Coke: I guess I don't understand what you're asking for
Coke whiteknight: every time we have to support more than one thing, we're splitting resources that are already so tight you have to manage two students for GSOC this year. 18:49
"let's do less stuff so we can do the stuff we do better"
NotFound I'd like to just decrease the number of live nqp variants.
whiteknight That's a fine goal, but there really isn't any duplication in terms of GSOC projects this year. Plus, the reason I'm mentoring two projects isn't because we have too few mentors, it's that mentor interests don't align well with student proposals 18:50
Coke whiteknight: ... you have an odd definition of "too few", then. ;)
whiteknight I'm willing to do it because activity levels have been relatively low, and we can't afford to give up any offers for help
Coke NotFound: I would also like to do that, but if I can convince folks to just not use nqp inside parrot (i tried convincing them not to use winxed, but that didn't work. ;), then we don't have to even do that. 18:51
whiteknight: you keep agreeing with me.
we don't have enough developers to do things multiple ways.
whiteknight Coke: so you're lobbying to have only a single mid-level language bundled in core? 18:52
PerlJam Coke: qualified agreement. he keeps saying "but" too :)
Coke whiteknight: Yes. I think that's a reasonable thing. I would have preferred an NQP variant, but at this point don't particularly care which one it is. 18:53
whiteknight NQP-rx needs to go one way or the other. It's old and unsupported
Coke (nqp, winxed... Modula-3)
benabik NQP-rx is _not_ a system language.
whiteknight NQP is fine, but it's developed by the perl6 people for the perl6 project right now, I prefer to not saddle it with a second master
Coke benabik: define "system language"
whiteknight winxed is the only language that's really developed for no reason besides to expose parrot functionality 18:54
benabik Coke: Close to machine. Efficent enough to use for core libraries.
NQP has too many additional dependencies to be in core, IMNSHO. That may change over time, but at the moment, it's only diverging.
PerlJam Coke++ 18:55
Coke nqp-rx or nqp-latest?
benabik -latest
whiteknight I would like to see new NQP bundled with Parrot releases because it's so useful and interesting, but that's not our decision to make right now
benabik whiteknight: I would only like to see that if we can make it so NQP isn't a separate ecosystem from the rest of parrot. It starts with 6model, but it also contains re-implementations of PCT, FFI, and bigints. 18:56
PerlJam That strikes me as unlikely. 18:57
Coke PerlJam: what does? 18:58
PerlJam that NQP is made such that it isn't separate from parrot.
benabik It will be far less separate if we incorporate 6model into core. 18:59
PerlJam benabik: maybe.
you will have removed some technical barriers, but those aren't the hard ones to overcome.
benabik I'm mostly concerned with the technical ones. 19:00
cotto they're necessary but not sufficient
PerlJam indeed.
Coke right. nqp handles a lot of the impedence mismatch between how parrot thinks things are and how rakudo needs them to be.
I am worried, as ever, that there was EVER any impedence mismatch there, but I have no idea how to fix that. 19:01
benabik Once it's possible to interact nicely between Parrot and NQP, my objections fade. But it's full of sharp corners right now.
Coke benabik: ah, that's easy: make parrot change. ;)
benabik Coke: I think it should
If we adopt 6model and dyncall (which I think we should do), it's more reasonable to point to NQP as a 'core' language. 19:02
Coke ok. so a different cleanup project is "eliminate use of parrot-nqp in parrot" as a prelude to removing it.
benabik If they keep developing QAST and I keep building PACT, we can eject PCT in favor of QAST.
(and PACT, obviously) 19:03
whiteknight the real problem is that there is an impedance mismatch between Rakudo and Parrot, and there shouldn't be 19:04
Parrot should be the VM for Rakudo, and every supporting feature Rakudo needs should be in Parrot 19:05
The fact that those features were implemented elsewhere is a tragedy, and we would do very well to try and reverse that trend
benabik whiteknight++
whiteknight I suggested ripping out our GMP-based biginteger crap years ago, and people disagreed. Now it turns out that GMP isn't what our biggest user wants or needs, and here we are stuck with it 19:06
We've got it, nobody uses it, Rakudo has something better, and they implemented the replacement outside our repo
The argument can be made that Rakudo's NCI system isn't really "better" than libffi though it certainly works better on windows. In either case, our system is pluggable and the implementation should have been done here 19:07
NotFound whiteknight: If the nqp guys decided to make it virtual machine agnostic, we can't revert that. 19:08
Coke whiteknight: if anyone is using parrot (which I certainly don't get, based on mailing list usage or chat here), then we could worry about ripping that stuff out. I don't see the downside.
whiteknight and now it's going to be a big headache and a lot of manpower to move it to Parrot core, where it really belongs
Coke nqp is going to eventually be agnostic, sure.
6model was originally written on nqp-clr and ported to nqp-parrot.
benabik NQP the language is heading towards agnostic. NQP the implementation is parrot specific.
whiteknight The drive to make nqp agnostic is one that started years ago, because Parrot had that impedance mismatch. That should never happened, but it's years in the past at this point 19:09
Coke and there is a (very low priority) task to eliminate usage of pir: opcodes in rakudo, nqp
whiteknight All we can do is try to reverse some of the damage and keep more damage from happening in the future
If NQP wants to become agnostic, that's really fine. But I do know that Parrot needs more good NCI options, I know it needs better big-int/num support, and I know it needs a better object model 19:10
and I know NQP contains all those things, and we should get them
And when we have everything that Rakudo needs, and when there is no mismatch, maybe they will choose to get closer to Parrot again. Maybe they won't. That's their prerogative. 19:11
benabik In the mean time, we get more flexible tools, so it's not any kind of loss. 19:12
PerlJam so ... what's parrot's mission then? I'm a little confused I think.
whiteknight exactly. All these features already exist and have been implemented for Parrot. They've just been implemented in the wrong repo
PerlJam: Parrot wants to be a great VM for dynamic languages.
especially, Perl6
there's no change in terms of our goal or mission 19:13
PerlJam ok.
Coke I think the "especially Perl 6" was not evident for a while.
PerlJam Then winxed *and* NQP or just winxed?
(as parrot "core" languages) 19:14
whiteknight Coke: It was actively non-evident for a while. People made the mistake of trying to hide that relationship, and we're still paying the price for it
benabik From my point of view, the problem isn't that Rakudo has their own tools... It's that they were made because what we have isn't good enough. And the improvements weren't made in Parrot.
Coke I would say short term, just winxed.
whiteknight There was a time when "Rakudo people" and "Parrot people" worked together and were all "we"
PerlJam Coke: at least you and I agree then :)
Coke benabik: as an HLL developer, it is hard to get parrot to move in the direction you want.
whiteknight Coke: In previous years, I think that was a leadership issue. Currently, I think it's a tuit issue 19:15
tadzik If I can put my 3 €cents, I think by the time that Parrot gets all that NQP does into Parrot core, it may be already too late to become the best platform for Rakudo. Maybe the best way for now will be to try to be the best possible platform for NQP, as it is
whiteknight obviously we can't stop all our other work just to start shuffling existing code around 19:16
except 6model, which has the potential to decrease a lot of pain in a lot of places
PerlJam and then what? IF Rakudo is alienated enough to not be "close" to parrot any more, who is going to use Parrot? 19:17
(perhaps I'm just a little pessimistic today) 19:18
whiteknight PerlJam: Ideally, Rakudo shouldn't feel alienated any more. I know old wounds take time to heal
PerlJam whiteknight: well ... what would it take to woo Rakudo back I wonder? (I think if parrot got really fast and had a JIT that would be some help) 19:19
whiteknight I think we're about a year away from JIT at this point, if our current M0-based roadmap stays the plan 19:20
We can attack from two angles: One by improving the performance and integration of existing features (6model) and adding new features (threads)
PerlJam basically I'm assuming that no matter what technical innovations happen in parrot-land, rakudo has no incentive to "get closer" because it's already got tools that work.
whiteknight Yes, like I said, the damage is done 19:21
there's no sense crying over spilled milk. All we can do is write the "whatever you need" blank check for Rakudo, and hope they cash it
If they do, good. If not, we'll be a better platform for other compilers for our efforts 19:22
nine AFAICS the only other VM Rakudo has some support for is the CLR. Just wonder what would happen if Rakudo switched wholesale to that. I somehow can't see so many Perl hackers jump onto that Microsoft technology train. 19:23
PerlJam okay ... so who's the other non-rakudo customer(s) for parrot?
whiteknight yeah, that's the big problem, I think. Moving onto any other VM platform has certain....issues that Parrot doesn't have
PerlJam: None, right now.
PerlJam: Several compiler projects started back when Parrot was still too mature to support them, and their developers burned out and left. 19:24
benabik Experimenters. Me, prologic, others.
We do get a small but steady stream of people going "hey, this Parrot thing looks useful for $language". If we keep improving, more of them will stay. 19:25
whiteknight After 6model lands, that's the last major technological hurdle between us and languages like JavaScript, Python and Ruby. Those projects will be able to make progress again, if anybody wants to do it
I keep saying, a killer feature for Parrot will be demonstrating things like Rakudo, JavaScript and Python working together in the same process in the same VM. That will make people stop and take notice
and that requires 6model
And then if we show things like a Python or Ruby interpreter with full threading, or a PHP compiler with built-in unicode support, or any other feature that we have that other language implementations don't, that will help even more 19:26
benabik There was someone at the UofR who wanted to use Parrot as the basis for parallelism in dynamic language research. When I meet him again, I'm going to point him at nine's work. 19:27
whiteknight When the last few bugs get worked out of the threads stuff, I want to merge it to core without delay, and dedicate a shrine in nine's honor for the effort 19:28
Coke still too *immature, you mean?
PerlJam I guess what I'm getting at is that it has been ackowledged that not recognizing Rakudo as Parrot's main customer has caused the current situtation and given that Rakudo may or may not have a continued relationship with Parrot, Parrot should figure out who the second best customer is and cater to their needs so that history doesn't repeat itself 19:29
(at least that's what's in my head)
benabik PerlJam: The win-win part of this is that adopting Rakudo's tools makes us better for all comers. 19:30
PerlJam benabik: indeed.
I used to think that the killer languages for Parrot would be javascript and PHP. Now, I'm not so sure. 19:32
benabik IMO, our "2nd customer" is "new language developers". Which makes good documentation the next priority. 19:33
PerlJam benabik: if you're going to target "all languages" like that (in effect), then you also need to add tools that make it drop-dead simple to get started. 19:34
NotFound Also, we need to improve plumage or some like that. There wasn't someone working on it? 19:35
whiteknight PerlJam: JavaScript is definitely high up on my priorities list. I started a JS compiler, but can't do too much until we have some improvements in terms of 6model and PACT 19:36
benabik I think someone saying "I'm interested in implementing a language" is willing to deal with some setup cost, but will definitely need help getting through our current learning curve.
whiteknight 6model is the big enabler. From the user perspective, PACT is going to be an invaluable tool for "drop-dead simple" getting started
benabik One of the side effect goals of my GSoC project is "an example language using nqp-rx for grammar and Winxed for everything else"
whiteknight If I work on JavaScript now, I'm going to need to write a code generator, which will be ugly. But if I have PACT around I can generate the proper AST and get everything else for free. 19:38
ideally
if we have 6model, threads and a good chunk of PACT by the end of this summer, I think we're in good shape 19:40
PerlJam One of the original "promises" of parrot that interested me was the idea of interoperability between languages. If there were multiple languages that targetted parrot, where would parrot be installed such that interop would be such a big win? Embedded systems? a browser? your favorite editor?
NotFound Apache
whiteknight if we have Mod_Parrot up and running by the end of the summer too, even better
Mod_Parrot with full security settings, threading, and example handlers for Rakudo and JavaScript 19:41
PerlJam then just do whatever trick enabled mod_php to become so ubiquitous but for mod_parrot :) 19:42
whiteknight And examples of JavaScript code calling Rakudo libraries and vice-versa from a web request
PerlJam whiteknight: I agree with your end-of-summer forecast. I'm trying to get a better handle on "good shape for what exactly?" :) 19:44
whiteknight good shape in general 19:46
If we can have 6model and enough of PACT by then, I will personally deliver a JS compiler by christmas
(sooner if other people want to help)
NotFound BTW I think that the language interoperability problem these days is even worse than when parrot came to life, with several incarnations of popular languages like python. 19:47
whiteknight and if we can revive interest in Python and/or Ruby again at that point, we'll be golden
PerlJam (Now I *know* I'm being pessimistic today. The first thing I though after whiteknight's "sooner" comment was "better watch out for Brook's Law")
whiteknight PerlJam: we just won't add the new people in late November 19:48
NotFound: yes, When python can't even interoperate with itself, you *know* there's a market for something like Parrot
We just aren't marketable yet 19:49
NotFound Maybe there is only one language where all people follows only One True Version: winxed ;) 19:51
whiteknight Too bad that one true vision doesn't include a fancy lambda syntax :) 19:56
NotFound Fancyness is in the eye of the beholder. 19:59
PerlJam NotFound: a less-typing-required lambda syntax? :) 20:01
NotFound BTW I've recently seen an accepted proposal for javascript on that, and I find it ugly. 20:02
PerlJam regarding winxed ... 20:03
<@Nicholas> it has the downside that the implementation is (as I understand it) very tied to PIR
true?
NotFound Uh? Given that it generates PIR, of course is tied to it. 20:04
benabik Saying that "tied to PIR" is a downside for a Parrot language is wrong on the face of it. PIR is the only real way to generate bytecode at the moment. 20:05
NotFound Well, you can try winxedxx, but it's just an experiment.
benabik (Yes you can muck around with the Packfile* classes, but it's more than a little unfriendly.) 20:06
NotFound Unfiendliness is not the problem, lack of stabiliy is.
PerlJam NotFound: well, I was asking more if you think that's a "downside" :)
whiteknight those PMCs are pretty stable. they haven't changed in months 20:07
PerlJam: No, it's not a downside. Winxed is a low-level systems language for Parrot
it should be tied to Parrot
PerlJam a follow-up comment was ...
<@Nicholas> so that it isn't going to cope well with the Parrot plan to transition to a new assembly language, M0
NotFound PerlJam: that depends. For people wanting to write programs that can run on bare metal, JVM and CLI from the same source, it is. 20:08
PerlJam (from #p5p btw)
benabik NotFound: `if(!str) {}` seems to not work.
M0 is currently planned to be an implementation detail, not a replacement for PIR. 20:09
whiteknight PerlJam: Winxed is developed by Parrot hackers, and is kept up to date with Parrot. Winxed will transition as Parrot transitions to M0
benabik If anything, PACT is the probable replacement for PIR. :-D
whiteknight Yes, PACT and Winxed will be the abstraction layer that will help users avoid the hassles of the M0 transition 20:10
NotFound PerlJam: not a problem. Winxed generates PIR just because is (IMO) the better way right now. If that changes, winxed code generator will change.
whiteknight If you use winxed instead of PIR, you will have far fewer headaches when M0 lands
although ideally, M0 won't cause that big a splash. If we've designed it well and rolled it out carefully
NotFound Just like C compilers generates assembly instead of machine code when they find that way appropiate. 20:11
benabik: str : a string ? 20:13
benabik NotFound: Yes.
NotFound: string str; if (str) {} if(!str) {}
First if works, second fails to compiler PIR. 20:14
PerlJam ah, the comments on #p5p stem from some tweets by chromatic
benabik (no isfalse_i_s)
20:17 PacoAir_ joined
NotFound benabik: yes, operator ! fails with string operand. Working on it. 20:23
benabik NotFound: For reference, I'm converting a bit of PIR that reads `unless str goto err`. The existing PIR just seems to hand it off to if/unless. 20:24
NotFound benabik: yes, the problem is generic but maybe an special case optimization for if will be convenient. 20:25
benabik wonders what the if/unless macros are actually doing... To the disasm.winxed! 20:26
whiteknight heh, it's a handy tool to have laying around 20:28
benabik Ah. There are just if/unless opcodes. 20:29
If we have if/unless with strings, why not istrue/isfalse? 20:34
Although that does raise the question: What is false for a string?
null, '', and '0', apparently. 20:35
NotFound benabik: what is not true. 20:37
benabik NotFound: String false is any of {null, '', '0'}, true is everything else. 20:38
(Note only the ascii character 0 works.)
dalek p/toqast: 53d95cc | masak++ | t/qast/qast.t:
[t/qast/qast.t] added a test for a unary op
20:51
benabik You know what's useful? Not declaring a variable the same name as a parameter. 21:04
BTW, that's not an error in Winxed.
NotFound benabik: is not. The scope of the function is not the same as the one of its main block. 21:06
benabik Interesting.
Hm. `if(str)` in Winxed isn't the same as `if str` in PIR. 21:10
dalek kudo/setenv: 7845b8d | tadzik++ | src/core/terms.pm:
Implement setting env variables by modifying %*ENV
21:11
NotFound benabik: yes, don't remember right now if it's an accident or a remaining from past problems. 21:13
nine msg whiteknight I now got a minimal program reproducing the bug: gist.github.com/2503294 Can't find anything I could remove anymore. Not even the .local pmc dummy2. It now most often segfaults when allocating the registers for that sub. Maybe that's a hint, maybe it's just coincidence. 21:15
aloha OK. I'll deliver the message. 21:16
nine If anyone else can help me find why current threads branch fails randomly with gist.github.com/2503294 you're very welcome!
21:18 PacoAir joined
dalek kudo/setenv: 616b622 | tadzik++ | src/core/terms.pm:
Fix a braino. benabik++ for noticing
21:22
benabik goes back and checks usages of strings in ifs. 21:24
dalek nxed: 29aab83 | NotFound++ | winxedst2.winxed:
several fixes and optimizations in conditions and operator ! following a report by benabik++
NotFound benabik: I think this fixes all, and improves generated code too. 21:25
benabik NotFound: Sorry for all the extra work. :-D 21:26
NotFound nine: if you add a return to the sub it fails the same way? 21:28
21:39 brambles joined
NotFound PerlJam: There is a log of that channel somewhere? 21:44
benabik Google does not reveal a #p5p irc log to me. 21:45
NotFound Someone has an iphone to ask Siri? X-) 21:49
I've been amazed by an article about "Ultra Intelligent Electronic Agents " mentioned in slashdot :D 21:52
The article title is: "Is Siri Smarter than Google?" Remembers me the saying: "If the title is a question, the answer is No" 21:53
tadzik :D
benabik Given that Siri's default answer is "I could google that for you"... 21:54
NotFound Well, that's the way some people use the chat. 21:56
But in irc the Maybe Not So Ultra Agents can be rude. 21:57
benabik is testing the last bit of conversion for the night. 22:09
dalek rrot/pct_winxed: b23a097 | benabik++ | compilers/pct/src/PAST/Compiler. (2 files):
PCT: PAST.Compiler.to_post in Winxed
22:17
benabik Sorry for spam...
rrot/pct_winxed: 0dd4cbb | benabik++ | compilers/pct/src/PAST/Compiler. (2 files):
PCT: PAST.Compiler.escape in Winxed
rrot/pct_winxed: a6000ae | benabik++ | compilers/pct/src/PAST/Compiler. (2 files):
PCT: PAST.Compiler.unique in Winxed
rrot/pct_winxed: 7fa3e9b | benabik++ | ext/winxed/compiler.pir:
Update Winxed snapshot to 29aab83

This makes using strings in if statements much easier, among other improvements.
rrot/pct_winxed: 77371b2 | benabik++ | compilers/pct/src/PAST/Compiler. (2 files):
PCT: PAST.Compiler.uniquereq in Winxed
rrot/pct_winxed: 79d5fe3 | benabik++ | compilers/pct/src/PAST/Compiler. (2 files):
PCT: PAST.Compiler.tempreg and tempreg_frame in Winxed
benabik Ah, garnering karma by working in small chunks...
(Actually doing it so I can bisect easier if something starts exploding later.)
cotto don't defend sanity. That's how you should be working. 22:19
NotFound At least one time I commited a one character change. 22:20
cotto The ideal is an infinitely long series of 0-character changesets. 22:21
NotFound Until the turtle beat Achiles
benabik Maybe next I'll go back and use the lexical modifier instead of all the manual .lexes. 22:22
Anyway, it's time for me to go home.
dalek nxed: b36caef | NotFound++ | winxedst (2 files):
clean a bit usages of genlabel and createlabel
22:48
22:51 davidfetter joined
dalek nxed: 13a738f | NotFound++ | winxedst2.winxed:
fix error report when using an undefined label in a pirop
23:01
23:05 whiteknight joined
whiteknight good evening, #parrot 23:06
Coke guten abend.
whiteknight hello Coke 23:17
msg nine if removing dummy text from the PIR input changes things, that suggests a memory corruption problem. Something tied to memory layout. We probably need to run it through valgrind 23:18
aloha OK. I'll deliver the message.
whiteknight Is there anybody around who knows about NQP's regex engine? 23:23
23:48 benabik joined
benabik ~~ 23:56
whiteknight hello benabik 23:58
benabik 'lo whiteknight, how's things?
whiteknight things would be better if I could get NQP passing tests on Parrot's eval_pmc branch 23:59