Parrot 1.3.0 "Andean Swift" released | parrot.org
Set by moderator on 23 June 2009.
cotto we'll see 00:01
dalek rrot: r39786 | cotto++ | branches/pmc_pct/compilers/pmcc/src (2 files):
[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
Whiteknight cotto: 10 hours in the airport? 00:15
00:15 bacek joined
bacek hi again 00:15
purl oh, you're back!
cotto there's also an adjacent hotel where I may hang out until they ask me to leave 00:16
bacek, your commute seems to have shortened.
dalek rrot: r39787 | whiteknight++ | branches/io_cleanups/src/io/socket_api.c:
[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
cotto <3 wireless 00:19
bacek cotto: I moved close to work
cotto really? 00:22
good for you 00:26
bacek It depends... 00:28
Whiteknight cotto: you buttocks parrot? 00:31
:)
Austin :) 00:32
Everyone <3 parrot
cotto only when nobody's watching
Whiteknight allison: ping 00:34
dalek cnum-dynpmcs: r90 | darbelo++ | trunk/src/pmc/decnumcontext.pmc:
Add a METHOD for restoring the context to default values, and one to clear the
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:42 Austin joined
cotto < purl-- > 00:44
dalek rrot: r39788 | whiteknight++ | branches/io_cleanups (4 files):
[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
cotto nice to see you back in action, darbelo 00:46
darbelo I actually commited that to take a break ;) 00:47
We seem to be mis-rounding on subtraction on some tests, and I have absolutely no idea why. 00:48
Anyway, I'll tackle that again after I get some food. 00:52
Austin ?3 00:53
Whiteknight actually, allison unping
00:54 Austin_Hastings joined
Whiteknight anybody here who knows the Parrot config process well? 00:54
Austin_Hastings Kid51 seems like the go-to guy 00:55
If he's here.
cotto Whiteknight, what about it? I've briefly messed with it.
Whiteknight yeah, kid51 is the bomb-diggity
cotto: I want to add a flag to it that specifies whether we have networking support or not 00:56
I want configure to set the PARROT_NETWORKING_SUPPORT macro automatically
cotto I guess that an advantage of being a Perl guy is that you get to know the perl bits really well.
something like
purl something like what, cotto?
Whiteknight soemthing like your momma purl
cotto perl Configure.pl --without-networking 00:57
Whiteknight cotto: exactly!
purl i guess exactly! is it not awesome?
Whiteknight damnit purl!
purl rumour has it damnit i am a bot
cotto < purl-- >
Whiteknight < purl-- >
cotto Whiteknight, lemme dig a bit.
Whiteknight cotto++
I'm like the robinhood of karma: I take from the bots and give to the poor 00:58
well, the poor developers
cotto in karma, everyone's poor compared to purl 01:03
karma c
purl c has karma of 7782
cotto karma purl
purl purl has karma of 8616
cotto karma purl--
purl purl-- has neutral karma
cotto purl--++
karma purl--
purl purl-- has neutral karma
Tene (purl--)++ 01:04
karma purl--
purl purl-- has karma of 1
Whiteknight now you're having too much fun with it 01:05
cotto wow. Configure.pl and its supporting code are big. 01:07
nice. There's a non-trivial docs/configuration.pod 01:10
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
cotto karma ()
purl () has karma of 1
cotto (())++
karma ()
purl () has karma of 2
cotto (()(++ 01:14
karma (()(
purl (()( has neutral karma
cotto ((()()++
karma (()(
purl (()( has karma of 1
cotto ()++ 01:15
karma ()
purl () has karma of 2
cotto ()++
karma ()
purl () has karma of 2
cotto oh boy, null karma!
rather empty string karma
Austin_Hastings Does ResizablePmcArray have a .join method? 01:17
cotto Austin_Hastings, not a C method, although nqp seems to add one. 01:18
Austin_Hastings works for me
thx
cotto nm. It's not a method.
it's a separate function. 01:19
Austin_Hastings bah
cotto join('!!!!', @foo);
Austin_Hastings Do you know if NQP supports heredocs? 01:21
dalek rrot: r39789 | whiteknight++ | branches/io_cleanups/src/io (2 files):
[io_cleanups] fixup the filehandle API a little bit. use GETATTR/SETATTR for attributes which are currently overridable from PIR
Whiteknight I have no idea about heredoc support, honestly
that's a pmichaud question
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.
cotto Austin_Hastings, I'm pretty sure it doesn't. I remember trying to get them to work without success. 01:25
Austin_Hastings Anyone got unicode? U+224D 01:34
purl print "\\U224D";
purl Austin_Hastings: excuse me?
Austin_Hastings Which one is the p6 bot? 01:35
Infinoid rakudo: say "me me me, victim here"
polyglotbot OUTPUT[me me me, victim here␤]
Austin_Hastings rakudo: say "\\U224D"
polyglotbot OUTPUT[U224D␤]
Austin_Hastings Moo. No unicode for me. 01:36
kurahaupo rakudo say "\\u224D";
Infinoid is backslash uppercase U meaningful?
kurahaupo rakudo: say "\\u224D"
Infinoid rakudo: say 1 01:37
polyglotbot OUTPUT[1␤]
Austin_Hastings rakudo: say "\\x[224d]";
polyglotbot OUTPUT[â␤]
Austin_Hastings Well, it's a start.
dalek rrot: r39790 | whiteknight++ | branches/io_cleanups (4 files):
[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:39 Austin joined, Austin_Hastings left
Austin rakudo: say "\\x[224d]"; 01:39
polyglotbot OUTPUT[â␤]
Austin Still nothing. Rats.
Infinoid What'd you expect? 01:41
Austin The "\\c{EQUIVALENT TO}" character.
Which looks like an equal sign made from )( 01:42
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)␤]
Austin So much for plan C. 01:44
Or was it D?
Infinoid rakudo: say "whee, I support unicode! see look: ¹²³"
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
..from Sub 'perl6;Perl6;Compiler;main' pc 274143 (sr...
dalek rrot: r39791 | whiteknight++ | branches/io_cleanups (4 files):
[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.
Infinoid ok. so the box it's built on doesn't have ICU, that limits our options
Austin :| 01:45
Infinoid I'd suggest compiling it locally with all the right stuff
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
Austin Good knight, white.
Infinoid I'm crashing too, goodnight
Whiteknight goodnight
Austin Statement not terminated properly at line 1954, near "\\"'\\"\\n\\t\\t\\t~ $" 01:47
Not to be confused with "hey, you missed a ~" 01:48
Rats! So close.. 01:57
01:57 cotto joined 02:13 Andy joined 02:27 kid51 joined
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.
kid51 msg Whiteknight Then document functionality with POD in Configure.pl
purl Message for whiteknight stored.
kid51 msg Whiteknight Then determine which configuration step your option should be added to -- likely to require discussion
purl Message for whiteknight stored.
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.
kid51 msg Whiteknight Config step classes begin processing of an option with $conf->options->get('without-networking')
purl Message for whiteknight stored.
kid51 msg Whiteknight Tell me a bit more about what PARROT_NETWORKING_SUPPORT does and I may have fuller answers
purl Message for whiteknight stored.
pmichaud rakudo handles unicode okay -- it's just polyglotbot that is clueless 02:53
02:53 <pmichaud> rakudo: say "\\c[NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE]";
02:53 <p6eval> rakudo 6c43f9: OUTPUT«⊯␤»
(from p6eval bot on freenode/#perl6) 02:54
dalek rrot: r39792 | cotto++ | branches/pmc_pct/compilers/pmcc/src/nodes.pm:
[pmcc] add a file I forgot to add earlier
03:02
cotto chromatic, ping 03:07
03:17 magnachef joined 03:22 Theory joined 03:27 cotto joined
GeJ 'MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN' 03:28
I wonder if someone, somewhere knows every one of those. 03:29
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.
dalek rrot: r39793 | cotto++ | branches/pmc_pct/config/gen/makefiles/pmcc.in:
[config] fix a Makefile oversight that was causing some mysterious failures
03:40
cotto yay! palindrome!
cotto also, restoration of sanity 03:41
dalek rrot: r39794 | cotto++ | branches/pmc_pct/compilers/pmcc/src (3 files):
[pmcc] switch back to using the stowed vtable dump, now that sanity has been restored
03:47
jdv79 is that summary from the workshop on the net yet? 04:15
the one on the huge post-it 04:16
04:17 tetragon joined
Austin jdv79: It doesn't seem to be. 04:37
I don't recall if Jerry or Patrick walked out with that one... 04:38
GeJ cotto: I confess my total ignorance in pmcc, but while looking at your last commit, I read : 04:40
in pmc/emitter.pm : self.past.vtdump -> self.past<vtdump>
and in nodes.pm : self.past.vtdump -> self<vtdump>
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 :)
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:42
but I'm tired and it's quite possible that I'll look at my code in the morning with different eyes. 04:43
04:44 Theory joined 04:45 Theory_ joined
jdv79 pmichaud: do you have that massive post-it? 05:01
dalek rrot: r39795 | cotto++ | branches/pmc_pct/compilers/pmcc/src/nodes.pir:
[pmcc] fail noisily when attempting to multiply inherit from two parents with ATTRs
05:04
rrot: r39796 | cotto++ | branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm:
[pmcc] clean up generated code a little, add a MULTI-related #define and function call that I previously missed
05:11
05:37 Zak joined
dalek tracwiki: v1 | cotto++ | RewritingPMCsInNQP 05:42
tracwiki: first version, no examples yet
tracwiki: trac.parrot.org/parrot/wiki/Rewrit...ction=diff
chromatic cotto, I expect we'll need to fix them up somewhat, but getting just the function names right is helpful. 05:45
dalek tracwiki: v3 | Austin_Hastings++ | LevelOne 05:49
tracwiki: Added link to cotto's page
tracwiki: trac.parrot.org/parrot/wiki/LevelO...ction=diff
cotto Don't edit the rewriting page yet. 05:51
Austin Not. Just linking
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. ;-) xkcd.com/386/
chromatic I'm willing to try the IMCC spelunking, as long as we keep it on the low priority. 05:53
cotto lucky me 06:00
;)
ok 06:01
chromatic wiki.squeak.org/squeak/2267
06:02 whoppix joined
Austin Sure they've got bitInvert32, but notice they don't have `fact`. Losers. 06:03
chromatic ftp://ftp.create.ucsb.edu/pub/Smalltalk/Squeak/docs/OOPSLA.Squeak.html 06:04
If all GCable stores go through a single L2 opcode, you know how easy it is to note generations? 06:06
That second paper is amazing. 06:07
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
Imagine that; someone else has already had to solve this problem. How nice! 06:10
chromatic Yeah, 13 years ago. 06:11
slang has only 42 transformation rules.
All translated code accesses memory through six C macros that read and write individual bytes, 4-byte words, and 8-byte floats. 06:12
cotto something about that number... 06:13
beside the fact that it's surprisingly small
dalek tracwiki: v2 | cotto++ | RewritingPMCsInNQP 06:14
tracwiki: direct C function calls in nqp
tracwiki: trac.parrot.org/parrot/wiki/Rewrit...ction=diff
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:15
06:20 uniejo joined 06:32 cotto joined
cotto we could call it btc - better than C 06:47
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 06:59 viklund joined 07:00 iblechbot joined 07:13 magnachef_ joined
dalek tracwiki: v3 | cotto++ | RewritingPMCsInNQP 07:21
tracwiki: add some example L1 code, although any relation to the implemented L1 is probably coincidental
tracwiki: trac.parrot.org/parrot/wiki/Rewrit...ction=diff
tracwiki: v4 | cotto++ | RewritingPMCsInNQP 07:24
tracwiki: add some comments
tracwiki: trac.parrot.org/parrot/wiki/Rewrit...ction=diff
tracwiki: v1 | cotto++ | ProposedParrotsketchProtocol 07:56
tracwiki: copypasta Whiteknight++'s message, plus formatting changes and my input
tracwiki: trac.parrot.org/parrot/wiki/Propos...ction=diff
08:09 cotto joined 08:19 mvuets joined 08:22 mberends joined
dalek rrot: r39797 | cotto++ | branches/pmc_pct (195 files):
bring branch up-to-date with trunk
08:37
08:41 pjcj joined
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:48
moritz both are possible 08:49
what does your crash look like? segmentation fault?
mvuets I'm on Windows 2003 (@work). But, yes. It is alike segfault, memory access violation: paste.debian.net/40319/ 08:52
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:53
How both can be possible? Does not Parrot provide a safe PBC execution? 08:57
moritz in theory, yes
purl in practice: ASSCLOWNS
moritz in practice, no
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 (:
I see. Seems that some smoke tests were failed too. What is a way to check only Parrot w/o Rakudo?
moritz build parrot from source, run 'make fulltest' 08:59
or what do you mean?
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
mvuets And then to debug it, probably.
moritz you can make rakudo emit PIR
but that still uses the rakudo dynpmcs
09:12 donaldh joined
mvuets Is nqp some parrot language? 09:12
moritz aye
"not quite perl 6"
mvuets OK, it also crashes. Does it say that it's parrot crash, not rakudo? 09:14
moritz aye
mvuets abc crashes too. Need i to create a bug report? Is trac.parrot.org/parrot your BT? 09:16
moritz yes, and yes.
(and you need to create an account first :/ ) 09:17
mvuets No problem (: Thank you.
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:20
moritz there's a README_win32.pod in the source repo 09:21
having abandoned windows years ago (before my Perl 6 involvement) I won't be able to help you, though
mvuets Thanks. I'm GNU/Linux user, just have to work with Windows at work (: 09:23
10:16 bacek_ joined 10:25 mvuets left 10:33 mvuets joined 10:50 AndyA joined
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.
moritz truncated after "clean and of that" 10:51
Infinoid moritz: thanks 10:52
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
purl Message for whiteknight stored.
Infinoid starts dreaming about AIO on circular receive buffers, and reusing COW strings for the recv() method 10:56
dalek TT #791 created by mvuets++: Crash on PBC execution under Windows Server 2003 11:05
11:17 flexibeast joined 11:22 donaldh joined 11:24 riffraff joined 11:28 flh joined
flh the test: "like('This is Parrot', 'This is Parrot', 'some reason')" should pass (it currently doesn't), or am I missing something? 11:31
moritz what language are you talking about? 11:33
Perl 5 and Test::More?
flh good point :) this is PIR with Test/More.pbc
moritz well, if the second argument is interpreted as a Perl 6 regexes, then no. 11:34
because whitespaces are ignored
flh ok, so I found my solution : ' ' becoming <ws> does the trick 11:35
thanks
moritz maybe ':s This is Parrot' also works 11:37
that would be nicer, visually
flh this also works, yes, and it is indeed better 11:38
11:43 burmas joined 11:57 magnachef joined 12:11 masak joined 12:17 mvuets left 12:20 mvuets joined 12:23 Whiteknight joined
mvuets How Parrot JIT mechanism works? Does it translate PBC to native instructions and place them to RAM, then execute directly from RAM? 12:29
12:38 skids joined 12:44 chromatic joined
chromatic mvuets, more or less yes. 13:00
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
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.
mvuets chromatic, i'm trying to do it right now. 13:03
Also see my comment to #791.
chromatic Did you pass any command-line flags? Parrot doesn't JIT by default. 13:04
mvuets No. Just "parrot file.pbc". Same as in the ticket description. 13:05
chromatic It could be the code that builds NCI thunks. DEP is suspicious. 13:06
mvuets DEP just introduces some protection. It is enabled by default on Windows Server OSes. What is NCI? 13:08
chromatic NCI is the system that allows us to call external functions from shared libraries. 13:09
pmichaud good morning, #parrot 13:15
TimToady morning, fancy meeting you here 13:16
Whiteknight good morning pmichaud 13:18
mvuets: The NCI system would only run afoul of DEP if you are building an unsupported callframe 13:20
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.
mvuets chromatic, you said parrot doesn't JIT by default, so how it acts?
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...
Whiteknight if you're just calling the readline_interactive method, you shouldn't be activating JIT at all 13:23
so that's particularly suspect
chromatic It's so difficult to debug Partcl when it refuses to build without an installed Parrot. 13:32
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:34
chromatic pmichaud, any suggestions on helping PGE deal with repeated zero-length captures? 13:37
pmichaud not at the moment, alas 13:39
PGE needs to keep track of a ratchet point and refuse to repeat more than once at that point
it's the "more than once" part that gets tricky :-|
13:40 Andy joined
chromatic Is there a way to detect a zero-length capture? 13:40
pmichaud in pge, not easily 13:41
and of course, it's not *captures* that are the issue, but any grouping/repeating construct
chromatic In other words, "Fail if you're trying to repeat without ratcheting forward"? 13:42
pmichaud but repeating once is allowed
well, not repeating once, but matching once
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.
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:44
chromatic The likelihood of me fixing this in the next 30 minutes is low then. 13:46
13:48 Axle joined
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.
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
(beats installing to a system dir)
Axle would anyone mind taking a look at this code and telling me what's wrong?
pastebin.com/d55456e6b
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 rrot: r39798 | chromatic++ | trunk/compilers/imcc (2 files):
[IMCC] Fixed a memory leak of PASM sub names.
Coke You should just be able to run "make install-dev" instead of make, no?
Axle: there's no need to take the ".param int a" and then say $I0 = a. 13:53
Axle: you can just refer to a later.
Axle Coke: ok, what's the error at the bottom about? 13:54
Coke Axle: bug in the calling conventions, I think.
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.
chromatic: (I've tried building against a build-dir parrot. Parrot makes it hard to support both styles, or I'd do it.)
Axle Coke: can you point me in the right direction, i.e. link? 13:57
Coke trac.parrot.org/
parrotbug?
purl well, parrotbug is obsolete, use trac
Coke no, parrotbug is obsolete, use trac.parrot.org/
purl okay, Coke.
Coke thanks, axle. 13:58
chromatic Coke, I know. It's just something to work toward, I suppose.
Axle Any particular conventions in filing the ticket I should be aware about/ 14:00
?
pmichaud time for me to head out (vacation) -- I should be off-and-on for the next few days though
thanks to everyone at yapc|10 -- it was great fun!
dalek rrot: r39799 | chromatic++ | trunk/compilers/imcc (2 files):
[IMCC] Fixed a memory leak of the name of a file included with .include.
14:03
14:05 snarkyboojum joined
dalek rrot: r39800 | rblasch++ | trunk/src/string/charset/unicode.c:
Use C89 variable declarations, or it won't compile on C89 compilers like VC9.
14:14
rrot: r39801 | rblasch++ | trunk (2 files):
[config] Quote ICU include path if it contains spaces.
14:16 Axle left
dalek TT #792 created by Axle++: Bug in subroutine calling conventions 14:17
14:17 Theory joined
Coke chromatic: here's the current leak test for tcl.pbc -e "puts hi" 14:19
feather.perl6.nl/~coke/puts_hi_loss.vgp
(The large leak is plugged. several small leaks remain, some of which look suspiciously similar.) 14:20
14:29 NotFound joined 14:36 NotFound joined
chromatic Is that with 39799 or close? 14:44
14:52 mvuets left
Whiteknight irclogs? 15:09
purl irclogs is, like, irclog.perlgeek.de/parrot/today or see also: infrared clogs
moritz infrared clogs? 15:10
purl infrared clogs are like ruby slippers, but more so
15:19 sekimura_ joined 15:20 donaldh joined 15:23 Theory joined 15:28 chromatic joined
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.
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
purl Message for kid51 stored.
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.
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.
Whiteknight it's nice signing on and having a few messages waiting for you :) 15:54
japhb Whiteknight: Like getting snail mail (the unexpected, non-bill type) 15:56
Whiteknight yeah, i never get any non-bill snail mail 16:00
moritz I received one yesterday saying that my health insurance got cheaper. YaY! 16:02
Coke Whiteknight: if you want to change the flag, use the already builtin flag for setting c flags. no? 16:03
--ccflags=-DPARROT_NETWORKING_SUPPORT=1 ?
if you want the default to be the otherway, reverse the sense of the conditional in the check.
16:04 davidfetter joined 16:06 Austin joined
Austin_Hastings foo 16:07
purl bar
Austin moo
Coke moink 16:08
Austin Hello, coke. 16:16
16:16 jan joined
Austin Feeling any more on top of the L1 thing from last night? 16:16
16:18 Theory joined
Coke Austin: have given it no more thought since yesterday, sorry. 16:21
Austin No worries. 16:25
16:40 st joined 16:45 Psyche^ joined
Coke wonders why pugs doesn't have a trunk/ 16:48
moritz because it has no branches either
audreyt used to do branches locally with svk 16:49
17:03 gbacon joined 17:04 gbacon left 17:06 darbelo joined
flh is there a bug which tracks the translation of tests from perl to PIR? 17:06
Austin flh: huh? 17:08
You mean the implementation of the p6 spectests?
moritz Austin: no, parrot tests
(I think) 17:09
Coke flh: I don't think there's a ticket, no.
it's just a general cleanup item.
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
Austin Ahh.
moritz flh: just open a new one
Whiteknight yeah, open a new one
(I thoguth there was a ticket somewhere though)
moritz but it's easier to have one ticket per patch anyway 17:10
so that you can apply/close or reject per patch, not just per issue
flh ok, I'll do that after dinner :)
Whiteknight, could it be on RT? I haven't searched there yet 17:11
Whiteknight oh, I hadn't thought that
I'll look on RT
17:11 bobke joined
Whiteknight flh: moritz is right, just open a new ticket 17:11
Coke even if there is an old RT for it, putting patches on trac is just ducky. 17:12
patches++
Austin FWIW, NQP needs = 17:17
moritz why? 17:18
Austin I reached the point where I need copy more than bind. 17:19
(To the tune of 3 hours last night chasing an alias bug...)
Or perhaps PCT just needs to use more immutables..
Whiteknight I've wished NQP had = on more then one occasion 17:20
Coke if you can call vtables, isn't 'assign_pmc' sufficient? 17:22
(not that sugar is bad.) 17:23
Austin Can we call vtables from NQP?
Whiteknight Austin, you can't call VTABLEs directly 17:26
you can probably use inline PIR to call the opcodes that call the VTABLEs though 17:27
Coke Austin: I've seen the vtable call in cotto's (apparently NQ)NQP pmc rewrite. 17:29
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
Austin That sort of rocks.
Not.
must ... have ... sugar ... 17:33
17:36 viklund joined
Austin Class 'P6metaclass' not found 17:46
W00t!
Close does objects.
Whiteknight Austin++ 17:47
I can haz?
Austin I need a place to put it (suggestions?), and I need to fix that error. Probably tomorrow. 17:48
Whiteknight I've enjoyed google code for these kinds of projects 17:49
Austin Do they have trac, or sth like it?
Looks that way 17:51
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.
I'm working on a parser for a C-like language, Close.
Whiteknight it's not trac, but yes they have svn, a wiki, and an issue tracker 17:53
I used google code for Matrixy, my octave-on-parrot compiler 17:56
and Coke uses it for parTcl
Austin Looks cool. I'll have to give it a shot. 17:58
17:58 JC1 joined
Austin (And now I'll have to take google.com off my "permanent distrust" list for noscript. Sigh.) 17:58
Anybody better at graphics than me? 18:11
Whiteknight what kinds of graphics? 18:12
and how good are you?
Austin Creating an icon for close.
Whiteknight oh, no. can't help with that 18:13
Coke Austin: I suggest a laundry basket. (clothes) 18:20
Austin :) 18:27
Actually, I'm using "\\c[LATIN CAPITAL LETTER C, EQUIVALENT TO]" kerned really tightly together, in white against a blue circle
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.
Tene Are you still looking for anything? 18:31
Austin Yeah
I have the impression that you've built a little bit of foo for each language. But is there some kind of overarching protocol?
Tene There is.
I should add it to the repository, but I don't know where I should put it. 18:32
Austin Trac?
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. projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at trac.parrot.org/parrot/ or slow or REALLY slow
Tene Um, sure. Choose a name for a page there, and I'll post it there.
Whiteknight HLLInteroperability
Austin HllInteroperability (WikiWord) 18:33
Coke wikiword--
Tene WikiWord--
Austin Maybe under the BigProjects page
Tene HllInterop? 18:34
Austin Go for it
Tene Man, trivial decisions shouldn't be difficult like this. :P
the llI in there is awkward. 18:35
Austin Yeah, but you only have to type it once. After that, it's mouseclicks 18:36
Tene I need to swap in wiki markup now, I guess. 18:37
18:38 mberends joined
moritz do you have it as POD right now? 18:39
if so, just dump it in docs/ somehwere
Coke we need a trac plugin that uses POD instead of wiki. 18:40
Austin WhiteKnight: code.google.com/p/close
Coke: It's pretty trivial to import pod into wiki, but there's no exporter. (pod2wiki moinmoin) 18:41
18:41 athomason joined
Coke moinmoin? 18:41
purl well, moinmoin is easier
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
Tene I don't have it as POD.
Austin What do you have it as?
Tene Well, maybe. I don't remember.
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.
Austin Last thing I saw was a blog post from you that linked to a NoPaste that had expired.
Tene ah
Just text.
Yes, I need to stop using nopastes in blog posts. 18:44
moritz: should I be adding this to docs/ instead of trac? If so, what filename?
moritz docs/hll_interop.pod maybe? 18:45
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
Tene I thought I could use {{{ }}} around something to make it monospace-formatted? 18:49
Austin Exactly.
Tene It doesn't work.
purl It's a Y2K error! Panic! Sue!
Coke you're doing it wrong. =-)
Tene :(
Whiteknight Austin++ 18:50
Tene Coke: fix it: trac.parrot.org/parrot/wiki/HllInteroperability
18:50 cotto joined
Austin Tene++ 18:51
cotto yay! home!
Tene PCT really needs to get a default implementation of that.
moritz fixed
Tene: you need {{{\\n ... \\n}}} 18:52
Tene ... but the docs don't say that ;_;
wikis are so confusing
dalek tracwiki: v1 | tene++ | HllInteroperability
tracwiki: trac.parrot.org/parrot/wiki/HllInt...ction=diff
Tene Austin: what else would you like me to put on that page?
dalek tracwiki: v2 | moritz++ | HllInteroperability
tracwiki: trac.parrot.org/parrot/wiki/HllInt...ction=diff 18:53
Whiteknight Infinoid: ping
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.
Austin I'm in HLL A, and I want to call a sub in HLL B.
Defined in another file, yadda yadda. 18:56
Running on another interpreter, on a computer orbiting a different sun...
Whiteknight well, you definitely need to look the function up in the HLL namespace
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?
Maybe a walkthrough of what the Rakudo module does? 18:58
dalek tracwiki: v3 | tene++ | HllInteroperability 18:59
tracwiki: Add examples.
tracwiki: trac.parrot.org/parrot/wiki/HllInt...ction=diff
Tene Austin: refresh the page 19:00
kinda like that?
dalek tracwiki: v4 | tene++ | HllInteroperability 19:03
tracwiki: Add a usage example
tracwiki: trac.parrot.org/parrot/wiki/HllInt...ction=diff
Austin What's 'load-language' ? 19:04
Tene A sub that just calls the 'load_language' opcode from the 'parrot' HLL.
To work around a Parrot bug
Austin Okay...
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?
:) :) :)
purl :) :) :) :) :) :) :) :) :)
Tene Whiteknight: I'm not sure. I think so.
Austin: no.
you just do:
.HLL 'parrot 19:06
.sub ...
.HLL 'whatever'
then just call it by name.
I guess I could add that to the 'parrot' compiler as a method...
dalek tracwiki: v5 | tene++ | HllInteroperability 19:07
tracwiki: Add a comment
tracwiki: trac.parrot.org/parrot/wiki/HllInt...ction=diff
tracwiki: v6 | tene++ | HllInteroperability
tracwiki: Wiki Markup
purl Wiki Markup is probably oddly like POD.
dalek tracwiki: trac.parrot.org/parrot/wiki/HllInt...ction=diff
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
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?
Anyway, the code looks good, Tene. Thanks. 19:10
Tene Um, I guess it could be. 19:11
It's just a wrapper around an opcode to work around a bug.
Austin: what else would you like there?
Austin Is there any corresponding logic for symbol import? 19:12
Tene hm? Explain? 19:13
That 'foreign_load' sub imports things into the namespace of the caller. 19:14
Austin Wait, nevermind. It's in there.
Yeah.
dalek tracwiki: v7 | tene++ | HllInteroperability
tracwiki: Add more to the usage example
tracwiki: trac.parrot.org/parrot/wiki/HllInt...ction=diff
Austin It doesn't care about subs vs PMCs or whatever
Coke tene: since you're all up on the importing and what not, question for you: =-)
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?
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.
Austin From /tcl/NamespaceA/foo -> /tcl/NamespaceB/bar?
dalek tracwiki: v4 | whiteknight++ | BigProjectIdeas 19:17
tracwiki: trac.parrot.org/parrot/wiki/BigPro...ction=diff
Austin Or inside a single function?
Coke namespace ::NamespaceA::bar eval { namespace import ::NamespaceB::bar }
er, one of those is a foo.
www.tcl.tk/man/tcl8.5/TclCmd/namespace.htm#M14 19:18
Whiteknight Austin: you going to upload the close source code?
Coke the [namespace origin] just below that is how you can determine where the import came from. 19:19
dalek cnum-dynpmcs: r91 | darbelo++ | trunk/src/pmc/decnumcontext.pmc:
Correct a very silly typo.
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
Tene Coke: foreign subs aren't going to be tclprocs, unless you have a way of changing their class...
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.
Coke but yes, having parrot support this feature would be nice.
Tene track it there
darbelo Whiteknight: But it wasn't me! It was the typo! I swaer it!
Tene TclNamespace, that is
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?
Whiteknight me
Coke so, internally, it's not a win; externally, it's just as much a lose.
Tene Austin: I have some Ubuntu install CDs at my office...
Austin If you type cat /etc/motd | tail +2
what do you get?
Tene Coke: True.
Coke ... the last 2 lines of the message of the day?
Tene Coke: +2
purl 2
Whiteknight oh, I'm not on Ubuntu right now, my home computer is Ubuntu
Tene Coke: All lines after line 2
Coke whoops. 19:23
yah. that's not an ubuntu thing, though.
Tene I think he's asking for ubuntu's default motd?
Coke (works the same on darwin, e.g.)
Austin Well, I kind of hope it is
Because I don't want to come out and say "someone has introduced a massive bug into tail"
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
Coke Austin: what are you seeing, what do you expect to see?
Austin austin@andLinux:~/parrot/languages/google-close$ cat /etc/motd | /usr/bin/tail +2
Tene pls nopaste instead of paste into channel 19:25
Austin (If you see an "Unknown command", I didn't put it there.)
Tene Austin: the unknown command was your IRC client
Austin Okay.
Tene you pasted something like:
Coke presumably you had a line that started with slash. use nopaste.snit.ch
Tene /usr/bin/tail: Unknown Command
Austin :)
Tene or the 'nopaste' script in the parrot repo 19:26
Austin AAR, if someone here is on linux, could you try that?
Tene /usr/bin/tail: cannot open `+2' for reading: No such file or directory
which is according to its documentation 19:27
you want tail -n +2
Austin Well, no I don't.
Tene The following shell function has been very useful to me:
Austin But I will.
Tene nopaste() { perl ~/src/parrot/tools/dev/nopaste.pl -t "$1" -c '#parrot' -n tene $2
}
Austin: what are you trying to do here? 19:28
Austin Trying to skip the first line of input.
It's just that apparently tail has drifted a little bit. That used to work.
Tene you could also: | sed 1d
Coke darwin's tail seems to let the -n go. neener.
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
dalek tracwiki: v5 | whiteknight++ | BigProjectIdeas 19:32
tracwiki: trac.parrot.org/parrot/wiki/BigPro...ction=diff
Coke anyone looking for a medium-complexity PIR only task? =-) 19:44
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"
probably a simple matter of updating how the pge->past->pir transformation occurs. 19:46
(once you have a command, immediately run the generated PIR and substitute the return value into the stream) (instead of accumulating PIR)
Austin Are you using PCT?
(I think the answer is no, but...)
Coke yes, the answer is no.
Austin :( 19:47
Coke converting to PCT is on my "nice to have".
Austin 'coz that's built in
Coke ORLY?
purl YA RLY.
PerlJam Austin: so ... you're volunteering to convert partcl to use PCT? :)
Austin How hard would that be? As I recall, tcl has a tremendously regular syntax...
Coke it's pretty straightforward, yes.
Austin (But again, that was 1000 years ago)
Coke tcl has had one syntax change in the past 15 years that I know about. 19:48
the {*} expander.
Austin What does that mean in tcl?
Coke "expand the list that follows that token" 19:49
so "puts hello" and "{*}{puts hello}" are equivalent.
my grammar is at: code.google.com/p/partcl/source/bro...ression.pg 19:50
the {*} is documented here: www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M9
japhb Tene: Looking at trac.parrot.org/parrot/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
Coke Austin: yup, completely different. =-) 19:53
Tene japhb: That code is taken from cardinal, actually, but yes, approximately the same in Rakudo
japhb: also very important is src/parser/actions.pm:425
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?
(src/parser/actions.pm:425) In Rakudo or Cardinal? 19:55
Tene japhb: rakudo
japhb Looking ....
19:55 magnachef__ joined
Tene That's what lets you use just straight 'OpenGL' instead of '::OpenGL' 19:55
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.
Tene Austin: link?
Austin: and can you add 'tene@allalone.org' as a contributer?
darbelo close is at code.google.com/p/close/
Coke close is also code.google.com/p/close/ 19:57
purl okay, Coke.
Coke scooby snack.
purl Rank roo, Coke!
Austin Tene: If I did that, you might sully my precious code...
:)
Yeah
code.google.com/p/close/source/checkout
Tene Austin: Oh, I thought that you were asking for someone to get the OO stuff working for you. 19:58
I misread.
japhb Tene: You don't have to solve everyone's problems. Just mine. ;-)
Austin laugh
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
Tene japhb: it calls the 'add_type' method of Perl6::Grammar. Check out src/parser/methods.pir:20 20:00
It informs the parser that that symbol is a class, not a function call.
davidfetter wonders whether there's a PAST sifu for japhb
Tene sifu? 20:01
purl sifu is, like, master, since there can be other teachers less senior to the sifu
Tene thx purl
japhb People with more understanding of Japanese than I: What is the difference between sensei, sifu, and shihan?
davidfetter sifu is chinese
sensei is "teacher" 20:02
shihan these days is mostly hubris
japhb heh
davidfetter it's like calling yourself "champ" or "ultimate"
you'd better be able to back that up
japhb In Aikido (the art I study), I understand that Shihan is granted only to senseis of international renown. 20:03
davidfetter which aikido?
japhb I'm in the ASU branch.
davidfetter um
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
i.e. it's only handy in discussing power struggles 20:05
japhb Politically loaded?
hmmm, interesting.
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:06
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:17
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.
Tene: OK, then I'm clearly handling something wrong.
Tene japhb: summarize the issue again for me? :) 20:19
Wait, let me summarize what I understand. 20:20
japhb Tene: sorry, answering face to face question. I'll backscroll in just a sec
Tene You're defining a subnamespace, OpenGL::Math::Vec4
but you can't use it from rakudo
japhb Yes
Tene 1) I suspect that ::OpenGL::Math::Vec4 will work
japhb (after 'use OpenGL::Math:from<parrot>;'
Tene (pls test)
japhb Will do 20:21
Tene 'sec
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
so the hack of adding a call to .'add_type'() just registers exactly the name we passed to 'use'
It's not completely correct. 20:24
I'm not entirely sure what the "right" answer is.
japhb Wheee, trying to do ::OpenGL::Math::Vec4.new causes Null PMC access in getprop() 20:25
Austin Hmm
Tene but, for now, we could crawl around in the namespace looking for new namespaces to register.
Huh.
Okay, I'll look into it.
Austin Do classes have to addmethod subs that are in their namespace with the :method adv?
dalek rrot: r39802 | jkeenan++ | trunk/config/gen/crypto.pm:
Add call to Parrot::Configure::Compiler::cc_clean() to clean up test files run as part of config step.
20:26
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:27
Tene japhb: is the Vec4 stuff in Parrot right now? 20:36
Or have you not committed it yet?
japhb bak 20:39
Tene: OpenGL/Math.pir is in svn 20:40
Lemme check on the test file
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
Tene Okay, that's good enough for me for now.
japhb It's not really ready to be committed ... ok, good.
Note: OpenGL/Math.pir is in a fairly "youthful" state. 20:42
Right now I'm at the "Am I on the right track?" stage
Coke vfr_re01 20:49
ww
japhb Now I'm curious. What does 'vfr_re01' do in the *right* window? 20:54
Coke ... nothing. =-)
was documenting something.
21:06 particle1 joined 21:08 ArjenL joined 21:12 iblechbot joined 21:14 Whiteknight joined
flh t/oo/metamodel.t starts with "#!./parrot" while other tests start with "#!parrot": is it an error, or noone cares about that? 21:21
21:23 Limbic_Region joined
allison flh: it should be consistent 21:24
flh is it worth opening a ticket for that, or will someone with commit bits remember that? :) 21:26
Whiteknight flh++
(i'm applying your io.t and ifunless.t patches right now)
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?
purl email address is obscure (just a few)
dalek rrot: r39803 | duff++ | trunk/t/oo/metamodel.t:
fix #! line as noticed by flh
21:28
Whiteknight purl msg infinoid when you get a chance, could you add Close to dalek? code.google.com/p/close Thanks! 21:29
purl Message for infinoid stored.
flh Whiteknight, do you have an idea on how tests like arithmetics.t, which rely a lot on "say", should be translated to PIR?
Whiteknight I don't know, I would have to look at it 21:30
PIR does have a say opcode 21:31
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 rrot: r39804 | whiteknight++ | trunk/t/op (2 files):
[t] convert io.t and ifunless.t from Perl5 to PIR. Courtesy flh++. TT #793
Whiteknight yeah, that's probably the easiest 21:33
dalek TT #793 closed by whiteknight++: Rewrite io.t and ifunless.t in PIR
Whiteknight all this blogging is having a good effect it seems 21:34
my adsense account is up to 0.03$!
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?
Whiteknight flh
flh: that's a very good question
actually, no. You can use say to generate the TAP output directly 21:35
so "say 'ok 1'"
flh so we can test that "say" correctly prints strings, but what about integers/floats? 21:36
Whiteknight print "ok " \\n say $I0 21:41
print "ok " \\n say $N0
(of course, you can't do fractions)
or, "say" to a filehandle, and then read the value from the file in and compare strings
allison say only does stdout 21:42
Whiteknight oh right, damnit 21:44
Coke you can still redirect where stdout is going. 21:45
I would make converting those tests a low priority. =-)
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
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:47
mberends: it *should* be able to do that I think, but the freeze/thaw system isn't very robust in my experience 21:50
mberends yes, that's the impression it give me too. it works on compiled PIR code tho. 21:51
21:52 Theory joined 21:53 particle joined
Whiteknight has to go look at houses. later 21:53
21:55 snarkyboojum joined 22:33 contingencyplan joined 22:34 rg1 joined 22:42 flh joined
Infinoid ... there are gritty details? 22:44
we add dup() and dup2() methods, and pipe-to-command stuff uses those internally 22:45
stage 3: profit
msg Whiteknight If you add Close to trac.parrot.org/parrot/wiki/Languages, dalek should update itself automatically within a few hours. :) 22:46
purl Message for whiteknight stored.
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
But I think we've already had that discussion.
23:26 tetragon joined 23:29 skids joined 23:45 patspam joined