pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | <stevan> Moose... it's the new Camel ":P | .pmc == PPI source filters!
Set by Alias_ on 16 March 2006.
svnbot6 r9836 | clkao++ | turn on most of the scalar tests. 00:23
00:25 stennie joined 00:57 amnesiac joined
svnbot6 r9837 | fglock++ | PCR - working subscripts parser (postcircumfix); new module Pugs::AST::Expression 01:03
01:17 justatheory joined 02:26 xinming joined 02:32 justatheory joined 02:48 DesreveR joined 02:52 mako132_ joined 03:20 hlen joined 03:27 FurnaceBoy_ joined 03:34 justatheory joined 03:52 weinig|out_ joined 04:01 amnesiac joined 04:35 kane_ joined 04:39 qu1j0t3 joined 04:50 sean` joined 05:22 iblechbot joined 05:26 justatheory joined 05:27 alec joined 05:38 justatheory joined 05:55 GeJ joined 06:36 marmic joined
gaal will there be a way to remove elemets from an array while iterating over it? 07:16
07:24 tomyan joined
arcady it would be convenient 07:24
one of the features of explicit java-style iterators is the ability to do just that 07:25
07:28 renormalist joined 07:40 tomyan left 07:44 kane__ joined 07:46 xinming joined 07:55 drrho joined 08:13 nothing_pasta joined 08:16 nothing_pasta joined 08:19 renormalist joined
renormalist Hi! Anyone awake? -- I'm trying to compile Pugs with PUGS_EMBED="perl5", but have problems. First: Is this what I need to use Perl5 libs via "use perl5:Some::P5::Lib" in Pugs-Code? 08:23
integral yep 08:24
renormalist Second: If I need it, I get compilation error: *** Wasn't able to find 'Perl5_stub.o', aborting...
08:24 whitay joined
renormalist I installed libperl-dev package and so on but not sure whats' missing 08:24
integral you're building from a totally clean pugs tree?
renormalist Uh, no, no "make clean" 08:25
should I?
last version was 6.2.11
integral it'd be best I think
renormalist ok. I try it. Should this be enough? Any else hints what could be missing when compilation arrives in a few hours? 08:26
ok. re-compile runs. I'll be back in ~5 hours. :-) 08:30
08:43 KingDiamond joined 08:56 whitay left 09:19 awwaiid joined 09:21 ghenry joined 09:35 awwaiid_ joined
autark .trivia kunyomi_gr4 20 09:48
09:53 diotalevi joined 09:56 KingDiamond joined 10:07 bsb joined 10:08 xinming joined 10:22 elmex joined 10:28 snowstalker joined 10:30 kane_ is now known as kane-xs 10:31 hlen joined 10:53 yourlordship_ joined
yourlordship_ does perl6 has a logo? 10:54
actually: does perl6 have a logo?
spinclad one good candidate and two relations: the Chamelmaera that appeared on the Not'Reilly Parrot cover on April 1, 2000; 10:59
and the parrot and pug found on the www.parrotcode.org and pugscode.org sites. 11:01
(a use case of the Chamelmaera is on slide 11 of pugscode.org/osdc/pugs.xul .) 11:05
don't know if it's anything like official, though. 11:07
xinming audreyt: ping 11:09
hmm, There is a bug which will crash the newest firefox... I think I might not disturbe you. :-/ Sorry audreyt 11:10
yourlordship_ Chamelmaera = chimera? 11:11
spinclad:
nothing_pasta barfs
obra bad pasta? 11:12
nothing_pasta obra: more like bad oracle
obra oh 11:13
yeah.
nothing_pasta audreyt: pingf 11:17
clkao obra: isn't it very early for you 11:21
obra It is.
nothing_pasta q!
obra I um. So. I got back from Japan monday at 11pm. Fell asleep at 1am. Woke at 5am.
nothing_pasta gh
obra Took a "nap" at 6pm.
Woke up briefly at 11pm. 11:22
Woke up at 6am.
nothing_pasta at YAPC::NA in toronto i was awake for 30 hours or so
went to bed at 22:00
woke up at 8
then I went to bed at 2, 3 or so every night
and woke up at 6
except on the last day of the hackathon
when I woke up at 9ish 11:23
i really liked that
because I could sleep just a little without being too tired
obra I'm not so lucky
nothing_pasta Parse::Binary seems amazingly useful 11:26
too bad it's undocumented 11:27
or underdocumented
theorbtwo I think TimToady said at one point that he expects Perl6 to have a camel just like Perl5, but that was in the context of an RFC saying that the perl6 version should be two-humped.
(Which is silly, since perl7 would need a three-humped one.)
11:29 KingDiamond joined
gaal theorbtwo: I suppose we hump that camel when we get to it. or something 11:36
yourlordship_ if we are going to vote for a mascot, i vote for that chimera monster 11:37
gaal doesn't have to say what he votes for 11:38
theorbtwo doesn't think we need to define a mascot. 11:39
Let the market take care of it.
11:46 jiing joined
nothing_pasta i think we need a gay camel who is a ninja, a pirate *and* a doctor 11:51
11:58 kolibrie joined
renormalist integral: Back in bizz. My Pugs can now use Perl5 libs. Thanks. 12:02
12:04 Limbic_Region joined
theorbtwo Aaaargh: "Programming PERL / [by] Wall, Larry ; Schwartz, Randal L. . 1993 " 12:12
Edinburgh - Moray House (Holyrood) - Lending ; 005.133 PER 12:13
Edinburgh needs to learn to put correct records in their card catalog.
integral renormalist: np :-) 12:19
svnbot6 r9838 | clkao++ | Need IOK_on. 12:25
12:31 b_jonas joined, hugues23 joined 12:37 hugues23 joined 12:45 hugues23 joined 13:13 yourlordship_ left, stennie joined 13:43 kane_ joined 14:16 hexmode joined, fglock joined 14:20 pawel joined
pawel hi all 14:21
14:21 pawel is now known as pmurias 14:26 fglock joined
fglock what's the syntax category of '[+] (1,2,3)' ? it looks like 'quoting precircumfix' :) 14:27
pmurias: hi
theorbtwo Hm, it's almost just circumfix that takes a code as an argument, and returns a code. 14:30
That'd be [+].(1,2,3), though.
...and that assumes a bare operator is a valid code. 14:31
IIRC, one of Larry's early posts about [...] gave it's category. 14:33
14:38 renormalist left
fglock in order to accept a bare operator, it would need to be defined in a mini-language, or there could be a macro called '[' 14:39
b_jonas mini-language? the whole point of bnfs is to have mini-languages 14:47
theorbtwo bnfs?
b_jonas BNF as in Backus-Naur Form, what we use to describe languages to parsers 14:49
theorbtwo We don't.
We use perl6 grammars.
But I see your point.
The idea, however, is to not have /specialized/ mini-languages, or at least not have many of them. 14:50
Juerd Mini languages rock.
theorbtwo If the user wants to, they should be able to make their own things which can parse like brackets.
15:07 iblechbot joined 15:10 justatheory joined
bsb Is anyone else bothered by "Arguments" being a single object with a plural name? 15:13
b_jonas bsb: are you a female? do you never wear trousers? are you never bothered it being a single object with a plural name? 15:14
theorbtwo bsb: "Arguments" is the plural of "Argument". 15:15
audreyt bsb: I tried to call it ArgList 15:16
but that doesn't quite help, and CamelCase sucks
then I tried ArgSpec
bsb Maybe we can rename List to Scalars :)
audreyt doesn't quite work either
b_jonas lol
audreyt larry called it a Tuple
but then we realized it can alsohold named args 15:17
b_jonas well, I do have the policy that I don't name an array @foos only @foo
audreyt so, Ithought of the .arguments thing that javascript does and went with it
better names definitely welcome; it also bothers me
b_jonas what about Frame as in stack frame? no that's not a good name either.
audreyt the counterpart is Signature
which is not called "Parameters" 15:18
again an inconsistency
You bind the right-hand-side _____ to the left-hand-side Signature in :=
fill in the blank
bsb Invocation, bleck
audreyt nah :/ conflicts with "Invocant" 15:19
b_jonas Tail? no, that's stupid too. 15:20
audreyt I'd call it Arglist but it's not really a list
(has named parts)
bsb Typeglob :) 15:21
audreyt we thought about that too :)
maybe we can call it a Blog
"like a glob but better" 15:22
b_jonas lol
ArgData?
audreyt Perl 6: Blog-based language
"you can do anything with Signatures and Blogs"
b_jonas Bug then
audreyt Argdata is also plural... and has the "static data" connotation 15:23
bsb I can't even think of any C.S. terminology to steal 15:25
15:26 Qiang joined
bsb Also, shouldn't Arguments be slotted into the smartmatch table somewhere 15:27
I'm not sure how, I'm still reading about them 15:28
$arguments ~~ $signature 15:29
?
audreyt Match isn't in S04 either 15:30
and Arguments is isomorphic to Match
I guess 15:31
"or" of all the inv/named/pos/block parts? 15:32
I don't know, I'm not sure if it even makes sense
bsb thought it might be nice for dispatching with a given/when 15:34
(say if the multimethod hyperspace was too confusing)
audreyt example? 15:35
gaal helloooo. sorry to repeat my query from before, but will we have a way to remove items from an array while iterating over it? 15:36
15:36 autark joined
gaal tried doing this in C++ today and finally found a reason to hate the language 15:36
then I realized it's not elegantly doable in Perl 5 either
s/C++/STL C++/ 15:37
rgs because the stack is not refcounted.
gaal which stack? 15:38
audreyt for @array.kv -> $k, $v { @array.delete($k) if $v }
like this?
gaal yes but does that work? :)
audreyt sure; you are just undefing elements
rgs perl five's argument stack
gaal audreyt: ah, no no; I meant think of the array as a list: remove an item (shortening the arary) 15:39
rgs: how's that related to the problem?
audreyt @array := gather { @array.map:{ take if $v } }
gaal audreyt: what's the memory profile of that? 15:40
of course I thought of functional languages but it's only in haskell that that's cheap.
15:40 chris2 joined
gaal ie is gather/take lazy? 15:40
audreyt gaal: I think it will alloc at most twice the size of @array, but involve no copy
we can make it lazy with a 15:42
lazy { take }
gaal also, I'm not sure this is my precise problem: suppose I have general imperative code that iterates over a list, and might decide among other things to drop an element
as it visited it.
audreyt so you really want a deleting-splice
gaal yes, which in pure c doubly-linked lists is straightforward 15:43
can you do it in Perl 6 w/o confusing the for?
(in Java apparently you can)
audreyt well, if the .kv is to work on streams 15:44
then it cannot be strict, and hence will indeed be confused
gaal :(
audreyt though you can calibrate it with a redo
which would work even in p5 I believe 15:45
it's klugy though.
gaal unless there's some way to mark an iterator as dirty, which is kind of a kludge for this particular application
audreyt aye
gaal (which incidentally is what i suspect java does)
audreyt *nod*
gaal phewey. 15:46
anymoose, I'm off for home, see you in a few
audreyt cool. I'm off to sleep too
though I slept for 16hrs yesterday
gaal dream of no iterators
audreyt :)
&
15:48 amnesiac joined 15:50 mj41_ joined 15:51 vel joined 15:53 mj41_ joined
pmurias fglock: do you have any experience with xs? 15:54
you said using PGE would be inpractical, would embedding parrot solve any of the issues? 15:58
considering trying to do it today
16:48 xinming joined
TimToady fglock: a [+] 1,2,3 is a prefix_circumfix_meta_operator, I expect. 16:55
And the insides must be an existing infix operator or it'll be ambiguous with [1,2,3]. 16:56
As a whole [+] parses as a list operator token such as "print".
But it would appear the the synopses don't actually list all the grammatical categories in one spot... 16:57
17:03 _bernhard joined
gaal TimToady: the latest update to S03 doesn't say where the programmer sets this default identity value 17:27
also there's a misformatted line near the end 17:28
17:30 ruz joined 17:33 Ishvires joined
arcady gaal: the way java does it is via calling the remove() method on the iterator (not the list object itself) 17:34
and gets angry if you try to modify the list directly
so presumably the iterator keeps track of what needs to be removed
17:36 ghenry joined
gaal arcady: yes, looks somewhat kludgy to me 17:38
presumably it just raises a flag in the iterator state that says "noop the next next"
even if this is conceptually clean in some perspective, we can't readily steal it because we don't have an explicit iterator :) 17:39
.oO( &?ITERATOR.delete )
17:41
theorbtwo TimToady: I hope [.{}] (%hash, @path) still works, so it doesn't need to be an infix?
gaal wow, nice catch t02 17:42
theorbtwo Thanks.
17:43 Ishvires left 17:52 siosiosios joined, ruoso joined
svnbot6 r9839 | nwc10++ | SvIOK_on(target); is too dangerous, as it can cause floating point values to 17:54
r9839 | nwc10++ | be truncated to integers when the target is read. (See the source code comment
r9839 | nwc10++ | for more details)
clkao bwahaha, that's nicholas 17:55
ruoso is sad 'cause he's working too much and having no time to play porting lrep to parrot... 17:56
17:58 pmurias joined
ruoso all work and no play makes Jack^H^H^H^Hruoso a dull boy! 17:58
pmurias ruoso: hi! 18:00
ruoso pmurias, hi 18:03
18:05 wilx` joined 18:08 b_jonas joined 18:14 justatheory joined 18:20 GeJ joined
fglock pmurias: I've asked parrotfolks about the state of embedding parrot - it's not being worked on - I think it would be nice if somebody worked on it 18:31
18:32 mako132 joined
pmurias fglock: how usefull would it be? 18:32
fglock TimToady: I'm trying to figure out the grammatical categories, mini-languages and such. Maybe I should try to document this somewhere 18:33
pmurias: it allows interoperation - you would be able to call parrot languages from p5 (such as PGE-rules, but there are others) 18:34
it's not useful to me, but useful to perl5 in general 18:35
the current Inline::Parrot can/could do this, but it's not efficient 18:36
pmurias fglock: seen the code
fglock theorbtwo: what does [.{}] (%hash, @path) do? 18:37
18:37 elmex joined
theorbtwo %hash{@path[0]}{@path[1]}... 18:38
pmurias fglock: i'll put my ~ under version control (lost a script-fu script today and they are a pain to write) and i'll work on embedding parrot(i don't have any xs fu so don't expect quick results) 18:41
fglock pmurias: I can give you co-maintainer to inline::parrot, so that the xs version can be kept together with the pure perl version - just ask me when you need it 18:42
18:50 rashakil joined
lumi For the Arguments object, there's a CS name similar and free 18:51
Which is "record" 18:52
Juerd will use [.{}] (%hash, @path) so often that he'll probably alias it to something that is actually typable :) 18:55
wolverian %hash.walk(@path) # ? 18:56
Juerd I'd expect anything called 'walk' to iterate linearly, not to dive into a tree structure 18:58
18:58 justatheory joined
wolverian .dive? :) 18:58
Juerd Heh.
wolverian (python's walk dives into the filesystem structure)
Juerd Perhaps :)
But Python has bad identifiers all over the spectrum. They're often an example of how not to name things. 18:59
wolverian yeah. and homonyms. 'in' comes to mind.
Juerd Homonyms? We have them too, but we're PROUD of them. We call them context sensitive ;) 19:00
Or syntax sensitive
(select)
fglock [[ @path ]] %hash
Juerd (do)
wolverian we're getting rid of some. eval.
Juerd fglock: Hmmmh? 19:01
fglock: Don't steal my nested arrayrefs from me.
afk
fglock it's a a reduction operator on subscripts
Juerd That explanation, combined with that syntax, makes me think of PHP. No offense. 19:02
afk
fglock ' %hash [.{}] @path ' is more likely to pass through the parser 19:06
but reduction is list-infix - it needs an operator between %hash and the subscript list 19:09
theorbtwo fglock: Why? 19:13
[...] is a prefix list operator. It figures out what the operator inside it is, and calls it by it's full name.
That is, postcircumfix:<.{}>($hash, $element). 19:14
fglock my last reduction means %hash @path[0].{}( @path[1].{}( @path[2] ... ) ) 19:15
theorbtwo Ah, but I think it's a case of it being ...postcircumfix:<.{}>(postcircumfix:<.{}>(postcircumfix:<.{}>(%hash, @path[1]), @path[2]), @path[3])... 19:20
The magic is in how it figures out if it's left- or right- associative, assumadly by checking the assoc property of postcircumfix:<.{}> 19:21
fglock [&postcircumfix:<.{}>.assuming( %hash )] @path 19:26
YAPC::Brasil stuff: gnosislivre.org/twiki/bin/view/Perl...Brasil2006 19:31
b_jonas uh. so it's a fold/reduce/inject/insert metaoperator? I thought that had a different name last time 19:35
19:35 justathe1ry joined
fglock b_jonas: we are just playing with the possible syntax - these things don't work (yet) 19:36
b_jonas well, I like it better this way, as a binary operator, not a unary one 19:39
19:40 FurnaceBoy joined 19:55 stevan joined 19:59 larsen joined 20:00 Limbic_Region joined 20:12 meppl joined 20:13 meppl joined
ruoso wonders if a parrot gcc front-end would ever be possible 20:17
if Perl 6 will allow me to write a strongly typed program... this type of program would be 'compilable' 20:18
ruoso wonders if he's completely out of his mind...
b_jonas no, you're not. not completely at least.
not more than others here
20:20 stevan_ joined
ruoso so... it means that we'll be able to rewrite parrot in Perl 6 at some time... that would be beautiful.. 20:20
20:23 SamB joined
avar ruoso: I think Perl 6 still needs a compiling compiler 20:30
20:30 FurnaceBoy_ joined
b_jonas I don't think so 20:30
ruoso avar, you mean, in place of gcc?
b_jonas compiling an interpreted language just makes things worse 20:31
avar b_jonas: That statement makes no sense
ruoso b_jonas, but what if an interpreted language offer ways of writing in a not-so-dynamic way
this type of programs can be compiled
b_jonas avar: yes, but
avar b_jonas: It's only an interpeted language because no to-machine-code compiler exists for it
b_jonas: Hence it's not a definition of the language but of its compiler 20:32
There are both C interpeters and compilers around for instance
ruoso avar, if you have a reference counting garbage collector... it's kind of hard to compile it...
svnbot6 r9840 | fglock++ | PCR: added more info to the Expression AST
b_jonas but perl6 inherently dynamical, so you wouldn't get a good performance compiling it. it's much more dynamic than java.
ruoso b_jonas, my point is that you *can* write a not-so-dynamic program in Perl 6 20:33
b_jonas perl6/parrot won't have a reference-counting gc
ruoso: I don't know. maybe.
ruoso b_jonas, and that these not-so-dynamic written programs can be compiled
avar You could however make a subset of Perl 6 that would lend itself well to compiling to machine code 20:34
i.e. no eval(), no need-to-execute-to-lex-the-stuff etc.
ruoso avar, that's the point...
avar and write a compiler for that
ruoso: I know;)
b_jonas so will you be able to write a program where you don't have to keep checking types, array limits, overflow, and even the passing of arguments to functions will be static? 20:35
avar I suspect once you were done doing that you wouldn't have anything like Perl at all;) 20:36
ruoso hmmm
b_jonas what I can think of is number-crunching, where compiling might be advantageous, but again the parrot vm will be much better in that than, say, perl5 20:37
or even java 20:38
ruoso but if you have: "my $a is Int; my $b is Str; $a = $b;" the conversion is presumed... the emitted code can include the conversion even the source not checking it... 20:39
ruoso, it's something you can get in the AST level 20:40
b_jonas yes, but even for a code like that, most of the compiled code will either have long repetitions or most of it will be C function calls
ruoso s/C funtion calls/shared library function calls/ 20:41
b_jonas and I think it's more efficent to interpret that kind of code with a vm instead of compiling it
ruoso shared libraries could be written in Perl 6 too
and compiled themselves...
b_jonas don't trust me of course, I don't know much of this topic
pmurias it depends on how advanced the compiler machinery is
avar Why bother with it at all though? 20:42
ruoso I was thinking if parrot could be self-hosted at some time...
b_jonas I don't see the connection 20:43
avar parrot written in PASM? 20:44
b_jonas it would be self-hosting only if you could compile the C code of parrot to parrot code
pmurias *shudders*
avar: it would take the "we use c++ for Speed" argument out of the propaganda game
ruoso b_jonas, or if you could compile PASM to i386 and rewrite parrot in PASM 20:45
b_jonas oh, I see
but I think it's impossible to rewrite parrot in pasm
ruoso b_jonas, why?
b_jonas it would still depend on some objects whose code is written in C, so it wouldn't really be a full rewrite to parrot I think 20:46
but maybe I'm wrong
no, forget that, that's stupid 20:47
you could rewrite parrot in low-level parrot, but then you'd have to write even a gc and hashes etc
and lambdas and continuations etc
which is terribly impractical
ruoso but beatiful... 20:48
:)
b_jonas it's like rewritng parrot in assembly. you wouldn't use the features of parrot which makes them better.
it wouldn't be beautiful. and automatic compilation from C to parrot could do it the best. 20:49
ruoso b_jonas, but you don't need to write it in PASM actually... just in any language that can be compiled to Parrot... including Perl 6 20:50
or C
theorbtwo C can be compiled to PASM?
ruoso theorbtwo, maybe not yet... but why not? 20:51
theorbtwo Certianly can't do language interop with it.
I suppose you could, but I don't think it'd make much sense to do so.
There's a huge impedence mismatch with pointers. 20:52
To C, memory consists of a big huge array of bytes.
To Parrot, it consists of a bunch of objects.
pmurias unless we want to compete with gcc in the static language niche
you would propably need to defined custom ops to get a decend execution speed 20:53
s/defined/define
b_jonas you mean like unrestricted pointer manipulation and the like? 20:55
fglock "self-hosting parrot" made me remember this for some reason - www.acm.org/classics/sep95/
b_jonas ah, quines written in C? 20:58
fglock self-hosted compilers 20:59
b_jonas oh, I know that speech 21:00
that's the classic about how he would hide a trojan in the compiler
it's a great speech
21:10 Limbic_Region joined
avar How does one go bootstraping a computer, given that you have no other computer 21:10
I.e. how did they do it in ~1940-60
21:12 justathe1ry is now known as justatheory
theorbtwo avar: Rewire the computer. 21:13
avar In this scenario there would be no computer to rewire, and once I'd constructed it why would I be rewiring it?
theorbtwo That's how they did it in the bad old days. 21:14
In the slightly less bad old days, convert everything to machine code by hand, then modify the memory, possibly. 21:15
I'm not old enough to remember.
ruoso doesn't undertand how 'bootstrap' applies to hardware... 21:16
avar A "computer" here would be hw+sw 21:17
But then again you also need to bootstrap hardware in a similar way
you need a high-tech facility to construct a cpu factory for instance, and what do you need to construct a high-tech facility? 21:18
Another high-tech facility
theorbtwo In the modern age, you compile your BIOS down to machine code on a different machine, burn it to a ROM, put it in the socket, and boot.
ruoso theorbtwo, that's software... 21:19
avar I'm facinated by the general idea of bootrapping
theorbtwo avar: Check out reprap.org.
avar Like, say you had a brand new earth without any man-made technology, yet all the people had lived in the old earth, how quickly could you get back to "modern" civilization given that the knowledge of how to build complex stuff wouldn't die out? 21:20
ruoso theorbtwo, wow... that's bootstrapping hardware...
FurnaceBoy_ I've been thinking about that recently
theorbtwo Exactly.
It's not as easy to bootstrap as all that, actually. I've been trying. 21:21
FurnaceBoy_ there was a very long thread about that ... somewhere ... (wishes I could remember)
theorbtwo Now, my playing-with-power-tools skills are very rusty.
avar Just thiink about the complexity of the technology needed to make something like a modern hammer for example
theorbtwo ...but the main devs are playing with a very expensive piece of hardware that does what they're cheap one does, and bootstrapping with that.
A modern hammer? A decent bit.
But you can make a non-modern hammer that's nearly as good, if a bit less good-looking. 21:22
FurnaceBoy_ yes, but how much is germane to function. I'm not sure a hammer is agreat example
for that reason
ruoso avar, actually (/me puts anthropologist hat) culture in this way is a constant bootstrap proccess..
avar Or being able to take 50 trees and cut them down in a way sutable for building a house
FurnaceBoy_ that stuff is easy compared to telecommunications ;-) 21:23
or aviation
you kinda learn it, or die of exposure ;-)
ruoso i mean... the same way gcc lost it's assembler that was substituted by C code, culture lost the older knowledges that were substituted by newer knowledges...
breaking a stone to make an axe is quite hard actually... few people would know how to do that these days... 21:24
avar Exactly
FurnaceBoy_ I'm speaking relatively
avar But probably about as many as could do it 5000 years ago due to increasing population numbers 21:25
21:25 justatheory joined
ruoso avar, I don't think so... only very specialized people have the hability of make scultures.. 21:26
many people did make tools from rocks...
avar mm 21:27
fglock anyone knows of a shift-reduce parser in perl5? I've found this: perl.plover.com/units/units 21:28
avar How many people would be able to survive in the wilderness today for example
integral fglock: Parse::Yapp I thought was just yacc's shift-reduce system, but for perl
21:29 KingDiamond joined
Limbic_Region after googling, I second integral's statement 21:29
fglock I'll take a second look - thanks 21:30
integral mjd has a hack on that website that postprocesses yacc's output into being perl (by interpreting the tables yacc uses to drive it's shift-reduce parser) 21:31
theorbtwo I think if you got everybody from this earth onto new-earth, with magically un-reverse-engenerable universal communications, we'd do OK. 21:33
Without the comms, we'd quite possibly face 99% dieout.
avar We need to terraform mars!
theorbtwo >99%, even.
Limbic_Region fglock - you want a perl implementation because you don't want to be bothered porting the existing C ones?
b_jonas I agree. We'd die out before we could do anything useful. 21:35
one of the books of Jules Verne talks about bootstrapping technology but isn't very realistic 21:36
fglock Limbic_Region: I want something that I can wrap that make it work like a p6 rule, for the p5 based p6 compiler
b_jonas (meaning that the people don't die out) 21:37
fglock ... to make it work like
Limbic_Region assumes that means with as little effort as possible so porting the C based ones is sub-optimal 21:38
fglock I want something tested to start with - it can be replaced later 21:39
Parse::Yapp seems to be what I need - will make some tests 21:40
Limbic_Region Ok - well all I can find for Perl is Parse::Yapp
everything else is Java or C
Limbic_Region wonders if Ovid built a shift-reduce parser as part of his Prolog in Perl work 21:45
fglock I'll probably need to modify it, because my tokens may be defined by p6 rules 21:52
theorbtwo Parse::Yapp won't work at all, then, I expect... 21:53
...its algo, IIRC, is based on figuring out "if the next char is foo, it must be a bar".
I could be wrong, though, it's probably worth a good loog. 21:54
22:04 p5evalbot joined, PolettiX joined 22:20 p5evalbot joined
azuroth in "$foo .set $y" is .set infix? 22:26
fglock azuroth: I think so 22:27
biab &
22:28 fglock left
azuroth nifty. so [.set] ($a,$b,$c) might be like... $a.set( $b.set($c) ) ? 22:28
theorbtwo azuroth: OTOH, in $foo.set($y), it's not infix; we assumed you defined an infix .set operator. 22:30
OTGH, it might work anyway.
...in the same way [.{}] works anyway.
azuroth .{} like .[]? wow 22:31
PerlJam yeah, it's magic :) 22:34
22:42 p5evalbot joined 22:45 p5evalbot joined 22:48 justathe1ry joined
gaal uhhhh, doesn't having a nullary MMD variant for infix:<*> and the like mean their proto is more or less useless? 22:48
22:48 p5evalbot joined
TimToady Hmm. 22:48
can probably still make it work out somehow. Both args to proto are optional, maybe? 22:49
Hmm.
proto doesn't have to be shortest form, maybe?
Hmm.
azuroth 'sub foo(){}' and 'sub foo{}' are the same?
gaal what's bad about an identity property?
TimToady: what you Hmm three times is false? 22:50
TimToady :)
PerlJam does that make him the antisnark or something? 22:51
22:51 p5evalbot joined
TimToady azuroth: no, the problem is having multi foo () plus proto foo ($x,$y). 22:51
if it is a problem... 22:52
The infix form always knows at compile time it has two args, so the situation only arises for reduce and for foo(*@args). 22:53
azuroth so multi foo(){} is like multi foo{}? *better look it up*
TimToady No, multi foo{} would be multi foo (*@_) {}
clkao reasks yesterday's question. sub foo (@a) { }, can we modified @a[2] in foo()? 22:54
s/modified/modify
PerlJam clkao: if @A IS RW
TimToady Not sure since Audrey did away with refs. :)
PerlJam er pardon the caps
clkao yes, but in pugs' test it's expecting we can modify @a even if it's not rw. only in scalar case it's ro
i was kindof wonderinf if that's because we see array as object and it's simply methods operated on it 22:55
TimToady But we've basically unified all the containers now, so I'm not sure if that still holds.
gaal that sounds.... cish to me (const * char bleh)
(that == being able to modify @a's elements) 22:56
22:56 arcady joined
gaal I'd better go to bed. Have a moose everyone & 22:57
PerlJam well, that depends on if we mean "modify @a's elements in the calling environment" or not I guess.
TimToady You certainly can't push onto a readonly @a. 22:58
But in the case of *@a we would really want the default readonliness to distribute to its elements. 22:59
audreyt: maybe Arguments and Match objects can be unified as a Capture object. 23:05
23:13 drbean joined 23:14 apple-gunkies joined 23:35 justatheory joined 23:43 justathe2ry joined 23:53 zgh joined
PerlJam how often do the docs on the website update from the docs in subversion? 23:58
Juerd Daily, iirc 23:59
Juerd z