Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-07-17

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:16 Alias_ joined #perl6
00:45 Khisanth joined #perl6
00:46 PZt joined #perl6
00:51 pugs_svn r21356 | ruoso++ | [smop] $p6opaque.^!methods.push($method) actually calls $p6opaque.^!methods.register($identifier, $signature, $method)
00:56 s1n moritz_: where is the testfile actually executed by the harness?
00:57 s1n that is, after it figures out which ones to run from the input file, figures out which ones need fudging, where does it actually run the individual .t files (plans)
00:59 bacek s1n: Makefile target spectest or spectest_regression
01:00 s1n baest: yeah, but where deep down in the harness code is that performed
01:01 s1n the makefile will just call harness, but from there, where is the .t file actually executed (I'm assuming against languages/perl6/Test.pm)
01:03 bacek lib/Parrot/Test/Harness.pm in parrot dir
01:04 s1n bacek: aha, thanks
01:04 s1n there's the call to runtests
01:05 bacek s1n: anyway, you probably don't need it. Just put S??/some-test.t into t/localtest.data and run 'make localtest'
01:05 bacek (In rakudo dir)
01:32 dduncan left #perl6
02:13 cathyal joined #perl6
02:16 alanhaggai_ joined #perl6
02:20 felipe joined #perl6
02:36 fullermd joined #perl6
02:39 agentzh joined #perl6
02:58 s1n it seems i still have commitbit access but my authentication is failing, can someone reset my password?
03:02 kanru joined #perl6
03:03 Auzon s1n: I'm not sure how to reset passwords, but are you sure you put your name and password in correctly? (case matters and it bit me the first time)
03:05 s1n Auzon: yeah, i think i did anyways, i can't remember who set it up, but there's no "reset my password" feature
03:06 s1n I tried logging on through the web interface and it's not taking anything
03:07 Auzon I don't see anywhere in the web interface for a reset password feature :-/
03:08 s1n there's gotta be an admin in here that can do this...
03:21 s1n bleh, anyone? i'd really like to start committing changes to the test suite
03:21 Auzon pmichaud or [particle] or another admin maybe?
03:27 s1n gaal: you're an admin as well, think you could help?
03:34 s1n okay, well, it's getting late. any pugscode admins see this later, reset the username: s1n, email: jswitzer@gmail.com for me, i'd greatly appreciate it
03:34 Auzon see you, s1n.
03:35 s1n thanks Auzon
03:36 s1n Auzon: by the way, now that I have gotten the hang of running the test suite, i'm just going to start going through it all, unskip the passing tests, and add missing tests, then i'll eventually start filling in the pieces later (PIR looks like it has a learning curve)
03:36 icwiener_ joined #perl6
03:37 Auzon Sounds great :)
03:37 Auzon Glad to have you helping.
03:37 s1n anything to move perl6 along :)
03:50 alester joined #perl6
03:56 dduncan joined #perl6
04:18 alanhaggai_ joined #perl6
04:19 TimToady s1n: re-invite sent
04:26 Auzon What does a "StopIteration" mean in Rakudo?
04:26 Auzon I've never gotten that error message before :)
05:21 agentzh joined #perl6
05:49 Psyche^ joined #perl6
05:54 agentzh left #perl6
05:59 agentzh joined #perl6
06:08 xinming joined #perl6
06:13 ashizawa joined #perl6
06:19 pugs_svn r21357 | lwall++ | [STD] various tweaks suggested once upon a time by mncharity++
06:26 speckbot r14565 | larry++ | clarification suggested by Bob Rogers++
06:27 moritz_ TimToady: any thoughts re http://www.nntp.perl.org/group/perl.perl6.language/2008/05/msg29206.html ?
06:27 lambdabot Title: make POST blocks more usable - nntp.perl.org, http://tinyurl.com/68vers
06:28 moritz_ afk
06:38 TimToady I think I'd rather have the value come in as the topic, like with CATCH blocks, but it would presumably be a Capture, and we need to be careful not to have side effects on it en passant.
06:39 masak joined #perl6
06:39 moritz_ I don't really care how it's done, as long as it's somehow available in POST
06:52 speckbot r14566 | larry++ | suggestion from moritz++ that POST blocks be allowed to see the return value
06:52 moritz_ TimToady++
07:04 masak re that, will I also be able to do 'POST -> $retval { ... }' ?
07:05 moritz_ no
07:05 moritz_ you could do that if it were a formal parameter to the block
07:05 masak I see.
07:06 masak it just seems to me that sometimes I want to name my return value, and right now I would have to do it with an explicit 'my $retval = $_;' at the top of the block
07:08 moritz_ me too, but I guess there are reasons
07:08 moritz_ for example consider sub { return 2 * $^a; POST { # what is $^a here? }}
07:09 moritz_ if the return value were a formal parameter of the POST block, $^a inside the block would bind to it, not to the outer $^a
07:10 moritz_ which might be rather confusing, because a possibly present $^b would still refer to the one from the outer scope
07:11 masak you're right
07:12 * moritz_ heads off to $uni
07:18 pmurias joined #perl6
07:21 Helios- joined #perl6
07:25 pmurias ruoso: how should the perl6 be embedded in sm0p files?
07:27 Helios- joined #perl6
07:27 pmurias and what is the perl6 version of $SMOP__SLIME__CurrentFrame.forget();$interpreter.goto(|$continuation);?
07:32 penk joined #perl6
07:34 pmurias joined #perl6
07:38 iblechbot joined #perl6
07:49 elmex joined #perl6
07:53 [particle] joined #perl6
08:36 barney joined #perl6
08:50 wknight8111 joined #perl6
08:54 pugs_svn r21358 | pmurias++ | [pixie] t/01-sanity/1-4 pass now
08:58 pugs_svn r21359 | pmurias++ | [smop]
08:58 pugs_svn r21359 | pmurias++ | removed useless test
08:58 pugs_svn r21359 | pmurias++ | possible p6 version of 2 sm0p blocks in comments
09:10 meppl joined #perl6
09:11 rindolf joined #perl6
09:16 pmurias (vanishing source code)--
09:20 ruoso pmurias, re perl6 embedded... it could be q:perl6 or something like that...
09:20 ruoso pmurias, we probably need different block types
09:21 ruoso one for CPS with no return value
09:21 ruoso other with return value
09:21 * ruoso food &
09:36 pmurias ruoso: hi
09:42 jferrero joined #perl6
09:49 alanhaggai_ joined #perl6
09:54 Jedai joined #perl6
10:10 tuxdna joined #perl6
10:13 chris2 joined #perl6
10:18 pmurias pugs: sub foo($foo|$bar) {say "hi"}
10:18 p6eval pugs: OUTPUT[*** ␤    Unexpected "|$"␤    expecting word character, "?", "!", trait, "=", default value, "-->" or ")"␤    at /tmp/YXr5t38ImR line 1, column 13␤]
10:20 pmurias is it possible to have a sub with multiple signatures?
10:22 * ruoso off to work &
10:24 moritz_ pmurias: yes, see S06
10:25 pbuetow_ joined #perl6
10:25 moritz_ or was it S13?
10:27 dduncan left #perl6
10:27 moritz_ multi sub infix:<+> (Us $us, Them $them) | (Them $them, Us $us) { myadd($us,$them) }
10:37 PZt joined #perl6
10:59 ruoso joined #perl6
11:08 wknight8111 joined #perl6
11:13 iblechbot joined #perl6
11:16 s1n joined #perl6
11:17 pugs_svn r21360 | s1n++ | [pugs_s02] some tests are passing that were skipped, some being
11:17 pugs_svn r21360 | s1n++ | unspecced
11:18 moritz_ s1n: please don't remove "unspecced" fudging marks unless you understand why it's there, and have a good reason to remove it
11:19 moritz_ s1n: in this case $range.perl can return *anything* that evaluates to the same object as $range - it doesn't have to be '1..5' here
11:19 moritz_ oh, and fudging should never affect the plan
11:20 moritz_ (don't let it discourage you, that's just a beginner's mistake)
11:20 moritz_ forget that last one, you did add tests
11:31 amorette joined #perl6
11:32 amorette left #perl6
11:45 pmurias ruoso: wouldn't it simplify things significantly if the optimal_* part of p6opaque was droped?
12:18 ruoso pmurias, the optimal part is for constant-identifiers that can be checked by simple pointer identity
12:19 ruoso I don't even need to look inside the keys for that matter
12:19 ruoso initially, I'm planning to support only constant identifiers...
12:20 ruoso then the normal Str support can be added later...
12:20 pmurias so it's a bootstrap/hack optimalisation ;)
12:20 pmurias * bootstrap hack/optimalisation
12:21 ruoso yes... most importantly, a bootstrap hack
12:21 ruoso that's the reason... I'm not really worried about performance atm
12:21 ruoso s/performance/optimization/
12:21 pmurias the memory leaking trick i used in s1p.Hash was to turn Str's into constant identifiers
12:22 ruoso pmurias, I saw it...
12:26 pmurias you fixed it ;)
12:27 pmurias (but it still leaks memory as constant identifiers are not collected)
12:28 meppl joined #perl6
12:30 pmurias [bool] "has_next" is not implemented in bool. # is it normal?
12:30 ruoso pmurias, all constant identifiers are destroyed at smop_destr time
12:30 ruoso they are not subject to GC
12:30 ruoso that's why they are "constant"
12:31 ruoso not just because they values are constant, but because the pointers are constant also
12:32 pmurias the have to be done that way
12:32 ruoso that's how we can use simple pointer identity inside MESSAGE
12:33 pmurias but using them as normal strings is not a good idea
12:33 ruoso but for things that are hard-coded in the source file...
12:33 ruoso the string is going to live for all the program anyway
12:33 ruoso because it will be in the AST
12:34 pmurias i understand ;)
12:34 jiing joined #perl6
12:34 ruoso every string literal could be created as a constant identifier afaik
12:37 pmurias how does is an attribute lookup handled?
12:37 pmurias s/does//
12:37 pmurias like $foo.bar = 3; in terms of method calls
12:38 pmurias i'm lookig at OO API on the wiki and can't find it
12:38 ruoso $foo.bar => method bar is rw { $!bar }
12:38 pmurias in the default p6opaque case
12:38 pmurias and $!bar => ?
12:40 ruoso $!bar =>  $obj.^!has('$!bar')
12:40 ruoso sorry
12:40 ruoso $!bar =>  $obj.^!has($package, '$!bar')
12:40 ruoso this returns the container itself
12:41 ruoso in the end...
12:41 ruoso $foo.bar = 3;
12:41 ruoso is a method call and a container STORE
12:42 ruoso the container returned (for the default accessor) is the attribute container itself
12:43 ruoso what I don't remember is if class Foo { has $.a; $!a = 1 } is valid
12:44 ruoso pugs: class Foo { has $.a; method b { $!a = 1 } }; my $a = Foo.new; $a.b; say $a.a;
12:44 p6eval pugs: OUTPUT[1␤]
12:44 moritz_ $.a automatically generates a $!a alias
12:44 ruoso in SMOP... $.a never exist as an attribute
12:45 ruoso it is a syntax expansion of " has $!a; method a { $!a } "
12:45 ruoso sory
12:45 ruoso it is a syntax expansion of " has $!a; method a is rw { $!a } "
12:45 moritz_ so the access control is done on the compiler level, not on SMOP level?
12:45 ruoso not the access control actually...
12:45 ruoso it's just that "has $.a" is a syntax convenience only...
12:46 ruoso because there are no really public attributes
12:46 ruoso you have default accessors created for some attributes based on the syntatic format
12:46 ruoso and that's it
12:47 moritz_ rakudo: my @a = 1, 2; push @a, eval(@a.perl); say @a.perl
12:47 p6eval rakudo 29553: OUTPUT[[1, 2, [1, 2]]␤]
12:47 moritz_ rakudo: my @a = 1, 2; push @a, @a; say @a.perl
12:47 p6eval rakudo 29553: OUTPUT[[1, 2, 1, 2]␤]
12:48 alanhaggai__ joined #perl6
12:50 ruoso pmurias, does it make sense to you?
12:53 ruoso pugs: class Foo { has $.a }; my $a = Foo.new(); my $b := $a.a; $b = 2; say $a.a;
12:53 p6eval pugs: OUTPUT[2␤]
12:53 ruoso hmm
12:53 ruoso interesting...
12:53 moritz_ looks correct to me
12:53 ruoso was everyone aware to this side effect?
12:54 pmurias ruoso: your description makes sense
12:54 moritz_ from a programmer's point of view an attribute is the same as any other item in a data structure
12:55 pmurias ruoso: what's wrong with that?
12:55 ruoso maybe it's ok... it looks like breaking encapsulation... but only as far as the returned container is the actual attribute container... but that can always be overriden... so it's not breaking the encapsulation...
12:56 pmurias ruoso: re syntax convenience only, aren't public attributes specialy marked for introspection?
12:57 cmarcelo joined #perl6
12:57 ruoso pmurias, yes. But that's why you have both the attribute descriptions in the "metadata" section and the instance storage
12:57 ruoso the introspection goes trhough the metadata section... the access go through the "instance storage" section
12:58 ruoso the attribute then has both a "private_name" and a "name"
12:58 ruoso where the private name is the effective name... and "name" is the declared name
12:59 ruoso pmurias, btw... I was wrong on which method $!a maps to...
12:59 ruoso it's not $foo.^!has... but $foo.^!private_storage($package, 'bar')
13:00 ruoso actually...
13:00 ruoso $foo.^!private_storage($package).LOOKUP('bar')
13:00 pmurias $foo.^!private_storage($package).{'bar'}
13:00 ruoso yes... that's more precise...
13:01 pmurias LOOKUP seems a kp6'ism
13:02 ruoso so $!a = 3; in the end will mean $foo.^!private_storage($package).{'bar'}.STORE(3)
13:07 pmurias we could ue as hash for private_storage?
13:07 pmurias * use
13:11 barney joined #perl6
13:14 ruoso you mean $foo.^!private_storage.{$package}{'bar'}?
13:17 pmurias yes
13:18 pmurias at least internally
13:18 ruoso well.. if you look at p6opaque.h... that's kinda how I'm doing it
13:19 ruoso it's just a matter of how the API is exposed...
13:19 ruoso since everything is already made in terms of method calls
13:27 pugs_svn r21361 | pmurias++ | [smop/misc] how i think the p6opaque structure is in p6 syntax
13:28 pmurias we could just use Hashes and Arrays instead of reimplementing them
13:28 orafu joined #perl6
13:32 pmurias and throw away the LOWL_{PoH,A,H,HoH...}
13:35 ruoso pmurias, yes... that's a possibility... I initially thought it would be easier doing that way...
13:35 ruoso (the LOWL* way)
13:35 ruoso but maybe I'm just wrong...
13:36 alanhaggai joined #perl6
13:36 bloonix joined #perl6
13:37 pmurias if the methods are going to me in sm0p/p6 and you seem to be doing it that way the LOWL_* will be a nuisance
13:37 bloonix hello
13:37 ruoso pmurias, they don't need to be (in the constant-identifiers case)
13:37 ruoso they can be implemented in plain C
13:39 pmurias bloonix: hi
13:39 pmurias ruoso: but in the non-constant case they have too?
13:40 ruoso yes...
13:40 ruoso because the calls to Str might need to recurse
13:40 ruoso for instance
13:41 ruoso but if you have a Hash implementation in place
13:41 ruoso we could probably just use it instead
13:42 pmurias the Hash is not a hash yet (i can change it) but it can be used
13:43 pmurias ruoso: it would be good if you/we started thinking how everything will look on the sm0p side
13:44 ruoso right...
13:44 ruoso you mean, when composing the class?
13:44 ruoso or which part?
13:44 pmurias yes
13:45 pmurias class creation
13:45 pmurias and loops and stuff
13:48 pmurias i could try to get the p6opaque stuff finished, but i would need to know how it will be used
13:55 penk left #perl6
13:59 ruoso pmurias, my idea is that the p6 code will be translated to a single C function that would initialize the class by creating a new p6opaque object, pushing all the metadata  (using the REPR api) and save the class (or in the global namespace, or in a C symbol)
14:00 ruoso this "bootstrap" function would be called by smop_init at some point...
14:00 ruoso we could make it hard-coded by generating a file the same way I generate the constant identifier initialization
14:01 ruoso or we could make a plugin thing that would call this function on all .so files in a specific runtime directory
14:02 ruoso but one way or another, the p6 code would be compiled to the C+sm0p code that initializes the entire p6opaque
14:02 ruoso creating the methods, creating the attributes, setting the metaclass, pushing the methods and attributes to the metadata ($p6opaque.^!methods.push($method))
14:03 jhorwitz joined #perl6
14:03 ruoso the last step would be to save this p6opaque into the namespace
14:03 ruoso and the package object would also be saved into the namespace
14:05 * ruoso thinks the plugin idea would be cool... /usr/lib/smop/Object.so
14:07 ruoso we would need to have a runlevel thing, to have declared dependencies...
14:08 ruoso /usr/lib/smop/000_Object.so /usr/lib/smop/001_Scalar.so
14:09 ruoso maybe it's better to have a difference between autoloading this libraries or not...
14:10 ruoso /usr/lib/smop/boot/000_Object.so /usr/lib/smop/FooBar.so
14:11 alester joined #perl6
14:12 ruoso pmurias, does it make sense to you?
14:47 Exodist joined #perl6
15:01 TimToady pugs: class Foo { has $.a }; my $a = Foo.new(); my $b := $a.a; $b = 2; say $a.a;
15:01 p6eval pugs: OUTPUT[2␤]
15:02 TimToady that should really fail somewhere unless you have "has $.a is rw"
15:03 TimToady but it appears that we're confusing lvalues with rvalues somewhere
15:03 moritz_ pugs: class Foo { has $.a }; my $a = Foo.new; $a.a = 3; say $a.a
15:03 p6eval pugs: OUTPUT[3␤]
15:03 moritz_ pugs doesn't do any access control
15:03 sail0r joined #perl6
15:04 TimToady but it's like the method is returning the container instead of the value, or something
15:04 TimToady pugs: class Foo { has $.a = 42 }; my $a = Foo.new; $a.a = 3; say $a.a
15:04 p6eval pugs: OUTPUT[3␤]
15:05 TimToady it's not because it's uninit
15:05 moritz_ TimToady: but should binding to an rw attribute work?
15:06 TimToady I dunno--it's too early in the morning to think
15:07 TimToady but it'll be kinda sad if all value returns have to be wrapped in a readonly proxy
15:08 TimToady it really ought to fall out of ordinary lvalue/rvalue distinction, it seems
15:09 TimToady but maybe I'm thinking of it wrong ETOOEARLY
15:56 braceta joined #perl6
15:57 |jedai| joined #perl6
16:26 justatheory joined #perl6
16:26 alanhaggai joined #perl6
16:54 pmurias ruoso: don't we use the HOW api for class building?
16:59 * pmurias forgot his key, so couldn't get inside his flat for two hours :(
16:59 pmurias TimToady: is .methods rw?
17:00 pmurias Foo.HOW.methods
17:03 pmurias &
17:04 hcchien joined #perl6
17:08 ruoso pmurias, partly yes... but if we know it's a p6opaque we can call the REPR api directly and set the metaclas
17:12 [particle] http://spec.pugscode.org down?
17:12 jan_ joined #perl6
17:15 hercynium joined #perl6
17:21 pmurias ruoso: for normal object or during meta-model bootstrap?
17:22 ruoso pmurias, during meta-model bootstrap
17:22 ruoso afterwards, the object build must be done using HOW
17:23 pmurias do we use anything which dosn't compile under g++ on purpose?
17:23 ruoso not that I'm aware
17:24 simcop2387-vnc joined #perl6
17:25 cjfields joined #perl6
17:29 pmurias \
17:33 TimToady pmurias: I wouldn't think .methods should be rw.  there should probably be .add_method and .delete_method instead so that some degree of readonly-ness is possible for encapsulation
17:34 TimToady more generally, methods should be added by composition
17:34 TimToady (plus subsequent mixin, where applicable)
17:35 Nebster joined #perl6
17:36 alester joined #perl6
17:36 TimToady Nebster: welcome to #perl6 from #parrot  :)
17:39 Auzon Ah, I found out what a StopIteration error is :)
17:40 ruoso TimToady, we could tie the openness of some class to the rw'ness of .methods
17:43 pmurias classes can only be closed by a compile time pragma
17:48 Lorn joined #perl6
17:49 hercynium joined #perl6
17:51 TimToady no, I think openness should be determined by .add_method, and .methods should always be ro
17:52 pmurias ruoso: g++ dosn't like complex
17:53 ruoso pmurias, I'm not even sure "complex" is implemented
17:53 ruoso you could comment it out for now, and let someone implement it later...
17:53 pmurias ok
17:54 pmurias ruoso: do you now how to make autotools use llvm?
17:55 ruoso pmurias, nope... but I think there's something in llvm docs about it
17:55 pmurias lowlevel methods will take a slime frame as a argument?
17:57 pmurias &
17:57 speckbot r14567 | larry++ | Equivalence of cascaded and semicolon subscript forms suggested by nick++
17:57 Chillance joined #perl6
18:01 rindolf joined #perl6
18:04 DietCoke joined #perl6
18:05 DietCoke TimToady: that syn update you just committed, reads
18:05 Auzon rakudo: my %hash_v = ( a => 1, b => 2, c => 3 ); for %hash_v.values -> $val is rw { $val++ }; say %hash_v.perl # I swore this used to work
18:05 p6eval rakudo 29562: OUTPUT[increment() not implemented in class 'String'␤current instr.: 'postfix:++' pc 13272 (src/gen_builtins.pir:8538)␤]
18:05 DietCoke types are expected succeed ... should be "expected to succeed"
18:06 DietCoke @tell timtoday that syn update you just committed, reads "types are expected succeed" ... should be "expected to succeed"
18:06 lambdabot Consider it noted.
18:06 speckbot r14568 | larry++ | typo from DietCoke++
18:06 DietCoke ... or I could just be impatient. =-)
18:06 cjfields joined #perl6
18:07 pmurias b
18:08 meppl joined #perl6
18:11 lisppaste3 joined #perl6
18:13 rindolf Hi all.
18:14 pmurias rindolf: hi
18:14 iblechbot joined #perl6
18:16 pmurias ruoso: shouldn't it be $obj.^!how = $obj instead of $obj.^!how($obj)?
18:18 ruoso pmurias, I tried to simplify it a little... because doing that would require returning a container that would be able to receive a STORE call
18:19 kanru joined #perl6
18:23 ruoso pmurias, but maybe it's a bad idea
18:24 ruoso pmurias, or maybe that should be just an signature option, complementary with method ^!how is rw
18:24 pmurias either one or the other
18:25 ruoso you mean it's either a bad idea or it should be a signature option?
18:25 pmurias either a $obj.^!how($obj) or $obj.^!how = $obj;
18:25 ruoso yeah... that's probably ok
18:26 ruoso because you need a huge overhead to support the is rw thing
18:27 pmurias what do you mean by a signature option?
18:28 ruoso mmd
18:29 ruoso but that mmd would be implemented in low-level
18:29 ruoso because the REPR methods are intercepted by the RI
18:29 pmurias having fast mmd is hard but would be tremenously help full
18:30 pmurias having both interfaces dosn't make sense
18:31 ruoso pmurias, if you'd like to change it, feel free...
18:32 ruoso this inconsistency probably a bad idea
18:34 Nebster TimToady: Hi, had to go out, :P
18:35 Nebster What has $| changed to for disabling buffering?
18:35 Nebster I've got: select((select($Client), $| = 1)[0]); # Disable Buffering
18:36 ruoso Nebster, I'd guess to something like the OO api provided by IO::Handle
18:36 ruoso $*OUT.autoflush = 1;
18:36 Nebster OO api?
18:38 ruoso Nebster, when you "use IO::Handle", you can STDOUT->autoflush(1)
18:39 ruoso then you don't need the "select, select" trick
18:40 TimToady but none of the implementations are very far along in terms of I/O yet
18:43 TimToady and, in fact, autoflush is missing from the draft IO spec, so it's probably on of those things that's just assumed to be the same as in Perl 5, at least until we change our mind...
18:44 Nebster Ok, thanks
18:44 ruoso TimToady, you think there should be some native support for concurrent non-threaded IO using continuations?
18:45 ruoso TimToady, (I think it was you that posted me a link about how that is made in haskell)
18:46 moritz_ concurrent, non-threading? like STM?
18:47 ruoso moritz_, not really... more like Any::Event
18:47 TimToady don't think it was me
18:47 ruoso sorry... AnyEvent
18:47 ruoso but the idea is to allow writing non-event-based programs that behave like event-based programs
18:48 Nebster Does anyone know what this means: Method 'lvalue' not found for invocant of class 'PAST::Stmts'
18:51 ruoso TimToady, moritz_, the based idea is that instead of blocking on IO, the continuation would be yelded to the interpreter that would only continue it when the IO is ready to be read/writen
18:51 moritz_ Nebster: it means that you are trying to do a list assign that's not yet implemented
18:51 moritz_ Nebster: something like my ($a, $b) = 1, 2;
18:52 ruoso TimToady, moritz_, the interpreter could then wait for events related to several continuations...
18:53 Nebster So this would cause it: ($DestHost, $DestPort) = split(":", $1);
18:54 moritz_ yes
18:54 moritz_ sadly :/
18:54 Nebster is this all implement in PIR?
18:54 Nebster I might just convert to that
18:54 Nebster Since I want to stay up-to-date with Parrot but with this simple script working
18:55 Nebster Well, it's really just a proxy
18:57 TimToady okay, you're referring to http://www.seas.upenn.edu/~lipeng/homepage/unify.html
18:57 lambdabot Title: Unifying events and threads
18:57 ruoso TimToady, exactly
18:58 moritz_ Nebster: if you want to get something working, perl5 is the much faster road atm :/
18:58 Nebster I know, but I like parrot :P
18:59 Nebster Does the "use perl5" statement work?
18:59 Nebster I remember reading about it somewhere
18:59 moritz_ no
18:59 pmurias it's use v5;
18:59 pmurias it dosn't work on parrot
18:59 Nebster ok
18:59 pmurias pugs: use v5;print "p5\n";
18:59 p6eval pugs: OUTPUT[pugs: Prelude.last: empty list␤]
19:00 Nebster And how would I go about converting .Net to PIR?
19:00 moritz_ I think #parrot is the better place to ask this
19:00 Nebster Ok
19:00 Nebster Thanks for all the help :)
19:01 moritz_ you're welcome
19:06 pmurias ruoso: if you want to try to implement p6opaque using Array's and Hash's were should my attempt live?
19:06 pmurias s/you/i
19:06 ruoso pmurias, you can take p6opaque over
19:07 ruoso if you start it, I'll collaborate with you
19:07 pmurias good ;)
19:11 ruoso pmurias, p6opaque is the major milestone we have ahead... once we have it, a lot of good things will come...
19:14 pmurias does the current implementation do much?
19:14 stevan_ joined #perl6
19:14 ruoso pmurias, I've only implemented .^!how and .^!methods, where .^!methods return a proxy object that introspect the internals of p6opaque
19:19 ruoso pmurias, just remember one thing... the methods must support more then one instance per name...
19:19 justatheory joined #perl6
19:19 pmurias that was the part i meant to ask about
19:20 ruoso pmurias, it just mean that you need a Hash of Arrays, not a Hash of Methods
19:20 pmurias why do we need a bunch of methods for names, multis
19:20 pmurias a Hash of Arrays of Methods
19:20 pmurias a Hash of Arrays of Method
19:20 ruoso yes...
19:21 pmurias don't the multis merge magicly into a single method?
19:22 ruoso pmurias, I'm not sure how that relates to multi inheritance...
19:22 rlb3 joined #perl6
19:23 ruoso I don't think it's possible to merge them into a single method
19:23 ruoso (maybe as a optimization, later, but conceptually... I don't think so)
19:24 pmurias multi method performace is very important
19:24 pmurias in the long run that is
19:24 pmurias ;)
19:24 ruoso pmurias, I mean... you can only merge it as a cache implementation
19:25 ruoso that must be invalidated accordingly
19:26 pmurias yes
19:27 rindolf joined #perl6
19:29 pmurias ^!methods is speced on the wiki  to returnn an Array of Methods...
19:30 ruoso pmurias, this is confused because $foo.^methods returns a list
19:30 ruoso but we could make the REPR api more storage-friendl
19:31 ruoso and make it return a Hash of Array of Method
19:31 moritz_ rakudo: say uc "ä"
19:32 p6eval rakudo 29563: OUTPUT[\xC4
19:34 pmurias the metadata pointer can be shared?
19:35 ruoso pmurias, you mean by being accessed inside the proxy objects (like the methods hash?)
19:36 ruoso or by being used as the metadata for several p6opaques?
19:36 pmurias like being used for several p6opaues
19:37 ruoso I don't think so...
19:38 ruoso that's the reason for "instanceof"
19:38 pmurias it doesn't contain anything object specific in class based .HOWs
19:38 pmurias what does the instanceof point to?
19:38 ruoso to the prototype
19:39 pmurias can the metadata be NULL?
19:39 ruoso on objects that have a instanceof, yes... that's the plan
19:41 pmurias we could make metadata a SMOP_Object* and just share it for class based oo
19:42 ruoso hmm
19:42 pmurias we would need an to make instanceof an array for real prototype oo (not some punny javascript oo)
19:43 pmurias s/punny/crapy/
19:44 pmurias s/crapy/puny/
19:46 PZt joined #perl6
19:46 ruoso pmurias, in class-based OO the HOW is a p6opaque also
19:46 ruoso where the metadata is defined
19:47 ruoso the protoobject contains the "how" reference in the metadata
19:47 ruoso and the instance "instanceof" the protoobject
19:49 ruoso different from prototype-based OO
19:49 ruoso where the prototype has the metadata
19:49 ruoso and a reference to the HOW
19:49 ruoso that simply knows how to traverse the protoobject metadata
19:54 alester joined #perl6
19:55 pmurias ruoso: the HOW dosn't have to be a p6opaque
19:55 ruoso pmurias, yeah... right... sometimes I forget how polymorphic smop is ;)
19:56 pmurias i'll just make metadata a SMOP_Object*, it might help later ;)
19:57 ruoso pmurias, I'm not sure about it
19:57 ruoso because it was supposed to be part of the p6opaque storage
20:00 pmurias it's stored in p6opaque, just as a SMOP_Object*
20:04 Auzon Is pugscode.org down?
20:06 moritz_ at least apache is down
20:10 moritz_ [Thu Jul 17 22:09:53 2008] [crit] (28)No space left on device: mod_rewrite: could not create rewrite_log_lock
20:10 moritz_ Configuration Failed
20:11 moritz_ ok, back up and running
20:15 Auzon :)
20:15 pmurias ruoso: any idea what can undefined reference to `SMOP__p6opaque(int0_t &) be?
20:18 pmurias ack does find a mention of it, and i don't know if autotools can cause anything like that
20:19 pmurias gcc -Wall -D_GNU_SOURCE -I../include -g -O2 -o .libs/01_smop_lowlevel.t 01_smop_lowlevel.o  -L/home/pawel/p6/v6/smop/src /home/pawel/p6/v6/smop/src/.libs/libsmop.so -lpthread
20:20 pmurias /home/pawel/p6/v6/smop/src/.libs/libsmop.so: undefined reference to `SMOP__p6opaque(int0_t &)'
20:22 pmurias shower&
20:25 cjfields_ joined #perl6
20:25 ruoso pmurias, I have no idea... it's something svn diff will show you
20:25 ruoso since I'm not experiencing this issue
20:25 * ruoso home &
20:27 pugs_svn r21362 | Auzon++ | [gsoc_spectest] added tests to for.t and fudged it for rakudo. (added 3 tests)
20:27 Auzon S04-statements/for.t should be good to add to spectest_regression
20:27 * moritz_ checks
20:29 moritz_ ah, the "implicit invocant" fudge messages aren't correct
20:29 moritz_ (I guess they are my fault)
20:30 Auzon I didn't mess with the existing messages :-/
20:30 moritz_ the tests are wrong, because you can't call a sub as method
20:30 moritz_ Auzon: no worries, I'm going to fix them some day [tm]
20:31 moritz_ when we have 'class Int is also {...}' we can just put them as methods in Int ;-)
20:33 moritz_ rakudo: 42 - 19
20:34 p6eval rakudo 29563: RESULT[23]
20:35 rakudo_svn r29564 | moritz++ | [rakudo] added S04-statements/for.t to spectest_regression, Auzon++
20:35 rakudo_svn r29564 | moritz++ |  +23 pass, +19 todo/skip tests
20:36 jferrero joined #perl6
20:37 moritz_ perlbot: karma Auzon
20:37 perlbot Karma for Auzon: 129
20:37 wknight8111 joined #perl6
20:43 pugs_svn r21363 | putter++ | [misc/elfish/rx_on_re]  Setting up for development; hit a perlbug.
20:43 pugs_svn r21363 | putter++ | The Regexp_ModuleA.pm tests now run.  Created a elf_f+Regexp_ModuleA hybrid.
20:43 pugs_svn r21363 | putter++ | make check  partially runs.
20:43 pugs_svn r21363 | putter++ | But perl 5.10 then malloc panics and segfaults.  Notes in README.
20:43 pugs_svn r21363 | putter++ | Absent someone interested in debugging perlguts, this may be a showstopping
20:43 pugs_svn r21363 | putter++ | blocker on this development path (towards a fast rx/re engine written in p6).
20:45 pmurias joined #perl6
20:48 moritz_ @tell mncharity re r21363, fglock saw similar perl bugs in regexes which contained some code assertions. Moving them into subs and out of the blocks (only call them from the blocks) helped
20:48 lambdabot Consider it noted.
20:51 rindolf left #perl6
20:51 pugs_svn r21364 | putter++ | elf/README: Mention the ELF_STD_RED_RUN configuration env var.
20:51 pugs_svn r21364 | putter++ | Which permits arbitrarily moving/installing copies of elf.
21:01 pmurias @tell ruoso it turned out gcc was just printing a wrong error message
21:01 lambdabot Consider it noted.
21:10 justatheory joined #perl6
21:11 pugs_svn r21365 | pmurias++ | [smop] moved the old p6opaque attempt to misc, started a new more SMOP__Objecty one
21:12 pmurias moritz_: that way backtracking is lost
21:13 rlb3 joined #perl6
21:13 moritz_ pmurias: why?
21:13 Auzon perl6: my $x; $x++; say $x;
21:13 p6eval elf 21364: OUTPUT[1␤]
21:13 p6eval ..pugs: OUTPUT[1␤]
21:13 p6eval ..rakudo 29564: OUTPUT[increment() not implemented in class 'Undef'␤current instr.: 'postfix:++' pc 13272 (src/gen_builtins.pir:8538)␤]
21:14 pmurias moritz_: wait...
21:15 moritz_ instead of m/(??{ $stuff_here })/ just do sub stuff_1 { $stuff_here }; m/(??{ stuff_1() })/
21:16 moritz_ for a bit more complex $stuff_here that solves a lot of problems
21:22 donaldh joined #perl6
21:23 pmurias kp6 ended up giving up on ??{} blocks
21:40 rindolf joined #perl6
21:44 Limbic_Region joined #perl6
21:59 bacek joined #perl6
22:13 japhb joined #perl6
22:17 eternaleye joined #perl6
22:21 pugs_svn r21366 | lwall++ | [STD] unspace tweaks
22:25 TimToady yes, until p5's regex runs in the same runloop as ordinary code, it's pretty much hopeless to get closures and recursion correct with interwoven regex and code, I suspect
22:26 TimToady you'll note that STD.pmc uses only the most basic of P5 regexen
22:26 TimToady because I wanted it to work right, and fast can come later
22:50 Auzon perl6: my $foo = 42; if $foo -> $x {say $x}
22:50 p6eval elf 21366: RESULT[CODE.new(!!!)␤]
22:50 p6eval ..pugs: OUTPUT[*** Cannot bind to non-existing variable: "$x"␤    at /tmp/o6qbx4IeYu line 1, column 1␤]
22:50 p6eval ..rakudo 29569: OUTPUT[Statement not terminated properly at line 1, near "-> $x {say"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤]
22:51 Auzon That should say 42, correct?
22:55 Alias_ joined #perl6
22:58 bacek_ joined #perl6
22:59 Lunchy joined #perl6
22:59 |jedai| joined #perl6
23:04 bacek_ pugs: my $j = 1|2|3; say $j < 2;
23:04 p6eval pugs: OUTPUT[any(VBool False,VBool True)␤]
23:04 bacek_ rakudo: my $j = 1|2|3; say $j < 2;
23:04 p6eval rakudo 29569: OUTPUT[1␤]
23:05 bacek_ pugs: my $j = 1|2|3; say $j.perl;
23:05 p6eval pugs: OUTPUT[\(1 | 2 | 3)␤]
23:07 bacek_ rakudo: my $j = 1|2|3; say $j.perl;
23:07 p6eval rakudo 29569: OUTPUT[any(1, 2, 3)␤]
23:10 pugs_svn r21367 | lwall++ | [Cursor] fix _PATTERN to set endpoint correctly so we can optimize multiple
23:10 pugs_svn r21367 | lwall++ | matching nodes to single P5 regexes where appropriate
23:10 pugs_svn r21368 | Auzon++ | [gsoc_spectest] moved do.t into spec, added tests, fudged for rakudo. (added 3 tests)
23:10 Auzon t/spec/S04-statements/do.t should be ready for spectest_regression
23:11 bacek_ pugs: my $j = 1|2|3; say ($j < 2).perl;
23:11 p6eval pugs: OUTPUT[(Bool::False | Bool::True)␤]
23:11 Alias__ joined #perl6
23:14 Limbic_Region TimToady - how much of STD.pm does STD.pm parse now?
23:28 bacek joined #perl6
23:29 bacek pugs: my $j = 1|2|3; say ?$j;
23:29 p6eval pugs: OUTPUT[any(VBool True)␤]
23:31 bacek pugs: my $j = 0|0|0; say ?$j;
23:31 p6eval pugs: OUTPUT[any(VBool False)␤]

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo