|
Parrot 3.8.0 "Magrathea" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 29 September 2011. |
|||
| dalek | kudo/nom: 300627d | Coke++ | t/spectest.data: track failure modes. (mostly slightly reworded due to optimization branch.) |
00:18 | |
|
00:39
preflex_ joined
00:46
plobsing_ joined
01:30
rfw joined
01:34
jsut joined
|
|||
| dalek | rrot/kid51/testsets2: 5f133a8 | jkeenan++ | lib/Parrot/Harness/DefaultTests.pm: Merge branch 'master' of git@github.com:parrot/parrot |
02:45 | |
| rrot/kid51/testsets2: afc69ec | jkeenan++ | lib/Parrot/Harness/ (2 files): Second try at extracting test group assignments. |
|||
| rrot/kid51/testsets2: b32b558 | jkeenan++ | MANIFEST: Update MANIFEST to include new file. |
|||
| umage: e04372d | soh_cah_toa++ | src/plumage.nqp: Fixed 'help' command to display usage information if an unrecognized command is passed so that it doesn't thrown an exception. |
03:11 | ||
| umage: bba3824 | soh_cah_toa++ | src/plumage.nqp: Combined multiple calls to say() in command_help() into just one since doing otherwise is just wasteful. |
03:13 | ||
| kudo/nom: 05d6117 | moritz++ | docs/ChangeLog: update ChangeLog |
04:55 | ||
|
04:55
bluescreen joined
|
|||
| dalek | kudo/nom: ea25f3e | moritz++ | src/core/List.pm: tweak error message |
04:59 | |
|
06:51
lateau1 joined
07:12
fperrad joined
07:32
mj41 joined
08:54
AzureStone joined
09:10
TonyC joined,
Tene joined,
nopaste joined
09:32
fperrad joined
|
|||
| nine | In case anyone's here, I'd be grateful for feedback on this idea: perl6.niner.name/parrot/getting_rid...index.html | 09:32 | |
| moritz | nine: it seems you have lumped togehter NCI with all other kind of C code | 09:40 | |
| like custom ops | |||
| nine | and these can call back into PIR? | ||
|
09:41
contingencyplan joined
|
|||
| moritz | nine: sure | 09:41 | |
| nine: imagine you write a custom math op | 09:42 | ||
| you'll likely call the get_number vtable | |||
| which can very well be implemented in PIR | |||
| nine | moritz: makes sense, yes. Do you see any reason the same system could not be applied to ops? | ||
| Apart from sounding very slow :/ | |||
| moritz | nine: I have trouble seeing how it works | 09:45 | |
| nine: if you write some C pseudo code that illustrates how I would get the result from a get_number vtable without a nested runloop, that might help | |||
| nine | moritz: will do. This will probably help me as well | 09:50 | |
| moritz: thanks already :) | 09:54 | ||
| dalek | kudo/nom: aa1ea2a | moritz++ | src/core/Complex.pm: prefix:<abs>(Complex) |
10:01 | |
| kudo/nom: 25af2d0 | moritz++ | src/core/Complex.pm: add return type annotations to Complex ops |
|||
| nine | moritz: updated with some more thoughts. I guess the callstacks should explain a little better how I imagine this to work | 10:45 | |
| moritz: in short: ideally this would be a purely internal implementation change invisible to HLL | 10:46 | ||
|
11:00
ttbot joined
|
|||
| moritz | nine: so in summary, you propose that all parrot API calls look up the outer runloop, and there schedule to perform the task they are supposed to do, plus some scary C magic that brings resumes execution in the C function that called them? | 11:07 | |
| ttbot | Parrot 6026393c MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/52782 | 11:09 | |
| moritz | I could imagine that this might lead to stack corruption very quickly | ||
| you'd need to maintain a stack of C stacks | 11:10 | ||
| nine | moritz: that's why I think there should still be some nesting going on. But nested scheduler loops instead of nested runloops. For task preemption there needs to be only _some_ scheduler loop running, not neccessarily the outer most. | 11:13 | |
| The advantage being only one PIR runloop being active at any time making preemption possible. | 11:15 | ||
| Actually this would be _less_ magic than we have now | |||
|
11:37
Psyche^ joined
11:43
Coke joined
12:15
Coke joined
|
|||
| awwaiid | moritz/nine -- starting to sound like Coro :) | 12:30 | |
| moritz | awwaiid: well yes, coroutines are a solution to nested runloops | 12:31 | |
| awwaiid | I meant with the C stack juggling specifically | ||
| dalek | rrot/kid51/testsets2: 638c465 | jkeenan++ | lib/Parrot/Harness/TestSets.pm: Update docs to reflect switch to glob patterns. |
12:33 | |
| awwaiid | perl5 Coro splices out/in C stacks to deal with any XS modules. That's why Coro is so Scarily Awesome (Awesomely Scary?) -- it deals both with perl5 internals and XS/C extensions | 12:35 | |
|
13:11
not_gerd joined
|
|||
| not_gerd | hello, #parrot | 13:11 | |
| nine: I don't think you can get rid of nested runloops without taking a snapshot of the C stack | 13:16 | ||
| nine: this is indeed possible, eg by manually creating a copy of the stack on the heap (eg gnu guile does it this way) | 13:18 | ||
| nine: a more portable approach could be to create a new os-level thread for each C call and schedule these the same way as PIR tasks | 13:19 | ||
| nine: however, all three approaches (nested runloops, manual stack copying, threads) have their own issues | |||
| benabik | There are POSIX functions for dealing with the stack: getcontext/setcontext. | 13:31 | |
| I have pondered that writing Parrot would be easier if we had a C-with-continuations. | |||
| (Of course, writing parrot in an environment with GC and continuations is somewhat the point of M0, as I understand it.) | 13:32 | ||
|
14:54
bluescreen joined
14:57
not_gerd joined
15:03
mj41 joined
15:05
Coke joined
15:25
mj41 joined
15:58
whiteknight joined
16:13
lateau left
16:16
GodFather joined
|
|||
| dalek | CT: 622c8ee | benabik++ | / (10 files): Rename Markdown files to .mkd This makes Vim much happier. |
17:17 | |
| benabik | Q: Does Winxed ignore POD comments, or do I need to wrap them in /* */? | 17:26 | |
| sorear | winxed: do you have an evalbot | 17:27 | |
| benabik | I guess I'll just test it when I'm done building Parrot. | 17:30 | |
| Need to wrap them. Check. | 17:31 | ||
|
17:34
eternaleye_ joined
17:38
zby_home joined
17:47
GodFather joined
17:50
soh_cah_toa joined
17:59
GodFather joined
|
|||
| dalek | gest-dynpmcs: b5dd829 | fperrad++ | / (2 files): use get_id instead of get_addr |
18:16 | |
| a: 945450f | fperrad++ | dynext/pmc/luaany.pmc: remove useless get_pointer |
|||
|
18:24
mj41 joined
|
|||
| benabik | I was going to work on PACT, but first I want a Winxed syntax highlighter… So wheee.. | 18:24 | |
|
18:40
wagle joined
18:42
Coke joined
|
|||
| benabik | … Interesting. Winxed uses String.unescape, which is marked experimental. | 18:43 | |
| soh_cah_toa | what the heck? parrot-nqp only supports private class attributes? | 18:47 | |
| that's kinda lame... | |||
| benabik | nqp is not a good system language. | ||
| soh_cah_toa | is parrot-nqp = nqp || nqp-rx? | 18:48 | |
| benabik | nqp-rx | ||
| soh_cah_toa | is it actually kept in sync w/ nqp-rx or is it kinda our own version? | ||
| benabik | It's kept in sync with nqp-rx, but nqp-rx is barely ever updated these days. | 18:49 | |
| soh_cah_toa | rakudo uses nqp (not nqp-rx), right? | 18:50 | |
| benabik | Yes. | 18:51 | |
| nom does. b uses -rx | |||
| soh_cah_toa | ok | ||
| why the switch? | 18:52 | ||
| benabik | nap has 6model, native types, and probably a few other things. | ||
| *nqp | |||
| soh_cah_toa | oh and doesn't it have the new qregex engine too? | 18:53 | |
| benabik | Yes. | ||
| soh_cah_toa | so then it's not really true the nqp = nqp w/o regex and nqp-rx = nqp w/ regex | ||
| benabik | Yeah... | 18:54 | |
| I think there was an nqp before nqp-rx that didn't have them. | |||
| soh_cah_toa | yeah | ||
| it sounds like we'd be pretty stupid to continue using nqp-rx when nqp is clearly superior | |||
| benabik | It went nqp -> nqp-rx -> nqp. | 18:55 | |
| soh_cah_toa | and more actively maintained | ||
| benabik | We may change when 6model is in parrot. | ||
| But probably not before that. | |||
| (my guess) | |||
| soh_cah_toa | so then...never? ;) | 18:56 | |
| benabik | :P | ||
| soh_cah_toa | what version of perldoc does parrot-nqp use: p5 or the unrenderable p6? | 18:57 | |
| benabik | I think 6. | ||
| There's POD6 parser now in nom… but I don't know how tied it is to the Perl6 parser. | 18:58 | ||
| soh_cah_toa | o rly? | ||
| what's it called? how do i use it? | |||
| i've been dying to actually render p6 pod | 18:59 | ||
| benabik | It was a GSoC project. I'd ask over in #perl6 | 19:00 | |
| soh_cah_toa | oh right, tadzik i think | ||
| benabik | Right. | ||
| alvis_ | Hello all. | 19:05 | |
| benabik: If I may, are there any docs, of which you are aware, which denote the differences between 'nqp' and 'nqp-rx'? | |||
| dalek | rrot/kid51/testsets2: cdae7a7 | jkeenan++ | / (4 files): Add program t/fullharness. This enables us to run the equivalent of 'make fulltest' as a single target rather than a sequence of individual targets. This brings us closer to being able to submit a smoke report on 'fulltest'. Restructure lib/Parrot/Harness/TestSets.pm so it's more hash-focused than array-focused. Correct documentation in lib/Parrot/Harness/DefaultTests.pm and use new interface to TestSets.pm. |
||
|
19:05
eternaleye_ joined
|
|||
| benabik | alvis_: NQP is what I would call "documentation light". :-/ | ||
| Wheee… I'm writing a Winxed syntax file by reading the tokenizer. | 19:06 | ||
| alvis_ | benabik: :-) | ||
| benabik: Also, you are saying parrot development "should" be with nqp-rx (or parrot-nqp) instead of nqp (or Winxed)? | 19:07 | ||
| benabik | alvis_: I would personally recommend winxed for parrot development at this point. | ||
| soh_cah_toa | agreed | 19:08 | |
| alvis_ | benabik: May I ask why? (I'm just for a basic idea as to why, at this point.) | ||
| soh_cah_toa | it's prettier and way faster ;) | ||
| benabik | Faster agreed. | ||
| (Prettier depends on how much you like Perl, I suppose.) | 19:09 | ||
| alvis_ | Ok, sounds good. (And I like Perl, quite a | ||
| a'lot, actually) | |||
| benabik | alvis_: Mostly winxed is much closer to the actual semantics of the Parrot VM. NQP{,-rx} try to layer Perl semantics on top of it. | ||
| soh_cah_toa | yes, it's more natural | 19:10 | |
| benabik | ( | ||
| alvis_ | benabik: Oh, ok. Thanks you. That helps. | ||
| Make that, Thank you. (Can't type today.) | |||
| soh_cah_toa | they're both quite poorly documented but i think winxed does a little better job | 19:11 | |
| alvis_: are you still new to winxed? have you used it before? | |||
|
19:12
bluescreen joined
|
|||
| benabik | winxed has documentation, which puts it ahead of NQP. Agreed it's a little sparse. | 19:12 | |
| alvis_ | soh_cah_toa: Very. I've only looked at it and read through the docs on the Rosella website. | ||
| soh_cah_toa | alvis_: ah good. that's exactly what i was gonna recommend you go read | ||
| benabik | I'm also fairly unused to Winxed. Writing a syntax highlighter is my starting point. :-D | 19:13 | |
| (I may be crazy) | |||
| alvis_ | benabik: Yeah, I cloned PACT. I really like the idea/drive behind the project, fwiw. | ||
| soh_cah_toa | also, winxed follows the principle of least surprise a lot better than nqp does. that's b/c nqp wasn't really designed to be a general purpose language and only used by rakudo devs | 19:15 | |
| alvis_ | soh_cah_toa: Ahh ..., that makes sense then. | 19:16 | |
| soh_cah_toa | benabik: wasn't there a project that would allow pct users to write they're action methods in winxed? | 19:17 | |
| s/they're/their/ #whoops | |||
| benabik | soh_cah_toa: I don't think there needs to be a project for it… PCT just calls methods on an object. | ||
| s/PCT/nqp-rx/ | |||
| The real use of nqp-rx at this point is grammars, IMHO. It's the best parsing system we have. | 19:18 | ||
| soh_cah_toa | sure | ||
| sometimes i think it might just be a good idea to offer an alternative syntax at least to pct users who aren't crazy about perl. in particular, python devs | 19:20 | ||
| alvis_ | Fwiw, the whole PCT is a cool idea. Reminiscent of re2c or PEGs, but, for me at least, very unfamilar. | ||
| When I *first* started looking and digging around, I was really expecting a flex/bison related tool chain. | 19:21 | ||
| soh_cah_toa | indeed, it is reminiscent of peg's | ||
| benabik | It's a fancy recursive decent parser. | 19:22 | |
| I'd love something with a similar syntax but better backeng. | |||
| backend. | |||
| soh_cah_toa | i wish we had a better and up to date tutorial for pct though :\\ | ||
| benabik | The best I can offer is my cish writeup. | ||
| github.com/benabik/cish | 19:23 | ||
| soh_cah_toa | yeah, and squaak but it's old | ||
| alvis_ | soh_cah_toa: Second, big time, on the tutorial for pct. | ||
| benabik | alvis_: ^^ my cish project was an overview for a class. Not structured as a tutorial, but fairly detailed. | ||
| alvis_ | benabik: Yeah, I just found that a day or two ago. I just haven't gotten 'round to looking at it yet. | ||
| benabik | Squaak isn't bad. It just needs to be updated. I don't think it's too out of date though... | 19:24 | |
| alvis_ | benabik: Agreed. | ||
| soh_cah_toa, benabik: Well, thank you both very much. I appreciate it. But I gtg to Ft. Worth now. | 19:26 | ||
| benabik | alvis_: Have a good trip! | ||
| soh_cah_toa | alvis_: sure, no problem | ||
| NotFound | ~~ | 19:52 | |
|
19:52
logie joined
|
|||
| benabik | Winxed syntax file for vim: gist.github.com/1291335 | 19:54 | |
| soh_cah_toa | benabik++ | 20:01 | |
| NotFound never use syntax coloring | |||
| soh_cah_toa | vim syntax files can be a bit of a pain to write | ||
| benabik | soh_cah_toa: This is a very very simple one. I basically just ran down the Javascript syntax and added the Winxed keywords. | ||
| It's enough to make it more readable. | |||
| soh_cah_toa | cool | ||
| NotFound: how come? it makes things more readable | 20:02 | ||
| NotFound | soh_cah_toa: it may be a generational barrier | ||
| soh_cah_toa | whatever floats your boat, i guess | 20:03 | |
| your boat just isn't very colorful :P | |||
| NotFound | Just the name "Winxed" is much more colorful than any other programming language. | 20:06 | |
| soh_cah_toa | i'll give you that :) | ||
| plobsing_ | soh_cah_toa: (re: alternate syntax) people could always start using Ωη;)XD </shameless-plug> | 20:29 | |
| soh_cah_toa | oh | 20:30 | |
| plobsing_ | PCT at its core, IIRC, is simply a means of plugging different compiler stages together. A different parser shouldn't be too much trouble. | 20:33 | |
| dalek | rrot: 2aca3a1 | dukeleto++ | tools/dev/mk_language_shell.in: [tools] Prevent mk_language_shell.pl from creating svn $Id$ lines |
20:36 | |
| soh_cah_toa | agh, where the heck is the coding conventions document? | 20:39 | |
| i can never find it >:( | |||
| you'd think it'd be in docs/project or docs/dev but no | 20:40 | ||
| plobsing_ | you mean docs/pdds/pdd07_codingstd.pod? | 20:42 | |
| soh_cah_toa | ah, yes | ||
| plobsing_ | find docs | grep coding # ftw | ||
| soh_cah_toa | not sure i like it in a pdd but whatever | ||
| plobsing_ | PDDs are supposed to be more binding or something. Which is, of course, why they are for the most part some of the least accurate descriptions of Parrot available in our docs. | 20:44 | |
| I don't really like anything as a PDD. | |||
| soh_cah_toa | yeah, codingstd has nothing to do w/ the "design" of parrot though | ||
| a more appropriate place would be docs/dev or docs/project | 20:45 | ||
| plobsing_ | soh_cah_toa: If you'd like to put our docs in order, I'm sure it would be much appreciated. | ||
| soh_cah_toa | but it really doesn't matter b/c hardly anybody follows it anyway | ||
| plobsing_ | that's not true. we have codingstd tests | 20:46 | |
| soh_cah_toa | that usually fail :P | ||
| plobsing_ | oh? | ||
| soh_cah_toa | yeah. i'd actually like to make a git hook that runs codingstd tests before commiting | ||
| plobsing_ | I thought we had magical awesome code gnomes that fixed those. | ||
| soh_cah_toa | usually the release manager b/c they're the only ones who *have* to run 'fulltest' | 20:47 | |
| plobsing_ | I run fulltest regularly on my branches. | ||
| soh_cah_toa | wow, i'm surprised. good | ||
| plobsing_ | yeah, little good it does me. it seems my changes always cause problems anyways. | 20:48 | |
| soh_cah_toa | i suppose i could open an rfc ticket to see how people would feel about a pre-commit hook that runs codingstd tests. that's the best way to get people to actually follow them | ||
| plobsing_ | I'd be -1 for that. I know several developpers (myself included) whose workflow includes breaking codingstds in minor ways for intermediate states. | 20:49 | |
| for example, bacek and myself use // to indicate temporary comments, which should be dealt with before merge to master. | 20:50 | ||
| soh_cah_toa | can hooks just display a warning rather than totally preventing the commit? | ||
| i'll have to check | |||
| plobsing_ | plus commit hook is the wrong granularity | ||
| it should be a 'merge to master' hook | |||
| soh_cah_toa | that would certainly help | 20:51 | |
| and wouldn't whine about intermediate states | |||
| dalek | p-parrot-create: f804aa6 | dukeleto++ | LICENSE: add artistic license 2.0 |
21:01 | |
| p-parrot-create: 6c1e876 | dukeleto++ | bin/new_parrot_language.pl: Fork tools/dev/mk_language_shell.pl from parrot.git so I can bend it to my will |
|||
| benabik | Whee… Reading a packfile! gist.github.com/1291423 | 21:07 | |
|
21:16
bubaflub joined
21:18
logie joined
21:23
mj41 joined
|
|||
| dalek | nxed: 33a55cb | NotFound++ | winxed.winxed: add ability to use custom stages to non installable driver |
21:32 | |
| benabik | Huh. The Packfile PMCs are telling me that this has 0 PMC constants. pbc_dump says 2 | 21:37 | |
| NotFound | benabik: I'll not be surprised if both are wrong. | 21:42 | |
| benabik | NotFound: pbc_dump I think is right… 1 empty FIA for the return, 1 Sub PMC | ||
| dalek | kudo/nom: 6f86603 | (Geoffrey Broadwell)++ | src/core/Main.pm: Merge WIP snapshot 2 of main-usage |
21:43 | |
| NotFound | Sounds likely | ||
| dalek | umage: 13e45b8 | soh_cah_toa++ | docs/hacking/ (6 files): Fixed all perldoc in docs/hacking so that `perl6 --doc` renders it correctly. Also fixed a bunch of grammatical errors. |
21:46 | |
| benabik | $S0 = $P0[$I0] should be calling get_string_keyed_int($S0, $P0, $I0), yes? | ||
| NotFound | benabik: yes | 21:47 | |
| benabik | :-( | ||
| I'm thinking that the Packfile PMCs are not very well tested. | |||
| NotFound | Ehhhh... not exactly: should be: $S0 = get_string_keyed_int(nterp, $P0, $I0) | 21:48 | |
| benabik | NotFound: Er, yes, that's what I mean. | ||
| benabik was thinking opcode-like, not C func like. | 21:49 | ||
| soh_cah_toa | no, they definitely are not | ||
| benabik | Well, I'm going to finish this and then start poking at the guts. | ||
| gist.github.com/1291423 | |||
| NotFound | Thet are probably incomplete, also. | ||
| soh_cah_toa | good luck. packfile internals are U.G.L.Y. | 21:50 | |
| benabik | soh_cah_toa: I've already poked around in them some. | 21:59 | |
| soh_cah_toa | you poor, poor thing ;) | ||
| dalek | CT: c936f43 | benabik++ | / (6 files): Move documentation to docs directory. Leave README and TODO in place. This is in preparation for there actually being code in the repository. |
22:47 | |
| CT: a4dd2e5 | benabik++ | src/disasm.winxed: Toy Disassembler Uses Packfile PMCs to get information out of a PBC file. |
|||
| benabik | I'm planning on starting off with disassembly into a PACT structure. Can then work on the reverse. :-D | ||
| The gist I've been posting has my current notes. gist.github.com/1291423 | 22:48 | ||
| soh_cah_toa | benabik++ | 22:49 | |
| it's exciting :) | |||
| benabik | Need to fix the PMC const and filename issues. | ||
| dalek | rrot: b160d31 | benabik++ | src/pmc/packfile (3 files): Update Packfile* PMC documentation Packfile: - Does not have a uuid_length key - unpack takes a string, does not return one PackfileDebug: - Doesn't have two get_string_keyed_int methods PackfileOpMap - Isn't a debug segment - Has opcode mappings, not filename mappings |
23:01 | |
| benabik | Rejected commit title: "Make Packfile PMC documentation lie less" | ||
| soh_cah_toa is seriously traumatized by packfile's after gsoc | 23:02 | ||
|
23:02
pjcj joined
|
|||
| benabik | D'oh | 23:20 | |
| pmc_count is accurate when you call it instead of num_count | 23:21 | ||
| copypasta | |||
|
23:22
rfw joined
|
|||
| soh_cah_toa | isn't there a document that describes how to use argument types when calling pir opcodes in nqp? i'm talking about the 'IPs' in `pir::does__IPs()`. i never know when to use lowercase or uppercase | 23:22 | |
| benabik | Is there a way to discover if something can be stringified? | 23:24 | |
| soh_cah_toa | if it 'does string' perhaps? | 23:25 | |
| benabik | Nope! Fun, fun. | 23:28 | |
| Hm. Should FixedIntegerArray have a get_string VTABLE? | 23:35 | ||
| soh_cah_toa | well, yeah. if you wanted to display the contents of the array w/ something like say() | 23:36 | |
| benabik | That's my thought, but it doesn't seem to have one. | ||
| soh_cah_toa | interesting... | ||
| i would see what happens when you try to print one | 23:37 | ||
| benabik | It throws an exception about missing get_string VTABLE | ||
| dalek | CT: 98e8269 | benabik++ | src/disasm.winxed: Fix copypasta with PMC constants |
23:38 | |
| CT: 9f17df7 | benabik++ | src/disasm.winxed: Add custom code to print FIAs. Shouldn't it just have a get_string VTABLE? |
|||
| benabik | PackfileDebug segment is… odd. | 23:54 | |
| It (ab)uses get_string_keyed_int to return an integer. | 23:55 | ||
| soh_cah_toa | no kidding | ||
| benabik | It's marked experimental. So if I start mucking with it, nobody will care? | ||
| soh_cah_toa | well, i do plan on making the podds segment into the regular debug segment once it's complete but that probably won't be for a while | 23:56 | |
| a long, long while | |||
| benabik | When you do, I expect you to update src/pmc/packfiledebug.pmc. ;-) | 23:58 | |
|
23:59
eternaleye_ joined
|
|||
| soh_cah_toa | if it ever happens at all. i don't even know anymore :( | 23:59 | |