|
Parrot 3.6.0 "P�jaros del Caribe" released | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 5 August 2011. |
|||
| kid51 | soh_cah_toa: ping | 00:04 | |
|
00:27
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 00:35 | |
| NotFound | whiteknight: I've seen the msg. That works with winxed master? | 00:45 | |
| whiteknight | NotFound: no, in a branch in my fork | ||
| I'm going to write some tests tonight, and open a pull request | |||
| NotFound | Ah, ok. | ||
| whiteknight | It's not pretty, I want to come up with a better syntax for it | ||
| I *think* I can read the function signatures directly, for basic P S N I types | 00:46 | ||
| For more complicated types, like specific classes, we will need to talk about syntax | |||
| NotFound | Yes, it will not be easy to provide enough flexibility. | 00:47 | |
| whiteknight | If we allow type names in function signatures, that would work, but then we would probably want to insert isa checks | 00:48 | |
| function foo(Bar.Baz baz, Bar.Fie fie) { } | 00:49 | ||
| that is pretty, but it starts making promises that we're going to do type checking | |||
| or maybe, we have a new syntax | |||
| multi foo(Bar.Baz baz, Bar.Fie fie) { } | |||
| And we let the MultiSub do the type checking for us | |||
| NotFound | Maybe synthesizing a multi with a more generic signature to catch unwanted cases. | 00:50 | |
| whiteknight | That's possible too | ||
| I want to change :multi in Parrot to not be so bad, but that's going to require a lot of work and a lot of deprecations | 00:51 | ||
| NotFound | That way the multi dispacth will care, without more runtime costs. | ||
| whiteknight | right | 00:52 | |
| kid51 | smolder.parrot.org is down | 00:56 | |
| whiteknight | urg | 00:57 | |
| dalek | nxed/imcc_tag: 37dd080 | Whiteknight++ | t/advanced/10multi_basic.t: Add a basic test for the improved ModifierList behaviors, in the guise of a test for multidispatch |
00:58 | |
| whiteknight | NotFound: pull request sent | 01:00 | |
| NotFound | whiteknight: I'll look at it tomorrow, now must go, | 01:01 | |
| AFK | |||
| whiteknight | Okay, take your time. Later | ||
| cotto | ~~ | 01:12 | |
| dalek | nxed/func_deref: da32bbb | NotFound++ | winxedst1.winxed: if something looks like a method call but can't be resolved at compile time |
01:14 | |
| nxed/func_deref: fcb47ca | NotFound++ | examples/Mysql.winxed: update example Mysql to use ByteBuffer, StructView and the as_string method |
|||
| tcurtis | ~~ | ||
| nxed/func_deref: 23dc6d8 | NotFound++ | winxedst1.winxed: new builtin var: cast to var type |
|||
| nxed/func_deref: dd7f3f3 | Whiteknight++ | winxedst1.winxed: Add prefix-* as a function lookup operator, similar to 'using' but an expression. *Foo.Bar.baz(), etc |
|||
| nxed/func_deref: 4286f63 | Whiteknight++ | t/advanced/10func_deref.t: +some tests for the function dereference operator |
|||
| whiteknight | hello tcurtis | 01:18 | |
| how are you doing tonight? | |||
| tcurtis | whiteknight: quite well. I'm working on building parse trees. | 01:22 | |
| whiteknight | awesome, how's it going? | ||
| tcurtis | whiteknight: Is it possible to create a function/method named "!make" in Winxed? | 01:25 | |
| whiteknight | tcurtis: I think you can use a string for the name | ||
| function "!make"() { } | |||
| tcurtis | hmm... perhaps I should try updating winxed. | 01:27 | |
| whiteknight | perhaps | 01:28 | |
| oh, did that syntax not work? | |||
| tcurtis | It didn't, but I'm still running a version of Winxed from early in the summer. | 01:29 | |
| dalek | rrot: 0a4ca49 | jkeenan++ | / (5 files): Merge branch 'master' of git@github.com:parrot/parrot |
01:34 | |
| rrot: 25e6b7a | jkeenan++ | docs/dev/profiling.pod: Grammatical corrections and POD touchups. |
|||
| tcurtis | It's not especially high-priority and I can do it from PIR later, so I'm going to stop worrying about it for now. | 01:38 | |
|
01:40
jsut joined
01:41
rdesfo joined
|
|||
| whiteknight | okay | 01:43 | |
|
01:49
woosley joined
|
|||
| dalek | nxed/lambda_syntax: f2f99f9 | Whiteknight++ | winxedst1.winxed: Quick implementation of a streamlined perl6ish lambda syntax for winxed |
01:50 | |
| nxed/lambda_syntax: 8275222 | Whiteknight++ | winxedst1.winxed: Enable an even shorter lambda syntax. If curly brackets are ommitted we parse the body as an expression and we implicitly return the result |
|||
| nxed/lambda_syntax: b59c067 | Whiteknight++ | winxedst1.winxed: Add in a SimpleReturnStatement which is like ReturnStatement but parses only a simple, single return value. Use this to cleanup the new lambda syntax with implicit return, and make it work more like a normal expression: |
|||
| nxed/lambda_syntax: 7284bc1 | Whiteknight++ | t/advanced/10lambda_y_comb.t: Add in some tests showing Y combinators written in Winxed and recursive factorial functions. Both parts are written in 'classic' syntax and new syntax |
|||
| TT #2174 created by jkeenan++: Sharpen Support Policy for Windows, Then Implement It! | |||
| TT #2174: trac.parrot.org/parrot/ticket/2174 | |||
| whiteknight | I'm particularly happy with that Y-combinator using the lambdas | 01:52 | |
| I can clean it up with some whitespace, but it's very concise | 01:53 | ||
|
01:53
Kulag joined
|
|||
| whiteknight | msg NotFound I opened a second pull request for that * function-lookup syntax. Just to start the discussion. If you want the syntax changed, let me know | 01:54 | |
| aloha | OK. I'll deliver the message. | ||
| whiteknight | and with that, I'm out | ||
|
01:55
mikehh joined
01:58
daniel-s joined
01:59
daniel-s joined
02:02
daniel-s joined
02:53
theory joined
03:20
theory joined
04:51
woosley1 joined
04:57
rdesfo joined
05:06
worr joined
05:23
rdesfo joined,
rdesfo left
05:27
theory joined
|
|||
| worr | are there any tutorials more up to date than the squaak tutorial on wikibooks? | 06:00 | |
| tadzik | oh, there's one on wikibooks? | 06:03 | |
| there should be one on docs.parrot.org | |||
| worr | thanks tadzik! that seems far more up to date than the one I was using | 06:05 | |
|
06:06
mj41 joined
|
|||
| dalek | nxed: 37dd080 | Whiteknight++ | t/advanced/10multi_basic.t: Add a basic test for the improved ModifierList behaviors, in the guise of a test for multidispatch |
06:08 | |
| nxed: cdd0e9a | NotFound++ | / (2 files): Merge pull request #2 from Whiteknight/imcc_tag Imcc tag |
|||
|
06:17
JimmyZ joined
|
|||
| dalek | nxed: 16ea0c8 | NotFound++ | t/advanced/10multi_basic.t: fix coding standards |
06:19 | |
| NotFound | msg whiteknight merged the :multi psuh request | 06:35 | |
| aloha | OK. I'll deliver the message. | ||
|
06:37
SHODAN joined
06:39
fperrad joined
06:57
theory joined
07:01
theory joined
07:40
mj41 joined
08:11
contingencyplan joined
|
|||
| dalek | rrot: 404f896 | cotto++ | docs/dev/profiling.pod: clean up intro |
08:52 | |
| rrot: f2203bf | cotto++ | docs/dev/profiling.pod: remove formatting for something not intended to be a formatted list |
|||
|
10:50
not_gerd joined
|
|||
| not_gerd | o/ | 10:50 | |
| just finished setting up my github account and sent a pull request for my msys fixes | 10:51 | ||
|
10:59
nbrown joined
11:04
Kulag joined
11:18
mj41 joined
12:10
Coke joined
12:11
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:14 | |
|
12:16
Kulag joined
12:20
Eclesia2 joined
|
|||
| Eclesia2 | hi | 12:20 | |
| moritz | hello | ||
| where does the default backtrace printing happen? | 12:21 | ||
| nqp: pir::die('foo') | |||
| p6eval | nqp: OUTPUT«foocurrent instr.: '_block1000' pc 24 ((file unknown):34) (/tmp/Uf4ylIijBK:1)» | ||
| Eclesia2 | question : can parrot upload files ? on an ftp for example ? | ||
| moritz | the 'current instr.: ...' | ||
| whiteknight | moritz: The printing itself currently happens in frontend/parrot/main.c:show_error_and_exit | 12:23 | |
| Creating the backtrace string itself happens somewhere in src/debug.c | 12:24 | ||
| moritz | wouldn't it make a lot of sense to have that in the exception PMC? | 12:25 | |
| whiteknight | PDB_get_continuation_backtrace() | ||
| moritz | is that accessible from PIR somehow? | ||
| whiteknight | exception.backtrace_strings() | ||
| moritz | thanks | ||
| whiteknight | it returns an array of backtraces, in the case of a rethrow | ||
| moritz | fwiw that method is not documented | 12:26 | |
| I searched only in the docs of exception.pmc | |||
| whiteknight | if you open a ticket to remind me, I'll add that tonight | ||
| moritz | ok | ||
| whiteknight | that method is newish. It might still be experimental | 12:28 | |
| no, it's not listed in api.yaml. It should be documented | 12:29 | ||
| and tested, if it isn't already | |||
| moritz | ticked opened | ||
| whiteknight | moritz++ | ||
| dalek | nxed: b39b646 | NotFound++ | winxedst1.winxed: add a missing annotation and fix a bug in generated key for CallMemberExpr with non declared symbol |
12:30 | |
| NotFound | whiteknight: I think I've found a parrotish and wixedish way to avoid the need for using in most cases: casting to var. | 12:32 | |
| whiteknight | what do you mean? | 12:33 | |
| NotFound | x = a.b(); /* method call on a */ var (a.b)(); /* function call on a.b */ | ||
| whiteknight | oh, tricky | ||
| that would do a get_global namespace search? | |||
| NotFound | Currently doesn't, but I'm ging to change it. | 12:34 | |
| whiteknight | that would be awesome. | ||
| so I'll close out that pull request with the * syntax? | |||
| NotFound | Also, it will be used to disable using the subid in declared functions. | 12:35 | |
| Wich can be helpful for multi | |||
| whiteknight | exactly | ||
| NotFound++ | |||
| NotFound | Don't close it yet, wait for this thing to be implemented. | ||
| whiteknight | okay | ||
| dalek | TT #2175 created by moritz++: method backtrace_strings in PMC Exception not documented | 12:37 | |
| TT #2175: trac.parrot.org/parrot/ticket/2175 | |||
| NotFound | Also, the part of casting to var already implemented is useful: f(var(1)); /* Calls f with an Integer PMC */ | 12:38 | |
|
12:55
ambs joined,
JimmyZ joined
|
|||
| Coke | . | 13:03 | |
| windows build warns of lots of unreachable code. | 13:05 | ||
| NotFound | Coke: probably the does_not_return decorations are not recognized. | 13:06 | |
| Coke | could be. I mention it in case there is someone like alester on windows. | 13:07 | |
| (doing a smoke now, for grins.) | |||
| Files=393, Tests=13620, 132 wallclock secs ( 5.07 usr + 1.23 sys = 6.30 CPU) | 13:08 | ||
| smolder 500 error though. | 13:09 | ||
| restarting smolder... | |||
| dalek | kudo/nom: 5d1f4db | moritz++ | src/core/ (3 files): fix ceiling, add sub form |
13:16 | |
| Coke | restarting not helping. | 13:21 | |
| whiteknight | kid51 mentioned smolder was down yesterday. | 13:22 | |
| dalek | nxed: dcac13a | NotFound++ | winxedst1.winxed: do a namespace lookup in member expr casted to var |
13:25 | |
| Coke | where? | 13:26 | |
| I didn't see a ticket or anything on the list. just here? | |||
| whiteknight | Coke: yeah, just here in the channel. I don't think he had time to really document it correctly | 13:30 | |
| Coke | ok. I've started a chat in #osuosl, but no one there is responding. | ||
| I've restarted the service, but it's still showing 500 error. | |||
| whiteknight | It's still pretty early on the west coast | ||
| NotFound++ | 13:33 | ||
| NotFound: 6model allows native typed attributes. I worry that new syntax is going to cause a conflict | 13:35 | ||
| if self.attr is a string, then I would expect var(self.attr) to return a String PMC | |||
| or, with built-in types. Exception.message is a string, so var(e.message) should return a String PMC | |||
| Coke | new ticket still get announced here, aye? | 13:36 | |
| *s | |||
| whiteknight | Coke: yes, with delay | 13:37 | |
| NotFound | whiteknight: I don't see the conflict :? | ||
| whiteknight | var(e.message), is that going to be parsed to return a String PMC, or is it going to do a namespace lookup for function e.message? | 13:38 | |
| not_gerd | whiteknight: I sent a pull request with my msys fixes | ||
| NotFound | If you don't want the namespace lookup, don't cast. | ||
| whiteknight | not_gerd: I saw | ||
| not_gerd | also, I set up a pseudo-blog on github: gerdr.github.com/on-parrot/ | 13:39 | |
| whiteknight | not_gerd: We;ll review it and merge if it's all good | ||
| NotFound | whiteknight: the idea is that you declare the intention in the code, to avoid runtime checks. | ||
| whiteknight | so if e is declared in scope as an identifier, it will do a normal attribute lookup and cast? | 13:40 | |
| NotFound | No, you use the cast if you want to bypass the scope lookup. | 13:41 | |
| dalek | TT #2176 created by coke++: tests incorrectly skipped on windows. | ||
| TT #2176: trac.parrot.org/parrot/ticket/2176 | |||
| whiteknight | I'm going to have to play with it | 13:43 | |
| NotFound | Regarding the native typed attributes, are we going to have corresponding get/set attribute variants? | 13:44 | |
| whiteknight | Oh right, I forgot about the opcodes | 13:45 | |
| We don't have those yet | |||
| or vtable accessors for them | |||
| okay, forget about that | |||
| Coke | #2176 is a simple perl5 task. just need to use Parrot::Config | 13:50 | |
| jnthn__ | 6model has natively typed attr support, but it really doesn't want them to be v-table methods. | 13:51 | |
| Probably it should drop using the various v-tables there alltogether. | 13:53 | ||
| So make the Parrot 6model integration easier. | |||
| (the ones for attr access I mean) | |||
| s/So/it'll/ | |||
| NotFound | jnthn__: What's the alternative, then? Runtime checking anything? | ||
| jnthn__ | NotFound: Well, our native ones just look along the lines of REPR(obj)->get_attr_int(...) or some such | 13:54 | |
| It's just an operation of the representation, and your polymorphism comes from representation poly. | 13:55 | ||
| But that's orthogonal to method-y style dispatch, which is where I see v-tables being more relevant. | |||
| The design is such that a smart JIT - if it knows what REPR will be used - could even inline attribute access. | 13:56 | ||
| NotFound | jnthn__: I talk about present day. | 13:57 | |
| jnthn__ | NotFound: Yes, I'm talking about Parrot not adding stuff that'll only have to go away again if it integrates 6model. :) | ||
| NotFound | jnthn__: we have working stuff right now. | ||
| whiteknight | jnthn: so what's the PIR-level interface for that, new opcodes? | 14:01 | |
| jnthn__ | whiteknight: yeah | ||
| whiteknight | okay, we can definitely add get_attr__i_p_x and set_attr_p_s_x variants | 14:02 | |
| currently they would do unnecessary boxing/unboxing to fit in with existing vtables | |||
| but in 6model land, they could avoid that | |||
| NotFound | I've sometimes tought about adding such opcodes, just to make easier code generation in some cases. | 14:03 | |
| whiteknight | er, get_attr_x_p_s | ||
| If I add that to Parrot soon, will it help make things in winxed easier? | |||
| NotFound | Probably, and make generated code more compact and possibly a bit faster. | 14:06 | |
| whiteknight | the first implementations would not be faster | 14:08 | |
| because get_attr_str and set_attr_str still take PMCs, so we would need to box/unbox | |||
| but there is less generated code | |||
| NotFound: gist.github.com/1139736 This doesn't work | 14:09 | ||
| test.winxed:8: Expected identifier near ( | 14:10 | ||
| NotFound | whiteknight: already fixed, testing it a bit before commit. | 14:11 | |
| whiteknight | okay | ||
| NotFound | Is just that the 'var' was assumed to be the start of a var statement. | ||
| whiteknight | right | 14:12 | |
| NotFound | I'm thinking about adding a cast to void, it may be needed to cover some corner cases. | 14:14 | |
| whiteknight | cast to void? What corner cases? | 14:15 | |
| dalek | p: 051792c | moritz++ | src/HLL/Compiler.pm: put back the ability to add a custom backtrace printer Since it prints the exception too and not only the backtrace, it is now renamed to 'handle-exception', and the command line option for disabling it is called --ll-exception |
14:19 | |
| NotFound | whiteknight: for example, accessing an attribute just to see if the attempt throws. | 14:20 | |
| whiteknight | ok | 14:21 | |
| bubaflub | Coke: i've got a patch for TT #2176 - could you give it a quick sanity check? i'll attach it to the ticket here in a sec. | 14:22 | |
|
14:35
Eclesia2 left
14:44
lucian joined
|
|||
| dalek | nxed: 1ba4ccc | NotFound++ | winxedst1.winxed: allow cast builtins at the start of a statement |
14:50 | |
| Coke | bubaflub: seems sane. testing on windows. | 14:54 | |
| bubaflub++ # seems to correctly run those tests now. | 14:56 | ||
| bubaflub | Coke: i'm seeing some other uses of Catfile with hardcoded .o stuff in t/tools/dev/headerizer/02_methods.t - does that file need to change as well? | ||
| Coke | if it's ever going to work on windows,aye. | 14:57 | |
| I don't think we have a lot of headerizing going on there, but go ahead and fix that up. | |||
| (for that, just make sure it still works on *nix) | |||
| bubaflub | Coke: second patch attached to the ticket | 15:02 | |
|
15:30
darbelo joined
|
|||
| whiteknight | the more I look at things like Subs, MultiSubs, and Closures, the more aggravated I get | 15:37 | |
| Sub PMC does *way* too much work. It tries to be everything to everybody. It shouldn't be | 15:40 | ||
| There's no reason why Sub should be the type for all subroutines, methods and closures | 15:41 | ||
| There is also no reason why the Sub should have to care about where it gets stored. sub->HLL_id, ->namespace_name, ->namespace_stash, ->method_name, ->ns_entry_name, and ->multi_signature should all *not* appear on Sub | 15:43 | ||
|
15:43
daniel-s joined
|
|||
| whiteknight | What if we have a single Sub that is stored in more than one namespace? Or, what if we have a single sub stored in a class under two different method names, or in multiple classes under multiple names? | 15:44 | |
| What if a single sub has :slurpy parameters, and can accept several different types of :multi invocation? | |||
| Why should a Sub be restricted to a single vtable slot number, when it could potentially fill in several of them? | 15:45 | ||
| JimmyZ | rakudo doesn't use parrot's them ? | ||
| whiteknight | especially when we consider the sheer proliferation of vtable slots, the fact that PCC auto-coerces arguments, etc | ||
| JimmyZ | rakudo doesn't use them ? | ||
| whiteknight | JimmyZ: Rakudo does use them, but they are wrapped | ||
| JimmyZ | and so nom? | 15:46 | |
| nom branch | |||
| whiteknight | yeah, I think it has to | ||
| Sub is primitive. Everybody uses it and everybody MUST use it in some way | |||
| jnthn__ | We use Sub but not those various views | 15:47 | |
| s/views/fields/ | |||
| (We don't use Parrot namespaces nor classes, so...) | |||
| Oh | |||
| I abuse multi_signature | |||
| whiteknight | jnthn__: IMCC would fill in those fields anyway | ||
| jnthn__ | I use it to attach the Perl 6 code object. | ||
| Since we never use Parrot's multi-dispatch and it's way cheaper than using the property hash. :) | 15:48 | ||
| whiteknight | it bugs the hell out of me that a Sub has to hold its own multi_signature. That's not the business of the Sub, that's record-keeping details for the MultiSub | ||
| jnthn__ | (Yes, I know. I'm evil.) | ||
| JimmyZ would like to see PCC refactor which will make nom faster too | 15:49 | ||
| jnthn__ | Well, MultiSub actually holds many Subs. | ||
| whiteknight | Sub should be a low-level type that basically provides a wrapper over a segment of bytecode ->seg, ->start_offs, ->end_offs, and ->eval_pmc (which needs to be renamed) | ||
| Everything else should be subclassed | |||
| jnthn__ | ->namespace_name, ->method_name and ->ns_entry_name I'd imagine are easy to cull today | 15:50 | |
| Well, I maybe :) | |||
|
15:51
knewt joined
|
|||
| whiteknight | The biggest problem, and you know this without me needing to say it, is the magical PIR syntax crap in IMCC | 15:51 | |
| :multi flags should disappear. You can create your own multisubs and populate them with method and vtable calls | |||
| .namespace directives too. Kill them. We can create NameSpace objects if we want them, and populate them with method calls and keyed vtable calls | 15:52 | ||
| It's just like 6model ignoring :method flags: Create your own damn metaobject and put things in it your damn self | |||
| and leave IMCC out of it | |||
| I'm also not sure that ->sub_id is needed. I mean, that's a compile-time detail right? You shouldn't need that information after compilation. | 15:57 | ||
| .const 'Sub' directives should be replaced with hard-coded integer indices for subs in the constants table | |||
| When I invoke a MultiSub, and the multi redispatches to the proper candidate, the interp->current_sub is *still* a reference to the MultiSub | 16:01 | ||
|
16:02
preflex joined
|
|||
| whiteknight | so when we make a closure, we have to get the reference to the current sub (the MultiSub) then *re-sort the candidates list* to find the sub currently executing (lol sorry if that changed!) and close over it | 16:02 | |
| instead of, say, Parrot_sub_new_closure just taking two arguments, one for the parent and one for the child | 16:03 | ||
| or instead of MultiSub.invoke updating interp->current_sub with a reference to the sub which is actually executing | |||
|
16:03
theory joined
|
|||
| whiteknight | or, having the child look up the parent sub in the outer_ctx | 16:03 | |
| or anything that doesn't royally suck | |||
|
16:18
Eclesia joined
|
|||
| Eclesia | hi | 16:19 | |
| benabik | Huh. Converted another function to NQP to try and muck with it and get it to work with newPOST… Turns out just using ResizablePMCArray instead of ResizableStringArray is all I needed. | ||
| whiteknight | hello eclesia | ||
| dalek | rrot/nqp_pct: f2487b6 | benabik++ | compilers/pct/src/PAST/Compiler.p (2 files): War on Q:PIR - PAST::Compiler.post_children I was going to leave this, but it doesn't behave properly for newPOST. |
||
| rrot/nqp_pct: 74006ad | benabik++ | t/compilers/pct/newp (2 files): newpast/newpost.t - add plan |
|||
| JimmyZ | whiteknight: speak of pmc, I think defaut.pmc and object.pmc is reduplicate | 16:21 | |
| benabik | My test segfaults instead of not working! Is that progress? | ||
| whiteknight | JimmyZ: Not yet. They will be after 6model | 16:22 | |
| benabik: it gives you a new method of attack. Fire up GDB and figure out where it's segfaulting | |||
| JimmyZ | whiteknight: oh, then s/is/ will be/ | 16:23 | |
| firefox doesn't like f2487b6 | 16:25 | ||
| whiteknight | benabik: without knowing anything about anything, I'm going to guess it's segfaulting in the fast_core | ||
| benabik | whiteknight: Parrot doesn't seem to handle invalid bytecode well. I'm guessing I'm generating something poorly. | 16:26 | |
| Is there a way to switch to the slow run core? | 16:28 | ||
| whiteknight | --runcore=slow | 16:29 | |
| benabik | in clone_key_arg, could not access memory at address 0x000000 | 16:35 | |
| whiteknight | hmmm...weird | 16:38 | |
| you have a null in a key somewhere | |||
| benabik | I didn't think I was generating any keys. | ||
| whiteknight | something sure thinks you are | 16:41 | |
| nopaste the whole backtrace? | |||
| benabik | It's somewhere inside PCC. | ||
| nopaste | "benabik" at 192.168.1.3 pasted "newPOST segfault" (31 lines) at nopaste.snit.ch/69483 | 16:42 | |
| JimmyZ wonders how much improvement will be after PCC refactor. | 16:43 | ||
| whiteknight | benabik: weird | 16:44 | |
| benabik | Ohhhhhh..... | 16:45 | |
| whiteknight | ...? | ||
| benabik | It's not getting wrapped in a sub. | ||
| whiteknight | what isn't? | ||
| benabik | It's trying to do codegen from a tree that looks like File -> Ops instead of File -> Sub -> Ops. | 16:46 | |
| It never generates a sub. | |||
| whiteknight | oh fun. | ||
| benabik | Invalid bytecode. | ||
| moritz hopes that soh_cah_toa++ isn't too frustrated | 16:51 | ||
|
16:59
bubaflub joined
|
|||
| whiteknight | talk about frustration, let me talk about how all this sub code uses the interp as a global data store instead of passing parameters to functions | 17:06 | |
| atrodo | whiteknight> That's all the rage these days | ||
| whiteknight | forget about reentrancy, maintainability, encapsulation, or optimizability | ||
| And then we have all these API functions that you can't use from anywhere, because they are completely dependent on global state | 17:08 | ||
| atrodo | Real men know that their code does not violate any of that, at all times | ||
| whiteknight | and not just global state, the funny corner cases of global state | ||
| Eclesia | :) perfect build steps for eria : ftp://ftp-developpez.com/jsorel/temp2/packs.png | 17:32 | |
| cotto_work | ~~ | 17:34 | |
| Eclesia think those colored square would look nice in the parrot build, for each module | |||
| benabik | Eclesia: I've brought up using a less verbose Makefile before (not pretty squares, but the same method git uses) and the general consensus was they liked it as is. | 17:36 | |
|
17:36
dmalcolm joined
|
|||
| Eclesia | everyone has it's preferences, I'm a manic of nice ouputs ^^ | 17:37 | |
| whiteknight | Eclesia++ | 17:38 | |
| benabik | I really like git's Makefile output. Makes it clear what it's doing and makes errors and warnings stand out. | 17:41 | |
|
17:44
bubaflub joined
|
|||
| JimmyZ | what's eria? eria.org? | 17:47 | |
| Eclesia | eria is my project. a mutli-syntaxique model. not on the web,only on my machine. but I can upload a zip with the project if needed | 17:49 | |
| JimmyZ | ftp://ftp-developpez.com/jsorel/temp/eria-pvm.zip ? | ||
| Eclesia | that's an old one | ||
| 1min, I upload a new one | 17:50 | ||
| JimmyZ: it's uploaded. same file | 17:52 | ||
| don't hope to much :D it's only ~2month old | 17:53 | ||
| to compile : winxed lib-0/Compiler0.wx | 17:54 | ||
| to run : ./eria.sh test/HelloWorld.ec | |||
| (linux only) | |||
| JimmyZ | pushing to github, writing a README will be appreciated :) | 17:56 | |
| Eclesia | readme is already there | ||
| JimmyZ | that's a REQUIEREMENT | 17:57 | |
|
17:57
bubaflub joined
|
|||
| Eclesia | and mercurial is already set up too ;) but only for my local network | 17:57 | |
| JimmyZ sleeps | 17:59 | ||
| Eclesia | JimmyZ: works for you ? | ||
| whiteknight: it's still not possible to get some system properties ? like temp directory, system file separator or user home and name ? | 18:01 | ||
| JimmyZ | Eclesia: I din't try it, just looking the codes, trying to look for the goal | ||
| Eclesia | the goal ? | ||
| JimmyZ | the project's goal | ||
| Eclesia | a cross vm model i guess is the main goal | 18:02 | |
| Coke | smolder is back. | 18:03 | |
| bubaflub: you have commit rights? | |||
| bubaflub | Coke: i do. just no Windows to test on. | ||
| i suppose i could hijack my wife's machine... | |||
| Coke | I tested the first patch, it's fine. | ||
| just commit them, and I'll test them, and we can roll the back if there's an issue. they look good to me. | |||
| bubaflub | Coke: woot. should i close the ticket as well? | 18:04 | |
| Eclesia think Eria kiled JimmyZ | 18:05 | ||
| Coke | bubaflub: sure. I can reopen it if needs be. | 18:06 | |
| bubaflub++ | |||
| dalek | rrot: 22b8e86 | bubaflub++ | t/ (11 files): [TT #2176] use Parrot's Config to determine what extension an object file should |
18:08 | |
| Coke | bubaflub: doing a clean/rebuild/test/smoke now. | 18:10 | |
| dalek | TT #2176 closed by bubaflub++: tests incorrectly skipped on windows. | ||
| TT #2176: trac.parrot.org/parrot/ticket/2176 | |||
| bubaflub | Coke: thanks. i might hijack my wife's old laptop to do builds on Windows - but there are just so many combinations of compilers / environments i think it would take quite a while to setup. | 18:11 | |
| Coke | ... this windows laptop must be more powerful than my previous windows build machine. | ||
| bubaflub: no worries. I use windows every day at work, and (now) have everything I need for testing. | 18:12 | ||
| bubaflub | Coke: yeah. i'd like to have it setup so we can meet our development goal of sucking less on Windows. i'll try and setup it after i'm done with GSoC and hopefully document the procedure for all the different combos I can get. | 18:13 | |
| dalek | rrot/nqp_pct: d645956 | benabik++ | / (3 files): PAST::NewCompiler - compile Val nodes This compiles Float, Integer, and String constants to POST::Constants. |
||
| rrot/nqp_pct: 3f6df9e | benabik++ | compilers/pct/src/POST/PBCCompiler.pm: POST::PBCCompiler - reindent The file mostly used four space indents, but there were random lines with tabs. |
|||
| rrot/nqp_pct: 1a56de8 | benabik++ | compilers/pct/src/POST/PBCCompiler.p (2 files): POST::PBCCompiler - fix compiler setup It should use stages, not a second language declaration. Also, the stages were wrong. |
|||
| rrot/nqp_pct: 6589785 | benabik++ | compilers/pct/src/PAST/NewCompiler.p (2 files): PAST::NewCompiler - wrap tree in Sub if needed POST::Compiler wraps non POST::Subs in an anonymous sub, but it's to do it earlier for newPOST. |
|||
| rrot/nqp_pct: 5f4734d | benabik++ | t/compilers/pct/complete_workflow.t: t/compiler/pct/complete_workflow - use newPOST This makes it so all complete workflow tests use both the PIR and the newPOST compilation methods. |
|||
| rrot/nqp_pct: 559ced1 | benabik++ | compilers/pct/src/PAST/ (2 files): [PCT] Fix codetest complaints |
|||
| whiteknight | benabik++ | 18:15 | |
|
18:16
worr joined
|
|||
| benabik | It actually seems to be close to usable for simple usage. | 18:16 | |
| whiteknight | how "simple"? | ||
| benabik | No inline PIR, haven't tried exceptions yet. | 18:17 | |
| I bet exceptions will fail because most of them use the PIR constants which POST used to just import via IMCC. | 18:18 | ||
| I'm trying squaak right now. | 18:20 | ||
| whiteknight | so included PASM constants don't work? | ||
| benabik | No. I'd have to add something to load the file and parse it. | 18:21 | |
| I'll work on that if I get the basics running. | |||
| Coke | Eclesia: we already have half of the items you're asking for in 2177. | 18:23 | |
| more if you could environment variables. | |||
| Eclesia | Coke: ho sorry, I didn't find anything so I guess it wasn't available. so where can I get those ? | 18:24 | |
| Coke | look in the config hash. | 18:25 | |
| moment. | |||
| github.com/partcl/partcl/blob/mast...b.pir#L131 | 18:26 | ||
| there's code there that pulls out "slash", for example. | |||
| you can use "parrot_config --dump" to see all the other values you can pull from there. | |||
| dalek | TT #2177 created by Eclesia++: Access system properties | ||
| TT #2177: trac.parrot.org/parrot/ticket/2177 | |||
| Coke | github.com/partcl/partcl/blob/mast...b.pir#L104 converts environment variables in to tcl's ENV array - so you could, e.g. get the timezone from there. | 18:29 | |
| Eclesia | Coke: I can't say it's easy to grab those values ... | 18:31 | |
| Coke : thanks, I'll try to make those 'user friendly' in a utility class | 18:32 | ||
|
18:34
smash joined
|
|||
| smash | hello everyone | 18:34 | |
| Coke | easy to grab which values? | 18:39 | |
| the values from the config hash? Where else would you put them? | 18:40 | ||
| Eclesia | Coke : it's the way to obtain this hash. I was hoping for a convinient function somewhere wish would return it. SystemProperties.getProperties(); something like that | 18:41 | |
| Coke | Yup, that might've been nice. | 18:42 | |
| bubaflub: Files=393, Tests=13822, 176 wallclock secs ( 4.85 usr + 1.39 sys = 6.24 CPU) | 18:43 | ||
| Result: PASS | |||
| bubaflub: that's another 202 tests. | 18:44 | ||
| bubaflub | Coke: hooray. | ||
| Coke | (all of which pass) | ||
| bubaflub | Eclesia: I have an example in Winxed of getting values from that hash: github.com/bubaflub/parrot-gmp/blo...inxed#L186 | ||
| Coke | make headerizer files, but lists all the .obj files before doing so. | 18:45 | |
| Eclesia | bubaflub++ awesome that makes me win an hour of work :D | 18:46 | |
| bubaflub | Eclesia: glad i could help. that setup.winxed might have other useful things as well. in there i have to compile a small C program to check some library values; don't know if that is useful for ya. | ||
| whiteknight | Eclesia: If you want a nicer place to put the config hash, ask. Suggestions and patches are always appreciated | 18:49 | |
| Eclesia | whiteknight: for now I don't have much utilities : Files, Reflexion, Strings, SystemProperties, Trees, X364 . they are in the eria zip. if anything is useful you can copy it, but I would appreciate if the license is preserved. | 18:52 | |
| whiteknight | Eclesia: I will look. I have most of that stuff in Rosella already. | ||
| Eclesia | whiteknight: you added the x364 ? | 18:53 | |
| whiteknight | Eclesia: no, I haven't added that | 19:02 | |
|
19:03
jsut_ joined
19:14
particle joined
|
|||
| Eclesia | in winxed : I have this error : Parent of "'model_parser;ParserEria0' is null" when I try to load the parserEria0.pbc before parserEria.pbc . | 19:26 | |
| is it possible to avoid this error (without inverting load order) ? | |||
| whiteknight | Classes are defined and built at runtime | 19:27 | |
| so you have to build the parents before you build the children | |||
| NotFound | You can avoid to invert the load order by using the correct order from start ;) | 19:28 | |
| Eclesia | whiteknight: is it possible to load several pbc at the same time ? | ||
| NotFound: I'm extracting .pbc from an unknowned zip. so I don't know the order | 19:29 | ||
| NotFound | Eclesia: you should load anyhting required by a module in the module itself. | 19:31 | |
| Eclesia | NotFound: the module does not know where the files are extracted. so he can't load them properly | 19:32 | |
| hm ... maybe I can solve that... | 19:33 | ||
| NotFound | Eclesia: If a module defines a class that inherits from some other, it must do. | ||
| Eclesia | or contain a metadata file with the proper order | 19:36 | |
|
19:37
Felipe joined
20:06
pjcj joined
20:17
contingencyplan joined
20:43
soh_cah_toa joined
|
|||
| Eclesia | how can I execute two command in one spawnw ? | 20:53 | |
| spawnw(["cd",string(file.path),"\\n", | 20:54 | ||
| "zip","-r", "../../"+BASE_PEM+"/"+name,"*"]); | |||
| I want to move in a folder before calling a zip | |||
| Tene_ | Hey, where does the P5 M0 prototype live? | 20:57 | |
| cotto_work | Tene_: m0-prototype in src/m0/perl5/m0_interpreter.pl | 20:58 | |
| m0-prototype branch | |||
| Tene_ | Great; thanks. | ||
| cotto_work | Tene_: what's your interest? | ||
| Tene_ | cotto_work: dunno yet | ||
| cotto_work | Tene_: wfm | ||
| Eclesia | wfm? | 20:59 | |
| cotto_work | aloha: wfm? | 21:00 | |
| aloha | cotto_work: Sorry, I don't know. | ||
| cotto_work | aloha: wfm is works for me | ||
| aloha | cotto_work: Okay. | ||
|
21:37
sjn joined
21:44
Psyche^ joined
22:01
theory joined
|
|||
| Eclesia | Victory! Module manager working :D no more hundreds of load_bytecode *.pbc . only a few *.em | 22:09 | |
| ++ | 22:13 | ||
|
22:13
Eclesia left
|
|||