6.2.2 is airborne! | pugscode.org <Overview Journal Logs> | pugs.kwiki.org
Set by autrijus on 1 May 2005.
shapr "I can't think of any other case where two different programming language cultures literally at the opposite sides of the universe have come together like this." from cooking-with-lisp.blogspot.com/2005...unity.html 00:50
lambdacamels unite! 00:52
hiya mugwump 00:54
mugwump hi!
shapr how's code? 00:55
jabbot pugs - 2639 - Added x86_64 gc bug workaround instructi
mugwump Well, I'm getting "somewhere" with Perldoc, even if that isn't anywhere near like what's needed for Pod/Kwid yet ;) 00:56
I made it through another 3 short lessons in Haskell, so getting much nearer the end of those now 00:57
bah wrong button 00:58
shapr Any Haskell questions? 00:59
mugwump I'll take a raincheck on that very generous offer 01:00
shapr ok 01:01
mugwump I'm working towards being able to use the metamodel in src/Pugs/Class.hs for something, but I need to do my homework first... 01:02
ninereasons stevan, listening? 01:19
stevan ninereasons: yes
ninereasons do you know the difference between '.pairs' and '.pair'?
stevan off the top of my head no 01:20
is there a .pair?
where have you seen that usage?
ninereasons .pair is used to access like this: .pairs.pair in t/builtins/arrays_and_hashes/pairs.t 01:21
stevan I am not seeing that usage in pairs.t 01:22
ninereasons a sec. 01:23
stevan I am just seeing $a_pair.pairs
ninereasons try t/data_types/pair.t 01:24
the last tests might be incorrect.
stevan I am still only seeing .pairs ? which line number? 01:25
stevan is a little tired
so I may be staring right at it :)
ninereasons no, try this: change .pairs to '.pair', and that test will succeed. 01:26
(still returns the wrong 'ref' though) 01:27
stevan ok
ninereasons should those tests say "pairs" after all? are they written correctly? 01:28
stevan ninereasons: to be honest, I am not sure 01:29
I see pair and pairs in src/Pugs/Prim.hs
have you checked the synopsis yest?
ninereasons I'm finding reference to .pairs, but not to .pair 01:30
stevan maybe you should check with perl6 language
ninereasons ok
stevan if .pair is a mistake we can remove it from the tests and Prim.hs (assuming it does not have another usage) 01:31
mugwump grep in Perl6::Bible? 01:36
ninereasons I'm finding reference to a pairs method, but I'm missing the reference to a pair method 01:37
shapr oh, a real lambdacamel? 01:45
jabbot pugs - 2640 - Pugs.Parser: Signatures
mugwump any openfoundry admins about? 01:51
obra sup? 01:52
stevan Yo
whatcho need ... whatcho want 01:53
jabbot pugs - 2641 - Whoops, prior, not next, fixes haddock 01:55
mugwump I've just submitted a request for a new project ... I've got half a dozen keen devs itching to move from savannah.non-gnu.org 01:57
savannah.nongnu.org/projects/util-vserver/ is the project
I was just wondering if I could "jump the queue" ;)
stevan mugwump: that is odd, I registered a project and it was in almost instantly 01:58
I am also not that kind of admin so I cant help there
mugwump oh, it is automatic. I saw the 72 hour notice and assumed that the request just went into a queue 01:59
stevan mugwump: I assume it is automatic 02:00
it seemed that way to me
(well maybe like 10 minutes)
mugwump oh, and there it is. cool 02:04
a pity I couldn't put a hyphen in the project ID
stevan mugwump: I agree, I didnt like that restriction either
putter fyi, on #haskell, over the last 2hrs 20 minutes or so, starting with shapr's cooking-with-lisp quote, there has been a minor but potentially interesting thread on possibilities for a long-term perl6/haskell relationship. 03:25
mugwump is that channel logged? 03:26
shapr yup
putter the question was what happens to the perl6/haskell relationship "post pugs". Ie, when running perl6 might mean you are entirely on parrot. 03:33
stevan putter: and dont forget the perl6 bootstrapping
putter one posibility is Inline::Haskell goes back to being like Inline::everything else. Not something one can really use because 03:34
mugwump this will be an entirely moot point if parrot can assume the role that C-- does on Haskell, no? 03:36
(ie, if you can compile Haskell to parrot)
stevan IIRC didnt GHC have some history with perl5?
putter users, esp windows users, can't be counted on to have the required dependencies. But... 03:37
But what if it were posible to maintain the property that "if the user has perl6, then of course they have haskell" ? Ie, 03:38
ghc binaries are available from CPAN, are interfaced with parrot and whatever other perl6 backends there are. Then 03:39
from the perl6 perspective, perl6 has this wizzy modern language for doing compute intensive stuff, and from the haskell side, 03:40
haskell gets a quick ride to the "big time". 03:41
mugwump ideally perl 6 wouldn't have huge dependancies like that for all situations... ie it would be nice if runtime was just libparrot for running bytecode 03:45
putter mugwump: re moot point, perl6 may have other/additional back ends then parrot. and parrot isnt a backend that lets haskell fully shine. 03:46
mugwump: re libparrot, and 03:49
stevan: re p6 bootstrap, ...
mugwump I don't agree to the binding on principle at all, but it would be nice if I can use perl6 to write scripts intended to be run in tight situations 03:51
s/agree/disagree/
eg, /sbin scripts that can't rely on /usr 03:54
putter I'm afraid my brain is squarely in the end-of-day burnt out toast stage. 03:56
The little idea was that p6/haskell are both benefiting, technically or socially, from the current relationship via pugs. But... 03:57
we know pugs role will change with time. Perhaps pugs will merely become "the thing we bootstrapped off of" and "just another success story". But... 03:59
But perhaps there is opportunity for a richer long term relationship. 04:00
I would much rather write p6 libraries in haskell than C. 04:01
mugwump for sure. and the haskell-on-bare-metal thing interests me too 04:05
putter For bootstrap, while we can do pypy with type inference in p6 and llvm code generation... but wouldnt it be nice to hang on to the rich power of haskell...? 04:06
mugwump I think so, yes. I want to have my cake and eat it too! 04:07
jabbot pugs - 2642 - * PGE node type is now marshalled into H 04:15
putter my signoff thought for the night... p6 and hs certainly can't "marry" at this point. p6 cant have ghc as a long-term critical component of its existence... 04:17
but let's not assume pugs is just a one night stand either... much of language balkanization is social rather than technical. there 04:18
are long term ways in which both p6 and hs would benefit from being able to cooperate more closely than is typical between languages. by 04:20
keeping an eye out for possibilities, the current nifty community overlap may find opportunities in the coming months that may become less accessible later on. 04:24
random thought. g'night all.
mugwump, stevan: thanks for the comments. 04:25
mugwump looks forward to a future full of lambdacamels 04:26
putter ;) 04:27
hey ingy, could freepan grow a compile farm and serve binaries....? a whole bunch of Inline::Foo and "what compiler was perl compiled with" issues might simplify... 04:30
autrijus PerlJam: so it's 8 hours now, and I see no PGE :-/ 04:36
autrijus decides to $work and wait some more
obra snickers 04:37
gaal Juerd about? 06:26
It's a little funny how Larry's open* examples on p6-l don't have a filename arg anywhere. :) 06:27
metaperl what does &? do 06:33
$?BLOCK.firstlist
i'm sorry
nothingmuch & means sub
metaperl yes, that is correct
nothingmuch ? means special
metaperl no $? 06:34
it was on p6l
nothingmuch no, BLOCK is a closure
like &?SUB is the current named/anon sub
metaperl what do you mean "special" ?
nothingmuch &?BLOCK is pretty much the same, except the union of the lexical scope is the same as the dynamic scope up to it's named sub 06:35
unless you do &?BLOCK.goto or other weird stuff like that
special - err, magical
basically these things are set on every scope enter
for that scope's lexical pad 06:36
for example $?POSITION stringifies to where you are
$?FILE is like __FILE__ in perl5
$?SUBNAME is the name of the sub
metaperl oh instead of $.
nothingmuch while &?SUB is the actual code of it
metaperl the "." for method calls is not as visually distinctive as "->" 06:37
$_.x
$_->x
nothingmuch no, $. is something else, it's the line number counter for the last read FH
i guess that will become $fh.record_number
or something like that
arguably it looks better for properties
IMHO it doesn't matter that much 06:38
it's meant to make perl more readable for the rest of the world
brb, IRC client updated
metaperl I see... I'm going to check out magicals in the synopses
ok
nothingmuch S02 lists quite a few
06:51 castaway_ is now known as castaway
metaperl what does the Perl method do? 06:55
www.hcoop.net/~terry/haskell/pugs/p...animals.p6
in that source
nothingmuch metaperl: there is nice use of &?BLOCK to do anonymous factorial 06:56
metaperl nohtingmuch, I saw it
$info.perl
nothingmuch think data::Dumper
metaperl confuses me
in the URL I gave at the bottom 06:57
nothingmuch i think it's a terrible method name 06:59
$foo.dump_perl; # better
but you can eval $foo.perl and get the same thing
07:01 khisanth_ is now known as Khisanth
metaperl many questions on this: 07:05
1 while =$dict ~~ rx:perl5/\S/;
what does the =$dict mean? what is the equals sign in front mean? 07:06
autrijus unary = is readline. 07:08
metaperl oh and rx:perl5 means use perl5 regexps?
autrijus yeah. rx:P5 works too 07:14
metaperl I have a question about function escaping within a string based on this code: www.hcoop.net/~terry/haskell/pugs/p...hangman.p6 07:24
the code apparently has { func_call } within a string... how does perl6 know to run the function and not literally interpret the text
mauke because it's surrounded by { }, apparently 07:25
nothingmuch metaperl: this is probably discussed in s02 (guessing) 07:28
also note that @array does not interpolate anymore
you have to say @array[2] or @array[] to get it all
metaperl ok i'll check s02
Aankhen`` HI NOTHINGMUCH 07:34
Aankhen`` coughs.
Sorry.
lightstep MonadEval seems to be in limbo. is this purposeful, or would one way be picked eventually? (cf. line [email@hidden.address] 07:44
07:53 Aankh|Clone is now known as Aankhen``
autrijus lightstep: it is shining new. it will be picked up. 08:07
lightstep: for example, it is my wish to make Pugs.Compile.Parrot into a MonadEval. 08:08
lightstep: so exactly the same code, such as
foo <- asks envLexical
can generate IMC in the compiler monad.
lightstep but the transformation can be done slowly, since Eval is MonadEval 08:09
autrijus exactly
so ideally we need to gradually refactor
common eval routines from
Foo -> Bar -> Eval Baz
into
(MonadEval m) => Foo -> Bar -> m Baz
and leave only the specific-to-interpreter things around
at that time it may make more sense to call it 08:10
Foo -> Bar -> Interp Baz
or some such.
makes sense?
lightstep very much
autrijus =)
I'd appreciate any help you can lend on this matter... changing signautres to most of AST.hs utility functions would be a good start 08:11
and/or Eval.hs functions
also, haddocking that description around MonadEval will help a lot too 08:12
lightstep where is haddock's documentation?
castaway (documentation for the documentation ?) 08:13
lightstep yes 08:14
for haddock - the format, mostly
castaway hopes the haddock package has some ,) 08:16
lightstep nm, it''s at haskell.org/haddock/docs 08:17
castaway makes some degree of sense ,) 08:18
lightstep yes
i actually don't understand the plan. say Parrot is an instance of MonadEval. then the compilation stage Parrot->String will compile and convert the instructions to parrot code. but how will liftIO work in Parrot? or Control.Monad.Reader.local? these operation don't make sense, to me, when building an AST 08:36
Juerd gaal: About now. 08:51
kungfuftr bah 08:55
playstation2-- # time sink
castaway *g+ 08:59
theorbtwo G'morning, all. 09:29
autrijus greetings theorbtwo-san. 09:35
thanks for the signaturing and haddoccking. 09:36
theorbtwo Mostly just been doing signaturing; I don't feel like I understand the code all that well to be really haddocking. 09:38
Juerd moved some things around in his room - now it's a bigger mess than ever before 09:55
I'm starting to wonder if this was a good idea. 09:56
I think I just mostly need to throw a lot of stuff away
Empty boxes, broken hardware, things I never use 09:57
Or the combination of all those
Like the broken MSX computer that I never use, and its empty box that is a few meters away from the thing.
theorbtwo Juerd, where do you live? And are any of those machines decently recent PPC? 10:09
I can't get my mac to do /anything/.
castaway sneaks over and snuggles theorbtwo 10:10
jabbot pugs - 2643 - More Haddocks for Eval/AST 10:25
castaway pokes bro. 10:36
broquaint Hey, c, how's tricks? 10:45
castaway nay bad, thanks.. 3-day week this week :) 10:49
broquaint Sweet :) 10:50
When are you in to2 heading over to Blighty?
s/in/and/
castaway Thursday afternoon 10:51
broquaint Cool stuff. 10:53
Juerd theorbtwo: Heh, I don't have many machines.
theorbtwo: I've always upgraded part by part
castaway he wandered off, Juerd
Juerd theorbtwo: And no, no PPCs except my mini 10:54
castaway: The same way I read his old messages, I'm sure he can read mine.
jabbot pugs - 2644 - * undef in grouped lhs: `my ($x, undef, 10:55
castaway shrugs. 11:01
jabbot pugs - 2645 - * rename `Junc` constructor to `MkJunc` 11:35
autrijus hey Jonathan_, elmex. 11:39
Jonathan_ autrijus: Hi :) 12:40
jabbot pugs - 2646 - Haddocks for AST/Types 12:45
stevan morning all 12:53
autrijus yo stevan-san!
how's $work? 12:54
autrijus finally did some small amount of $work today
stevan $work is okay
I did some :todo<attr> stuff last night
I wanted to run it by you before I commitied it though 12:55
autrijus sure, go ahead
stevan I also got Algorithms in the mail yesterday :)
autrijus oooh :)
the first few chapters are deceptively easy to pick up.
stevan just a quick look through and I already feel like I understand Pugs better
autrijus :D
also, docs/haddock/index.html helps a lot 12:56
to me, even
stevan I have so many programming books, but this is my first haskell book :)
autrijus makes me all the more motivated to refactor
stevan++
stevan makes a note to run the haddock stuff and read the docs
ok,... the :todo<attr> stuff
so what it does is to pass through whatever you give to :todo 12:57
and print it as the TODO "reason" (in TAP speak)
so :todo<bug>, will print # TODO bug
:todo will just print # TODO
then i added some code to our Test::Harness to count each different type of TODO 12:58
(this info is available to the smoker too)
autrijus ok. worksforme 12:59
stevan so when you run a particular test with prove, you will see how many :todo, :todo<bug>, :todo<anything> there are
autrijus I think it's useful upstream as well
stevan maybe
I personally never used TODO until Pugs
autrijus yes. then the yaml renderer can colour them differently
stevan hmmm, thats true
autrijus likes colours
stevan ok I will work with nothingmuch & co. on that part 13:00
autrijus since it has access to all todo tags
it can simply assign them based on lexographic order
stevan well that access was always there actually
autrijus different shades of green, etc
stevan a rainbow of TODOs :P
autrijus ah right.
just need to grep the diag stream
but I think lifting it to model makes more sense 13:01
instead of
todo: 1
todo: ''
(as currently stands)
now it can be
todo: 'bug'
todo: ''
(talking about tests.yml)
stevan autrijus: sorry one sec, $work called 13:02
autrijus 'tis okay 13:03
I need to grab food too
see you in a bit
stevan ok
and I agree with all your comments :)
autrijus :)
stevan I am going to do a make test and commit 13:04
Aankhen`` We have rules now? 13:05
stevan I will explain it on perl6-c too so that others can start :todo<bug|feature|parsefail|hardfail> the tests :)
Aankhen``: we have perl5 reg-exp
and the PGE is in the Pugs tree, but not working with Pugs yet
Aankhen`` r2629 | autrijus | 2005-05-02 22:56:05 +0530 (Mon, 02 May 2005) | 1 line
* PGE is now part of Pugs; :P5 restriction lifted from rx// and s///.
Ahh.
Darn.
stevan that may take a while, and first priority right now is Objects :)
Aankhen`` Oh well. 13:06
autrijus and more importantly, we are will waiting for patrick.
Aankhen`` I just want them to play with anyway. :-P
Patrick?
autrijus patrick, author of PGE.
Aankhen`` Ah.
autrijus the tree's PGE version is dated (and old and obsoleted)
Aankhen`` Awww.
autrijus he promised a new version Real Soon Now
Aankhen`` Heh.
stevan wonders how autrijus eats/showers/sleeps and still manages to chat on #perl6 :) 13:07
autrijus stevan: easy, by chatting while eating/showering/sleeping
Aankhen`` I don't think autrijus sleeps. :-P
autrijus Aankhen``: so, if you use rx// in pugs
stevan :) 13:08
autrijus you'll see a data structure repensenting the compiled Rule
stevan haskell or perl?
autrijus it's just a Simple Matter (tm) to turn it into a pattern matching function
probably in ST monad
stevan: haskell.
that actually is a quite good exercise for beginning lambdafolks.
translating the machine in pge_gen.c to haskell, that is
however, this is old PGE, as I said 13:09
Aankhen`` Ah.
autrijus but adapting it to new PGE should be very trivial
but, as stevan said, I'm not personally listing it as high priority :)
getting the OO model figured out and out of door is. 13:10
Jonathan_ autrijus: Were you after me for something earlier, or just saying hi? :) 13:11
autrijus Jonathan_: just saying hi
Jonathan_ Ah, cool.
stevan autrijus++ # because make test is running so fast now :)
autrijus :D
bbiab & 13:12
Jonathan_ Limbic_Region: ping
stevan whoo hoo! my copy of Tiger is "OUT FOR DELIVERY" according to amazon 13:16
13:21 khisanth__ is now known as Khisanth
Juerd I'm amazed by the number of people willing to pay a fortune for a minor upgrade 13:23
theorbtwo too. 13:24
stevan Juerd: its not really that minor 13:25
theorbtwo stevan, BTW, I got a copy of 9.1, and it's also not working.
stevan theorbtwo: sorry I totally forgot about that
Juerd stevan: I fail to see the major improvement. Spotlight? That's a nice thing to have, but worth maybe $10 in the shareware world. 13:28
theorbtwo stevan: No big. I wanted to try getting it from another source anyway. 13:29
stevan Juerd: spotlight could not be shareware since it integrates soo tightly into all the existing mac apps 13:30
well it could be shareware,.. but i wouldnt use it
(and take the chance of breaking everything)
Juerd stevan: Oh, and mac software is unscriptable of course... :P
stevan Juerd: scriptable is one thing, tightly integrated search is another
Juerd Still, I wouldn't pay this much for an upgrade. For a new install, sure, I'd say it was cheap even. 13:31
stevan Juerd: to each their own :) 13:32
I dont mind paying it
Juerd Are you rich?
stevan Juerd: nope
just love my mac :) 13:33
Juerd Ah, that must be the difference then
I love the hardware, not the software.
The OS sucks as much as Windows and Linux+KDE, but in different ways
stevan I see hardware like I see my toaster, it should just work
software is what I am interested in
Juerd: to a degree, all software sucks 13:34
we are in the stone age of computers
Juerd Yes, but there should be software that sucks less than other software
stevan software developement is about maybe 50 years old
that is very young
if you compare it to bridge building 13:35
Juerd It's a very different science
stevan Juerd: yes it is, and one that has been perfected over thousands of years
Juerd It is only/mostly because of Microsoft that software isn't developing at much higher pace
stevan: Perfected? All but.
stevan Juerd: perfect being a relative term :) 13:36
Juerd That's a bad definition
stevan s/has been perfected/is being perfected/
Juerd perfection is the most absolute value :)
Quality is always on a scale from nonexistence to perfection 13:37
(where nonexistence is more like undef than 0)
stevan and current software is on the low end of that scale 13:38
Juerd That's impossible to say
Because we don't know what perfection is 13:39
For all we humans know, it's as far away as infinity.
stevan Juerd: now your getting all philosophical on me :P
Juerd s/your/you're/
stevan s/your/yur/ :P
Juerd And of course I'm getting philosophical - how else to view the world? 13:40
stevan LOL
wolverian as if there's a perfect objective interface..
jabbot pugs - 2647 - this revision has the new :todo<attr> co 13:56
theorbtwo wants to hack on bringing in the PGE stuff, but is uncertian where to begin... 14:06
PGE is in Text.PGE, so presumably Autrijus doesn't want it colored with stuff from the Pugs namespace, meaning that the glue doesn't go there... I think.
Unless I should add a function there that gets text and matches against it, but general perl should be available from inside of rules, so probably not. 14:07
autrijus theorbtwo: yo.
theorbtwo: the easiest way is to start by emulating RRegex interface.
and don't worry about embedding perl inside it yet. 14:08
actually, just provide a
matchRule :: String -> Node -> Maybe [String] -- returns captured
is a very good start.
then we can move it inside eval monad.
one thing at a time.
theorbtwo OK.
autrijus for how to write matchRule, consult pge_gen.c 14:09
it has detailed plan of how to translate a Node into an execution context.
PerlJam so ... did pm release his pge rewrite yesterday?
autrijus I'd probably use the ST monad.
and carry on the local context with ST.
you can also use ReaderT ST if you feel like.
PerlJam: not at all.
PerlJam bummer :(
autrijus ;)
theorbtwo: for a demo of runST and ST monad, see my perlmonk post wrt BrowserUk a while ago 14:10
brb &
14:15 gaal is now known as roo, roo is now known as gaal_
gaal_ i think we need objects for a reasonable implementation of pipe open. 14:19
reasonable interface that is.
14:19 gaal_ is now known as gaal
gaal does everybody get pestered by NickServ, or is it just me? 14:19
castaway not me, mines not registered :) 14:20
theorbtwo I set gaim to log in for me, and just close the "you are identified" message. 14:21
gaal either i'd registered a while ago and forgot; or someone else registered this nick; but if it was me then it oughta have been recycled already. 14:22
theorbtwo Hm, I don't see a forgotten password mechinisim. 14:24
Talk to the admins?
gaal yeah 14:25
i mean, i should.
jabbot pugs - 2648 - Added svn:eol-style => "native" to t/ an 14:35
Limbic_Region pokes his head in and looks about 14:37
stevan howdy Limbic_Region
theorbtwo Allo, Joshua.
stevan Would you like to play a game? 14:38
Limbic_Region as long as "thermo-nuclear" isn't in the title
stevan LOL
Limbic_Region stevan - thanks for p6ifying my infinite lazy list code 14:40
feel free to update it in the repository too
stevan Limbic_Region: no problem, thanks for writing it in the first place :)
Limbic_Region: I didnt know you had commited it
Limbic_Region yep 14:41
stevan Limbic_Region: you should put a link back to the svn repo, so people can always check the latest version
Limbic_Region my goal is to learn enough p6 to be able to answer relatively simple questions at the Monastery with both p5 and p6 answers
ok
will update 14:42
autrijus gaal: you can fake objects using VOpaque, you know that? 14:43
stevan autrijus, and co: I have sent a description of the new layered TODO functionality to perl6 compiler
Limbic_Region stevan - the node has been updated to point to svn.openfoundry.org/pugs/examples/i...zy_list.p6 for latest version
stevan questions, comments, suggestions welcome :)
Limbic_Region: excellent 14:44
Limbic_Region so I have a couple of todo follows
err followups even
autrijus - we were going to look at the my foo = sub { ... return sub { ... } } issue of not being able to drop the sub keyword in both cases 14:45
stevan Limbic_Region: It also did not want to handle pointy subs either (-> {})
Limbic_Region nothingmuch - I was going to look at the splatted parameters shouldn't be rw test and see if I could think of any varations as well as investigate as o the proper way to throw/catch the error 14:46
stevan has to take the dog out &
Limbic_Region and apparently - Jonathan_ wanted to talk to me too
Jonathan_ ping
is there an easy/straightforward way to add to a junction of any() or all() 14:56
PerlJam Limbic_Region: wish I knew. Given $j=1|2|3; does $k=$j|7|8 make some sense other than "adding" to the junction? 14:59
If so, then you'll probably need something like $k=$j.values|7|8 15:00
theorbtwo any(any(1,2,3),7,8), I think.
any($j.values, 7, 8) is I think what you want.
PerlJam theorbtwo: I tend to think that any(any(1,2,3),7,8) means the same as any(1,2,3,7,8) 15:02
jabbot pugs - 2649 - s/:todo/:todo<feature>/ in t/oo/. 15:05
Limbic_Region tries to think of an example that makes sense since what is in his head isn't coming out right 15:07
ok - you have won a shopping spree, you are allowed to pick exactly 1 item from anything in the store. As you are walking up and down the isles, a new shipment of doodads comes in - since any( @entire_store ) is already quite large - what is the sane way of adding 1 more item to my current junction? 15:12
PerlJam Limbic_Region: I think that way is $store |= $one_more_item 15:21
Limbic_Region is going to eat pizza and think about it 15:24
shapr is going to think about pizza while doing work. 15:29
15:37 sbkhh is now known as Odin-
ninereasons I wrote a test for the pairs method assuming that I understood what a pair is. I'm not so sure, now. 15:51
Presently, the pairs method returns a different kind of data structure, depending on the context.
S09 says that context matters. 15:52
but how much?
see the example
pasteling "ninereasons" at 199.107.164.126 pasted "are all behaviors of the pairs method correct?" (26 lines, 497B) at sial.org/pbot/9873
Limbic_Region FAQ: "How do I get a list of unique elements from an array" - Answer: my @uniq = grep { one( @list ) eq $_ } @list; 15:57
anyone see that as being a "good idea"?
broquaint hash { @array.map:{ $_=> 1 } }.keys ;) 15:59
Limbic_Region broquaint - not necessarily the solution - the idea 16:00
the p5 FAQs in p6
broquaint I figured, L~R, was just playing around. Seems a little awkward, but that's probably because of the one() usage. 16:01
Can junctions been flattened? I forget :/ 16:03
Limbic_Region broquaint - say any( @list ).values; 16:04
pasteling "ninereasons" at 199.107.164.126 pasted "unspecced 'pair' method" (16 lines, 292B) at sial.org/pbot/9876
Limbic_Region that's the best way of doing it
ninereasons compare the behavior of the pairs method, to the unspecced 'pair' method.
broquaint Thanks, L~R.
Limbic_Region broquaint - the only two methods I know about for junctions ATM is .values and .pick 16:05
but I am sure others in the know have all kinds of wizardry up their sleeve
it is quite elegant though (as long as order isn't important) 16:06
say "unique = ", any( @list ).values;
broquaint Is that meant to produce a unique list of values from @list?
Limbic_Region no, but that is the end result 16:07
forget about junctions and think of quantum superpositions
the eigenstates were the values that the superposition could take on 16:08
ninereasons s/,/~/
say "unique = " ~ any( @list ).values;
Limbic_Region thanks ninereasons
ninereasons :-)
Limbic_Region is still writing p6 with p5
from that perspective broquaint - they are the same state so you only need 1 of them. If we were going to stay in the realm of Q::S though, probabilities of state when things collapsed would have to be kept too 16:09
ninereasons it's not so bad a problem as writing p5 with p6, Limbic_Region
metaperl_ is "~" string concatenation
Limbic_Region but fortunately it isn't needed - so the states are unique
ninereasons bool:true metaperl 16:10
metaperl_ ninereasons, thanks
Limbic_Region sorry - I saw that as a statement not a question 16:11
Limbic_Region knew the answer but parsed the question wrong
ok - so no screams and shouts for the p5 FAQs to have p6 answers ATM? 16:12
ninereasons I have more questions than answers right now, Limbic_Region 16:13
ninereasons thinks this might be a permanent condition
Limbic_Region ninereasons - now I think you misparsed
I wasn't proposing a p6 FAQ 16:14
I was proposing answering the p5 FAQ with p6 answers
ninereasons that's what I mean, Limbic_Region . I'm not sure that I would recognize the canonical answer if I saw it
Limbic_Region ahhh 16:15
ninereasons what you posted looks good to me
Limbic_Region yeah - there is definately the issue of toomwtdi coming into play
*shrug* - just an idea
autrijus $ ./pugs -e 'for (1..3) { state $x; $x += $_; say $x }' 16:16
1
3
6
yay, works.
rehi, btw :)
Limbic_Region so we have C's static ?
autrijus implementing state() involves a one-line change...
one-line revert, actually
because for a couple hours a few days ago, our my() was acting like state() 16:17
(which the tests dutifully caught)
Limbic_Region: yeah. or perl 5's
my $x if 0;
tests welcome for that
Limbic_Region right, but p5's behavior was never defined nor intended to work
autrijus actually, tests welcome for let() too, although I'm not quite sure what does that do 16:18
temp() too.
and for state(), of course
Limbic_Region: right. it is nevertheless quite useful.
broquaint let() only works within the context of a rule doesn't it?
ninereasons let sounds interesting
Jonathan_ Limbic_Region: I'm here now - just wanted to check how the latest Pugs Win32 build worked out for you.
Limbic_Region 6 mb binary - but working fine 16:19
I just fiddle when I want to run tests Jonathan_
ingy hola kids
Limbic_Region and after thinking about it - anyone who is intelligent enough to want to write/run tests should be smart enough how to get it working after you did all the hard work
autrijus broquaint: no...
Jonathan_ I would still like it to work out of the box, mind... :S 16:20
autrijus $x = 9; try { let $x = 10; die "bye~" }; say $x; # 10
Jonathan_ Can you say "use CGI;" or whatever, and it finds it, if you just extract the archive and run pugs.exe?
I got it doing that in the tests I did..
autrijus er.
$x = 9; try { let $x = 10; die "bye~" }; say $x; # 9
sorry ;) 16:21
broquaint Oh yeah.
Limbic_Region autrijus - how should state() behave inside a factory? Will subsequent instances of closures be "tangled" (another Q::S term)?
autrijus Limbic_Region: state is just like my()
except no new pad instance is generated on reentry.
i.e. it's initialized only once
Limbic_Region autrijus - I understand all that
autrijus so it's like a global, but useful only in lexical context.
Limbic_Region and my question remains
autrijus so all closures refers to the same variable. 16:22
same pad storage slot, that is.
they all have the common reference in their subPad.
Limbic_Region ok - so if you want a bunch of counters to be able to be used throughout the code but draw from the same pool, state() is a perfect thingy
autrijus exactly!
you can use a my() in outer scope to do the same. 16:23
but then it's overkill for visibility.
which is one of the annoying things about p5.
Limbic_Region Jonathan_ - any chance you building a new build so I can play with state() - once I get home I am in the process of moving and won't get to play
autrijus - my outside of the factor for the same effect is fugly
ninereasons i've wanted just that thingy many times, in p5
Jonathan_ Limbic_Region: Sure, is it in SVN now?
autrijus Jonathan_: yes
ninereasons: the p5 idiom is 16:24
{ my $state_var; sub thing { ... } }
Jonathan_ It's on its way.
Limbic_Region ninereasons - I have done it several times in p5 through various implementations - and none of them are pretty
autrijus - same can be achieved using OO
autrijus eh, sure. anything can be achieve with OO :)
Limbic_Region and even my own variation of multi-method closures
autrijus ah. that's more interesting
Limbic_Region but state() is a "cool" way of doing it
ninereasons autrijus, I use File::Find a lot, and hate using "my" outside of the loop especially to create an iterator. 16:25
s/loop/block/
autrijus ninereasons: I think you speak for many people :)
which is, come to think of it, why people are willing to write atrocious constructs like "my $var if 0".
jabbot pugs - 2650 - * implement `state $var`.
ninereasons autrijus, would you enlighten me re: my 'pairs' question ? 16:26
autrijus $pair.perl should say 16:27
('foo' => 'bar')
or some such.
that's a pugs bug
ninereasons so, the 'pair' method is correct 'pairs' behavior ?
autrijus I think so. if you want alternating k and v, use .kv 16:28
pairs support in pugs is spotty.
partly because the OOification is not yet complete
Limbic_Region what are the various ways you can refer to hash keys again besides {} and <> 16:29
autrijus theorbtwo: hold off working on Text.PGE if you have begun -- the new PGE apparently is not C based. 16:34
it's all IMC.
Limbic_Region perlbot nopaste 16:39
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
pasteling "Limbic_Region" at 129.33.119.12 pasted "Possible use for state()" (17 lines, 310B) at sial.org/pbot/9877 16:40
Limbic_Region I can't test state() ATM, but if someone could please run what I just posted on the nopaste bot - I would appreciate it 16:41
autrijus 00:40 <@pmichaud> okay, okay -- I'm working on it now. I've been working on it pretty steadily for a couple of weeks, it's within an hour or two of release
Limbic_Region except it has a mistake
pasteling "Limbic_Region" at 129.33.119.12 pasted "Can someone please test - possible use for state()" (17 lines, 315B) at sial.org/pbot/9878 16:42
broquaint I think you want my() there L~R, as you want $cash shared per gen_cashier() call, right?
Limbic_Region broquaint - I want all 3 cashiers to have access to the same $cash
so no - my they would all get their own lexical copies
broquaint Ah, ok. 16:43
Limbic_Region $cash is "total cash for the store", not "cash in your own drawer"
I was trying to be quick about it to make sure it worked as expected - I will work on "the story" later 16:44
autrijus Limbic_Region++ # OO! 16:45
(closured-based OO)++
state() is class variables, and my() is instance vars
Limbic_Region autrijus - www.perlmonks.org/index.pl?node_id=291486 might be of some mild interest
jabbot pugs - 2651 - a few changes mostly related to pairs
Limbic_Region I wrote that about a year after learning p5 16:46
metaperl_ I still dont understand when multi-methods are useful
autrijus Limbic_Region: cool.
incidentally, that's how I implemented some sort of OO in QuickBasic way back when.
wow, more than 10 years ago. 16:47
metaperl_ Limbic_Region: want to tutor me? :)
Limbic_Region metaperl_ - I can give you 1 example that isn't tooooo contrived
give me a second
Jonathan_ Limbic_Region: Updated Pugs Win32 build online.
autrijus metaperl_: oh. do you understand when overload are useful?
sub add (Complex $x, Num $y) { ... }
metaperl_ you mean ad hoc polymorphism?
Limbic_Region metaperl_ - see www.perlmonks.org/index.pl?node_id=407834 16:48
autrijus multi sub add (Complex $x, Num $y) { ... } # rather
Limbic_Region specifically sub Stats { ... }
thanks Jonathan_ - trying now
in that case, you are gathinger numbers over a period of time 16:49
but beyond just the total, you want the average, min, max, etc
you could have made it so that you passed in what you wanted as an argument 16:50
my $ave = $stats->( 'ave' );
but you could have made $stats multi-method as well
my $ave = $stats{ave}();
one big benefit is that you can change the behavior of the closure or add closes at any time 16:51
metaperl_ Tool::Box is a nice piece of code... it seems like what might be in "Higher Order Perl" even though I have not bought the book yet
Limbic_Region metaperl_ - HOP didn't exist when I wrote Tool::Box 16:52
at least it wasn't finished/published
theorbtwo autrijus: ACK to that.
autrijus theorbtwo: however, that means src/IMC/*.hs has a reason to exist :)
theorbtwo Are we going to use parrot to try to make the IMC into something we can use, or give up and write our own, or beat pmichaud about the brow until he gives in and puts it back in C, or what?
Hm, I should figure out what it is that it does, then. 16:53
Limbic_Region in anycase metaperl_ - there is very little the multimethod closure approach gives you that can't be accomplished some other way - just a style I happen to like
metaperl_ what does IMC mean? intermediate compiler?
autrijus metaperl_: s/compiler/code/
theorbtwo: so, I think either a Pasm interpreter
(which is probably not a great idea)
metaperl_ maybe reading the Class::Multimethods docs will elucidate things for me
Limbic_Region metaperl_ - are you familiar with the Parrot FAQ?
shapr Limbic_Region: Have you heard of Intentional Programming?
autrijus or a IMC parser+(interpreter|compiler)
metaperl_ no - not at all
Limbic_Region shapr - I haven't heard of much 16:54
PerlJam metaperl_: pir is the new imc ;)
autrijus theorbtwo: or beat parrot folks until they produce a useful embedded parrot
Limbic_Region is digging up the link for you metaperl_
PerlJam autrijus: good luck on that one!
autrijus actually, we have an expert here.
jhorwitz: ping?
Limbic_Region metaperl_ www.parrotcode.org/faq/
jhorwitz autrius: pong
autrijus jhorwitz: mod_parrot wants a parrot source tree, right? 16:55
Limbic_Region shapr - I am a programmer hobbyist (never went to school for it and don't do it professionally)
so no, I haven't heard of Intentional Programming
PerlJam Limbic_Region: what do you do professionally?
jhorwitz autrijus: not sure what you mean
autrijus jhorwitz: I notice when I do "make install", the parrot embed header is not installed
ingy the beatings will continue?
Limbic_Region PerlJam - I work for the government so the stock answer is "as little as possible"
autrijus jhorwitz: a source build of parrot, instead of a binary installation 16:56
Limbic_Region PerlJam - my title is Information Technology Specialist which is a fancy way of saying I am resident jack-of-all-trades master of none IT-weenie
PerlJam Limbic_Region: So ... when there's a guy digging a hole, you're one of the 4 standing around watching him dig?
jhorwitz autrijus: yes, but that's only because at the time, "make install" didn't install includes, libs, and such.
not sure what the situation is now.
autrijus yeah, so do you only need
libparrot.a
and include/parrot/*h 16:57
that's all, right?
Limbic_Region PerlJam - no, I am the one in the air conditioned trailer eating delivered food who is in charge of the 4 guys standing around watching him dig
PerlJam heh
jhorwitz and parrot-config.imc
Limbic_Region metaperl_ did you get the Parrot FAQ link?
metaperl_ yes I just read it 16:58
Limbic_Region the Parrot web site is notrious for not being "up to the minute"
but the content is good and it is usually reviewed circa each public release
so all in all - good place to get up to speed 16:59
autrijus jhorwitz: alright. looks they are not installed yet.
I'm prodding them.
Limbic_Region #parrot is too (but not on this network)
autrijus theorbtwo: so, worst case, we link against libparrot.a 17:00
theorbtwo: so if you don't have parrot built, you don't get rx//.
on the plus side, that gives us much faster pugscc 17:01
and eval_imc()
and more.
oh and eval_tcl ;)
in that case Pugs will be just like Ponie :) 17:02
Limbic_Region don't forget about basic
autrijus yes. bbberry imbbortant
so, as long as the dependency is optional (much like hs-plugins), I take nobody really oppose to this? :)
Jonathan_ On a Parrotish note, how is the Pugs backend to emit IMC/PASM (I forget which) coming on though? 17:04
autrijus Jonathan_: IMC
it's coming along nicely.
most simple expressions now work.
Jonathan_ Cool. Maybe I'll have time to play with it sometime. 17:05
Limbic_Region autrijus - being opposed to really isn't the right sentiment
autrijus it's pending my next supply of tuits to make it monadic.
Limbic_Region it would be nice to have rules without all of parrot
but - beggars can't really be choosers now can we
autrijus Limbic_Region: in that case, I'm afraid it's either writing a IMC interpreter
/compiler
or somehow trick parrot into generating C file 17:06
which is probably not going to happen
Limbic_Region autrijus - parrot can generate a native executable on a lot of platforms
autrijus Limbic_Region: er yes.
how is that relevant?
Limbic_Region autrijus - not sure because I am not sure how it goes about generating the native executable 17:07
Jonathan_ Limbic_Region: It uses its JIT subsystem.
autrijus Limbic_Region: it's basically doing an exec().
on the embedded libparrot
so there's no C-based object file we can link to 17:08
aside from libparrot.a
Jonathan_ Limbic_Region: That is, it actually generates proper native code in an object file and then links it with libparrot and some startup stub code to initialize stuff.
Limbic_Region again - what "would be nice" isn't always "what is available"
autrijus oh, there's another option. 17:09
port PGE to Perl 6 :)
and have it generate perl 6 :)
(which is, the Ultimate Goal(tm)) 17:10
jhorwitz autrijus: i make a quick & dirty hack for "module" in Parrot.hs so I can use namespaces. it works, but can you check the paste to make sure it's sane? i'm still a newbie here... :) 17:13
pasteling "jhorwitz" at 216.52.77.2 pasted "module for Parrot backend" (2 lines, 119B) at sial.org/pbot/9879 17:14
autrijus sure! 17:15
jhorwitz: commit it?
jhorwitz: oh btw.
are you using the parrot embed api? 17:16
I wonder how do you evaluate an arbitary chunk of IMC
without writing it to a temp file
and pass it to readbc
i.e. in-memory readbc
jhorwitz i use Parrot_load_bytecode and then call the subs individually. 17:17
you should be able to use the "PIR" compiler to eval IMC directly though.
wolverian p6l++ # I often can't follow the discussion but it sounds neat 17:18
(such as Thomas Sandlaß's Re: Type system questions.)
autrijus Parrot_load_bytecode takes file too, no?
jhorwitz yes. but i imagine it can be tweaked to load from memory...
been a while since i looked at the source for it 17:19
autrijus I think I want the drug Sandlaß is smoking. 17:20
it sounds like fille type lambda.
er
full type lambda.
I wonder if the builtin constraint solver can be leveraged at the Rules level.
shapr Limbic_Region: I'm a programmer hobbyist too, I never went to school, but I do get to program professionally. 17:21
autrijus jhorwitz: I see IMCC_compile_file
jhorwitz that sounds familiar
autrijus but it's commented out 17:22
jhorwitz takes a quick look to jog his memory
autrijus I'd appreciate it.
I'm writing Pugs.Embed.Parrot, btw.
nothingmuch wow, people have been talking to me a lot today
nothingmuch has been a lazy blob of lard
autrijus jhorwitz: once I check in, I think you'll be the person most entitled to hack it into pieces :D 17:23
Limbic_Region agrees and kicks nothinmuch to help motivate him
jhorwitz autrijus++ for being a brave soul. :)
nothingmuch stevan, autrijus: how will we fit this into TAP? by simply parsing '#TODO bug' etc?
Aankhen``: hola
Limbic_Region: i don't know what you mean by proper
Limbic_Region has to scroll back to see what he said before 17:24
nothingmuch i think variations are useful
but perhaps effort is directed elsewhere
but checking that an eval died is the best way to check for an error
and doing something wrong is the best way to create it ;-)
Limbic_Region nothingmuch - oh, I agree
what I was saying is that if it is a catchable error
then ultimately what we should do is
eval "foo"; 17:25
is( $@, 'error we expected' )
of course that has p5 feel to it, but you get where I am going
nothingmuch ah
i disagree
Limbic_Region for now since we don't know what is the proper way to fail
nothingmuch because the specific error is impl specific
Limbic_Region we should just verify it fails
nothingmuch pugs and the one true perl 6 and some other spinoff could do it differently 17:26
Limbic_Region nothingmuch - I disagree
nothingmuch these are tests for the perl language
autrijus nothingmuch: yes, I think parsing is ok for now
Limbic_Region or rather
autrijus Limbic_Region: you going to check in the cashier example?
Limbic_Region I think we can't JUST test for failures since it might have failed for something else
nothingmuch autrijus: i can hack it in real quick, but i think i'd rather maintain this in a pugs specific subclass, because I don't want to annoy other users with this interpolation
Limbic_Region autrijus - it didn't work - playing with it ATM
nothingmuch Limbic_Region: true, but there is no reliable way to get it to stabilize better 17:27
Limbic_Region nothingmuch - right now - which I agree with
nothingmuch i think we're better off investing time in implementing exact proper behavior
than doing ackward stunts to test for it
autrijus nothingmuch: then maybe another scheme: "# TODO TAGGED feature" 17:28
sure, I agree with that too
Limbic_Region autrijus - if I can't get it working RSN I will throw it over the fence
autrijus Limbic_Region: cool
nothingmuch it's a trivial thing, just subclass the css_class of Test::TAP::Subtest::Visual, and make it be more specific if $self->todo 17:29
by parsing the actual structure
if that's good enough, i can have it out the door in 15 minutes
(because i want to read email first ;-)
Limbic_Region autrijus - got it working but I can't check in from work :-( 17:34
I know I know - same old song and dance right
pmichaud autrijus: there will unfortunately be a slight delay before I can check pge into svn 17:35
my network connection to svn.perl.org has gone down :(
nothingmuch Limbic_Region: nopaste it then
pasteling "Limbic_Region" at 129.33.119.12 pasted "Using state() to do OO without OO" (17 lines, 320B) at sial.org/pbot/9880
jabbot pugs - 2652 - add "module" support using Parrot namesp
nothingmuch pmichaud: why not use openfoundry? 17:36
Limbic_Region autrijus - is svn.perl.org/perl6/pugs a 1 way mirror?
pmichaud ummm, pge goes into the parrot svn
Limbic_Region errr - rather
svn.openfoundry.org/pugs/
nothingmuch pmichaud: oh... i was under the impression a fork will be integrated into pugs... sorry!
Limbic_Region was confused as well 17:37
nothingmuch Limbic_Region: nice code... no do roles ;-
)
pmichaud oh, I think that pge will be integrated into pugs, but I'm working out of the parrot svn
autrijus Limbic_Region: yes it is
pmichaud: can you put up a tarball? 17:38
Limbic_Region nothinmuch - I wan't a proof of concept - I will work on a better "story" later
autrijus or a .zip somewhere we can download?
Limbic_Region so someone going to check that in?
pmichaud autrijus -- unfortunately, my connection to my server is down also
autrijus because... Pugs.Embed.Parrot is working :D
pmichaud: aw. and your code is in your server?
pmichaud no, I have a local copy. just a sec, lemme see what I can do
autrijus you can commit to Pugs tree as src/pge/ :D 17:39
pmichaud oh, wait, my connection just came back up (finally!)
autrijus cool!
(but I sent off an invitatino to you anyway.)
pmichaud okay, let's try this again -- should be about 30 mins :)
autrijus :)
as a backup you can always check in to svn.openfoundry.org/pugs/src/pge/
pmichaud okay, good to know
thanks
autrijus np
ok. trying to make require_parrot() work... 17:40
jhorwitz autrijus++
autrijus mm what should I run. 17:41
tetris!
shapr autrijus+=42
I haven't been on channel much lately, I'm sure I've missed at least 42 good opportunities.
Limbic_Region shapr - the result of $cash is of course 42 17:42
Limbic_Region should probably change $cash to $cash_in_store to make it more clear
jhorwitz autrijus: are there plans to run tests using the different backends? i just missed something very obvious in my Parrot "module" commit, and of course there was no test to catch it. 17:50
autrijus jhorwitz: there are plans. 17:51
it needs an embedded parrot
for hopefully obvious reasons.
jhorwitz :)
autrijus well, we can also compile each test to .imc 17:52
using pugscc --runparrot
but it's going to be slow.
very slow.
wolverian how slow? as in, a few hours, or days?
(I would run it...)
pmichaud arrrgh, lost my connection again 17:53
okay, I'm heading out to a wifi hotspot -- bbiab
autrijus good luck 17:54
Pugs.Embed.Parrot compiles 17:55
now hooking it to Prim.
or rather, to Eval.
jhorwitz autrijus: "module Foo" needs to emit IMC outside of the main sub. not sure how easy this is -- my lambda-fu is weak here... :)
autrijus jhorwitz: can't you emit ".end"? 17:56
or do you want to go back to main again?
jhorwitz autrijus: we'll need to be able to go back, since "module" declarations can happen anywhere. 17:57
stevan nothingmuch: ping 17:58
autrijus jhorwitz: commit whatever you have with XXX comments about how it should go? 17:59
jhorwitz autrijus: already committed, but i'll recommit with comments
autrijus ok. 18:00
thanks!
I probably can't stay up long enough to wait for pmichaud :-/ 18:01
jabbot pugs - 2653 - add a few more pairs tests 18:05
pugs - 2654 - int() (and other builtins which default
Aankhen`` 􏿽xABnothingmuch􏿽xBB: You rang. 18:06
s/\.$/?/
nothingmuch Aankhen``: you said hello 18:07
stevan: pong
Aankhen`` Er... where?
nothingmuch this morning
Aankhen`` Ohh, right.
nothingmuch several minutes after i left, i think
stevan nothingmuch: were you wondering about the Test::TAP::Model changes for the TODOs? 18:10
nothingmuch yes 18:11
autrijus $ ./pugs -e 'require_parrot<mandel.pbc>'
................::::::::::::::::::::::::::::::::::::::::::::................
...
it runs.
stevan it is all very simple
nothingmuch it should be a very trivial change
i would like someone to prepare a css though
i have no clue what I'm doing when it comes to that
jhorwitz woohoo! autrijus++ 18:15
shapr btw, is yrlnry Mark Jason Dominus? 18:16
autrijus jhorwitz: it only does pbc though, I have no idea how to make imc work
jabbot pugs - 2655 - remove module support until we can emit
autrijus shapr: yes
shapr Ah, ok then.
autrijus shapr: where did you see that name?
jhorwitz: maybe you can take a look
jhorwitz autrijus: commited?
shapr He's been on #haskell off and on for a long, long time.
autrijus jhorwitz: I have this feeling that src/Pugs/Embed/Parrot.hs will be familiar ground to you
also look at Syck.hs for how FFI is done 18:17
jhorwitz: I think you'll discover that GHC can be merely sugared GCC :)
jhorwitz likes sugar 18:18
shapr likes spice
nothingmuch cat VICTUALS
shapr It don't get no spicier than we got 'round here! 18:19
shapr distributes the habañeros in carefully sealed packages.
jabbot pugs - 2656 - * experimental `require_parrot()` suppor 18:25
pugs - 2657 - [BUG] map flattens arrayrefs, while it s
autrijus jhorwitz: found time to play with it yet? :) 18:29
r2658, btw.
jhorwitz autrijus: was just able to svn up
Aankhen`` Were there suddenly changes to a lot of different files?
autrijus Parrot JIT works in Pugs too.
Aankhen`` My svn up output is rather large. o_O 18:30
autrijus jhorwitz: I think what I'd like to see is:
pugscc --parrot examples/mandel.p6
jhorwitz autrijus: that's good news. i have yet to play with JIT in mod_parrot.
autrijus # this produces mandel.imc
./pugs -e 'require_parrot("mandel.imc")'
I'd like that to work.
currently it only loads pbc.
if loading imc works, then we don't need an external file anymore
in face, we don't need pugscc anymore. 18:31
it will all be in memory.
jhorwitz :)
Juerd Hi from Amsterdam.pm
autrijus and the resulting linked executable may be, to the zeroth approximation, called perl6, or something :)
nothingmuch Juerd: giving a pugs talk?
PerlJam autrijus: you scare me. The same way that damian scares me. I like it! ;-)
Juerd nothingmuch: I don't know what to say about pugs
nothingmuch: And the minute I do, it's already old info. 18:32
nothingmuch you can do two lightning talks
one now
and one at the end of the talk
PerlJam Juerd: just say "pugs is perl6" and you're done.
nothingmuch and describe what autrijus has been doing while people were listening to other speakers
Juerd nothingmuch: Hehehe.
PerlJam nothingmuch++ that's a good idea :)
autrijus actually, if Ponie supports the same EXTERN.h interface 18:33
Juerd Can someone summarize the commits since $now till $then when it's $then?
autrijus like our current PUGS_EMBED=perl5 uses
Juerd Perhaps it will indeed make a nice lightening talk.
autrijus then we can also evaluate perl 5 code natively with the embeded parrot :)
stevan Juerd: make it an art peice, just read the SVN log
autrijus Juerd: what stevan said
Juerd stevan: That's too much for a *lightening* talk ;)
stevan ring a gong for each commit
ingy I am trying to figure out what angle to play for my Pugs talk at OSCON 18:34
stevan ingy: Juerd doesnt like my performance art idea, you are free to it :)
nothingmuch gets busy on real work
autrijus ingy: it's too far off.
stevan interpritive dance Pugs
autrijus ingy: you can think about it at T-7
ingy stevan: have you ever seen one of my talks?
autrijus I mean 7 hours, of course
stevan ingy: I have not yet had the pleasure :)
ingy well it makes your suggestion redundant ;) 18:35
q[acme] dancing troupe of dogs?
Juerd Is there a way to get the past $n hours of svn log?
autrijus Juerd: not really.
stevan YAPC::NA will actually be my first confernce (aside from the comic-cons of my youth)
nothingmuch maybe we can write one of those music visualizers, but for sloc changes
autrijus svn log --limit 100
ingy all talks are performance art
jabbot pugs - 2658 - * add embedded parrot with JIT.
autrijus nothingmuch: Haskore!
Juerd autrijus: Danke 18:36
stevan Juerd: actually you can svnbook.red-bean.com/en/1.0/ch03s03...3-sect-3.3
Juerd autrijus: Is svn log --base what I want?
nothingmuch Juerd: is the "{" DATE "}" thingy in 'svn log --help' useful?
autrijus nothingmuch: www.haskell.org/tmrwiki/Haskore
Juerd stevan: I don't want to use a browser
nothingmuch: Not really
* add embedded parrot with JIT.
stevan Juerd: sorry :)
Juerd That works.
ingy autrijus: there will be a t-7 factor, but i doubt the talk will be a tech talk...
ie I could probably write it now 18:37
nothingmuch autrijus: looks interesting... *reading*
Limbic_Region autrijus - will Pugs built on plain jane windows work with a Parrot built on Cygwin?
stevan Juerd: svn checkout --revision {"2005-05-02 8:30"}:HEAD
(fill in a time approriate to you)
Juerd stevan: Don't want to checkout. Want log.
autrijus Limbic_Region: I think ABI differ
so no.
ingy I need to start hiring the supporting cast, etc
stevan sorry,.. s/checkout/log/
Limbic_Region grrrr
Juerd stevan: Think I found it, svn log -r BASE
autrijus Limbic_Region: I mean msys/mingw vs cygwin/gcc
hey pmichaud! Pugs now has embedded Parrot! 18:38
pmichaud cool!
autrijus mandel.pbc runs!
pmichaud I just commited pge
Limbic_Region ok - so I need to just tell my father and my wife they need to finish the new house all by themselves so I can play with Pugs/Parrot/Perl6
autrijus yay!
pmichaud++
nothingmuch Juerd: the date thingy is the same as saying 'any revisions after'...
ingy autrijus++ # Irssi: #perl6: Total of 104 nicks
pmichaud note that it's not a complete implementation yet, but it's got enough to work with
Juerd autrijus: Since when does it have that?
autrijus: Does that fit in the past few minutes? By any definition? :)
kungfuftr ingy-- # too much incrementing going on 18:39
autrijus Juerd: yes... let me see
02:35 < jabbot> pugs - 2658 - * add embedded parrot with JIT.
that's 3 minutes ago.
Juerd Ah, right
NEAT
autrijus: That's a very nice item for the What Pugs Got The Past 2 Hours.
autrijus oh. 2 hours!
ingy kungfuftr: grrr
autrijus tsk. we got a lot more.
Juerd autrijus: Yea.
kungfuftr ingy: i love ye really... =0)
pmichaud now I just have to update the p6rules test suites
Juerd autrijus: Hours just began. I'm at Amsterdam.pm
autrijus: A lightening talk of what has been written during our sitting here 18:40
Limbic_Region can't resist opening an obvious spam email as the subject line is "being lazy"
autrijus Juerd: so we have require_parrot(). we have state($var) which is like `my $x if 0` but works better.
Limbic_Region is glad he did - it was from the Higher Order Perl mailing list
Juerd autrijus: When was the state thing introduced? Has to be after thishour:25
Limbic_Region autrijus - did you check in my example code?
and if so - as a test or as an example?
autrijus it's introduced exactly two hours before, I think 18:41
Limbic_Region: I had not, I don't know, both way worksforme, your call :)
Juerd autrijus: Hm, we were eating then. Good enough.
autrijus Limbic_Region: do you have url again?
Limbic_Region sial.org/pbot/9880
only thing I would change is $cash
$cash_in_store # or some such
autrijus ok.
Limbic_Region to make it obvious it is being shared 18:42
autrijus cashers.p6?
cashiers.p6?
stevan Limbic_Region: maybe a bank() and $vault is better analogy?
Limbic_Region sure
stevan and the generator creates $tellers
Limbic_Region stevan - sure - it was a very quick proof of concept
knowing it is in there is all that I need to go back and work on it later 18:43
Limbic_Region WILL have free time again
stevan ok
stevan is a homeowner, so he knows Limbic_Region is wrong :P
you will be praying Home Depot has WiFi hotspot :)
Limbic_Region stevan - I have a father who missed out on my childhood who feels a great need to make up for it 18:44
yay - for extremely cheap competent labor
masak perlbot karma ingy
perlbot Karma for ingy: 38
masak :)
autrijus Juerd: there's some minor thing... 18:45
like
:name{ ... }
for closure as pair values
Juerd autrijus: Closure as the pair value must be either :name{ { ... } } or :name({ ... }) 18:47
autrijus: Or name => { ... }, or anything involving "sub"
autrijus Why is :name{ { ... } ] different from :name[...] ? 18:48
ok, then you can say it's retracted in a minute :)
Juerd :name{ { ... } ]?
autrijus :name { {...} }
:name{ {...} }
Juerd autrijus: :pair uses *hash subscript* syntax, in the most basic case. 18:49
autrijus oh, does it.
I thought it's
:name( ... )
as the most basic case.
Juerd autrijus: Nope, I thought that too
autrijus but wtf?
where is that specced? 18:50
Juerd I'll try to see Larry's mail
s/see/find/
autrijus that's fine, I trust you
when is you talk again?
Juerd I'm trying to follow MarkOv's talk too
autrijus: I don't know. Whenever we're almost done here
autrijus like, in two hours?
Juerd I haven't been to an amsterdam.pm meeting ever before
autrijus Juerd: ok. svn.openfoundry.org/pugs/examples/cashiers.p6 is new, too 18:51
30 seconds ago from Limbic_Region
you may find that amusing
Limbic_Region is going to take stevan's advice and change it to bank/vault/cashier when he finds time
autrijus cool 18:52
Limbic_Region I also have some p5 code at the Monastery that will be even better practical implementation of state()
provided the other pieces already work in Pugs
Juerd Message-ID: [email@hidden.address]
autrijus: That's for you
autrijus k.
Limbic_Region I do have a feeling though that until I am moved into the new house - all play is going to have to be done at $work
autrijus Limbic_Region: I'm so glad I managed to convince you into building pugs :) 18:53
Limbic_Region autrijus - it was bound to happen - I was just fooling myself into thinking I could hold back the flood gates 18:54
Limbic_Region is looking forward to meeting autrijus in person some time
Juerd too 18:55
jhorwitz looks forward to heckling autrijus at YAPC. :)
shapr too
Juerd world-- # too fscking large.
Let's found programmeria!
Coderia I mean
jabbot pugs - 2659 - * add Limbic_Region's demo of state() va
shapr Why don't we just design a better transporation system so we can cheaply visit neat people? 18:56
Juerd Or all move to Poland and rename it to Perlland. It already has the correct country extension.
shapr: It has been designed over and over again but governments sck.3
suck.
autrijus I think augmented reality with mind-controlled navigation is more practical :) 18:57
Limbic_Region here is the real problem - the people who have money want more 18:58
we need someone with a lot of money who doesn't care about it to put it to good use
Juerd If that's just one someone, it isn't enough.
shapr Juerd: but, I think programming is not limited to Perl, Haskell, or any one language. 18:59
Limbic_Region intends to give away his entire lottery winnings once he has set up enough to ensure he doesn't have to $work again
emphasis on HAVE TO WORK
Juerd - Bill Gates?
autrijus wow, it's clean.
the PGE code, that is.
pmichaud++
pmichaud is there any other kind?
Juerd shapr: Perl 6 is every language, so that's not a problem.
autrijus pmichaud: heh, the C-based v1 was less so :)
pmichaud the c-based version was as clean as I could make it with the tool I had... which is why I switched to Parrot 19:00
autrijus ok, now let me grok the code...
pmichaud besides, it's terribly important to me that we build something maintainable for the long haul, so clean beginnings are important
autrijus: just ask if there are any questions
Limbic_Region autrijus pmichaud all - current Pugs coversation in the Monastery chatterbox 19:02
autrijus addattribute base, "$:to" # end of match 19:03
the sigils are actually meaningless right?
just monikers
pmichaud yes, they don't mean anything
I'm just following p6 naming conventions a bit
autrijus what's target? 19:04
like ".*" ?
pmichaud the string to be matched
Juerd svn: PROPFIND of '/pugs': Could not resolve hostname `svn.openfoundry.org': Temporary failure in name resolution (svn.openfoundry.org)
Known issue?
autrijus the entire?
pmichaud yes
autrijus Juerd: try using openfoundry.dyndns.org/pugs 19:05
pmichaud target == string to be matched, pos == current match position
Juerd autrijus: Is there a way to do that without re-checking-out?
autrijus Juerd: svn switch --relocate
Juerd thank you
autrijus so the signature of yield() is...
pmichaud oh, you were referring to $:target . Yes, it's the same thing -- the match object has to remember what it was matching against
yield() is a coroutine
autrijus $match, $target, ?, ? 19:06
pmichaud so, yielding() just returns back to where we were in the match
autrijus what's the 0 doing there?
pmichaud and yes, the signature is mob, target, pos, lastpos
autrijus yield(me, target, 0, lastpos) # start match
oh, pos.
0 means start.
pmichaud that will likely change
slightly
autrijus what does yield return?
pmichaud basically it returns control :) 19:07
autrijus ah. it is a mutator.
of the internal Match state.
pmichaud yes
autrijus nice!
pmichaud yielding again returns back to the match at the state where we left off, so we can get more matches
autrijus so @capt and %capt
are unnamed and named capts 19:08
respectively?
pmichaud yes
named capts don't exist yet, but I've already got the base code in for that
autrijus and it's an array of string
or array of Match?
pmichaud which one?
autrijus capt
@:capt
pmichaud @capt is an array, %capt is a hash 19:09
autrijus yeah, but array of.. ?
pmichaud array of array of Match
autrijus array of array of match.
why two arrays?
two-level, that is
pmichaud there can be multiple match objects returned
autrijus ah. right.
pmichaud for example, rx / (abc)* / returns an array of match objects in $1
autrijus yup.
subtle.
so offset starts with -1? 19:11
with __init
pmichaud offset? 19:12
autrijus I'm seeing
$P0 = new Integer
$P0 = -1
setattribute self, $I0, $P0
oh, that is the "$:to" slot
it means to the end
(I hope)
pmichaud oh. The ending position is -1, meaning failed match (or not matched yet)
-1 generally indicates a current failure state, -2 means "permanently failed" 19:13
those will likely change also, and they're supposed to be internal to PGE anyway
-1 will be failed last expression, -2 failed current alternation, -3 failed current rule, -4 failed match
I may also end up with a different state variable, but thought I'd co-opt $:to for the purpose anyway 19:14
autrijus that's fine
so who gives out the first yield() ?
pmichaud the subroutine created by p6rule
autrijus where in code is that? 19:15
pmichaud PGE/P6Rule.pir
oh, wrong
wait
scratch that
autrijus :)
pmichaud it's in the preamble to the code returned by compiling the expression
PGE::Exp::Start
Juerd What is PGE written in?
pmichaud juerd: PIR
jabbot pugs - 2660 - Limbic_Region++, added comments to examp
Juerd pmichaud: Oh, wow, so the parrot embedding brings rules dramatically soon? 19:16
pmichaud yes
not to mention it finally allows me to start building a parser for p6
Juerd Wooh!
pmichaud since I don't have a Parsec available in Parrot :-) 19:17
Juerd pmichaud: Can you put in one sentence how far PGE is? Is it useful for basic regexes yet?
PerlJam pmichaud: give autrijus a day or so and you will ;-)
pmichaud juerd: basic regexes, yes
I don't have character classes or cuts yet
or interpolated vars
Juerd pmichaud: Great - I'll inform the amsterdam people :)
PerlJam Juerd: when do you stop collecting info and start presenting it? 19:18
pmichaud but I have captures, \d \s \w \n \D \S \W \N , etc.
subrules are next on my hit list
once I have subrules I can start writing grammars. In fact, I'm getting ready to use PGE to write the demo program for PGE :)
Limbic_Region so you do have character classes, just not arbitrary ones right 19:19
autrijus aha, _pge_rule_coroutine.
pmichaud right, I have only some of the \x ones
autrijus I see a monad!
pmichaud I don't have <[abcd]> yet 19:20
autrijus (but I see monads everywhere. :))
ingy I see dead people
pmichaud <[abcd]> is fourth on my list right now
PerlJam autrijus: too much haskell for you! Back in the box!
pmichaud autrijus: yes, _pge_rule_coroutine -- sorry, I probably could've identified it for you if I had been thinking straighter (and not trying to compose an email announcement in another win)
the call to the coroutine itself happens in _pge_rule 19:21
the initial invocation sends the target string and a (newly created) match object to house the routine 19:22
Juerd PerlJam: End of the meeting
autrijus pmichaud: that's fine. please finish composing your mail. this is amazingly cool :)
pmichaud++
Juerd PerlJam: I want to give people an impression of the speed of development - the best way to do that is to tell them how much has been done in just the time we were lazily sitting here :)
autrijus pmichaud++
Juerd pmichaud: Thanks for the info 19:23
pmichaud juerd: anytime
juerd: literally, anytime . Feb-Mar killed my momentum from last winter -- but as you can tell (and report) the momentum of perl 6 is steadily increasing with each passing hour :) 19:24
Limbic_Region I think I might have just made another convert ;-) 19:25
PerlJam just wishes he could compile a parrot to play with 19:26
perhaps a fresh checkout will help
pmichaud perljam: try a fresh checkout :)
Limbic_Region can't remember the last time he compiled Parrot but would approximate it as mid December 19:27
jhorwitz autrijus: which parrot dist are you building against?
autrijus jhorwitz: trunk.
pmichaud I'm always building against the trunk :) 19:28
PerlJam autrijus: what os are you building on?
(please say something other than linux :) 19:29
autrijus PerlJam: freebsd
PerlJam excellent
ah, I have a parrot!
(a live one even) 19:30
pmichaud email sent
autrijus pmichaud++
PerlJam Every time I've had problems compiling parrot has been something dealing with ICU
jhorwitz autrijus: pugs tried to link with ICU, but i don't include it in my parrot build. we should probably check in parrot config for ICU libs.
pmichaud well, there's no more icu :)
jhorwitz PerlJam++ for reading my mind
autrijus jhorwitz: please hack away in MAkefile.PL
it's all yours 19:31
:)
jhorwitz autrijus: thanks, i think... ;-)
pmichaud now let's see how long it takes my message to p6c to actually show up
perl.org seems to want to hold my p6c messages for moderation
which is, well, kinda bizarre :-)
ninereasons real 104m18.880s # time for an upgrade, obviously
nothingmuch swears his parrot is pushing up the daisies 19:32
maybe it will talk to Dan in YAPC too
jhorwitz so tonight i'll work on ridding the Makefile of ICU and compiling IMC from a buffer.
pmichaud okay, well, now that that's done I'm going to head home and see if my network connection is back yet 19:33
autrijus jhorwitz++
pmichaud++
Limbic_Region loves the smell of progress in the morning
pmichaud exit
oops
somehow irc is not a shell
nothingmuch someone please make a counter reference 19:34
l-fy hello
Shillo Hullo, folks.
nothingmuch hello
PerlJam Limbic_Region: yeah ... it's days like this that make me think that if I went away on vacation for a week, by the time I got back, everyone would be using the new perl6 compiler :-)
l-fy ok, so perl6 compiler is ready?
nothingmuch PerlJam: aren't you supposed to have more time for p6 when on vacation? ;-) 19:35
l-fy PerlJam > you own me a library for yate in perl 6 :)
PerlJam l-fy: A perl6 version wouldn't do you much good.
nothingmuch doesn't anybody here know monty python, like, at all?
PerlJam nothingmuch: yes, but the references have been done to death. 19:36
l-fy PerlJam > is nice as example
nothingmuch wonders how he can feel good about himself without anyone backing him up
PerlJam l-fy: Are you in a hurry wrt YATE in perl?
nothingmuch too many google hits for yate 19:37
l-fy PerlJam > a lot of people are yelling here :)
PerlJam nothingmuch: the second one is the relevant one
l-fy nothingmuch > yate.null.ro
anyway this will also help the adoption of yate 19:38
nothingmuch . o O ( i'm feeling sort of lucky )
l-fy sorry
the adoption of perl 6
PerlJam l-fy: heh ... I don't think that's going to be a problem
l-fy well, it may be
autrijus shapr: yay! oleg grants permission! 19:41
shapr: CC_2CPST will land to pugs in a few mins.
Shillo is rebootstrapping ghc. Yay, the fun never stops. :)
Shillo would feel better about his new machine if it didn't crash twice so far. Will have to run stress-tests.
nothingmuch is the Amsterdam.pm meeting done yet?
Juerd no 19:43
First talk is still going on
I don't mind - I hope there won't be enough time for me to explain Perl 6 context
Limbic_Region asks the silly question of "WTF is CC_2CPST" ?
boogie autrijus: have you got my mail about segfault of eval_yaml(undef)? 19:45
shapr autrijus: w00! Did he say anything about the second part of his Zipper as tree of subcont? 19:46
I really want to attempt the insanity involved in viewing a tree shaped mutable datastructure as a tree of SMP-using continuations.
autrijus boogie: no I didn't 19:47
boogie: write a test?
shapr: that is a good insanity to have
shapr But my idea is probably just a simple isomorph of something like Yampa's arrows, O'Haskell's objects or some other independent mutable object flavored critter. 19:48
boogie autrijus: Strange. Where should I put this test?
autrijus boogie: eval_yaml('')
ok(eval_yaml(''))
or something like that.
Limbic_Region t/unspecced/eval_yaml.t 19:49
autrijus Limbic_Region: CC_2PST is something insane.
Limbic_Region ok 19:50
boogie thx, I do it. And what should be the result of it? undef?
Limbic_Region but t/unspecced/eval_yaml.t is a sane place for boogie's test right
autrijus yes.
Limbic_Region ;-)
autrijus Limbic_Region: it allows for save dump() and restore() :)
dump(), as in perl5's dump().
and lightweight
and you can dump() only outward to some subroutine
nothingmuch autrijus: what O(N) complexity?
autrijus nothingmuch: what what O(N)?
Limbic_Region ok - so intended to be abused like p5's dump to get a native executable 19:51
or more for "real" debugging?
nothingmuch is it optimized with respect to closures?
autrijus Limbic_Region: it gives you backstepping in debugging.
nothingmuch or does it do a linear dump of stuff?
or does it do something more complicated?
autrijus nothingmuch: it's O(1) dump.
:)
that's the beauty of it.
nothingmuch where can i read on how that's possible?
autrijus nothingmuch: first read up on delimited continuations 19:52
"A Monadic Framework for Subcontinuations" and references
and then, read about monadic reflection in www.haskell.org/tmrwiki/FunWithLine...Parameters :)
oh also, for Perl 6 library management: 19:53
www.haskell.org/tmrwiki/EternalComp...tyInTheory
I think TMR is a wonderful e-magazine :)
shapr cheers for TMR
Limbic_Region used to work for TMR
autrijus shapr++ # editor
shapr autrijus: and we want YOU to write more for TMR!
autrijus I will!
shapr: btw, src/Pugs/Cont/CC_2CPST is landed 19:54
shapr hops excitedly
Limbic_Region www.tmrhq.com/
shapr I would be very interested in TMR articles from other people here who would like to describe the process of learning Haskell from a Perl perspective.
Limbic_Region shapr - I will be sure to let you know once I venture into Pugs internals
for now I am just porting p5 code to p6 19:55
nothingmuch shapr: i can write one about hoping to learn
shapr hoping to learn?
Limbic_Region a man needs to learn to crawl before he can run
nothingmuch everyone will be very interested, i'm sure
shapr Well, send me an article summary!
nothingmuch then i can write one about failing miserably
in which I will excuse that i lack the tuits
shapr haha
autrijus nothingmuch++
jabbot pugs - 2661 - * Monadic subcontinuation transformer.
autrijus rofl
shapr: I think the code is very very heavy wizardry. 19:56
it smells like HList.
;)
nothingmuch that commit message sounds like something out of a cheap sci fi click
s/click/flick/;
shapr Well, if Oleg wrote it...
Heck, if Oleg found it to be interesting enough to work with... 19:57
19:57 khisanth_ is now known as Khisanth
nothingmuch autrijus: did you write larry-esque comments to match? 19:57
Limbic_Region ducks the decepticons and joins the autobots
autrijus nothingmuch: no, it's deep inside src/Pugs/Cont/
I only add poems for src/*.hs and src/Pugs/*.hs
shapr: it's heavier wizardry than SPJ's. 19:58
obra ponders tools to autodetect apropriate poetry based on code naming and complexity
autrijus I can understand SPJ's code with effort :)
Shillo nothingmuch: I studied math, and when going home from the univ, we'd discuss things like free tensor algebras over p-adic fields on a tram... surrounded by people... who had nowhere to go. Compared to that, monadic subcontinuation transformer is positively benign. :)
nothingmuch maybe someone wanting to practice parsec can parse comments out of the p5 tree
if they contain /magic|wizard|$etc/i
and randomly insert them
actually i'm used to math jargon 19:59
dad is a mathematician
nothingmuch does that too
sadly it's with cable names and how video equipment is broken
not that i get to practice that anymore
Shillo nothingmuch: *grin*
boogie I've added eval_yaml test. Can anybody test it? It's my first test from the ground.
nothingmuch all else is your usual acronyms, which aren't too impressive to people here ;-) 20:00
shapr I've never been part of an in-person group of people who had such neat discussions. My first experience meeting FPers in person was ICFP03. I realized that I didn't actually know how to speak a lot of words in my FP vocabulary.
Juerd What does eval_yaml do?
autrijus obra: that tool is Coy
Juerd Return a nested structure?
autrijus Juerd: yes.
l-fy microsoft.beplaced.com 20:01
shapr Juerd: Lately I wonder if programmeria would actually be a worthwhile idea. If someone like Estonia decided to permanently ban all software patents and give other advantages to programmers, they'd get high-tech immigrants from all over the West. 20:02
obra autrijus: heh
Shillo shapr: My fav was when we were in a tram, watching a totalled car being towed away. A colleague says 'piecewise smooth diffeomorphism'. I nearly died laughing.
boogie Juerd: reads a YAML file (~XML), and gives the result back
integral heh
autrijus obra: you saw the Two Big News? :)
shapr laughs
obra autrijus: no
autrijus obra: ok.
1. New PGE is upon us.
2. Pugs now embeds Parrot. 20:03
boogie Juerd: search for YAML on the net
autrijus taken together they mean: Pugs can natively use PGE.
obra !!!!!!!!!!!!!!!
Shillo shapr: Eh. Programmers should found guild-like organisations. Like what doctors and engineers have.
shapr That's like category theory jokes on #haskell. Sometimes they're so funny I can barely breathe, and there's no one off of #haskell that I can explain them to.
autrijus and natively run IMC generated from Perl6.
oh and there's 3.
Shillo autrijus: Holy ****
obra autrijus: does this mean that pugs can be translated to perl6 function by function? 20:04
autrijus 3. Leo and I are looking at Grin. It is believed that Grin can be compiled to Parrot without much effort.
obra what is Grin?
Shillo What's Grin?
autrijus and JHC, the Haskell->Grin compiler, already produces very fast code.
Grin->C is just 300 lines.
shapr @google grin boquist
obra oh shiut
obra sees where this goes
autrijus yes.
a bootstrapping JHC means a haskell code to IMC in IMC.
nothingmuch is not sure he sees where this goes 20:05
autrijus s/code/compiler/
nothingmuch ah
autrijus also, Grin->C produce very small executable with fast code
obra "embrace and gengineer to create a pug made of perls
autrijus and more importantly: it has no RTS (linked runtime)
jabbot pugs - 2662 - eval_yaml
autrijus so, perfect. 20:06
shapr obra: I'm writing a blog entry about that actually...
obra grins
shapr But I'm making the case that there is just programming, and you can call it whatever you like.
Limbic_Region patiently waits for a "the most productive day in Pugs yet...." journal entry 20:07
autrijus rofl. 20:08
congrats, you just made to my journal. 20:09
shapr I think I'm going to try to take the same approach with my paying Python work btw. I'm going to embrace and gengineer. 20:11
Limbic_Region autrijus - out of curiosity, since I suggested installing the tab extenstions - has "undo close tab" saved your butt yet? 20:12
autrijus Limbic_Region: no, not yet 20:14
pmichaud: hey. the plan is to port PGE to perl6 right? 20:15
eventually that is
pmichaud eventually, probably
autrijus I think Pugs can run something like PGE now.
pmichaud the parser could be better written in perl 6
autrijus someone wants to try a port?
Shillo Hmm, while we're on the topic, is GLR compatible with Perl6 rules spec?
pmichaud I dunno about the code generator though
autrijus pmichaud: the codegen can gen p6. 20:16
pmichaud the code generator might be just as easy in pir
autrijus I think gen p6 is easy.
Shillo In other words, are there any requirements on the order-of-evaluation in embedded closures?
pmichaud I'm not so sure that generating p6 is the best way to go here
it could be
autrijus oh, if the genned p6 can emit fast-enough imc 20:17
then that's probably a good idea
iirc, the point of p6 with its type annotations is to gen fast code :)
Shillo autrijus: Is it possible to generate a readable Perl6?
autrijus Shillo: sure, why not
Shillo: if you look at PGE's code and PGE's codegen
Shillo Er, I mean, with less effort then writing it from scratch
autrijus the IMC it gens is very p6ish 20:18
Shillo Hmm, uh, sorry. My mind skipped tracks.
autrijus compared to, say, p5ish :)
Shillo I was actually thinking about compiling Haskell into Perl6 for some reason. Buh.
pmichaud the big difference I can see is that I'd expect a p6 gen to contain Parrot subroutine calls, whereas PGE's gen does bsr/ret
autrijus pmichaud: bsr/ret has p6 equiv, no? 20:19
Shillo <-- not at his best, the last 2-3 days.
autrijus that is, .goto()
&Continuation.goto(), to be precise
pmichaud umm, isn't a continuation in this case going to be the same as a Parrot continuation?
Shillo autrijus: Actually, what -is- a subcontinuation?
autrijus pmichaud: yes. am I misunderstanding what you're using bsr/ret for? 20:20
Shillo: it is like a continuation, but instead of capturing up until program termination
it captures until a certain delimiter.
Shillo: Pugs uses subconts heavily.
pmichaud I'm using bsr/ret so that I get very fast subroutine call execution and don't have to do lots of register swaps/saves/restores
autrijus Shillo: a subroutine call, for example, creates a delimiter, then passes the continuation to the subroutine as &?CALLER_CONTINUATION 20:21
pmichaud in parrot, every call to sub(something) generates lots of set instructions that move values from one register to another
autrijus Shillo: the return() primitive is essentially invoking that continuation and yielding a value.
pmichaud but since every one of my subroutines has exactly the same arguments and return value, it seems weird to be generating all of those invokes/continuations 20:22
justatheory autrijus!
autrijus Shillo: and error handling is done by invoking the escaping continuation as well. they are guaranteed to stop at the subroutine call boundary at resetT
hey justatheory
justatheory heya
So, pugs doesn't compile for me. I sent another failure today.
autrijus justatheory: how?
pmichaud: true. can it be iteratorized or tail called?
justatheory autrijus: One sec.
autrijus pmichaud: or, maybe perl6 can contain inline parrot :D 20:23
pmichaud it can be tailcalled, but that just helps us on return
well, if p6 has inline parrot then that's basically what I have now -- i.e., we could move the generator into p6 (and that's probably worthwhile) but I think the generated code itself may still need to be pir
justatheory autrijus: Well, my latest failure for 6.2.2 hasn't shown up yet. 20:24
But here's the one for 6.2.1: www.nntp.perl.org/group/perl.cpan.testers/200958
Shillo grrrrrrrs. Aparently a key combo crashes X, intermittently, and I can't find out which.
shapr Shillo: just log your keys 20:25
Shillo 's typing is quite noisy.
Involves CTRL-ALT-something_right_handed
jabbot pugs - 2663 - * fix uninitialized value errors when bu
autrijus pmichaud: ok. I'm just curious about inline code
integral CTRL-ALT-BACKSPACE?
Shillo shapr: I might decide to. Once I track the other source of crashes.
autrijus pmichaud: that is, embedded p6 code inside rules 20:26
Shillo integral: Nope.
integral: That'd be too easy. ;)
integral ;-)
pmichaud autrijus: oh, that will be handled as a standard parrot subroutine call. Same with subrules
autrijus oh.
well then, there's nothing really parrot specific :)
pmichaud the idea is to use inline parrot for the things that really need to be fast (i.e., matching individual tokens), while the more expensive and harder to optimize things will fall back to standard p6 semantics
autrijus right. 20:27
justatheory autrijus: Hrm, looks like the cpan-testers archive is lagging...
autrijus it may be worthwhile to identify exactly where p6 can't generate fast code
whilst imc can
Shillo integral: That combo will stay with me forever. Nothing sets a long term memory like disaster. I pressed CTRL-ALT-BS on a DEC station that had 8 MB of RAM, while it was swapping like crazy. Took the admin a month to recover the HD. :)
autrijus because that may help p6 into a better language for low level operations
which I'd very much like to see.
pmichaud well, here's my thinking on this
autrijus justatheory: select gcc at 3.3? 20:28
pmichaud at some point we'll end up optimizing the expression engine to the point where it can parse things faster than the imc parser I've written by hand
autrijus right.
justatheory autrijus: Here's the latest: rafb.net/paste/results/iWPHna72.html
That's on Tiger.
pmichaud at that point, it's worthwhile to rebuild the pge parser in p6
Limbic_Region home time
autrijus justatheory: try #haskell? :-/
justatheory autrijus: It uses gcc?
autrijus justatheory: I think you need gcc3.3
pmichaud then we can look at rebuiilding the codegen portion in p6 as well
justatheory I thought it used ghc
autrijus see GHC page 20:29
justatheory: GHC in optimization mode is just a C generator
justatheory ah
pmichaud but somehow I think the low-level codegen stuff will remain imc/pir for some time to come
autrijus pmichaud: okie.
pmichaud but hey, it'll be easy soon enough to prove me wrong :)
autrijus :)
pmichaud++
justatheory goes to eat some lunch...
autrijus justatheory: but really, try gcc_select :) 20:30
justatheory ok
Shillo blushes. Yes, it was CTRL-ALT-BS. 20:43
I managed to press it without really realising what I did. Note to self: Don't prepare to do CTRL-ALT-LEFT (switches virtual desktop) while in the middle of backspacing a line. ;) 20:44
wilx lol 20:48
jhorwitz autrijus: ping
autrijus jhorwitz: pong 20:49
jhorwitz Makefile.PL changes in r2664 20:50
queries parrot directly -- try it out when you get the chance to verify it works.
(and anyone else w/ parrot) 20:51
autrijus k.
justatheory starts make with gcc3.3...
hlen_ guys, every 20 days or so i've been asking this question.. are the ==> and <== operators coming soon?
autrijus jhorwitz: 20:52
ghc-6.4: unrecognised flags: -Wl,-E
Usage: For basic information, try the `--help' option.
hlen_: not as far as I know... you want to take a stab?
hlen_ autrijus, sorry, no knowledge, and little time 20:53
autrijus ah. well. :-/
jhorwitz: ghc can't take generic GCC flags.
jhorwitz: you need to strip so only -I -L -l are left 20:54
jhorwitz autrijus: got it -- didn't have that problem on my end
autrijus: what flags are you seeing? 20:55
autrijus -Wl,-E 20:56
jhorwitz okay then. 20:57
jhorwitz gets to fixin'...
metaperl_ which SYNOPSIS shows how strings can have functions interpolated in them 20:58
pmichaud functions? You mean which synopsis does interpolation? S02 I think 20:59
metaperl_ checks S02 again
pmichaud yeah, S02
the answer is "use curlies" :-)
PerlJam metaperl_: It's just "{ foo() }" though 21:00
pmichaud in fact, you can search for that :)
hiya, pj
PerlJam greets pm
metaperl_ I saw somewhere where it showed all sorts of ways to double quote a string and it had several cases of function interpolation... 21:01
pmichaud there's "..." and <<...>>
metaperl_ under literals in S02 it seems to discuss it
Shillo Whoa, ghc bootstrap done. Less than 90 minutes! :) 21:05
autrijus Shillo: nice
you have a Fast Machine.
Shillo :))))
jabbot pugs - 2664 - * query parrot's configuration for requi
Shillo It still runs into a wall from time to time. :) 21:06
Need to debug that and then I'd say I have a l33t g34r :)
justatheory autrijus: Looks like select_gcc 3.3 did the trick. Running make test...
autrijus justatheory: cool! 21:09
wow, 5am.
justatheory Looks like it's compiling faster than Emacs still, which is good. ;-)
autrijus a voice somewhere says I should sleep
justatheory autrijus: You *sleep*? 21:10
autrijus I try to.
metaperl_ you are getting sleeeeeeeeeeeeeeeeeeeeppy. sleeeeepy.....
justatheory autrijus: You're someone's hero: www.justatheory.com/computers/progr...se.html#tb 21:11
Shillo autrijus: What's the time over there? :)
autrijus 5:10am
so, zzz. 21:12
autrijus waves & 21:13
Shillo Oif. Laters.
jabbot pugs - 2665 - * strip non-GHC flags from imported parr 21:15
metaperl_ what special variable in p6 will determine how interpolated array elements are separated? 21:16
$" is p5... 21:17
PerlJam metaperl_: I don't think there is one. 21:18
pmichaud it's not a variable, it's an adverb
metaperl_ hmm 21:19
pmichaud oh, I'm wrong
it's a method on the array
just a sec
PerlJam @foo.separator(':') ?
lambdabot Unknown command, try @listcommands.
pmichaud no, I'm thinking of .as(...)
@array.as('%s', ':') or somesuch 21:21
lambdabot Unknown command, try @listcommands.
PerlJam I thought Larry said that it's easy enough to do "{@foo.join ':'}" or something
pmichaud yeah, that's another way 21:22
wolverian @foo.join(':') you mean :)
lambdabot Unknown command, try @listcommands.
wolverian oh shush
PerlJam wolverian: indeed.
brentdax You know something's wrong when you're seriously considering using an Acme:: module in real code. 21:23
PerlJam oh, I guess curlies aren't needed then: "These are my @foo.join(':')"
brentdax (Need to curse an object in a threaded program so it won't run its destructor.)
pmichaud pj: yeah, the curlies aren't needed there 21:24
PerlJam pm: the (potential) long look ahead for brackets to decide whether or not to interpolate is somewhat bothersome though 21:25
pmichaud I think it's just one step
oh, you're right, it's not
I'm sure we'll be able to come up with a reasonable rule to cover that case :-) 21:26
PerlJam I think {} are cheap, so why not {@foo} instead of @foo[] for interpolation and lose the $sigil.thingy.that.ends.in('a bracketing construct') entirely? 21:28
I guess some people have aversion to the shift key and the common case will most likely be @foo[] 21:29
pmichaud because {@foo} and @foo[] produce different results 21:32
PerlJam they do? 21:33
pmichaud @foo[] puts spaces between elements, {@foo} doesn't
lambdabot Unknown command, try @listcommands.
pmichaud I think I read that somewhere 21:35
PerlJam That's strange
the results of subroutines are interpolates as if they were arrays
pmichaud the rsults of bare subroutines are interpolated 21:36
PerlJam {} is almost a subroutine :)
pmichaud it's a closure called in string context
and @array in string context produces all of the elements next to each other
with no separators
PerlJam oh. yeah, I'm just reading S02 now.
{} gives scalar context 21:37
so it would be {*@foo} to replace @foo[]
or {list @foo}
pmichaud A bare closure also interpolates in double-quotish context. It may not be followed by any dereferencers, since you can always put them inside the closure. The expression inside is evaluated in scalar (string) context. You can force list context on the expression using either the * or list operator if necessary. 21:39
@foo in string context is the concatenation of its elements
Shillo Uh, when is string context distinct from scalar context? 21:41
PerlJam still ... it'd be nice to know what to do with the thing you're parsing from the beginning rather than having to find the end.
Shillo: string context is a type of scalar context.
wolverian Shillo: it's distinct even in perl5!
pmichaud when interpolating inside of a double quoted string, I suspect
wolverian PerlJam: I agree. {}s are even visually more distinctive. 21:42
pmichaud well, one is always welcome to use curlies in their strings :-) 21:43
wolverian (and both curlies and brackets need an extra key on this keyboard)
PerlJam Anyway, it's like sentences in english ... you have to scan ahead to see how to read them sometimes because they may be exclamatory (for instance) but you don't know until you hit the end. If you're reading out loud at the time, they tend to come as emphasizing the last few words rather than the whole sentence.
(where by "emphasizing " I mean either exclaiming or querying)
wolverian pmichaud: true enough. :) 21:44
pmichaud there's lots of languages where you have to wait until the end to get the full meaning of the sentence
PerlJam I think I'll use @foo[] over {*@foo} given the current syntactic rules :)
pmichaud: sure, but never is it a *feature*. Always a bug. :-)
pmichaud isn't German the language where the verbs often come at the end? ;-) 21:45
wolverian maybe we should just use a sigil that isn't used in e-mail addresses for arrays... 21:46
PerlJam wolverian: bzzt!
wolverian :)
Shillo Going. Later, all. :)
wolverian how about :? that's not used much yet. 21:47
PerlJam I know! Let's get rid of @ and % and just use $. While we're at it, let's unify arrays and hashes into a single data type.
wolverian you're funnier. :)
let's get rid of namespaces while we're at it. they just overcomplicate things. 21:48
pmichaud PerlJam: uh... didn't we already do that?
PerlJam pmichaud: which "we"? I didn't do it.
pmichaud at least as far as getting rid of @ and %? They aren't required :-)
PerlJam perl hasn't done it (yet)
wolverian hmm. true.
forgot that.
PerlJam pmichaud: so now every php programmer can now write perl as if it were php. I see how Larry is co-opting mindshare now ... :-) 21:49
wolverian my @foo is Scalar; # hmm.
pmichaud pj: this was one of the expressions of dismay at the dfw perl mongers meeting last week :-)
"it looks like PHP!"
wolverian is & a ref-taker only or is it a sigil as well? 21:50
PerlJam "ref-taker"?
wolverian &foo; # ref to foo
pmichaud ummm, &foo is a subroutine, yes?
& is the subroutine sigil 21:51
wolverian er. yes. my point is that can I do: my &foo = sub { ... };
PerlJam right.
And you can apparently do "&foo()" too ;-) 21:52
wolverian I assume that's a yes then!
PerlJam wolverian: certainly
wolverian okay, good. my logic brains aren't up this late. sorry for bothering. and thanks :)
PerlJam Though I think you really want my &foo := sub { ... } 21:53
wolverian why?
PerlJam And you may want my &foo ::= sub { ... }
wolverian: I believe = makes a copy while := will only alias.
perhaps it's a cheap copy though so it mayn't make a difference 21:54
wolverian I certainly hope anonymous-to-named copies are cheap :)
(and the other kind, but those aren't as common. unless we learn to use := more.) 21:55
my $foo = "bar"; # copy? 22:03
meppl perl6 looks like php? 22:32
he?
pmichaud one can use $-sigils for almost any variable/datatype 22:33
meppl joke?
Khisanth oooh finally ghc-bin 6.4
pmichaud no, I'm serious
$foo = [ 1, 2, 3 ]
$foo[0], $foo[1], $foo[2], etc.
Khisanth you can drop all the sigils then :)
pmichaud $foo = hash { a => 0, b => 2, c => 4 } 22:34
$foo{'a'}, $foo{'b'}, etc.
Khisanth $foo<a>!
pmichaud yes, but I was demonstrating that it still looks a lot like PHP :-)
Khisanth pmichaud: but it's not $foo['0'] :)
pmichaud er, you mean that $foo['a'] won't work. You're right there, of course -- but still it means someone can be a lot less sigil-bound if desired 22:35
meppl php is a young language which adopted syntax-rules from other languages 22:36
for example "strint1"."string2"
from perl
theorb meppl, perl did a lot of that too. 22:37
meppl yes
theorb Oh, and I suspect that you can create an ArrayHashMonster datatype fairly easily, though you'll have to decorate your "my"s to use it.
(You can create one in perl5 -- MJD has done so. I wouldn't recommend it, of course.) 22:38
ninereasons pugs M parrot/examples/mops/mops.p6 # op/s: 0.0010911074740861974904528096017457719585 22:47
perl parrot/examples/mops/mops.pl # M op/s: 0.602409638554217 22:48
(that is, both are "M op/s:" )
22:51 [1]metaperl_ is now known as me, me is now known as metaperler 22:59 [1]metaperl_ is now known as meta_perl
pasteling "revdiablo" at 24.75.156.86 pasted "array references getting flattened?" (3 lines, 62B) at sial.org/pbot/9895 23:00
revdiablo is that wrong, or am I going crazy? :)
wolverian looks wrong. 23:01
(check tests.)
revdiablo should I write a test and put it somewhere?
wolverian if there isn't one for that, yes.
revdiablo ok, I'll look to see if there's one already 23:02
wolverian t/builtins/arrays/push.t probably
unless it's a more general flattening error 23:03
ninereasons i bet if you write it as \[ 1..5] it will behave as you expected
revdiablo ninereasons: same thing, gets flattened 23:04
ninereasons nope
yep to you, revdiablo
nope to me.
revdiablo I don't see anything in push.t
perhaps it's something more general?
ah, there's something in t/pugsbugs 23:05
flattening_in_map
but this looks like a more general thing
ninereasons imho it seems like a nice fit to test for it in push.t, though. 23:06
revdiablo arrayrefs are getting flattened in any list context?
wolverian pugs> sub foo (@a) { say @a[1] } foo [1,[2]]
2
illegal flattening there too
revdiablo ninereasons: ok, I'll add a test or two in push.t
wolverian [1,[2]] on its own doesn't flatten 23:07
looks like it flattens in subcalls
ninereasons it seems like list contexts generally are a bit flurby and unpredictable 23:08
wolverian flurby++
revdiablo well, I added to push.t ... if anyone has some suggestions for a more general place, I'll add there too 23:13
jabbot pugs - 2666 - tests for nested arrayrefs 23:15
revdiablo nested arrayrefs seem to be working in hashes, foo => [ ... ], doesnt cause the flattening 23:18
wolverian even when passed to a sub? 23:20
revdiablo I didn't try passing to a sub
wolverian that's where it happens
Juerd rehi 23:23
I'm back home
wolverian welcome back :)
Juerd Talks on pugs-developments-in-the-past-few-hours and perl 6 context were both received positively 23:24
theorb Cool, Juerd.
Juerd People were very impressed at the speed of development of Pugs
theorb grins.
Not that I had anything to do with it, but it's still nice to bask in reflected glory.
Juerd "And since when was all this added you said?"
"Since we ordered dinner, 18:15" 23:25
revdiablo wolverian: wait, it's flattening when not in a sub call too 23:26
except when there's a , in the hash definition list
so 'my %hash = (k => [ qw(1 2 3 4 5) ]); say %hash<k>[2]' vs 'my %hash = (k => [ qw(1 2 3 4 5) ],); say %hash<k>[2]' 23:27
Juerd 3 vs 3?
revdiablo I'm getting undef in the first case 23:28
Juerd (RHS of %hash = is in list context already)
revdiablo: That's a bug, I think.
revdiablo I know what it *should* be :)
wolverian me too.
(r2646)
revdiablo Juerd: yeah, there's some weird flattening going on
Juerd flattening of what? 23:29
revdiablo the arrayref
Juerd That would be weird indeed.
revdiablo $ pugs -e 'my %hash = (k => [ qw(1 2 3 4 5) ]); say %hash<4>'
5
wolverian hmm. %hash<k>[0] in the first case is set to 0
it should be an arrayref, I think 23:30
revdiablo well, the tests I added in push.t exercise this, so maybe that's enough
ninereasons This all looks so familiar. an unfixed fix, unless I'm misremembering 23:31
Juerd revdiablo: What does %hash = (key => want) result in? 23:32
theorb The pair constructor gives scalar context to both sides, or should, leastways. 23:34
Juerd Yes, it should
revdiablo $ pugs -e 'my %hash = (foo => want); say %hash<foo>'
Scalar (Any)
wolverian weird. 23:35
pugs> my %h = (k => [want]); say %h<k>, ", ", %h<k>[0] 23:36
List (Any), List (Any)
revdiablo yeah, it does this weird subscript collapsing thing too
$ pugs -e 'my @a = 1 .. 5; say @a[0][0][0]' 23:37
1
ninereasons my %hash_k = (k => [ qw(1 2 3 4 5)])
say %hash_k.perl
\(\('2', '3'), \('4', '5'), \('k', '1'))
my %hash_j = (j => [ qw(1 2 3 4 5)], ) 23:38
say %hash_j.perl
\(\('j', ('1', '2', '3', '4', '5')))
wolverian haha, what?!
theorb Hmm, seems like [] is behaving like () should.
wolverian that is broken.
revdiablo I wonder if that comma works with push too 23:39
nope
:)
theorb Tests! 23:40
revdiablo is that you volunteering? :) 23:41
theorb No.
I'm trying to get a working copy of jhc.
23:41 Odin_ is now known as Odin-LAP
revdiablo I already put a test in push.t that demonstrates the improper flattening 23:42
ninereasons does the Grin thing mean that we might be moving away from ghc, to jhc ? or, what does it mean?
theorb It's possible.
jhc is currently quite incomplete. 23:43
However, it's a better platform to build a haskell->perl compiler on, and thus obtain self-hosing.
ninereasons pugs seems to be genetically attracted to the edges of worlds
theorb Yup. 23:44
Odin-LAP That fits, doesn't it?
theorb Fun, isn't it?
Odin-LAP Perl6 is kinda on the edge of language design... 23:45
theorb s/on/over/
ninereasons yes, it is fun. but very hard to keep up with (and still be productive in the real world)
theorb There's a real world?
Odin-LAP theorb: Hmm. Dunno. The jury's out regarding Lisp vs. P6. ;p
ninereasons don't make me doubt it .. i'm barely hanging on theorb 23:46
:-)
Odin-LAP 'real world'? That thing with all the depressing stuff and other people and suchlike?
You mean people actually *want* to stay there?
shapr They do serve food. 23:47
ninereasons mm spaghetti
theorb is hoping that he'll be able to survive interaction with real people on thursday. 23:48
(Visiting London.)
ninereasons mm figgy pudding
theorb At least they speak English (of a sort).
Odin-LAP shapr: That's overrated.
theorb Odin-LAP: They also serve beer, and more potent libations. 23:49
Jonathan__ Mmmm...beer. :) Time for sleep, night all.
Odin-LAP theorb: Meh. I live in a country where there's an alcohol monopoly, and it's illegal to obtain alcohol under twenty. When that's the 'real world' I think I prefer the virtual one. ;) 23:50
theorb Where do you live, Odin? 23:51
Odin-LAP Iceland.
ninereasons cool.
Odin-LAP Indeed. 23:52
The temperature very rarely reaches 17°C. ;)
... in the peak of the summer, that is.
theorb Icy, one might even say...
ninereasons I love the geysers. 23:53
Odin-LAP advises not going too close. 23:54
ninereasons hmm news to me: this page (www.wyojones.com/how_geysers_got_their_names.htm ) says that Great Geysir is mostly dormant. 23:56
people-damaged. very sad. 23:57
Odin-LAP Hm. People-damaged? 23:58
Any specifics given?
ninereasons soap, rocks and other things.
tossed in to try to stimulate an eruption.
Odin-LAP I don't think anyone knows the exact reason it stopped. 23:59