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 |