Camelia, the Perl 6 bug

IRC log for #parrot, 2009-06-26

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 cotto we'll see
00:11 dalek parrot: r39786 | cotto++ | branches/pmc_pct/compilers/pmcc/src (2 files):
00:11 dalek parrot: [pmcc] Stow the vtable dump in the past during parsing.  This isn't ideal, but the info is needed to detect some kinds of errors during past construction.
00:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39786/
00:15 Whiteknight cotto: 10 hours in the airport?
00:15 bacek joined #parrot
00:15 bacek hi again
00:15 purl oh, you're back!
00:16 cotto there's also an adjacent hotel where I may hang out until they ask me to leave
00:16 cotto bacek, your commute seems to have shortened.
00:18 dalek parrot: r39787 | whiteknight++ | branches/io_cleanups/src/io/socket_api.c:
00:18 dalek parrot: [io_cleanups] when PARROT_NETWORKING_SUPPORT == 0, we throw exceptions for all the socket API functions. Don't have a way currently to determine whether this is available from PIR except to catch the exceptions and examine them. Will look for a way to do that soon
00:18 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39787/
00:19 cotto <3 wireless
00:19 bacek cotto: I moved close to work
00:22 cotto really?
00:26 cotto good for you
00:28 bacek It depends...
00:31 Whiteknight cotto: you buttocks parrot?
00:31 Whiteknight :)
00:32 Austin :)
00:32 Austin Everyone <3 parrot
00:32 cotto only when nobody's watching
00:34 Whiteknight allison: ping
00:35 dalek decnum-dynpmcs: r90 | darbelo++ | trunk/src/pmc/decnumcontext.pmc:
00:35 dalek decnum-dynpmcs: Add a METHOD for restoring the context to default values, and one to clear the
00:35 dalek decnum-dynpmcs: status field.
00:35 purl Since Sat May  9 07:45:02 2009, there have been 10995 modifications and 6257 questions.  I have been awake for 47 days, 16 hours, 46 minutes, 18 seconds this session, and currently reference 779448 factoids. Addressing is in optional mode.
00:35 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=90
00:42 Austin joined #parrot
00:44 cotto < purl-- >
00:45 dalek parrot: r39788 | whiteknight++ | branches/io_cleanups (4 files):
00:45 dalek parrot: [io_cleanups] Add a NETWORKING_SUPPORT flag to the interpinfo opcode, so we can determine from PIR whether we have socket support built in or not. No tests yet
00:45 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39788/
00:46 cotto nice to see you back in action, darbelo
00:47 darbelo I actually commited that to take a break ;)
00:48 darbelo We seem to be mis-rounding on subtraction on some tests, and I have absolutely no idea why.
00:52 darbelo Anyway, I'll tackle that again after I get some food.
00:53 Austin ?3
00:53 Whiteknight actually, allison unping
00:54 Austin_Hastings joined #parrot
00:54 Whiteknight anybody here who knows the Parrot config process well?
00:55 Austin_Hastings Kid51 seems like the go-to guy
00:55 Austin_Hastings If he's here.
00:55 cotto Whiteknight, what about it?  I've briefly messed with it.
00:55 Whiteknight yeah, kid51 is the bomb-diggity
00:56 Whiteknight cotto: I want to add a flag to it that specifies whether we have networking support or not
00:56 Whiteknight I want configure to set the PARROT_NETWORKING_SUPPORT macro automatically
00:56 cotto I guess that an advantage of being a Perl guy is that you get to know the perl bits really well.
00:56 cotto something like
00:56 purl something like what, cotto?
00:56 Whiteknight soemthing like your momma purl
00:57 cotto perl Configure.pl --without-networking
00:57 Whiteknight cotto: exactly!
00:57 purl i guess exactly! is it not awesome?
00:57 Whiteknight damnit purl!
00:57 purl rumour has it damnit i am a bot
00:57 cotto < purl-- >
00:57 Whiteknight < purl-- >
00:57 cotto Whiteknight, lemme dig a bit.
00:57 Whiteknight cotto++
00:58 Whiteknight I'm like the robinhood of karma: I take from the bots and give to the poor
00:58 Whiteknight well, the poor developers
01:03 cotto in karma, everyone's poor compared to purl
01:03 cotto karma c
01:03 purl c has karma of 7782
01:03 cotto karma purl
01:03 purl purl has karma of 8616
01:03 cotto karma purl--
01:03 purl purl-- has neutral karma
01:03 cotto purl--++
01:03 cotto karma purl--
01:03 purl purl-- has neutral karma
01:04 Tene (purl--)++
01:04 Tene karma purl--
01:04 purl purl-- has karma of 1
01:05 Whiteknight now you're having too much fun with it
01:07 cotto wow.  Configure.pl and its supporting code are big.
01:10 cotto nice.  There's a non-trivial docs/configuration.pod
01:13 cotto Whiteknight, you'll have to talk to kid51.  I won't say that the configure system is a total mess, but it is complicated beyond my motivation to understand.
01:13 Whiteknight cotto: yeah, my feelings exactly. I'll ask him
01:13 cotto karma ()
01:13 purl () has karma of 1
01:13 cotto (())++
01:13 cotto karma ()
01:13 purl () has karma of 2
01:14 cotto (()(++
01:14 cotto karma (()(
01:14 purl (()( has neutral karma
01:14 cotto ((()()++
01:14 cotto karma (()(
01:14 purl (()( has karma of 1
01:15 cotto ()++
01:15 cotto karma ()
01:15 purl () has karma of 2
01:15 cotto ()++
01:15 cotto karma ()
01:15 purl () has karma of 2
01:15 cotto oh boy, null karma!
01:15 cotto rather empty string karma
01:17 Austin_Hastings Does ResizablePmcArray have a .join method?
01:18 cotto Austin_Hastings, not a C method, although nqp seems to add one.
01:18 Austin_Hastings works for me
01:18 Austin_Hastings thx
01:18 cotto nm.  It's not a method.
01:19 cotto it's a separate function.
01:19 Austin_Hastings bah
01:19 cotto join('!!!!', @foo);
01:21 Austin_Hastings Do you know if NQP supports heredocs?
01:21 dalek parrot: r39789 | whiteknight++ | branches/io_cleanups/src/io (2 files):
01:21 dalek parrot: [io_cleanups] fixup the filehandle API a little bit. use GETATTR/SETATTR for attributes which are currently overridable from PIR
01:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39789/
01:21 Whiteknight I have no idea about heredoc support, honestly
01:21 Whiteknight that's a pmichaud question
01:21 Austin_Hastings Well, the compiler seems to be saying no, but I'm never sure of the syntax with them. I'll just bag it.
01:25 cotto Austin_Hastings, I'm pretty sure it doesn't.  I remember trying to get them to work without success.
01:34 Austin_Hastings Anyone got unicode? U+224D
01:34 Austin_Hastings purl print "\U224D";
01:34 purl Austin_Hastings: excuse me?
01:35 Austin_Hastings Which one is the p6 bot?
01:35 Infinoid rakudo: say "me me me, victim here"
01:35 polyglotbot OUTPUT[me me me, victim here␤]
01:35 Austin_Hastings rakudo: say "\U224D"
01:35 polyglotbot OUTPUT[U224D␤]
01:36 Austin_Hastings Moo. No unicode for me.
01:36 kurahaupo rakudo say "\u224D";
01:36 Infinoid is backslash uppercase U meaningful?
01:36 kurahaupo rakudo: say "\u224D"
01:37 Infinoid rakudo: say 1
01:37 polyglotbot OUTPUT[1␤]
01:37 Austin_Hastings rakudo: say "\x[224d]";
01:37 polyglotbot OUTPUT[≍␤]
01:37 Austin_Hastings Well, it's a start.
01:37 dalek parrot: r39790 | whiteknight++ | branches/io_cleanups (4 files):
01:37 dalek parrot: [io_cleanups] move the functions from src/io/core.c into src/io/api.c, since they really were API functions. Separate Parrot_io_init into two separate functions because it was performing two completely separate actions at different times
01:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39790/
01:39 Austin joined #parrot
01:39 Austin_Hastings left #parrot
01:39 Austin rakudo: say "\x[224d]";
01:39 polyglotbot OUTPUT[≍␤]
01:39 Austin Still nothing. Rats.
01:41 Infinoid What'd you expect?
01:41 Austin The "\c{EQUIVALENT TO}" character.
01:42 Austin Which looks like an equal sign made from )(
01:43 Austin rakudo: say "\c[NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE]";
01:43 polyglotbot OUTPUT[no ICU lib loaded␤in Main (src/gen_setting.pm:3225)␤]
01:44 Austin So much for plan C.
01:44 Austin Or was it D?
01:44 Infinoid rakudo: say "whee, I support unicode!  see look: ¹²³"
01:44 polyglotbot OUTPUT[Malformed UTF-8 string␤␤current instr.: 'perl6;PCT;HLLCompiler;evalfiles' pc 304108 ((unknown file):-1)␤called from Sub 'perl6;PCT;HLLCompiler;evalfiles' pc 1292 (src/PCT/HLLCompiler.pir:704)␤called from Sub 'perl6;PCT;HLLCompiler;command_line' pc 1513 (src/PCT/HLLCompiler.pir:813)␤called
01:44 polyglotbot ..from Sub 'perl6;Perl6;Compiler;main' pc 274143 (sr...
01:44 dalek parrot: r39791 | whiteknight++ | branches/io_cleanups (4 files):
01:44 dalek parrot: [io_cleanups] remove src/io/core.c, which was empty after the last commit. WARNING: I monkeyed with the makefile, so you'll probably have to make realclean and reconfigure after this.
01:44 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39791/
01:44 Infinoid ok.  so the box it's built on doesn't have ICU, that limits our options
01:45 Austin :|
01:45 Infinoid I'd suggest compiling it locally with all the right stuff
01:46 Austin But the point is testing it in IRC...
01:46 Whiteknight and with that, I think I'm done for the night. Good evening, gentlemen
01:46 Austin Good knight, white.
01:46 Infinoid I'm crashing too, goodnight
01:46 Whiteknight goodnight
01:47 Austin Statement not terminated properly at line 1954, near "\"'\"\n\t\t\t~ $"
01:48 Austin Not to be confused with "hey, you missed a ~"
01:57 Austin Rats! So close..
01:57 cotto joined #parrot
02:13 Andy joined #parrot
02:27 kid51 joined #parrot
02:39 kid51 msg Whiteknight Command-line options:  first add to @valid_options in lib/Parrot/Configure/Options/Conf/Shared.pm
02:39 purl Message for whiteknight stored.
02:39 kid51 msg Whiteknight Then document functionality with POD in Configure.pl
02:39 purl Message for whiteknight stored.
02:39 kid51 msg Whiteknight Then determine which configuration step your option should be added to -- likely to require discussion
02:39 purl Message for whiteknight stored.
02:40 kid51 msg Whiteknight Once you've determined which step option goes into, write tests for that option in corresponding t/steps/*.t file
02:40 purl Message for whiteknight stored.
02:40 kid51 msg Whiteknight Config step classes begin processing of an option with $conf->options->get('without-networking')
02:40 purl Message for whiteknight stored.
02:40 kid51 msg Whiteknight Tell me a bit more about what PARROT_NETWORKING_SUPPORT does and I may have fuller answers
02:40 purl Message for whiteknight stored.
02:53 pmichaud rakudo handles unicode okay -- it's just polyglotbot that is clueless
02:53 pmichaud 02:53 <pmichaud> rakudo: say "\c[NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE]";
02:53 pmichaud 02:53 <p6eval> rakudo 6c43f9: OUTPUT«⊯␤»
02:54 pmichaud (from p6eval bot on freenode/#perl6)
03:02 dalek parrot: r39792 | cotto++ | branches/pmc_pct/compilers/pmcc/src/nodes.pm:
03:02 dalek parrot: [pmcc] add a file I forgot to add earlier
03:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39792/
03:07 cotto chromatic, ping
03:17 magnachef joined #parrot
03:22 Theory joined #parrot
03:27 cotto joined #parrot
03:28 GeJ 'MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN'
03:29 GeJ I wonder if someone, somewhere knows every one of those.
03:31 cotto msg chromatic One further concern I have about profiling is that imcc sucks at giving meaningful line numbers in error messages.  If that's where the information about the source code comes from, it's not going to be very helpful.
03:31 purl Message for chromatic stored.
03:40 dalek parrot: r39793 | cotto++ | branches/pmc_pct/config/gen/makefiles/pmcc.in:
03:40 cotto yay!  palindrome!
03:40 dalek parrot: [config] fix a Makefile oversight that was causing some mysterious failures
03:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39793/
03:41 cotto also, restoration of sanity
03:47 dalek parrot: r39794 | cotto++ | branches/pmc_pct/compilers/pmcc/src (3 files):
03:47 dalek parrot: [pmcc] switch back to using the stowed vtable dump, now that sanity has been restored
03:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39794/
04:15 jdv79 is that summary from the workshop on the net yet?
04:16 jdv79 the one on the huge post-it
04:17 tetragon joined #parrot
04:37 Austin jdv79: It doesn't seem to be.
04:38 Austin I don't recall if Jerry or Patrick walked out with that one...
04:40 GeJ cotto: I confess my total ignorance in pmcc, but while looking at your last commit, I read :
04:40 GeJ in pmc/emitter.pm : self.past.vtdump  ->  self.past<vtdump>
04:40 GeJ and in nodes.pm :   self.past.vtdump  ->  self<vtdump>
04:41 cotto I don't know why nodes.pm is special like that, but it seems to work.
04:41 GeJ Ah, ok. good job then. Please feel free to ignore me :)
04:42 cotto I switched to the bracket notation because I also stored the dump as a hash element of the past, avoiding the need to add yet another method and attribute.
04:43 cotto but I'm tired and it's quite possible that I'll look at my code in the morning with different eyes.
04:44 Theory joined #parrot
04:45 Theory_ joined #parrot
05:01 jdv79 pmichaud: do you have that massive post-it?
05:04 dalek parrot: r39795 | cotto++ | branches/pmc_pct/compilers/pmcc/src/nodes.pir:
05:04 dalek parrot: [pmcc] fail noisily when attempting to multiply inherit from two parents with ATTRs
05:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39795/
05:11 dalek parrot: r39796 | cotto++ | branches/pmc_pct/compilers​/pmcc/src/emitter/pmc.pm:
05:11 dalek parrot: [pmcc] clean up generated code a little, add a MULTI-related #define and function call that I previously missed
05:11 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39796/
05:37 Zak joined #parrot
05:42 dalek tracwiki: v1 | cotto++ | RewritingPMCsInNQP
05:42 dalek tracwiki: first version, no examples yet
05:42 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Rewr​itingPMCsInNQP?version=1&amp;action=diff
05:45 chromatic cotto, I expect we'll need to fix them up somewhat, but getting just the function names right is helpful.
05:49 dalek tracwiki: v3 | Austin_Hastings++ | LevelOne
05:49 dalek tracwiki: Added link to cotto's page
05:49 dalek tracwiki: https://trac.parrot.org/parrot/wiki​/LevelOne?version=3&amp;action=diff
05:51 cotto Don't edit the rewriting page yet.
05:51 Austin Not. Just linking
05:52 cotto chromatic, do you think the timeline should include some imcc spelunking to try to get that fixed?
05:52 Austin It's your page until you make a mistake. ;-) http://xkcd.com/386/
05:53 chromatic I'm willing to try the IMCC spelunking, as long as we keep it on the low priority.
06:00 cotto lucky me
06:00 cotto ;)
06:01 cotto ok
06:01 chromatic http://wiki.squeak.org/squeak/2267
06:02 whoppix joined #parrot
06:03 Austin Sure they've got bitInvert32, but notice they don't have `fact`. Losers.
06:04 chromatic ftp://ftp.create.ucsb.edu/pub/Small​talk/Squeak/docs/OOPSLA.Squeak.html
06:06 chromatic If all GCable stores go through a single L2 opcode, you know how easy it is to note generations?
06:07 chromatic That second paper is amazing.
06:08 Austin > since a method invocation is much less efficient than a branch operation, this dispatch is one of the main reasons that the interpreter runs so much faster when translated to C)
06:08 * cotto is looking forward to getting home to reliable wireless
06:10 cotto Imagine that; someone else has already had to solve this problem.  How nice!
06:11 chromatic Yeah, 13 years ago.
06:11 chromatic slang has only 42 transformation rules.
06:12 chromatic All translated code accesses memory through six C macros that read and write individual bytes, 4-byte words, and 8-byte floats.
06:13 cotto something about that number...
06:13 cotto beside the fact that it's surprisingly small
06:14 dalek tracwiki: v2 | cotto++ | RewritingPMCsInNQP
06:14 dalek tracwiki: direct C function calls in nqp
06:14 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Rewr​itingPMCsInNQP?version=2&amp;action=diff
06:15 chromatic "we have contemplated building a separate primitive compiler that supports polymorphic arithmetic, in which case the declaration-driven optimization techniques of Hurricane and Typed Smalltalk would be beneficial."
06:20 uniejo joined #parrot
06:32 cotto joined #parrot
06:47 cotto we could call it btc - better than C
06:47 cotto I don't know how similar to nqp it's going to be by the time we're done with it.
06:54 kurahaupo left #parrot
06:59 viklund joined #parrot
07:00 iblechbot joined #parrot
07:13 magnachef_ joined #parrot
07:21 dalek tracwiki: v3 | cotto++ | RewritingPMCsInNQP
07:21 dalek tracwiki: add some example L1 code, although any relation to the implemented L1 is probably coincidental
07:21 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Rewr​itingPMCsInNQP?version=3&amp;action=diff
07:24 dalek tracwiki: v4 | cotto++ | RewritingPMCsInNQP
07:24 dalek tracwiki: add some comments
07:24 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Rewr​itingPMCsInNQP?version=4&amp;action=diff
07:56 dalek tracwiki: v1 | cotto++ | ProposedParrotsketchProtocol
07:56 dalek tracwiki: copypasta Whiteknight++'s message, plus formatting changes and my input
07:56 dalek tracwiki: https://trac.parrot.org/parrot/wiki/ProposedP​arrotsketchProtocol?version=1&amp;action=diff
08:09 cotto joined #parrot
08:19 mvuets joined #parrot
08:22 mberends joined #parrot
08:37 dalek parrot: r39797 | cotto++ | branches/pmc_pct (195 files):
08:37 dalek parrot: bring branch up-to-date with trunk
08:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39797/
08:41 pjcj joined #parrot
08:48 mvuets I got a crash (Rakudo). Is it possible to provoke a crash via PBC? In other words: where i need to look for a cause: in Parrot or in Rakudo?
08:49 moritz both are possible
08:49 moritz what does your crash look like? segmentation fault?
08:52 mvuets I'm on Windows 2003 (@work). But, yes. It is alike segfault, memory access violation: http://paste.debian.net/40319/
08:53 mvuets Btw this crash is present since 0.9, iirc. I may take a look, just need to know how to build a debug version of Parrot under VS.
08:57 mvuets How both can be possible? Does not Parrot provide a safe PBC execution?
08:57 moritz in theory, yes
08:57 purl in practice: ASSCLOWNS
08:57 moritz in practice, no
08:58 moritz also rakudo has dynpmcs, which are just C code
08:58 mvuets Oh, that's good. So these are just bugs, that's normal way (:
08:58 mvuets I see. Seems that some smoke tests were failed too. What is a way to check only Parrot w/o Rakudo?
08:59 moritz build parrot from source, run 'make fulltest'
08:59 moritz or what do you mean?
09:01 mvuets I want to run some parrot.exe something.{pasm,pbc,pir} and get a crash to localize a crash.
09:01 moritz that's not easy
09:01 mvuets And then to debug it, probably.
09:01 moritz you can make rakudo emit PIR
09:01 moritz but that still uses the rakudo dynpmcs
09:12 donaldh joined #parrot
09:12 mvuets Is nqp some parrot language?
09:12 moritz aye
09:12 moritz "not quite perl 6"
09:14 mvuets OK, it also crashes. Does it say that it's parrot crash, not rakudo?
09:14 moritz aye
09:16 mvuets abc crashes too. Need i to create a bug report? Is trac.parrot.org/parrot your BT?
09:16 moritz yes, and yes.
09:17 moritz (and you need to create an account first :/ )
09:17 mvuets No problem (: Thank you.
09:20 mvuets Sorry for stupid questions. I'm pretty new to all this stuff. Just wanna become involved and help. So does exist any instructions how to build parrot under Windows and VS/mingw gcc?
09:21 moritz there's a README_win32.pod in the source repo
09:21 moritz having abandoned windows years ago (before my Perl 6 involvement) I won't be able to help you, though
09:23 mvuets Thanks. I'm GNU/Linux user, just have to work with Windows at work (:
10:16 bacek_ joined #parrot
10:25 mvuets left #parrot
10:33 mvuets joined #parrot
10:50 AndyA joined #parrot
10:50 Infinoid msg Whiteknight So I've been thinking some more about I/O and how it pertains to win32.  One of the problems we face is that files are of type HANDLE (a pointer type) and yet sockets are of type SOCKET (an integer type).  Two results of this: 1, the API is completely different for sockets than it is for files, and thus subclassing Handle is useless.  2, Select works for sockets but not files on win32.  Does win32 have AIO, and does it clean any of that
10:50 purl Message for whiteknight stored.
10:51 moritz truncated after "clean and of that"
10:52 Infinoid moritz: thanks
10:52 Infinoid msg Whiteknight Does win32 have AIO, and does it clean any of that up?  If so, I'm thinking maybe the result would be better if we wrapped the basic ops on top of AIO
10:52 purl Message for whiteknight stored.
10:56 * Infinoid starts dreaming about AIO on circular receive buffers, and reusing COW strings for the recv() method
11:05 dalek TT #791 created by mvuets++: Crash on PBC execution under Windows Server 2003
11:17 flexibeast joined #parrot
11:22 donaldh joined #parrot
11:24 riffraff joined #parrot
11:28 flh joined #parrot
11:31 flh the test: "like('This is Parrot', 'This is Parrot', 'some reason')" should pass (it currently doesn't), or am I missing something?
11:33 moritz what language are you talking about?
11:33 moritz Perl 5 and Test::More?
11:33 flh good point :) this is PIR with Test/More.pbc
11:34 moritz well, if the second argument is interpreted as a Perl 6 regexes, then no.
11:34 moritz because whitespaces are ignored
11:35 flh ok, so I found my solution : ' ' becoming <ws> does the trick
11:35 flh thanks
11:37 moritz maybe ':s This is Parrot' also works
11:37 moritz that would be nicer, visually
11:38 flh this also works, yes, and it is indeed better
11:43 burmas joined #parrot
11:57 magnachef joined #parrot
12:11 masak joined #parrot
12:17 mvuets left #parrot
12:20 mvuets joined #parrot
12:23 Whiteknight joined #parrot
12:29 mvuets How Parrot JIT mechanism works? Does it translate PBC to native instructions and place them to RAM, then execute directly from RAM?
12:38 skids joined #parrot
12:44 chromatic joined #parrot
13:00 chromatic mvuets, more or less yes.
13:01 mvuets chromatic, oh, thanks. Now i know a cause of my crash on Windows. Just have reported it to Trac.
13:01 Whiteknight Parrot's JIT works by taking the parrot bytecode, feeding it through some very complicated functions, and then segfaulting
13:02 mvuets (: that's it.
13:02 chromatic mvuets, any chance you can build a Parrot with debugging symbols?  Your backtrace doesn't have them and is difficult to diagnose without them.
13:03 mvuets chromatic, i'm trying to do it right now.
13:03 mvuets Also see my comment to #791.
13:04 chromatic Did you pass any command-line flags?  Parrot doesn't JIT by default.
13:05 mvuets No. Just "parrot file.pbc". Same as in the ticket description.
13:06 chromatic It could be the code that builds NCI thunks.  DEP is suspicious.
13:08 mvuets DEP just introduces some protection. It is enabled by default on Windows Server OSes. What is NCI?
13:09 chromatic NCI is the system that allows us to call external functions from shared libraries.
13:15 pmichaud good morning, #parrot
13:16 TimToady morning, fancy meeting you here
13:18 Whiteknight good morning pmichaud
13:20 Whiteknight mvuets: The NCI system would only run afoul of DEP if you are building an unsupported callframe
13:21 Whiteknight otherwise it should have precompiled thunks in the code section already, which should be fine
13:21 chromatic Unless it built with CAN_BUILD_CALL_FRAMES or whatever that is.
13:21 mvuets chromatic, you said parrot doesn't JIT by default, so how it acts?
13:22 chromatic I'm making a distinction between JIT as optimization and JIT as mechanism to call shared libraries from Parrot.
13:22 mvuets Just got parrot compiled, enabling DEP back and reboots...
13:23 Whiteknight if you're just calling the readline_interactive method, you shouldn't be activating JIT at all
13:23 Whiteknight so that's particularly suspect
13:32 chromatic It's so difficult to debug Partcl when it refuses to build without an installed Parrot.
13:34 mvuets Well, my compiled version just does not work. It silentlly finishes. Was built via VS. (Some problems with gcc, don't wanna sort out.)
13:37 chromatic pmichaud, any suggestions on helping PGE deal with repeated zero-length captures?
13:39 pmichaud not at the moment, alas
13:39 pmichaud PGE needs to keep track of a ratchet point and refuse to repeat more than once at that point
13:39 pmichaud it's the "more than once" part that gets tricky :-|
13:40 Andy joined #parrot
13:40 chromatic Is there a way to detect a zero-length capture?
13:41 pmichaud in pge, not easily
13:41 pmichaud and of course, it's not *captures* that are the issue, but any grouping/repeating construct
13:42 chromatic In other words, "Fail if you're trying to repeat without ratcheting forward"?
13:42 pmichaud but repeating once is allowed
13:42 pmichaud well, not repeating once, but matching once
13:43 pmichaud so the tricky part is detecting that it's actually a repeat
13:43 chromatic And you can't merely store the position of the previous match and fail if the current position matches that because a zero-width could match there legitimately.
13:44 moritz the perl 5 regex engine also keeps track min/max match lenghts of regex atoms at compile time, and warns if you quantify something that's always zero-width
13:46 chromatic The likelihood of me fixing this in the next 30 minutes is low then.
13:48 Axle joined #parrot
13:50 Coke chromatic: I appreciate that you're trying to debug partcl. =-)
13:50 chromatic I'd be happy to.  It's just a real trial to do so when I can only build/run it with an installed Parrot.
13:51 Coke chromatic: when I'm working on partcl, I have a script to clean/svn up/config/build/install-dev parrot, which reduces my effort there. (I just install to $HOME/bird and have that be my "testing" install location.
13:51 Coke (beats installing to a system dir)
13:51 Axle would anyone mind taking a look at this code and telling me what's wrong?
13:51 Axle http://pastebin.com/d55456e6b
13:52 chromatic Sure, but if I'm rebuilding Parrot it's tremendously more work to rebuild and reinstall Parrot for a one-line change.
13:52 dalek parrot: r39798 | chromatic++ | trunk/compilers/imcc (2 files):
13:52 dalek parrot: [IMCC] Fixed a memory leak of PASM sub names.
13:52 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39798/
13:52 Coke You should just be able to run "make install-dev" instead of make, no?
13:53 Coke Axle: there's no need to take the ".param int a" and then say $I0 = a.
13:53 Coke Axle: you can just refer to a later.
13:54 Axle Coke: ok, what's the error at the bottom about?
13:54 Coke Axle: bug in the calling conventions, I think.
13:56 Axle Coke: hmm... Hard to write a test suite for a code generator when the code generated should work but doesn't... thank you though
13:56 Coke axle: if you could open a ticket for that, it would be helpful.
13:56 Coke chromatic: (I've tried building against a build-dir parrot. Parrot makes it hard to support both styles, or I'd do it.)
13:57 Axle Coke: can you point me in the right direction, i.e. link?
13:57 Coke https://trac.parrot.org/
13:57 Coke parrotbug?
13:57 purl well, parrotbug is obsolete, use trac
13:57 Coke no, parrotbug is obsolete, use https://trac.parrot.org/
13:57 purl okay, Coke.
13:58 Coke thanks, axle.
13:58 chromatic Coke, I know.  It's just something to work toward, I suppose.
14:00 Axle Any particular conventions in filing the ticket I should be aware about/
14:00 Axle ?
14:00 pmichaud time for me to head out (vacation) -- I should be off-and-on for the next few days though
14:00 pmichaud thanks to everyone at yapc|10 -- it was great fun!
14:03 dalek parrot: r39799 | chromatic++ | trunk/compilers/imcc (2 files):
14:03 dalek parrot: [IMCC] Fixed a memory leak of the name of a file included with .include.
14:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39799/
14:05 snarkyboojum joined #parrot
14:14 dalek parrot: r39800 | rblasch++ | trunk/src/string/charset/unicode.c:
14:14 dalek parrot: Use C89 variable declarations, or it won't compile on C89 compilers like VC9.
14:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39800/
14:14 dalek parrot: r39801 | rblasch++ | trunk (2 files):
14:14 dalek parrot: [config] Quote ICU include path if it contains spaces.
14:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39801/
14:16 Axle left #parrot
14:17 dalek TT #792 created by Axle++: Bug in subroutine calling conventions
14:17 Theory joined #parrot
14:19 Coke chromatic: here's the current leak test for tcl.pbc -e "puts hi"
14:19 Coke http://feather.perl6.nl/~coke/puts_hi_loss.vgp
14:20 Coke (The large leak is plugged. several small leaks remain, some of which look suspiciously similar.)
14:29 NotFound joined #parrot
14:36 NotFound joined #parrot
14:44 chromatic Is that with 39799 or close?
14:52 mvuets left #parrot
15:09 Whiteknight irclogs?
15:09 purl irclogs is, like, http://irclog.perlgeek.de/parrot/today or see also: infrared clogs
15:10 moritz infrared clogs?
15:10 purl infrared clogs are like ruby slippers, but more so
15:19 sekimura_ joined #parrot
15:20 donaldh joined #parrot
15:23 Theory joined #parrot
15:28 chromatic joined #parrot
15:42 japhb purl, msg pmichaud Re: TT #787, I don't care so much the details of how it works, I just want it to work.  :-)  I took Coke's suggestion at face value, but if you have a better one, great.  Let's just *do* it.  Even if it's not a perfect solution, we can always iterate towards correctness if we mark all our changes as experimental.
15:42 purl Message for pmichaud stored.
15:42 Whiteknight purl msg kid51 PARROT_NETWORKING_SUPPORT is a macro that tells whether we have sockets (1) or not (0). If we compile without PARROT_NETWORKING_SUPPORT, Parrot will throw exceptions if we try to use sockets. What I want is for this macro to be 1 if no argument is given, and to be 0 if --without-networking is given
15:42 purl Message for kid51 stored.
15:44 Whiteknight purl msg kid51 we can add tests and probes later, but right now I just want a flag that changes the macro
15:44 purl Message for kid51 stored.
15:46 Whiteknight purl msg Infinoid on win32 sockets are HANDLEs too. There are utilities to poll them for IO events. Win32 has AIO (I think it's actually better supported then on Linux!). I'd be happy to talk to you more about any AIO ideas you have
15:46 purl Message for infinoid stored.
15:54 Whiteknight it's nice signing on and having a few messages waiting for you :)
15:56 japhb Whiteknight: Like getting snail mail (the unexpected, non-bill type)
16:00 Whiteknight yeah, i never get any non-bill snail mail
16:02 moritz I received one yesterday saying that my health insurance got cheaper. YaY!
16:03 Coke Whiteknight: if you want to change the flag, use the already builtin flag for setting c flags. no?
16:03 Coke --ccflags=-DPARROT_NETWORKING_SUPPORT=1 ?
16:03 Coke if you want the default to be the otherway, reverse the sense of the conditional in the check.
16:04 davidfetter joined #parrot
16:06 Austin joined #parrot
16:07 Austin_Hastings foo
16:07 purl bar
16:07 Austin moo
16:08 Coke moink
16:16 Austin Hello, coke.
16:16 jan joined #parrot
16:16 Austin Feeling any more on top of the L1 thing from last night?
16:18 Theory joined #parrot
16:21 Coke Austin: have given it no more thought since yesterday, sorry.
16:25 Austin No worries.
16:40 st joined #parrot
16:45 Psyche^ joined #parrot
16:48 * Coke wonders why pugs doesn't have a trunk/
16:48 moritz because it has no branches either
16:49 moritz audreyt used to do branches locally with svk
17:03 gbacon joined #parrot
17:04 gbacon left #parrot
17:06 darbelo joined #parrot
17:06 flh is there a bug which tracks the translation of tests from perl to PIR?
17:08 Austin flh: huh?
17:08 Austin You mean the implementation of the p6 spectests?
17:08 moritz Austin: no, parrot tests
17:09 moritz (I think)
17:09 Coke flh: I don't think there's a ticket, no.
17:09 Coke it's just a general cleanup item.
17:09 flh Whiteknight says that we want Parrot's test written in perl5 to be directly translated to PIR, so I was looking for a TT to attach a patch
17:09 Austin Ahh.
17:09 moritz flh: just open a new one
17:09 Whiteknight yeah, open a new one
17:09 Whiteknight (I thoguth there was a ticket somewhere though)
17:10 moritz but it's easier to have one ticket per patch anyway
17:10 moritz so that you can apply/close or reject per patch, not just per issue
17:10 flh ok, I'll do that after dinner :)
17:11 flh Whiteknight, could it be on RT? I haven't searched there yet
17:11 Whiteknight oh, I hadn't thought that
17:11 Whiteknight I'll look on RT
17:11 bobke joined #parrot
17:11 Whiteknight flh: moritz is right, just open a new ticket
17:12 Coke even if there is an old RT for it, putting patches on trac is just ducky.
17:12 Coke patches++
17:17 Austin FWIW, NQP needs =
17:18 moritz why?
17:19 Austin I reached the point where I need copy more than bind.
17:19 Austin (To the tune of 3 hours last night chasing an alias bug...)
17:19 Austin Or perhaps PCT just needs to use more immutables..
17:20 Whiteknight I've wished NQP had = on more then one occasion
17:22 Coke if you can call vtables, isn't 'assign_pmc' sufficient?
17:23 Coke (not that sugar is bad.)
17:23 Austin Can we call vtables from NQP?
17:26 Whiteknight Austin, you can't call VTABLEs directly
17:27 Whiteknight you can probably use inline PIR to call the opcodes that call the VTABLEs though
17:29 Coke Austin: I've seen the vtable call in cotto's (apparently NQ)NQP pmc rewrite.
17:30 Austin So I can replace my @nsp := clone_array($symbol.namespace()) code with Q:PIR { $P0 = find_lex '@nsp' ; $P1 = find_lex '$symbol' ; $P2 = $P1.'namespace'() ; $P0.'assign_pmc'($P2) }
17:30 Whiteknight yeah, that's a feature that's going to need to be added to support writing PMCs
17:30 Austin That sort of rocks.
17:30 Austin Not.
17:33 Austin must ... have ... sugar ...
17:36 viklund joined #parrot
17:46 Austin Class 'P6metaclass' not found
17:46 Austin W00t!
17:46 Austin Close does objects.
17:47 Whiteknight Austin++
17:47 Whiteknight I can haz?
17:48 Austin I need a place to put it (suggestions?), and I need to fix that error. Probably tomorrow.
17:49 Whiteknight I've enjoyed google code for these kinds of projects
17:49 Austin Do they have trac, or sth like it?
17:51 Austin Looks that way
17:52 Coke Austin: I presume your NQP work here isn't related to the L1 work?
17:52 Austin I'm not doing anything NQP related, Coke, other than using it for action methods.
17:52 Austin I'm working on a parser for a C-like language, Close.
17:53 Whiteknight it's not trac, but yes they have svn, a wiki, and an issue tracker
17:56 Whiteknight I used google code for Matrixy, my octave-on-parrot compiler
17:56 Whiteknight and Coke uses it for parTcl
17:58 Austin Looks cool. I'll have to give it a shot.
17:58 JC1 joined #parrot
17:58 Austin (And now I'll have to take google.com off my "permanent distrust" list for noscript. Sigh.)
18:11 Austin Anybody better at graphics than me?
18:12 Whiteknight what kinds of graphics?
18:12 Whiteknight and how good are you?
18:12 Austin Creating an icon for close.
18:13 Whiteknight oh, no. can't help with that
18:20 Coke Austin: I suggest a laundry basket. (clothes)
18:27 Austin :)
18:27 Austin Actually, I'm using "\c[LATIN CAPITAL LETTER C, EQUIVALENT TO]" kerned really tightly together, in white against a blue circle
18:30 Tene Austin: did you have some HLL questions for me a few days ago?
18:30 Austin Tene: I was looking for your cross-hll foo.
18:31 Tene Are you still looking for anything?
18:31 Austin Yeah
18:31 Austin I have the impression that you've built a little bit of foo for each language. But is there some kind of overarching protocol?
18:31 Tene There is.
18:32 Tene I should add it to the repository, but I don't know where I should put it.
18:32 Austin Trac?
18:32 purl Trac is a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities.  http://projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at https://trac.parrot.org/parrot/ or slow or REALLY slow
18:32 Tene Um, sure.  Choose a name for a page there, and I'll post it there.
18:32 Whiteknight HLLInteroperability
18:33 Austin HllInteroperability (WikiWord)
18:33 Coke wikiword--
18:33 Tene WikiWord--
18:33 Austin Maybe under the BigProjects page
18:34 Tene HllInterop?
18:34 Austin Go for it
18:34 Tene Man, trivial decisions shouldn't be difficult like this. :P
18:35 Tene the llI in there is awkward.
18:36 Austin Yeah, but you only have to type it once. After that, it's mouseclicks
18:37 Tene I need to swap in wiki markup now, I guess.
18:38 mberends joined #parrot
18:39 moritz do you have it as POD right now?
18:39 moritz if so, just dump it in docs/ somehwere
18:40 Coke we need a trac plugin that uses POD instead of wiki.
18:40 Austin WhiteKnight: http://code.google.com/p/close
18:41 Austin Coke: It's pretty trivial to import pod into wiki, but there's no exporter. (pod2wiki moinmoin)
18:41 athomason joined #parrot
18:41 Coke moinmoin?
18:41 purl well, moinmoin is easier
18:42 moritz a perl 5 wiki engine iirc
18:42 Austin It's the wiki syntax that both google code and trac base their syntaxes on
18:42 Tene I don't have it as POD.
18:42 Austin What do you have it as?
18:42 Tene Well, maybe.  I don't remember.
18:43 Austin Put {{{ }}} around it and upload it.
18:43 Tene Um, I don't know.  Let me look around.  I don't remember if or where I saved it anywhere.
18:43 Austin Last thing I saw was a blog post from you that linked to a NoPaste that had expired.
18:43 Tene ah
18:43 Tene Just text.
18:44 Tene Yes, I need to stop using nopastes in blog posts.
18:44 Tene moritz: should I be adding this to docs/ instead of trac?  If so, what filename?
18:45 moritz docs/hll_interop.pod maybe?
18:46 Tene We already have a PDD of that name.  Is 'library loading API' part of the PDD?  Should it be?
18:46 moritz I'd add it
18:49 Tene I thought I could use {{{ }}} around something to make it monospace-formatted?
18:49 Austin Exactly.
18:49 Tene It doesn't work.
18:49 purl It's a Y2K error!  Panic!  Sue!
18:49 Coke you're doing it wrong. =-)
18:49 Tene :(
18:50 Whiteknight Austin++
18:50 Tene Coke: fix it: https://trac.parrot.org/parr​ot/wiki/HllInteroperability
18:50 cotto joined #parrot
18:51 Austin Tene++
18:51 cotto yay! home!
18:51 Tene PCT really needs to get a default implementation of that.
18:51 moritz fixed
18:52 moritz Tene: you need {{{\n ... \n}}}
18:52 Tene ... but the docs don't say that ;_;
18:52 Tene wikis are so confusing
18:52 dalek tracwiki: v1 | tene++ | HllInteroperability
18:52 dalek tracwiki: https://trac.parrot.org/parrot/wiki/HllIn​teroperability?version=1&amp;action=diff
18:52 Tene Austin: what else would you like me to put on that page?
18:52 dalek tracwiki: v2 | moritz++ | HllInteroperability
18:53 dalek tracwiki: https://trac.parrot.org/parrot/wiki/HllIn​teroperability?version=2&amp;action=diff
18:53 Whiteknight Infinoid: ping
18:55 Austin Anything you know w.r.t how to call from one place to another. (Or a link to another page)
18:55 Tene call from one place to another?  I don't understand the question.
18:55 Austin I'm in HLL A, and I want to call a sub in HLL B.
18:56 Austin Defined in another file, yadda yadda.
18:56 Austin Running on another interpreter, on a computer orbiting a different sun...
18:56 Whiteknight well, you definitely need to look the function up in the HLL namespace
18:57 Tene Whiteknight: better is asking the B compiler to load the library for you, and get the sub from the return value of that.
18:57 Austin You see?
18:58 Austin Maybe a walkthrough of what the Rakudo module does?
18:59 dalek tracwiki: v3 | tene++ | HllInteroperability
18:59 dalek tracwiki: Add examples.
18:59 dalek tracwiki: https://trac.parrot.org/parrot/wiki/HllIn​teroperability?version=3&amp;action=diff
19:00 Tene Austin: refresh the page
19:00 Tene kinda like that?
19:03 dalek tracwiki: v4 | tene++ | HllInteroperability
19:03 dalek tracwiki: Add a usage example
19:03 dalek tracwiki: https://trac.parrot.org/parrot/wiki/HllIn​teroperability?version=4&amp;action=diff
19:04 Austin What's 'load-language' ?
19:04 Tene A sub that just calls the 'load_language' opcode from the 'parrot' HLL.
19:04 Tene To work around a Parrot bug
19:04 Austin Okay...
19:05 Whiteknight Tene: does that bug have a ticket?
19:05 Austin So in order to call across HLLs, you need a sub that can call across HLLs?
19:05 Austin :) :) :)
19:05 purl :) :) :) :) :) :) :) :) :)
19:05 Tene Whiteknight: I'm not sure.  I think so.
19:05 Tene Austin: no.
19:05 Tene you just do:
19:06 Tene .HLL 'parrot
19:06 Tene .sub ...
19:06 Tene .HLL 'whatever'
19:06 Tene then just call it by name.
19:06 Tene I guess I could add that to the 'parrot' compiler as a method...
19:07 dalek tracwiki: v5 | tene++ | HllInteroperability
19:07 dalek tracwiki: Add a comment
19:07 dalek tracwiki: https://trac.parrot.org/parrot/wiki/HllIn​teroperability?version=5&amp;action=diff
19:07 dalek tracwiki: v6 | tene++ | HllInteroperability
19:07 dalek tracwiki: Wiki Markup
19:07 purl Wiki Markup is probably oddly like POD.
19:07 dalek tracwiki: https://trac.parrot.org/parrot/wiki/HllIn​teroperability?version=6&amp;action=diff
19:07 Tene but you'd have to load_language the 'parrot' compiler first, which would actually work in that case because the 'parrot' compiler doesn't loadlib anything.
19:07 JC1 left #parrot
19:09 Tene Rakudo and Cardinal and Steme just use the .HLL 'parrot' \n ... .HLL 'perl6' trick
19:09 Austin Shouldn't that be an interpreter method?
19:10 Austin Anyway, the code looks good, Tene. Thanks.
19:11 Tene Um, I guess it could be.
19:11 Tene It's just a wrapper around an opcode to work around a bug.
19:11 Tene Austin: what else would you like there?
19:12 Austin Is there any corresponding logic for symbol import?
19:13 Tene hm?  Explain?
19:14 Tene That 'foreign_load' sub imports things into the namespace of the caller.
19:14 Austin Wait, nevermind. It's in there.
19:14 Austin Yeah.
19:14 dalek tracwiki: v7 | tene++ | HllInteroperability
19:14 dalek tracwiki: Add more to the usage example
19:14 dalek tracwiki: https://trac.parrot.org/parrot/wiki/HllIn​teroperability?version=7&amp;action=diff
19:14 Austin It doesn't care about subs vs PMCs or whatever
19:14 Coke tene: since you're all up on the importing and what not, question for you: =-)
19:15 Coke tcl procs remember where they were imported from, and you can "forget" the import of subs. Does this system allow for that?
19:15 Austin Coke: What does 'import' mean in your question? From a library file, or from another language?
19:16 Tene Coke: This system just returns a hash to whoever asked for it.  The HLL that requested the library can do whatever they like with it.
19:16 Coke Austin: from another namespace.
19:16 Austin From /tcl/NamespaceA/foo -> /tcl/NamespaceB/bar?
19:17 dalek tracwiki: v4 | whiteknight++ | BigProjectIdeas
19:17 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Big​ProjectIdeas?version=4&amp;action=diff
19:17 Austin Or inside a single function?
19:17 Coke namespace ::NamespaceA::bar eval { namespace import ::NamespaceB::bar }
19:17 Coke er, one of those is a foo.
19:18 Coke http://www.tcl.tk/man/tcl8.​5/TclCmd/namespace.htm#M14
19:18 Whiteknight Austin: you going to upload the close source code?
19:19 Coke the [namespace origin] just below that is how you can determine where the import came from.
19:19 dalek decnum-dynpmcs: r91 | darbelo++ | trunk/src/pmc/decnumcontext.pmc:
19:19 dalek decnum-dynpmcs: Correct a very silly typo.
19:19 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=91
19:20 Coke I don't think parrot supports that yet; going to just add an attribute to TclProc to track it.
19:20 Whiteknight there are no silly typos, just silly coders
19:20 Tene Coke: foreign subs aren't going to be tclprocs, unless you have a way of changing their class...
19:21 Coke tene; well, I need to support it for tcl standalone first.
19:21 Tene Coke: you could put a dictionary on the namespace instead.
19:21 Coke but yes, having parrot support this feature would be nice.
19:21 Tene track it there
19:21 darbelo Whiteknight: But it wasn't me! It was the typo! I swaer it!
19:21 Tene TclNamespace, that is
19:22 Coke Tene: then I have to update the namespace all the time instead of the proc itself; also, then other HLLs that use different namespace objects will foil /that/ scheme.
19:22 Austin Okay, is anyone else using Ubuntu?
19:22 Whiteknight me
19:22 Coke so, internally, it's not a win; externally, it's just as much a lose.
19:22 Tene Austin: I have some Ubuntu install CDs at my office...
19:22 Austin If you type          cat /etc/motd | tail +2
19:22 Austin what do you get?
19:22 Tene Coke: True.
19:22 Coke ... the last 2 lines of the message of the day?
19:22 Tene Coke: +2
19:22 purl 2
19:22 Whiteknight oh, I'm not on Ubuntu right now, my home computer is Ubuntu
19:22 Tene Coke: All lines after line 2
19:23 Coke whoops.
19:23 Coke yah. that's not an ubuntu thing, though.
19:23 Tene I think he's asking for ubuntu's default motd?
19:23 Coke (works the same on darwin, e.g.)
19:23 Austin Well, I kind of hope it is
19:23 Austin Because I don't want to come out and say "someone has introduced a massive bug into tail"
19:24 Tene Austin: what do you mean?
19:24 Austin I'd much rather discover that my distro shipped with some clever shell script wrapper or something
19:24 Coke Austin: what are you seeing, what do you expect to see?
19:24 Austin austin@andLinux:~/parrot/languages/google-close$ cat /etc/motd | /usr/bin/tail +2
19:25 Tene pls nopaste instead of paste into channel
19:25 Austin (If you see an "Unknown command", I didn't put it there.)
19:25 Tene Austin: the unknown command was your IRC client
19:25 Austin Okay.
19:25 Tene you pasted something like:
19:25 Coke presumably you had a line that started with slash. use nopaste.snit.ch
19:25 Tene /usr/bin/tail: Unknown Command
19:25 Austin :)
19:26 Tene or the 'nopaste' script in the parrot repo
19:26 Austin AAR, if someone here is on linux, could you try that?
19:26 Tene /usr/bin/tail: cannot open `+2' for reading: No such file or directory
19:27 Tene which is according to its documentation
19:27 Tene you want tail -n +2
19:27 Austin Well, no I don't.
19:27 Tene The following shell function has been very useful to me:
19:27 Austin But I will.
19:27 Tene nopaste() {  perl ~/src/parrot/tools/dev/nopaste.pl -t "$1" -c '#parrot' -n tene $2
19:27 Tene }
19:28 Tene Austin: what are you trying to do here?
19:28 Austin Trying to skip the first line of input.
19:28 Austin It's just that apparently tail has drifted a little bit. That used to work.
19:28 Tene you could also: | sed 1d
19:28 Coke darwin's tail seems to let the -n go. neener.
19:29 Tene that's what I'd recommend
19:29 Austin Yeah. Back in the last millenium tail -3 / tail +3 worked.
19:29 magnachef_ joined #parrot
19:32 dalek tracwiki: v5 | whiteknight++ | BigProjectIdeas
19:32 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Big​ProjectIdeas?version=5&amp;action=diff
19:44 Coke anyone looking for a medium-complexity PIR only task? =-)
19:45 PerlJam Coke: I'm not looking, but what's the task?
19:45 Coke converting tcl to "execute as soon as you have a command" instead of "compile the entire program first"
19:46 Coke probably a simple matter of updating how the pge->past->pir transformation occurs.
19:46 Coke (once you have a command, immediately run the generated PIR and substitute the return value into the stream) (instead of accumulating PIR)
19:46 Austin Are you using PCT?
19:46 Austin (I think the answer is no, but...)
19:46 Coke yes, the answer is no.
19:47 Austin :(
19:47 Coke converting to PCT is on my "nice to have".
19:47 Austin 'coz that's built in
19:47 Coke ORLY?
19:47 purl YA RLY.
19:47 PerlJam Austin: so ... you're volunteering to convert partcl to use PCT?  :)
19:47 Austin How hard would that be? As I recall, tcl has a tremendously regular syntax...
19:47 Coke it's pretty straightforward, yes.
19:47 Austin (But again, that was 1000 years ago)
19:48 Coke tcl has had one syntax change in the past 15 years that I know about.
19:48 Coke the {*} expander.
19:48 Austin What does that mean in tcl?
19:49 Coke "expand the list that follows that token"
19:49 Coke so "puts hello" and "{*}{puts hello}" are equivalent.
19:50 Coke my grammar is at: http://code.google.com/p/partcl/source/br​owse/trunk/src/grammar/expr/expression.pg
19:50 Coke the {*} is documented here: http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M9
19:52 japhb Tene: Looking at https://trac.parrot.org/parr​ot/wiki/HllInteroperability , I'm guessing the block of code starting at import_loop_end: is the code that creates namespace ['rakudo';'OpenGL'] when I 'use OpenGL:from<parrot>;' ?
19:52 Austin I ask because PCT uses {*} in patterns as a "call action method" marker
19:53 Coke Austin: yup, completely different. =-)
19:53 Tene japhb: That code is taken from cardinal, actually, but yes, approximately the same in Rakudo
19:53 Tene japhb: also very important is src/parser/actions.pm:425
19:54 Austin WhiteKnight: ping
19:54 japhb Tene: Assuming yes, if I have a parrot module OpenGL/Math.pir that contains several namespaces ([...;'OpenGL';'Math'], [...;'OpenGL';'Math';'Vec4'], [...;'OpenGL';'Math';'Mat4x4'] and so on)  I assume we're going to have to change that so instead of a single namespace, I can supply a list?
19:55 japhb (src/parser/actions.pm:425) In Rakudo or Cardinal?
19:55 Tene japhb: rakudo
19:55 japhb Looking ....
19:55 magnachef__ joined #parrot
19:55 Tene That's what lets you use just straight 'OpenGL' instead of '::OpenGL'
19:56 Austin msg WhiteKnight I've imported the current close codebase into google. It DOES NOT pass the test suite -- the oo stuff is still not working, and it's time for beer -- but you can make test and get almost there. :)
19:56 purl Message for whiteknight stored.
19:56 Tene Austin: link?
19:56 Tene Austin: and can you add 'tene@allalone.org' as a contributer?
19:56 darbelo close is at http://code.google.com/p/close/
19:57 Coke close is also http://code.google.com/p/close/
19:57 purl okay, Coke.
19:57 Coke scooby snack.
19:57 purl Rank roo, Coke!
19:57 Austin Tene: If I did that, you might sully my precious code...
19:57 Austin :)
19:57 Austin Yeah
19:57 Austin http://code.google.com/p/close/source/checkout
19:58 Tene Austin: Oh, I thought that you were asking for someone to get the OO stuff working for you.
19:58 Tene I misread.
19:58 japhb Tene: You don't have to solve everyone's problems.  Just mine.  ;-)
19:58 Austin laugh
19:59 japhb So what does '$/.add_type($name)' actually do?
19:59 * japhb is not a PAST expert ... in fact, his PAST fu is passing at best.
19:59 mikehh joined #parrot
20:00 Tene japhb: it calls the 'add_type' method of Perl6::Grammar.  Check out src/parser/methods.pir:20
20:00 Tene It informs the parser that that symbol is a class, not a function call.
20:00 * davidfetter wonders whether there's a PAST sifu for japhb
20:01 Tene sifu?
20:01 purl sifu is, like, master, since there can be other teachers less senior to the sifu
20:01 Tene thx purl
20:01 japhb People with more understanding of Japanese than I: What is the difference between sensei, sifu, and shihan?
20:01 davidfetter sifu is chinese
20:02 davidfetter sensei is "teacher"
20:02 davidfetter shihan these days is mostly hubris
20:02 japhb heh
20:02 davidfetter it's like calling yourself "champ" or "ultimate"
20:02 davidfetter you'd better be able to back that up
20:03 japhb In Aikido (the art I study), I understand that Shihan is granted only to senseis of international renown.
20:03 davidfetter which aikido?
20:03 japhb I'm in the ASU branch.
20:03 davidfetter um
20:04 japhb I think it has two Shihans.
20:04 davidfetter tbh, shihan is a term so politically loaded that i leave it out of other kinds of discussion
20:05 davidfetter i.e. it's only handy in discussing power struggles
20:05 japhb Politically loaded?
20:05 japhb hmmm, interesting.
20:06 japhb IIUC, several Aikido Shihans have refused further rank advancement, saying it was no longer necessary.  Never seemed like a big power trip kinda thing.  But then, Aikido is very fractured, so maybe when there's a power struggle, they just fork.  I dunno, I'm not much of a historian.
20:17 japhb Tene:  OK, I've read the add_type code.  There's some generous assumption of conventions in that code ... but OK.  I'm not entirely clear on whether that method is going to cause problems for my idea of changing the handling of library['namespace'] so we can transfer multiple namespaces.
20:18 Tene japhb: um... library['namespace'] contains the subnamespaces
20:18 japhb Seems like the simplest thing is to changes it to library['namespaces'] (plural) and make it an array.
20:18 japhb Tene: OK, then I'm clearly handling something wrong.
20:19 Tene japhb: summarize the issue again for me? :)
20:20 Tene Wait, let me summarize what I understand.
20:20 japhb Tene: sorry, answering face to face question.  I'll backscroll in just a sec
20:20 Tene You're defining a subnamespace, OpenGL::Math::Vec4
20:20 Tene but you can't use it from rakudo
20:20 japhb Yes
20:20 Tene 1) I suspect that ::OpenGL::Math::Vec4 will work
20:20 japhb (after 'use OpenGL::Math:from<parrot>;'
20:20 Tene (pls test)
20:21 japhb Will do
20:21 Tene 'sec
20:23 Tene 2) Rakudo's parser for names that don't begin with a '::' doesn't look at namespaces at all.  It looks at its own internal list of symbols.
20:23 Tene so the hack of adding a call to .'add_type'() just registers exactly the name we passed to 'use'
20:24 Tene It's not completely correct.
20:24 Tene I'm not entirely sure what the "right" answer is.
20:25 japhb Wheee, trying to do ::OpenGL::Math::Vec4.new causes Null PMC access in getprop()
20:25 Austin Hmm
20:25 Tene but, for now, we could crawl around in the namespace looking for new namespaces to register.
20:25 Tene Huh.
20:25 Tene Okay, I'll look into it.
20:25 Austin Do classes have to addmethod subs that are in their namespace with the :method adv?
20:26 dalek parrot: r39802 | jkeenan++ | trunk/config/gen/crypto.pm:
20:26 dalek parrot: Add call to Parrot::Configure::Compiler::cc_clean() to clean up test files run as part of config step.
20:26 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39802/
20:27 japhb Tene: also, you seem to be assuming that all namespaces a module creates will be subspaces.  But that's not necessarily the case.  A Net:: module might define a URI:: namespace, for example.  Though perhaps that's considered rude and we desire to disallow it by convention.
20:36 Tene japhb: is the Vec4 stuff in Parrot right now?
20:36 Tene Or have you not committed it yet?
20:39 japhb bak
20:40 japhb Tene: OpenGL/Math.pir is in svn
20:40 japhb Lemme check on the test file
20:41 japhb OK, examples/opengl/math.pir is, but the (currently misnamed) shapes-vec3.p6 is not.
20:41 dalek TT #793 created by flh++: Rewrite io.t and ifunless.t in PIR
20:41 Tene Okay, that's good enough for me for now.
20:41 japhb It's not really ready to be committed ... ok, good.
20:42 japhb Note: OpenGL/Math.pir is in a fairly "youthful" state.
20:42 japhb Right now I'm at the "Am I on the right track?" stage
20:49 Coke vfr_re01
20:49 Coke ww
20:54 japhb Now I'm curious.  What does 'vfr_re01' do in the *right* window?
20:54 Coke ... nothing. =-)
20:54 Coke was documenting something.
21:06 particle1 joined #parrot
21:08 ArjenL joined #parrot
21:12 iblechbot joined #parrot
21:14 Whiteknight joined #parrot
21:21 flh t/oo/metamodel.t starts with "#!./parrot" while other tests start with "#!parrot": is it an error, or noone cares about that?
21:23 Limbic_Region joined #parrot
21:24 allison flh: it should be consistent
21:26 flh is it worth opening a ticket for that, or will someone with commit bits remember that? :)
21:26 Whiteknight flh++
21:26 Whiteknight (i'm applying your io.t and ifunless.t patches right now)
21:27 japhb allison: Luckily caught you.  Can you take a look at why I can't subscribe to parrot-dev (I never receive the confirmation mail).  I ask you, because you're listed as the ML admin.  :-)  I'll be happy to reenter my address in the form if you need to watch the mail logs ...
21:27 allison japhb: what email address?
21:27 purl email address is obscure (just a few)
21:28 dalek parrot: r39803 | duff++ | trunk/t/oo/metamodel.t:
21:28 dalek parrot: fix #! line as noticed by flh
21:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39803/
21:29 Whiteknight purl msg infinoid when you get a chance, could you add Close to dalek? http://code.google.com/p/close Thanks!
21:29 purl Message for infinoid stored.
21:29 flh Whiteknight, do you have an idea on how tests like arithmetics.t, which rely a lot on "say", should be translated to PIR?
21:30 Whiteknight I don't know, I would have to look at it
21:31 Whiteknight PIR does have a say opcode
21:32 flh ok, maybe just a wrong example (in the case of arithmetics.t, we can just convert numbers to strings and compare strings)
21:32 dalek parrot: r39804 | whiteknight++ | trunk/t/op (2 files):
21:32 dalek parrot: [t] convert io.t and ifunless.t from Perl5 to PIR. Courtesy flh++. TT #793
21:32 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39804/
21:33 Whiteknight yeah, that's probably the easiest
21:33 dalek TT #793 closed by whiteknight++: Rewrite io.t and ifunless.t in PIR
21:34 Whiteknight all this blogging is having a good effect it seems
21:34 Whiteknight my adsense account is up to 0.03$!
21:34 flh maybe my question can be rephrased in this way: am I right to say that the "say.t" file, which tests the "say" opcode, must rely on perl5?
21:34 Whiteknight flh
21:34 Whiteknight flh: that's a very good question
21:35 Whiteknight actually, no. You can use say to generate the TAP output directly
21:35 Whiteknight so "say 'ok 1'"
21:36 flh so we can test that "say" correctly prints strings, but what about integers/floats?
21:41 Whiteknight print "ok " \n say $I0
21:41 Whiteknight print "ok " \n say $N0
21:41 Whiteknight (of course, you can't do fractions)
21:41 Whiteknight or, "say" to a filehandle, and then read the value from the file in and compare strings
21:42 allison say only does stdout
21:44 Whiteknight oh right, damnit
21:45 Coke you can still redirect where stdout is going.
21:45 Coke I would make converting those tests a low priority. =-)
21:46 mberends should freeze() be able to serialize bytecode produced by Rakudo? It segfaults here.
21:46 Whiteknight I'm about to merge in the io_cleanups branch which contains proper pipes, so we can use those to test say
21:47 Whiteknight Infinoid is still working out the gritty details about how to use them to properly redirect stdio though, so we all have some learning to do with them
21:50 Whiteknight mberends: it *should* be able to do that I think, but the freeze/thaw system isn't very robust in my experience
21:51 mberends yes, that's the impression it give me too. it works on compiled PIR code tho.
21:52 Theory joined #parrot
21:53 particle joined #parrot
21:53 * Whiteknight has to go look at houses. later
21:55 snarkyboojum joined #parrot
22:33 contingencyplan joined #parrot
22:34 rg1 joined #parrot
22:42 flh joined #parrot
22:44 Infinoid ... there are gritty details?
22:45 Infinoid we add dup() and dup2() methods, and pipe-to-command stuff uses those internally
22:45 Infinoid stage 3: profit
22:46 Infinoid msg Whiteknight If you add Close to https://trac.parrot.org/parrot/wiki/Languages, dalek should update itself automatically within a few hours. :)
22:46 purl Message for whiteknight stored.
22:48 Infinoid The above dup2 stuff aside, I actually have no idea what the PDD says about stdio redirections.  I do know that parrot's current behavior of overriding handles on the PIR layer and not on the stdio layer is rather misleading
22:48 Infinoid But I think we've already had that discussion.
23:26 tetragon joined #parrot
23:29 skids joined #parrot
23:45 patspam joined #parrot

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

Parrot | source cross referenced