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
|