|
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
|
|||