pugs.blogs.com/dist/Perl6-Pugs-6.2.13.tar.gz released! | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com Set by audreyt on 17 October 2006. |
|||
TimToady blushes | 00:01 | ||
00:08
justatheory joined
00:14
idiotmax joined
00:19
penk joined
00:21
scsibug_ joined
00:24
mako132_ joined
|
|||
cmarcelo | @tell audreyt if you have free time/mind for type hackery help: in moh, (pull) and look at AnyClass type, can I do this sort of things? ("a" type is function of "c" type there) | 00:34 | |
lambdabot | Consider it noted. | ||
01:19
scsibug_ is now known as scsibug
01:20
dmq joined
01:37
fglock joined
|
|||
pasteling | "fglock" at 200.150.229.66 pasted "audreyt: translation to portuguese" (126 lines, 2.1K) at sial.org/pbot/20802 | 01:38 | |
01:39
bonsai joined
01:43
bonsai joined
|
|||
svnbot6 | r14578 | fglock++ | Pugs-Compiler-Rule - added Pugs::Emitter::Rule::Perl6::Ratchet - | 01:44 | |
r14578 | fglock++ | Rules implemented in MiniPerl6; first step for bootstrapping MiniPerl6 | |||
audreyt | yay finally done with the slides :)) | 01:59 | |
lambdabot | audreyt: You have 2 new messages. '/msg lambdabot @messages' to read them. | ||
audreyt | (well, modulo more pictures, but that's a start.) | ||
fglock++ # translation | 02:00 | ||
Uploading... | |||
02:00
nipotaway is now known as nipotan
|
|||
clkao | audreyt: hey you want to do the pugs stuff on feather? | 02:02 | |
i have some cycles before bed now | 02:03 | ||
audreyt | clkao: oh cool! is there a way to autosync your repo up? | 02:04 | |
I mean using svnsync or replay or something | |||
clkao | yes | ||
audreyt | what command should I give? | ||
clkao | you have svn 1.4 on feather? | ||
audreyt | yes | ||
clkao | oh damn. you need 1.4.1 which is unreleased | 02:05 | |
TreyHarris | audreyt: congrats! oh, by the way, LOTS of good feedback from your talks here! | ||
clkao | whooot | ||
audreyt: but i can fix pullyu to finish up the dump | |||
audreyt | clkao: uhm. you can build a 1.4.1 on feather maybe? | ||
what's in 1.4.1? | |||
02:05
tokuhirom is now known as toku_away
|
|||
audreyt | oh hey, that's a plan too | 02:06 | |
clkao | fixed perl bindings to use replay | ||
audreyt | TreyHarris: ooh. what kind of feedback? :) | ||
clkao | but what do you want besides the dump? | ||
commitbit? | |||
audreyt | yes | ||
that's all actually. | |||
clkao | btw, pushmi is working now | ||
audreyt | is it part of svk trunk? | ||
02:06
toku_away is now known as tokuhirom
|
|||
clkao | but we can deal with that later | 02:06 | |
no, next week probably | |||
audreyt | ok | ||
clkao | i just finished the auth relay bit today | ||
but it requires perlbal ;) | |||
audreyt | clkao++ # amazing tech | ||
clkao: MiniPerl6 Emitter in Perl5 is going smoothly | |||
clkao | audreyt: i need a product name | ||
audreyt | so if you restrict your p6 code into a subset | 02:07 | |
clkao | whooot | ||
i saw the commits | |||
TreyHarris | audreyt: that you're lovely and have impeccable fashion sense and very good command of english... and made pretty slides... | ||
audreyt | then my line-by-line MessageBus handport can be automated | ||
clkao | eggcellent | ||
TreyHarris | audreyt: there might have been a comment or two about pugs or jifty, too, but i'm not sure ;) | ||
audreyt | and then Schwern will have a much better case | ||
to convert Jifty to use p6 signatures :) | |||
TreyHarris: I'm not sure where the fashion sense comes part comes from, but cool :) | |||
clkao | ok. let me fsck the dump now | ||
TreyHarris | audreyt: *grin* honestly, i think the feedback was mostly that you're an engaging speaker talking about exciting technology. | 02:08 | |
audreyt | Review welcome for Consili talk: pugs.blogs.com/talks/conisli-ofun.pdf | ||
Portuguese vrsion: pugs.blogs.com/talks/conisli-ofun-pt.pdf | |||
lambdabot | tinyurl.com/yys387 | 02:09 | |
audreyt | TreyHarris: *blush* :) | ||
clkao | audreyt: do you mention hackerkitchen? | 02:10 | |
audreyt | I compared cooking to hacking free software | ||
svnbot6 | r14579 | fglock++ | Pugs-Compiler-Rule - added test contributed by ashleyb++ that makes PCR hang; no solution yet | ||
audreyt | note this is a short talk, with .pt interpreters, so I effectively only have <30mins | 02:11 | |
eviltwin_b | bah. nobody's come up with a cscope-like program for haskell yet, I take it (or so google suggests to me) | ||
audreyt | hence 34 slides, not 340 slides :) | ||
obra | audreyt: nice talk | 02:12 | |
audreyt | obrigada | ||
obra is about to dive into ODing on Jifty::DBI::Schema | 02:14 | ||
obra is afraid to warp his head like this | 02:16 | ||
clkao | audreyt: i tried a pushmi-powered relayed sync today. it's bloody fast | ||
audreyt: all you need is a mechnism to sync the authn file and you can have people providing distributed repository in your local continent. svk mi --relocate Just Works | 02:18 | ||
audreyt | you mean it's finally like darcs? | 02:19 | |
:D | |||
all I care is that "svk ci" to mipath will suddenly consume 50% bandwidth | 02:21 | ||
clkao | oh that's not happening yet | ||
but oson | |||
audreyt | if that happens, that will improve my life significantly | ||
clkao | are commits really slow for you ? | ||
audreyt | yes they are | ||
for some reason the fetch part seems slower | |||
stevan | audreyt++ # another execellent talk | ||
audreyt | when committing to openfoundry | ||
stevan: hey :) thanks | |||
02:21
gnuvince joined
|
|||
clkao | yes | 02:21 | |
because ra aren't reused | |||
sucks ass | 02:22 | ||
audreyt: remind me when i get back to london. if i didn't finish it on the flight | |||
audreyt | ok | 02:23 | |
remind me to remind you if I didn't hivemind you tomorrow | |||
clkao | we need irc to hiveminder bot | 02:24 | |
audreyt | we can call the bot "mindya" | 02:25 | |
02:31
buubot joined
02:33
buubot joined
02:34
buubot joined
|
|||
eviltwin_b tries a make clean and full rebuild because $*BASETIME still gets the old value --- even after both adding the filter and even hacking the Prelude | 02:39 | ||
audreyt | eviltwin_b: you need to rm blib6/lib/*yml | ||
eviltwin_b | (only in the test script... works from command line even with Prelude loaded) | ||
audreyt | and then make again | ||
no full rebuild needed I think. | |||
eviltwin_b | well, I think I was due for a nuke anyway | ||
for a "this ought to be an easy frst change" I sure ended up touching a lot of stuff I'm not sure I had any business touching :) | 02:41 | ||
www.ece.cmu.edu/~allbery/filetime.diff if you're curious | 02:42 | ||
I'm not firmly wedded to some of this stuff, e.g. where I moved the refactored time stuff | 02:43 | ||
clkao | appearantly there's empty revision somewhere that svnadmin load is skipping | ||
the dump is correct | |||
eviltwin_b | I should probably take time to mindmeld with the code base before I try anything else :) | ||
audreyt | maybe you just checkin :) | ||
eviltwin_b | I prefer having it pass some tests first | 02:44 | |
"it compiles, ship it" might be good enough for some hackers but I like having some confidence that it actually DTRT | |||
audreyt | that's cool too :) | 02:47 | |
but if you check it in some gnomes will automagically Make It Work... | |||
02:47
gnuvince joined
|
|||
eviltwin_b | (I have no illusions that this is final anyway, if nothing else I've only been doing Haskell for ~ 4 months and I'm sure my code is far from idiomatic except where I copy-and-pasted | 02:47 | |
02:58
esstone joined
03:00
weinig|food is now known as weinig,
mjk joined
|
|||
clkao | audreyt: what's r8696 in your mirror? | 03:04 | |
audreyt | sec | 03:05 | |
clkao | is openfoundry down again:? | ||
i can't do log from them | |||
fsck | |||
03:06
seano joined
|
|||
audreyt | it's not down for me | 03:07 | |
clkao | ok. just very longddeail | ||
audreyt | there's no r8696. | ||
clkao | but there is, on the pugs repository | 03:08 | |
i don't have it in my mirror either | |||
03:14
weinig is now known as weinig|zZz
|
|||
eviltwin_b has been the victim of garbage code often enough to think it's polite to avoid subjecting others to it :) | 03:17 | ||
audreyt | :) | 03:18 | |
journals up. see you tomorrow... *wave* & | |||
clkao | that sounds very familiar | 03:19 | |
audreyt | the rallying cry was actually "we can't depend on Data::Bind to implement Data::Bind" :) | 03:21 | |
clkao | haa haa | ||
eviltwin_b | woot! test passes. running a full test just to be certain I didn't hork something else | 03:40 | |
03:44
mako132_ joined,
justatheory joined
03:55
lisppaste3 joined
03:57
awwaiid joined
04:11
penk joined
04:20
nusgnaf joined
04:37
eggzeck[laptop] joined
04:41
cmarcelo joined,
cmarcelo left
04:45
penk joined
04:57
Psyche^ joined
04:58
SubStack joined
05:03
seano joined
05:07
penk joined
05:14
Psyche^ is now known as Patterner
05:33
scw joined
06:00
ludan joined
06:01
seano joined
06:13
buetow joined
06:31
baest joined
06:45
marmic joined
06:59
Yappo joined
07:06
holoway_ joined,
chip joined,
ingy joined,
TimToady_ joined,
dvorak joined,
hcchien joined,
tokuhirom joined,
clsung joined,
kolibrie joined,
revdiablo joined,
cmeyer joined
07:07
ludan joined,
rafl joined
07:11
cj joined
07:42
pnu joined
08:13
baest joined
08:27
RichardH joined,
buubot joined
08:29
bonsai joined
|
|||
RichardH | Just installed GHC 6.6 using debian unstable (two debs, 1 for compiler, 1 for mtl) but make bombs out with | 08:30 | |
Setup: Warning: The field "hs-source-dir" is deprecated, please use hs-source-dirs. | |||
Setup: error reading ./.setup-config; run "setup configure" command? | |||
Build failed: 256 at util/build_pugs.pl line 359. | |||
make: *** [pugs] Error 2 | |||
Can anyone helps | |||
08:34
iblechbot joined
08:38
bonsai joined
|
|||
mr_ank | RichardH: don't you get an error right before that? | 08:45 | |
probably from the network library? | 08:46 | ||
08:46
drrho joined,
bonsai is now known as bons
|
|||
mr_ank | RichardH: try installing libghc6-network-dev | 08:46 | |
RichardH | yes errors occur earlier. Didnt want to put too much junk into chat | 08:49 | |
trying the lib u mentioned | |||
araujo | mmm... | 08:50 | |
RichardH, you trying to build from clean sources? | |||
RichardH | a) cant find libghc6-network-dev (I am using Synaptic package manager and I have the debian unstable repository clicked) | 08:52 | |
b) I have just updated Pugs from svn repository, and run perl Makefile.PL | 08:53 | ||
08:53
tokuhirom left
|
|||
mr_ank | RichardH: i've been using this one: | 08:53 | |
deb haskell-unsafe.alioth.debian.org/archive/i386 . unstable testing stable | |||
lambdabot | Title: Index of /archive/i386, tinyurl.com/ybj7tt | 08:54 | |
mr_ank | Dunno if its of any help - i ran into a similar problem at first - it might be something different thou. | ||
09:01
gene9 joined
|
|||
RichardH | installing libghc6-network-dev (from haske-unsafe...) has not cured/affected the problem. The first error detected is | 09:10 | |
ghc-pkg: /home/richard/development/pugs/third-party/installed/packages.conf: parse error in package config file | |||
09:30
nipotan is now known as nipotaway
09:40
penk joined
09:41
ilogger2 joined
09:42
arguile_ joined,
Debolaz joined,
thepler joined,
Eidolos joined
09:43
frankg joined
09:44
badalex joined
09:45
SamB joined
|
|||
RichardH | Further to pugs install problem, cleaning is the key. Hence, if pugs was first built and installed with GCH6.4, then CGH6.6 is installed, user has to issue sudo make clean, then perl Makefile.PL, etc. | 09:45 | |
09:46
gugod joined,
clsung joined
09:51
cj joined,
integral joined
09:56
hcchien joined
10:06
amv joined
10:17
gaal joined
10:21
theorbtwo joined
|
|||
cognominal | S06.pod:718 sub compare (|$args Num $x, Num $y --> Bool) { ... } # missing comma apparently | 10:22 | |
10:22
penk joined
10:26
broquaint joined,
nnunley joined
10:42
eggzeck[laptop] joined
10:51
eggzeck joined,
chris2_ joined
10:52
pjcj joined
|
|||
svnbot6 | r14580 | audreyt++ | * RichardH++ noticed that Pugs::Runtime::Value's MANIFEST | 11:04 | |
r14580 | audreyt++ | shouldn't be in repo. | |||
11:05
_fab joined
11:06
anatoly joined,
anatoly is now known as anatolyv
11:19
qmole joined
11:31
frederico joined
11:33
Yappo joined
11:47
ruoso joined
12:12
kcwu joined
12:21
OppaiSan joined,
OppaiSan left,
Psyche^ joined
12:22
OppaiSan joined
12:23
OppaiSan left,
tokuhirom joined
12:24
elmex joined
12:29
Psyche^ is now known as Patterner
12:30
justatheory joined
12:42
mr_ank joined
12:48
lambdabot joined
12:58
mugwump_ joined
13:21
kanru joined
|
|||
anatolyv | ?eval { $a = 5; my $a; } | 13:40 | |
13:42
rgs joined
13:47
cmarcelo joined
13:50
xinming joined
13:53
tokuhirom joined,
marmic joined,
miyagawa_ joined,
meppl joined,
Kattana joined,
takesako joined
13:54
takanori_ joined,
cognominal joined,
beppu joined,
cmeyer joined,
spoop joined
13:55
dmq joined,
wolverian joined,
xinming joined,
wilx joined,
statico joined,
cmarcelo joined,
woremacx joined,
lambdabot joined,
SubStack joined
13:56
Juerd joined,
audreyt joined,
leo joined,
plural joined,
anatolyv joined,
qmole joined,
webmind joined,
chip joined,
pmichaud_ joined,
PerlJam joined,
buu joined,
scw joined,
revdiablo joined,
kanru joined,
hcchien joined,
tcliou joined,
kalven joined,
jiing joined,
elmex joined,
Yappo joined,
bennymack joined,
cmarcelo joined,
sri joined
13:57
lumi joined,
buubot joined,
prism joined
14:02
mtve joined
14:32
Eimi joined
14:38
eviltwin_b joined
|
|||
cognominal | ?eval my Dog $spot; say $spot | 14:38 | |
eviltwin_b | no evalbot, looks like | 14:39 | |
cognominal | yup | ||
it should print "Dog". I hate that. | |||
like the "undefined" that crops everywahre in my js strings... | 14:40 | ||
I have the habits of any kind of undef to stringify to "" | |||
14:42
chris2_ joined
|
|||
audreyt | say Dog; # prints '' | 14:43 | |
that is also surprising, though. | |||
because in p6 | |||
my Dog $spot .= new; | |||
is the p5 equiv | |||
my Dog $spot = 'Dog'; | |||
$spot = $spot->new; | |||
and when you print $spot you do get 'Dog'. | |||
14:43
chris2_ is now known as chris2
|
|||
cognominal | btw: <cognominal>S06.pod:718 sub compare (|$args Num $x, Num $y --> Bool) { ... } # missing comma apparently | 14:45 | |
...again, but a != one | 14:46 | ||
14:46
idiotmax joined
14:47
norageek joined,
_fab joined
|
|||
audreyt | I thought I committed it? | 14:48 | |
14:48
lambdabot joined
|
|||
audreyt | it now reads | 14:48 | |
sub compare (|$args, Num $x, Num $y --> Bool) { ... } | |||
cognominal | ho, sorry | 14:49 | |
audreyt | np :) | ||
14:50
rafl joined
14:51
cj joined,
cookys joined,
jrockway joined,
TreyHarris joined
14:52
nothingmuch joined
14:53
pasteling joined
14:55
xinming_ joined
14:56
ludan joined
15:01
autark joined,
integral joined,
rlb3 joined,
clsung joined
15:02
obra joined,
weinig joined,
rafl_ joined
15:03
GeJ joined
|
|||
audreyt | freenode is under DDoS so the bots are off | 15:04 | |
mr_ank grabs the shotgun | 15:05 | ||
integral | hmm, we should keep them in the fridge then | ||
mr_ank | who do i have to shoot? how D is the DDos? | ||
15:06
Grrrr joined,
anatoly joined,
anatoly is now known as anatolyv
15:08
fglock joined,
evalbot_r14583 joined
15:09
svnbot6 joined
|
|||
audreyt | whew. | 15:09 | |
anatolyv | the DDos is over? | 15:10 | |
svnbot6 | r14584 | audreyt++ | * MiniPerl6 AST: Add "While" and "Leave" nodes. | ||
15:12
[particle] joined
15:15
buetow joined,
vel joined
|
|||
audreyt | seems so | 15:17 | |
svnbot6 | r14585 | audreyt++ | * More richly annotated MiniPerl6 AST | 15:19 | |
15:20
penk joined
|
|||
svnbot6 | r14586 | audreyt++ | * MiniPerl6: Follwing NewExp, Split Control from Exp. | 15:22 | |
15:23
iblechbot joined
15:25
ofer0 joined
15:31
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
avar | audreyt: there was some talk by some perl6 people to rewrite mediawiki in perl 6, remember anything about that? | 15:33 | |
svnbot6 | r14587 | fglock++ | MiniPerl6 - temporarily added v6's grammar as-is | 15:41 | |
15:51
camenix joined
|
|||
audreyt | avar: on perl6-users? faintly | 15:53 | |
15:53
rodi joined
|
|||
avar | thanks' for the google seed, I'll read it:) | 15:55 | |
the $1k prize for a wiki in perl6 one? | |||
[particle] | i think i remember that, too. but i think getting rakudo.org up satisfied their immediate needs | ||
avar | how complete are the various grammar implementations currently? | 15:57 | |
i.e. to write something like a parser for the mediawiki syntax | |||
15:58
clkao joined,
elmex joined
|
|||
[particle] | avar: that should be implementable currently | 15:58 | |
avar | Are both the parrot and Perl 6 implementations rather complete? | 15:59 | |
[particle] | they're pretty darned good. | 16:00 | |
PerlJam | avar: reasonably so. | ||
svnbot6 | r14588 | fglock++ | MiniPerl6 - Expression.pm is now empty; it will be replaced by a pure-rules precedence parser | ||
PerlJam | avar: Parrot is quite useable. Pugs is also, but still slowish | ||
avar | A lot of stuff in the mediawiki syntax depends on being able to callback to php stuff, so there needs no be some C glue that handles calling php functions, e.g. to see if an article exists | 16:01 | |
16:01
hexmode joined
|
|||
avar | I expect that there's support for that too (the C glue part) | 16:02 | |
[particle] | yes, in parrot. | ||
i expect in v6, too, since its vm is perl5 | |||
PerlJam | yeah but the parrot glue is nicer than XS :) | 16:03 | |
[particle] | much nicer! | ||
16:04
smash_ joined
|
|||
[particle] | but chromatic's P5NCI is promising, if incomplete | 16:04 | |
avar | PerlJam: example of parrot glue somewhere? | ||
avar has written quite a bit of XS | 16:05 | ||
[particle] | svn.perl.org/parrot/trunk/runtime/p...ry/SDL.pir | 16:06 | |
lambdabot | tinyurl.com/wa6gg | ||
[particle] | take a look at eg. the _init_video sub | 16:07 | |
16:07
weinig is now known as weinig|bb,
weinig|bb is now known as weinig|bbl
|
|||
[particle] | each binding is two lines (dlfunc/store_global) | 16:07 | |
there's a perl.com article on this... | 16:08 | ||
16:09
lichtkind joined,
nusgnaf joined
|
|||
[particle] | actually, two: www.perl.com/pub/a/2004/12/22/mod_parrot.html and www.perl.com/pub/a/2004/12/01/3d_engine.html | 16:10 | |
lambdabot | Title: perl.com: Introducing mod_parrot, tinyurl.com/koln5 | ||
avar | [particle]: your offering pleases kittie | ||
[particle] | :) | 16:11 | |
nothingmuch | @tell gaal moose! | 16:14 | |
lambdabot | Consider it noted. | ||
audreyt | 17:00 < PerlJam> avar: Parrot is quite useable. Pugs is also, but still slowish | 16:15 | |
clkao | audreyt: hi | ||
audreyt | well, for parsing mediawiki, I'd like a benchmark of PGE vs PCR in token/rul emode :) | ||
clkao: heya | |||
clkao | audreyt: new pugs.repo loaded in ~clkao on feather | 16:16 | |
empty revisions are now padded by pullyu | |||
audreyt | woot. how do sync it up? | ||
PerlJam: it's not yet clear to me that the ratchet parser of PGE is significantly faster than PCR... | |||
or any faster, in fact. | 16:17 | ||
clkao | audreyt: pullyu ~/.svk/local /mirror/pugs -r999@:HEAD | ||
audreyt | 999 ? | ||
clkao | it generates a dump from r999 that you can load onto existing one | ||
PerlJam | audreyt: Well, that's why I said "slowish" because PGE seems faster (pure anecdote) | 16:18 | |
audreyt | oh. so just need a wrapper | ||
clkao | i think it's currently 14581@ | ||
but are you turning openfoundry off to read only? | |||
audreyt | clkao: that's the plan | ||
clkao | so make openfoundry readonly, copy acl, svk up pugs.reo on feather. profit | 16:19 | |
want to make it so while i wait for laundry? | |||
audreyt | well we need to install commitbit. | ||
PerlJam | pugs repo is moving to feather? hooray! | ||
audreyt | and make sure it works | ||
PerlJam: yeah, finally | |||
clkao | audreyt: want to install it? | ||
audreyt | sure. I'll do that | 16:20 | |
but let me get ACL first, k? | |||
clkao | sure | 16:21 | |
let me see how fast i can implement ra_replay pipeline | 16:22 | ||
16:24
norageek joined,
rgs joined
|
|||
audreyt | clkao: so let me make sure what we need -- everyone's password will be reset | 16:26 | |
clkao: so let me make sure what we need -- everyone's password will be resi.e. randomized | |||
so I just get nick and email | |||
correct? | |||
oh and admiin_bit | 16:27 | ||
clkao | that should be okay | ||
basically people would just need to svn nswich --relocate or svk mirror --relocate | 16:28 | ||
audreyt | yup | ||
that's like, the precondition of switching | |||
make everybody resync 14000 revs is, uhm, dire | 16:29 | ||
you don't have a RealName field? | |||
in the model I mean | |||
clkao | i don't recall so | ||
audreyt | assuming we don't need it | ||
16:42
weinig joined
|
|||
audreyt | ok, downloading. eta 20min | 16:45 | |
installing commitbit now | |||
clkao | cool | 16:46 | |
audreyt | do I reinvite everybody via email, or is there a way to trigger random pass regen without sending lotsa mails? | 16:47 | |
clkao: what's the DAV recipe? do I just Include httpd.conf ? | 16:51 | ||
16:53
knewt joined
|
|||
audreyt | obra++ clkao++ # CommitBit gets Very Real Very Quick | 16:54 | |
this JFDI thing is infectious... | |||
clkao | oh ya | 16:59 | |
17:02
diakopter joined
|
|||
obra | audreyt: oh? you have commitbit running? cool! | 17:04 | |
I'm sorry that we had trouble getting things going on the perl.org box | 17:05 | ||
I've not heard a peep from robrt in a few days | |||
audreyt | yeah, so I guess that's timeout for now | ||
we can always pushmi later | |||
obra | :) | 17:07 | |
or work on distributed jifty apps | |||
17:09
kanru joined
17:11
cmarcelo left
17:16
[smash] joined
|
|||
audreyt | clkao: I got the ACL. | 17:32 | |
converting to .sql now... | |||
with perl6 :) | 17:33 | ||
17:34
araujo joined
17:35
timbunce joined,
timbunce left
|
|||
audreyt | commitbit set up and running on feather. pondering running it on port 80... | 17:37 | |
obra | use fcgi? | ||
audreyt | or speedycgi | ||
probably fcgi. | |||
17:38
xinming_ is now known as xinming
17:39
timbunce joined
17:40
beppu joined,
Odin- joined
|
|||
obra | I do not trust speedycgi | 17:42 | |
but I'd love a scgi handler for jifty | |||
also, basedo n clkao's experiences, I think I want a perlbal | |||
17:46
RHainsworth joined
17:51
bernhard joined
|
|||
pasteling | "audreyt" at 200.150.229.66 pasted "ppencode for cmarcelo" (142 lines, 1.8K) at sial.org/pbot/20815 | 18:01 | |
audreyt | @tell cmarcelo when you get cycles after lunch... sial.org/pbot/20815 please :))) | ||
lambdabot | Consider it noted. | ||
audreyt | nap, bbiab & | 18:02 | |
18:02
anatoly joined,
anatoly is now known as anatolyv
18:24
penk joined
18:38
idiotmax joined
18:39
masak joined
18:45
miyagawa_ joined
18:47
c6rbon joined
|
|||
dmq thinks about prunes | 18:51 | ||
18:51
xerox joined
18:53
rodi joined
19:11
penk joined
19:12
Gothmog_ joined
19:15
TSa joined
19:29
Psyche^ joined,
Psyche^ is now known as Patterner
19:30
TreyHarris joined,
ofer0 joined,
buubot joined
19:31
pasteling joined
19:34
obra joined,
clkao joined,
idiotmax joined
19:40
perlbot joined
19:52
eggzeck[laptop] joined
19:55
DHGE joined
20:07
mauke joined
20:16
SCalimlim joined
20:18
fglock joined
20:21
jferrero joined
20:24
_fab joined
20:31
cmarcelo joined
20:32
cmarcelo_ joined
20:33
cmarcelo joined
|
|||
audreyt | clkao: in your Makefile.PL | 20:34 | |
name('Text-Password-Pronouncable.pm'); | |||
is that intentional? surely you mean s/.pm// ? | |||
20:38
shobadobs joined
|
|||
anatolyv | audreyt: is { supposed to ideally be a macro, or is it hardcoded into the lang? I'm having trouble figuring it from the S??. | 20:40 | |
audreyt | which { do you mean? :) | ||
anatolyv | audreyt: I mean, if it's a macro, I'm not seeing which category it fits in to make if expr { } etc. work. | ||
the one that opens any code block :) | 20:41 | ||
audreyt | it's circumfix:<{ }> | ||
anatolyv | but wouldn't that mean that if 2<3 say "moose!" should also work? | ||
[particle] | audreyt: pmichaud is working on past Right Now | ||
audreyt | cool | 20:42 | |
[particle] | i pointed him to src/PIL/Container.hs, any other pointers? | ||
audreyt | may be fun to compare that to svn.openfoundry.org/pugs/v6/v6-MiniPerl6/AST.pm | ||
lambdabot | tinyurl.com/yxs8nk | ||
audreyt | that's the most relevant | ||
since fglock and I are bootstrapping PCR into Perl6 with that | 20:43 | ||
[particle] | great! | ||
audreyt | and I think it's a pretty solid robust design | ||
based on previous PIL1 and PIL^N lessons | |||
the important thing there is unpacking and pattern matching is very flexible | 20:44 | ||
TimToady_ | anatolyv: nope, see S02:236 | ||
audreyt | and there is only binding, no assignment | ||
and there is only lexical scope, no package scope | |||
20:45
TSa joined
|
|||
[particle] | hrmm no assignment, interesting | 20:45 | |
audreyt | it's just you write assignment with := | ||
not with = | |||
no two-level assignment | |||
and no list context | |||
is really the key point | |||
since := carries no context | 20:46 | ||
[particle] | ok, so like your blog post mentions | ||
audreyt | and = always carries | ||
yes. | |||
anatolyv | TimToady_: er, 236 is the line number? the para that starts with "This is an unchanging deep rule, but the surface ramifications of it"? | ||
TimToady_ | yes. | 20:47 | |
20:47
TimToady_ is now known as TimToady,
ofer0 joined
|
|||
clkao | audreyt: hi | 20:49 | |
audreyt: right no .pm, sorry | |||
anatolyv | TimToady: suppose I write my own circumfix:<~ ~> (or whatever) macro that produces the same subtree of AST (or whatever) that circumfix:<{ }> produces - will "if" and "for" automatically recognize it? or is {} hardcoded into them? that's my question, I guess. | ||
TimToady: the place where the compiler expects { after the test expression in if is not a control_statement place, but neither is it possible to have just any Expression there, obviously. So what kind of place is it, lexer-wise? | 20:50 | ||
20:56
Aankhen`` joined
|
|||
TimToady | it is generally where an operator is expected, not a term. the magic is actually that {...} refuses to be a term at the top level within the conditional, so must be parenthesized somehow. | 20:57 | |
dmq peeps in | 20:58 | ||
did you get a chance to think about that stuff i mentioned yesterday TimToady? | 21:00 | ||
anatolyv | TimToady: sorry if I'm being tense, but I don't seem to understand on what basis any other operator at that place, e.g. any prefix operator, instead of {}, will be rejected. | ||
TimToady | dmq: a little, no conclusions, but wondering if we're not missing a generalization somewhere. | 21:01 | |
21:01
SubStack joined
|
|||
TimToady | anatolyv: a prefix operator is not expected where an "operator" is expected, but where a term is expect. | 21:01 | |
the operator/term expectation is really more a "don't expect a term, expect a term" distinction | 21:02 | ||
clkao | audreyt: 0.26 on cpan | ||
dmq | Well, ive spoken with someone else about this, and he too was surprised by my commit, so im trying to find a better name. | ||
And im planning on renaming the one i called error commit, also because both you and he thought it was weird. (hes a prolog person) | 21:03 | ||
I was thinking (*NEXT) (*CUT) (*COMMIT). | |||
anatolyv | TimToady: what can appear at a place where an operator can appear but not a term? Can this be formalised in terms of what <S02:2323> claims about subsets of grammatical categories possible at each point? | 21:05 | |
TimToady | when I complain about a missing generalization, I mean it sounds kind of like having different verbs for escaping out of different kinds of loops. | ||
dmq | yes, i understand. | ||
i agree. sortof. | |||
21:06
polettix joined
|
|||
audreyt | you mean "break" and "last"? :) | 21:06 | |
dmq | i think one of the influences on my thinking is something that jeffery verbalized well in MRE2. He explained how "NFA" matching engines really have two layers. | 21:07 | |
TimToady | anatolyv: yes, that's exactly how the lexer is supposed to work, in sets of grammatical categories available at any particular point. | ||
audreyt | clkao: password is plaintext in CB? | ||
dmq | the first is what he calls the transmission, and the second is the engine. Which matches up nicely with perls intuit_start/find_by_class stuff, and the real regmatch() structure. | 21:08 | |
and i think it can be useful to control both independently. | |||
clkao | audreyt: audreyt i think just plaintext | ||
audreyt | k | ||
dmq | and the three, plus the two more i had in mind (*MARK:name) (*POPMARK:name), are all pretty different. | 21:09 | |
TimToady | in P6 we controll the transmission with adverbs like :overlap and :exhaustive, rather than with internal backtracking tricks. | ||
dmq | but then you lose the ability to do something like what cut does. | 21:10 | |
anatolyv | TimToady: understand that; trying to understand what are the grammatical categories that the lexer, coming to "{" in the "if" construct, considers available. Since { is a circumfix macro, "circumfix" must be one such category, but "prefix", according to you, is not one. | ||
dmq | or the ability to make selective on a submatch. | ||
audreyt | clkao: there's no way to initialize the admin account other than manual insertion? | 21:12 | |
that's somewhat backwards | |||
TimToady | anatolyv: depends on where you are in the if construct. | ||
audreyt | maybe a config to set root? | ||
dmq | like how would you do something like: "once you have seen this ignore everything you have seen up until now and try again" | ||
TimToady | in the normal block place, only an operator is expected because the preceding thing was a term. | ||
and because the block requires whitespace before it, it cannot be a postfix. | 21:13 | ||
clkao | audreyt: i don't know. api calls? | ||
audreyt | maybe. or just Admin Console | ||
I'll deal | 21:14 | ||
TimToady | if the conditional sees a {...} in the term position within the conditional, the "is parsed" of circumfix:<{ }> rejects it specially. | ||
other circumfixes do not have this property, so parens and square brackets still work, for instance. | 21:15 | ||
audreyt | this is conveyed by a state carried during the parse | ||
TimToady | so to answer your underlying question, no, you can't derive the behavior merely from its circumfixhood. | 21:16 | |
anatolyv | TimToady: hmm. I understand how the specialness of {} handles rejecting {...} in the top-level of a conditional. | 21:17 | |
dmq | (*ADVANCE) (*PRUNE) (*COMMIT) ? | ||
anatolyv | TimToady: (thanks for explaining that) | ||
TimToady: what I don't seem to understand is what's the specialness of {} that makes it possible only for {} to appear in the block position of the construct, and not, say, some other circumfix whatsoever. | 21:18 | ||
audreyt | clkao: when you rename something an error occurs instead of a redircet | ||
try rename repo | |||
this is a general jifty bug :) | |||
anatolyv | TimToady: or some other kind of operator, except I don't really understand what you mean by "operator", because I'm trying to think in terms of the categories listed in S02, i.e. term, quote, prefix, postfix etc., and I don't understand which of these together make up what you refer to as not-a-term-"operator". | 21:19 | |
TimToady | I say it's expecting an operator there, but {...} is really a term, and this is really a violation of the basic Perl parsing philosophy that term/term should always be a syntax error. | 21:20 | |
so we don't want to extend it to other terms in "operator" position | |||
21:20
frederico joined
|
|||
TimToady | when I say "operator" in this context, it means mostly infix | 21:21 | |
or some kind of terminator like a right paren | |||
it's the meaning of operator that is just "non-term" | |||
that is, if there were a term right here, it would be a syntax error. | 21:22 | ||
anatolyv | TimToady: what's a term? a (complete sub-)expression? | ||
TimToady | but you see that "if $foo {...}" really has two terms in a row, and C gets away from that by requiring non-expression parens around the conditional | ||
obra | audreyt: there's a bundled cli tool to set up an admin account | ||
audreyt | oh hey, bin/create_admin/ | 21:23 | |
obra ponders muxing a wiki into commitbit | 21:24 | ||
audreyt | also when repo is nonexistent | ||
it doesn't run svnadmin to create or warn | |||
but that's fine | |||
obra | ...it should | ||
TimToady | anatolyv: more or less, but the lexer doesn't think in chunks that large. | ||
obra | (that may be "it doesn't check the faulure of svnadmin") | ||
TimToady | it only knows that some things can start one of those, and some things can't. | 21:25 | |
the things that can start on of those we call terms (and prefix operators) | |||
anatolyv | TimToady: and circumfix as well? | ||
TimToady | yes, those too | 21:26 | |
which is why postcircumfix is a different category | |||
pasteling | "cmarcelo" at 200.150.229.66 pasted "audreyt => ppencode in pt_BR.. first shot." (163 lines, 2.5K) at sial.org/pbot/20820 | ||
audreyt | cmarcelo++ | ||
anatolyv | TimToady: so the lexer would normally expect an operator (to continue the term that is the condition), but it sees {...} which is a term, being circumfix, and the special magic is that "if" instructs the lexer to still accept a term at this point, but not just any old term, but specifically one that starts with circumfix:<{ }>? | 21:31 | |
TimToady | yes | 21:32 | |
21:32
cmarcelo joined
|
|||
TimToady | this would be a lot easier if curlies weren't so overloaded... | 21:32 | |
but there are a number of cases where we parse statements differently from expressions, and this is one of them. | 21:33 | ||
anatolyv | TimToady: wow, thanks a million. It's really clear now. | 21:34 | |
TimToady: if you think this explanation of the specialness should be in S02 somewhere, I'll be happy to write up and suggest a patch. | 21:35 | ||
TimToady | sure | ||
anatolyv | anatolyv: I've pored over S02 trying to understand this, but it only explains how {...} is not accepted in term position in the condition. | 21:36 | |
audreyt | obra: so, it looks like we need to resend invite mail to everybody | ||
anatolyv | er, now I'm talking to myself :) | ||
audreyt | obra: because that's the only way to convey password | ||
any better suggestions? | |||
lichtkind | TimToady++ for inventing captures (i hope i will capture this idea fully) | ||
TimToady | well, it was several of us working it out together | 21:37 | |
obra | audreyt: I don't have a good other plan | ||
TimToady | I mostly just named them and noticed they were similar to Matches. | ||
obra | audreyt: did you find a way to get their password reverse engineered? | ||
audreyt | don't we require plaintext? | 21:38 | |
won't help if I get the md5 digest, right? | 21:39 | ||
obra | not really, no, alas :/ | ||
audreyt | and I'm really afraid of storing noncomputer generated plaintext password | ||
in a sqlite database on feather | |||
obra | so. one other option | ||
is to disable the svnserve stuff and store the md5s | |||
it should only be a few lines of hackery | 21:40 | ||
audreyt | I think we'll use dav anyway | ||
will that help? | |||
lichtkind | TimToady maybe i wasnt there but what stunnes me that this idea seems fresh like an baby but , like we say in german, dunno any other language that knows about that | ||
obra | yes | 21:41 | |
then the plaintext requirement goes away | |||
commitbit just needs a bit of hacking to create a mode where we store md5 | |||
audreyt | ok. I can get the MD5 easily | ||
obra sends you a commitbit commitbit | 21:42 | ||
TimToady | well, it just kinda falls out of the view that binding to a Signature is a kind of pattern matching, so if you're pattern matching against something, maybe that something has a name. | ||
and it was also kind of forced by our policy of not committing to the binding of a capture until the last moment. | 21:44 | ||
svnbot6 | r14589 | fglock++ | MiniPerl6 - cleanup commit error | ||
TimToady | so we needed some way to do that lazily. | ||
audreyt | it's a method call without the method, and without the call :) | 21:45 | |
TimToady | and it just seemed to me that Arglist was a stupid name... | ||
it's the grin. | |||
audreyt | := Chershire | ||
Cheshire, even. | |||
TimToady | a Capture is a kind of project that you're putting out for bid to see which method will do it the cheapest. | 21:46 | |
lichtkind is writing all that down for TimToadys Memoares :), ähm theory chapter for perl6tut | |||
TimToady | where "cheapest" includes the amortized costs of all potential damages | 21:48 | |
which is why it's cheaper to call more closely related methods. | 21:49 | ||
Maybe that's why mayors are always awarding contracts to their relatives... | |||
svnbot6 | r14590 | fglock++ | MiniPerl6 - added a partial (but working) MiniPerl6 parser | 21:50 | |
TimToady | it's a MiniPerl<mumble> parser :) | 21:51 | |
audreyt | TimToady: MP6 allows some weird binding constructs | 21:52 | |
sub f ({ foo => $x[0], bar => $x[1] }) { ... } | |||
for example. | |||
it's very handy, but entirely sure of sanity | |||
21:52
hexmode joined
|
|||
audreyt | s/entirely/not entirely/ | 21:52 | |
lichtkind | TimToady yes i grok that slowly and itts also coherent to have such thing if we already have an smartmatch operator, unfortunatly i dont understand your jokes fulle since its not my mother tongue | ||
anatolyv | next silly question. IIUC sigils specify the container type, that is "my $foo" is Scalar, "my @bar" is Array etc. But is that _all_ they do? That is, if I write "my $foo is MyScalar" and "my @foo is MyScalar", do I get identical behavior with merely (in the latter case) an inappropriate name? | 21:57 | |
audreyt | anatolyv: in calls and assignment, they also serve as context hinters | 21:58 | |
S03:162 | |||
the @ and % sigil has an implicit list() around it | |||
added automagically | |||
in rvalue positions that are determined to be slurpy | 21:59 | ||
in lvalue position for assignment, they cause a different infix:<=> macro to fire | |||
such that the rhs is parsed as listop, not normal infix rhs term | 22:00 | ||
and also inflicts the said implicit list() for the arguments supposed in the listop rhs. | |||
TimToady | which is why we can say @foo = 1,2,3 in Perl 6 | ||
audreyt | that's all they do | ||
anatolyv | audreyt: but apart from that (did read the S03:162 thing), the actual behavior of the container is completely determined by the MyScalar class, right? | ||
TimToady | whereas Perl 5 requires @foo = (1,2,3) | ||
audreyt | anatolyv: that is correct. | ||
in fact, the $ sigil in rvalue position cause an implicit item() around it. | 22:01 | ||
anatolyv | audreyt: is it specified in S?? or wherever how MyScalar actually implements that behavior? That is, what its methods should be etc.? | ||
audreyt | while the & sigil does not do that. | ||
well, minimally it should implement infix:<=>, item and list | 22:02 | ||
but no, this is not mentioned anywhere. | |||
actually you can omit the list method | |||
and count on the autofallback | |||
where everything is a list of one item | 22:03 | ||
it's also possible that they should be called ITEM and LIST :) | 22:06 | ||
after VAR | |||
svnbot6 | r14591 | audreyt++ | * recover the misdeleted AST.pm | ||
audreyt | to avoid conflict with ordinary method namess. | ||
22:06
rodi joined
|
|||
audreyt | same motivation as the renaming of .meta .type .variable etc | 22:07 | |
anatolyv | ah, right. | ||
audreyt | but the idea is really simple | ||
everything is an object if you only consider binding with full "is rw" semantics | |||
once you consider rvalues, you need the ITEM to convert a Scalar of Int into a Int | 22:08 | ||
ITEM on a Int is just itself | |||
once you consider rvalues made in list context | |||
then you also need LIST to convert an Hash into a List of Pair | |||
since ITEM of a Hash is just itself and you don't want that. | |||
and that's all, actually. VAR() is a noop to inhibit the autoannotation of ITEM and LIST. | |||
end of (hopefully making some sense) explanation | 22:09 | ||
anatolyv | audreyt: what I'm hazy on is, if I have something like "my MyType $foo is MyClass", which of the two classes, MyType and MyClass, is responsible for implementing which behavior we expect from $foo. From what you're saying I gather that all MyClass is supposed to do is handle assignment and context transformations. | ||
audreyt | yes. and it receives a constraint of yType | 22:10 | |
MyType | |||
which it is free to ignore | |||
22:10
shobadobs_ joined
|
|||
audreyt | also it will be assigned a ::MyType protoobject upfront | 22:10 | |
anatolyv | audreyt: all method calls on $foo, whatever they are, go to MyType. All operators on $foo.. well, I don't know, I guess the builtins only specialize to Int Str etc. and you need to write others. | ||
audreyt | which follows the normal assignment rules | ||
22:10
Limbic_Region joined
|
|||
audreyt | all method calls on $foo normally goes to whatever MyClass.ITEM says. | 22:10 | |
anatolyv | oh. | 22:11 | |
audreyt | usually it's a MyType object. but you never know. maybe it's a derived class. | ||
callMethod =<< readIORef dollarFoo | |||
in haskell speak. where readIORef is the ITEM part | |||
so if you say | |||
my $moose is Int := 123; | 22:12 | ||
then you don't have a Scalar | |||
and assigning into $moose fails with Int.infix:<=> not found. | |||
anatolyv | I can say that?? | ||
whoa. | |||
audreyt | but you can use that in rvalue | ||
because Int.ITEM is just identity | |||
you can also Int.LIST into a seq of one item | |||
which is also identity | |||
this is how we implement subroutine bindings | 22:13 | ||
anatolyv | can I say my $moose is int8 := 3; ? | ||
audreyt | sub f (Int $x) { ... } | ||
here $x is Int! | |||
not Scalar of Int | |||
because by default unless you say "is rw" we don't alloc a Scalar | |||
and as such $x=1 fails because Int doesn't handle assignment. | |||
and yes, it'd be possible to say it's a int8 :=3. | |||
still making sense? :) | 22:14 | ||
anatolyv | yes, perfectly :) | ||
audreyt | (patch very much welcome to S* to make it clear to non#perl6 people as well :)) | ||
anatolyv | so when I call f($expr), $expr is computed and an Int object is := to it, which will fail at runtime if... er, if it can't be coerced into Int? | 22:15 | |
audreyt | well, ITEM($expr) is calculated | ||
then yes, if ::Int(ITEM($expr)) fails, it's a runtime error | 22:16 | ||
we can sometimes lift that to compile time | |||
but in general it's a runtime check. | |||
anatolyv | audreyt: this binding part, where we don't allocate a Scalar but only an Int if it's not rw - should be part of S* or pugs-specific? | 22:17 | |
TimToady | though with luck it's already checked by the MMD dispatch | ||
audreyt | well, the spec only says it must reject assignment | ||
it doesn't say that WHAT(VAR($x)) must be Int | |||
and not ScalarReadOnly | |||
I think it's deliberately vague | |||
anatolyv | yeah | ||
audreyt | to allow different strategies | ||
but I'm not TimToady so I don't know :) | 22:18 | ||
TimToady | what makes you think TimToady knows? :) | ||
audreyt | TimToady often knows if it's deliberately vague or accidentally vague | ||
or just vaguely vague. | |||
TimToady | but I do accidental things deliberately all the time... | ||
audreyt | mmm Monte Carlo | 22:19 | |
TimToady | I suppose the reverse also happens occasionally. | ||
[particle] | mmm accidental deliberation | ||
anatolyv | audreyt: and to have MyClass as a custom array or a hash, all I do is implement circumfix:<[ ]> etc. in it? | 22:20 | |
audreyt: and assigning List values to it, I guess. | |||
audreyt | that is correct. | ||
TimToady | postcircumfix, surely | 22:21 | |
audreyt | its infix:<=> will always expect a *@foo | ||
anatolyv | er, sorry, post, yes. | ||
audreyt | because the metamagical parser ensures it's a flattened slurpy list on rhs | ||
and the actual signature better agree. | |||
anatolyv | audreyt: what happens now in pugs when I write "my $x = (1,2,3)"? | 22:22 | |
audreyt: is that the correct behavior (that it works)? | 22:23 | ||
audreyt | sure | ||
it evaluates infix:<,> with three arguments | |||
which creates a Seq object | |||
well, for sake of discussion it's a List object. | 22:24 | ||
and then it calls ITEM() on it | |||
which is identity operation | |||
then it triggers Scalar.infix:<=> | |||
specifically | |||
VAR($x).infix:<=>(ITEM(::List(1,2,3))) | 22:25 | ||
we have this weird magic in Scalar = | |||
that checks if the incoming thing isa List. | |||
if it is it allocates an Array | |||
then call Array.infix:<=>(LIST(::List(1,2,3))) | |||
svnbot6 | r14592 | fglock++ | MiniPerl6 - implemented "Apply" node | ||
audreyt | and then put that Array object into $x. | 22:26 | |
this is weird special Scalar magic | |||
that doesn't happen anywhere else. | |||
it's documented vaguely in many places :) | |||
TimToady | it's placed vaguely in many documents. | ||
[particle] | is it linked smartly? | 22:27 | |
anatolyv | audreyt: so after this is done, $x is still a Scalar container which contains an Array object. Right? Unlike "my @x = (1,2,3)" which will be an Array container which contains... ugh... many Num objects. | ||
audreyt | that is correct. | 22:29 | |
to be even more pedantically correct, the Array contains one part | 22:30 | ||
I mean one feed | |||
is Seq | |||
of Int | |||
22:30
limbic joined
|
|||
audreyt | (to see why that needs to be the case, consider my @x = (1, 2, 3, 4..*, 9..*, 'a'..*, =<>).) | 22:31 | |
anatolyv | audreyt: is there any practical differences between the two scenarios in terms of what ends up in $x versus @x? Both can be subscripted... their subscripts are lvalues... even WHAT seems to say the same thing for them. | ||
it just says ::Array in either case. | |||
audreyt | the difference is just if you want it to ITEM most of the time | ||
anatolyv | this is because WHAT actually acts on the ITEM of $x/@x? | ||
audreyt | or you want it to LIST most of the time. | ||
yes, that is correct. which is why you need WHAT(VAR()) | 22:32 | ||
to get the true container type. | |||
svnbot6 | r14593 | fglock++ | MiniPerl6 - implemented "Call" node | ||
audreyt | in which case one is Scalar and one is Array. | ||
because WHAT is implicitly WHAT(ITEM()) | |||
anatolyv | er. | ||
audreyt | and you need the VAR to shut the autoITEM down. | ||
anatolyv | "my $tt = 1,2,3; WHAT(VAR($tt));" tells me... ::Int! | 22:33 | |
audreyt | yes, because a lhs $ sigil parses as normal infix for = | ||
so you just said | |||
(my $tt = 1), 2, 3; | |||
anatolyv | "my $tt = (1,2,3); WHAT(VAR($tt));" tells me... ::Int! | ||
er | |||
wanted to paste that into pugs, sorry :) | |||
now it says ::Array again. | 22:34 | ||
audreyt | whew :) | ||
anatolyv | but not ::Scalar :) | ||
audreyt | [particle]: no. S02:1435 is the canonical sentence on that | 22:35 | |
yeah and that's abug :) | |||
anatolyv | whee! :) | ||
[particle] | huh? | ||
oh, smartlinks. gotcha. | 22:36 | ||
audreyt | and it's linked in t/var/autoref.t | ||
but not to that sentence | |||
but the para above that. fixes welcome | |||
[particle] is buried in parrot bugs | |||
svnbot6 | r14594 | fglock++ | MiniPerl6 - implemented "Bind" node | 22:37 | |
[particle] | ...they squirm, squawk, talk, and bite! | ||
anatolyv | audreyt: what does VAR produce when applied to $foo is MyClass - the actual object of MyClass that implements $foo? | 22:38 | |
Limbic_Region | yes, but do they go *splat* when you squash them? | ||
TimToady | hmm, I still think the "subset X of (A|B)" syntax is insane and should be "subset X of Any where (A|b)". | ||
[particle] | yes, which is why i *love* my job :) | ||
timtoady++ | 22:39 | ||
can subset foo where (...) imply 'of Any' ? | 22:40 | ||
TimToady | it could, but there's something to be said for forcing people to think about what the actual base type is. | ||
or ought to be... | |||
doesn't actually make much difference for objects, but it does when you start subsetting value types | 22:41 | ||
[particle] | true, but it would subset declarations less verbose | ||
TimToady | anyway, I'd definitely prefer "subset X where A|B" over "subset X of (A|B)" on the assumption we really are constraining to a list of possibilities, not constructing a type that is a set of types. | 22:48 | |
22:48
frederico joined
|
|||
TimToady | Junctional types are not really sane. | 22:48 | |
Junctional constraints are fine though. | 22:49 | ||
anyway, I just noticed that MiniPerl6 is using junctional type notation, and it bugged me. | 22:50 | ||
cognominal | speaking of junction, I have trouble to understand the remove method of Set.pm :( | 22:52 | |
I can't grasp what means none(@items) | |||
ha, ok. got it. | 22:55 | ||
TimToady | seems like it would have been a lot clearer with $_ !=== any(@items) | 22:56 | |
cognominal | indeed | ||
TimToady | or not $_ === any() | ||
since English tends to do that not raising. | 22:57 | ||
22:57
hexmode joined
|
|||
audreyt | TimToady: uhm. it shouldn't bug you | 23:01 | |
S06:1505 | |||
and 1507 | |||
it's canonicalized shorthand | |||
:) | |||
(and operationally equivalent) | 23:02 | ||
Anywhere you can use a single type you can use a set of types, for convenience | |||
specifiable as if it were an "or" junction: | |||
my Int|Str $error = $val; # can assign if $val~~Int or $val~~Str | |||
so seems to me that the "of (Foo|Bar)" is allowed when "of Foo" is allowed | |||
I finally found a sane encoding for tagged unions, so I'd like to not have that slilp :) | 23:03 | ||
*slip | |||
clkao: where is this pullyu program ? | 23:08 | ||
I'd like to sync up and send out some test invitation now | |||
TimToady | audreyt: but that's not really true. class Int|Str { method new {...} } is not allowed. | 23:10 | |
audreyt | Juerd: can I mkdir /var/svn for repo? | ||
TimToady | my Int|Str $x .= new is also a failure | ||
audreyt | TimToady: it's not a type there though. | ||
and I imagine in the second case $x can't be initialized | 23:11 | ||
so it's Undef.new | |||
and fails | |||
or it's Failure.new | |||
and fails | |||
but as a type (instead of proto) it's kosher | |||
i.e. it's not a junctional type, it's a union type | |||
TimToady | as a constraint it's kosher | ||
Juerd | audreyt: I prefer /data/svn | ||
audreyt | I'll use that then | ||
Juerd: you okay with feather being pugs's master repo? :) | 23:12 | ||
Juerd | audreyt: I'd like to keep system directories for their intended purposes, as per Debian packages. | ||
clkao | audreyt: svk/utils | ||
audreyt | clkao: ack | ||
TimToady | whether a constraint is a type is gonna depend on how we define "type" | ||
Juerd | audreyt: Depends how much bandwidth that'll use. Can you estimate? | ||
audreyt | no. what's the cap? | ||
svnbot6 | r14595 | fglock++ | MiniPerl6 - implemented "Lit::Object" node | 23:13 | |
TimToady | whatever. given a choice between implemented with "of" and unimplemented with "where", I'll pick implemented. :) | 23:14 | |
audreyt | :) | ||
also, where with junctions is almost impossible to make into compiletime check | |||
and of with unions is trivial to make into compiletime check | |||
which may also be awin | |||
(i.e. in MMD) | |||
Gothmog_ | generalization, I mean it sounds kind of like having different verbs for escaping out | 23:16 | |
of different kinds of loops. | |||
Oops, sorry. Doesn't mean to. | |||
audreyt suspects Gothmog_ is compiling lwall.quotes | 23:17 | ||
Gothmog_ | Probably. ;-) | ||
TimToady | but I'd like to preserve the notion that a subset type knows what it's base type is sufficiently that a generic routine could allocate a temporary value of that base type. | 23:18 | |
*its, even | |||
I could give you more quotes if you like. | |||
audreyt | TimToady: but isn't the algorithm as simple as running GCD on it? | ||
on them that is | 23:19 | ||
TimToady | in theory. question is whether it's worthwhile forcing the declarer of the subset to think about it. dunno... | ||
and in this particular usage it just seems to make the subset not very "sub" | 23:22 | ||
audreyt | Juerd: maybe we'll run it for a couple weeks and measure | 23:23 | |
Juerd: and if that proves to be a problem, then we move to perl.org or googlecode | |||
the url is always svn.pugscode.org | |||
and UUID will stay same | |||
so should be transparent to users | |||
Juerd | Okay | 23:24 | |
[smash] | svn.pugscode.org TTL at name servers it's even very low :) | 23:25 | |
5 hours | |||
audreyt | perfect for nomadic repos... | ||
or was that monadic... | |||
[smash] | true | ||
hehe | 23:26 | ||
nomadic i guess | |||
23:29
larsen_ joined
|
|||
TimToady | ?eval subset X of (Int|Str); my X $x; $x.WHAT | 23:30 | |
23:30
evalbot_r14583 is now known as evalbot_r14595
|
|||
evalbot_r14595 | Error: No compatible subroutine found: "&of" | 23:30 | |
TimToady | ?eval subset X where (Int|Str); my X $x; $x.WHAT | 23:31 | |
evalbot_r14595 | ::X | ||
TimToady | looks like the of syntax isn't even supported in the Haskell parser... | ||
?eval subset X of Any where Int|Str; my X $x; $x.WHAT | 23:34 | ||
evalbot_r14595 | ::X | ||
TimToady | I guess the Haskell parser is agreeing with me. :) | 23:35 | |
though I'd like to be able to get at that "Any" type somehow... | 23:36 | ||
svnbot6 | r14596 | fglock++ | MiniPerl6 - implemented "For", "While", "Return" nodes | ||
TimToady | ?eval subset X of Any where Int|Str; my X $x; $x.WHAT.of | ||
evalbot_r14595 | Error: No compatible subroutine found: "&of" | ||
TimToady | ?eval subset X of Any where Int|Str; say X.WHAT | 23:37 | |
evalbot_r14595 | Error: No compatible subroutine found: "&X" | ||
TimToady | ?eval subset X of Any where Int|Str; say ::X.WHAT | ||
evalbot_r14595 | OUTPUT[X] Bool::True | ||
23:37
fglock joined
23:38
ashleyb joined
|
|||
TimToady | subset Odd of Int where { $^num % 2 }; ::Odd.of | 23:40 | |
?eval subset Odd of Int where { $^num % 2 }; ::Odd.of | |||
evalbot_r14595 | Error: No compatible subroutine found: "&of" | ||
audreyt | (it's not implemented in normal runcore :)) | 23:42 | |
TimToady | ?eval subset Odd of Int where { $^num % 2 }; Odd | ||
evalbot_r14595 | Error: No compatible subroutine found: "&Odd" | ||
TimToady | that's a bug | 23:43 | |
oughta at least introduce the name. | |||
?eval my NoneSuch $x; | 23:45 | ||
23:45
evalbot_r14595 is now known as evalbot_r14596
|
|||
evalbot_r14596 | \::NoneSuch | 23:45 | |
23:45
nipotaway is now known as nipotan
|
|||
TimToady | and that should really fail... | 23:45 | |
TreyHarris | if i do: my $x = 3; $x = 4; $x := 5; | 23:48 | |
is there any way I can do something with another bind or with VAR so that "$x = 6" will work again? | 23:49 | ||
i thought of "$x := undef", "$x := Scalar", "$x := Scalar(6)", "$x := Scalar.new(6)"... none of those work | 23:50 | ||
"$x := *" binds $x to Inf :) | 23:51 | ||
23:52
Psyche^ joined
|
|||
audreyt | TreyHarris: it's a bug :) write a test? :) | 23:59 |