|
Parrot 3.5.0 "Menelaus" released | parrot.org | Log: irclog.perlgeek.de/parrot/today Set by moderator on 21 June 2011. |
|||
|
00:02
jsut_ joined
00:03
bubaflub left
00:07
jsut left
00:17
cotto joined
|
|||
| dalek | rrot: a8ff342 | Whiteknight++ | / (4 files): Merge branch 'whiteknight/kill_CALLIN' |
00:18 | |
| rrot/whiteknight/remove_hash_macros: 66ba12e | Whiteknight++ | include/parrot/hash.h: Remove old hash macros |
00:23 | ||
|
00:36
cotto left
00:40
cotto joined
|
|||
| whiteknight | jnthn__: ping | 00:40 | |
| cotto | hio whiteknight | 00:41 | |
| whiteknight | hello cotto | ||
| cotto: I'm starting to do a lot of thinking vis. NameSpaces and Classes | |||
| I'm staring at the code right now, and want to kill it with a hammer | |||
| cotto | I can think about things that aren't my talk now. It's nice. | 00:42 | |
| whiteknight | sounds nice | ||
| did you give your talk? | |||
| cotto | yup | ||
| whiteknight | how did it go? | ||
| cotto | small turnout, but not bad | 00:43 | |
| time to find out if my recording is any good | |||
| my laptop's built-in mic seems to be pretty good at picking me up from across the room | 00:45 | ||
| soh_cah_toa | cotto: what was it about? was it the same one you're giving at yapc::na? | ||
| whiteknight | oh, I have a commit coming up that is going to make a few people smile | ||
| cotto | soh_cah_toa, yes | 00:46 | |
| whiteknight | I need to reconfig and rebuild because I love t/src/checkdepend.t SO MUCH | ||
| cotto | Nice. I can hear pretty much anything in the room. This bodes well. | 00:47 | |
|
00:48
particle left
|
|||
| dalek | rrot: c83d493 | Whiteknight++ | / (2 files): Poke into NameSpace directly instead of calling get_associated_* methods when creating a new Class. This change alone cuts non-threaded coretest runtime from 4:42 to 3:40 on my system |
00:49 | |
| cotto | loud and clear | ||
| whiteknight | I've got two methods that we can deprecate and kill with a stick | 00:50 | |
|
00:50
particle joined
|
|||
| whiteknight | I want to start working towards decoupling NameSpace and Class | 00:51 | |
| I do not any longer want to be storing methods and vtables in the namespace, and do not want to be using namespaces as keys to look up classes | |||
| cotto | It's like listening to myself in a smelly mirror. | ||
| whiteknight | The user can choose to store the Class in the NameSpace if they want, but Parrot shouldn't do that by default | ||
| I also don't like storing Classes by string name keys, but I can't really think of any better way to store them | 00:52 | ||
| of course, maybe the user should be in charge of that too | |||
| So Parrot wouldn't have a new_p_s opcode anymore, only new_p_p | 00:53 | ||
| you would need to use the Class object to create an instance of that class | |||
| The only time Parrot should store metaclass objects by name to be looked up is for built-in types | 00:54 | ||
| cotto | whiteknight, does that commit work with Rakudo? | ||
| whiteknight, what's your motivation for wanting to decouple those? | 00:55 | ||
| whiteknight | I didn't test Rakudo but I can't imagine it breaks anything | 00:56 | |
| they don't use our NameSpace PMCs for anything | |||
| cotto | not likely | ||
| whiteknight | for the speed improvements in startup time, it's worth it | 00:57 | |
| cotto | That's a very clear win. | ||
| What brought those to your attention? | |||
| whiteknight | I was just poking around in oo.c, because I have been thinking about namespace a lot lately and that's the file to look in for problems | 00:58 | |
| some of the ugliest, most fragile and buggy code in all of parrot lives in oo.c now | |||
| cotto heads to the os bridge speaker's party | 01:04 | ||
|
01:10
cotto left
|
|||
| soh_cah_toa | wow, could it really be that there are no string comparison functions in the embedding string api? that'd make me so sad | 01:15 | |
| yeah, i don't think there is. that's so lame | 01:18 | ||
|
01:21
woosley joined
01:30
bubaflub joined
|
|||
| bubaflub | ~ | 01:30 | |
| whiteknight | soh_cah_toa: I've been adding things to the embedding API as needed | 01:31 | |
| ask, and ye shall receive | |||
| or, put together a patch to add it your own damn self :) | |||
| soh_cah_toa | i was just thinking about opening a ticket | 01:32 | |
| whiteknight | that works too | ||
| soh_cah_toa | but i'm working in a different branch and don't want to merge yet | ||
| if all i need at the moment is a Parrot_String comparison, is it ok if i just add a Parrot_api_string_equal() in my branch for now? | |||
| whiteknight | yes | 01:33 | |
|
01:33
dmalcolm left
|
|||
| soh_cah_toa | ok | 01:33 | |
| eventually, i would like to see a STRING function and Parrot_String function correlation. like if there's a Parrot_str_copy(), then there should also be a Parrot_api_string_copy() | 01:34 | ||
| whiteknight | the embedding API is purposefully kept minimal | 01:35 | |
| the best way to interact with Parrot is to generate and execute PBC | |||
| the embedding API lets you get to that point. PBC has access to all parrot capabilities | |||
| trying to expose the full power of Parrot through the C api is a huge waste | 01:36 | ||
| soh_cah_toa | hmmm...yeah you're right | ||
| it just seems kinda stupid in the embedding api that all you can do w/ strings is create them and free them. nothing else | 01:38 | ||
|
01:51
particle1 joined
|
|||
| whiteknight | soh_cah_toa: like I said, we can add new interfaces for other operations. We haven't had a need yet, and we are trying to keep the API minimal | 01:51 | |
| soh_cah_toa | i understand | 01:52 | |
|
01:53
whiteknight left,
whiteknight joined
|
|||
| whiteknight | okay, I'm heading to bed now. I'll talk to you tomorrow | 01:53 | |
| soh_cah_toa | see ya later | ||
|
01:54
whiteknight left
01:55
particle left
|
|||
| bubaflub | NotFound: hey, got a moment? i'm running into a weird problem | 02:15 | |
| *a weird Winxed problem | 02:16 | ||
|
02:29
AzureSto_ left,
eternaleye left,
perlite left,
dngor left,
dngor joined,
eternaleye joined,
perlite joined,
AzureStone joined,
losinggeneration left,
TiMBuS left,
losinggeneration joined,
contingencyplan left,
jjore left,
TiMBuS joined
02:30
jjore joined
02:35
rurban_ joined
02:37
rurban left,
rurban_ is now known as rurban
|
|||
| dalek | rrot: 247bde0 | bubaflub++ | docs/pdds/draft/pdd16_native_call.pod: add section about deprecated NCI symbols |
02:50 | |
| lrskate: 405625f | tcurtis++ | src/LALR/DPDA (3 files): Add methods for testing adequacy. |
|||
| lrskate: bb5ee93 | tcurtis++ | src/LALR/DPDA.winxed: Make adeqacy tests actually compile. |
|||
| lrskate: 8a25278 | tcurtis++ | src/LALR/Generator/BuildCFSM.winxed: Add a brief descirption of the purpose of build_CFSM. |
02:51 | ||
| lrskate: d13860e | tcurtis++ | src/LALR/Generator/BuildNonterminalTransitionTable.winxed: Implement nonterminal-transition table generation. |
|||
| lrskate: 3c8b4b5 | tcurtis++ | s (2 files): Implement the building of the sets of "p-states" for each production. |
|||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_5_0-16-gc83d493 | ||
| Ubuntu 11.04 i386 (g++) | |||
| dalek | rrot: 7daf22c | bubaflub++ | .gitignore: update gitignore after TT #2134 - pbc_disassemble now lives under frontend |
02:54 | |
| soh_cah_toa | bubaflub: nice catch. i forgot about that | ||
| bubaflub | soh_cah_toa: no prob, quick fix. | 02:56 | |
| plobsing: if you're around i've got another NCI question. | 03:05 | ||
| dalek | rrot: a3f1145 | mikehh++ | MANIFEST.SKIP: re-generate MANIFEST.SKIP |
03:06 | |
|
03:08
cotto joined
|
|||
| cotto | soh_cah_toa, you can safely merge your branch with master without messing anything in master up. | 03:13 | |
| soh_cah_toa | cotto: ok. are you referring to what i said earlier about the string comparison thing? | 03:15 | |
| cotto | yes | ||
| soh_cah_toa | i realized that at the point where i needed it, i already had converted it to a c-string so i just did a strcmp() instead | 03:16 | |
| cotto | How nice. I finally have a minute to look at the ipc script. | 03:17 | |
| soh_cah_toa | good b/c it's acting up | 03:18 | |
| let me push first, i might have updated it | |||
| cotto | deal | ||
| soh_cah_toa | about the eof issue. for some reason, if i did a Parrot_io_eof() after the call to readline_interactive(), it didn't catch it. | 03:21 | |
| i discovered that this was because on eof, an exception was being thrown so execution never reached the next line | 03:22 | ||
| i circumvented this by checking the "is_error" string value to the "Null PMC blah blah blah" message in fail() and then exiting quitely | |||
| however, when i added that, the ipc output acts differently. i'll show you | |||
| cotto | ok | ||
| dalek | rrot/soh-cah-toa/hbdb: 1687f97 | soh_cah_toa++ | / (4 files): Fixed (sort of) the EOF issue |
03:26 | |
| soh_cah_toa | now when i run the script, i don't get an error when i enter "this_is_not_a_command" which i should | 03:29 | |
| and it stopped doing this but some things were printing out of order. i don't know why i stopped though | |||
| oh and you'll need a file called "hello.pbc". that's just a temporary thing for on my machine | 03:30 | ||
|
03:31
contingencyplan joined
|
|||
| cotto | I just happen to have one. | 03:32 | |
| soh_cah_toa | wow, this is interesting. if i add print HBDB_STDIN "^D"; before closing the filehandle, i get the message that's in the if(Parrot_io_eof) right after the call to readline_interactive() | 03:34 | |
| but if i send eof by closing the file handle, then execution reaches the fail() function in frontend/hbdb/main.c | 03:35 | ||
| i didn't add that code in the commit though. it's just a stub | 03:36 | ||
| oh, i had waitpid() commented | 03:37 | ||
| now i get the message about an undefined command | 03:38 | ||
| cotto | that sounds promising | ||
| soh_cah_toa | that's why it stopped printing out of order | 03:39 | |
| cotto | I don't know if I'll be especially useful. | ||
| soh_cah_toa | except now it does so i'll push it so you can see | ||
|
03:39
theory joined
|
|||
| dalek | rrot/soh-cah-toa/hbdb: 1e6a0e1 | soh_cah_toa++ | / (2 files): Uncommented call to waitpid() so ipc.pl acts a little nicer |
03:43 | |
| plobsing | bubaflub: still around? | 03:44 | |
| bubaflub | plobsing: yep. | ||
| plobsing: i'm working on trac.parrot.org/parrot/ticket/2130 | |||
| basically, our ncurses library binding has 2,3,4 and t in it | |||
| plobsing: could you give a quick once over of a patch i'm preparing? i want to verify i'm heading in the right direction | 03:45 | ||
| plobsing | sure | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_5_0-19-ga3f1145 | ||
| Ubuntu 11.04 i386 (g++ --optimize) | |||
| plobsing | bubaflub: url? | ||
| bubaflub | plobsing: gist.github.com/1041865 | 03:47 | |
| plobsing: also, what should i do about the 't' parameters? can i just use NCI::Utils? | |||
| plobsing | bubaflub: that is probably the easiest solution | 03:48 | |
| bubaflub: I notice you've changed over the .declarations file to use 'p', but hand-converted the equivalent .pir file | 03:50 | ||
| bubaflub | plobsing: is the .pir file generated from ncidef2pir? | ||
| plobsing | yes | 03:51 | |
| bubaflub | plobsing: would existing code just work with just 'p' type? | ||
| plobsing | no | ||
| bubaflub | plobsing: ah, would it work with the stuff in the .pir? | ||
| plobsing | bubaflub: mostly | ||
| bubaflub | plobsing: should we just nuke the .declarations file and commit the .pir? | 03:52 | |
| plobsing | to use the 'p' type, callers would need to allocate and work with something pointer-ish (rather than integer-ish) | ||
| bubaflub: that's a good question | |||
| bubaflub | plobsing: cause the pcre.pir isn't generated from a .declarations | 03:53 | |
| plobsing | ncidef2pir is a really sweet tool when it works, and it used to work for ncurses | ||
| unfortunately, it didn't get the upgrade it needs to handle the new signatures | 03:54 | ||
| fixing it falls way out of the scope of what you're doing, but would be nice long-term | |||
| bubaflub | plobsing: is it upgradable? i thought without a 2, 3, or 4 it won't know what to generate | ||
| plobsing: i think it's a worthy long-term goal | |||
| plobsing | bubaflub: it is upgradable. it needs to start generating code similar to what you've patched up | 03:55 | |
| bubaflub | plobsing: so we'd keep the 2, 3, and 4 and maybe even t or b in the declarations, but in the actual PIR code we'd handle it differently? | 03:56 | |
| plobsing | bubaflub: no. in stead support new syntax to represent call-by-reference parameters. this is what nci_thunk_gen did. | 03:57 | |
| take a look at the bottom of src/nci/extra_thunks.nci. it supports 2 varieties of signatures, the newer of which supports call-by-reference. | |||
| eg: ptr (ptr, int, ptr&, int&, ptr) | 03:58 | ||
| bubaflub | ah, so instead of just being ppipip | ||
| that's what the spaces are for. got it. | |||
| so instead of patching up this ncurses.pir i could focus on getting that syntax working with ncidef2pir | 03:59 | ||
| plobsing | yes. although that is definitely much more work. arguably yet another yack to shave. | ||
| bubaflub | plobsing: well, it looks like i might finish my project with a little extra time and i think it's a yack that needs to be shaved. plus i'm learning lots about the NCI subsystem. | 04:00 | |
| plobsing: i'll start slowly hacking on ncidef2pir and a conversion script that'll take old-style NCI def and convert it into a new one. | 04:01 | ||
| plobsing | bubaflub: a note on style - in stead of creating an FIA for the parameters, I believe you can use a key on dlfunc (eg: dlfunc $P2, $P1, 'scale_form', [.DATATYPE_INT; .DATATYPE_PTR; $I3; $I3] | ||
| ) | |||
| that is, in my opinion, easier to read | |||
| bubaflub | plobsing: good to know. | ||
| plobsing: agreed. | |||
| plobsing | at least until the lines get too long | ||
| bubaflub | plobsing: if you don't mind giving my scripts / patches a once over, i don't mind writing them. | 04:02 | |
| dalek | rrot/soh-cah-toa/hbdb: 199bb25 | soh_cah_toa++ | ipc. (2 files): Renamed ipc.pl because now it's almost a test file |
||
|
04:03
cotto left
|
|||
| plobsing | I'm more than happy to increase the bus number on this system | 04:05 | |
| bubaflub | plobsing: great. last question for the night - the new style def, instead of say i func_name p 3 it would be int func_name ptr int& | 04:09 | |
| plobsing | bubaflub: I leave that up to your discretion. If it can communicate the full range of signatures, that's all that really matters. | 04:11 | |
| bubaflub | plobsing: ok. so 2 -> short&, 3 -> int&, 4 -> long&, b -> ptr& and we'll let NCI::Utils handle t? | ||
| plobsing | sure | 04:12 | |
| but I'd like to come back to a point I made earlier about "mostly working" | |||
| the old call-by-ref convention and new call-by-ref convention are very similar, but not equivalent | 04:13 | ||
| bubaflub | go on | 04:14 | |
| plobsing | the old one took and modified a containing PMC. the new one takes an appropriate primitive, calls by reference, and then uses multi-return to spit back the potentially modified argument. | ||
| bubaflub | i follow you up to the multi-return - the item is not modified in place? | 04:15 | |
| plobsing | nope | 04:16 | |
| PCC doesn't have a notion of call-by-reference | |||
| so foo($I0) *can't* modify $I0 | |||
| the old convention circumvented that by mandating the use of wrapper PMCs | |||
| the new convention gets around it by returning the new value | 04:17 | ||
| bubaflub | so in a function that takes a pointer and modifies it, we'll have to manually set it after calling the function | ||
| so we could get not only whatever the C function actually returns, but also whatever got modified | 04:18 | ||
| (unless we flatten it all to a 'p', pass it a StructView with a single datatype in there... but that's a bit ugly) | |||
| plobsing | not exactly. in order to have well-defined behaviour, we return the end-result of all call-by-reference parameters, not just the modified ones. | 04:19 | |
| I'm having trouble understanding your "takes a pointer" statement | |||
| bubaflub | couldn't we emulate the old behavior by instead of using, say, 3, we use p and pass it a StructView that just wraps an int? then the pointer itself isn't modified by the integer in it is. | 04:21 | |
| also, is PDD03 (the calling conventions) up to date? looks like i need to do some reading... | |||
| plobsing | bubaflub: we could do that. alternatively we could do an old->new wrapping | ||
| $I0 = $P0; (retv, $I0) = foo($I0); $P0 = $I0 | 04:22 | ||
| this has less GC churn | |||
| also, StructView is only the representation object. The objects obtained from allocation are pointers (of the PtrObj variety). | 04:24 | ||
| bubaflub | you get that from StructView.alloc(), right? | 04:25 | |
| plobsing | yes | ||
| bubaflub | so Parrot handles the boxing from I <-> P correctly? that'd be pretty straightforward | ||
| plobsing | that's not exactly what's happening | 04:26 | |
| but the end result is still correct | |||
| it isn't boxing, but rather a setter/getter, which is the responsibility of the PMC to implement sanely | |||
| that's how the old call-by-ref convention worked as well | 04:27 | ||
| bubaflub | ok | ||
| just to make sure i understand - let's say we have an old NCI def of a function like i func_name p 3 | |||
| converting it to a new style would be int func_name p int& but that's not *exactly* equivalent as the last parameter would be returned | |||
| so we can either change our existing code to handle that or we can try and wrap it | 04:28 | ||
| plobsing | it would be returned rather than modified, correct | ||
| yes, we can wrap the NCI or modify the user code | |||
| bubaflub | ok - so wrapping the NCI code would probably be the most transparent for existing code, future code can do either | ||
| so instead of doing the whole set_global 'package::func_name', $P2, we'd do set_global 'package::__func_name' and then have our own function called func_name that would sanely handle the arguments | 04:30 | ||
| for NCI functions that don't have any pointers, it would just be a single function call. | |||
| plobsing | that sounds decent | ||
| bubaflub | ok, i think i'm getting a good idea of what this script should look like. | 04:31 | |
| do we want to keep the old-style NCI def parsing around as well? maybe a command-line switch option? or should we put that style into a deprecation aiming at the next supported release? | |||
| plobsing | I have no strong feelings one way or the other | 04:33 | |
| bubaflub | ok, great. i need to head to bed for tonight, but i'll be pestering you in the near future about this. | 04:34 | |
|
04:41
cotto joined
05:06
TiMBuS left,
TiMBuS joined
05:12
soh_cah_toa left
05:15
szabgab joined
05:16
estrabd left
06:25
jsut_ left
06:28
UltraDM joined
06:36
theory left
06:56
Eclesia joined
07:08
mj41 joined
07:42
SHODAN joined
07:51
simcop2387 left,
simcop2387 joined
07:53
dngor left
07:57
dngor joined
08:01
slavorgn left
09:08
daniel-s joined
09:20
woosley left
09:56
Drossel joined
09:59
Kulag left
10:36
rurban_ joined
10:40
rurban left,
rurban_ is now known as rurban
10:49
Drossel left,
Kulag joined
11:19
mtk left,
mtk joined
11:20
mtk left,
mtk joined
|
|||
| atrodo | =~ | 11:47 | |
|
12:09
whiteknight joined
12:15
woosley joined
12:16
woosley left
|
|||
| Eclesia | is it possible from winxed to write some code which could be written directly as a pbc ? | 12:19 | |
| I mean If I have a string, which is actually the content of a pir file. could I compile it to pbc ? | 12:21 | ||
|
12:22
ambs joined
|
|||
| moritz | Eclesia: IMCC can compiler PIR to PBC | 12:25 | |
| Eclesia: I think whiteknight++ gave IMCC an API that you can use for that | |||
| Eclesia | imcc ? | 12:26 | |
| tadzik | intermediate code compiler, I think | ||
| whiteknight | IMCC is the current PIR compiler | ||
| Eclesia | nice | ||
| so whiteknight, you made an api in rosella for this ? | |||
| whiteknight | Eclesia: You can use the compreg op to get a reference to it | ||
| no, this is all part of parrot | |||
| in PIR, you can do "$P0 = compreg 'PIR'" | 12:27 | ||
| that gets you the compiler object. Then you would invoke it: "$P1 = $P0.compile_string($S0)" | |||
| that gives you a packfile PMC | |||
| Eclesia | whiteknight: this compreg is a specific namespace ? | 12:28 | |
| is in* | |||
| whiteknight | it's an opcode, built in to parrot | ||
| Eclesia | ok | 12:29 | |
| whiteknight | Compilers typically register themselves with Parrot, and then you can get access to them at runtime | ||
| Eclesia | I suppose just like chr, compreg will be available in winxed | ||
| whiteknight | For instance, winxed registers itself, so you can get a reference to it too | 12:30 | |
| $P0 = compreg 'Winxed' | |||
| (after you've loaded Winxed in, of course) | |||
| actually, for the PIR compiler object, you probably want to do $P1 = $P0($S0) | 12:31 | ||
| compile_string method might not be stable and usable yet | |||
| Eclesia | I'll give it a try this evening | 12:34 | |
| whiteknight | okay, let me know if you have any questions | 12:44 | |
| I probably need to start working on that compiler object to embetter it | |||
| atrodo | whiteknight> You might get some help with that next week | 12:46 | |
| whiteknight | is that you volunteering? | ||
| because I loves me some help | |||
| atrodo | if I end up blocking (or dislike) on it, yes | 12:47 | |
| wow, that sentence sounds a lot better in my head | |||
| whiteknight | right now I think the compile_string method returns a PtrObj pmc over a packfile struct, so that needs to be improved | ||
| there's no real way to work with it from PIR | |||
| atrodo | It's look like lunch today will give me some good time to look at everything, old and new, to see how I want to go forward | 12:49 | |
| whiteknight | okay, awesome | ||
| Eclesia | whiteknight: is there an xml api in rosella ? | 12:50 | |
| whiteknight | no, not yet | ||
| I've thought about it, but haven't gotten around to it | |||
| Parrot has a JSON compiler, but no XML functionality | 12:51 | ||
| I wasn't sure whether we wanted to brew our own, or wrap an existing solution | |||
| Eclesia | strange choice. making json before xml | ||
| moritz | json is far simpler | ||
| whiteknight | far simpler. And usually easier to read. At least, in my opinion | ||
| atrodo | i much prefer json over xml | 12:52 | |
| Eclesia prefer xml, dont like having to much {} everywhere | 12:53 | ||
| whiteknight | XML is definitely the standard in Java or .NET lands | 12:55 | |
|
12:55
slavorgn joined,
SHODAN left
|
|||
| whiteknight | dynamic languages like javascript, perl, and python seem to prefer using json or yaml or stuff like that | 12:56 | |
| and since many of our libraries were written by perl hackers... | |||
|
12:57
jsut joined
|
|||
| moritz | XML is a great markup language, but often abused as serialization or data exchange format | 12:58 | |
| so comparing it to JSON | |||
| is already a mistake | |||
| Eclesia | parrot = talks MY language :p no fight over who is the best. just be able to do it ^^ | 12:59 | |
| Coke | you're able, sure. get right on that. ;) | ||
| whiteknight | Like I said, I do want xml capabilities on parrot too. I just haven't figured out how I want to do it yet | ||
| or, I haven't figured out how to make somebody else do it for me :) | 13:00 | ||
| Coke | you have other things on your plate, so make... right. | ||
| (not me!) | |||
| whiteknight | Coke: I've run out of plate space. I'm piling food up on the floor | 13:03 | |
| Eclesia | I'm also searching for winxed examples to work with in/out streams. if someone have some | 13:08 | |
| whiteknight | Eclesia: I don't know if there are any good examples. the getstdin and getstdout built-in functions return you the standard handles | 13:10 | |
| so var stdout = getstdin(); | |||
| For working with regular files, you can use the FileHandle PMC directly, or the Rosella.FileSystem.File object too if you prefer that approach | 13:11 | ||
| Eclesia | whiteknight: I mean file streams, read/write. or other streams, from url ... stuff like that | ||
| whiteknight | for file streams you can do things like "var fh = new 'FileHandle'; fh.open(<filename>, "r"); fh.write(<text>);" | 13:12 | |
| er, that should have been "r" | |||
| er "w" | |||
| stupid fingers this morning | |||
| bubaflub | i'm having trouble logging into trac / resetting my password - who should i talk to about that? | 13:13 | |
| whiteknight | bubaflub: I can probably help | ||
| maybe | |||
| bubaflub | whiteknight: great. the password i thought i used for the site doesn't work and the reset password page times out... | 13:14 | |
| whiteknight | ...nevermind, I don't appear to be able to log in either | ||
| bubaflub | whiteknight: hm. maybe it's a temporary thing. | 13:15 | |
| whiteknight | maybe | ||
|
14:16
Kulag left,
Kulag joined
|
|||
| NotFound | In winxed you can use the builtin load_language, it does both load_language and compreg, | 14:23 | |
| Eclesia | just wondering, rather then compiling pir code, maybe it's possible to create parrot objects which represent a class, a function, a method, . . . ? this way I could avoid writing some pir and directly work with objects | 14:27 | |
| bubaflub | NotFound: do you have a moment? i'm running into a strange Winxed problem. | 14:28 | |
|
14:29
estrabd joined
|
|||
| whiteknight | Eclesia: like metaprogramming? Writing code that writes code? | 14:30 | |
| NotFound | bubaflub: sure | 14:31 | |
| bubaflub | NotFound: i had 3.4.0 installed and winxed and plumage and all that, so i wiped all of that out. i updated parrot to the latest, installed, updated winxed, installed, installed plumage and rosella from that. when i try to run winxed i get "Incompatible versions of `core_ops' oplib. Found 3.4.0 but loaded 3.5.0" | 14:32 | |
| Eclesia | whiteknight: yes | ||
| bubaflub | NotFound: i think there is something that i haven't deleted - any ideas? | ||
| atrodo | whiteknight> 'round these parts, we call that magic | ||
| whiteknight | atrodo: We don't take kindly to metaprogramming and other sorcery 'round these 'ere parts | 14:33 | |
| atrodo | whiteknight++ exactly | ||
| NotFound | bubaflub: probably the directory that plumage uses to downlaod and build. Usually ~/.parrot/plumage | ||
| bubaflub | NotFound: ok, so should i nuke everything again? | ||
| atrodo sometimes feels like he's in the south when he's clearly in yankee territory | |||
| Eclesia | whiteknight: metaprogramming is bad ? | 14:34 | |
| whiteknight | Eclesia: no, we're just joking around. It's good | ||
| NotFound | bubaflub: yes, the easier way is to delete it completely and reinstall plumage | ||
| whiteknight | I end up creating a lot of classes in Rosella, especially the Proxy library | ||
| Eclesia | whiteknight: *afraid for a second* it's actually a big part in my project ^^ | ||
| whiteknight | Eclesia: Classes are objects, so you can make a new class the normal way "$P0 = new ['Class']", etc | 14:35 | |
|
14:36
hercynium joined
|
|||
| Eclesia | I believe there are no winxed example for such things right ? | 14:36 | |
| whiteknight | github.com/Whiteknight/Rosella/blo...ory.winxed | ||
| Line 90, the "create_proxy_class_internal" function | |||
| I use the newclass opcode to create a new named class, I add attributes to it, then I do some other wizardry with it | 14:37 | ||
| Class has a lot of methods on it, add_method, add_vtable_override, add_attribute, etc | |||
| Eclesia | perfect, exactly what I wanted | ||
| and when I want to write this in a pbc at the end ? | |||
| whiteknight | If you're not totally against reading C code, the source for class is here: github.com/parrot/parrot/blob/mast.../class.pmc | ||
| Everything marked with "METHOD" is a method you can call from Winxed/PIR | 14:38 | ||
| Eclesia: that's a little bit harder, I think | |||
| You can freeze a PMC to serialize it to bytes, and write those to a file. There are also tools for writing PBCs from PIR/Winxed code, but I'm not super familiar with them and don't have examples | |||
| bacek or plobsing probably know a lot more about it than I do | 14:39 | ||
| Eclesia | and no docs | ||
| whiteknight | of course | ||
| Eclesia | *hard to work with parrot* | ||
| whiteknight | Maybe I'll have to try writing some | ||
| Eclesia: we're working on it! | |||
| Eclesia | I'm still here, means I accepted the challenge ^^ | 14:40 | |
| NotFound | The current best way is to write to files and call command line tools. Eats less memory that way. | 14:41 | |
| whiteknight | We have a set of PackFile PMC types that can be used to create a packfile programmatically, but they don't currently have a way to add in an existing packfile that comes back from the IMCC compiler | 14:42 | |
| so that's a huge omission | |||
| it looks like PackFileDirectory has a set_pointer vtable, but PackFile does not | 14:43 | ||
| bubaflub | NotFound: still no go. i removed plumage and re-installed but still getting the "Incompatible versions" error. any other ideas? | 14:45 | |
| whiteknight | What I think I want to do, soon, is to add functionality to Packfile to read in the kinds of packfiles returned from IMCC | 14:46 | |
| that would be a big help | |||
|
14:47
estrabd left
|
|||
| NotFound | bubaflub: What command gives you that message? | 14:47 | |
| bubaflub | NotFound: ah, found the problem. had old .pbc files sitting around | 14:48 | |
| NotFound | bubaflub: uh... then that message needs improvement, it should provide more information. | 14:49 | |
| bubaflub: BTW, now is better to not install winxed, using the one bundled with parrot instead. | 14:50 | ||
| bubaflub | NotFound: ok. | 14:51 | |
| whiteknight | we need to remove winxed from plumage, if it isn't removed already | 14:52 | |
| bubaflub | whiteknight: it says it's still there. | 14:53 | |
| whiteknight: also, will the rosella harness automatically use the winxed that comes with parrot? | |||
| whiteknight | yes | ||
| bubaflub | whiteknight: great. ok, i'm uninstalling winxed and going to use the bundled one instead | 14:54 | |
| NotFound | Yes, I think instllaing it from plumage now can be confusing. | 14:55 | |
| To play with the bootstrap or look at the examples, installing from the repo is easier. | 14:57 | ||
| bubaflub: care with the uninstall, the directories used for the pbc and binaries are the same. | 14:59 | ||
| So uninstall from plumage can delete the bundled files. | |||
| pmichaud | gist.github.com/1042691 # patch to improve the speed of RPA splice | 15:01 | |
| this improves the speed of repeated insertions and deletions into an RPA (which rakudo does for its list processing) by about 90% | |||
| whiteknight | pmichaud: people actually use splice? | 15:02 | |
| ...okay, question answered | |||
| apply it | |||
| pmichaud | rakudo does, yes. | ||
| I didn't realize just how slow the older version was until doing some benchmarking late last night | 15:03 | ||
| gist.github.com/1042698 # simple splice benchmark program | |||
| without the patch, that program takes 11.5 seconds on my system; with the patch it takes <1.0 sec | 15:04 | ||
| whiteknight | wowzers | 15:05 | |
| pmichaud: just to double-check, does Rakudo use NameSpaces, or custom subclasses of NameSpace for anything? | |||
| pmichaud | rakudo master does, yes. | ||
| whiteknight | regular NameSpace, or subclasses? | ||
| pmichaud | regular NameSpace. We haven't ever subclassed NameSpace, afaik. | 15:06 | |
| I don't think we'll be using NameSpace at all in nom, and eventually not in nqp either. | |||
| whiteknight | I made a commit last night that avoids two method calls to NameSpace for every class that's created, and that cuts about 20-25% out of parrot startup time | ||
| pmichaud | oooh, nice. | ||
| whiteknight | I did some testing last night, wanted to make sure it didn't hurt Rakudo | ||
| pmichaud | it shouldn't. | 15:07 | |
| whiteknight | er, not startup time. It was coretest time | ||
| which is highly related to startup time, but not the same | |||
| NotFound | I think there are unresolved problems on the way to HLLmap Namespace. | ||
| cotto | ~~ | ||
| whiteknight | NotFound: I'm sure there are are problems. The whole system is borked | ||
| When I was working on the parrot-data-structures project, I was experimenting with some alternate array architectures that saw some pretty nice performance improvements over standard RPA | 15:08 | ||
| at least, for some workloads | |||
| Eclesia | when will we have parrot faster then c ? | 15:12 | |
| NotFound | Eclesia: I don't belive in the "faster than C" propaganda of any virtual machine. | 15:14 | |
|
15:15
theory joined
|
|||
| plobsing | Eclesia: it already is. you just need to write suitably slow C code. | 15:15 | |
| Eclesia was just joking | |||
| dalek | rrot: f12d120 | pmichaud++ | src/pmc/resizablepmcarray.pmc: [pmc]: Patch to ResizablePMCArray.splice to improve its performance for shifts and insertions by over 90%. |
||
| dukeleto | that is quite nice, pmichaud++ | 15:16 | |
|
15:16
JimmyZ joined
|
|||
| NotFound | winxedxx is as fast as C in some code. | 15:16 | |
| You just need to use only int and avoid function calls. | 15:17 | ||
| "just" X-) | 15:18 | ||
| atrodo | NotFound> Seems legit to me! | 15:19 | |
| cotto | pmichaud++ | 15:20 | |
| NotFound | atrodo: yes, but not very useful. | ||
| atrodo | Well, my desktop cpu only works with bits and it's fast. Good enough evidence for me! | 15:21 | |
| Eclesia | expect one day, we will have quantic computers. bits will become an obsolete concept | 15:23 | |
| NotFound | Maybe some day we'll compute with twits. | 15:24 | |
| whiteknight | arguably, microsoft is already doing that | ||
| bah-dum-ch | |||
| tadzik | ba-dum-tss! | 15:26 | |
|
15:31
contingencyplan left
15:33
mj41 left
15:37
UltraDM left
15:39
Kulag left
15:45
Kulag joined
15:46
daniel-s left
15:47
theory left
15:48
cotto left
15:51
mtk left
15:52
mtk joined
16:06
Eclesia left
16:30
JimmyZ left
16:32
whiteknight left
16:35
dmalcolm joined
16:50
Eclesia joined
16:51
dodathome joined
16:56
lichtkind joined
17:10
whiteknight joined
17:12
ligne joined
17:15
he joined
17:19
dodathome left
17:23
pbaker joined
17:34
ligne left
17:41
jsut_ joined
17:45
jsut left
17:47
cotto joined
18:07
jsut_ is now known as jsut
|
|||
| Eclesia | what does this error mean : kernel/EriaCompiler.wx:16: Variable 'x364' is not defined near x364 ? | 18:10 | |
| full code : pastebin.com/696FaNcs | 18:11 | ||
| I declared the var in the class and instanciate in the constructor | |||
| tcurtis_ | Eclesia: you need a self. there. | 18:12 | |
| Eclesia | *damn* thanks | 18:13 | |
| tcurtis_ | Eclesia: and in the other places you access it. | ||
|
18:13
tcurtis_ is now known as tcurtis
|
|||
| Eclesia | I'm still not used to this 'self'. always believe, since I'm in the class I can access it directly | 18:14 | |
| NotFound | Eclesia: the advantage is that you don't need naming conventions to distinguish member vars from local vars ;) | 18:18 | |
|
18:20
Patterner left
|
|||
| whiteknight | Eclesia: I've been thinking about your x364 stuff the other day. I definitely want to use it | 18:20 | |
| I want to colorize the output of my test harness | 18:21 | ||
| Eclesia | whiteknight: if you add it in rosella under public domain it's yours | ||
| if you need a header : unlicense.org/ | 18:24 | ||
| Eclesia also have tree and table outputs, but not yet translated to winxed | 18:26 | ||
| ping ? | 18:32 | ||
|
18:35
Eclesia left,
Eclesia joined
18:36
rurban_ joined
|
|||
| whiteknight | Eclesia: awesomeness | 18:39 | |
|
18:40
rurban left,
rurban_ is now known as rurban
|
|||
| Eclesia | what's the difference between: | 18:42 | |
| -L=s -> Add to parrot library search path | |||
| -I=s -> Add to parrot include search path | |||
| ? | |||
| whiteknight | different mechanisms in IMCC | ||
| include is a compile-time text transclusion | 18:43 | ||
| libraries are things you load at runtime | |||
| 99% of the time you want -L | |||
| Eclesia | ok, so i use the -I to compile a .wx who needs other .wx | 18:44 | |
| whiteknight | no, winxed doesn't do text transclusion. Those options are passed through to parrot | ||
| if you had a file of .pasm constants, you would use -I | |||
| chances are, you do not | |||
| Eclesia | WARNING: Checking: new unknown type <-- isn't this error a missing dependency ? | 18:45 | |
| whiteknight | I've never seen that warning before. that's coming out of winxed? | ||
| Eclesia | whiteknight: yes | 18:46 | |
| whiteknight | (in other news, I might not be too helpful in debugging it ) | ||
| Eclesia | also have this one : WARNING: class Rosella.FileSystem.Directory not found at compile time | 18:47 | |
| NotFound | You may need -I if you use $include_const | ||
| whiteknight | yeah, that's a warning that winxed generates because the type names aren't known at compile time | ||
| because you're loading in Rosella at runtime | |||
| Eclesia | I just have some : $load | ||
| whiteknight | Eclesia: to make that go away, best thing is to use the --nowarn flag for winxed | 18:48 | |
| Eclesia | *hide what you dont want to see* | ||
| whiteknight | I have a shell alias, so I don't even have to see the flag | ||
| :) | |||
| NotFound | Eclesia: you can declare the classes used. | ||
|
18:49
theory joined
|
|||
| Eclesia | how ? | 18:49 | |
| NotFound | namespace Rosella { namespace FileSystem { class Directory; } } | ||
| Eclesia | it worked | 18:50 | |
| NotFound | The class statment without body is the declaration. | ||
| whiteknight | I may have to make some more use of that in Rosella | ||
| NotFound: is there any problem to do many forward declarations? | 18:51 | ||
| or, many of the same in the same file? | |||
| NotFound | whiteknight: I'm using them extensively in WinxedGtk examples and haven't had any problem yet. | ||
| whiteknight | ok | ||
| Eclesia likes the last word : 'yet' | 18:52 | ||
| NotFound | Eclesia: I try no not make empty promises. | ||
|
18:53
dodathome joined
|
|||
| Eclesia | one warning remaining : WARNING: Checking: new unknown type | 18:54 | |
| NotFound: -I you said ? | |||
| NotFound | Uppercase i | ||
| Eclesia | NotFound: mustbe a file, or a relative path will do ? | 18:56 | |
| NotFound | Eclesia: maybe I'm confused... Do you asked about this? "<NotFound> You may need -I if you use $include_const" | 18:57 | |
| Eclesia | ho no sorry. | ||
| I have this warning, but don't know what's the cause | 18:58 | ||
| bubaflub | whiteknight: i use that in parrot-gmp to silence warnings in the test suite | ||
| NotFound | Eclesia: if you are using just the class name you may want a ”using namespace' statement together with the declarations: using namespace Rosella.Filesystem; | 18:59 | |
| dalek | rrot: 52da8ea | jkeenan++ | src/pmc/resizablepmcarray.pmc: [codingstd] Eliminate 2 instances trailing whitespace. |
19:00 | |
| cotto | trac is wacky again | 19:09 | |
| free space on the vm looks fine | 19:10 | ||
| atrodo | is the "working" switch flipped on? | ||
| Eclesia | is there a method to replace a charsequence by another in a string ? | 19:12 | |
| cotto | error log looks uninteresting | ||
|
19:13
NotFound left
|
|||
| cotto | what was the problem last time? | 19:14 | |
|
19:14
NotFound joined
|
|||
| bubaflub | memory? | 19:20 | |
|
19:20
Patterner joined
|
|||
| cotto | bubaflub, not sure. It's not heavily loaded at all atm. ac-town in #osuosl said it was acting up this morning. | 19:21 | |
| bubaflub | cotto: yeah, last night / this morning i couldn't log in or reset my password | ||
| Eclesia | whiteknight: looks like a bug in rosella : pastebin.com/0QWYqZWP | 19:22 | |
| cotto | soh_cah_toa++ #"onoes! das bad!\\n" | 19:24 | |
| Eclesia | NotFound: Is that allowed : self.targetFolder = "somePath"; self.targetFolder = new Rosella.FileSystem.Directory(self.targetFolder); ? | ||
|
19:27
autark left
|
|||
| NotFound | Eclesia: yes | 19:28 | |
| whiteknight | Eclesia: yes, probably a bug | 19:30 | |
| probably a stupid typo somewhere. I'll fix it tonight | 19:31 | ||
| dalek | p: 959bb78 | pmichaud++ | tools/build/PARROT_REVISION: Bump PARROT_REVISION to get latest splice improvements. |
19:34 | |
| Eclesia | whiteknight: what time is it for you ? | 19:35 | |
| whiteknight | Eclesia: about 3:40 | 19:41 | |
| pm | |||
| you? | 19:42 | ||
| Eclesia | 21h 40 | ||
| whiteknight | phpneeds.orchestra.io/ | 19:45 | |
| Eclesia: where do you live? | |||
| Eclesia | whiteknight: france | 19:46 | |
| whiteknight | Eclesia: oh, awesome. I'm east coast USA | 19:47 | |
| So I'll probably have to fix that after you've gone to sleep | 19:48 | ||
| Eclesia | whiteknight: glad to know you are not one of those who hate frenchs ^^ | ||
| whiteknight | Eclesia: far from it! I've had several friends from there over the years | ||
| well, several internet-friends | |||
| cotto | trac should back to normal now | 19:49 | |
| Eclesia | whiteknight: a new constructor File like this would be nice : function File(var directory, string name) . avoids a lot of string work and potential filesystem separator errors | 19:51 | |
| bubaflub | cotto: i'm getting a strange warning at the top of hte page after logging into trac: Can't synchronize with the repository (Couldn't open Subversion repository /var/lib/svn/parrot: SubversionException: ('Error opening db lockfile', 2)). Look in the Trac log for more information. | 19:52 | |
| whiteknight | Eclesia: yes, that makes good sense | ||
| bubaflub | though i can now log in, cotto++ | ||
| whiteknight | Eclesia: You can do "var file = directory["filename"]" | 19:53 | |
| if you already have a Directory object | |||
| Eclesia | strange writing | ||
| whiteknight | bubaflub: they deleted the svn repo to make space on the VM | ||
| bubaflub | ok. | 19:54 | |
| whiteknight | Eclesia: a directory is basically a hash. You can index into it by name | ||
| Eclesia | whiteknight: what if the file for the given name doesn't exist ? | ||
| whiteknight | Eclesia: good question. I don't remember. It might return null | ||
| let me look | |||
| Yes, returns null | 19:55 | ||
| oh, I see. You want to autocreate a file in a directory | 19:56 | ||
| I can add that | |||
| Eclesia | whiteknight: I don't think it's a good idea to create it automaticly. having a null to indicate it doesn't exist is usefull. if you return a File object but the file does not really exist on disk it might be confusing | 19:59 | |
|
20:01
autark joined
|
|||
| whiteknight | There is a File.exists() method | 20:02 | |
| I can do whatever you want. I don't have a clear use-case in mind | 20:03 | ||
| Eclesia | don't say that or I'll ask you to make an xml api :) | ||
| anyway, I prefer the first solution, a new constructor on File | 20:04 | ||
|
20:04
mj41 joined
|
|||
| Eclesia | another question (again) : where can I get the system path separator ? | 20:06 | |
| Eclesia see rosella always use '/' , might be a problem later | 20:07 | ||
| whiteknight | I haven't added a system path separator global yet. the '/' is a problem | 20:08 | |
| I've been lazy | |||
| Eclesia: do you have an account on github? | |||
| Eclesia | whiteknight: no and I'm not that much friendly with git. I use mercurial most of the time | 20:10 | |
| whiteknight | Eclesia: Okay. Rosella has an issue tracker on github you can open requests on, if I'm not around | ||
| I created issues for that bug and your requests | 20:12 | ||
| that way I don't forget | |||
| Eclesia | 8-) | 20:13 | |
|
20:14
zby_home joined
|
|||
| Eclesia | and two last questions for today : how to replace a string sequence by another in a string ? and how to execute a command line ? | 20:20 | |
| whiteknight | I think there is a "replace" op for string replace. I need to hunt down the syntax for it | 20:21 | |
| There is a "spawnw" op to launch a new program. Rosella does that in the test harness and captures the standard output of the child. I think there is also a "system" op for doing commandline calls | 20:22 | ||
| cotto | Is there any reason that FileHandle.readline_interactive returns PMCNULL on eof instead of STRINGNULL? | 20:23 | |
| whiteknight | cotto: so that we have a reason to create a ticket for it | ||
| sorear | cotto: can it return STRINGNULL? | ||
| how could it? | |||
| cotto | sorear, I'm testing that now. | ||
| We have the technology. | |||
| make test looks ok | 20:24 | ||
| whiteknight | Eclesia: I was wrong. No "system" op. Only "spawn" | ||
| cotto | maybe it came from before STRINGNULL was a thing | ||
| whiteknight | in PIR, its "$I0 = spawnw 'commandline'" | ||
| Eclesia | ok | 20:25 | |
| whiteknight | Eclesia: and the replace opcode: github.com/parrot/parrot/blob/mast...g.ops#L236 | ||
| cotto | If it returns PMCNULL, pcc tries to convert it to a STRING and throws an exception when that's not possible. | ||
| whiteknight | docs are tricky. I think you can read it better than I can explain it | ||
| cotto | seen soh_cah_toa | ||
| aloha | soh_cah_toa was last seen in #parrot 16 hours 46 mins ago saying "except now it does so i'll push it so you can see". | ||
| NotFound | cotto: at one time I changed it, but got hard pressure to revert that change. | 20:26 | |
| Eclesia | whiteknight: that looks like a replace only for a char | ||
| cotto | NotFound, really? Why? | ||
| whiteknight | basically, I think it's "var newstr = replace(oldstr, start, length, replacestr) | ||
| Eclesia: no, it's strings. Parrot doesn't do operations on chars | |||
| not usually | |||
| NotFound | cotto: don't remember well, nqp or rakudo depending on the current behavior. | ||
| cotto | sigh | ||
| whiteknight | cotto: tell me about it. | 20:27 | |
| Coke | well, to be fair, it was probably "depending on it and not having a clean upgrade path." ;) | 20:30 | |
| cotto | testing now | ||
|
20:32
contingencyplan joined
20:33
cottoo joined
|
|||
| cottoo | something definitely killed my laptop | 20:33 | |
|
20:34
cotto left
|
|||
| cottoo | need to investivate later | 20:34 | |
| whiteknight | cottoo: if my kid was anywhere near it, it was probably my kid | 20:35 | |
| otherwise, I have no idea | |||
| Eclesia fight with the replace function | |||
| too many positional arguments: 5 passed, 3 expected | 20:37 | ||
| ath = path.replace(".ec",0,1,".pir"); | |||
| Coke | the "missing" 5th is probably self, ae? | 20:38 | |
| Eclesia | nope, path is knowned only in the function | 20:39 | |
|
20:40
cottoo left
|
|||
| Eclesia | path = path.replace(".ec",".pir"); | 20:40 | |
| too few positional arguments: 1 passed, 2 (or more) expected | |||
| how did he jumped from 5 too 1 by removing two arguments ... | |||
| to* | |||
|
20:42
pjcj_ joined
|
|||
| whiteknight | I've never used that function, I'll have to play with it tonight | 20:44 | |
| if path is a String PMC, there might be a replace method you are calling | 20:45 | ||
| that might have different arguments | |||
| dukeleto | can people log into trac again? | 20:46 | |
|
20:46
pjcj left
|
|||
| dukeleto | the parrotvm ran out of inodes due to smolder, which doesn't even work right now. smolder-- | 20:46 | |
|
20:47
dodathome left
|
|||
| bubaflub | dukeleto: yep | 20:47 | |
|
20:48
soh_cah_toa joined
|
|||
| soh_cah_toa | ~~ | 20:49 | |
|
20:50
cottoo joined,
cottoo is now known as cotto
|
|||
| sorear | whiteknight: does PASM still have the stupid syntax restriction where subs are limited to 100 registers? | 20:51 | |
| whiteknight | sorear: I don't know if there are any restrictions like that in place now. I certainly never make functions that large | 20:53 | |
| I suspect not, but I don't know | |||
| sorear: why, are you running up against a limit? | |||
| PerlJam doesn't even remember the 100 register limit on subs | |||
| whiteknight | There used to be a restriction like that on sub parameters | 20:54 | |
| I know that restriction is gone now and we have tests to prove it | |||
| sorear | PerlJam: once upon a time, IIUC, subs had exactly 32 registers of each type, because that's how real CPUs work and nobody had thought critically about it yet | 20:55 | |
| PASM was designed to parse 2 digits after [INSP], because that was enough | 20:56 | ||
| PIR supported more registers, and automatically handled spilling | |||
| whiteknight | Yes, very old parrot used to have a fixed number of registers and mechanisms to spill | ||
| PerlJam | oh, yes ... I remember the 32 register limit, but that's long been gone | ||
| tadzik | where did the rest of the the data go? | ||
| sorear | the 100 register limit is/was a syntactic vestige of the old order | ||
| PerlJam | gotcha | ||
| tadzik | oh, there is still set_lex and stuff | 20:57 | |
| cotto | testing rakudo now | 20:58 | |
|
20:58
pjcj_ is now known as pjcj
21:04
mj41 left
|
|||
| whiteknight | sorear: What I think we are missing is a good register allocator that is going to be able to reuse slots when logical values reach end of life | 21:04 | |
| tadzik | store_lex / find_lex is the way to store data in Parrot? Pardon my newbie question, I never got to that layer | 21:05 | |
| in the assemblies I'm more-less familiar with you usually use the stack | 21:06 | ||
| sorear | whiteknight: putting a register allocator in an assembler makes no sense whatsoever | 21:07 | |
| whiteknight | sorear: right. PASM does not have a register allocator. PIR sort of does | ||
| Because you can do $P99 and not have 99 registers | |||
| We used to have a graph-coloring allocator, or at least the beginnings of one for PIR code. | 21:10 | ||
|
21:10
masak joined
|
|||
| masak | oh hai | 21:10 | |
| whiteknight | That got ripped out since it was perpetually broken, ran in something like O(N^7) time, and nobody knew how to make it work | ||
| masak | I think it's too bad that the ncurses example doesn't work, as in trac.parrot.org/parrot/ticket/2130 | ||
| whiteknight | also, it was in IMCC, and we like to rip things out of IMCC | 21:11 | |
| benabik | POST has a register allocator. | ||
| Well, newPOST. | |||
| cotto | only one spectest failed, so that looks promising | 21:12 | |
|
21:12
ambs left
|
|||
| Eclesia | NotFound: string concatenation with + still not working ? | 21:13 | |
| cotto | lua looks fine | 21:21 | |
|
21:22
NotFound_b joined
|
|||
| NotFound_b | Eclesia: string contanation works when both arguments are string. If not, you must coerce to string. | 21:23 | |
| Eclesia | coerce ? | ||
| NotFound_b | string(something) | 21:24 | |
|
21:24
masak left
|
|||
| Eclesia | NotFound : if I have two different strings it works. but if I try : n = n + p; (n and p being strings) it writes 0 | 21:25 | |
| NotFound_b: ā | 21:26 | ||
| NotFound_b | Eclesia: it must be string type, doesn't work with a var that contains a String pmc. | ||
| cotto | NotFound_b, did you file a ticket about the readline_interactive change? If that change was previously rejected, I'd like to dig in and find out why. | ||
| NotFound_b | cotto: let me look... | ||
| cotto: TT #760 | 21:28 | ||
|
21:28
whiteknight left
|
|||
| cotto | NotFound_b, thanks | 21:28 | |
| partcl passes too | |||
| anyone recall when STRINGNULL was added? | 21:29 | ||
| NotFound_b | cotto: it doesn't matter, the problem was the same with (STRING*)NULL | 21:31 | |
| cotto | will need to dig in later after this talk | ||
|
21:32
wagle left
|
|||
| Eclesia | string compileCommand = "parrot -o " + pbcFilePath + " " + pirFilePath; spawnw(compileCommand); <-- not working :( | 21:41 | |
| no errors but doesn't work | |||
|
21:41
Psyche^ joined
21:43
Eclesia left
21:46
Patterner left,
Psyche^ is now known as Patterner,
perlite_ joined
21:49
hercynium left
21:50
perlite left,
perlite_ is now known as perlite
|
|||
| soh_cah_toa | cotto: i have a question. i need a .pbc file for the ipc test but when i try to add it to the staging area i get: "The following paths are ignored by one of your .gitignore files: t/tools/hbdb_t2.pbc". what do i do about this? | 22:18 | |
|
22:22
cotto left
|
|||
| plobsing | soh_cah_toa: can you generate the .pbc from a PIR in the build stage somewhere? we've had numerous headaches in the past with PBC checked in to the repo. | 22:23 | |
| soh_cah_toa | that's what i'm looking to do now. trying to figure it out | 22:24 | |
| plobsing | better yet, have your test setup and tear-down a temp file | 22:25 | |
| I think we have some tests that do that already, although I cannot recall which ones | |||
| NotFound_b | test_prep target | 22:29 | |
| pbctestfiles: | 22:30 | ||
| soh_cah_toa looks | 22:32 | ||
| NotFound_b | Line 2048 in config/gen/makefiles/root.in | ||
| soh_cah_toa | there's no .pbc files in t/perl/testlib though | 22:33 | |
|
22:38
wagle joined,
cotto joined
|
|||
| NotFound_b | soh_cah_toa: What problem do you have with that? | 22:38 | |
| cotto | ohai | ||
| soh_cah_toa | NotFound_b: well, i need one | 22:40 | |
| or atleast figure out how to generate one | |||
| temporarily | |||
| NotFound_b | One file in t/perl/testlib ? | 22:41 | |
| cotto | soh_cah_toa, the best solution would be to make a directory specifically for test data | ||
| something like t/hbdb/data (assuming t/hbdb exists) | |||
| soh_cah_toa | ok | ||
| cotto | actually, yes, generating it would be better | ||
| pbc still changes, so generating it at test time would be save you the headache of doing so manually | 22:42 | ||
| soh_cah_toa | yeah, i don't know how though | ||
| NotFound_b | I think using the existing convention of 'testlib' will be better. | ||
| soh_cah_toa | NotFound_b: i was gonna do that anyway | 22:43 | |
| cotto | `./parrot -o t/foo/buz.pbc t/foo/buz.pir` | ||
| You don't need to try to be clever by generating it using the api. | |||
| soh_cah_toa | oh yeah, i know that. i thought i saw some tempfile method in a perl module somewhere though | 22:44 | |
| cotto | ah | ||
| NotFound_b | Just add it to root.in following what the other targets in pbctestfiles do. | ||
| cotto | talk time | ||
| soh_cah_toa | ok | 22:47 | |
| NotFound_b | soh_cah_toa: I think that compiling the file during the test makes sense only if you are testing the compilation itself. If you are just using the file, let the build process take care, | ||
| soh_cah_toa | NotFound_b: yes, eventually i do want to test that b/c i'd really like hbdb to be given a .pir file instead and just compile it | 22:48 | |
| NotFound_b: but for this test, you're right | 22:49 | ||
|
22:50
GodFather joined,
whiteknight joined,
GodFather left
|
|||
| jnthn__ | Is there something more than make that I have to do if I update ops? | 22:50 | |
| NotFound_b | soh_cah_toa: for the .pir test you can add other file in the same directory without adding a rule to make it. Or just use the same file for both tests. | 22:51 | |
| soh_cah_toa | right | ||
| NotFound_b | jnthn__: make bootstrap-ops | ||
|
22:54
GodFather joined,
GodFather left
|
|||
| jnthn__ | NotFound_b: thanks | 22:56 | |
|
22:56
kid51 joined
23:15
NotFound_b left
23:32
kid51 is now known as kid51_at_dinner
|
|||
| jnthn__ | Are ops numbered/ordered in any way now? I'm getting a weird issue after adding some new ones where pbc_to_exe seems to get compiled with wrong op numbers in it :/ | 23:44 | |
| cotto | adding an op will invalidate existing pbc | 23:47 | |
| yes | |||
| bacek_at_work | jnthn__, "make bootstrap-ops" | ||
| cotto | also, reconfig && world | ||
|
23:48
dmalcolm left,
zby_home_ joined
|
|||
| jnthn__ | bacek_at_work: I did...it looks like existing PBCs, as cotto said. | 23:49 | |
| cotto: Seems I have non-PMC lexicals about working. :) | 23:50 | ||
|
23:51
zby_home left
|
|||
| cotto | jnthn__, nice | 23:51 | |
| whiteknight | jnthn__: in parrot? | ||
|
23:51
daniel-s joined
|
|||
| jnthn__ | whiteknight: Yes. | 23:52 | |
| whiteknight | jnthn__++ | ||
| jnthn__ | pmichaud++ prodded me into having a crack at natively typed lexicals in Rakudo :) | 23:53 | |
| cotto | apparently chromatic++ had a patch for that 18 months ago. | ||
| jnthn__ | Yes, it was leftover lexicals. | ||
| gah | |||
| leftover *PBCs* | |||
| jnthn__ is exhausted from two days teaching in another city :) | |||
| OK, time for rest. | 23:58 | ||
| I sort out the tests tomorrow. | |||
| sleep & | 23:59 | ||