|
Parrot 3.4.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today Set by moderator on 17 May 2011. |
|||
| soh_cah_toa | the only parrot-related headers it includes is parrot/api.h and parrot/longopt.h both of which are listed as dependencies | 00:00 | |
| mikehh | probably one of the major ones like parrot.h | 00:01 | |
| or extend.h or embed.h or something like that | |||
| soh_cah_toa | it's a frontend program though. if it uses the api, isn't it not supposed to include anything but parrot/api.h? | ||
| whiteknight | soh_cah_toa: right. Just api.h | 00:04 | |
| unless you are trying to use funcions from elsewhere | |||
| soh_cah_toa | hmm...b/c if i do include parrot/parrot.h, it passes | ||
| whiteknight | weird | 00:08 | |
| dukeleto | mikehh: i am seeing t/pmc/threads.t randomly fail: gist.github.com/1034700 | 00:09 | |
| soh_cah_toa | yeah, there isn't a single non-Parrot_api_* call anywhere. could it be b/c it defines PFOPT_UTILS? whatever that does | ||
| mikehh | dukeleto: it tends to fail on me about once a week or so,but if I re-run the test it nearly always passes | 00:10 | |
| dukeleto: I have seen that one before I think, I usually fail with a Segmentation fault though | 00:13 | ||
| dukeleto: but there does not seem to be any consistancy about it, and it tends to fail in different test areas | 00:15 | ||
| dukeleto | mikehh: it it GC-related. It seems to usually fail during large test suite runs, but passes when run with prove individually | ||
| mikehh | dukeleto: yeah, probably, it has most often failed for me when running make fulltest, but usually not in the same test, testb, testf or testr | 00:17 | |
| and I don't think I have had it fail more thatn once | 00:18 | ||
| I wonder if it could be a write barrier or something like that | 00:22 | ||
|
00:24
daniel-s left
|
|||
| dukeleto | github.com/nlemke/nyan/raw/master/2.jpg | 00:36 | |
| dalek | rrot: 7684807 | soh_cah_toa++ | / (5 files): Fix for TT #2134 |
01:17 | |
| rrot: 9411d47 | soh_cah_toa++ | frontend/pbc_disassemble/main.c: Removed ctype.h from pbc_disassemble because it didn't rely on anything in it |
01:30 | ||
|
01:31
kid51 joined
01:38
whiteknight left
01:47
ligne joined
|
|||
| kid51 | Some testing results. | 01:59 | |
| at 037628f8a | |||
| make test; make fulltest PASS on linux/i386 | |||
| make test PASS on Darwin/PPC | 02:00 | ||
| at 9411d47f3624 (latest); make test PASS with all g++ build on linux/i386 | |||
|
02:05
woosley joined
|
|||
| dalek | rrot: 4b296a2 | soh_cah_toa++ | src/ (17 files): Fixed several perldoc rendering issues and added a few "SEE ALSO" sections |
02:12 | |
| kid51 | soh_cah_toa: Links like svn.perl.org/perl6/doc/trunk/design/syn/S12.pod do not appear to be valid any more. | 02:21 | |
| soh_cah_toa | kid51: i was gonna remove that but i didn't wanna make anyone angry | 02:22 | |
| kid51 | We'd probably be better off asking the Perl 6 people what the current definitive location for the Synopses is. | 02:23 | |
| soh_cah_toa | kid51: ok. so remove it or leave it? | ||
| kid51 | Perhaps (i) grep our repository for similar links; (ii) post to perl6-users about a more current location | 02:24 | |
| soh_cah_toa | sure | ||
| what is it exactly? the synopsis for perl 6 objects? | 02:25 | ||
| kid51 | The Synopsis, IIRC, was Larry Wall's plan for Perl 6 ... or maybe Damian Conway's summary thereof | 02:26 | |
| soh_cah_toa | how about this? perlcabal.org/syn/S12.html | 02:27 | |
| kid51 | That looks better. | 02:28 | |
| soh_cah_toa | alright | ||
| kid51 | Thanks. | 02:29 | |
| kid51 must sleep | |||
|
02:29
kid51 left
02:30
rurban_ joined
02:33
rurban left,
rurban_ is now known as rurban
|
|||
| dalek | rrot: cb9eaf0 | soh_cah_toa++ | src/multidispatch.c: Updated links to Perl 6 synopsis and apocalypse 12. Also deleted a few duplicate blank lines |
02:35 | |
|
02:44
bubaflub joined
|
|||
| cotto | ~ | 03:02 | |
| soh_cah_toa | cotto: hey | 03:13 | |
| cotto | hi soh_cah_toa | 03:14 | |
| soh_cah_toa | while i was working on pbc_disassemble, i had to take a look at a few of its tests and i got a few ideas | 03:15 | |
| just to get atleast something working, i'm gonna test that it recognizes switches and displays the right output just like t/tools/pbc_disassemble.t | |||
| cotto | sure. That's a start. | ||
|
04:01
bubaflub left
04:08
SHODAN left
04:31
soh_cah_toa left
05:47
theory left
06:20
fperrad joined
|
|||
| cotto | msg dukeleto M0 primitive strings (i.e. not objects) need to have a discoverable length. The options I see are C-style null-terminated strings and length-prefixed strings. Thoughts? | 07:01 | |
| aloha | OK. I'll deliver the message. | ||
| cotto sleeps | |||
|
07:02
mj41 joined
07:14
zby_home left
07:17
mj41_nb joined
07:18
mj41 left
07:28
bacek_at_work left
07:55
ligne left
08:05
aloha left
08:20
cotto left
08:50
daniel-s joined
08:57
bacek_at_work joined
09:00
aloha joined
09:20
perlite joined
09:39
JimmyZ joined
10:07
woosley left
10:30
rurban_ joined
10:35
rurban left,
rurban_ is now known as rurban
10:38
klavspr joined
11:12
JimmyZ_ joined
11:16
JimmyZ left,
JimmyZ_ is now known as JimmyZ
11:22
klavs joined
11:38
klavs left
11:48
JimmyZ_ joined,
dod left
11:53
JimmyZ left,
JimmyZ_ is now known as JimmyZ,
dod joined
|
|||
| Coke yawns | 12:41 | ||
|
12:50
mtk joined
12:54
bubaflub joined,
smash joined
|
|||
| smash | hello everyone | 12:54 | |
| daniel-s | hey Dr Nick | 13:10 | |
| I mean smash | |||
|
13:15
klavspr left
13:53
jsut_ joined,
jsut left
13:54
PacoLinux joined
13:57
lucian joined
14:16
lucian_ joined,
lucian left
14:18
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 14:21 | |
| bubaflub | morning whiteknight | 14:31 | |
| whiteknight | hello bubaflub. How are things going with you and your work? | 14:33 | |
| bubaflub | whiteknight: not bad at all. didn't have as much time this weekend as i thought i would to work on it, but i'm still ahead of my schedule. | 14:34 | |
| whiteknight: still go that segfault i need to look into, but i have a feeling it'll be straightforward. | |||
| seen plobsing | |||
| aloha | plobsing was last seen in #parrot 2 days 11 hours ago joining the channel. | ||
| whiteknight | bubaflub: Do you have a backtrace for this segfault? | 14:35 | |
| bubaflub | whiteknight: no - how would i produce one? | ||
| whiteknight | do you have gdb? | ||
| bubaflub | (backtrace, not segfault) | ||
| yes | |||
| gdb winxed while i run the test? | |||
| whiteknight | run the program in gdb. When you get to the segfault, type "bt" | ||
| bubaflub | whiteknight: ok, one sec. | ||
| whiteknight | then, copy+paste as much of the result as you reasonably can | ||
| (if there's like an infinite loop, and there are a few thousand lines, don't give me all of that :) | 14:36 | ||
| bubaflub | hmm, i thought i could just do gdb "winxed t/integer/get/01-get.t" | 14:37 | |
| but it's not liking that | |||
| do i need some other incantation? | |||
| Coke | gdb needs an executable. | ||
| bubaflub | Coke: i thought that was the winxed part | 14:38 | |
| Coke | gdb "thing args" treats "thing args" as as a single arg. | ||
| bubaflub | Coke: ah, ok | ||
|
14:38
klavs joined
|
|||
| bubaflub | do i need something like | 14:38 | |
| moritz | gdb exec | ||
| bubaflub | gdb winxed -- args | ||
| moritz | run your arguments here | ||
| Coke | I usually do what moritz said - gdb executable in the shell, then the literal "run" with args after it in gdb. | ||
| whiteknight | gdb --args winxed t/integer/get/01-get.t | ||
| then, type "start", "c", and "bt" | 14:39 | ||
|
14:39
daniel-s left
|
|||
| bubaflub | well, the back trace is pretty simple | 14:41 | |
| Program received signal EXC_BAD_ACCESS, Could not access memory. | |||
| Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000 | |||
| 0x00000001003ede4a in __gmpz_get_d_2exp () | |||
| (gdb) bt | |||
| #0 0x00000001003ede4a in __gmpz_get_d_2exp () | |||
| #1 0x000000010047e364 in ffi_call_unix64 () | |||
| #2 0x000000010059a070 in ?? () | |||
| whiteknight | that's it? Doesn't even look like there is any parrot in there | 14:42 | |
| bubaflub | that's it | ||
| whiteknight | and you're running your program from Parrot? | ||
| bubaflub | well, from winxed | ||
| moritz | maybe the parrot doesn't have any debug symbols? | 14:43 | |
| bubaflub | i can compile the winxed test to PIR and run it htere | ||
| i can make realclean and re compile the parrot with other options | |||
| whiteknight | bubaflub: compile parrot without --optimize | 14:49 | |
| bubaflub | whiteknight: ok. is --optimize turned on by default? | ||
| whiteknight | no, it shouldn't be | 15:00 | |
| if you just do a basic "perl Configure.pl" without options, you should get a deubg build | 15:01 | ||
| debug | |||
| bubaflub | whiteknight: still not getting any bigger backtrace | 15:06 | |
|
15:08
cosimo joined
15:13
contingencyplan left
|
|||
| whiteknight | okay, weird | 15:14 | |
| okay, you need to step through the program. Type "start" to restart the program | 15:15 | ||
| Then you probably want to break at something like "break Parrot_NCI_invoke" | |||
| then "c" to run the program until that point | 15:16 | ||
| bubaflub | whiteknight: ok | 15:17 | |
| atrodo | whiteknight> ping | 15:20 | |
| whiteknight | atrodo: pong | ||
| atrodo | whiteknight> I just realized this weekend I didn't have a YAPC project | 15:21 | |
| So i decided it's either going to be updating draak to use the new embedding API or work on opsc_lasm | |||
| whiteknight | atrodo: both cool projects | ||
| I'm still not nearly as familiar with draak as I should be | |||
| atrodo | I'm leaning towards the former, so I'm probably going to be looking for some help the next couple days to get acquanted with the new api | ||
| whiteknight | okay, definitely. I'd be glad to help | 15:22 | |
| or, at least answer questions | |||
| atrodo | sweet, tahnks | ||
| whiteknight> Actually, i was hoping you'd write it for me ;) | |||
| whiteknight> actually, is there a good primer doc for the new api? | |||
| whiteknight | There were some docs, I can't remember exactly where or how great condition they are in | 15:23 | |
| I can start digging those out and dusting them off | |||
| benabik | G'morning, #parrot | ||
| whiteknight | The code is probably the best example. frontend/parrot/main.c is where to look for most uses | 15:24 | |
|
15:24
theory joined
|
|||
| atrodo | whiteknight> Thanks. I'll probably check it out during lunch | 15:25 | |
| whiteknight | I'll look through some docs tonight when I get home and see what I can do about improving them. | ||
| or, at least exposing them | |||
| here's what we have now: github.com/parrot/parrot/blob/mast...ed_new.pod | 15:26 | ||
| I'll go over that with a fine-toothed comb and improve it for you | |||
| atrodo | whiteknight++ | 15:27 | |
|
15:29
daniel-s joined,
theory left
|
|||
| bubaflub | whiteknight: hah! i figured it out. it was a stupid mistake on my part. i was passing in a pointer that i didn't have a structview for | 15:32 | |
| dalek | 0: e638bd1 | klavs++ | item.c: minor fix |
||
| 0: c12e302 | klavs++ | dm0.c: print x with ops, if str const has >0 NL char - do not print |
|||
| 0: d224bc2 | klavs++ | / (2 files): fixed convert_x_x |
|||
| 0: ebf1243 | klavs++ | dm0.c: update |
|||
| 0: e9b4ba6 | klavs++ | item.c: fixed HasItem() |
|||
| bubaflub | whiteknight: what does the [immediate] tag on a function do? i imagine it's something like inlining, right? | 15:37 | |
| PerlJam | bubaflub: immediate execution (as soon as its parsed) | ||
| bubaflub | PerlJam: ok. | 15:39 | |
| whiteknight: could you take a look at gist.github.com/1035844 and tell me what i'm doing wrong? when define int_t in the test file everything passes; i'd like to move that definition of int_t out of the test file and into Integer.winxed but i'm getting an error. | 15:44 | ||
|
15:51
daniel-s left
|
|||
| whiteknight | so when you break out int_t into a separate file, you get an error? | 15:51 | |
| bubaflub | yep | 15:53 | |
| whiteknight | what kind of error? runtime? compile-time? | 15:54 | |
| moritz | does returning a value from an :immediate sub work? | ||
| whiteknight | moritz: yes. You can return one value. It gets stored in the constants table in place of the function | ||
| moritz | whiteknight: ok | ||
| bubaflub | whiteknight: run-time. "Null PMC access in find_method('alloc')" | ||
| which i imagine means something like int_t isn't actually returning anything and then i'm calling alloc() on a big ole nothing | 15:55 | ||
| whiteknight | bubaflub: I don't know how immediate subs work in Winxed. In PIR, I don't know if they work in separate files | ||
| immediates create a staticly visible constant, that might not be visible between separately loaded pbcs | |||
| bubaflub | whiteknight: ok. i'll try nix-ing the immediate. can i do a chained method call like int_t().alloc() | ||
| whiteknight | bubaflub: sure, you can do that. You can get a similar effect with a coroutine | 15:56 | |
| function int_t() { var int_t = ...; while(1) yield int_t} | |||
| that way you aren't creating a new StructView on every call to int_t, if you're worried about churn | |||
| moritz | somehow that has the smell of premature optimization | ||
| or are you trying to create a singleton for semantic reasons? | 15:57 | ||
| whiteknight | moritz: I'm only suggesting that as a replacement for his current code | ||
| Winxed doesn't have an easy way to store global data, so the best way to do it without dropping to PIR is a coroutine right now | 15:58 | ||
| moritz | so in the current way, can't int_t be an ordinary routine? | ||
| whiteknight | sure, it can be. But if you do that you create a new StructView on each invocation | ||
| it's different semantics, I don't want to blindly mix and match if the application has specific needs | |||
| bubaflub | whiteknight: interesting; i might not use it for int_t because currently it's only needed for one function | 16:00 | |
| whiteknight: but i'll keep it in mind for gmpz_t - that way every time we create a big int we don't have to create a separate structview | 16:01 | ||
| whiteknight | okay, then just use a regular function or something | ||
| bubaflub | although currently gmpz_t is in the same file as the constructor so i can use [immediate] | ||
| whiteknight: updated gist.github.com/1035844 with working code. it seems a bit ugly but it works. | 16:02 | ||
| whiteknight | doesn't look ugly to me at all | ||
| brb, food | |||
| bubaflub | whiteknight: good enough. thanks. | ||
| dalek | rrot-gmp: 1bda307 | bubaflub++ | src/GMP/Integer. (3 files): add int_t type function this will allow us to call functions that take int * as a parameter |
16:05 | |
|
16:05
theory joined
|
|||
| dalek | rrot-gmp: 3182194 | bubaflub++ | t/integer/get/01-get.t: fix test that was segfaulting i was foolishly passing in a blank var instead of a StructView allocated for an integer |
16:05 | |
|
16:07
mj41_nb left
16:23
JimmyZ left,
JimmyZ joined
16:29
klavs left
16:44
cotto joined
16:46
preflex left
16:49
preflex joined
16:56
soh_cah_toa joined
|
|||
| soh_cah_toa | ~~ | 16:59 | |
|
17:09
JimmyZ left
|
|||
| cotto_work | ~ | 17:11 | |
| soh_cah_toa | cotto_work: hey | 17:12 | |
| cotto_work: well, i have my first tests and they pass. they're not very important ones but at least it's something :) | |||
| cotto_work | Having something is great. | 17:13 | |
| Are you just testing cli args or are you actually having the tests run hbdb and check its output? | |||
| soh_cah_toa | the cli switches test work so that's my next task | 17:14 | |
|
17:14
ambs joined
|
|||
| soh_cah_toa | i have to dig through IPC::Open3 still. i think it will work nicely though | 17:15 | |
| cotto_work | Yup. Just read the documentation carefully. | 17:17 | |
|
17:17
Eclesia joined
|
|||
| Eclesia | hi | 17:17 | |
| cotto_work | Contact over the next two weeks will be interesting. I'm at OS Bridge starting Tuesday through Friday, then I'm taking off on Saturday to YAPC::NA, getting back Friday and heading out again for the 4th of July weekend. | 17:18 | |
| I won't be unreachable during that time, but it'll be harder than normal. | 17:19 | ||
|
17:19
dmalcolm joined
|
|||
| soh_cah_toa | well, i'll be at yapc so that's not an issue | 17:19 | |
| cotto_work | I'll probably end up leaving a lot of comments on github. | ||
|
17:19
alester joined
|
|||
| soh_cah_toa | hopefully, i can get some much needed advice during the hackathon :) | 17:20 | |
| and as for the other days you'll be away, i can always ask the other devs here | 17:21 | ||
| so i don't think any of that will be a problem | |||
| cotto_work | great | ||
| soh_cah_toa crosses his fingers | |||
| i'm going away for two weeks at the end of july | 17:22 | ||
| but i'll still have internet access and will continue to work as usual | |||
|
17:25
lucian joined
|
|||
| dukeleto | ~~ | 17:25 | |
|
17:28
lucian__ joined
17:29
lucian_ left
17:31
bubaflub left
|
|||
| dalek | rrot/soh-cah-toa/hbdb: 918811f | soh_cah_toa++ | / (5 files): Removed old tests and added two new tests for checking command-line switches |
17:31 | |
|
17:33
lucian left
|
|||
| cotto_work | soh_cah_toa: I'd encourage you to write and nopaste a quick & dirty minimal example of using IPC::Open3 to run hbdb once you understand it well enough to do so. | 17:33 | |
| soh_cah_toa | sure, i'm looking through the docs now | 17:34 | |
| Eclesia | question : is winxed in parrot by default ? | 17:36 | |
| cotto_work | Eclesia: it is now | ||
| Eclesia | ok | ||
| cotto_work | It was added within the last couple weeks. | 17:37 | |
| dukeleto | cotto_work: i am not sure what kind of primitive strings m0 should have. Null-terminated seems reasonable, I guess | 17:40 | |
| Eclesia: it just got added. The 3.6.0 release (in one month) will be the first supported release containing winxed | 17:41 | ||
| Eclesia: tuesday's 3.5.0 release will be the first dev release with Winxed | |||
|
17:42
smash left
17:45
lucian__ left
17:46
lucian joined
|
|||
| cotto_work | I may end up cutting the release tonight so I don't have to try doing that on the road. | 17:46 | |
| also not quite sure how #ps is going to work | 17:47 | ||
| atrodo | dukeleto> I vote for pascal style, length specified style | 17:48 | |
| cotto_work | atrodo: what does that buy us? | ||
| atrodo | cotto_work> nulls in strings | 17:49 | |
| cotto_work | Having null-terminated string will make translating between C and the M0 overlay easier. | ||
| atrodo | and a small benefit, speed of knowing how long a string is | ||
| Eclesia | winxed code must be compiler before being usable ? | ||
| atrodo | cotto_work> that's true, but that assumes a c world and could enforce those assumptions on all HLLs | 17:51 | |
| cotto_work | HLL strings won't need to be M0 strings underneath, similarly to how STRINGs aren't a wrapper around C strings. | 17:53 | |
|
17:54
bubaflub joined,
lucian_ joined
|
|||
| atrodo | But HLLs would have to translate from HLL string to M0 string for some operations, wouldn't they? | 17:54 | |
| Eclesia | parrot file.winxed ? not possible ? | ||
| cotto_work | You can pretend that they are by messing with ->strstart, but there's a reason we strongly discourage that. | ||
| Eclesia: you need to use the winxed compiler. | 17:55 | ||
| atrodo: sure, but that's not the majority of what the code will be doing. | |||
| Eclesia | ok, so parrot do not reconize file extension an associate the correct compiler | 17:56 | |
| cotto_work | only for pir and pasm | ||
| and pbc | |||
| atrodo | but what if there is null in a HLL string? Say, for a key lookup or something? | 17:57 | |
|
17:58
lucian left
|
|||
| cotto_work | Hash lookups are usually done with STRING* keys if a stringy thing is needed. | 17:59 | |
| atrodo | So maybe a better question is what are m0 strings used for? | ||
| cotto_work | almost by definition, they'll be used wherever we use C strings now | 18:01 | |
| NotFound | Eclesia: you can compile winxed to pir, or use the 'winxed' executable. | ||
| cotto_work | anything between when a string gets passed to Parrot and when it can be converted to a STRING* | ||
| atrodo | So is the S register a m0 string or STRING*? | 18:02 | |
| cotto_work | Currently I'm using them for M0 strings, but that's just because there aren't any object strings yet. | 18:03 | |
| bubaflub | dukeleto: whiteknight++ helped me fix the one test i had that was segfaulting so now all tests pass. | 18:04 | |
|
18:06
lucian joined,
lucian_ left
|
|||
| whiteknight | bubflub: All tests pass? Time to add more tests! | 18:07 | |
| tadzik | I had that attidute on last week's GSoC task | 18:08 | |
| I was _annoyed_ by the fact that everything passes | |||
| atrodo | tadzik++ | ||
| tadzik | not sure if that's really the Right Attitude | 18:09 | |
| atrodo | tadzik> Sure it is. It means you're never done | ||
| cotto_work | tadzik++ | 18:12 | |
| It's a great attitude until you have complete test coverage. | |||
| atrodo | whiteknight> ping | 18:14 | |
| tadzik | it's quite different when writing parsers, methinks. The coverage is never 100% :) | ||
| atrodo | code coverage rarely reaches 100%, and that's usually not the right goal to aim for | 18:15 | |
| cotto_work | That's why I didn't say 100%. ;] | 18:16 | |
| tadzik | :) | 18:17 | |
| atrodo | cotto_work++ # subtle and correct | ||
| cotto_work | obvious and correct would have been a better choice | 18:18 | |
| Eclesia | in winxed, how do I transform an int to a char ? | ||
| atrodo | subtle wording | ||
| NotFound | Eclesia: use the chr builtin | 18:19 | |
| dukeleto | whiteknight: ping | 18:20 | |
| Eclesia | NotFound: thanks | 18:22 | |
| whiteknight | dukeleto: pong | 18:23 | |
| dukeleto | whiteknight: i need your help in trying to add test coverage to Parrot_sub_new_from_c_func . I attempted to register a PIR compreg to make the TODO tests for it actually run, but failed | 18:25 | |
| whiteknight: my grant is done except I need 0.9% more test coverage and Parrot_sub_new_from_c_func is the only way to get there: tapir2.ro.vutbr.cz/cover/latest-c_c...end-c.html | 18:26 | ||
| whiteknight | is that function used anywhere? | ||
| oh, you don't need a compiler or anything like that. This is an easy one | 18:27 | ||
| dukeleto | whiteknight: this is my failed attempt github.com/parrot/parrot/commit/a0...54aaeb472a | ||
|
18:27
lucian_ joined
|
|||
| whiteknight | no, you don't need anything like that | 18:28 | |
| dukeleto | whiteknight: if you could make just one of the tests in t/src/embed.t pass, then I can take over from there. | ||
| whiteknight | let me put together an example | ||
| dukeleto | whiteknight: i figured I was barking up the wrong tree | ||
| whiteknight: thanks so much! | |||
| whiteknight: that function is only used in the tests. I don't see any use of it anywhere in Parrot core | 18:29 | ||
| whiteknight: do you think anybody outside core is using it? | |||
| whiteknight | I suspect we can deprecate it. I also suspect it's duplicate functionality of something else | ||
| dukeleto | whiteknight: i have verified that neither Rakudo nor PL/Parrot use it | 18:30 | |
| nor does Blizkost | 18:31 | ||
|
18:31
lucian left
|
|||
| whiteknight | gist.github.com/1036232 | 18:31 | |
|
18:32
lucian joined
|
|||
| whiteknight | that's an extremely quick stab at it. Should point you in the right direction | 18:32 | |
| dukeleto | whiteknight: i also fixed a bunch of missing PARROT_CALLIN_START/END in extend.c | ||
|
18:32
rurban_ joined
|
|||
| whiteknight | Actually, Parrot_ext_call should use a signature "I->I" | 18:32 | |
| but other than that, I think that's pretty close to what your test wants to be | |||
| dukeleto | whiteknight: awesome, thanks | ||
| whiteknight | basically, that function wraps a C function in an NCI PMC | 18:33 | |
| dukeleto | whiteknight: your TODO comments in the tests lead me to believe that some kind of PIR compiler needed to be registered for stuff to work | ||
| whiteknight | for some tests, at least as they were previously written | ||
|
18:34
lucian__ joined
|
|||
| whiteknight | the coverage, and the quality of tests wasn't too great back then, so I didn't pain myself to really dig in and sort it all out | 18:35 | |
|
18:35
rurban left
|
|||
| whiteknight | so it's good you're doing it. Don't let my lazy comments get in your way | 18:35 | |
|
18:35
rurban_ is now known as rurban
18:36
lucian___ joined,
lucian_ left
18:39
lucian left
18:40
lucian__ left,
ambs left
18:44
lucian joined
18:46
elmex left
|
|||
| Eclesia | can someone translate this error in some human words ? pastebin.com/2yZb8D0y | 18:47 | |
| whiteknight | Eclesia: Looks like an internal Winxed compile error of some variety | 18:48 | |
| Eclesia | found it. case sensitive on a variable name | ||
| NotFound | Eclesia: it's a winxed bug. Let me see the source that triggers it. | ||
|
18:48
mj41_nb joined
18:49
lucian___ left
|
|||
| Eclesia | NotFound: 10sec, finishing something | 18:49 | |
| NotFound | Eclesia: 'k | ||
| dalek | website: lucian++ | Compiler work | 18:51 | |
| website: www.parrot.org/content/compiler-work | |||
| lucian | dukeleto: there :P | 18:52 | |
| lucian wishes blog posts would write themselves from residual brain waves | |||
| Tene | lucian: let me know when you get that working | ||
| lucian | Tene: right after M:N language interop :P | 18:53 | |
| Tene | lucian: I had that working two years ago :P | 18:54 | |
| lucian | Tene: how 'bout now? :P | ||
| Eclesia | NotFound: just to be sure. there are no colored outputs in parrot ? | 18:55 | |
| lucian | Tene: and i think the answer is "secretary" | ||
| Eclesia | NotFound: pastebin.com/C95db11D | 18:56 | |
| Tene | lucian: "secretary" doesn't pick up from residual brain waves; you still have to dictate the content verbally. | ||
| lucian | Tene: not if you mutter while you work | ||
| Eclesia | whiteknight: would a x3.64 class be a good contribution for rosella ? | ||
| Tene | oh man, I really wouldn't want anything produced from my work-mutterings to be published with my name on it. | 18:57 | |
| lucian | Tene: you'd seem a little crazy, though. and the secretary would have to be a good editor too | ||
| NotFound | Eclesia: there is a curses module, but I don't think it can do colors well. | 18:58 | |
| Eclesia: that code doesn't trigger the bug for me. | |||
| whiteknight | Eclesia: depends. What is x3.64? | 18:59 | |
| Tene | There would be lots of cursing, and lots of horrible misleading ideas. | ||
| Eclesia | NotFound: to reproduce the bug replace the named var x364 by X364 | ||
| NotFound | Eclesia: in functon init? | ||
| Eclesia | NotFound: when you use it : X364.FOREGROUND_REd | ||
| lucian | Tene: just like my blog posts! see? | 19:00 | |
| NotFound | Eclesia: fine, thanks. | ||
| Tene | Huh; I don't remember cursing on your blog posts; apparently I've been reading the wrong blog. | ||
| lucian | Tene: hmm, it's possible i read the drafts before publishing :) | 19:01 | |
| Eclesia | NotFound: X3.64 are some codes handle by all terminals. works pretty well on windows/linux/mac. en.wikipedia.org/wiki/ANSI_escape_code | ||
| (well not all, but a waste majority) | |||
| (waste = huge , sorry french word) | 19:02 | ||
| NotFound | Eclesia: yes, it seems useful. | ||
| Eclesia | NotFound: is there no way to declare a string in a winxed class ? | ||
| NotFound | Eclesia: no, parrot attributes are PMCs and I've not implemented yet a way to work around that, | 19:03 | |
| Eclesia | NotFound: can not make any constants ? | 19:04 | |
| NotFound | Eclesia: At class level? | 19:06 | |
| Eclesia | NotFound: yes | ||
|
19:06
elmex joined
|
|||
| NotFound | There was some problems with that, I don't remeber if they got fixed. | 19:06 | |
| Eclesia | NotFound: and also, is there a somthing similar to 'say' but without at line jump at the end | ||
| NotFound | Eclesia: print | 19:07 | |
| Eclesia | thx | ||
|
19:13
mj41_nb left
|
|||
| dalek | nxed: r1053 | NotFound++ | trunk/winxedst1.winxed: fix bug class name being recognized as a function, Eclesia++ |
19:13 | |
| nxed: r1054 | NotFound++ | trunk/pir/winxed_compiler.pir: update installable compiler |
|||
| Eclesia | ? | ||
|
19:14
lucian_ joined
|
|||
| Eclesia | NotFound: sorry to bother again : I'm trying to make a concatenation of different types . (String) "\\u001B[" + (byte)31 + (char)'m' | 19:16 | |
| NotFound: how can I write that in winxed ? | |||
|
19:17
lucian left
|
|||
| NotFound | Eclesia: chr should do it, but looks like there is a bug in chr with const argument that I thought it was fixed. | 19:23 | |
| This should work, but fails right now: "\\u001B[" + chr(31) + chr(m) | 19:24 | ||
| Eclesia | I had the same problem in pir. so looks like in parrot, not winxed. | 19:25 | |
| NotFound | You can use: "\\u001B[\\x1F" + chr(m) for a now. | 19:26 | |
| Don't know about that parrot problem, but winxed is generating wrong pir. | 19:27 | ||
| dalek | rrot: 9420e50 | jkeenan++ | frontend/pbc_disassemble/main.c: [codingstd] Fix formatting of copyright line. |
19:34 | |
|
19:42
klavs joined
19:43
dodathome joined
19:44
ambs joined
|
|||
| Eclesia | NotFound: here every code works : pastebin.com/Ak5rv6Di . do you know anything I could do avoid any modification on vars ? | 19:45 | |
| do to avoid* | |||
| NotFound | Eclesia: you can use methods that return the values, instead of exposing the attributes. | 19:49 | |
| Eclesia | hm... I think I'll wait for you to make the constants work ^^ | 19:51 | |
| NotFound | Eclesia: if you want to hide them, you can put the values in a namespace and use them in the class. | 19:52 | |
| Eclesia | NotFound: that enough for today. thanks for the help :) ++ | 19:55 | |
|
19:55
Eclesia left
20:05
klavs left
|
|||
| dalek | nxed: r1055 | NotFound++ | trunk/winxedst1.winxed: fix generated pir of strings results from constant expressions with low-ascii |
20:09 | |
| nxed: r1056 | NotFound++ | trunk/pir/winxed_compiler.pir: update installable compiler |
|||
| rrot: f31e96b | NotFound++ | ext/winxed/compiler.pir: update winxed snapshot to r1054 |
20:14 | ||
| rrot: acf170c | NotFound++ | ext/winxed/compiler.pir: update winxed snapshot to r1056 |
|||
|
20:14
mj41 joined
20:19
contingencyplan joined
20:27
whiteknight left
20:28
dodathome left
20:31
lucian_ left
20:39
lucian joined
20:45
ambs left
20:50
lucian_ joined
20:54
lucian left,
fperrad left
21:05
lucian joined
21:08
lucian__ joined
21:10
lucian_ left
21:12
lucian left
21:13
lucian joined
21:17
lucian__ left
21:24
RobertLJ joined
21:29
simcop2387_ joined
21:31
simcop2387 left,
simcop2387_ is now known as simcop2387
21:41
PurityControl joined
21:47
Patterner left,
PurityControl is now known as Patterner
21:49
lucian_ joined
21:54
lucian left
21:58
mj41 left
22:01
whiteknight joined
|
|||
| dalek | rrot/leto/embed_grant: 706cdf2 | dukeleto++ | t/src/embed.t: [t] Parrot_sub_new_from_c_func, whiteknight++ |
22:06 | |
| dukeleto | With that commit, I think my TPF grant is done. Running a final "make fullcover" to be sure. | 22:07 | |
| bubaflub | dukeleto: does that finish your grant? | 22:08 | |
| whiteknight | dukeleto++ | ||
| bubaflub | dukeleto++ indeed | ||
| whiteknight | it's about time. I'm tired of hearing about our extending and embedding subsystems | ||
| cotto_work | dukeleto++ | 22:09 | |
|
22:11
lucian joined
|
|||
| NotFound | dukeleto++ | 22:13 | |
| tadzik | dukeleto++ # very nice! :) | ||
| sorear | wasn't somebody else in the process of rewriting embedding? | 22:14 | |
|
22:15
lucian_ left
|
|||
| cotto_work | sorear: you're probably thinking of whiteknight | 22:16 | |
|
22:30
kid51 joined
22:31
RobertLJ left
22:33
lucian left
|
|||
| dalek | rrot/leto/embed_grant: cb9d88b | dukeleto++ | t/src/embed.t: Pay the ANSI 89 tax yet again |
22:41 | |
| rrot/leto/embed_grant: 0744112 | dukeleto++ | src/extend.c: Attempt to make the MSWin32-x86-multi-thread ttbot happy by ANSI-89-ification |
22:43 | ||
| soh_cah_toa | cotto_work: you were right about IPC::Open3 ;) | 22:51 | |
| it's very tricky | 22:52 | ||
| dukeleto | cotto_work: just a heads up, i am to blame for a codingstd test failure in master currently, but i am in process of fixing it | 22:54 | |
| dalek | rrot/leto/embed_grant: 31aede0 | dukeleto++ | src/extend.c: Make t/codingstd/c_macro_args.t pass again |
22:56 | |
| nopaste | "soh_cah_toa" at 192.168.1.3 pasted "IPC::Open3 Problems" (48 lines) at nopaste.snit.ch/53390 | 22:57 | |
| soh_cah_toa | i can't figure out why i get "Can't use an undefined value as a symbol reference at ipc.pl line 40" | 22:58 | |
| cotto_work | dukeleto: good to know | 22:59 | |
|
23:00
dmalcolm left
|
|||
| dukeleto | soh_cah_toa: while (my @fd_ready = $select->can_read()) { | 23:01 | |
| kid51 | soh_cah_toa: How can you be certain that $fd is defined before you use it? | ||
| dukeleto | soh_cah_toa: you might want parens around @fd_ready to do what you want it to do | ||
| soh_cah_toa: you are in scalar context there, iirc | 23:02 | ||
| soh_cah_toa: Data::Dumper is your friend :) | |||
| soh_cah_toa | parenthesis didn't help | 23:03 | |
| dukeleto | soh_cah_toa: use Data::Dumper and find the first variable which doesn't match what your brain thinks it should be | ||
| soh_cah_toa: warn Dumper [ $fd ] is probably undef | 23:04 | ||
| bubaflub | soh_cah_toa: also, to get $bad_cmd to work you should have = qr/.../ | ||
| soh_cah_toa | ok | ||
| dukeleto | soh_cah_toa: qr is for compiled regexen | 23:05 | |
| soh_cah_toa | but select() blocks until one of the filehandles can be read so anytime it reaches the foreach, @fd_ready should have something in it | ||
| dukeleto | soh_cah_toa: perl 5 only parses stuff inside qr// once, which can lead to big savings | ||
| dukeleto has to go | 23:06 | ||
| soh_cah_toa: good luck! | |||
| soh_cah_toa | ok | ||
| bubaflub | soh_cah_toa: it looks like $stderr is undefined | ||
| soh_cah_toa | $stderr? how is that possible? | 23:07 | |
| bubaflub | soh_cah_toa: i'll have to look. i'm not terribly familiar with IPC::Open3. | ||
| kid51 | soh_cah_toa: I don't understand why you need the 'while' loop at all. | 23:08 | |
| soh_cah_toa | oh wait, if i change the args for open3() to typeglob references, it runs but not how i want it to :( | ||
| kid51 | perldoc IO::Select suggests: | ||
| my @fd_ready = $select->can_read(); | |||
| soh_cah_toa | yeah, you're right | ||
| kid51 | foreach my $fd (@fd_ready) { | ||
| jnthn__ | Anybody with IMCC opinions: .lex '$x', $P0 works, but with $[ISN]0 it doesn't. | ||
| The one seems to call decalre_preg or some such on the LexInfo | 23:09 | ||
| kid51 | next unless defined $fd;d | ||
| next unless defined $fd; | |||
| soh_cah_toa tries | |||
| kid51 | if (fileno($fd) == fileno($stderr)) { print "STDERR: ", scalar <$stderr> } | ||
| etc | |||
| jnthn__ | Wondering if we can extend this, to give langauges with lexpads that can handle native types a shot at working... :) | ||
| cotto_work | jnthn__: only PMCs can be lexicals. What would you expect .lex 'foo', $I0 to do? | ||
| jnthn__ | cotto_work: Yes, that's what I'm trying to fix. | 23:10 | |
| cotto_work | ah | ||
| jnthn__ | cotto_work: Parrot's own LexPad doesn't need to implement this Right Away. | ||
| cotto_work | jnthn__: I can see why it's something you want though. | ||
| bubaflub | soh_cah_toa: check out annocpan.org/~LBROCARD/perl-5.12.4/...#note_2486 | 23:11 | |
| jnthn__ | cotto_work: Right, we have a custom lexpad type in Rakudo. | ||
| bubaflub | the note mentions that std_err *does not* autovivify | ||
| soh_cah_toa | bubaflub: yeah, i've read the perldoc for it. it's horrible though | ||
| bubaflub | soh_cah_toa: i concur | 23:12 | |
|
23:12
RobertLJ joined
|
|||
| whiteknight | jnthn__: I have lots of IMCC opinions. Most of them are not positive | 23:13 | |
| cotto_work | That's decidedly wacky, but the documentation does mention how to get around it. | ||
| whiteknight | jnthn__: I see no technical reason why .lex cannot work with other types | ||
| jnthn__: the bigger issue is adding in the necessary ops to store/fetch lexical values into the lexpad. .lex only populates the lexinfo | |||
|
23:19
kid51 is now known as kid51_at_dinner
|
|||
| bubaflub | soh_cah_toa: gist.github.com/1036843 - this works for me. note i added 'use Symbol;' and '$stderr = gensym();' at the advice here: www.perlmonks.org/?node_id=151886 | 23:19 | |
| soh_cah_toa | bubaflub: i saw that in the perldoc and was looking at the perldoc for Symbol but didn't really udnerstand what it does | 23:20 | |
| ha! hubdub :) | |||
| bubaflub | that's how i say it in my head | ||
| sorear | people still use &Symbol::gensym? | 23:21 | |
| soh_cah_toa | bubaflub: why'd you take away the print $stdin "this_is_not_a_command";? that's supposed (i hope) to enter a command. it really worked w/o it? | ||
| oh i see | 23:22 | ||
| bubaflub | soh_cah_toa: oh, sorry. that was just for my own testing purposes. since i don't have a copy of hubdub i just replaced it with 'echo "oh hai"' and what not | ||
| soh_cah_toa | spoke too soon | ||
| i now understand all the warnings i've heard for years about ipc programming | 23:23 | ||
| soh_cah_toa gives it a try | |||
|
23:25
alester left
|
|||
| soh_cah_toa | it appears that after i call open3(), nothing happens. i placed a print before and after the call and only the before printed | 23:29 | |
| i'll nopaste it | |||
| bubaflub | soh_cah_toa: there is a chance that your stuff could hang waiting for input... i'm not sure how to check | 23:30 | |
| soh_cah_toa | it does it even if i use another program besides hbdb | 23:31 | |
| nopaste | "soh_cah_toa" at 192.168.1.3 pasted "open3() Doesn't Return?" (59 lines) at nopaste.snit.ch/53391 | 23:32 | |
| bubaflub | soh_cah_toa: does this look like a possible solution? www.perlmonks.org/?node_id=836165 | ||
| sorear | it's a shame your code has to run on non-POSIX platforms | ||
| soh_cah_toa | bubaflub: hmmm...not really. though maybe i'll try placing the waitpid elsewhere | 23:35 | |
| sorear: indeed | |||
| bubaflub | soh_cah_toa: i'm running your script in the perl debugger, `perl -d temp.pl`, and the code executes past open3. it just doesn't print to stdout. is that because it's being read by something else? | 23:36 | |
| soh_cah_toa | i just moved waitpid() to right after open3() and it does block. just waiting for input. weird | 23:37 | |
| and hbdb is running during that time b/c ps aux says so | 23:38 | ||
| cotto_work | soh_cah_toa: use variables in open3(). | ||
|
23:39
daniel-s joined
|
|||
| cotto_work | That gets me a nice message about hello.pbc not existing. | 23:39 | |
| soh_cah_toa | oh! progress! | 23:40 | |
| w/ variables and no waitpid() i do get some hbdb output | |||
| but not all | |||
| nopaste | "soh_cah_toa" at 192.168.1.3 pasted "Almost There" (65 lines) at nopaste.snit.ch/53392 | 23:41 | |
| cotto_work | I like where this is going. | 23:42 | |
| soh_cah_toa | yes, it's close | ||
| but there's 2 more lines after HBDB blah blah that aren't outputting | |||
| bubaflub | soh_cah_toa: i think it's because you are only reading stdout and stderr once | ||
| you should maybe have some kind of while loop somewhere to keep reading from those things until you hit EOF | 23:43 | ||
| the <$stdout> is only going to read one line at a time | |||
| soh_cah_toa | hmm...yes | ||
|
23:44
pjcj left
|
|||
| bubaflub | soh_cah_toa: i'm not exactly where it should go, but you should be able to do something like a | 23:44 | |
|
23:44
pjcj joined
|
|||
| bubaflub | while (<$stdout>) { print "STDOUT: $_"; } | 23:44 | |
| soh_cah_toa | yeah | ||
| nopaste | "soh_cah_toa" at 192.168.1.3 pasted "More Output!" (24 lines) at nopaste.snit.ch/53393 | 23:49 | |
| soh_cah_toa | oh man, so close. but now i think that ^Z null pmc issue is popping up again :( | ||
| sorear suggested that it was b/c i'm not checking for EOF or null or something after readline_interactive() but i don't know how to do that | 23:50 | ||
| bubaflub | soh_cah_toa: that's possible | 23:52 | |
| cotto_work | soh_cah_toa: get the test working and you can watch it go from failing to passing. | 23:53 | |
| jnthn__ | cotto_work: If I were to do a patch that enabled non-P-register lexicals, would it be ok? | ||
| cotto_work: Looks like I may be able to make it work. | |||
| cotto_work | jnthn__: I don't believe that the limitation is there for any reason other than expediency. I want to verify with pmichaud, but I'd be surprised if there were a reason to reject such a patch. | 23:54 | |
| soh_cah_toa | cotto_work: ok | 23:55 | |
| jnthn__ | cotto_work: OK, have asked pmichaud++ to comment :) | 23:59 | |