Parrot 3.6.0 "P�jaros del Caribe" released | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 5 August 2011.
not_gerd the msys build is mostly fixed, currently testing 00:01
msys status: t/pmc/threads.t and anything which creates tempfiles fails as File::Temp::tempfile() returns unix-style paths 00:13
I'm done for today, but a working parrot on msys is probably not too far off
00:17 tadzik joined 00:19 PerlJam joined, pmichaud joined, Util joined
whiteknight not_gerd++ 00:44
cotto_work I think having him around will be a good thing, as long as he and gerd don't meet. 00:50
whiteknight the resulting annihilation will destroy vast swaths of code 00:58
benabik Well, if we can aim it at IMCC, would it be such a loss 01:01
?
whiteknight do we have a list anywhere of problems with IMCC? 01:08
besides the obvious <html><body><h1>Everything</h1></body></html>
dalek rrot/whiteknight/frontend_parrot2: 7721cef | Whiteknight++ | / (4 files):
Borrow code from pbc_to_exe to create a custom build script to write prt0.pbc to a .c file. Link that in from frontend/parrot2/main.c to avoid an extra file load, extra API calls, and extra GCables
01:23
rrot/whiteknight/frontend_parrot2: 5f1e710 | Whiteknight++ | t/src/embed/api.t:
Fix t/src/embed/api.t
rrot/whiteknight/multisub_cleanup: 79e57fb | Whiteknight++ | src/pmc/multisub.pmc:
More cleanups for MultiSub
01:26 woosley joined 01:28 rurban joined 01:43 kid51 joined
dalek rrot/soh-cah-toa/hbdb: c277b91 | soh_cah_toa++ | / (2 files):
Applied patch for cmds.t and Parrot::Test::HBDB from kid51++.
01:47
rrot/soh-cah-toa/hbdb: b26df74 | soh_cah_toa++ | t/tools/hbdb/cmds.t:
Added tests for 'list' command using ranges.
rrot/soh-cah-toa/hbdb: 38f8611 | soh_cah_toa++ | t/tools/hbdb/cmds.t:
Added another test for one argument form of 'list' command.
kudo/nom: f621500 | pmichaud++ | src/core/ (3 files):
Refactor handling of dispatch:<hyper> (>>.foo) to preserve structure.
01:48
kid51 soh_cah_toa: Which tests are passing/failing for you (cmds.t)? 01:51
soh_cah_toa all pass
kid51 Damn. I don't understand why we're getting different results.
I'm getting: Failed tests: 3, 6-9 01:52
soh_cah_toa that's so strange. i don't have any local changes either
kid51 and moreover, that's what I'm expecting
Alright, let's ask the basics: OS, version, Perl 5 version?
soh_cah_toa fedora 14, perl 5.12.3 01:53
kid51 And can you paste output of prove -v t/tools/hbdb/cmds.t
soh_cah_toa sure
nopaste "kid51" at 192.168.1.3 pasted "kid51's fails on cmds.t" (130 lines) at nopaste.snit.ch/69210 01:54
"soh_cah_toa" at 192.168.1.3 pasted "HBDB Tests" (17 lines) at nopaste.snit.ch/69211 01:55
kid51 which prove 01:56
soh_cah_toa you mean the TAP::Harness version?
kid51 that, but also just enter that command and tell me output 01:57
$ which prove
soh_cah_toa yeah
/usr/bin/prove 01:58
also, TAP::Harness 3.17
kid51 $ prove --version
TAP::Harness v3.23 and Perl v5.14.0
soh_cah_toa ah
kid51 but I doubt those differences are significant
soh_cah_toa yeah
i would maybe try throwing it all out and cloning a new repo
kid51 Note that in my output, the 'got' is consistently missing the first line of the 'expected' 01:59
soh_cah_toa yeah, i noticed. weird
kid51 That's why the regexes are not matching the whole set of lines (but why, if I sample lines *other than the first*, I can get some tests to pas) 02:00
dalek rrot/soh-cah-toa/hbdb: 5521376 | soh_cah_toa++ | t/tools/hbdb/cmds.t:
Added more detailed description to 'list' tests.
02:03
kudo/nom: 9357e76 | (Solomon Foster)++ | src/core/ (4 files):
Add Real.asin, Cool.sin, Cool.asin, Complex.sin, Complex.asin, and protos / multi subs for asin.
02:05
kudo/nom: 1f48277 | (Solomon Foster)++ | t/spectest.data:
Turn on sin.t.
02:07
kid51 soh_cah_toa: When I step thru this test with the Perl 5 debugger, I get to this point in the first failing test (3): 02:09
DB<22> x $input_text 02:10
0 '(hbdb) List of commands:
'
Note how the line is beginning with (hbdb).
soh_cah_toa yeah, i had that problem a long time ago
kid51 This means that it gets recognized at this line:
next if $input_text =~ m|\\(hbdb\\) .*|;
soh_cah_toa yeah
kid51 Since the regex matches, the 'next' is activated. 02:11
Which means that it doesn't get shoved into $lines 02:12
soh_cah_toa right...but it still stays in $input_text
kid51 The function DTRT on all subsequent lines, but it misses on that first one. 02:13
dalek rrot/soh-cah-toa/hbdb: b78e1b3 | soh_cah_toa++ | t/tools/hbdb/cmds.t:
Added test for 'backtrace' command.
02:22
02:33 rdesfo joined
kid51 It doesn't pause at (hbdb) and treat that as a line unto itself. It proceeds as if List of commands: ought to appear on the same line as (hbdb) 02:38
kid51 is stumped
soh_cah_toa i don't remember how that got fixed and it makes even less sense that you're seeing again only on your machine 02:39
kid51 Hmm. 02:47
I gotta sleep soon
soh_cah_toa ok
02:47 ssqq joined
ssqq hello all. 02:48
kid51 But go to perldoc.perl.org and read the 'perldelta' for changes from Perl 5.12 to Perl 5.14. Search for IO::Select and IPC::Open3. Read those changes and post if you think they are significant differences.
ssqq I want to know if any editor or syntax file to Making PIR, I used Vim 02:49
Vim have not syntax highlight file for PIR and PASM, Padre could not use this ability 02:50
benabik I have Vim highlighting for PIR...
ssqq you make it or download from internent benabik?
kid51 .vim/plugin/parrot.vim 02:51
soh_cah_toa ssqq: use the 'editor' Makefile target
benabik If it's not just part of 7.3, I'm not sure where I got it from.
soh_cah_toa i'm sorry, tags-vi
was thinking of editor directory
nopaste "kid51" at 192.168.1.3 pasted "parrot vim plugin" (4 lines) at nopaste.snit.ch/69212 02:52
benabik If you have the parrot source code: (cd $PARROT/editor && make help) 02:54
ssqq nopaste: your code depend pmc.vim & pasm.vim
o I know
I can not find any editor folder or any *.vim file in Parrot install folder. maybe in Rakudo? 02:56
benabik ssqq: Do you have a copy of the parrot code somewhere?
ssqq: In there there's an editor directory. `make vim-install` in there will install syntax highlighting.
ssqq benabik: you means in the folder from git
benabik ssqq: Yes.
ssqq o, Thanks I download 02:57
03:29 ssqq left 03:33 daniel-s joined 03:34 theory joined 04:21 rdesfo joined 04:22 rdesfo left 05:13 SHODAN joined 05:15 theory joined
cotto ~~ 05:21
05:45 Kulag joined 06:23 fperrad joined 06:37 fperrad joined 06:50 Eclesia joined
Eclesia hi 06:50
06:56 fperrad joined
cotto hi Eclesia 06:58
dalek rrot: 7c334b2 | cotto++ | docs/dev/profiling.pod:
start adding some meat to the profiling documentation
07:15
07:19 rohit_nsit08 joined 07:41 rohit_nsit08 joined 08:02 lucian joined
dalek kudo/nom: 7b1fa47 | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
When we do generic instantiation of a parameter, clear the nominal generic flag if needed.
08:29
08:49 mj41 joined 08:58 rurban_ joined 09:08 UltraDM joined, SHODAN joined 09:24 rohit_nsit08 joined 09:27 woosley left
dalek p: b4e475a | pmichaud++ | src/NQPQ/ (3 files):
Bring NQPQ up-to-date with latest NQP compiler.
10:05
p: 6262ccf | pmichaud++ | src/ (2 files):
Eliminate "#= open" from regex_declarator, restore <sym> handling.
10:40
10:51 dafrito joined
dalek kudo/nom: 95b1f22 | moritz++ | / (5 files):
finish cos and acos enough to run the tests
12:02
12:06 whiteknight joined 12:10 jsut_ joined 12:22 JimmyZ joined, lucian joined 12:23 bluescreen joined
Felipe morning guys 12:25
12:26 preflex_ joined
whiteknight good morning Felipe 12:29
dalek kudo/nom: 8f74caf | moritz++ | NOMMAP.markdown:
two more TODOs for NOMMAP
12:30
kudo/nom: 48a3aed | moritz++ | / (6 files):
tan, atan
whiteknight blog.regehr.org/archives/574?utm_so...cademia%29 12:35
I think "#define struct union" may be one of my favorite lines of code ever
#define while if is another good one, but could break compilation 12:37
#define free(p)
or #define free(p) free(p) free(p)
all evil
atrodo the second one would be detected quickly. the first one however, very evil 12:38
#define rand(p) 4 12:39
moritz that's the debian + xkcd connection :-) 12:40
atrodo i figured someone would catch it 12:43
whiteknight #define unsigned signed 12:46
atrodo oh, that one's good
whiteknight oh, I just thought of a great one: "#define do"
that would be terrible to debug 12:47
every do/while in the program would execute once, and then enter an empty while loop with a possibly infinite condition 12:48
atrodo it's been a while, but I think a {}while is not valid syntax 12:53
whiteknight { } is valid syntax, and while(x); is valid too 12:57
they would get parsed separately
12:59 contingencyplan joined
atrodo interesting. i thought the while(); was the invalid part. i guess i was wrong. 13:00
13:02 Coke joined
dalek p: 32fb34c | pmichaud++ | src/ (2 files):
nqpq: protoregex stub.
13:03
p: 0ef4235 | pmichaud++ | src/NQPQ/Actions.pm:
nqpq: Remove obsolete "= open" key code.
p: 285fe4f | pmichaud++ | src/QRegex/P6Regex/ (2 files):
Split out parsing of sequential/parallel alternation and conjunction.
p: 4c6978d | pmichaud++ | src/Q (2 files):
Create separate 'alt', 'altseq', 'conj', 'conjseq' :rxtype nodes.
13:04 woosley joined
whiteknight It is actually very surprising to me that modern compilers would allow, silently or not, a keyword to be redefined or even undefined like that 13:05
atrodo That's because it's not the compiler doing it. it's the preprocessor, which is very stuipd
whiteknight still, you would think a modern preprocessor would include some basic sanity checks, and require an --allow-stupid-shit flag before silently redefining keywords 13:06
atrodo that i'll give you. but then again, this is c, that language that will not only let you shoot yourself in the foot, but give you the gun and make sure it's loaded 13:07
whiteknight as opposed to C++, which is so bent and convoluted you can never tell whether you're aiming at your own foot or not 13:08
or perl, which only aims at the foot of the person who has to maintain the code after you get fired 13:09
pmichaud actually, I think C is more like it'll let you shoot yourself in the foot if you want, but once you start handling the gun you're also likely to shoot yourself in the gut or face :-)
atrodo pmichaud++
whiteknight C is all about flexibility
moritz it's like glorified assembler, with the really interesting parts removed 13:10
pmichaud it's like PIR, only.... nah, let's not go there. :)
moritz for example all modern CPUs have an instruction that similtaneously calculate value and remainder of an integer division 13:11
where's that in C?
or you can simply ask the 'carry' flag if an overflow occured in an integer operation - why can't I access that from C? 13:12
whiteknight it occasionally magically appears when -O2
moritz: the carry flag is certainly not universal. Many compilers will offer intrinsics or inline assembly to get at machine-dependent features
moritz or an 'mul' of two integer registers sensibly puts the result in *two* registers
can I access those? 13:13
whiteknight the fact that most programmers don't want to use inline assembly is hardly an argument against it
moritz: in the intel compiler, there is a pretty big library of intrinsic functions which allow you to do all those things 13:15
msvc offers a certain amount as well, since they are typically only concerned with x86, historically
gcc has some extensions, but not nearly so many
moritz whiteknight: but that's not C, that's Intel Proprietary C With Extensions
whiteknight: you get my point, I think
NotFound whiteknight: C++ states that redefining keywords is not supported. 13:16
moritz does the preprocessor actually care about that? 13:17
13:20 bubaflub joined
bubaflub ~ 13:21
Felipe aloha 13:22
NotFound moritz: no, but if you break the rules you should know what you are doing. 13:28
whiteknight the point of that blog post is that a malicious employee can break the software in subtle and hard-to-debug ways 13:29
I suspect it is even easier in C++. Overload the + operator to return A + B - 1 13:30
or something silly
13:30 mj41 joined
whiteknight or overload the dereference operator to if(rand() % 10000) *NULL; 13:31
NotFound That point was already addressed in more depth by Kernighan years ago, by inserting a trick in the C compiler itself.
Decades ago.
whiteknight it is inserting tricks that is the problem 13:34
moritz in a dynop, how do I get a PMC's type name? 13:39
nopaste "NotFound" at 192.168.1.3 pasted "A slightly improved version with prettier output of the libxml2 tests" (157 lines) at nopaste.snit.ch/69280
whiteknight moritz: HLL-level type name? Probably something like VTABLE_get_string(INTERP, VTABLE_get_class(INTERP, $1)) 13:41
or if you're talking about lower-level built-in types, you would do $1->vtable->whoami;
moritz whiteknight: thanks
I think I want whoami
whiteknight for most HLL-defined objects, ->vtable->whoami is going to return "Object"
or, "SixmodelObject" 13:42
moritz actually, I don't quite know what I want :-)
rakudo has a perl6_code_object_from_parrot_sub opcde
whiteknight I wonder what that does :) 13:43
moritz which dies if its argument is not a parrot sub
and I want to improve the error message to include what it did get
whiteknight There is a flag somewhere that determines if the PMC is an Object or not
moritz I guess I'll just try if ->vtable->whoami gives me an interesting result 13:44
whiteknight if (PObj_is_object_TEST($1)) { ... ->vtable->whoami ... } else { VTABLE_get_string...} 13:45
of course, I don't know if SixModelObject sets that flag appropriately or not
If not, I think it should
moritz well, for now I don't even have the slightest idea what I've got that's not a parrot sub
since I got the stuff out of a backtrace 13:46
oh
moritz forgot the containerization, again
whiteknight it does not look like SixModelObject is getting that flag set. We should talk to jnthn__ and make sure that it is 13:48
jnthn__ We shouldn't set it or bits of Parrot will think they know what to do with it (e.g. treat it like an Object PMC), I suspect. 13:50
whiteknight all that flag does most of the time is prevent it from being treated like a low-level type 13:51
basically, prevent us from looking at ->vtable->base_type or ->vtable->whoami, both of which will be nonsensical for Object and SixModelObject 13:52
I *suspect*
If it does more than that, It's probably a bug on the parrot side
yeah, I just did a quick search, and it looks like that's all it does 13:58
there's one case in imageiofreeze PMC that is "interesting", but if that causes problems it's a bug 13:59
dalek kudo/nom: 7dc428f | Coke++ | t/spectest.data:
run another test. track failure modes
14:13
14:36 bluescreen_ joined
benabik o/ 15:05
tadzik \\o
15:25 rdesfo joined 15:35 darbelo joined, woosley left 15:39 not_gerd joined
not_gerd hello #parrot 15:39
tadzik hello not_gerd 15:41
15:51 rohit_nsit08 joined
whiteknight just figured out, after hours of debugging data corruption errors, that somebody changed the system encryption key last November 16:08
which means all records created before November cannot be decrypted, and cause data load errors 16:09
atrodo that seems secure
whiteknight "if we can't have the data, nobody can"
benabik "Is your data secure? Heck, it's so secure we can't even get at it!" 16:10
whiteknight it's for the development system, so it doesn't affect customers or end users. But it does make testing recent changes a pain
16:10 Eclesia left
whiteknight and of course, the DB has a huge tangled web of foreign key constraints on a huge set of heavily normalized tables, so deleting the old records is nigh impossible 16:12
I want to try and sell my boss on the Patented Whiteknight Nuclear Approach (c) to software fixing 16:13
not_gerd I set up a github account and pasted the two post I wrote today while sitting on a train
gist.github.com/1137275 about msys
whiteknight not_gerd++
not_gerd gist.github.com/1137289 about m0
got to leave for now, will be back for comments 16:14
whiteknight not_gerd: I'll review those tonight and merge if possibloe
possible
not_gerd whiteknight: the patch is not included - wasn't sure if I should just post a patch or create a github fork 16:15
anyway, reeally got to go now ;)
whiteknight not_found: patch or fork are both okay. 16:16
Later
16:26 Khisanth joined
cotto ~~ 16:26
aloha, clock?
aloha cotto: LAX: Wed, 09:26 PDT / CHI: Wed, 11:26 CDT / NYC: Wed, 12:26 EDT / UTC: Wed, 16:26 UTC / LON: Wed, 17:26 BST / BER: Wed, 18:26 CEST / TOK: Thu, 01:26 JST / SYD: Thu, 02:26 EST
16:33 theory joined
TimToady_ it's just wrong that aloha doesn't give Hawaiian time... 16:41
cotto bacek_at_work, ^ 16:42
TimToady_ the proper response is, "But they don't care about time there..." :) 16:44
cotto HST: whatever 16:47
16:58 rurban_ joined
whiteknight I had a boss at one of my first jobs who would always answer "it's miller time", and then he would drink a beer 17:01
he ended up intoxicated at work a lot, and I would end up having to run the cash register 17:02
eventually, I got a watch
17:03 darbelo joined
JimmyZ my superior always said it's very easy, and finally it take at least 5x times and more developer 17:03
2x more developer 17:04
17:12 Eclesia1 joined
Eclesia1 hi 17:12
cotto_work ~~ 17:17
dalek p: 29ad65d | jonathan++ | src/how/NQPClassHOW.pm:
Update NQPClassHOW.find_method for API extension.
17:24
17:25 rdesfo joined
dalek kudo/nom: 4799849 | pmichaud++ | src/core/List.pm:
Nonexistent List elements return Nil instead of Mu. JimmyZ++ TimToady++
17:51
17:53 not_gerd joined
JimmyZ guesses there should be a test for 4799849 17:56
18:13 JimmyZ joined
dalek kudo/nom: 0f044f2 | jonathan++ | src/Perl6/Actions.pm:
Should apply method traits before method installation (really should apply them much sooner after we parsed them, but that's a bigger refactor).
18:19
Eclesia1 question : I have a main function. and would like to return 0 or 1 when applications finishes. to tell the caller if it suceed or failed. just adding 'return 1' doesn't seem to work. how can I do this ? 18:41
whiteknight Eclesia: exit opcode 18:42
exit 1 or exit 0
Eclesia1 whiteknight: thanks
whiteknight I've always wondered why Parrot didn't have a return value from main 18:43
Eclesia1 what the hell ... 18:44
whiteknight: I call exit(1); in winxed. the result on the other side is '256'
at least when I set 0 it's still 0 ^^ 18:45
whiteknight hmm...that's a bug
I thought we had tests for that 18:46
unless winxed exit() is different from Parrot exit
Eclesia1 whiteknight: or perhaps it's because I encapsulate it with a spawn. here is how I use it : int res = spawnw(["parrot", "-L", "target-pbc", "target-pbc/Compiler1.pbc", "lib-1"]);
the compiler1 return exit(1); and res on the other side is 256 18:47
whiteknight return values are bytes, I think. It might be shifted
res >> 8 should return 1
but that's very weird to me
NotFound Eclesia1: What is the other side? 18:48
benabik What's spawnw from?
18:49 darbelo joined
Eclesia1 NotFound: I have a winxed function calling spawn. the 'other side' is this function, the one who called the spawn 18:49
NotFound Eclesia1: thy echo $? from the shell (or errorlevel in windows).
18:49 darbelo_ joined
Eclesia1 ?? 18:50
NotFound Eclesia1: exit and spawn work that way.
There is a comment somewhere in parrot saying that we should provide some independent way.... but comments aren't executable ;) 18:51
benabik Yessss… Status value from waitpid != exit code. My man page says the value has to be passed to a macro WEXITSTATUS to get the exit code. 18:53
NotFound This is what the winxed driver does to check results: retval = (retval >> 8) & 0xFF;
benabik That's probably reasonably portable.
dukeleto ~~ 18:54
18:57 rohit_nsit08 joined
Eclesia1 is there a parrot abreviation ? 19:06
for the word 'parrot virtual machine' ?
19:11 rohit_nsit08 joined 19:12 mj41 joined
benabik Eclesia1: I think people just say "Parrot" 19:13
whiteknight Eclesia: PVM 19:16
19:23 rohit_nsit08 joined 19:26 rdesfo joined
benabik "Multiple Dispatch: No suitable candidate found for 'concatenate_str', with signature 'PSP->P'" 19:30
??
19:32 rohit_nsit08 joined
moritz what does the PIR for that look like? 19:41
benabik I think… concat $P134, $P133, " :flat"
As that's the only concat in the block listed in the backtrace. 19:42
moritz you probably need all arguments of the same type 19:44
so either use $S134, $S133, " :flat"
benabik This is generated from NQP: @posargs.push($cpost ~ " :flat");
moritz try
@posargs.push(~$cpost ~ " :flat");
benabik ... 19:46
moritz well, in Perl 6 you don't have to do that
benabik Okay, that worked… I guess I should change the other similar uses?
moritz but nqp deosn't have that much runtime
benabik There is supposed to be a "concat PPS" opcode 19:47
Eh. It works now, so don't complain, I guess. 19:48
moritz the question is if you want 2 or 8 concat opcodes
benabik By "supposed to be", I mean it's listed in the string opcodes page. 19:49
Eh. 19:50
moritz benabik: ah, iirc some of the opcodes don't like constants as arguments, they require register 19:52
benabik moritz: I think it's some oddity with the concatenate VTABLE for the POST node.
moritz nqp: say(pir::concat__PPS(my $x = 3, 'foo')) 19:53
p6eval nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " 3, 'foo')"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23611 (src/stage2/gen/NQPHLL.pir:6348) (src/stage2/gen/NQPHLL.pm:329)␤»
moritz nqp: say(pir::concat__PPS(my $x := 3, 'foo'))
p6eval nqp: OUTPUT«3foo␤»
moritz nqp: say(pir::concat__PPs(my $x := 3, 'foo'))
p6eval nqp: OUTPUT«3foo␤»
moritz theory disproved
benabik nqp: say(pir::concat__PPS(my $n := POST::Node.new, 'foo')) 19:54
p6eval nqp: OUTPUT«Null PMC access in find_method('new')␤current instr.: '_block1000' pc 47 ((file unknown):41) (/tmp/M_ui2LKMtA:1)␤»
benabik nqp: say(pir::concat__PPS(my $n := PCT::Node.new, 'foo'))
p6eval nqp: OUTPUT«Null PMC access in find_method('new')␤current instr.: '_block1000' pc 47 ((file unknown):41) (/tmp/X2Y9PZhq3t:1)␤»
moritz not loaded
benabik Yeah, guess not.
It's loaded in interactive mode, which was my confusion.
moritz nqp: use NQPHLL; POST::Node.new 19:55
p6eval nqp: OUTPUT«Null PMC access in find_method('new')␤current instr.: '_block1000' pc 41 ((file unknown):38) (/tmp/qMnKABicC5:1)␤»
moritz nqp: PAST::Node.new
p6eval nqp: ( no output )
theory cries 19:57
benabik nqp: say(pir::concat__PPs(PAST::Node.new, 'foo')) 19:58
p6eval nqp: OUTPUT«Multiple Dispatch: No suitable candidate found for 'concatenate_str', with signature 'PSP->P'␤current instr.: '_block1000' pc 47 ((file unknown):39) (/tmp/Kd10AAYZvJ:1)␤»
benabik There it is!
moritz nqp: say(pir::concat__PPS(PAST::Node.new, 'foo')) 19:59
p6eval nqp: OUTPUT«Multiple Dispatch: No suitable candidate found for 'concatenate_str', with signature 'PSP->P'␤current instr.: '_block1000' pc 56 ((file unknown):70012314) (/tmp/50hq1nfQp8:1)␤»
benabik Probably a problem with the PCT or Capture VTABLE. 20:00
moritz I don't think so
the opcode should call the get_string vtable under the hood, but that's not what the error message is about 20:01
benabik concat PPS calls $1 = VTABLE_concatenate_str(interp, $2, $3, $1); 20:02
jnthn__ I think the issue is that Parrot doesn't have a MMD fallback
That is
A candidate that coerces
jnthn__ has run into this one plenty too
moritz benabik: then you're probably right, and I'm wrong 20:03
jnthn__ It's not really PCT of Capture's fault. I don't know what they could do differently to avoid this.
s/of/or/
benabik Have the appropriate candidate? 20:04
20:05 soh_cah_toa joined 20:12 rohit_nsit08 joined
dalek rrot: 2947ca6 | Whiteknight++ | compilers/imcc/imc (2 files):
IMCC looks like it was trying to support :multi(_) and :multi('_'), but the later was handled incorrectly and nonsensically. Fix this so now we can do :multi('_') also, for generic pmcs
20:17
20:23 dmalcolm joined
whiteknight msg NotFound: gist.github.com/1138138 20:26
aloha OK. I'll deliver the message.
whiteknight msg NotFound that works after 2947ca6, because FunctionModifierList doesn't parse [multi(_)], only [multi("_")] 20:27
aloha OK. I'll deliver the message.
dalek kudo/nom: 856dc3d | moritz++ | src/core/BackTrace.pm:
Revert accidential changes to BackTrace.pm from 48a3aed7e89
20:32
kudo/nom: 4aab0e5 | moritz++ | src/core/BackTrace.pm:
tweak BackTrace so that you can generate and print a bt easily from an Exception object
20:33 contingencyplan joined
dalek nxed: 23dc6d8 | NotFound++ | winxedst1.winxed:
new builtin var: cast to var type
20:58
Eclesia1 question : is it possible to catch was is printed when calling spawnw ? 21:02
NotFound Eclesia1: you can open a pipe in read mode 21:05
Eclesia1 NotFound: I mean redirect the output, so that the spawnw does not write in the console
NotFound Eclesia1: use the pipe and do nothing with the results read from it. 21:06
Eclesia1 NotFound: ok, so how do I create and link that pipe to the spawnw ? 21:07
NotFound handle.'open'('command', 'rp') 21:08
Eclesia1 NotFound: I don't get it, where does that handle come from ? 21:09
I just have : spawnw(["parrot", "-L", "target-pbc", "target-pbc/Compiler1.pbc", "lib-1"]);
NotFound Eclesia1: new ['FileHandle'] 21:10
Eclesia1 (I'm in winxed if you present to write it in wx)
prefer* 21:11
NotFound In winxed you can just do: var handle = open("command", "rp")
The builtin open creates the FileHandle and call its open method.
Eclesia1 a FileHandle to open a command ... weird
NotFound The downside is that you must build the command string and be careful with possible shell handling of quotes. 21:12
Eclesia1: is like the C popen function.
Eclesia1 NotFound: with this method, I won't have the int result of the spawnw execution either ? 21:14
NotFound Eclesia1: you get the result value as the result of the close method in the handle, if I remember well. 21:15
21:25 perlite_ joined 21:26 rdesfo joined 21:30 darbelo joined
Eclesia1 time to go +++ 21:45
21:45 Eclesia1 left 21:49 Psyche^ joined
cotto_work soh_cah_toa++ 22:00
soh_cah_toa for?
cotto_work the post to parrot-dev 22:08
22:08 pbaker joined
soh_cah_toa ah, yes 22:08
very excited about that
cotto_work fire and forget?
;)
soh_cah_toa :)
jnthn__ fwiw, while the Parrot debug seg info tends to be way off, in my experience the annotations tend to be quite accurate. 22:09
soh_cah_toa it varies from compiler to compiler
jnthn__ OK
jnthn__ can believe that
soh_cah_toa which is why its unreliable and a debug segment is a better solution
jnthn__ I'm not sure how the annotations aren't a debug segment. 22:10
Aside from maybe a lack of standardization.
soh_cah_toa well i have an idea for a similar line number table which i'm writing up atm
jnthn__ (e.g. compilers can emit whtever annotations they want)
Note that you can
.annotate 'any_key', 'any_value'
Or whatever teh syntax is. 22:11
soh_cah_toa right
jnthn__ We used that to do some stuff in Rakudo a while back.
Though in nom we're only using what PCT emits at the moemnt (so, line and file)
soh_cah_toa yeah
jnthn__ Anyway, just thought I'd add as a data point that I've found the line numbers I get out of NQP and Rakudo/nom to be essentially accurate. 22:12
soh_cah_toa i suppose the compiler can use annotations for its own needs but a symbolic debugger really can't do much w/ it
nqp...yeah i think they're alright
jnthn__ Well, it can if it knows what it's looking for.
:)
But I agree you're relying on convention there.
soh_cah_toa ok 22:13
jnthn__ (e.g. 'line' and 'file' aren't magical in any way)
Anyway, very happy somebody is focusing on this.
soh_cah_toa yup
i wouldn't be surpised to see a lot more perl 6 users once we have a real debugger using a debug segment 22:14
which makes me real happy :)
jnthn__ One thing to take into account is that the Perl 6 optimizer - which'll likely land in a couple of months - will probably do a lot of inlining style optomizations. 22:15
So if you're working on new debug segment stuff, that's one thing to keep in mind. 22:16
soh_cah_toa yes definitely
optimizations can cause problems for debuggers
jnthn__ One Parrot level sub could actually end up containing stuff that the user sees as having been in many different ones.
Aye.
soh_cah_toa escpecially runtime optimizers
22:45 daniel-s joined 22:49 darbelo_ joined 23:30 rdesfo joined 23:55 nbrown joined 23:58 kid51 joined