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.
00:01 lumi left 00:33 wknight8111 left 00:37 hercynium joined 00:39 mauke joined 00:40 preflex joined 00:42 penk joined 00:50 bacek joined 00:54 nipotaway is now known as nipotan 01:02 alester_ joined 01:13 wknight8111 joined 01:18 penk left 01:26 kanru left 01:43 justatheory left
pugs_svn r21797 | lwall++ | [STD] much improved error messages on runaway strings and other "worries" 01:47
02:17 Limbic_Region left 02:31 wknight8111 left 02:39 BinGOs left 02:40 SCalimlim joined, BinGOs joined 02:41 xinming_ joined 02:43 Arathorn left, kanru joined 02:45 BinGOs left 02:51 xinming__ joined 02:53 xinming left 02:57 SCalimlim left 03:02 elmex_ joined 03:03 Chillance left 03:10 simcop2387 left 03:12 simcop2387 joined 03:16 xinming_ left 03:17 simcop2387 left, simcop2387 joined 03:18 elmex left, elmex_ is now known as elmex 03:22 wknight8111 joined 03:24 wknight8111 left
pugs_svn r21798 | rhr++ | [utable.t] syntax check with STD 03:33
03:39 hercynium left 04:00 fridim_ joined 04:08 fco joined, fco left 04:12 fco joined 04:14 whereiskurt left 04:39 robert81 joined 04:55 pbuetow joined 04:58 robert81 left 05:03 luqui joined 05:23 pbuetow left 05:29 REPLeffect left 05:40 Psyche^ joined 05:56 Patterner left, Psyche^ is now known as Patterner 05:59 dduncan left 06:01 alester_ left 06:18 ashizawa joined 07:00 BinGOs joined 07:01 luqui left, fridim__ joined 07:02 cls_bsd_ left 07:03 cls_bsd joined 07:16 fridim_ left 07:21 pmurias joined
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.
07:27 fridim_ joined 07:39 barney joined 07:41 fridim__ left 07:43 pmurias_ joined, pmurias_ left
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
08:07 Southen_ joined 08:14 zamolxes joined 08:18 araujo left 08:21 bacek_ joined 08:22 fridim_ left, fridim_ joined 08:24 cognominal_ left 08:25 Southen left 08:30 cognominal_ joined 08:38 bacek left 08:50 ludan left 08:56 zamolxes left 08:57 masak joined 09:05 ludan joined
masak has anyone figured out why most of the files time out during `make smoke`? 09:06
09:06 bacek_ left 09:11 fridim__ joined 09:14 alanhaggai joined 09:26 fridim_ left
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
10:02 araujo joined
pmurias audreyt: the chapters in grey aren't written yet? 10:04
audreyt right 10:08
10:08 barney left 10:17 whereiskurt joined
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
10:24 fridim__ left 10:28 pmurias left 10:29 pmurias joined
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
10:48 mj41_ left
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...
10:52 Alias_ joined
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
10:54 Alias__ left 10:55 smtms left
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
11:02 smtms joined
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
11:06 Alias__ joined, smtms_ joined
masak but most .t files seem to take 3 secs, doing nothing but making the fans whir 11:06
11:07 smtms left
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
11:19 Alias_ left 11:21 zamolxes joined
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
11:32 smtms_ is now known as smtms
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
11:54 nipotan is now known as nipotaway 11:55 fridim_ joined 11:58 Jedai joined 12:19 whereiskurt left
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
12:39 ashizawa left 12:40 fridim_ left 12:41 BinGOs left, BinGOs joined, wknight8111 joined 13:00 fridim_ joined 13:01 fridim_ left 13:05 cmarcelo joined 13:12 alester_ joined 13:19 smg left 13:24 alester_ left 13:31 hercynium joined 13:44 TJCRI joined 13:50 hercynium left
pugs_svn r21809 | fglock++ | [PCR] added an optional ast optimizer; enable with PCR_OPTIMIZE=1 13:53
13:55 ludan left
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
13:58 kanru left
Grrrr pmurias: they will 14:20
14:21 Lorn joined 14:22 kanru joined, kanru left 14:23 kanru joined 14:26 sri_work joined 14:28 alester_ joined 14:30 Exodist joined 14:34 Lorn left, smtms left, araujo left, kolibrie left, arguile left, TimToady left 14:35 nothingmuch left, Maddingue left, ptman left, IRSeekBot left, LCamel left, dalek left, r0bby left, lambdabot left, zamolxes left, masak left, Southen_ left, rafl_ left, avar left, pugs_svn left, Grrrr left, speckbot left, pjcj left, kcwu left, alester left, TJCRI left, silug left, s1n left, szbalint left, rhr left, yahooooo left, PerlJam left, nnunley left, frobnitz left, apeiron left, ingy left, sunnavy left, clkao left, obra left, fco left, thepler left, p6eval left, ilbot2 left, Guest16015 left, fullermd left, gbacon left, lisppaste3 left, alester_ left, cmarcelo left, Patterner left, eternaleye left, leto left, Ara4n left, pmichaud left, mofino left, idemal left, cotto-work left, les left, PZt left, mauke left, cookys left, allbery_b left, pasteling left, charsbar left, wknight8111 left, simcop2387 left, xinming__ left, jan__ left, meteorjay left, c1sung left, Khisanth left, kane_ left, hcchien left, orafu left, audreyt left, Caelum left, Jedai left, Alias__ left, cls_bsd left, [particle] left, AzureStone left, moritz_ left, spinclad left, mtve left, jjore left, SamB left, pmurias left, alanhaggai left, aindilis left, Tene left, nipotaway left, integral left, elmex left, gaal left, dmq left, jfredett left, BinGOs left, Exodist left, kanru left, cognominal_ left, jrockway left, cosimo left, pengrate_ left, Lunchy_ left, yath_ left, bloonix left, japhb left, broquaint left, Juerd left, gnuvince left, tcliou left, perlbot left, viklund left, felipe left, funktio left, preflex left 14:39 Helios- joined 14:40 TimToady joined, preflex joined, Exodist joined, alester_ joined, kanru joined, Lorn joined, TJCRI joined, cmarcelo joined, wknight8111 joined, BinGOs joined, Jedai joined, zamolxes joined, smtms joined, Alias__ joined, pmurias joined, araujo joined, alanhaggai joined, masak joined, cognominal_ joined, Southen_ joined, cls_bsd joined, Patterner joined, fco joined, simcop2387 joined, elmex joined, xinming__ joined, mauke joined, aindilis joined, [particle] joined, silug joined, AzureStone joined, eternaleye joined, moritz_ joined, spinclad joined, Tene joined, rafl_ joined, avar joined, jrockway joined, mtve joined, thepler joined, nnunley joined, s1n joined, szbalint joined, rhr joined, frobnitz joined, pjcj joined, pugs_svn joined, alester joined, Grrrr joined, irc.freenode.net sets mode: +o TimToady, kcwu joined, speckbot joined, ingy joined, sunnavy joined, clkao joined, obra joined, PerlJam joined, yahooooo joined, apeiron joined, IRSeekBot joined, Maddingue joined, kolibrie joined, arguile joined, LCamel joined, ptman joined, dalek joined, r0bby joined, lambdabot joined, nothingmuch joined, p6eval joined, ilbot2 joined, Guest16015 joined, lisppaste3 joined, gbacon joined, fullermd joined, pasteling joined, cookys joined, leto joined, PZt joined, les joined, mofino joined, cotto-work joined, idemal joined, allbery_b joined, pmichaud joined, Ara4n joined, charsbar joined, orafu joined, kane_ joined, Khisanth joined, meteorjay joined, hcchien joined, jan__ joined, c1sung joined, Caelum joined, audreyt joined, nipotaway joined, integral joined, SamB joined, jjore joined, cosimo joined, jfredett joined, gaal joined, dmq joined, gnuvince joined, tcliou joined, Lunchy_ joined, broquaint joined, japhb joined, felipe joined, viklund joined, pengrate_ joined, perlbot joined, bloonix joined, Juerd joined, yath_ joined, funktio joined
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
14:45 alester_ left 14:46 preflex left 14:53 cathyal joined 14:59 fridim_ joined 15:02 zamolxes left, exodist_ joined 15:03 exodist_ left, exodist_ joined 15:04 fridim_ left, alanhaggai left 15:05 Exodist left
pugs_svn r21811 | fglock++ | [PCR] single-step in alternations 15:08
15:15 kanru left 15:22 rafl_ is now known as rafl 15:24 Exodist joined, Exodist left 15:25 Exodist joined, Exodist left 15:26 pmurias left 15:29 justatheory joined 15:35 Exodist joined 15:38 exodist_ left 15:51 rindolf joined 16:01 kanru joined 16:05 kanru left 16:07 kanru joined, hercynium joined 16:16 hercynium left, hercynium joined 16:17 iblechbot joined 16:20 rindolf left 16:31 masak left 16:42 Chillance joined 16:49 mj41 joined 16:50 iblechbot left 16:59 rindolf joined 17:02 cosimo left 17:07 beppu joined
pugs_svn r21812 | fglock++ | [PCR] tests for parallel-concat 17:10
17:19 eternaleye_ joined 17:26 eternaleye left, eternaleye_ is now known as eternaleye 17:27 cathyal left 17:43 nipotan joined, nipotan left 17:44 ryanc joined 17:47 armagad joined, armagad left 17:49 meppl joined 17:53 pmurias joined 18:11 REPLeffect joined 18:19 cmarcelo_ joined
pugs_svn r21813 | lwall++ | [STD] factor out common prefix of all the *ibble routines 18:22
r21813 | lwall++ | cleanup of type names
18:24 ruoso joined
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
18:34 cmarcelo left
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
18:40 kweeg joined
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!
18:42 Alias__ left, kweeg left
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.
18:57 cmarcelo__ joined
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)
18:59 cmarcelo_ left
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
19:09 cmarcelo__ left
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
19:11 cmarcelo joined
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
19:25 rindolf left
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
19:37 donaldh joined
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
19:49 _Chillance_ joined
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
19:56 Chillance left
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"
20:19 wknight8111 left
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
20:23 meppl left
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
20:29 luqui joined
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
20:37 lumi joined
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
20:50 alester_ joined 20:51 wknight8111 joined
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
21:09 donaldh left 21:13 lisppaste3 left 21:14 lisppaste3 joined 21:15 whereiskurt joined 21:21 ruoso left 21:23 pmurias left 21:26 pbuetow joined 21:28 Khisanth left, Khisanth joined 21:29 meppl joined 21:32 alester_ left 22:04 meppl left 22:10 Alias_ joined, timbunce joined 22:14 BinGOs_ joined, BinGOs left, BinGOs_ is now known as BinGOs 22:26 TJCRI left 22:37 Jedai left 22:43 timbunce left 22:48 Limbic_Region joined 22:55 alanhaggai joined 22:57 Ara4n left, Ara4n joined 22:58 hercynium left 23:05 pbuetow left 23:12 Exodist left 23:20 Lorn_ joined 23:25 hercynium joined 23:26 ruoso joined 23:32 Lorn left 23:43 hercynium left 23:55 cmarcelo left 23:56 luqui left 23:57 bacek joined