pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
pugs_svn r21797 | lwall++ | [STD] much improved error messages on runaway strings and other "worries" 01:47
pugs_svn r21798 | rhr++ | [utable.t] syntax check with STD 03:33
pugs_svn r21799 | lwall++ | [STD vs t] now passes 99.22% 07:21
r21799 | lwall++ | For parsing sanity, :: is no longer officially a sigil
pmurias @tell mncharity STD_red's AST output is broken and horrible, so please don't use it, and you should consider not using strange "syntax extensions" as found in IRx1_FromAST for IRx1_FromAST 07:25
lambdabot Consider it noted.
pmurias is there a Perl 5 to haskell guide somewhere, showing what the Perl 5 functions translate to etc.? 07:55
Caelum not that I know of 08:04
pmurias i think it would be really usefull when learning haskell (as i'm doing now ;) 08:07
masak has anyone figured out why most of the files time out during `make smoke`? 09:06
audreyt pmurias: book.realworldhaskell.org/beta/ 09:30
lambdabot Title: Real World Haskell
pugs_svn r21800 | audreyt++ | * Add links to the online version of the upcoming O'Reilly Title, 09:33
r21800 | audreyt++ | Real World Haskell, to READTHEM: book.realworldhaskell.org/beta/
lambdabot Title: Real World Haskell
audreyt masak: can you give me one file that times out?
*the name of
pugs_svn r21801 | fglock++ | [PCR] new ENV option 'PCR_DUMP_AST' 09:36
masak audreyt: ext/Cipher/t/0-cipher-oo.t, and all files after it 09:39
audreyt looking
masak and it's just not a question of it freezing up, because it uses lost of CPU 09:40
audreyt multimethod dispatching failure... a bit 09:42
masak s:2nd/st/ts/
how come it spreads to all subsequent files?
audreyt I honestly have no idea. testing 09:45
I can't dupliacate it 09:53
masak: I've changed util/yaml_harness.pl from 300 to 3
and "make smoke" works past the Cipher line
can you confirm?
masak audreyt: hold on, trying unsuccessfully to abort the current one 09:54
for a process, it certainly clings to life
pasteling "masak" at 130.238.45.242 pasted "make error" (94 lines, 5.1K) at sial.org/pbot/31815 09:58
audreyt weird 09:59
masak indeed.
audreyt nuke ~/.ghc and ~/.cabal and try again?
masak lunch &
audreyt: oki
audreyt: works better now 10:00
pmurias audreyt: the chapters in grey aren't written yet? 10:04
audreyt right 10:08
pmurias audreyt: thanks for the link, Real World Haskell seems more oriented towards a sequential read then a JIT approach but it seems usefull for getting a broader grasp, it hopefully might make me harass the #haskell folks less 10:21
audreyt pmurias: once you're past the first four or so chapters the rest can be read JIT
masak audreyt: ext/Cipher/t/0-cipher-oo.t still does 300 wallclock secs 10:47
do I need to make install before making smoke? 10:48
audreyt no 10:49
you didn't change 300 to 3? 10:50
masak audreyt: oh, was it I who was supposed to? hold on...
pugs_svn r21802 | pmurias++ | [m0ld] 10:52
r21802 | pmurias++ | hello_world.m0ld is correctly compiled and with the supplied boilerplate works
r21802 | pmurias++ | [smop]
r21802 | pmurias++ | IO.print handles constant identifiers
masak audreyt: well, things 'work' past ext/Cipher/t/0-cipher-oo.t, but they all max at 3 just as they maxed at 300 before
masak audreyt: correction. many of them max out, some finish in 1 or 2 secs 10:55
audreyt wait until you hit t/ 10:56
and see if these do too
I think ext/ are timing out individually 10:57
not some sort of magic propagation from Cipher
masak good to know 10:58
but alas, I've hit t/ and the maxing-out continues
audreyt hmm I'm not seeing it :/ 11:02
but still some only take 1/2 sec? 11:03
pmurias audreyt: re Pugs.Code and generating m0ld is what is on the wiki enough or does wiki page/Mold need extending? 11:04
masak audreyt: well, ext/Test-Builder/t/040_Test_Builder_TestPlan.t took 0 secs
0.38 cusr 0.04 csys 11:06
masak but most .t files seem to take 3 secs, doing nothing but making the fans whir 11:06
audreyt hm 11:08
let me think a bit
pugs_svn r21803 | pmurias++ | [smop] reverted accidently overwritten test 11:13
audreyt ah. I got it. 11:14
fixing
masak audreyt++ 11:17
audreyt I think it's fixed as of r21804 11:27
test?
pugs_svn r21804 | audreyt++ | * Add proper Time::Out (60sec for now) around tests. 11:28
r21804 | audreyt++ | Thanks to masak++ for pointing out that one hanging test
r21804 | audreyt++ | sometimes makes all others hanging because of the reuse of a FH
r21804 | audreyt++ | pipe that was never closed.
r21805 | audreyt++ | * Make Time::Out properly work with 60sec.
r21805 | audreyt++ | masak++ for pointing out the chain-hanging bug.
masak cool! will try immediately
pugs_svn r21806 | pmurias++ | [m0ld] added first test written in m0ld 11:31
audreyt hm, not quite fixed 11:38
a sec
masak noticed 11:40
ext/Cipher/t/0-cipher-oo.t seems to hang indefinitely now
audreyt masak: sorry I need to be afk now for ~2hr 12:24
turns out it's a problem of portably killling open | children
pugs_svn r21807 | audreyt++ | * Upgrade inc/Test/ to newest version.
audreyt I've checked in my current state -- if you or someone can look at yaml_harness.pl where it dies during "make smoke" now it'd be cool
bbiab
pugs_svn r21808 | audreyt++ | * Check in the state of where things are, pending a portable way to
r21808 | audreyt++ | terminate children spawned by open |.
masak audreyt: no problem. thank you for looking into it. 12:25
pugs_svn r21809 | fglock++ | [PCR] added an optional ast optimizer; enable with PCR_OPTIMIZE=1 13:53
pmurias Grrrr: what is the deadline for abstract editing (if i change it today will the changes be reflected in the paper conference schedule?) 13:55
[particle] best to email the conference organizer 13:57
Grrrr pmurias: they will 14:20
pugs_svn r21810 | fglock++ | [PCR] adding first tests for single-stepping over rule nodes. 14:41
r21810 | fglock++ | this feature will be used for running the parallel-or operation
pugs_svn r21811 | fglock++ | [PCR] single-step in alternations 15:08
pugs_svn r21812 | fglock++ | [PCR] tests for parallel-concat 17:10
pugs_svn r21813 | lwall++ | [STD] factor out common prefix of all the *ibble routines 18:22
r21813 | lwall++ | cleanup of type names
pmurias ruoso: hi 18:26
ruoso hi pmurias
pmurias i think Mold has reached slime's feature set now 18:27
[particle] mold >= slime. what's next, goo? 18:28
mildew?
audreyt pmurias: is it checked in, and can I try getting my Pugs.CodeGen going? :) 18:31
pmurias audreyt: that would be great
i'm currently implementing goto, but the call are in
it's in v6/smop/m0ld 18:32
s/call are in/method calls are/ 18:33
audreyt cool
pmurias audreyt: should i look into the quasi-quotes for haskell stuff? 18:34
audreyt pmurias: sure, but that involves recompiling ghc 6.8.3 with my patch 18:35
but the idea is you don't have to write
isReg (Decl _ None) = True 18:36
rather you write
isReg [$sm0p| my _ = _ |$] = True
er
isReg [$sm0p| my _; |$] = True
also you wouldn't write 18:37
return $ Call target identifier (Capture invocant pos named)
rather you write
return [$sm0p| $target.$identifier($invocant: @pos, %named) $] 18:38
return [$sm0p| $target.$identifier($invocant: @pos, %named) |$]
or some such
well it's not entirely more concise in the above examples
but the idea is you can write arbitrary dsl in haskell code instead of spelling out ASTs
(am I making some sense?) 18:39
there are already regex and lightttpd.conf and haskell qqs
pmurias audreyt: yes, but requiring a custom ghc rules it out for the moment, thought that the quasi-quotes could help you with the pugs m0ld backend 18:41
audreyt it can help with everything!
audreyt compile [$p6| $meth($x:) |$] = [$sm0p| $x.$meth() |] 18:42
but yeah, I'd like to wait till ghc 6.10 to fully deploy it. 18:44
TimToady btw, I hacked the s/q:code/quasi/ change into pugs, but I dunno if it'll parse "quasi :COMPILING {...}" right...
audreyt hi TimToady! 18:45
TimToady howdy doo
pmurias audreyt: if you have any questions on Mold i'll expand the documentation, or if you have any feature requests i'll work on those
audreyt looks it parses correctly, TimToady
TimToady the new form is much cleaner to parse in STD 18:46
since with q:code it had already commited to :q semantics by the time it read the :code modifier, and that would have been difficult to back out 18:47
ruoso pmurias, does that mean that we can get rid of slime? 18:48
pmurias ruoso: we can start getting rid of it yes
ruoso :D 18:49
nothing like other people replacing the ugly stuff you write ;)
gaal heya 18:50
pmurias gaal: hi
ruoso pmurias, remember to add support for the lexical scope in mold 18:51
you might even save it as one of the "special registers" to save some calls
I've been re-reading the specs, and I think the model in the wiki is in the right direction... 18:52
I still need a way to differentiate "is context" variables from the others...
and on how to implement 'temp'
probably making %.entries a Hash of LexicalVariable and have other methods declared there... 18:53
but 'temp' looks confusing, specially because of gather/take 18:55
and other continuation-aware operators
$*foo = 1; gather { temp $*foo = 2; take $*foo }; say $*foo; 18:56
$*foo = 1; gather { temp $*foo; take $*foo; $*foo = 2; take $*foo }; say $*foo; # that makes the problem more visible 18:57
pmurias ruoso: re special registers it could be added as a constant
pugs_svn r21814 | audreyt++ | * Solve the timeout problem at another direction by introducing PUGS_TIMEOUT
r21814 | audreyt++ | environment variable and have it set to 60 in yaml_harness.pl.
ruoso not really... you could have the "outer" scope as a constant... actually, you should... but the "curent" scope is not reuseable 18:58
TimToady assume temp is syntactical sugar for context vars right now 18:59
(and ignore them)
ruoso TimToady, but $*foo can't be seen as a context var 19:00
TimToady why do you want to use globals?
ruoso I don't, but some user might...
pmurias ruoso: creating a lexpad is one opcode or two if you have to fetch the LexPad prototype from the namespace
TimToady globals do not interact well with any kind of threading
ruoso we could restrict temp to creating local aliases
which solves that problem
actually, creating local aliases which have the "is context" trait 19:01
TimToady I suppose we could say that all globals are implicitly "is context"
ruoso s/aliases/copy
TimToady so you just use $+foo any time you want to access the global 19:02
(or the innermost context override of the global)
ruoso alright... we could eliminate globals completely... that's true
gaal audreyt: where to add the netslurping of control-timeout? I don't have one installed locally
ruoso (ok, not completely... we still have %*ENV and other stuff that is really global)
TimToady I'm trying to push things that direction just to keep concurrency sane 19:03
gaal audreyt: oh, bootstrap_with?
TimToady I think we already define $+FOO to default to looking in $*ENV as a last resort; we'd just look for GLOBAL::FOO right before that 19:04
ruoso alright... so... 'temp $foo' is the same as 'my $foo is context<rw> = $+foo' 19:05
TimToady well, there's potentially a PROCESS::FOO in between
ruoso and 'temp' cannot be used in global variables
audreyt gaal: no @deps 19:06
TimToady au contraire, globals are context vars :)
pugs_svn r21815 | audreyt++ | * Add control-timeout to @deps
ruoso feels a functional slap
so $*ENV is the same as $+ENV? 19:07
TimToady so it's really more like GLOBAL_CONTEXT::FOO PROCESS_CONTEXT::FOO PROCESS_CONTEXT::ENV<FOO>
no, $*ENV would only refer to the outer one 19:08
gaal is there already something like ccache for ghc?
ruoso is $*ENV special, then?
TimToady only insofar as CONTEXT::FOO will look in it as a last resort
audreyt gaal: ccache can be used with ghc 19:09
ruoso might have misunderstood the "globals are context"
audreyt since ghc ultimately calls gcc
(iirc)
TimToady You could say $+ENV, which would probably get the $*ENV, but could be overridden in its entirety
gaal really? isnt' that only with -via-c or something? and even if so, that only saves part of the work
TimToady generally subtrees will only want to override one element of $*ENV though 19:10
audreyt gaal: correct, but I think -O is default and -O implies -fvia-c
TimToady so it's probably better for $+FOO to special case the final $*ENV fallback
rather than relying on $+ENV<FOO>
though $+ENV is more like the Unix process model 19:11
ruoso doesn't really feel $+FOO lookup in $*ENV like a good thing... makes him remember php
TimToady so maybe at each level $+FOO looks for "my $FOO is context" first and then "my %ENV is context" 19:11
pmurias audreyt: isn't -via-c the slower compilation, worse code option? 19:12
TimToady so any context can then override either an individual context var or the whole environment
ruoso doesn't feel that as a good thing...
TimToady the latter being primarily useful for commands that will be spawning off a subprocess with a real sub-env 19:13
ruoso: you're feelings are wrong :) 19:14
tje
the idea is to make dynamic calls and unix subprocesses more easily refactorable into each other
*your
why do you feel a dynamic scope should not be allowed to set the environment for its dynamic children? 19:15
ruoso btw... is p5 'local $a{a}' going to be supported using 'temp'?
TimToady, the environment yes...
TimToady, it just feels weird that every context variable looks both in the context *and* in the environment 19:16
for every step in the context tree
TimToady well, it only looks in the env if it's there
ruoso I just because context variables might have a lot of uses that are completely unrelated to %ENV 19:17
[particle] if it's there ::= if it's defined in that step in the context tree ??
TimToady it also lets an apache server have both a PROCESS::ENV and individual GLOBAL::ENV
ruoso s/I just/it's just/
ruoso thinks in Catalyst $c 19:18
TimToady maybe ENV lookup should be a second pass...
ruoso so if it happens that you're using context vars for other things, and eventually needs to spawn a process that uses a env variable that clashes with your context variable, it would break your program 19:19
TimToady nod
ruoso even the second pass feels wrong...
because it might be used for completely %ENV-unrelated stuff...
and it could cause completely unexpected results... 19:20
it just feels to me as PHP declaring the request args as global variables...
read... wrong... ;)
specially since p6 pushes the user to use closures a lot... 19:21
and it's much possible that there would be unknown code in the CALLER tree 19:22
TimToady maybe we can provide an explicit way to merge when desired 19:24
ruoso that would create local "is context" aliases for %+ENV...
gaal ccache -s => "not a C/C++ file: 97"
ruoso that's cool
TimToady meanwhile $+ENV probably can work independently as a normal context var
gaal so, too bad, it doesn't work
audreyt gaal: Juerd(?) used to have ccache on feather
gaal the good news is that make takes only 2 minutes on my machine :)
ruoso TimToady, but that brings us for the 'local $a{a}' question... is that going to be supported somehow?
audreyt ok :) 19:25
TimToady not if it means breaking concurrency
audreyt science have progressed
gaal word is Intel's working on a $bigsmallnum-core CPU 19:25
Juerd audreyt: It's (supposed to be) enabled globally
ruoso TimToady, as I can think of it, yes... it does break concurrency... but I'm usually not that smart ;) 19:26
TimToady note however "my $foo is context := %a<a>" probably works
gaal Juerd: hi!
Juerd Hi
ruoso TimToady, but that doesn't have the effect of 'local $a{a}' 19:27
it just makes %a<a> value accessible as a context local var...
pugs_svn r21816 | pmurias++ | [mold] goto 19:28
ruoso maybe... %a<a> := lazy_lookup_on_the_current_context_for_a_context_var_of_some_name()
that could have the same effect as 'local $a{a}
TimToady or maybe "my %a is context := shadow(%+a)" 19:29
ruoso but that applies for the entire hash, not only for that key...
TimToady where inner %a know which keys it knows about, and which it delegates
ruoso hmm... 19:30
TimToady %a<a> = 42 would override the inner %a<a> but not the outer %<a>
and that looks concurrency save
ruoso so 'local $a{a}' would be translated to 'my %a is context := shadow(%+a, 'a');
TimToady *safe
ruoso where 'a' could be replaced by the list of keys to be localized... 19:31
TimToady the translation of local() is problematic in any case, because local in p5 undefs, whereas temp in p6 is defined to make a copy
temp merely says "restore this to the current condition at the end of the scope" 19:32
ruoso which is the harder part...
setting a new value, or using the outer value is a detail
gaal something wonky is going out in the test stdout/stderr
TimToady let merely says "restore it on failure of current scope"
ruoso: sure, but it's the sort of detail a language designer is (not) paid to worry about 19:33
ruoso but it's a detail a implementor can relax about ;)
ruoso just realises one other thing 19:35
TimToady it's my job to tell implementors what they can relax about :)
and I'm tellin' you to relax about temp :)
(insofar as I value concurrency more highly) 19:36
ruoso too 19:37
pmurias audreyt: re Pugs.CodeGen i think you can start working on it if you wish, mold will be blocking soon on a perl6 compiler
audreyt 'k
gaal GHC's on git now, audreyt is that your doing? :p 19:37
ruoso TimToady, about let, can it be implemented by creating a container that checks for $! on destruction?
or is there any other magic associated?
TimToady see KEEP blocks and will keep traits 19:38
audreyt gaal: no, it's david roundy's doing
accidental public seppuku and all that
gaal context? 19:39
ruoso it's a shame google thinks that KEEP is not a valid search word...
TimToady, in which synopsis?
TimToady 4 19:40
gaal ruoso: +KEEP is though
ruoso bah... one more feature for pmurias to add on mold 19:43
TimToady only one? :) 19:44
gaal I added a "*** TIMEOUT" message when the in-pugs thing expires. Is that prudent? Or can stderr block and mean we don't actually exit in the timeout?
ruoso actually several... one for each closure trait 19:45
TimToady, can we consider 'my $foo will keep { ... }' as syntax sugar to build a sequence of blocks in the KEEP block?
TimToady you can have multiple KEEP blocks, so there's keeplist stored somewhere 19:46
ruoso so it can be considered as a syntax sugar for KEEP { { ... }.($foo) }; 19:47
TimToady something like that
ruoso can it be done at compile time? 19:48
TimToady can what be done at compile time? certainly the desugaring can
pmurias ruoso: you can note todo stuff on the mold wiki page
ruoso meaning... making the runtime completely unaware of what "will keep" is...
TimToady the determination of success if of course run time
ruoso the runtime would only have a KEEP block list for each blcok 19:49
block
TimToady in fact, you could go as far as to desugar into LEAVE blocks, I think
ruoso pmurias, actually I think that's something for Code, not Mold...
TimToady but probably better to keep separate keep/undo lists and just put the leave blocks on both :) 19:50
ruoso or just keep lists for each of these traits
and call them at runtime in that specific order
TimToady have to keep the relative ordering of them sane though 19:51
ruoso you mean KEEP, LEAVE, KEEP?
TimToady I think the spec has something to say about that, and it might even be correct :)
ruoso alirght...there's a specific note about that.. 19:52
TimToady yes, KEEP/UNDO are considered LEAVE variants for ordering purposes
ruoso so it's better to duplicate the unqualified LEAVEs in both the KEEP and UNDO lists
TimToady or have one LEAVE list with conditionals, depending on whether you're optimizing for space or time :) 19:53
ruoso votes for time...
TimToady but one pointer is probably not a lot of space for a static block
ruoso and it's a list of pointers anyway
TimToady and doubt cloning has much influence either way 19:54
though you can easily avoid not cloning the KEEPs or the UNDOs you are bypassing with 2 ptrs
s/not// 19:55
ruoso clonning didn't cross my mind until you mention actually... I thought about making lowlevel references for the same value at start... 19:56
pugs_svn r21817 | lwall++ | [STD] s/Uint/UInt/ 19:57
ruoso this part of smop is still only C
(and some "use v6" blocks...
TimToady the main reason all these blocks are inside is so that they can be closures without violating my scoping
but you'll note we can guarantee what is passed to will keep {...} 19:58
in fact, you already noted it :)
so we don't have to worry about cloning a mere $_ ref
well, not for "is keep" 19:59
KEEP {} is another matter
pmurias ruoso: i changed the Perl 6 is a SMOP abstract
ruoso can we consider "let" as syntax sugar too?
pmurias, that's cool
something lile..
TimToady probably 20:00
pmurias ruoso: lile? 20:01
ruoso pmurias, sorry... I was continuing the line before the one I answered to you
and I meant something like...
;)
ruoso needs some code examples that uses let and temp 20:02
pmurias ruoso: should i mention some of the smop cool features or is the abstract ok like that?
ruoso trying to remember the url of where he can see that... 20:03
TimToady t/var/temp.t maybe
ruoso alright... there's one thing that confused me now... 20:04
we're thinking on temp as "is context"...
TimToady "as context = $+" 20:05
ruoso { my $a; { temp $a = 2; { say $a }; say $a}
TimToady *is
ruoso pugs: { my $a; { temp $a = 2; { say $a }; say $a}
p6eval pugs: OUTPUT[*** ␤ Unexpected end of input␤ expecting ";" or "}"␤ at /tmp/trofzbNdmK line 2, column 1␤] 20:06
ruoso pugs: { my $a; { temp $a = 2; { say $a }; say $a}}
p6eval pugs: OUTPUT[*** No such subroutine: "&temp"␤ at /tmp/4vyCB2ay17 line 1, column 12-23␤]
TimToady pugs never implemented temp, afaik
which shows how useful it isn't :)
ruoso in fact... temp is only usefull to handle global variables.. and that's something we'd like to avoid... 20:07
TimToady well, we originally defined it to apply to lexicals too 20:08
ruoso but temp applied to lexicals is just a new my
TimToady now we're just requiring "is context" in addition, perhaps
ruoso temp applied to context is just a new 'my $foo is context" 20:09
TimToady but maybe temp retroactively marks a "my" in scope as "is context"
ruoso and different "my"s in different scopes doesn't generate a warnings
pmurias ruoso: www.yapceurope2008.org/ye2008/talk/1090
lambdabot Title: Perl 6 is just a SMOP
ruoso pmurias, that looks ok... 20:10
TimToady, that sounds weird...
gaal 16880 test cases: 11604 ok, 5276 failed, 1006 todo, 125 skipped and 34 unexpectedly succeeded # Do these numbers look sane?
ruoso TimToady, "temp" changing the variable visibility
better have a different name then
like "local"... if that's what we want... 20:11
TimToady well, or just require "is context" on the my
since it's presumably the same file
ruoso not really...
if it requires "is context"
the variable might have been declared in a different file 20:12
which in fact means... 20:13
temp is useless
except for global variables...
TimToady I don't see how that follows
ruoso thinks faster than he types ;)
TimToady you're reasoning from the specific to the general
ruoso if "temp" requires the outer variable to have the "is context" trait 20:14
TimToady import an alias to an context var
s/to/from/
ruoso it's not an alias, it's a new container that have the same value 20:15
just like if you had "my $foo is context = $+foo";
TimToady :=
ruoso o.O
if I bind, the changes won't be localized to that scope 20:16
TimToady my $foo is context := $THAT::var
that's a good thing :)
ruoso then it isn't temp at all
it's simply an alias...
TimToady esp if that scope is running in a different thread...
ruoso missing something... 20:17
if my $foo := $+foo, it is actually the same as if I was using $+foo all the time 20:18
$+foo and $foo will have the same value
and the changes to the value of $foo won't be restricted to the current scope
but it would be visible by the outer scope 20:19
which I think is not the meaning of "temp"
ruoso otoh... if 'temp $foo;' means 'my $foo is context<rw> = $+foo;' 20:20
meppl good night
ruoso then $foo is a new container, and the changes to its value will not be visible by the outer scope
which I thikn is the meaning of 'temp'
that would mean that the following block is invalid... 20:22
{ my $a = 1; { temp $a = 2; } };
because the first $a doesn't have the 'is context' trait
TimToady right
ruoso which is not that bad, since that the above block could be written with two 'my's anyway 20:23
TimToady but I would argue that if a module intends a variable to temporizable, it should declare it "is context"
and then you just say "temp $THAT::var" directly
ruoso but "is context" changes the visibility... not the "temporal" aspect of the variable...
TimToady it's part of the public interface, in that case
TimToady waves his hands and sez "jest make it work" 20:24
ruoso so I can consider "temp $foo;" as a syntax sugar for "my $foo is context<rw> = $+foo;" 20:25
which will break if there's no previously declared $+foo;
TimToady good enough for now
ruoso and no support for globals in "temp" 20:26
except if we consider all globals as context...
pmurias ruoso: what should the conditionals branch op check? 20:27
* conditional
ruoso it needs to force bool context... which in SMOP means .bool()
but remember that .bool() might recurse
ruoso I think we can assume that .bool() should return a native boolean 20:29
(is native bool part of the spec?) 20:30
(yes, it is...)
and for now you can abort() if .bool() returns something that is not a native bool... 20:31
at least until we have the exception handling in place
pmurias maybe i should put the SMOP_DIE placeholder in place so that we can upgrade all the errors once we have exceptions? 20:34
ruoso maybe... 20:35
pmurias although you have to leave things in a defined state to throw an exception 20:37
TimToady are you guys bearing in mind that exception handlers run *before* the stack is unwound in p6? 20:38
ruoso that's why I'm not sure SMOP_DIE is a valid placeholder for the exception model 20:39
pmurias ruoso: just checking for a native bool true seems a better idea after some thought 20:50
ruoso TimToady, as I thought so far... exeption throwing will be a regular method call 20:54
on an object that knows how to manipulate the stack
there won't be a lowlevel exception model... only a high-level 20:56
pmurias not coding stuff in C is good ;) 20:58
ruoso home & 21:03
pmurias what would be good p6 style syntax for br cond,iffalse,iftrue? 21:06
br cond,iftrue,iffalse actually
$cond ? goto iftrue : goto iffalse; ? 21:07
or if $cond {goto iftrue} else {goto iffalse} 21:08